nRF24LE1无线监控通信开发文档
跳频(FHSS)是收发双方传输信号的载波频率按照预定规律进行离散变化,也就是说,通信中使用的载波频率受伪随机变化码的控制而随机跳变。与定制通信相比,跳频通信比较隐蔽且难以被截获——只要对方不清楚载频跳变的规律,就很难截获我方的通信内容。FHSS不是抑制干扰,而是容忍干扰。每个数据包都会被校对,如果它被破坏,这个数据包将不能再用,随后使用下一个传输频率的通信会提供正确的数据包。因而FHSS传输速度较慢却稳定可靠。对于本系统而言,跳频可以提高通信的安全性和可靠性,但是,跳频通信需要通信双方都一直在线,这样不利于系统低功耗实现。
载波监听(CSMA)比起前面的FDMA、TDMA、FHSS,能更好的利用资源,因为这种通信方法在发送数据之前,一直在检测大气中是否存在相同频率的载波。如果在当前时间中有相同频率的载波,就不发送数据;如果大气中没有相同频率的载波,表明现在空间资源没有被占用, 可以发送数据。这样不仅提高了空间资源的利用效率,也提高了通信的可靠性。CSMA既是一种争用型的介质访问控制协议,又是一种分布式介质访问控制协议,网络中各个节点都能独立的决定数据帧的发送与接收。每个节点在发送数据之前,首先要进行载波监听,只有介质空闲时,才允许发送数据帧。如果两个以上的节点同时监听到介质空闲并发送帧,则会产生冲突现象,发送的帧为无效帧,应停止发送,以免介质带宽因传送无效帧而被白白浪费;然后根据节点的ID号延时一段时间后,再重新争用介质,重发数据。
相对来说,CSMA原理比较简单,技术实现容易,网络中各工作站处于平等低位,不需集中控制, 不需提供优先权。因此,如图6.1所示,本系统采用载波监听和据ID号延时的方法来实现一对多的无线数据传输。
准备发送数据根据ID号相应延迟Y载波监听RPD = 1?N发送相应数据 图6.1 载波监听流程图
31
nRF24LE1无线监控通信开发文档
本系统采用载波监听具有诸多优点。比较简单,技术容易实现,可以提高开发效率;无用节点可以睡眠,达到低功耗功能。
6.2 通信协议设计
首先,要设定表2.2增强型ShockBurst包格式中载荷的数据结构,如表6.1所示。
帧头 1 byte 类 ID 1 byte 设备ID 1 byte 数据长度 1 byte 数据 0~26 byte 总帧数 1 byte 帧号 1 byte
表6.1 载荷的数据结构
? 帧头:通过帧头来判断数据的类型,有:主机申请数据;传感器触发;加入
网络;退出网络;广播信号。根据不同的帧头,确定对载荷采取不同的处理。 ? 类ID:划分不同类型的设备。 ? 设备ID:划分同类型的设备。
? 数据长度:为数据的长度,取值为0~26。 ? 数据:0~26 byte。
? 总帧数:一个数据包总帧的个数。 ? 帧号:表示现在传输的是第几帧数据。
帧头,ID号,数据长度,数据都由ARM处理器部分通过SPI发过来;单片机再通过SPI传给RF部分,RF部分再自动的把它组装成无线传输的数据格式,通过无线传输;总帧数和帧号,可以保证断点续传。
如表6.2所示,为针对此监控项目所设计的通信协议。
32
nRF24LE1无线监控通信开发文档
序号 同步时段 主机索取数据(点到点数据交换时段) 主机发送;主机发主机接主机接收;主机接主机先从机接收 送;从机收;从机从机发送 收;从机发送后接收 发送 发送 接收;从机先接收后发送 0xDD 0xFF 0xEE 0x88 0xB0 0x80 对于广播信号,类ID和设备ID全为oxFF,则全部节点都可接收到此帧;再判断Data1和Data2是否和自己的匹配,若匹配,则执行Data3的命令,并在从机申请数据长传时段把主机所需状态信息传给主机。(Integrated Camera Unit在从机申请数据上传时段,上传自己的准备状态,在点到点数据交换时段才进行图片数据的交换) Integrated Camera Unit 0x11;Remote Sensor IR Unit 0x22; Door / Panic Alarm 0x33;Remote Equipment Switch 0x44; remote controller 0x55. 从机的设备ID由主机指定。在加入网络申请帧里,从机的此值为0xFF;当主机给申请的从机确认信息帧里,包含给其分配的设备ID。 0x04 0x04 0x04 0x04 0x04 0 —— —— —— —— 对于遥控器,其命令帧头为0xAA,无论主机何时收到次命令都会优先传输给ARM主机进行处理。初次同ARM主机进行配对,配对完成后,绑定其MAC 33 nRF24LE1无线监控通信开发文档 地址。其命令格式另外定义。 点到点数据交换时段仅为Integrated Camera Unit向主机传输图像数据时段。 ? (注释1)在点对点数据交换时段,总帧数最大为255,最多传输6885Byte。 所以,可以通过控制帧头以达到传输多次的作用。主机索取数据帧头为0x80。但是,要传输数据的节点,当数据<6885B时,从机传输的帧头仍为0x80;当>6885B时,传输给主机的帧头为以0x60开头,到0x6F,共可传输16*FF个Btye。(??) ? (注释2)命令类型: 0x11:报告从机自己的基本状态; 0x22:向Integrated Camera Unit索取图像命令; 0x33:对Remote Equipment Switch的具体控制; ? (注释4)从机申请数据上传时,一方面,除了Integrated Camera Unit外的 所有节点分机,把自己的信息状态发送给主机;另一方面,Integrated Camera Unit只是上传自己的准备状态,在点到点数据交换时段才进行图片数据的交换。 ? (注释5)问题包括:0x11:传感器被触发; 0x22:门传感被触发; 0x33: 紧急呼叫; 0x44:电量不足 参考文献 [1] 谭晖.nRF无线SOC单片机原理与高级应用[M].北京:北京航空航天大学出版 社,2009. [2] 曹勇,杨涛,冯月晖. 基于nRF24L01的超低功耗无线传感器网络节点设计 [J]. 电子技术应用,2008,(7):45-48. [3] nRF24LE1_Product_Spec_v1_2.pdf. [EB/OL]. 2009.3. http://www.nordicsemi.com/index_popup.cfm?obj=product&act=displayWhitepapers&pro=95&con=data_sheets [4] 李晓东,卫建华.nRF24xx频道避撞及频率捷变技术的实现[J].西安工程科技 学院学报,2007,(2).226-229 34 nRF24LE1无线监控通信开发文档 [5] 喻金钱,喻斌.短距离无线通信详解—基于单片机控制[M].北京:北京航空航 天大学出版社,2009. [6] 李文仲,段朝玉.短距离无线数据通信入门与实战[M].北京:北京航空航天大 学出版社,2008. 35