基于CC1101的分布式节能测控网络设计
由于CC1101通信时以数据包为最小处理单位,可以也设置CC1101的包长度为12字节,借助CC1101的处理能力屏蔽掉对链路层级别以下的通信协议处理过程。
数据帧内部各数据域定义简述如下:
①同步头。标记一帧数据的开始,CC1101必须在收到与内部设定的同步头值相等的数据后才启动内部电路接收一个数据包。数据帧类型不同,同步头数值也不同。
②地址。每个测控基站都由系统分配一个唯一的2字节标识地址,测控基站只响应地址等于本地标识地址的命令帧或中继应答帧。
③帧类型。用以区分本帧数据属于4种类型中的哪一种。
④数据。本帧需要传输的有效数据,可以是中继节点下传给测控基站的指令,也可以是测控基站上传给中继节点的状态。
⑤CRC。对数据帧前10个字节计算出一个2字节的校验数据,当接收端发现CRC校验错误时将丢弃本帧数据。
3 测控基站设计
测控基站采用电池供电,处于无人职守的环境下工作,在设计方案中必须最大限度的考虑节能要求,特别是对无线收发器芯片CC1101进行低功耗设计,这主要通过精心设计测控基站和中继节点间的无线通信链路协议来实现。
测控基站使用TI公司的CC1101射频收发器模块作为无线通信接口,该模块已集成了CC1101、外围射频电路和天线等硬件,只需直接通过SPI向其送入指令和数据即可。模块使用26 MHz时钟工作,通信频段为433MHz,调制方式为GFSK,通信速率为250 kbps。
3.1 接收协议节能设计
CC1101具备WOR功能,使用该功能可以让CC1101在睡眠态和接收态间自动轮流切换,如图2所示,其中Time0为WOR周期,Time1为接收时间。由于在睡眠态时,CC1101的接收功耗电流仅为9.8μA,而接收态时功耗电流达16.5 mA,从节能的角度考虑,在使用WOR功能时,应该使睡眠态的工作时间占空比尽可能的大。
但当CC1101处于睡眠态时,无线接收电路不工作,在此时间间隔内无法收到从无线信道传输的数据,影响通信的正确性。因此为保证可靠地接收数据,必须保证在一个WOR周期内,接收态期间CC1101能收到至少一帧完整的数据。
测控基站从中继节点接收的控制命令帧长度为12字节,当CC1101通信速率为250 kbps时,一个完整命令帧传输所需要的时间为:12×8/250=0.384(ms)。
选定WOR模式的接收态占空比为0.781%时,假定在接收态需要保留5个完整命令帧的接收时间窗口以确保稳定、可靠的收到一个完整命令帧,那么可以计算出WOR周期为:5×0.384/0.781%≈246(ms)。
从CC1101的应用手册上可知,WOR周期与CC1101内部相关寄存器的值具有如下关系:
式(1)中fosc为CC1101的工作时钟频率,为26 MHz,EVENT0为事件0计数器值,WOR_RES为计数器分辨率,一般可设置为0。这样可以计算得到当WOR周期为246 ms时,EVENT0值为0x2150。
当WOR模式的接收占空比为0.781%时,可以根据接收态和睡眠态分别的功耗电流计算出CC1101总的功耗电流:9.8×10-3×99.219%+16.5×0.781%=0.13(mA)。
若测控基站使用两节容量为2000 mAh的普通5号干电池供电,可以计算出在只供CC1101工作的情况下设备可连续工作时间为:2×2000/0.13≈30 770(小时)=3.5(年)。
3.2 接收协议处理流程
CC1101接收数据时设定同步头内容为0xEB90,这样可以保证它只响应同步头为0xEB90的类型的数据帧,其他类型的数据帧不会误触发CC1101,简化测控基站软件的协议处理流程。
当需要接收命令帧时测控基站工作流程如图3所示。测控基站默认处于等待接收状态,此时CC1101工作于WOR模式;当收到一个完整命令帧后,CC1101退出WOR工作模式,进入发送工作模式,同时测控基站控制软件必须通过帧地址域判断命令帧是否是发给本设备,若命令帧是发给本设备,需要执行该命令并返回应答给中继节点,然后设置CC1101重新进入WOR工作模式,若命令帧不是发给本设备,则直接设置CC1101进入WOR工作模式即可。
需要注意的是由于无线信道易受干扰,测控基站在收到中继节点的命令帧后必须给中继节点回送一个应答帧,确认命令帧执行情况。为了防止应答帧引起其它测控基站的错误触发,应答帧同步头与命令帧同步头不同,为0x146F。
tcp/ip相关文章:tcp/ip是什么
评论