- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Lesson8---资源仲裁和电源管理 TinyOS系统经典PPT教程 教学课件
Lesson8 资源管理与电源仲裁 TinyOS区分3种资源抽象:专用的,虚拟化的和共享的。对每个抽象类型都有两个基本的问题需要思考: 用户如何才能访问这一类型的资源? 如何才能控制这种资源的电源状态? 组件会根据目标和客户对资源的需求等级来提供资源共享机制和电源管理能力。 一、简介 无线传感器节点的能量十分有限,对所有的硬件资源(串口设备、SPI总线及定时器等)使用统一的管理策略显然是不合适的。这是因为它们在预准备、电源配置和延迟性方面有很大的不同。 为此,TinyOS 2.x将这些硬件资源分成三种类型:专用资源、虚拟资源和共享资源。 1.1 专用的资源 如果子系统需要对资源一直有独占的访问权,那么这种资源就是专用的。 在这种资源里,没有共享的策略,因为有且只有一个组件需要使用资源。 专用资源的电源状态AsyncStdControl、StdControl或SplitControl这3个接口中其中的一个接口来控制。 这些接口中的哪一个被特定资源提供,是由物理电源开关的时间需求决定的。 1.2 虚拟化的资源 虚拟化的资源通过软件虚拟化技术把多个资源用户相互之间隐藏起来了。 每一个虚拟资源的用户在与资源打交道时,都好像是在和专用资源交互。 虚拟化资源是建立在共享资源之上。 虚拟资源的电源状态是可以自动处理的,没有提供相关接口来直接控制电力状态。 1.3 共享资源 当一个资源总是由单一组件控制时,专用的资源方式就非常有用了。 如果用户愿意牺牲控制权从而达到简单的共享时,虚拟化的资源方式就非常有用了。 但有时,很多用户都需要对资源有精确的控制,而它们又不可能同时得到控制权:一定程度的多路复用技术就非常的需要了。 1.3 共享资源 共享资源的一个经典例子就是总线共享。总线有多个外围设施,相应的也就有多个不同的子系统。 例如,在Telos平台,flash存储芯片和无线电射频芯片共享总线。存储和无线电堆栈都需要在使用总线时能有独家的访问权。 二、共享资源的仲裁 共享资源是基本建立在专用的资源上,而对专用资源的访问则由仲裁者组件来控制。 资源的仲裁者(arbiter)需要实现共享资源的不同用户之间的多路技术。 仲裁者假设这些用户只在需要的时候才获得资源且持有的时间不超过必要时间。用户直接主动地释放资源:不需要仲裁者强行要求收回。 2.1 共享资源的电源管理 电源管理组件(Power Manager)可以自动地通过AsyncStdControl、StdControl或SplitControl接口来控制资源的供电,通过ResourceDefaultOwner接口与仲裁者组件 (Arbiter)通信,监视资源是否被某一用户占用,并相应地打开或关闭电源。 2.3 共享资源的接口 通过共享资源暴露给用户使用的仅有的接口有: Resource接口和ResourceRequested接口,它们由Arbiter组件提供的,另有资源特定的接口,由资源本身提供。还使用了ResourceConfigure接口,根据客户需求来配置资源。 一个用户通过 Resource接口请求对共享资源的访问,并使用提供的资源特定接口(Resource Specific Interfaces)在资源上运行。 三、如何使用共享资源 学习如何: 为用户连接共享资源; 使用Resource接口获得对共享资源的访问; 改变共享资源的仲裁规则; 为共享资源的使用连接电源管理。 例子SharedResourceDemo --1 位于tinyos-2.x/apps/tutorials/目录。 下载到节点上运行,可观察到3个LED 灯在按顺序闪烁。 TinyOS中所有共享的资源由类似SharedResourceC组件的通用组件来提供。一个资源用户只需简单地创建该组件的一个新实例并连接其提供的接口。 例子SharedResourceDemo --2 每一个请求都依据仲裁规则按序得到服务。以ShareResourceC为例,使用的是圆形循环的策略,所以这些请求的服务顺序是( 0,1,2 )。如果是按照先来先服务(first–come-first–serve)的规则,它们将会按照放置的顺序进行,即( 0,2,1 )。 一旦用户的资源请求被同意了,该用户的Resource.granted() 事件就会触发。 例子SharedResourceDemo --4 四、电源管理 前面提到的电源管理方式很强大,但并不是TinyOS中唯一的电源管理方式。 当任务队列为空的时候,微处理器会自动计算出能降到的最低电力状态,并切换到最低。这样,用户就不必了解如何控制电力了。详见TEP115。 CC1000和CC2420无线电的实现也同样提供了“Low Power Listening”(LPL)接
文档评论(0)