基于nRF905模块和C8051F单片机的无线收发系统设计
图2 无线收发电路系统组成框图
C8051F350是Silabs公司的一款精确混合信号单片机,片内有8通道16bit的S-D型ADC、128倍PGA、电流型DAC以及VREF 等模拟外设,可以方便地与温度压力等传感器直接连接。使用电流型DAC对传感器进行激励,传感器的输出信号经片内128倍PGA放大后进行A/D转换,无需额外的信号调理电路。片内8K FLASH,可在线编程和改写,传感器的标定参数可以在FLASH中存储,节省片外存储器。图3为系统硬件电路图。
图3 nRF905与MCU的电路原理图
软件设计
本系统中的无线数据传输主要由无线数据收发器nRF905、C8051F单片机和显示部分组成。nRF905收发器与单片机之间通过SPI口进行通信。因此,软件设计过程中的重点是nRF905数据的发送和接收过程。
nRF905的数据发送过程
发送数据时的工作流程如图4所示。当MCU有遥控数据节点时,接收点的地址 (TX- address) 和有效数据 (Tx- payload) 将通过SPI接口传送给nRF905。设计时应使用协议或MCU来设置接口速度。可用MCU设置TRX-CE,并使TX- EN为高电平来激活nRF905的ShockBurst传输。通过nRF905的ShockBurst可使无线系统自动上电,并完成数据包 (应加前导码和CRC校验码) 的数据码发送。
图4 发射数据流程
nRF905的数据接收过程
当系统接收数据时,其接收数据流程图如图5所示。系统的工作过程如下:
首先,在650μs以后,nRF905将不断监测空中的信息。当nRF905发现有和接收频率相同的载波时,其载波检测 (CD) 被置为高电平;此后,当nRF905接收到有效地址时,地址匹配 (AM) 被置为高电平;当nRF905接收到有效的地址包 (CRC校验正确) 时,nRF905将去掉前导码、地址和CRC位,同时将数据准备就绪位 (DR)置为高电平,并用MCU设置TRX- CN为低电平,以进入standby模式,从而使MCU能够以合适的速率通过SPI接口读出有效的数据;当所有的数据读出,nRF905将AM和DR设置为低电平,以便使nRF905准备进入ShockBurst RX、ShockBurst TX或Powerdown模式。