test5M发送和接收消息是通过组件GenericComm来实现的。GenericComm通过调用其他组件实现从消息包到主动消息、字节级数据传数、位级数据传送到无线电收发模块的功能。在此不再深入分析其实现过程,采用随机后退的CSMA/AD的MAC协议,只要明白组件GenericComm就可以完成消息的收发。
GenericComm提供了256个消息收发接口,也就是说系统可以使用256种消息,或者说256种状态进行转换。由于系统是非阻塞模式,一旦消息到达组件test5M中,receive事件就会立刻调用,因此在这个事件中实现不同消息的转换,从而实现通信双方的握手:
event TOS_MsgPtr Receive.receive[uint8_t id](TOS_MsgPtr m) {
switch(id) {
case 1: //状态转换1
case 2: //状态转换2
}
return m;
}
结语
分析无线传感器节点Mica和其上运行的TinyOS操作系统出发,描述无线传感器网络节点体系结构,通过应用程序开发说明其通信模型建立思路,着重描述无线传感器网络节点应用程序体系结构和消息通信机制。
参考文献
[1] 21 ideas for the 21st century[J] Business Week, 1999-08-30.
[2] 王峰,陈艾. 软件设计者的契机与挑战. http://www.cnw.com.cn/.
[3] 孙利民,等. 无线传感器网络. 第1版. 北京:清华大学出版社,2005.
[4] Atmega 128技术手册. p36.
[5] http://www.tinyos.net/.
[6] David Gay, Philip Levis, David Culler. Eric Brewer nesC 1.1 Language Reference Manual.p26.

【