1.引言
随着嵌入式系统和无线网络的发展,两者已能紧密结合在一起。而且随着无线应用领域的扩大,工作在ism(工业、科学和医学)标准的2.4ghz自由免费频段,已成为研究的焦点。例如wi-fi、bluetooth、zigbee等无线传输协议都是应用在2.4ghz频段上,并以其数据率高、节点分布广等特点广泛的应用于科研、家庭、军事等各个领域。本文研究的系统以nordicnrf24e1无线芯片为基础,它是一款带增强型8051内核的无线收发模块,适用于各种无线设备互联的应用场合,工作于ism频段,有125个频点,能够实现点对点、点对多点的无线通信,同时可采用改频和跳频来避免干扰。该系统已应用于无线环境参数(包括温度、湿度、红外信号等)的采集和处理;无线远程下载,可适用于将动态变化的控制程序下载到不断移动的设备上,来控制其做出不同的反应,例如机器人的遥控、超级市场的动态价格指示等等。
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校验字段均为系统在成帧后自动加上。
发送流程如下:
接收流程如下:
发送和