完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
目前,无线通信技术已经成为一大热点,而系统设计的微型化、低功耗成为发展的必然趋势。在保证系统工作可靠性的前提下,如何实现系统低功耗是无线数据传输系统亟待解决的一个主要问题。本文利用MSP430超低功耗单片机和2.4 GHz ISM频段的射频芯片EMl98810设计了一种低功耗的无线数据传输系统。该系统使用干电池供电,可广泛应用于电池供电的自动化数据采集系统、无线遥控、无线鼠标、无线键盘、无线电子标签、遥控玩具,以及水、气、热、电等居民计量表具无线远传自动抄表。
1 系统概述 目前在2.4 GHz频段的集成射频芯片有多种,性能各有差异,表1列出了几种常用芯片的性能特点。 本系统采用MSP430F247单片机和EMC公司的EMl98810芯片进行设计。MSP430系列单片机是一个16位精简指令集(RISC)微处理器。它具有丰富的寻址方式(7种源操作数寻址,4种目的操作数寻址),简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;具有高效的查表处理指令;有较高的处理速度,在8 MHz晶振驱动下指令周期为125 ns;中断源较多,并且可以任意嵌套;当系统处于省电的备用状态时,用中断请求唤醒只用6μs。MSP430系列单片机的电源电压采用1.8~3.6 V,其在1 MHz的时钟条件下运行时,芯片的电流为200~400μA左右,时钟关断模式最低只有O.1 μA。 EMl98810芯片内建2.4 GHz GFSK射频收发器,带有8位数据帧无线收发功能,前导区可以设置为1~8字节,支持1~4个字地址(最多可达64位),最大数据传输速率为1 Mbps,允许长数据包传送;频率范围为2 400~2 482 MHz(81信道),传输距离100 m(PCB天线),RF输出功率2 dBm,接收灵敏度在-85 dBm以上,采用SPI数字编程接口,接口电压为2.5~3.7 V。该芯片发射功率可数字编程调节,通过寄存器的设置很容易实现低功耗模式;内建多种纠检错功能,采用各种有效载荷数据格式来消除直流漂移量;支持FEC的1/3、2/3纠检错功能和CRC16检错功能。内部具有FIFO和DIRECT两种工作模式:FIFO模式简单易用,对MCU要求不高,发射和接收各有64字节的缓冲区,一次发送、接收可以最多处理64字节数据;DIRECT模式对MCU要求较高,需要MCU处理各种纠检错功能。 2 系统设计 2.1 系统硬件设计 图1是MSP430F247单片机和EMl98810的连接示意图,通过SPI总线与RF芯片相连。实际电路连接如图2所示。 2.2 系统软件设计 数据包格式如下: 其中,前导区可配置为1~8字节,同步字可配置为16、32、48或64位;前导尾区可配置为4、6、8……18位;数据区可为NRZ码、Manch-ester码、8/10位码、带FEC的数据4种格式。 系统上电后,先使EMl98810的RESET_n引脚为低电平,以保证芯片有效复位;再使此引脚为高电平,BRCLK脚会产生12 MHz的时钟;然后进行相关寄存器初始化。初始化程序流程如图3所示。 其中,Reg48为数据帧格式配置寄存器,需要设置前导区的长度(默认为3字节),同步字长度默认为64位,前导尾默认长度为4位,数据默认为NRZ格式。该寄存器的第2位为1则配置为睡眠模式,第3位为1则配置为待机模式。Reg49~51用于设置发射和接收的延迟时间。Reg52~55用于设置同步控制字,默认全部为0000H。Reg57用于配置是否启用CRC校验、包长度控制方式等。Reg48~57详细配置数据如下: Reg0~28主要是配置发射功率、VCO、RSSI、接收延时、通道选择与控制、AMS测试及控制、BPF和AGC控制、发射与接收数据控制、直流漂移控制、PLL同步控制、数据收发的时序控制、N/VCO参数控制、时钟等。Reg0~28详细配置数据如下: Reg0~28初始化完成后再延时2 ms,就可以直接进行数据的收发了。特别要注意的是,帧寄存器Reg48~57必须在RFIC寄存器Reg0~28之前初始化。所有寄存器读写和收发的数据都是通过SPI接口进行的,并且只支持从模式,SPI操作时序如图4所示。在芯片第28脚LDO_TUNE接地时(R1断开,R2接O Ω电阻),其数据在SPI_CLK时钟的上升沿有效;当LDO_TUNE接VDD时(R2断开,R1接0 Ω电阻),数据在SPI_CLK时钟的下降沿有效。只要SPI_SS为高电平,寄存器中的数据就保持不变;只有SPI_SS为低电平时,才能重新改写寄存器中的内容。 EMl98810有两种检测收发数据包长度的方法:一种是自动在数据帧内检测出来,最大帧长度不能超过255字节。先设置Reg57的第13位为1,则发送或接收数据区中的第1个字节就代表数据的长度,帧控制器会自动控制收发开始与停止。另外一种是保持发射或接收的状态不变,通过外接MSP430F247来控制数据包的正确发送与接收。 发送数据流程如图5所示。在发射数据时,先设置Reg7的第8位为1,允许在内部状态机控制下进入数据发射状态,再设置Reg7的O~6位为所选通道。在发送前导尾区数据前,MSP430F247必须将数据放人FIFO中,如果数据长度超过63字节,应该分多次写入。FIFO_flag=1表示FIFO为空,MSP430F247利用此信号作为中断请求,保证发送数据写入FIF0的实时性,在数据发送完成后PKT_flag=1。 如果设置Reg7=1和Reg7[O~6]为与发射相同的通道,则芯片进入自动接收状态,接收数据流程如图6所示。当检测到同步字后会自动进行数据包的接收解码,接收完成后进入待机模式。如果接收数据超过63字节,则有FIFO_flag=1,MSP430F247利用此信号作中断请求以保证读出数据的实时性。 在进行超低功耗设计时,MSP430F247可以设置定时器中断。平常处于LPM3或LPM4模式,要发送数据时产生定时器中断,同时控制EMl98-810处于待机或睡眠模式。MSP430F247工作在LPM3模式下电流为O.8μA左右,LPM4模式下电流为0.1μA左右。EMl98810正常情况下发射电流26 mA,接收电流25 mA,待机电流1.9mA;睡眠模式下为3.5μA。若将EMl98810设置为睡眠模式,将MSP430F247设置为LPM3模式,则系统耗电仅为4.3μA,使用干电池供电完全可行。 MSP430F247通过SPI接口与EMl98810相连,进入LPM3模式和退出LPM3模式的程序如下: 将EMl98810的Reg48的第2位设置为1,并将SPI_SS设为高电平,则进入睡眠模式;如再将SPI_SS设为低电平,则EMl98810会自动唤醒,退出睡眠模式。 结语 经过实际电路连接后测试,数据发送端在进行500kbps速率下连续发送数据时,整个系统电流为28.2 mA,接收数据端的电流为26.1 mA;当发射端进入到睡眠模式时电流为5.2μA;当接收端进入待机状态LPM3后,整个系统电流为l.9 mA。按照2节干电池容量1 300 mAh计算,间隔1 min发送100字节数据,考虑单片机模式切换时间,则在500 kbps速率下: 发送数据所需时间为5 ms,1小时耗能: 28.2mA×5ms×60次=8460(mA·ms) 睡眠模式下1小时耗能: 5.2μA×3600S×1000ms=18720(mA·ms) 发送状态下可以工作的时间为: (1300mA×3600S×1000ms)/(18720+8460)=172185h 即2节干电池供电时可以工作20年。同样,可以计算出接收状态下可以工作683小时(大约28天)。因此本设计可以适合长期进行低功耗无线数据采集方面的应用。 |
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2530 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2314 浏览 5 评论
3112 浏览 3 评论
2780 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2740 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
577浏览 1评论
832浏览 0评论
935浏览 0评论
595浏览 0评论
414浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-6 02:22 , Processed in 0.997479 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号