CC2530和FPGA的新型无线网络节点设计
扫描二维码
随时随地手机看文章
摘要:采用ZigBee协议组成无线网络,设计出可以自动接入该无线网络的节点,使用了基于ZigBec技术的CC2530芯片和FPGA。摒弃了以往采用MCU控制CC2530的方式,对本身具有8051内核的CC2530芯片进行更大限度地利用。详细地论述了一种新型无线网络节点的设计方法,实现了可靠和高速的无线网络数据传输,具有操作方便快捷、低功耗和便于移动的优点。
关键词:ZigBec;CC2530;FPGA;无线网络
引言
在当今的技术领域,使用ZigBee协议进行组网正趋向于成熟。使用ZigBee技术,可以简单地组建一个广泛适用、稳定可靠的无线网络,这种网络由多个具有计算处理、无线通信、传感技术以及控制能力的单节点构成。ZigBee技术利用全球公用的公共频率2.4 GHz,应用于监视、控制网络时具有低成本、低耗电、网络节点多、传输距离远等特点。无线网络根据应用环境和要求的不同有着不同的种类划分,在医疗、保健、化学处理和灾难救助等领域应用广泛。并且静态节点和动态节点随社会发展开始相互结合,使得整个网络更加灵活。本文设计了一种无线网络节点,在静态的无线网络结构中能动态地作为一个节点参与组网,不再采用MCU控制以CC2530为主芯片的模块的方式,而采用CC2530与FPGA相互传输控制;使用CC2530所具有的ZigBee协议进行互联,实现一种新型的动态无线网络节点的设计。
1 网络协议与结构
1.1 ZigBee协议
ZigBee是以IEEE 802.15.4无线标准为基础开发的无线传感器网络协议,是IEEE第一种用于传感器与制动器等监测和控制应用的开放无线标准。无线传感器网络由许多功能相同或不同的传感器节点组成,而每个传感器节点由数据采集、数据处理和控制、通信和电源4个模块组成。节点在网络中负责完成数据的采集、收发和转发。作为ZigBee协议网络节点,需要有IBEE 802.15.4标准的PHY和MAC层,这两层组成了控制和数据传输的架构,ZigBee层架构如图1所示。
ZigBee在底层具有OSI模型开始的两层架构,物理层(PHY)定义了无线射频特征,支持2种不同的信号:2450 MHz和868/91 5 MHz。本文使用的频段在2.4GHz ISM。IEEE 802.1 5.4标准允许在这个全球频段内使用250 kbps的数据速率,还可以提供1 6个不同的信道。而介质访问控制层(MAC)负责相邻设备间的单跳数据通信,它与网络层连接,经过相互协调和数据传送来工作,也建立设备间的单跳数据通信的协调、关联和安全。网络层(NWK)支持的网络拓扑有星型、树型和网格型。应用层则包括APS子层、ZDO和管理平台以及应用对象架构。由ZigBee架构可知它们的相互关联:安全服务提供层(SSP)保护了应用层、网络层(NWK)和介质访问控制层(MAC),由此建立起了安全机制;而安全服务提供层(SSP)则是通过ZDO和管理平台进行初始化和配置的,要求实现高级加密标准。
1.2 无线网络结构
ZigBee网络由一个中心协调器(Coordinator)和多个路由器(Router)组成。路由器在网络中为全功能节点(Full Function Device),和选配的终端节点(End Device)一起组成了ZigBee网状网。ZigBee网状网拓扑结构如图2所示。
图2的ZigBee网络中,路由器既能收发数据,也能充当路南器,转发数据。实际上,中心协调器本身和路由器没有区别。而在一个网络里,必须把某个路由器作为主节点,并没置整个网络所共用的PAN ID,例如所有路由器的出厂PAN ID都设为PAN ID=0x199B。在组网时,需要把其中一个路由器作为主节点,设置除0x199B的0x0001~0xFF00中的任意的PAN ID。在这个网络里,有唯一的PAN ID,任意想要加入网络的节点,需要设置为相同的PAN ID才可以加入。该网络中的任意两个节点都可以进行通信,即使其他节点都断电了,当然也有可能中心协调器也断电,这两个节点间还是可以进行通信的。
2 节点的构成
2.1 FPGA具体配置
本文采用的FPGA主芯片是Altera公司的EP1C6Q240C8,它有240个引脚、6 030个LE以及26个M4K结构的片上RAM(共计239 616位),而且含有2个高性能PLL以及多达185个用户自定义的I/O口。由于该器件是FPGA与CC2530的协调操作,所以FPGA需要根据CC2530的输入/输出进行配置,而CC2530是既作为MCU,又作为数据传输端的芯片。FPGA内部结构如图3所示。
EP1C6Q240C8根据CC2530发送来的控制信号,根据时钟单元对CC2530接收到的数据进行协议的检测。若检测正确,便发送到数据控制逻辑单元,再根据地址译码存入数据存储单元。在需要输出时,也是通过CC2530的信号发送来控制输出。在FPGA中,最重要的便是数据控制逻辑单元,其中包含了控制比较和数据传输的功能。
2.2 CC2530内部设置
MCU与无线传输接收模块使用TI公司的CC2530,具体选用了CC2530F256。它具有256 KB闪存块,VDD为2~3.6V,fc为2 394~2 507MHz。使用C语言对CC2530进行编程,主要是对RF收发器的配置,而对了该器件,需要在控制RF收发器的同时,对FPGA进行控制,部分程序如下:
以上程序主要是控制3种模式的切换:数据发送、数据接收和FPGA控制。除此之外,还需要没置3种模式的函数,特别是对FPGA的多种控制,需要进行函数的嵌套。波特率的设置也要根据需要而确定。另外若作为中心协调器,还需要配置PAN ID等等。
3 连接及状态
3.1 模块连接
使用CC2530最小系统板,其中使用RS232对其进行编程配置和数据的发送和接收。在CC2530上,RF_N和RF_P引脚作为无线的发送接收。在对芯片编程时,需要先用9针串口线把最小系统板的串口跟PC的串口相连,然后使用Keil软件把程序烧录到芯片中。在程序烧入后,拔掉PC上的插线,接到FPGA开发板的串口上。对于最小系统板,数据的发送和接收需要经过SP3223E串口的转接,由于正常的9针串口都是使用2、3引脚进行传输,所以习惯地把CC2530的P0.2、P0.3口接到SP3223E上,然后把CC2530的GPIO口上编号为P0.0、P0.1、P0.4的引脚连接到FPGA上编号为A0、A1、A4的3个引脚上,这样便完成了模块的互连。
3.2 运行状态
由于CC2530作为两个功能的使用对于状态的挖制需要特别安排,以免出现错误。配置EP1C6Q240C8和CC2530F256后得到状态转换方式,状态转换图如图4所示。
CC2530在接通电源后便处于待机状态,在由按键信号触发后,便开始转入FPGA控制状态,实际程序中是开始运行FPGA控制函数,然后发送控制信号给FPGA。之后,CC2530便又返回待机状态,等待无线信号的接收,等到接收后便发送给FPGA。此时FPGA经过收到需要接收的控制信号判断后,对CC2530发送过来的信号进行存储。经过存储之后,继续等待FPGA的控制信号。若CC2530收到了需要发送的控制信号,FPGA便进入了发送等待的状态,直到CC2530开始进行接收或是再次进入等待状态后,再读取,然后发送给CC2530。
4 实验结果
设置多节点后,使用串口工具连接CC2530,使用SeaSolve软件进行无线网络的测试,得到实时测试图SeaSolve信号频谱测试图如图5所示。
信号在2.4GHz左右增益达到了36 dBm,而其他频率在80 dBm左右,这样可以看出,ZigBee信号能在2.4GHz接收到敏感信号。SeaSolve频谱峰值图如图6所示。
根据频谱峰值图,其在各频率的峰值和原频谱测试图区别不大,信号在2.4GHz左右接近35 dBm,由图可以看出,在固定频率上的信号的波动比较小,抗干扰性较好。
在组网之后,使用串口工具进行测试,得到测试图如图7所示。
根据ZigBee协议,0FDH为数据传输指令,第2个16进制数为数据长度,第3~4个16进制数为目标地址。若是数据接收,则后面会加入原地址数据。由图中可知,本机发送的地址为2001H,另一端为2000H。
结语
本文设计了一种基于ZigBee协议的无线网络节点,节点的设计对于整个无线传感器网络至关重要,其稳定性和可靠性关系着测试任务的成败。观在很多工业的设计都把CC2530单独作为一个ZigBee模块,这是由于TI公司在制作CC2530芯片时,已经预配置了ZigBee协议。在使用ZigBee模块时,只用其封装后的RS232接口,不需要了解内部便可使用,而实际上CC2530作为一种MCU,其内核是8051,它除了无线功能外也具有单片机所具备的功能。使用CC2530与FPGA的搭配,不仅使得CC2530更大限度地被利用,而且弥补了FPGA需要再外接MCU控制的缺陷,也不需要再使用另外的单片机来接以CC2530作为核心的ZigBee模块。在这个设计中,在芯片相接时需要进行频率的搭配,电平的转换等。因此,如果选用合适的芯片进行搭配,会使其更加快速和方便。