射频SoCnRF9E5及无线数据传输系统的实现
摘要:介绍最新51兼容的射频SoC(片上系统)nRF9E5的系统框架、各个组成部分、工作方式和配置方法;分析无线数据传输系统的结构和运用nRF9E5进行无线数据系统设计的通信协议;给出系统的硬件原理图和程序流程图;归纳nRF9E5在无线数据传输系统设计中的优势。
关键词:nRF9E5 射频SoC 数据传输 无线通信 51系列
引言
nRF9E5是Nordic VLSI公司于2004年2月5日推出的系统级RF芯片,其内置nRF905 433/868/915MHz收发器、8051兼容微控制器和4输入10位80ksps A/D转换器,是真正的系统级芯片,如图1所示。内置nRF905收发器与nRF905芯片的收发器一样,可以工作于ShockBurst(自动处理前缀、地址和CRC)方式。内置电压调整模块,最大限度地抑制噪音,为系统提供1.9~3.6V的工作电压,QFN5×5mm封装,载波检测。nRF9E5符合美国通信委员会和欧洲电信标准学会的相关标准。由于nRF905功耗低,工作可靠,因此很适用于无线数据传输系统的设计。
图1
1 nRF9E5功能介绍
1.1 nRF9E5硬件
(1)微控制器
nRF9E5的片内微控制器与标准8051兼容,指令时序与标准8051稍有区别。典型的区别是:nRF9E5的片内微控制器的指令周期为4到20个指令周期。中断控制器支持5个扩展中断源:ADC中断、SPI中断、RADIO1中断、RADIO2中断和唤醒定时器中断。片内控制器还有3个与8052相同的定时器。1个和8051相同的串口,可以用定时器1和定时器2来作为异步通信的波特率产生器。此外,还扩展了2个数据指针,以方便于从XRAM区读取数据。微处理器中有256B的数据RAM和512B的ROM。上电复位或软件复位后,处理器自动执行ROM引导区中的代码。用户程序通常是在引导区的引导下,从EEROM加载到1个4KB的RAM中,这个4KB的RAM也可作存储数据用。NRF9E5的大部分寄存器和标准8051相同,只是增加了一些特殊功能寄存器,如RADIO(P2)、ADCCON、ADCDATAH、ADCDATAL、ADCSTATIC、PWMCON、PWMDUTY、RCAP2L、RCAP2H、CKLFCON等。nRF9E5中的P0、P1和P2口寄存器地址和标准8051中的相同,都是0x80、0x90、0xA0,但功能和标准8051中的有所不同。
javascript:window.open(this.src);" style="cursor:pointer;"/>
(2)CKLF时钟、RTC唤醒定时器、GPIO唤醒和WTD
nRF9E5内有一个低频的时钟CKLF,该时钟常开。当晶振开始工作后,CKLF频率为4Hz;晶振不工作时,CKLF是一个低功耗RC晶振器,只要VDD≥1.8V,其连续工作。RTC唤醒定时器、WTD(看门狗)和GPIO唤醒全都工作在CKLF频率,以保证芯片功耗工作时能够完成这三个功能。RTC唤醒定时器是一个24位可编程控制的递减计数器,WTD则是一个16位可编程控制递减计数器。RTC唤醒定时器和WTD的循环周期一般在300μs~80ms,默认为1ms。RTC唤醒定时器也能作GPIO的输出源,也就是说,当RTC唤醒定时器初始化时间发生溢出时,能够产生一个用作GPIO输出的程序脉冲。
(3)SPI接口和A/D转换器
SPI(串行外设接口)的接口引脚有MISO(接收EEPROM的SDO送来的数据)、SCK(给EEPROM的SCK提供时钟信号)、MOSI(送数据到EEPROM的SDI)、EECSN(给EEPROM的CSN送使能信号)。SPI口的MISO、SCK和MOSI与P1口的低3位重用,通过寄存器SPI_CTRL控制来控制功能间的撤换。SPI硬件不产生任何片选信号,可以用GPIO口来进行片选。通常,系统上电时,SPI自动和片外25320相连。当程序加载完成后,MISO(P1.2)、MOSI(P1.0)可能会用作其它用途,比如其它的SPI器件或GPIO。
nRF9E5片内有10位ADC,A/D转换参考电压可以通过软件设置在AREF和1.22V之间(内部参考电压)。A/D转换器的4个输入可通过软件进行选择,通道0~3可以把对应引脚AIN0~AIN3上的电压值分别转换为数字值,通道4用于对nRF9E5工作电压的监控。A/D转换器默认工作于10位方式,可通过软件使其工作于6位、8位或12位方式。
图3
(4)射频收发器
nRF9E5收发器通过内部并行口或内部SPI口与其它模块进行通信 ,具有同单片射频收发器nRF905相同的功能。收发器通过片内MCU的并行口或SPI口与微控制器通信,数据准备好,载波检测和地址匹配信号能够作为微控制器和中断。
nRF905工作于433/868/915MHz ISM频段。收发器由1个完事的频率合成器、1个功率放大器、1个调节吕和2个接收器组成。输出功率、频道和其它射频参数可通过对特殊功能寄存器RADIO(0xA0)编程进行控制。发射模式下,射频电流消耗为11mA,接收模式下为12.5mA。为了节能,可通过程序控制收发器的开/关。
1.2 nRF9E5的收发方式
不同于nRF401和nRF903,nRF9E5使用SPI接口进行单片机与无线模块间的数据传输。这部分在nRF9E5片内的8051内核与nRF905射频收发器之间完成。nRF9E5片内的8051内核与nRF905射频收发器之间完成。nRF905片内的8051内核与nRF905射频收发器之间完成。nRF9E5的收发器有三种工作方式,ShockBurst接收(RX)方式、ShockBurst发送(TX)方式和空闲方式。当收发器在空闲方式下,微控器依然在运行。javascript:window.open(this.src);" style="cursor:pointer;"/>
nRF9E5使用Nordic VLSI公司的ShockBurst的特性,进行高速的数据传输。与射频数据相关的协议由nRF9E5片内的nRF9E5收发器自动处理。nRF9E5只用简单的SPI接口便能和nRF9E5进行数据传输,数据传输的速度取决于SPI接口的速度,这个可以在nRF9E5片内8051内核中进行配置。ShockBurst实现低速数据输入,高速数据输出,从而降低了系统的平均能耗。在ShockBurst接收方式下,当收到一个有效地址的射频数据包时,地址匹配寄存器位(AM)和数据准备好寄存器位(DR)通知片内MCU把数据读出。在ShockBurst发送方式下,nRF9E5自动给要发送的数据加上前缀和CRC校验。当数据发送完后,数据准备好寄存器位(DR)会通知MCU数据已经处理完毕。
当系统没有发送和任务时,其进入空闲方式,nRF9E5在空闲方式下,一旦有任务要处理时,其能够在很短的时间内就进入ShockBurst接收方式和ShockBurst发送方式。空闲方式下,晶体振荡器依然工作,配置字中的内容不至于丢失。
1.3 载波检测
在ShockBurst接收方式下,当出现nRF9E5工作信道内的射频载波时,载波检测引脚(CD)被置高,这个特性很好的避免了同一工作频率下不同发射器数据包之前的碰撞。当收发器准备发射数据时,它首先进入接收方式并探测所工作的信道是否空闲。载波检测的标准一般比灵敏度低5dB,比如,灵敏度为-100dBm,载波检测功能探测低至-105dBm的载波。也就是说,载波低于-105dBm,载波检测信号为低(一般为0),高于-95dBm,则载波检测信号为高(一般为VDD),介于-105~95dBm之间,载波检测信号可能为低也可能为高。
2 无线数据传输系统
2.1 系统组成
无线数据传输系统有点对点,点对多点和多点对多点三种。本系统由于实际应用的需要,由于位PC机,主接收器和多台数据终端组成。主接收器和数据终端之前的数据传输通过nRF9E5进行,构成点对多点多无线数据传输系统。整个系统中,PC机和数据终端之间的无线通信采用433MHz的频段作为载波频率。为了避免同频干扰的问题,系统采用TDMA(Time Division Multiple Access)通信技术。主接收器采用逐一扫描的方式探测各个数据终端有没有收发通信请求或其它任务;数据终端则采用中断方式,对主接收器发出的地址信息进行处理,若与本机地十相符则执行命令。由此可见,上位PC机与数据终端的通信转化为主接收器与数据终端间的通信,以及PC机与主接收通过串口(USB或UART)间的通信。整个无线数据传输系统的结构如图2所示。
2.2 通信协议
通信协议是通信双方为实现信息交换而制定的规则。本系统采用时分多路访问通信技术(TDMA),将点对多点的通信方式转化为点对点的通信,因此必然涉及信源与信宿之间建立通信连接时的地址匹配问题。由于主接收器与数据终端之间的通信可能会受到其它数据终端或外界环境的干扰而发生错误,因此,需要通信协议来保证数据传输的可靠性。
nRF9E5只有一种协议格式,其中的前缀也就是数据,设备地址包括本机的地址和主接收器的地址,CRC校验可进行选8位或16位。
3 无线数据传输系统的实现javascript:window.open(this.src);" style="cursor:pointer;"/>
3.1 系统硬件
图3为无线数传系统中主要接收器的硬件原理图。数据终端的硬件原理与图3类似,只不过没有与PC机相接的串口部分,并且GPIO口和A/D转换口号相应的数据输入端相连,如温度传感器和中断信号等。ANT1和ANT2为天线连接引脚,可采用PCB环形差分天线,晶振工作频率为16MHz。25AA320为EEPROM,在nRF9E5上电后,系统根据引导程序,把25AA320中和程序代码拷贝到nRF9E5的4KB RAM中。LM1117为电源管理模块,把5V电平转化为nRF9E5可用的3.3V。MAX3232CSE为nRF9E5串口与PC串口间通信的电平转换芯片。由图3可知,用nRF9E5进行无线数据传输系统设计非常方便。nRF9E5的外形尺寸非常小,在对外形尺寸要求很严格的场合,nRF9E5更使用。
3.2 系统软件
无线数据传输主要由无线数据终端、主接收器和PC机组成,PC机与主接收器间用串行口通信。整个系统的各个部分都是服务于无线数据传输这个目的。所以,在整个系统的软件设计中,无线数据的传输为最主要部分。如图4和图5所示,是无线数据传输的接收和发送流程。软件设计应根据通信协议并考虑数据的纠错,检错可采用CRC校验8位或16位方式。在图4、图5中,TRX_CE发送和接收使能寄存器位,DR为数据准备寄存器位,AM为地址匹配寄存器位,AUTO_RETRAN为自动重发寄存器位。
4 结论
利用射频无线片上系统nRF9E5,容易实现小尺寸、高稳定性的无线数据传输系统,433/868/915MHz三个工作频段可根据使用需要进行选择。nRF9E5片内的UART方便于实现与PC机间的串行通信,其片内的A/D转换器方便于进行数据采集。nRF9E5的ShockBurst技术和电源监管技术,使得无线数据传输系统的功耗更低,设计中为节约用电而编写的程序代码也更少。