一种基于VHDL的短距离无线传感节点数据传输控制器设计
2018-06-14孙健
孙健
(贵阳学院 电子与通信工程学院,贵州贵阳 550005)
无线传感网络(WSN)由大量低成本微型低功耗传感节点布置在测控范围内组成,通过无线通信技术组成网络系统。目前相当数量的无线传感网络应用对于传感器节点数量需求有限、对于节点的组网方式也并无特殊的要求,但对于成本十分的敏感。针对此需求设计了一种基于星形拓扑的无线传感网络中心节点控制器[1-2]。
传感网络采用星形网络拓扑结构如图1所示,网络中所有无线传感器节点都与中心节点可进行双向通信、节点与节点之间不进行数据传送。
图1 短距离无线传感网络拓扑结构图
1 控制器工作过程与帧格式设计
由于传感器节点与中心节点通信面临碰撞问题,节点相互间存在干扰会使得节点同中心间的通信无法进行,从而降低了无线信道的使用效率同时也会加大节点功耗。针对碰撞问题节点控制器采用载波监听多址接入与冲突避免(CSMA/CA)协议来避免冲突提高信道的使用效率,控制器工作过程如下:
中心节点发出SCAN帧通知传感器节点上传数据或当传感器节点有数据需要向中心节点发送时首先侦听信道上是否有信号传输,如有信号传输则采用退避算法进行延时后再进行侦听。如节点侦听到信道空闲则向中心节点发送请求发送帧(RTS),中心节点在接收到RTS帧以后回发一个允许发送数据帧(Clear To Send),其他节点在接收到RTS帧和CTS帧后根据退避算法进行延时避让。节点在接收到CTS帧后进行数据帧(DATA)的发送,如节点在一定时间内若未收到CTS帧则执行退避延时算法后再次发送RTS。中心节点在接收到DATA帧后向节点发送确认帧(ACK),如节点在规定时间内为收到ACK帧则重新发送DATA帧而不必再次进行延时[3-4]。
中心节点需要更通知传感节点发送新数据时,首先完成当前数据传送,而后发送SCAN帧通知传感节点上传数据。SCAN帧中的第15到第8位为特征位;第7位为集体接收控制位,为‘1’所有节点接收、为‘0’指定节点接收,接收节点ID由第6到第0位决定。本设计的SCAN帧格式如表1所示。
RTS帧不仅是发送给中心节点进行信道预约同时也告知其他节点本节点要进行数据传输,其他节点应执行退避算法。RTS帧中的第15到第8位为特征位;第7位为预留位,第6到第0位为发送RST帧的传感器节点ID。RTS帧格式如表2所示。
CTS帧为传感器节点数据发送允许帧,如传感器节点在发出RTS帧收没有接受到CTS帧,则在一定延时后重新发送RTS帧。CTS帧中的第15到第8位为特征位;第7位为数据发送允许位,为‘1’允许,第6到第0位为允许发送数据传感器节点ID。CTS帧格式如表3所示。
表1 SCAN帧格式
表2 RTS帧格式
表3 CTS帧格式
表5 DATA帧格式
表4 ACK帧格式
图2 传感器节点控制器顶层原理图
传感器节点接收到CTS帧后先与本节点ID比较,如ID为本节点且数据发送允许则向中心节点发送DATA帧。DATA帧第23到第16位为特征位,第15位为预留位,第14到第8位为发送节点ID,第7到第0位为数据信息。DATA帧格式如表4所示。
在DATA帧发送后,如中心节点正确接收到DATA帧则回复一个ACK帧通知数据发送节点数发送成功,如在一定时间内未收到DATA帧中心节点会重新发送CTS帧告知节点重新发送DATA帧[5]。DATA帧格式如表5所示。
2 控制器设计与仿真
图3 序列信号检查器功能仿真波形图
图4 数据接收器功能仿真波形图
图5 状态机功能仿真波形图
图6 延时计数器功能仿真波形图
控制器设计硬件描述语言采用VHDL,逻辑控制采用有限状态机FSM(Finite State Machine)进行。状态设计如下:S0为初始态检测是否有针对本节点SCAN帧或者检查到传感器有数据需要发送则进入S1态;S1状态检测信道是否空闲如信道空闲则发送RTS进入S2,如信道繁忙则延时退避一定时间后再检测信道是否繁忙;S2检测是否有针对本节点的CTS如检测到则进入S3;S3检测信道是否繁忙如信道空闲则发送DATA帧进入S4;S4检测是否有针对本节点的ACK如有则进入S0,若在规定时间内没有收到ACK则进入S3。
图2中SCAN、RTS、CTS与ACK模块分别用于检查SCAN帧、RTS帧、RTS帧与ACK帧特征字,这几个模块的原型为sequence_detector 针对不同的特征字检测只需在模块内填入相应的特征字符即可。对各模块的功能仿真采用Modelsim 6.5 se软件进行sequence_detector模块的功能仿真图如图3、4所示。
Data_receive模块用于接收帧中的ID值并送入状态机,其功能仿真图如图4所示。
WSN_FSM模块为状态机控制各部分协调工作,其功能仿真图如图5所示。
time_delay模块在状态机的控制下用于于延时计时,其功能仿真图如图6所示。
sequence_sent模块用于发送RTS帧,与DATA帧,其功能仿真图如图7所示。
图7 序列信号输出器功能仿真波形图
3 结语
通过功能仿真传感器节点控制器的设计得到了验证,为近距离无线传感网络系统设计打下了基础。使用VHDL语言进行的设计可以在较大的程度上做到平台无关性,如需求量大还可生产专用集成电路(ASIC)进一步降低价格。该控制器的设计也可为物联网感知层的设计提供参考。
[1]刘敏钰,吴泳,伍卫国.无线传感网络(WSN)研究[J].微电子学与计算机,2005,22(7):58-61.
[2]曾伟,徐明伟,吴建平.网络拓扑模型述评[J].计算机应用研究,2005,(7):1-4,8.
[3]郑朝霞,邹雪城,姜天杰,杜鹃. WSN中CSMA_CA协处理器的软硬协同设计[J].固体电子学研究与进展,2009,29(1):132-137.
[4]路丽君.基于CSMA/CA的无线网络多播协议的排队性能分析[D].兰州:兰州理工大学,2010:2-4.
[5]胡代荣.基于无线自组网的自动抄表系统的研究[D].大连:大连海事大学,2010:27-29.