房延鹏+高泽华+亢雄伟
摘 要:分别介绍了读写器与有源电子标签的软件和硬件设计和实现方案。以CC1110芯片为核心,利用低频唤醒和CSMA防碰撞技术,研制了一种基于433 MHz频段的物联网开发平台,这一平台结合自主开发的软件可以应用到多种场景。目前,这套平台主要应用于安全管理系统,利用该平台提供的软件和硬件,可方便地开发智能家居、室内定位等应用系统。
关键词:CC1110;低频唤醒;有源电子标签;433 MHz读写器
中图分类号:TN915.9 文献标识码:A 文章编号:2095-1302(2015)07-00-04
0 引 言
随着计算机网络技术、通信技术和微电子技术的发展。在信息与通信领域中,近些年,属无线通信技术发展最快、应用范围最广。而集成化、低功耗、易操作和低时延又是无线通信技术发展的一种趋势。短距离嵌入式无线数据通信和无线网络等技术被广泛应用于智能家居、建筑物状态监控、工业控制等领域,俨然已成为电子技术和嵌入式技术发展的一个热点。本文根据上述特点要求,采用TI公司的CC1110芯片,并根据市场的需求设计出了一种适于资产和人员管理的RFID系统。
1 工作原理
这套系统主要由433 MHz有源读写器、带125 kHz接收器的433 MHz电子标签、125 kHz发送模块、控制器等组成。电子标签不仅能工作在433 MHz频段与读写器进行通信,同时也能接收125 kHz的低频ASK信号。这样做的目的是使标签不仅能发送自身的ID信息给读写器,同时也能把自身所处的位置(门内或门外)信息发送给读写器。标签发送给读写器的信息是固定格式的帧,其中包括标签自身的ID信息、门内和门外等信息,读写器通过解析标签发送过来的帧,并做相应的逻辑处理,就可判断出标签的状态。其状态主要有注册、丢失、恢复、低电量、进门和出门。然后读写器把标签的这些状态信息发送到上一层系统,交由上层系统做进一步的容错处理。这样分层的好处是把大量的数据处理分散到各个层,避免某一层系统处理的数据量过大,降低了整个系统对数据的处理能力。整个系统的结构是主从结构,读写器可以读取多个标签的信息,同时控制器可以接收多个读写器发送的信息,控制器主要由PC机或嵌入式系统充当,然后运行应用软件以用于显示电子标签的状态信息。
2 标签硬件电路的设计
电子标签电路的设计主要包括控制模块、高频发射模块和低频接收模块。高频发射模块采用TI公司的CC1110芯片,其内部集成了一块C8051单片机可充当控制模块,免去了再外接控制模块的麻烦,使得标签的体积大大缩小。该芯片为低功率,低电压无线通信应用所设计,集成的8051单片机含有4 kB的RAM和32 kB的Flash。在高频电路的设计中,R1是偏置电阻,大小为56 kΩ,用于设置精确的偏置电流。C8、C9、L2和L3构成了平衡不平衡转换器,C10、C14、C11、L1和L4构成滤波匹配网络,这两部分电路结合可以与50 Ω的天线匹配,50 Ω天线采用PCB天线。高频电路使用26 MHz晶振提为射频供时钟频率,使用32.768 kHz 为睡眠定时器提供时钟频率。电源电压为2.0~3.6 V,在电源供应端口接合适的去耦电容。
低频接收模块采用AS3933芯片,AS3933是一款3通道低功率的ASK信号接收器,解调范围在15~150 kHz,在成功解信号后能产生唤醒信号。通过设置AS3933的相关寄存器可以使其工作在单通道、双通道和三通道模式下。低频天线分为串联谐振方式和并联谐振方式,设计中采用并联谐振方式,将电阻、电容和电感并联,形成谐振电路。在低频天线设计中,关键的技术指标是接收方向性和品质因数,PREMO的3DC1515S-0477J的三维正交低频天线,在X,Y,Z三个方向上都有感知天线,可以很好地克服低频接收的方向性。根据3DC1515S-0477J的数据手册,三维正交低频天线在Z轴方向上的直流等效电阻Rz=142 Ω、电感Lz=5.89 mH,在X、Y轴方向上的直流等效电阻Rxy=93 Ω、电感Lxy=4.77 mH。低频天线工作在f=125 kHz频点,即此谐振电路的谐振频率为125 kHz。低频天线并联谐振等效电路如图1所示,其中Rp为并联电阻,Cp为并联电容,RL为天线线圈的直流等效电阻,L为天线线圈的电感值。
电路谐振时,根据汤姆逊公式可以计算出并联电容的值:
(1)
当L=LZ=5.89 mH,f=125 kHz,代入(1)式求得CpZ=275.5 pF;当L=LXY=4.77 mH,f=125 kHz,代入(1)式求得CpXY=340.2 pF。AS3933内部带有谐振电容组,通过编程可以控制内部谐振电容组的值,其值能以1 pF为步长到最大31pF,所以内部谐振电容组可以充当谐振并联的小容值电容。
图1 低频天线并联谐振等效电路图
低频天线的品质因数Q对天线的性能影响很大,通常来说,随着Q值的升高,低频唤醒作用的距离会增大,但是,Q值太高会影响接收数据的正确性,因为,高Q值会导致标签通频带宽缩小。在3DC1515S-0477J 的datasheet中,推荐的Q值范围为20~30,设计中可根据此Q值范围设计相关参数。并联谐振电路有载品质因数Q的计算公式如下:
(2)
根据天线谐振电路相关参数,选取Q=25.1值。将Q值和计算得到的Cp代入(2)式,求得Z轴谐振并联电阻: RpZ=470 kΩ;XY轴谐振并联电阻RpXY=250 kΩ。整体电子标签的电路图如图2所示。
3 标签软件设计
标签采用双频段,一方面接收125 kHz模块发送的低频信息,另一方面发送固定格式的帧给433 MHz读写器。由于125 kHz发射模块与标签的AS39933低频接收模块通信的距离较近,在2~5 m之间。所以在门内外各装一块125 kHz发射模块,可以做到标签在门外到门内的过程中只和其中的一个125 kHz发送模块通信。两个125 kHz发射模块发送的数据不同,用于区分是门内还是门外。标签把接收到的125 kHz信息解调后封装成固定格式的帧发送给读写器,读写器根据接收到的信息可以判断标签的进出门过程,进门和出门只是标签的两种状态,125 kHz主要功能就是让标签能把自身的位置信息报告读写器。标签与读写器通信的帧格式如图3所示。开头为4C,表示这是普通的通信帧,4A代表标签在门外,4B代表标签在门内,00000000000001表示标签的ID号。
标签与读写器之间采用改进的CSMA通信协议进行通信。主要涉及的逻辑是如何接收AS3933发送过来的低频数据以及AS3933如何成功接收125 kHz信号。CC1110芯片通过SPI口对AS3933进行控制,通过配置各个相关工作寄存器,使其满足低频唤醒接收数据的要求。配置AS3933使其工作在Scanning Mode模式下,这是AS3933低功率模式的一个子模式,在这一模式下,时隙被定义为1 ms,在每一个时隙当中,只有一个通道被激活。当某一个时隙结束时,当前被激活的通道被关闭,下一个通道被激活,以此类推。Scanning Mode由AS3933芯片内部控制,不需要外部MCU的干预,并且一个通道如果检测到符合频率的低频信号时,3个通道都立刻被激活。同时AS3933可以评估各个通道的信号强度,从中选出信号强度最强的一个通道,并把这个最强的信号送至解调器进行解调。所以,在这种工作方式下,AS3933只需维持一个通道的工作电流,但可以保证接收灵敏度和三通道同时激活时的灵敏度相当。配置R0<7>寄存器,使AS3933唤醒需要满足16位曼彻斯特唤醒类型码(Pattern)检测,数据接收开启曼彻斯特解码。
图3 电子标签发送的帧结构
根据AS3933的硬件文档,载波头tc的时长应满足:(16Tclk+16Tcarr)
AS3933频率检测125 kHz的低频波的载波头、前导码、唤醒类型码满足设定要求后,则唤醒管脚WAKE(8管脚)产生一个高电平通知CC1110,随即在AS3933数据时钟管脚CL_DAT(10管脚)输出曼彻斯恢复时钟脉冲,同时数据管脚DAT(9管脚)输出曼彻斯特解码数据。时钟管脚CL_DAT的每个上升沿对应一位曼彻斯特解码后的数据。CC1110的P16口与AS3933的数据输出管脚(DAT)相连,CC1110的P02管脚与AS3933的曼彻斯特恢复时钟输出管脚(CL_DAT)相连,并设置P02管脚为上升沿捕捉中断,在中断程序中读取DAT管脚高低电平状态,高电平则相关低频变量赋1,低电平则赋0,每接收1位低频数据,低频变量左移1位。成功接收一个字节后,通过SPI口发送Clear_wake命令给AS3933,使其从接收模式重新转到监听模式。低频接收程序流程如图4所示。标签将接收到的低频信息和自身的ID号封装成固定的帧每隔一个随机时间主动发送给读写器。由于考虑到标签的耗电问题,要尽量使标签大部分时间处于休眠状态,休眠时间的长度是随机的,并在一个随机的时间点唤醒向读写器发送数据。
图4 低频数据接收流程图
4 读写器硬件设计
读写器的硬件电路主要包括433 MHz射频收发模块。串口转网口模块。串口输出模块。433 MHz射频模块与电子标签的射频模块相同,都采用CC1110芯片为主芯片,配以外围电路构成射频模块。串口模块采用MX232芯片及外围电路来搭建,MX232芯片由德州仪器公司(TI)推出的一款兼容RS 232标准的芯片,由于电脑串口RS 232电平是-10 V,+10 V,而一般的单片机应用系统的信号电压是TTL电平0,+5 V,MAX232就是用来进行电平转换的,该器件包含2个驱动器、2个接收器和一个电压发生器电路提供TIA/EIA-232-F电平。串口转网口模块采用RM04,RM04是一个可插拔的模块,其外围电路与射频模块在同一块射频板上,外围电路主要是对网口的设计,具体电路图如图5所示。
5 读写器的软件设计
读写器与标签之间是点对多点通信,防碰撞算法采用CSMA。每个标签都在一个随机的时间点向读写器发送信息,如果标签不在门的附近,只发送普通的ID帧信息,否则就会发送带有位置信息的帧信息。读写器如果既收到某个标签的门内信息又收到此标签的门内信息,并且收到门内信息的时间点大于收到门外信息的时间点,读写器判断标签为一次入门过程,同理出门过程也是如此。标签进入门内后不会再发送位置信息,只是发送自身的ID号给读写器,读写器第一次接收到某个标签的ID时,会把此信息存放在一个链表中,并向上层网关或PC机发送一条此标签的注册信息,并且每隔一定时间扫描链表里的标签ID,如果在此间隔内,有某个ID的标签始终没有与读写器通信过,则读写器判断此标签为丢失,如果在下一次或下几次的扫描过程中发现此标签又与读写器有通信过,则读写器判定此标签丢失后又恢复,读写器会把标签的这些状态信息以一个固定的帧格式上传到网关或PC机上,以便上层做进一步的处理。链表每个存储元素是一个结构体,结构体中存储着逻辑判断所需要的标识信息,每一个存储元素的结构如图6所示。
图 6 读写器中存储的数据结构
图6中,Norm位是接收标识位,标签与读写器每成功通信一次就将此位设置成1;Lose位是丢失标识位,如果标签丢失设置为1;In是门内标识,标签在门内设置为1;In_tim是第一次接收到标签在门内信息的时间戳;Out是门外标识,标签在门外设置为1;Out_tim是第一次接收到标签在门外信息的时间戳。在定时器中断程序中,读写器扫描链表结构,检查每个存储结构的各个标识位,如果Norm为0则判断此标签丢失并设置Losed位为1,如果Norm为1设置此位为零;如果Losed为1并且Norm为1,则判断此标签丢失又恢复并设置Lose和Norm位为0;如果In和Out位都为1,并且In_tim大于Out_tim,则判断标签为一次进门过程,并将In、Out、In_tim和Out_tim位设置为0;如果In和Out位都为1,并且In_tim小于Out_tim,则判断标签为一次出门过程,并将In、Out、In_tim和Out_tim位设置为0。一次中断程序中,判断逻辑流程如图7所示。
6 应用软件设计
应用软件主要运行在网关或PC上,用于查看标签的状态。网关或PC机作为Server,读写器作为Client,是一个主从式结构。应用软件的设计主要涉及到多线程,每一条线程单独为一个读写器服务,对读写器发送来的信息做进一步容错处理,然后把这些信息显示在界面上。软件的实际运行结果如图8所示。
图 7 读写器中断程序判断逻辑流程图
图 8 软件实际运行效果
7 结 语
本文详细介绍了基于433 MHz频段的物联网开发平台的硬件设计,同时也讨论了系统的软件结构和实现方式。并根据市场需求,设计出一种适于资产和人员管理的有源电子标签和读写器,该套设备结构简单,耗电量低。标签的体积较小,可以方便的贴在物品上,便于携带。根据实际测试,该套系统性能稳定,误报率低,可以满足大部分厂家需求。
参考文献
[1]曹世华,赵方.低频唤醒技术在微功耗主动式RFID中的应用研究[J].微计算机信息,2008.,24(2):230-231.
[2] CC1110DataSheet10[Z/OL]. http://www.chipcow,2007.
[3] AS3933 3D Low Frequency Wakeup Receiver Datasheet:Rev1.2[S].Austriamicrosystems,2010.
[4]李文仲,段朝玉.CC1110/CC2510无线单片机和无线自组织网络入门与实战[M].北京:北京航空航天大学出版社,2008.
[5]李文仲,段朝玉.C8051F系列单片机与短距离无线数据通信[M].北京:北京航空航天大学出版社,2007.
[6] Andrea Goldsmith.无线通信[M]. 杨鸿文,李卫东,郭文彬,等,译.北京:人民邮电出版社,2007.