4.3 数据发送和接收
数据发送模块负责将数据包发送出去。当接收到发送指令时,首先通过SPI清空射频芯片的发送FIFO,然后向发送FIFO里写入需要发送的数据。打开射频芯片发送完成中断并禁止其他所有中断。微控制器使能射频芯片的发送功能,数据开始无线发送。将IRQ引脚拉高,并等待无线发送完成中断。如果数据发送成功,则NIRQ变低电平。
数据接收模块负责接收数据包。当接收到微控制器的接收指令时,首先通过SPI清空射频芯片的接收FIFO。打开前导码接收、帧同步中断和接收包数据有效中断,并关闭其他中断。准备好开始接收。若引脚NIRQ变为低电平,且读取到接收包数据有效中断位,通过SPI读取接收FIFO中的数据,关闭接收功能。发送和接收程序流程如图5所示。
4.4 系统管理机制
无线网络由主节点和从节点组成,是一个以主节点为根中心的树形拓扑。整个网络的管理是通过各节点中的网络管理模块完成的。无线网络采用LEPS(Link Estimation and Parent Selection)协议。LEPS协议是TinyOS系统的多跳路由协议。它通过节点之间的邻居信息交换
机制,考虑链路质量,建立到中心节点的最短通信路径。
从节点分为不同级别的父节点,只向自己的父节点发送信息,通过父节点逐级向上传到主节点。从节点路由表中拥有自己子节点的编号地址。父节点处于网络的中心是最高级的父节点,它的路由表中拥有整个网络节点的编号和地址。主节点的数据由其子节点逐级传向各从节点。
无线网络分为拓扑结构的建立、路由维护和数据通信3个阶段。在拓扑结构的建立阶段,所有的节点周期性地广播自己的路由信息,节点根据跳数和链路质量信息建立最短条数路由,建立路由表。网络将进行定期的维护,在维护的过程中,节点将再次对父节点做出评估,刷新路由表。在数据通信阶段,路由协议为数据传递提供行进路径。在完成组网后,若向网络中增加节点,则只需要对网络进行维护更新,更新路由表即可。
4.5 父节点选择
所有从节点的数据都是通过父节点传送到主节点的。父节点性能是路由协议的核心部分。父节点的选择决定于链路质量和跳数。
链路质量是两节点间的双向链路通信质量。以两相邻节点A、B为例。在网络广播信息中,节点A向节点B发送多组数据,则B节点的接收成功率为:
协议进一步采用加权唯一平均的方法计算最终的链路质量估计值,进而减小链路质量评估的抖动。令新的链路估计值为NEWEST,所占比例为μ=25%,则原先的作战比例为(1-μ),最终的链路质量估计值为:
跳数HOPNU为节点到主节点的总共转发次数。在网络中,由于链路质量的原因,节点的父节点可能丢失。在进行父节点选取时,为了保证父节点的质量,通常选用SEDEST>0.1,RCVEST>0.1和EST>0.16的链路质量,这样不至于链路质量过低而不稳定。然后在相邻节点中先判断跳数最小,再判断链路通信质量选择父节点。
结语
本系统采用的STM32L152主控芯片和SI4432无线收发芯片都属于低功耗高集成芯片,降低了系统的功耗。其中STM32L152是Cortex-M3微控制器,提高了系统的性能;主节点带有硬件备份提高了系统的可靠性;LPES路由协议技术提高系统的通信效率,使系统拓展方便。本系统适合于工业现场数据采集、小区数据采集、医院病房监控、农业现场数据采集等一些短距离的通信应用。功能模块化和网络可拓展化,使系统便于功能的更新和节点的拓展。