【摘要】:应当指出的是,三层硬件抽象结构是TinyOS 2.x的一种建议而非强制执行标准。在TinyOS 2.0提供的代码中较好地执行了这种建议,但也有例外。在某些情况下,系统设计者和程序员可能需要为应用程序提供不同级别的硬件抽象,如提供HIL层和HAL层的硬件抽象。例如,在TinyOS 2.0中的Oscillscope应用就属于这样一种情况。图5-2显示了如何在HIL级别和HAL级别并行地访问MSP430微控制器的ADC硬件。
应当指出的是,三层硬件抽象结构是TinyOS 2.x的一种建议而非强制执行标准。在TinyOS 2.0提供的代码中较好地执行了这种建议,但也有例外。在某些情况下,系统设计者和程序员可能需要为应用程序提供不同级别的硬件抽象,如提供HIL层和HAL层的硬件抽象。此时,硬件资源可能有多个级别的并行访问。
例如,在TinyOS 2.0中的Oscillscope应用(tinyos-2.x/apps/Oscillscope)就属于这样一种情况。Oscillscope使用ADC转换传感器采样到的数值,然后把消息通过无线发送出去,考虑到不同平台的兼容性,应用程序使用标准Read接口,它由模数转化HIL组件提供,并经DemoSensorC组件转出,当消息缓冲区收集了足够的采样值,应用程序就把消息传递到无线电堆栈(radio stack)。MAC协议根据CCA信道评估状况确定何时可以安全地发送消息,这就涉及到无线模块发出的RSSI信号中提取几个ADC模数转换值的问题。由于这是个临界操作,采样值的连续性对这类操作有着重大的影响,所以编写MAC协议时可以直接使用HAL组件的硬件相关接口,HAL组件对模数转换过程具有更好的控制能力。图5-2显示了如何在HIL级别和HAL级别并行地访问MSP430微控制器的ADC硬件。(www.xing528.com)
为了支持这种“纵向”的灵活性,模数转换器的HAL组件包含了更复杂的资源仲裁和控制功能。这样,就可以保证对HPL层资源实现安全地共享访问。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。