MC9S08QE4单片机在有源RFID中的应用 | ||||||||||||||||
RFID标签分为被动标签(Passivetags)和主动标签(Activetags)两种。被动标签即非接触式IC卡,由于被动标签识读距离短,在许多应用中受到限制。主动标签也称有源RFID,由于采用无线射频识别技术,识读距离可达几十米,逐渐成为一种主流应用技术,已经成功应用到生产制造、物流管理、公共安全等各个领域。 有源RFID采用电池供电,且电池是一次性的,不能更换。因此低功耗设计是设计中的重点。RFID卡有读卡和读写卡两种。读卡是单向通信,即定时向外发送数据。读写卡是双向通信,即定时向外发送数据的同时接收数据。下面以MC9S08QE4和nRF24L01为例,介绍有源RFID读卡的设计应用。 MC9S08QE4是飞思卡尔新推出极低功耗的单片机,资源丰富,内置振荡电路,小封装,非常适合于在RFID卡的应用。nRF24.L01是是NORDIC公司推出的一款新型单片射频收发器件,工作于2.4GHz~2.5GHzISM频段,广泛应用于无线领域。 MC908QE4的主要功能 MC908QE4是Freescale基于HCS08核的8位单片机。具有极低功耗,内置RC振荡电路及丰富的外围接口。QE4的主要特性如下: 低工作电压1.8V-3.6V 最大总线频率10Mhz 内置琐频环电路FLL 4KFLASH程序空间 256字节RAM 2个16位定时器 1个实时时钟计数器RTC 10路12位AD 1个外部中断和8个外部键盘中断KBI 内部RC振荡器的看门狗 低电压检测电路LVI 1个SPI,I2C,SCI 32LQFP,28SOIC,20SOIC,16SDIP,16TSSOP封装 nRF24L01概述 nRF24.L01是一款新型单片射频收发器件,工作于2.4GHz~2.5GHzISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6dBm的功率发射时,工作电流只有9mA;接收时,工作电流只有12.3mA,另外有多种低功率工作模式(掉电模式和空闲模式)。 nRF24L01主要特性如下: 工作电压:1.9-3.6V; 真正的GFSK调制单收发芯片; 硬件集成OSI链路层; 具有自动应答和自动再发射功能; 片内自动生成报头和CRC校验码; 数据传输率可达2Mb; SPI速率可达10Mb; 125个频道 QFN20引脚4mm×4mm封装。 工作模式 通过配置寄存器可将nRF241L01配置为发射、接收、空闲及掉电四种工作模式。 硬件设计 由于QE4有SPI硬件接口,外部按键中断接口,内部上电复位电路和内部振荡电路,因此硬件电路非常简单。见下图: 晶振电路 QE4内部有琐频环电路(FLL)可以把MCU运行的总线频率倍频上去,最高可以倍频到20Mhz。同时QE4内部有RC振荡器,校准后的精度可以达到±2%(±2%为全温度范围的最大误差。常温下该精度为±0.2%)。因此完全可以采用内部RC振荡器。节省成本和空间。 电池电压检测 在有些RFID应用中,需要对电池电压进行监测。虽然QE4内部有掉电检测电路LVI,但使能该模块将消耗较大的电流,所以不宜采用。可以利用AD模块监测电池电压,AD模块会消耗一定的功耗,为了降低功耗,可以采用定时检测的方法,因为电池电压是缓慢下降的。 由于采用锂电池直接供电,采用一般的AD模块监测电池电压的办法,则需提供一基准电压给AD模块.这样既增加成本,又增加功耗。 这里介绍一种简便的方法用于电池电压检测: 在QE4的内部集成一个1.17V的能隙基准电压,此能隙基准电压内部连接到ADC的输入通道AD27;因此可以不需要任何外部电路,AD模块只需定时采样此基准电压,由此可换算出电池电压。 这种方法的好处是,不需要外部任何器件,既节省成本又节省空间,而且可以获知当前准确的电池电压。它的原理如下:AD的参考电压设为VDD,VDD即为电池电压,如果AD设为12bit模式,那么: 能隙基准电压的AD值(AD27)=(1.17VVDD)*4096=(1.17V电池电压)*4096 所以:电池电压=(4096能隙基准电压的AD值(AD27))*1.17(V) RFID的低功耗设计 在RFID应用中,由于是电池供电,且电池是一次性的,无法更换,所以低功耗是设计中首要考虑的因素。系统功耗由两部分组成:单片机本身的功耗和射频电路的功耗。下面分别介绍来讨论两者的功耗。 1)射频芯片的功耗 如前述,射频芯片有四种工作模式。在RFID的应用中,RFID定时向外发送数据,例如500ms发送一次.所以射频芯片平时工作在掉电模式,掉电模式下为900nA。下表为各种各种模式下的功耗: 2)单片机的功耗 单片机的功耗包括正常运行时的功耗和睡眠时的功耗。在RFID的应用中,由于是定时发送数据,发送完毕,马上进入睡眠,因此单片机大部分时间工作于睡眠状态,因此睡眠时的电流至关重要。例外进入睡眠后,需要定时唤醒,定时器的工作电流也是重点考虑的因素之一。 QE4内部有RTC模块,进入睡眠时,RTC仍然可以工作,可以用来定时唤醒MCU。唤醒时间从1ms到1s可设置。RTC工作电流只有75nA。把RTC模块的功耗考虑进去,那么进入睡眠状态时,RTC模块工作(定时唤醒MCU),内部RC振荡器工作,MCU本身的功耗仅为450nA左右。如果把射频芯片的功耗计算在内,那么在待机模式下,整个系统的功耗为1.35uA。 另外有一个参数对系统功耗的影响也非常重要,即从睡眠模式唤醒的时间。唤醒时间越短越好,因为唤醒的过程中,功耗会比较大。QE4从睡眠3(STOP3)模式唤醒的时间非常短,只有6us,大大低于业界的同类产品。 3)低功耗设计的小窍门: a)未使用的IO口的处理 对未使用的IO口配置成输出模式,输出高或低。 b)未使用的模块的处理 未使用的模块除了关闭该模块外,同时还要禁止该模块的时钟。模块时钟的使能或禁止通过SCGC1,SCGC2进行配置。 c)RTC时钟的选择 RTC的时钟选择选择内部1K时钟,而不选择32K的时钟。选择32K的时钟会增加70uA的电流。 d)延时的处理 由于射频芯片平时工作在掉电(POWERDOWN)模式,从掉电(POWERDOWN)模式到发送模式,射频芯片需延时1.5ms左右的时间,在延时1.5ms左右的时间内单片机处于等待状态,有两种处理方式以降低功耗。一是让单片机进入STOP3模式,利用RTC唤醒,唤醒时间设为1.5ms。另一种方法是,把单片机的工作频率降到最低,让单片机进入WAIT模式,利用定时器唤醒,定时器的时间设为1.5ms,唤醒后把单片机的工作频率恢复到原来的频率。 序列号的烧写: 由于在RFID应用中,每一个RFID都需要一个唯一的ID号。ID号可存放在FLASH中,单片机上电后,从FLASH中读出它的ID号。在批量生产过程中,如何方便地烧写ID号,也是至关重要的。下面介绍采用CYCLONEPRO如何方便地烧写序列号。CYCLONEPRO是用于批量生产的专业编程器,支持脱机烧写。在烧写程序代码的同时支持烧写序列号,每烧写一片芯片后,序列号自动加一。因此非常适合于批量生产。 在下载程序到CYCLONEPRO前,先要用SERIALIZE.EXE软件生成一序列号文件,SERIALIZE.EXE软件可在WWW.PEMICRO.COM免费下载。 生成序列号文件的界面见下图: 上图的示例中,ID号为3个字节,将存放在QE4的0xFFA0,0xFFA1,0xFFA2中,ID号的起始号为0x0000001,ID号的上限为0xFFFFFF,下限为0x000001。上下限的含义是:假设在烧写过程中,ID号每次加一,当加到上限值时,ID会自动回到下限值。按SAVE生成***.SER文件。可以通过修改PRM文件,让编译器预留FLASH从0xFFA0至0xFFAD用于存放ID而不是程序代码。 |