基于ARM的无线数据传输系统设计
扫描二维码
随时随地手机看文章
摘要:介绍一种基于ARM微控制器来实现无线分布式的数据传输系统。网络节点硬件主要使用NXP公司的LPC1766作为微控制器、Nordic公司的nRF905作为射频芯片。软件以C语言和汇编语言编制,采用多层次结构设计。由于nRF905芯片的各种优越性,该系统具有较强的抗干扰能力,具有较高的实用价值。
关键词:LPC1766;Codex-M3;无线数据传输;nRF905
随着21世纪社会经济的迅速发展,人们对能够随时随地提供信息服务的移动计算与宽带无线通信的需求越来越迫切。在工业生产中,常常需要采集大量的现场数据,如温度、重量、气压等,并将这些数据传输到主机进行处理,由主机根据处理的结果,将控制信号传输给现场执行模块进行各种操作。可以看出数据不管是从采集设备到处理终端,还是从监测控制指令从处理终端到采集设备,均需经过传输过程这一重要环节。但当有线网络不通畅或由于现场环境因素的限制不便架设线路的情况下,使用无线通信技术进行数据采集、传输显得更加实用、高效、快捷。
1 无线数据传输系统工作原理
如图1所示,整个系统首先用传感器将现场信号转换为电信号,经过模/数转换器ADC采样、量化、编码后转换成数字信号,送到微控制器进行初步处理,然后利用nRF905无线数据传输芯片通过无线方式将有效数据发送给接收端,接收端在接收到有效数据后通过串行口将数据送到输出设备并且对有效数据的进一步的处理。
1.1 ARM微控制器LPC1766
LPC1766芯片使用高性能的ARM CortexTM-M3 32位的RISC内核,工作频率为100 MHz。它内置高速存储器(高达512 k字节的闪存和64 k字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。该板包含8通道12位的ADC和10位的DAC、4个通用16位定时器、电机控制PWM接口以及多个标准和先进的通信接口:多达3个I2C、SPI、2个I2S、1个SDIO、4个USART、一个USB Host/Device/OTG接口和两个CAN、Ethern et MIC接口、Quadrature Encoderinterface。LPC1766芯片工作于-40~+105℃的温度范围,供电电压为2.0~3.6 V。它的一系列省电模式突显出了它的低功耗的特点。丰富的外设配置,使得LPC1700微控制器适合于多种应用领域:电机驱动和应用、控制医疗和手持设备汽车电子等领域。
1.2 nRF905无线数据传输模块
nRF905是Nordic VLSI公司推出的单片射频收发器,工作电压为1.9~3.6 V,工作于433 MHz、868 MHz、915 MHz 3个ISM频段,频道转换时间小于650μs,最大数据速率为100 kbit/s。nRF905可以自动完成处理字头和CRC(循环冗余码校验)的工作,可由片内硬件自动完成曼彻斯特编码/解码,使用SPI接口与微控制器通信,配置非常方便,其功耗非常低。nRF905工作模式主要包括活动模式和节电模式。在活动模式下,数据能低速从处理器进入,然后高速发射出去;同时,发送数据时可以自动生成数据帧头并计算CRC校验和。接收数据时具有载波检测功能,并对接收的代码进行地址检测,并计算CRC以保证数据的准确性。
2 无线数据传输系统硬件设计
无线数据传输系统硬件以LPC1766微控制器及其外围部件为基础,通过串口收发数据并控制无线传输模块,最终达到系统要求。
2.1 微控制器模块的设计
本设计中采用AMR微控制芯片LPC1766,其有100个引脚,70多个输入输出端口,其他端口用来与电源、地及电阻等相连;还有看门狗时钟、实时时钟、10位8信道的数模转换等。其中LPC1766与nRF905通过SIP协议进行通讯。
2.2 无线传输模块的设计
无线数据传输主要利用单片机LPC1766对无线射频芯片nRF905的控制实现的。发送过程如下:首先LPC1766通过SPI接口对nRF905的各种配置寄存器(如通讯频率、本机地址、目标地址、数据长度等)进行设置,并将要发送的数据放入发送存储区中;然后LPC1766将TRX_CE和TX_EN置高,使nRF905开始传输,nRF905启动射频部分电路,完成数据打包,用GFSK的方式以100 kbps的速率将数据传出;如果AUTO_RETRAN被设置为高,nRF905重复发送数据直到’FRX—CE被设置为低;传输完成时,如果TRX_CE被置为低,nRF905自动进入待机状态。[!--empirenews.page--]
接收过程如下:先通过设置TRX_CE和TX_EN为低,选择接收状态;经650μs,nRF905开始检测空中的信号;当nRF905检测到接收频率上的载波,载波检测(CD)引脚置高;当收到有效地址时,地址匹配(AM)引脚置高;当有效的数据包被接收时,即CRC检测正确,nRF905打开数据包,去掉包头包尾并将接收数据或发送数据准备(DR)引脚置高;MCU将TRX_CE引脚置低从而进入待机状态,通过SPI接口将数据取出;数据被取出后,nRF905重新将DR与AM引脚置低。
3 无线数据传输系统软件设计
本设计制只实现了点到点之间的通讯。要实现这一步主要是要通过对LPC1766和NRF905进行适当的配置,对NRF905的收发程序进行编写及对LPC1766管脚功能进行配置。在发送端,为了尽可能的节约电能,一开始把NRF905设置为STANDBY静电模式,并把SPI_CSN置为无效,这样一方面可以达到节能的效果,同时又可以随时监测是否有数据要发送。当有数据发送时,再改变为发送模式,并置SPI_CSN为有效开始片选,发送端和接收端程序流程图如图3和4所示。
4 结论
系统调试成功后,进行了多次数据传输实验。本系统通过了实际数据通信实验的验证,运行稳定,通信可靠,能够实现50米左右的无线通信。本系统可以应用于点对点、点对多点通信的一些实际工作环境中。