基于Si4432的无线射频通信模块的设计与实现_第1页
基于Si4432的无线射频通信模块的设计与实现_第2页
基于Si4432的无线射频通信模块的设计与实现_第3页
基于Si4432的无线射频通信模块的设计与实现_第4页
基于Si4432的无线射频通信模块的设计与实现_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、收稿日期:20110402作者简介:李正民(1953,男,河南郑州人,硕士,教授,主要研究方向为嵌入式物联网;王建辉(1985,男,河南周口人,硕士研究生,主要研究方向为嵌入式物联网。基于Si4432的无线射频通信模块的设计与实现李正民,王建辉,刘伟伟(郑州大学信息工程学院,河南郑州450001摘要:针对无线自组网在组网中所需的低功耗、近距离的无线通信模块,设计并实现了一款基于C8051F930单片机和Si4432无线射频芯片的无线通信模块,介绍了系统的架构,并对其硬件和软件设计中的关键技术进行了说明。测试表明,该无线通信能够满足无线自组网对无线通信模块的近距离、低功耗和高质量无线数据传输的要

2、求,同时简化了组网的设计。关键词:无线自组网;C8051F930;Si4432;低功耗中图分类号:TP274文献标识码:A 文章编号:10008829(201204004004Design and Implementation of Wireless RF Communication ModuleBased on Si4432LI Zheng-min,WANG Jian-hui,LIU Wei-wei(College of Information Engineering,Zhengzhou University,Zhengzhou 450001,ChinaAbstract:A low-powe

3、r,short range wireless communication module is needed in the design of wireless Ad-hocnetworkA wireless communication module based on C8051F930and Si4432is designed and implementedThe system architecture and the key technologies in the design of hardware and software are describedTesting results sho

4、wed that this module can meet the low-power,high-quality wireless data transmission that required inthe design of wireless Ad-hoc networking,while simplify network designingKey words:wireless Ad-hoc;C8051F930;Si4432;low-power 无线数据的收发在无线自组网的组网设计中占有很大的比重。在组网的设计中,如果数据收发的任务能够完全交给一种透明的无线通信模块来完成1,那么工程人员就可

5、以只关注与网络有关的业务层的任务,从而缩短组网的开发周期和提高网络的稳定性。为此,设计了一种基于Si4432+C8051F930的与业务无关的通用无线通信模块。1系统总体框架系统总体框架图如图1所示。系统主要由微控制器C8051F930(简称MCU 和无线射频收发芯片Si4432组成,性能指标表明它们是业界目前性价比“最高”的嵌入式无线解决方案2。硬件部分由底座和无线收发模块两部分组成,底座由微控制器、USB 和电源组成;无线收发模块由RF 无线射频芯片Si4432和一个单极433MHz 天线组成,两部分通过SPI 接口进行互联通信 。图1系统总体框架图11系统硬件设计系统底座部分的微控制器选

6、择的是Silicon Labs 公司推出的业界第一款能在0.9 3.6V 电压范围内工作的C8051F930。C8051F930器件是完全集成的低功耗混合信号片上系统型MCU 3。芯片内部集成了64KB 的片内Flash 存储器和4352B 的片内RAM ;具有片内上电复位、VDD 监视器、看门狗定时器和时钟振荡器,支持快速唤醒和最低0.9V 的供电,实现了一种真正的SoC (system on chip 解决方案。Si4432是Silicon Labs 公司新近推出的一款高度集成的、低功耗、多频段的EZRadioPRO 系列无线收发芯片。Si4432所具有的+20dB 的功率放大器(它是目前

7、唯一集成此功放的RF 芯片能够确保扩大通信范围和改进链路性能,它独有的支持频率跳变、TX /RX 转换控制和内置天线分集转换控制功能能够进一步扩大通信距离和提高通信性能。Si4432素有“距离之王,穿墙之王”之称(空旷距离可至2000m ,可穿越10层墙4,在配合微控制器使用时,外围只需要配合一个晶振和很少的组件就可以组成一个高可靠性、低成本的收发系统,因此能够很好地满足无线自组网对通信节点性能的要求。C8051F930内置两个完全相同的、灵活的全双工同步增强型串行外设接口(SPI0和SPI1,通过SPI0对Si4432的内部寄存器进行读写操作,灵活配置各项参数,完成对Si4432的初始化配置

8、,访问FIFO 读写数据等操作。使用SPI0的三线单主模式,即MOSI0、MI-SO0、SCK ,MOSI0用于从C8051F930到Si4432的串行数据传输;MISO0用于从Si4432到C8051F930的串行数据传输;SCK 用于同步二者在MOSI0和MOSI0线上的串行数据传输。12系统软件实现系统的软件流程如图2所示。系统软件使用基于Keil Vision3环境的KeilC51语言进行开发。采用模块化设计思想,系统中所使用的主要功能模块都编译成独立的函数供主程序调用。模块的功能主要是完成对MCU 和Si4432及SPI 的初始化配置,与主机通信;根据Si4432所要完成功能的要求,

9、配置相应的寄存器,完成无线数据的发送和接收 。图2软件流程图Si4432芯片支持包(Packet 和流(Stream 两种方式收发数据,为了便于组网的设计,选择数据包的方式(通过将30h 寄存器中的enpacrx 位和enpactx 位置1实现,系统中设计的数据包格式如表1所示。表1数据包格式Preamble Sync Word Packet Length PAYLOAD CRC 4B0x2DD40 1B用户配置CRC-16表中,Preamble (前导码是一连串的01代码,由0开头,其个数由用户编程设置,用来同步通信节点的时钟,决定何时进行数据包传输;Sync Word (同步字在前导码之后

10、,作为接收方判断数据帧是否有效的标志,设定同步字为0x2DD4,用以保证通信的健壮性;Pack-et Length 是数据载荷的长度,由发送方在发送数据载荷时动态写入;PAYLOAD (有效数据载荷是由用户填入的要发送的实际通信数据;CRC (校验和由Si4432内置的CRC-16算法对要传输的数据帧进行校验和纠错,防止受到噪声干扰。利用Si4432内部集成Auto Packet Handing (自动包处理器等功能,发送时把数据包格式中的Preamble 、Sync Word 、Packet Length 和CRC 由硬件自动加载到相应的寄存器中,形成完整的包;接收时各个域分别存放到相应的寄

11、存器中。从而减少了Si4432芯片和MCU 之间的通信量,有效降低了MCU 的负担和功耗,同时也便于组网的设计(通过配置数据包的地址域来识别节点。121C8051F930软件编程C8051F930为一个支持混合信号的SoC ,在系统上电后,处于默认状态,应根据系统功能要求重新进行初始化配置。可以根据可视化的配置工具或者寄存器的定义来对微控制器进行初始化,初始化的内容包括I /O 端口、定时器、UART 、SPI0、振荡器以及中断的开启等。C8051F930的优先权交叉开关译码器允许将内部数字系统资源映射到端口I /O 引脚,可通过设置交叉开关控制器寄存器,将片内资源配置到具体的端口I /O 引

12、脚上。这一特性允许用户根据自己的特定应用选择通用端口I /O 和所需数字资源的组合,提高了应用的灵活性。本文选择SPI0的三线单主模式,用于MCU 访问Si4432寄存器。下面是MCU 主要的初始化程序:void InitHw (void PCA0MD = 0x40;PCA0MD =0x00;/初始化看门狗定时器P0MDOUT |=0x10;XBR0=0x01;/UART0的TX0/RX0连接到端口引脚P04和P05XBR2=0x40;/交叉开关使能P0SKIP=0xCF;/端口P04和P05配置为GPIO端口引脚P1SKIP=0x07;XBR0=0x03;XBR2=0x40;OSCICN|=

13、0x80;/使能内部精确振荡器RSTSRC=0x06;/使能时钟丢失检测器(MCD和掉电复位CLKSEL=0x00;/选择精确内部振荡器P0MDIN|=0x03;/端口0的相应位输入方式的配置P0MDOUT|=0x03;/端口0的相应位输出方式的配置(推挽方式SetHwMasterSpi(;EnableGlobalIt(;/使能总中断SPI初始化程序:void SetHwMasterSpi(voidSPI0CFG=0x40;/SPI0工作MASTER模式SPI0CN=0x00;/SPI0工作3线单主模式,使能SPI0SPI0CKR=(SYSCLK/(2*SPI_CLOCK1;/系统时钟频率为2

14、45MHz,SPI0时钟为400KHzSPI0EN=1;/SPI0使能RF_NSEL_PIN=1;/片选引脚拉高122Si4432芯片软件编程(1Si4432缺省配置。Si4432共有128个寄存器(0x00 0x7F,控制着芯片的功能和记录着芯片的状态。系统上电后,芯片处于默认状态,需要根据功能需求进行寄存器的初始化配置,具体配置可以通过Silicon Lab提供的EZRa-dioPRO Register Settings对寄存器进行初始化配置。微控制器C8051F930通过SPI0对它们进行访问。SPI 是位(bit可配置的,其默认为MSB在前与MCU的读写顺序相同。一次SPI传输一个16

15、-bit命令序列,包括Read-Write(1-bit,R/W=0,表示读操作,R/W=1,表示写操作选择位,紧跟着地址(ADDR,7-bit域,后面是数据(DATA,8-bit域。每次可以读写一个或多个字节,它们由时钟信号控制,SPI接口提供了对读/写连续寄存器的突发(burst读/写功能,在读写操作完成后,如果时钟信号继续有效,那么地址将会自动加1,对下一个寄存器进行读写操作,而不用重新发送SPI地址。利用Si4432自带的两个64B的FIFO缓冲区,进行数据的发送和接收,通过使能寄存器0x71H (Modulation Mode Control2,设置dtmod1:0=01,开启FIFO

16、模式。为了提高模块传输信号的质量,增大发射距离,保证数据传输的可靠性,系统使能数据白化(使能0x70h的enwhite位为1、曼彻斯特(Man-chester编码(使能0x70h的enmanch位为1、CRC校验(使能0x30h的encrc位为1和采用GFSK(高斯频移键控调制(设置0x71h的modtyp1:0=11等。(2芯片状态转换。针对特定的应用,Si4432提供了几种不同的操作模式,根据系统所使用的通信协议,选择特定的工作模式,从而在系统唤醒时间和功耗之间达到一个最佳平衡。状态机模型如图3所示。合理选择芯片的状态,可以实现系统资源的最优化配置。这些状态之间在满足一定的条件时可以相互转

17、化。关闭(SHUTDOWN和空闲(IDLE是芯片的两种低功耗状态,为了方便用户的灵活配置,IDLE又分为挂起、传感器、休眠、准备和调谐5种不同的状态。发送(TX和接收(RX是两种激活(Active状态,它们完成无线数据的收发。除了关闭模式外,其余状态都可以通过SPI接口实现动态配置转换。通过设置寄存器0x07实现状态的快速切换,这种快速切换主要表现在两个方面:当设置寄存器中的相应状态位时,状态立即发生切换(200s;在完成传输任务后,芯片自动返回IDLE状态中的一个设定的子状态(准备状态,即设置xton位为1。微控制器可以通过SPI实时检测Si4432芯片所处的状态,判断数据收发任务的进展(可

18、通过访问寄存器0x02h获取芯片当前状态 。图3Si4432的状态转换图Si4432芯片主要的初始化代码如下:RF_ENUM RfInitHw(SpiRfWriteAddressData(REG_WRITE|OperatingFunction-Control1,0x80;/使能上电复位中断SpiDemoWriteAddressData(REG_WRITE|InterruptEnable1, 0x00;/开启有效包接收中断SpiDemoWriteAddressData(REG_WRITE|InterruptEnable2, 0x02;SpiRfWriteAddressData(REG_WRITE

19、|FrequencyBandSe-lect,FREQ_BAND_SELECT;/特定频段选择SpiRfWriteAddressData(REG_WRITE|NominalCarrierFre-quency1,NOMINAL_CAR_FREQ1;/设置标称载波频率1SpiRfWriteAddressData(REG_WRITE|NominalCarrierFre-quency0,NOMINAL_CAR_FREQ2;/设置标称载波频率2SpiRfWriteAddressData(REG_WRITE|HeaderControl2, 0x02;/数据包头部设置SpiRfWriteAddressData

20、(REG_WRITE|SyncWord3, 0x2D;/设置同步字段内容SpiRfWriteAddressData(REG_WRITE|SyncWord2,0xD4;SpiRfWriteAddressData(REG_WRITE|ModulationModeCon-trol1,RfSettings19;/设置调制模式SpiRfWriteAddressData(REG_WRITE|TXPower,0x03;SpiRfWriteAddressData(REG_WRITE|PreambleLength, 0x0C;/设置前导码长度和侦听阈值SpiRfWriteAddressData(REG_WRIT

21、E|PreambleDetection-Control,0x28;SpiRfWriteAddressData(REG_WRITE|DataAccessCon-trol,0x8D;SpiRfWriteAddressData(REG_WRITE|ModulationMode-Control2,0x63;/使能包处理器,设置CRC-16校验delay(;2系统优化方案21系统功耗优化机制如表2所示为系统工作模式功耗汇总。MCU和Si4432都提供了低功耗运行模式。为了最大限度地优化系统的功耗,系统利用MCU内部集成的DC-CD升压模块的输出电源给Si4432模块供电,使得在单节电池供电的情况下电压可

22、低至0.9V。MCU支持5种类型的功率模式(正常、空闲、停止、挂起和休眠,典型休眠模式下电流仅为50nA,为了最大限度地降低功耗,系统采用中断驱动模式,即在没有任何外部中断时,MCU将进入空闲模式;否则,被唤醒并执行相关的操作,在完成当前操作后,系统再次进入空闲模式。22系统链路性能优化机制由于无线自组网中多个通信节点共享一个信道,每个节点都能独立决定数据的发送,如果几个节点同表2系统功耗功能状态唤醒时间典型电流标准电流MCU正常模式18ms 4.1mA170AMCU休眠模式2,10s50nA77A 中断LED0,25ms33mA0,83ASi4432TX6ms27mA16,2ASi4432RX20ms19mA38AStand by固定值266A266A时发送就会发生冲突,造成信道阻塞,数据帧不能够正常接收。因此,引入载波侦听多点接入(CSMA的思想5,节点在传输数据之前首先对信道进行侦听,利用Si4432提供的接收信号强度指示器(RSSI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论