微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 一种分布式节能测控网络的设计

一种分布式节能测控网络的设计

时间:03-03 来源:互联网 点击:


  式(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工作模式即可。

  
图3 工作流程



需要注意的是由于无线信道易受干扰,测控基站在收到中继节点的命令帧后必须给中继节点回送一个应答帧,确认命令帧执行情况。为了防止应答帧引起其它测控基站的错误触发,应答帧同步头与命令帧同步头不同,为0x146F。  3.3 发送协议处理流程
  当测控基站需要反馈控制命令执行情况或主动上传测量数据时,必须通过CC1101向外发送数据。为减少测控基站对无线信道的占用,只有在设备状态产生变化时,测控基站才主动向中继节点发出数据帧通知本设备产生了状态变化,需要中继节点向中心计算机登记该次变化。
  为了防止多个测控基站同时共用无线信道时发生冲突,必须对发送协议进行防冲突设计,这通过CC1101的载波侦听功能实现。在每次需要发送数据前,CC1101检测无线信道中载波功率电平值,并将电平值反映到RSSI寄存中,当测控基站发现RSSI电平高于某一阈值时,认为无线信道已被占用,将一直等待直到RSSI值低于阈值时才使用无线信道发送数据。
  使用载波侦听功能,测控基站向中继节点上传测量数据时处理流程如图4所示。由于需要上传测量数据的时间占总工作时间的比例很小,CC1101不需工作在WOR模式以节约电能。为防止测量帧触发其他处于接收命令状态的测控基站,测量帧同步头设置为0x1ACF。

  
图4 发送协议处理流程


  4 中继节点设计
  中继节点使用Microchip公司PIC18FF66J60单片机进行局域网协议的处理和上级中心计算机协议的转发控制,同时使用CC1101与下级的测控基站通信。
  PIC18F66J60芯片具有嵌入式以太网控制器模块,是一个完整的以太网连接解决方案,要完全实现介质访问控制和物理层收发器模块功能,只需使用2个脉冲变压器和一些无源器件即可将单片机直接与以太网相连。该单片机内部已经嵌入了TCP/IP协议栈,上电后协议栈自动运行,单片机软件只需调用相应的TCP/IP处理函数即可。


  中继节点的硬件电路如图5所示,在与局域网通信端,PIC18F66J60单片机的4个以太网专用引脚TPOUT+、TPOUT-、TPIN+、TPIN-与网络变压器直接相连;在与无线信道通信端,单片机通过SPI引脚与CC1101直接相连。
  中继节点采用220 V市电经.AC—DC转换后供电,没有节能处理的要求,CC1101不需使用WOR工作模式,处于常开状态,最大限度的保证通信链路的可用性。默认状态下中继节点在与测控基站通信的过程中处于被动地位,随时准备接收测控基站上传的测量数据帧。


  中继节点时工作流程如图6所示,它不断监视本区域内的无线基站状态,只有当发现测控基站测量数据有改变时才向中心计算机转发数据;同时响应中心计算机发送的控制指令,向本区域内的无线基站转发。
  中继节点使用PIC18F66J60单片机TCP/IP协议栈与中心计算机通信的软件处理步骤简介如下。
  ①PIC18F66J60单片机根据中心计算机IP地址向局域网广播发出地址解析(ARP)包。中心计算机工作在TCPSERVER的模式下,应答中继节点发送的ARP解析请求,向中继节点回送MAC地址。相关函数调用为:voidARPResolve(IP ADDR*IPAddr),发出地址解析包,IPAddr为模块的IP地址。BOOL ARPIsResolved(IP_ADDR*IPAddr,MAC ADDR*MACAddr);IPAddr,MACAddr为中心计算机的IP地址与MAC地址。
  ②建立中继节点与中心计算机的连接,查看连接是否建立与断开连接。相关函数调用为:TCP_SOCKETTCPConnect(NODE_INFO*remote,TCP_port port),建立连接。BOOL TCPIsConnected(TCP_sockethTCP),查看是否建立连接。void TCPDisconnect(TCP_SOCKET hTCP),断开连接。
  ③PIC18F66J60单片机检查网口缓冲区中是否有数据收到,如果有数据,将数据组合成命令帧。函数调用为:BOOL TCPIsGetReady(TCP SOCKET socket),检测网口是否收到数据。BOOL TCPGet(TCP_SOCKET、socket,BYTE*byte),从网口缓冲区中读出一个字节数据。
  ④当PIC18F66J60单片机需要向中心计算机发送数据时,检查网口是否做好准备发送数据,如已准备好,直接向网口缓冲区中写入数据。函数调用为:BOOL TCPIsPutReady(TCP SOCKET socket),检查网口是否准备好发送数据。BOOL TCPPut(TCP_SOCKET hTCP,BYTEbyte),向缓冲区写入一个字节的注塑机参数。voidTCPFIush(TCP SOCKET hTCP),将网口缓冲区的全部数据发送出去。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top