当前位置: 主页 > 新闻中心 > 行业资讯 >

基于RFID控制阀系统设计

文章来源:EEPW电子产品世界 发布时间:2017-03-21 访问量:
    摘要:射频识别技术它是一项利用射频信号通过空间耦合实现了无线方式对电子数据载体进行识别的新兴自动识别的技术。针对低功耗跟高效性,设计了一种以Nuvoton Nano110低功耗MCU为核心的125KHz的RFID控制阈系统。

    RFID控制阀系统采用分立元件搭建了成本极低的ATA5567射频卡读写电路,构建了段码式LCD显示和控制阀门的电机驱动模块。通过实践检验了系统的稳定性,可将其用于成本敏感的预付费卡表(水表、燃气表与热量表等)。当前在中国的各类计量行业之中,使用的计量表比如水表、燃气表跟热量表等,绝大多数均不带流量控制的功能,经常的做法都是先使用后交费,这样会给用户造成了很多不便,所以预付费的计量表便应运而生。本文介绍了一种广泛应用于预付费卡表的RFID控制阀门,与其它各类表的控制阀门方式相比,用RFID控制阀门优势在于:

1)在识别方面,使用RFID之后,会使可以识别的距离更灵活,具有无屏障阅读跟穿透性,可穿透非磁性材料,比如水、塑胶、混凝土等。

2)在耐用性方面,RFID对水、油与腐蚀性较强的化学药品等都具有很强的抵抗性;同时RFID将数据存在芯片当中,芯片与外界没有直接接触,因此可免受污损。

3)在可以重复使用方面,RFID标签可以重复的修改、删除RFID内储存数据,信息更新会很方便。

4)在数据的安全性这方面,RFID承载的是电子式的信息,它的数据内容可以经由密码来保护,使它的内容不容易被伪造跟变更。

5)成本低廉,可以加入LC振荡器到微控制器中来实现高性价比的收发器。
 
6)可以实现低功耗的设计,尤其在接收端。

1 系统硬件设计
 
1.1 系统组成
    控制阀系统主要由6部分组成:电子标签、射频天线以及调制电路、控制核心(MCU)、电机以及其控制模块、LCD显示模块跟蜂呜报警模块。
RFID控制阀系统组成图
 
1)电子标签:RFID控制阀系统采用的电子标签是ATA5567射频卡,这个射频卡由内置芯片、内置天线跟EEPROM组成。射频卡中的EEPROM是用于存储数据,其中数据可反复的读取跟擦除,读写的次数不少于10万次,内置电线是用于与射频天线进行通信。市面上常见的电子标签都是无源的,所以需要内置天线接收射频天线传递信息的同时,通过耦合来提供EEPROM读写数据所需的能量。内置芯片用于接收命令并且根据命令的内容决定数据的发送方式。

2)射频天线以及调制电路:射频天线主要用来和电子标签建立通信通路。调制电路一般包括:功率放大电路、检波电路与滤波放大整形电路3个部分。

3)控制核心MCU:本系统采用台湾新唐科技Nano100系列超低功耗的32位内嵌ARM Cortex—MO核的MCU作为控制核心,它主要的实现功能有:

①通过CLKO输出125 KHz的载波。②通过TC0捕获调制电路输出的波形信息。

③通过GPIO和ADC驱动直流有刷电机并在电机卡住时断电保护。
 
④通过MCU内部的LCD Driver驱动段码式LCD。⑤通过PWM控制蜂鸣器产生合适报警声音。

4)电机驱动以及控制模块:通过H桥控制直流有刷电机转动,电机卡住时候将断电保护。
 
5)LCD显示模块:通过MCU驱动段码式LCD显示金额、开阀、关阀等信息。
 
6)蜂鸣报警模块:通过PWM控制蜂鸣器产生适当报警声音。

1.2 天线及调制电路设计
 
1)载波产生和天线驱动电路:由MCU的CLKO输出频率稳定的125 kHz的方波,经过三极管进行功率放大。之后的串联谐振电路中天线是漆包线绕制的线圈,电容采用的是精准的校正电容,加入功率放大和产生谐振的目的是获得最大的磁通量,从而产生了最大的读卡距离。

2)检波电路,滤除载波信号。
 
3)放大电路,采用的有低廉的LM358运算放大器进行两级电压放大。
 
4)捕获及运算,该部分是在MCU内部完成的,由MCU中的Timer0工作在周期自由捕获模式,完成码元间隔时间的捕获,然后经过运算,得出各个Block的数值。
1.3 电机驱动设计
    主体电路是由4个三极管组成的H桥驱动电路,在同一时刻最多只有2个三极管处于导通状态,能方便的控制电机的正传和反转,再电机卡住时,由于电流是正常工作时的6~7倍,所以通过MCU内部的ADC检测电阻上的电压值,如果数值满足条件,则会给电机断电,并视情况发生报警,以免电机烧毁和设备的损坏。

2 系统软件设计
RFID控制阀系统的软件设计主要由6个部分组成:1)读卡;2)写卡;3)GPIO控制电机跟ADC过压检测;4)PWM的驱动蜂鸣器;5)125 kHz载波产生;6)LCD显示。 
其中最主要是属1)读卡跟和2)写卡了,完成读卡与写卡后,系统的躯干就会有了,然后3),4),5),6)就是在躯干上添枝加叶,让RFID控制阀系统完整起来。

2.1 ATA5567卡片的读写规则
    ATA5567中的存储是330bit的EEPROM,一共有10个块(block),每个块有33bit,其中第一位为锁bit。一共分为两页,第一页包含8个block,编号分别为block0-block7。
第二页包含2个block,为了只读block,包含可回溯数据,由于AIMEL公司规划。
ATA5567的数据率与调制方式是由block0决定。
对于本系统而言,做了很多的尝试,找到了一种和MCU搭配比较合理的ATA5567配置方式。
 
1)主控键值,需执行读写操作,所以主控键值选为8。
 
2)比特率,综合MCU的性能和读ATA5567所用时间,取一个折中,选择的是RF/32,这样一个码元的周期
基于RFID的控制阀系统的设计
 
3)调制方式,一般选择曼切斯特的调制方式。
 
4)AOR它是按请求应答,主要作用是防碰撞机制。当有多张ATA5567卡靠近应答器的时候,可实现每张卡的逐次读取。

5)最大块,为了保证信息的完整性和保护密码不被窃取,最大块取6。
 
6)PWD,为了防止ATA5567被恶意改写,密码是一定需要的,即该位为1。

7)ST是为了方便以同步头的方式实现数据的读取。
 
2.2 ATA5567数据的存储和编码格式
 
    对于ATA5567能操作的其实只有block0-block7,这几块的格式是一样的,只不过block0作为控制块,block7作为密码块,所以实际上真正能存储用户数据的只有block1-block6,共有6个块。ATA5567的编码方式设定为曼切斯特编码。曼切斯特编码是基带传输中广泛应用的一种数据传输编码方式,这种编码通常用在局域网传输,是一种自同步法编码方式。在数据信号的波形中既有同步时钟信号又有数据信号。在调制电路输出的波形中,数据“1”对应着曼切斯特编码(下面简称“曼码”)电平的上跳沿,数据“0”对应着曼码电平的下跳沿。在所接收的一系列曼码数据,注意空跳变,假定两个相邻bit的间隔时间是1P。若两个相邻bit代表的数据极性相同(同为0或者同为1),那么在这两个bit传送之间,会出现一个预备性的非数据跳变。

 
    根据上跳,下跳和空跳来分辨数据是“0”或者“1”,通过下图的图解可以发现,如果通过定时器捕获,最少会得到两种时间间隔,一种为一个整传送周期(256/μs),另一种为半个传送周期(128μs)
2.3 ATA5567写卡规则
在ATA5567卡片内部有一个写解码器,该解码器采用脉冲间隔编译码技术。在写卡期间,写解码器会检查写数据流是否有效,并检测场中断间隔。


 



 
写卡的首要工作是确定写卡的时间间隔,结合上表中官方给出的数据和现场实践,选择时间如表1所示。

 




 
确定写卡时间间隔之后,还要确定写卡的命令。在使用一张从市场上买的新卡前,首先要做的就是在Block7当中写入32位秘钥数据,然后初始化Block0为0x800880d8,写卡的命令及格式如下。

 
1)标准写命令格式如表2所示。




 
此时的写卡为“Standard Write”模式,由于能操作的只有第0页,所以p取0;
2)保护写命令格式如表3所示。



 
初始化block0之后,写卡操作变为“Protected Write”模式,具体操作与“Standard Write”模式类似,唯一的不同点便是在写入数据之前必须先写入block7中存储的秘钥,如果秘钥不对,则卡进入其他状态,这里不再赘述。

 




 
2.4 ATA5567读卡规则和算法实现
对于ATA5567,读卡命令如表4所示。
                                                                                                                                          




 
由于PWD位已经置为1,所以选择第一种格式,写命令与之前讲述的写数据类似,此处不再讲述。
发完写命令后,Nano110单片机会捕获到数据,这些时间间隔数据是获取二进制数据来源。根据ATA5567数据的存储和编码格式,读卡算法如下:
算法的核心是ReadNumber()函数的实现,由于在发送完命令之后,ATA5567会根据发送命令中的地址信息,循环发送所选地址存储是数据。由于每个block中存储了32 bit的数据,实际上转换为曼码对应的波形最多有64个跳变,所以采集到的128个数据中一定至少有一个所需数据的完整遍历。这时同步码也包括在128个数据之中,通过同步码来确定block中数据的起始位。同步码的波形如图8所示。



                                                                                                                                          



 
    同步码在所捕获的数据中体现为:256或128,128,384,128(单位均为μs)。用图4中的表示方式,上面的数据对应的时长分别为1P或0.5P,0.5P,1.5P,0.5P。因为在实际中的波形经过调制后不可能为完美的方波,波形的好坏与标签和天线的距离有很大关系,此外还跟所选器件的精度、MCU的定时器捕获精度有关,所以允许捕获的数据有误差。定时器捕获数据完成后,要进行解码,这里定义了两个数组array[128],bit_array[32],前者用来存放捕获的数据,后者存放解码后的数据,找到同步码形后1.5P的时长对应array[bitnum],bitnu m1的初始值为0。
 
    程序执行完毕后,bit_array[]数组中就存储了某个block对应的32bit的数据,这些数据是二进制数据,可以根据需要将其转换为十进制或者十六进制的数据,因为需要在各个block中存储时间、日期、金额、流量(热量)等信息,这里需要将其转换为十进制数据。
 
3 结束语
文中主要针对预付费的表类(热表、水表、气表、电表),提出了一种低成本、低功耗、高可靠性的解决方案。由于篇幅所限,着重介绍了无需解码芯片的RFID解码电路的构成,提出了一种针对ATA5567的高效的编解码方案,这是整个系统架构的核心。对于系统而言,大部分时间处于非工作状态,可以使其进入PowerDown模式(ARM架构MCU具有的功能),以节省电力。另外出于对数据备份和保护的目的,可以在系统里加入单独的存储单元,如SPI-Flash或者EEPROM,以期在设备损毁等场合尽最大可能的减少用户的损失。在某些场合下,如果需要组网,除了使用RS-485外还可以使用以太网或者无线方式(如433 MHz),这样就可以实现与局域管理系统进行实时对接。


0
沈阳博能科技有限公司
地址:沈阳和平区长白二街浑河天地31楼
邮箱:wxy@rfboneng.com
电话:024-83385346 | 15142580885