基于ZigBee技术的机动车综合检测系统的研究
CC2430与主控制器是通过SPI连接的,其中主控制器处于主模式,CC2430处于从模式。LPC2292还有4个I/O与CC2430相连,主要作用为必要时查询CC2430的状态。CC2430使用SFD、 FIFO、 FIFOP和CCA 4个引脚表示收发数据的状态。SFD脚高电平表示处于接收状态;FIFO和FIFOP引脚表示接收FIFO缓存区的状态;CCA引脚在信道有信号时输出高电平,它只在接收状态下有效。CC2430是一个半双工的RF芯片,在同一时刻只处于一种工作状态。CC2430有15个命令寄存器,每个寄存器都有一个固定的地址。发送缓冲与接收缓冲是分开的:TXFIFO、RXFIFO各128 bit。
协调器的硬件结构与终端节点类似,在此不再赘述。数据传输的格式规定如表1,帧数据格式为:检测工位编号(1B)+数据内容(4B)。
2.1 硬件数据发送程序
发送程序首先通过查询状态字来确保CC2430允许发送,若允许发送,程序先把残留在TXFIFO中的信息清空,然后将待发送的数据包通过SPI写入TXFIFO中。然后通过SPI接口触发发送命令,即STROBE_ STXONCCA。通过状态位来判断是否发送成功,若不成功则调用CSMS/CA的算法多次尝试;若发送成功,则向上层返回发送成功的原语。程序流程如图3所示。本文引用地址:https://www.eepw.com.cn/article/197661.htm
2.2 硬件数据接收程序
当CC2430接收到一个有效的数据包后,会通过拉高FIFOP引脚电平指示数据包的到来。主控制器检测到FIFOP的高电平会触发外部中断,利用中断函数来接收数据,此中断优先级设为最高。程序流程如图4所示。
3 网络建立与通信
本文设计的网络系统未使用ZigBee联盟定义的标准配置文件,而在应用程序中对网络进行配置。设置节点的最大子节点数为5,网络深度为3,子节点中最大路由器个数为3,由此可计算出网络最大节点数为66。
在ZigBee技术定义的LR-WPAN中,网络建立的起点是PAN网络协调器(PAN Coordinator)。节点在两种情况下将建立一个新的PAN网络: (1)在主动扫描时没有收到任何信标帧; (2)收到的信标帧参数与自身节点能力不相匹配。
建立PAN网络步骤如下:
(1)协调器节点加电后,首先由网络层发布NLME-NETWORK-FORMATION.request 原语,之后由网络层管理实体(NLME)请求MAC层检测网络信道,通过发布MLME-SCAN.request 原语扫描有效信道能量,扫描完成后的结果由MLME-SCAN.confirm 原语返回至网络层管理实体。NLME根据能量检测结果将能量水平较低的信道丢弃不用,之后对选出的信道进行主动扫描,最终找出建立网络的最佳信道(默认为18信道)。
(2)选择网络标识。每一个网络都分配有一个独立的网络标识PAN ID。网络中的设备根据此标识来确认自己所属的网络。在完成第一步的工作之后,协调器节点在此信道上选择一个随机的网络标识,并开始侦听该信道。本系统采用18号信道对应的PAN ID编号0x1aab。
(3)设定网络地址。一旦网络标识被选定,NLME将选择一个16位网络地址,同时通过发布MLME-SET. request原语修改MAC子层的PIB属性macShortAddress,与其保持一致。此时NLME将向MAC层发布MLME START.request 原语开始一个新的PAN的操作。然后,网络层管理实体(NLME)通过发送NLME-NETWORK-FORMATION.confirm 原语将初始化ZigBee协调器的执行结果通知上一层。
在ZigBee协调器设备建立网络后,终端设备可作为子节点加入协调器建立的网络,子节点加入网络的方式有两种:通过MAC层关联方式加入网络;通过指定的父节点直接方式加入网络。本文取前种方式。
评论