首先阐明电源受限嵌入式系统的定位休眠激活方案的基本工作原理;然后介绍MCP2030的三方向磁场检测接收、低功耗以及多种节能工作模式的显著特点;最后以有源射频标签为例介绍了具体的软硬件设计和应用实现。
关键词 休眠激活 无线定位 MCP2030 低功耗系统
引言
进入21世纪之后,随着社会信息化的不断普及与发展,嵌入式系统的应用越来越广泛。其中自备电源嵌入式系统由于受功耗的限制,其设计与应用一直受到制约。一般来说,正常工作的嵌入式系统电流消耗在mA级,而处于休眠状态下可以控制在μA级左右,3个数量级的能源节约对于有限的自备电源无疑具有极大的诱惑,所以这类系统基本上都要采用休眠激活的方案以实现节能,达到延长工作寿命的目的。
目前可供采用的休眠激活方案主要有3种:事件激活法、定时激活法和定位激活法。事件激活法主要应用于检测告警等场合,系统一般处于休眠模式,如果特定参数超限就会激发系统工作,这种方法一般要与相应的传感器配合实现,微处理器中也要占用相应的中断资源;定时激活法主要应用于周期工作的系统(如小区三表数据的采集)中,系统按照定时器设定的时间间隔定期上报采集数据,这种激活法的实现也非常方便,只需在相应的微处理器中添加定时器的中断处理程序;定位激活法主要应用于对位置敏感的系统(如贵重资产管理和停车场的自动道闸等)中,该系统在特定位置安装检测设备,如果有监管人员或设备离开或进入这些特定领域将会激发系统工作。定位激活法的实现有多种,本文主要介绍利用无线信号进行定位激活的一种实现方法。
1 基本原理
无线信号频谱中LF频段信号具有穿透能力强的特点,它可以穿透非磁性介质,如水、混凝土、塑料等(不受视线距离限制),所以利用LF频段设计激活电路是一种较好方案。无线信号频率与波长存在反比例关系,天线长度取决于波长长度。500 MHz RF信号的波长为60 cm,天线很短,完全可以方便地实现;而125 kHz LF信号的波长为2.4 km,做这样的天线肯定不实际。所以利用LF频段信号作为激活信号,接收端不再采用电磁场(radio)原理进行工作,而是直接通过接收磁场(magnetic)信号,然后利用磁场在线圈中的感应信号进行判断处理,如图1所示。该系统主要由磁场发射端和接收端两种设备组成。
MCP2030是Microchip公司开发的专门针对低频无线磁场通信的模拟前端器件。该器件集成有8个可编程配置寄存器和1个只读状态寄存器,根据寄存器配置,MCP2030可以输出解调数据、载波时钟和磁场强度RSSI。该器件模拟接收电路具有较强的灵敏度,可以接收识别1 mVpp信号并解调8%的微弱调制信号。为了得到可靠的磁场信号,MCP2030采用了3组天线和3组接收解调电路。3组天线分别指向互相垂直的X、Y、Z轴,这样无论接收器如何放置,总可以得到磁场信号,从而解决了磁场信号的方向性问题。其结构框图如图2所示。
MCP2030集成了无线信号数字序列滤波部件,可以根据需要设定数字序列,器件只有当接收到特定数字序列时才做出响应,所以可有效避免其他信号干扰所引起的激活现象。图3所示为无线数字序列符合设定数字序列的情况,特定的数字序列为“2 ms有2 ms无”载波信号,此时LFDATA在监测到特定序列之后输出的ASK调制信号,如果无线数字序列不符合设定数字序列,LFDATA无输出。
MCP2030具有功耗极低的显著优势,为便于在自备电源的嵌入式系统中应用,专门设计优化了3种工作模式,即休眠模式、待机模式和工作模式。休眠模式由SPI 接口命令进行控制,进入休眠之后,除寄存器、存储器和SPI功能电路之外,包括RF限幅器在内的所有电路都将关闭,以使消耗的电流最低(0.2 μA),需要用上电复位以及除休眠命令外的任何其他SPI命令将器件从休眠模式唤醒;当天线输入没有LF信号时,器件将自动处于待机模式,但器件内部各部分电路已上电并准备接收输入信号,待机模式下电流消耗的典型值为4 μA(3个接收天线工作);当在LF天线输入上有LF信号且内部电路随接收的数据而进行切换时,器件处于低电流工作模式,该模式下电流消耗仅为13 μA。
除此之外,该器件还支持半电源和无电源工作模式。无电源工作方式下,器件完全从磁场中提取能量进行工作;在半电源工作方式下,器件尽可能从磁场获取能量,不得已情况下由电源供电。
2 设计应用
有源射频标签是射频识别系统中的重要组成部分,相比而言具有存储容量大、通信距离远、功能丰富的优势,可以广泛应用于物流跟踪、贵重资产管理等领域。其内部电路主要部件有:控制器、激活信号检测电路、RAM/ROM、定时器、UHF收发器、电源等。其中,激活信号检测电路可以由MCP2030进行实现,如图4所示。利用MCP2030针对设定数字序列进行识别接收的能力,可以有效地控制标签的工作状态。当标签到达安装有射频激活发射器的特定位置时,MCP2030从SPI接口上输出相应的接收信号,使得控制器退出休眠状态,并对数据进行接收、分析和处理,最终存储在RAM/ROM相应的位置中。当需要与读写器进行信息交互时,控制器通过UHF收发器进行通信,控制器处理完之后自动进入休眠状态,直到下一次接收到磁场激活信号或定时器产生定时中断。
如图4所示,MCP2030与控制器通过SPI接口进行连接,SPI接口定义分别为LFDATA、SCCLK、MCCS。该接口命令由16位的控制字组成,命令格式如下:
D13~D15为命令类型,MCP2030根据命令类型确定后续的数据含义并执行相应的操作。其中,0x07为写数据命令,0x06为读数据命令。如果是写数据或读数据命令,则后续D9~D12为寄存器地址,分别指定该命令所要操作的寄存器地址,D1~D8为寄存器数据内容,D0为该命令行校验信息;如果不是写数据或读数据命令,则D0~D12的数据内容无意义。
为使MCP2030正常工作,系统上电复位时要对该器件进行正确的初始化配置。在此设定无线信号数字滤波序列为2 ms有2 ms无,使能通道自动选择功能和解调信号输出功能,初始化程序段如下:
void Init_MCP2030(void) {
ShiftOutSpi(0xe1,0x41);//reg0 111 0000 1010 0000 1
ShiftOutSpi(0xe2,0x01);//reg1 111 0001 0000 0000 1
ShiftOutSpi(0xe4,0x01);//reg2 111 0010 0000 0000 1
ShiftOutSpi(0xe6,0x01);//reg3 111 0011 0000 0000 1
ShiftOutSpi(0xe8,0x01);//reg4 111 0100 0000 0000 1
ShiftOutSpi(0xeb,0x81);//reg5 111 0101 1100 0000 1
ShiftOutSpi(0xed,0x3f);//reg6 111 0110 1001 1111 1
}
控制器向MCP2030发送数据的程序实现如下:
//数据预先存储在OutData1和OutData2中
void ShiftOutSpi(unsigned char OutData1,unsigned char OutData2) {
unsigned char i;
SCCLK=0;
MCCS=0;
for(i=0;i<8;i++) {
LFDATA=OutData1 & 0x80;
OutData1=OutData1?1;
SCCLK=1;
SCCLK=0;
}
for(i=0;i<8;i++) {
LFDATA=OutData2 & 0x80;
OutData2=OutData2?1;
SCCLK=1;
SCCLK=0;
}
MCCS=1;
}
控制器从MCP2030接收数据的程序段如下:
//数据存储在AFESpiInDataH和AFESpiInDataL中
void ShiftInSpi(void) {
unsigned char i;
SCCLK=0;
MCCS=0;
for(i=0;i<8;i++) {
SCCLK=1;
AFESpiInDataH=AFESpiInDataH & LFDATA;
AFESpiInDataH=AFESpiInDataH?1;
SCCLK=0;
}
for(i=0;i<8;i++) {
SCCLK=1;
AFESpiInDataL=AFESpiInDataL & LFDATA;
AFESpiInDataL=AFESpiInDataL?1;
SCCLK=0;
}
MCCS=1;
}
结语
本文针对MCP2030的特点具体介绍了其在有源射频标签中的应用。该器件不仅集成有3通道低频接收电路以及3方向的磁场检测接收电路,而且功耗低,具备多种节能工作模式,非常适合于其他要求低功耗无线激活的嵌入式系统应用。
上一篇:手持设备中的FM功能设计与实现
下一篇:短距离无线数据低功耗传输协议分析
- 热门资源推荐
- 热门放大器推荐