Si4432无线收发系统方案设计无线收发系统框图如下:无线收发芯片Si4432和msp430f1611单片机的无线射频收发系统。该系统由发送模块和接收模块组成。发送模块主要将要发送的数据经msp430f1611处理后,通过Si4432发送出去;在接收模块中,Si4432则将数据正确接收后通过液晶显示出来,从而实现短距离的无线通信。该系统实现了低功耗、小体积、高灵敏度条件下的高质量无线数据传输。发送模块中的msp430f1611将数据传送给Si4432进行编码处理,并以特定的格式经天线发送给接收模块。接收模块对接收到的射频信号放大、解调之后,再将数据送给主控制器msp430f1611进行相应的处理,如送液晶显示等。系统提供了液晶人机交互界面,还留有RS232接口可以实现与PC机通信。1无线收发芯片Si4432Msp430f1611控制模块串口通信max232USB供电系统发送模块Si44322.4寸液晶显示模块30MHz晶振8MHz晶振Msp430f1611控制模块串口通信max232USB供电系统接收模块Si44322.4寸液晶显示模块30MHz晶振8MHz晶振图1:无线收发发送模块图1:无线收发接收模块Si4432芯片是SiliconLabs公司推出的一款高集成度、低功耗、多频段的EZRadioPRO系列无线收发芯片。其工作电压为1.9~3.6V,20引脚QFN封装(4mm×4mm),可工作在315/433/868/915MHz四个频段;内部集成分集式天线、功率放大器、唤醒定时器、数字调制解调器、64字节的发送和接收数据FIFO,以及可配置的GPIO等。Si4432在使用时所需的外部元件很少,1个30MHz的晶振、几个电容和电感就可组成一个高可靠性的收发系统,设计简单,且成本低。Si4432的接收灵敏度达到-117dB,可提供极佳的链路质量,在扩大传输范围的同时将功耗降至最低;最小滤波带宽达8kHz,具有极佳的频道选择性;在240~960MHz频段内,不加功率放大器时的最大输出功率就可达+20dBm,设计良好时收发距离最远可达2km。Si4432可适用于无线数据通信、无线遥控系统、小型无线网络、小型无线数据终端、无线抄表、门禁系统、无线遥感监测、水文气象监控、机器人控制、无线RS485/RS232数据通信等诸多领域。2控制芯片msp430f1611强大的处理能力MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在8MHz晶体驱动下指令周期为125ns。这些特点保证了可编制出高效率的源程序。在运算速度方面,MSP430系列单片机能在8MHz晶体的驱动下,实现125ns的指令周期。16位的数据宽度、125ns的指令周期以及多功能的硬件乘法器(能实现乘加)相配合,能实现数字信号处理的某些算法(如FFT等)。MSP430系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的备用状态时,用中断请求将它唤醒只用6us。超低功耗MSP430单片机之所以有超低的功耗,是因为其在降低芯片的电源电压及灵活而可控的运行时钟方面都有其独到之处。首先,MSP430系列单片机的电源电压采用的是1.8~3.6V电压。因而可使其在1MHz的时钟条件下运行时,芯片的电流会在200~400uA左右,时钟关断模式的最低功耗只有0.1uA。其次,独特的时钟系统设计。在MSP430系列中有两个不同的系统时钟系统:基本时钟系统和锁频环(FLL和FLL+)时钟系统或DCO数字振荡器时钟系统。有的使用一个晶体振荡器(32768Hz),有的使用两个晶体振荡器)。由系统时钟系统产生CPU和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。由于系统运行时打开的功能模块不同,即采用不同的工作模式,芯片的功耗有着显著的不同。在系统中共有一种活动模式(AM)和五种低功耗模式(LPM0~LPM4)。在等待方式下,耗电为0.7uA,在节电方式下,最低可达0.1uA。系统工作稳定。上电复位后,首先由DCOCLK启动CPU,以保证程序从正确的位置开始执行,保证晶体振荡器有足够的起振及稳定时间。然后软件可设置适当的寄存器的控制位来确定最后的系统时钟频率。如果晶体振荡器在用做CPU时钟MCLK时发生故障,DCO会自动启动,以保证系统正常工作;如果程序跑飞,可用看门狗将其复位。3系统硬件设计(1)系统子电路:msp430及外围电路如下(2)无线收发芯片si4432及其外围电路:(3)功放芯片AD8353以及模拟控制芯片AS193硬件电路:(4)串口通信部分:(5)系统电源部分:4系统软件设计软件编程采用模块化设计思想,系统中各主要功能模块均编成独立的函数由主程序调用。功能模块包括:初始化程序(包括初始化msp430、SPI、Si4432),无线发送程序,无线接收程序等。无线发送程序负责写入数据载荷,并根据通信协议为数据载荷加上前导码、同步字、数据载荷长度及CRC校验字节,形成数据包将其发送出去;无线接收程序负责接收并检验数据包中的CRC字节,以确保接收到的数据的正确性。无线收发模块之间的通信是以数据包的形式发送的,本系统定义的数据包格式如下:其中,Preamble(前导码)是一连串的10101010,其数量为8n位,n的大小由用户编程决定。数据包在传输过程中会在每个包的前面加上可设置长度的前导码;接收端为了识别帧的到来,需要前导码进行帧同步,从而确定收发系统之间何时发送和接收数据。SyncWord(同步字)在前导码之后,要用设定好的同步字来作为同步模式的标志码。本系统设定的同步字为2个字节,同步字内容为0x2DD4,接收端在检测到同步字后才开始接收数据。PacketLength是数据载荷长度。PAYLOAD(有效数据载荷)是用户所发送的数据。CRC(CRC校验和)由内置CRC校检。Si4432内部集成有调制/解调、编码/解码等功能,从而Preamble、Syncword、PacketLength和CRC都是硬件自动加上去的,用户只需设定数据包的组成结构和部分结构的具体内容(如前导码和同步字)。本文以半双工通信为例,介绍通信的实现过程。编程环境为SilabsIDEV3.61,并在该编译环境下测试通过。SilabsIDE集成了源代码编辑、程序源代码级调试程序和在系统Flash编程器。同时支持第三方编译器和汇编器的使用,(1)初始化程序初始化程序包括msp430的初始化,SPI的初始化,以及Si4432的关于无线收发频率、工作模式、发射速率等内部寄存器的初始化配置。系统上电后,msp430处于默认状态,根据系统功能需求重新进行初始化配置。Msp430的数字交叉开关允许将内部数字系统资源映射到端口I/O引脚,可通过设置交叉开关控制寄存器,将片内资源配置到具体的端口I/O引脚上。这一特性允许用户根据自己的特定应用选择通用端口I/O和所需数字资源的组合,提高了应用的灵活性。本系统中,主要配置了SPI通信的4线,液晶LCD的数据线接口、控制线接口和RS232串口数据输入/输出等。初始化SPI时,可以通过对SPI1CFG寄存器和SPI1CN寄存器的配置来选择具体使用规则。这里,选择主SPI,4线模式,时钟极性为低电平,在时钟上升沿时对数据采样;通过配置SPI1CKR寄存器,可将同步时钟频率设为晶振频率的1/4。上电之初,Si4432也处于默认状态,需要进行配置才能工作。Si4432有70多个寄存器需要配置,它们决定了Si4432的工作模式,具体配置可以参考Si4432的数据手册。Si4432的初始化是一个重要的部分,配置的恰当与否对系统最终的通信效果有很大的影响。主控制器msp430通过SPI配置Si4432的1ch、1dh等寄存器,写入相应的初始化RF控制字(主要是频率、传输速度、传输方式等);通过配置33h、34h等寄存器来设置包的结构、前导码长度、同步字内容等。本系统采用同步传输模式,以0x2DD4作为同步模式的标志码,传输完同步字后才开始传输数据载荷。每次发送数据必须以同步字0x2DD4作为发送数据的同步标志,接收端在检测到同步字后才开始接收数据。(2)无线发送程序无线发送程序流程如图3所示。完成msp430、SPI和Si4432的初始化后,配置寄存器写入相应的初始化RF控制字。接下来,通过配置Si4432的寄存器3eh来设置包的长度,通过SPI连续写寄存器7fh,往TXFIFO里写入需要发送的数据。然后打开“发送完中断允许”标志,将其他中断都禁止。当有数据包发送完时,引脚nIRQ会被拉低以产生一个低电平从而通知msp430数据包已发送完毕。完成中断使能后,使能发送功能,数据开始发送。等待nIRQ引脚因中断产生而使电平拉低,当nIRQ引脚变为低时读取中断状态并拉高nIRQ,否则继续等待。如果数据发送成功,指示灯会变亮。一次数据发送成功后,进入下一次数据循环发送状态。(3)无线接收程序无线接收程序流程如图4所示。程序完成msp430、SPI接口和Si4432的初始化后,配置寄存器写入相应的初始化RF控制字。通过访问寄存器7fh从RXFIFO中读取接收到的数据。相应的控制字设置好之后,若引脚nIRQ变成低电平,则表示Si4432准备好接收数据。完成这些初始化配置后,通过寄存器4bh读取包长度信息。然后,打开“有效包中断”和“同步字检测中断”,将其他中断都禁止。引脚nIRQ用来检测是否有有效包被检测到,若引脚nIRQ变为低电平,则表示有有效的数据包被检测到。本系统用Ox2DD4作为同步模式的标志码,接收模块通过检测这个同步字来同步接收数据。最后,使能接收功能,数据开始接收。等待nIRQ引脚因中断产生而使电平拉低,读取中断标志位复位nIRQ引脚,使nIRQ恢复至初始的高电平状态以准备下一次中断触发的检测。通过SPI读取RXFIFO中的数据,将数据送至液晶显示,之后进入下一次数据接收状态。