2.系统原理及流程
2.1工作原理和流程
该系统主要由程序下载单片机、无线模块nRF24E1、SPI存储器EEPROM、前端采集模块或功能显示界面及串行口组成。程序下载单片机(如AT89S52)通过串行口与PC机连接,接收PC机下载的执行程序,并存储到SPI存储器中,配置nRF24E1内的51核。在数据采集系统中,nRF24E1无线模块上电后读取SPI存储器中的执行程序,读取前端采集的数据,并通过nRF24E1中的无线收发模块实现无线发送。在远程下载系统中,发送端将要在24E1模块中执行的程序在无线环境中传输,接收端运行结果在终端(PC、液晶屏等)上显示,以适应动态变化要求。
系统模式图如下:
图1:系统模型
2.2硬件设计
在硬件上,本系统研制了SPI总线下载器,将24E1的模块作为外插件附于其上。开发板上包括串口电平转换部分、89S52单片机部分、24E1可拔插模块及控制部分、电源管理部分。开发板由5V电源供电,转换为3.3V向芯片输出,由继电器DS2Y-3控制下载完程序后24E1模块的上电。两个串口一个用作89S52控制PC向EEPROM传递程序,另一个与24E1相连,使得其接收到的或采集的数据可在串口显示。控制射频模块与EEPROM进行数据交换的是几片逻辑芯片74LVC1G125、74AHC1G32,有效的隔离了以EEPROM为分界的程序下载和加载过程。
在两种应用的系统中,发射端的硬件设计是一致的,在接收端:数据采集系统将传感器与24E1模块引出的I/O相连,由内部8051内核控制;远程程序下载系统将运行结果通过串口或USB口与PC等其它设备相连,或外接液晶屏显示。
2.3软件控制
nRF24E1内的51核相对普通8051作了一定的扩展,一般编译器不能完全支持nRF24E1。KeilC51V7.01及其以上的版本都支持nRF24E1,因此,编程非常方便。此系统的软件分以下几个部分:发送端的上位机软件由VC开发,主要实现控制程序到HEX文件的转换及通过串口和单片机89S52向EEPROM25AA320的下载。其中温度采集系统的控制程序实现对24E1的配置、利用片内51核进行温度等的采集、并将采集到的数据通过射频模块发送;接收端将收到的温度信息送到串口显示。远程下载系统的控制程序实现24E1的配置和发送对接收端进行下载编程的程序;接收端将收到的程序导入负责程序执行的4KB RAM中,对于它相连的设备进行控制或将运行结果显示出来。
(1)上位机下载软件
将转换成HEX格式的文件向串口下载,同时在后台运行烧入89S52的下载控制程序,不断监测串口是否有数据输出,一旦发现则通过单片机的SPI总线下载到外部ROM。EEPROM25AA320是SPI接口的存储器,有标准的控制信号SDO、SCK、SCI,在SCK脉冲的上升沿进行数据的写入,每次写入都要将25320的CS信号选通,同时将WP(写保护)信号关掉,这同时也断掉了25320到24E1方向的通路。写入EEPROM的数据都要以以下格式传送:
其中SPEED和XO_FREQ为VC界面上的下载速度和晶振频率。
程序下载完毕后,继电器控制射频模块上电,软件将WP信号置位,就切断了程序下载过程,也将程序存储器与24E1之间的通路打开,nRF24E1通过SPI口与EEPROM进行连接。上电后,电路可在512BROM中存储的引导程序的控制下,通过SPI总线将EEPROM中存储的用户程序传送至nRF24E1的4KBRAM程序运行空间中,从而把控制的任务转到用户程序。这样,24E1内部的单片机就开始执行控制程序的工作了。
(2)无线收发协议及流程
射频模块的无线传输有两种模式:ShockBurstMode和DirectMode,24E1只支持前者,这种技术使用片上的FIFO的方式在8051MCU与射频模块之间进行数传,保证了较低的数据传输率(10Kbps)和较高的数据发送速率(可达1Mbps),从而节省了能量。数据在空中传输的帧格式如下:
地址和数据字段的长度在配置24E1时均可定义,PRE-AMBLE和CRC校验字段均为系统在成帧后自动加上。
发送流程如下:
接收流程如下:
发送和接受都由8位RADIO寄存器控制,发送时定义了两个通道的时钟和一位数据;接收时受PWR_UP、CE、CS信号联合控制,要严格遵守时序。
由于系统要设计一对多机的通信过程,所以要应用到跳频技术。在传统的调频通信技术中,使传输频率以突发脉冲序列为基础进行跳变,不同突发脉冲序列上的数据采用不同的频率进行传送。在本套系统中,24E1的频段是2400MHz~2527MHz范围,定义:ChannelRF=2400MHz+RF_CH*1.0MHz,由于24E1是一发二收的机制,发送端同一频点(RF_CH)的两个接收通道(channel)频率相差8MHz,都在初始化时由相应的寄存器控制。
需要提出的是,在远程程序下载系统中,在接收端的程序设计要相对复杂一些。它收到的是对其它设备进行控制的程序,有两个办法:一是将整段程序送到与之相连的带MCU的设备处理;二是在24E1内再写一段bootloader,将接收的程序引导入内部的程序执行区域,由8051运行并输出结果。两种方法都可行,开发人员可视具体系统而定。
3.创新点与完善
本论文完成的整个系统投入较低,作为无线传输设备,nRF系列单片机易于开发,通信协议简单,只要掌握51的编程规范,很容易上手。另外,结合各类传感器的使用,nRF系列单片可用于多种数据的采集;可以在此基础上,方便地开发无线传感网络的节点。可用软件完成跳频通信,实现点对多点的数据传输。该系统用于无线编程下载,也有很大的应用前景,国外很多基于无线的编程控制系统已投入使用。目前,USB这种即插即拔的接口设备以其方便的特性有越来越多的应用,在此系统的基础上,可用一块CP2102(USB转串口芯片)用USB代替串口,实现更大的应用价值。
日前,ZigBee(802.15.4)技术已成为无线传输的热点,它以低功耗、低成本、时延短、容量大等特点,被业界认为是最有可能应用在工控场合的无线方式。它同样使用2.4GHz波段,采用跳频技术。我们完成的基于nRF24E1的系统还可以参照ZigBee协议,进一步拓展通信协议,实现更完善的功能。
参考文献
1.NORDICnRF24E1PRELIMINARY PRODUCT SPECIFICATION http://www.nordicsemi.no/
2.nRF24E1PCB设计指南
3.肖金球.《单片机接口技术》[M]北京:清华大学出版社2004
4孙利民.无线传感器网络[M]北京:清华大学出版社2005