水表读卡器的线是那两根 是什么颜色的?

[版权声明] 本站所有资料由用户提供并上传,若内容存在侵权,请联系邮箱。资料中的图片、字体、音乐等需版权方额外授权,请谨慎使用。网站中党政主题相关内容(国旗、国徽、党徽)仅限个人学习分享使用,禁止广告使用和商用。

}

智能水表的简介及发展趋势

水表是流量测量领域中使用量组大。使用面最广、品种规格最为齐全的计量仪表之意。在供、排水流量计量、水费结算、能源计量和工业用水控制等方面都有举足轻重的地位。

长期以来,我国城镇居民所使用的水表普遍是机械旋翼湿式水表,这种水表几个低廉,性能比较稳定,但是还采用人工抄表、按户收费的模式。此方式存在着工作量大,收费周期长。收费困难,效率低下等缺点。随着我国信息产业的飞速发展,实现自来水收费管理的电子化、信息化及网络化已经成为可能。微电子技术和计算机技术的不断发展,智能仪表不仅能解决传统仪表不易或者不能解决的问题,还能简化仪器电路,提高仪表的可靠性,更容易实现高精度。高性能。多功能的目的。水表系统的智能化可以大大提高供水水费管理部门的工作效率、节约费用,用以改善供水设施,提高居民饮用水质量;同时还能为加强自来水使用的监督管理提供手段。

智能水表发挥在那的第一个阶段是以预收费为主导目的的智能卡模式水表。以远程自动抄表为既定方向的远传水表系统。我国的“智能水表”从上世纪八、九十年代刚刚起步,到本世纪初,随着电子应用技术及电子元器件制造技术的快速发展,带动了改类产品的发展与进步,虽然我国智能水表的技术水平与国外先进企业差距正在缩小,但是可靠性、使用寿命等方面却有一定差距,而且我国智能水表新产品也基本上是借鉴外国先进模式,因为,国外在次方面的研究设计起步较早。从国外水表行业的目前情况以及水资源的可持续发展目标来看,我国的传统水表必须进行改进,才能适应社会和经济的发展。而且随着电子技术的快速发展,加上我家相关政策的推动,民用计量仪表的智能化将是一个必然的发展方向。这不仅是中国的一种趋势,也将成为世界性的趋势。

}

摘要: 随着我国金卡工程的实施和发展,智能卡的应用已逐步融入人们的生活,水表中智能卡的应用也是趋势发展的必然结果.射频卡以其良好的可靠性、方便的操作及其本身非接触等特点,成为卡式水表中智能IC卡的首选。 RC522是philips公司继MFRC500、RC531及RC632等一系列典型产品后推出的一款针对智能仪表领域的低电压、低功

    随着我国金卡工程的实施和发展,智能卡的应用已逐步融入人们的生活,水表中智能卡的应用也是趋势发展的必然结果.射频卡以其良好的可靠性、方便的操作及其本身非接触等特点,成为卡式水表中智能IC卡的首选。

RC522是philips公司继MFRC500、RC531及RC632等一系列典型产品后推出的一款针对智能仪表领域的低电压、低功耗、低成本的完全符合ISO1443A协议的非接触读卡芯片,采用统一的3.3V供电电压,且具有灵活高速串行接口(I2C、SPI、UART).但它的操作难度主要在于如何通过单片机来设置其内部寄存器,以及传送特有格式的指令来向射频卡发送、接收有效数据,从而达到读、写卡的目的。

    本设计硬件上采用MSP430单片机与RC522结合,供电电压完全一致,读卡器与Mifare1S50卡(以下简称M1卡)间以典型值106Kbps的速率通信,软件上采用动态的加密方式,并在单片机中留部分Flash空间用以记录使用过的M1卡的序列号,以防止人为的恶意换卡。

    设计采用TI公司MSP430FW427单片机为主控芯片,它与外围扩展的无磁传感器、电源管理、存储模块、LCD显示、保护装置、电磁阀门驱动、读写卡器共7个模块共同构成了整个水表系统的主体,其系统框图如图1所示。


图1中的无磁传感器采用2个LC振荡器,用于检测叶轮转动速度和转动方向;电源管理模块可检测电池电量以及完成必要的电压转换功能;而存储模块主要用于记录用户用水量的历史数据;LCD显示模块作为人机交互接口,方便用户查询用水信息或自来水公司查询水表工作状态;保护装置主要用于防止用户恶意拆卸、破坏水表,并保障水表即使在非正常工作的状态下也不发生错误计量;用户的供水由电磁阀门控制,当用水量余额不足或电池电量不足时,阀门关闭;用户还可通过读写卡模块向水表充值,实现用水金额的预付。

    射频读卡器的主要硬件电路包括RC522与单片机的接口电路以及外围天线的设计。其中读写卡芯片RC522与单片机通过I2C总线连接,其接口方式如图2所示。

图2 单片机与RC522连接方式

由于二者连接采用I2C总线协议,因此RC522的I2C口应接高电平,EA与D1~D6共同确定RC522作为I2C协议中从设备的地址(7bit)。当EA=1,RC522地址的6bit数据由D1~D6来决定(这里特别要注意的是D1~D6的值不要与I2C协议中规定的一些特殊地址冲突),剩下1bit一般为0;若EA=0,则RC522的地址的高四位为0101,低位由D1~D3确定[1]。

    除了与单片机的连接,RC522还需要外接天线及其匹配、滤波和接收电路,如图3所示。

在图3的电路中,由Cmid、R1、Crx、R2组成的接收电路与由L0及C0组成的滤波电路其元件参数值是固定的,而天线匹配电路中C1、C2与Ra的值由设计的天线确定。由于M1卡工作所需的电压由读卡器天线产生的磁通供给,其能量的传输类似于变压器原理,因此卡获得的能量随着卡和天线间的距离不同而变化,为获得良好性能,相关参数值的选取还须经过天线的调谐过程[2]。

    系统软件设计是整个系统设计的核心与难点,主要完成射频卡和读卡器之间的信息交互。

其中每个扇区的块0、1、2为数据块,用于存储16Byte数据.数据块可分为2种:普通的数据块和特殊数据块,二者的区别在于数据的存储格式不同,普通数据块可存任意16Byte数据,而特殊数据块内数据存储格式如图5所示,其中有效数据为4Byte,块号为1Byte,只有这种存储格式的数据块才可执行卡的增/减指令.另外,每个扇区的块3为控制块,其中包括了密码A、存取控制和密码B,具体结构如图6所示。每个扇区的密码和存取控制都是独立的,默认存取控制(FF078069)表明该扇区使用密码A验证,而密码B无效.需要注意的是:第0扇区的块0用于存放厂商代码,已经固化,永远不可更改。

图5 特殊数据块存储格式图

图6 各扇区控制块结构

    卡的基本功能包括卡的增、减、读、写操作,它需要借助于许多不同指令来实现,RC522与M1卡都有各自的指令(分别称之为Command指令和M1指令)[4],因此如何通过Command指令来完成M1指令从而达到读写卡的目的是整个软件设计的主要内容。

    在一般情况基本的卡操作中,并不是所有指令都要用到,常用的几个Command指令有空闲指令(IDLE),它可使读卡器进入空闲模式;CalcCRC用于CRC校验计算;Transceive指令是Command指令中最常用的一个,主要用于数据的发送与接收;而MFAuthent密码认证指令用于M1卡中的密码验证。

常用的M1指令主要有询卡指令(Request),包括RequestAll和RequestIdle2种模式,用于搜索一定范围内是否存在M1卡;防冲突指令(Anticolli-sion)和选卡指令(Select)成功执行后,可从多张卡中选取1张有效M1卡;Authentication指令是进行密码认证;其他的还有Read、Write、Decrement、Increment指令分别用于对卡的读、写、增值与减值;Halt指令可使卡进入空闲状态。

M1卡与读卡器之间的典型通讯过程如下:将待发送数据(包括标准M1卡指令)按一定格式写入RC522的FIFOData寄存器后,再写Command指令到Command寄存器,以此触发通信的开始(有些指令还需对一些寄存器操作后才开始通信),卡若接收到数据,先读取数据中的M1卡指令,再将余下数据作为M1指令的操作对象进行相应的操作,并将结果返回RC522的FIFOData寄存器。卡内部操作是自发,一般只将Command指令写入Command寄存器中,一定时间后通过读取FIFOData寄存器中卡的返回值来确定M1卡是否成功地完成了预定的操作.显然,Command指令在RC522内识别,标准M1卡指令在读卡器内相当于一些普通数据,它的识别过程在M1卡内进行.M1指令的执行过程是卡基本功能的具体实现过程,流程如图7所示。

    要对M1卡进行读写,必须先经过询卡、防冲突、选卡、密码认证等环节[5].询卡主要用于搜寻一定范围内是否存在M1卡,询卡成功后,则进入防冲突获取序列号过程,这是整个流程中较为复杂的环节,它的主要功能是在若干个M1卡中按一定的算法获取其中1张M1卡的序列号,为选卡做准备。

防冲突循环的流程如图8所示,其中防冲突命令(SEL+NVB)中SEL为防冲突指令0x93,NVB为1Byte数据,高4位表示本次待发送数据的有效字节数,低4位为发送数据最后1个字节的有效位数.成功接收到读卡器发送的防冲突指令后,有效范围内的所有卡均以其序列号响应,显然,若范围内不单有1张卡时,冲突必然发生,一旦发生冲突,则应读取相应寄存器的值确定冲突位;之后通过不断更新NVB的值与接收到的有效数据位来更新防冲突指令传送的数据,直至再无冲突产生,若成功接收到某1张卡的序列号,则可发送选卡命令,成功选卡后方可进行密码认证过程。

    密码认证以扇区为单位,其结果在于开启通信加密单元,成功后的数据传输都将加密.且只有密码认证通过之后才可对卡进行读、写、增/减值等操作.卡的读、写、增/减值等操作均以块为单位,其中增/减值过程较为复杂,其过程如下:

    由于M1卡有多个扇区,每个扇区可以有各自不同的密码,这为一卡多表提供了可能性,同时也成为本设计中一次一密的加密方式(称之为动态加密)成功实现的前提条件。

    虽然前述密码认证之后数据的传输将先被加密,但若只用单一密码且每次执行相同的卡操作(比如增值)的话,则卡与读卡器之间的数据通信存有一定规律性,有时甚至是固定的,这样攻击者可先通过图9所示的方式监听数据通信的过程,完全了解该过程之后,便可模拟M1卡与读卡器通讯(图10),这样即使没有射频卡也可达到增值的目的,这是我们所不想看到的。

图9 攻击者监听数据通信过程

图10 攻击者模拟卡发送数据

为此,我们可以采用动态加密方式来克服上述弊端,整个加密过程可分解为M1卡的初始化和具体的加密操作2部分.为便于描述该过程,先假设函数des(Data,Key,flag)为8ByteDES加/解密算法,其中Data为待加/解密数据,Key为密钥,flag为加/解密模式(0为解密,1为加密);另外,由于动态加密过程需要用到两个扇区,程序员可选0~15中的任意2个,这里假定为扇区1和扇区2,其中扇区1存储与扇区2的密码相关的数据,扇区2真正记录卡内余额。

    要使M1卡能用于上述的动态加密,首先必须经过卡的初始化过程,过程如图11所示,其中UID即为M1卡的序列号。

    (2)任意初始化扇区1内8Byte数据Data1,但注意最好不要初始化为全0或全1等极具规律性的数据,因为使用这些数据将会大大降低通讯的安全性;

    M1卡经过初始化后,其动态加密具体执行过程如下:

    (2)用密钥Key2将Data1加密后作为扇区2的密码,并访问扇区2数据Data2,从而可进行相应的卡操作;

经过以上4个步骤,则1次动态加密过程中卡的操作便已完成.为确保每次卡操作的成功,扇区1中数据Data1的改变与扇区2中密码Code2的更新必须同步,即每执行过1次步骤3后,一定要有1次步骤4的执行。另外,des算法在此并未起到加/解密的作用,只是将2个无规律8Byte数用密钥Key联系起来,程序员可以用其他更简单的算法代替,以降低单片机的计算复杂度,从而减少操作时间。整个加密过程的安全性取决于数据Data1与Code2更改的无规律性,程序员自己编写算法时须注意到此点。

    为防止用户在前1张卡还完好时,向自来水厂提出补卡的要求将导致用户同时拥有2张有效卡向水表充值(第2张卡免费且拥有第1张卡中的余额),因此有必要在单片机中留有一定的Flash空间。若发现异常情况,则记录相应卡的序列号,防止用户再使用,该过程如图12所示。

图12 软件防止恶意补卡流程

可以在Flash地址A中存储前1张卡的UID,Flash地址B中存放被禁止卡的UID,该过程中首先读取地址A中的数据与当前卡的UID,若二者相同,则判断为同1张卡;若不同,则进行密码认证,成功认证后读取地址B中存放的数据(可以记录多个被禁止的UID)逐一与当前UID相比,只有全不相同的情况下才确定当前卡为补卡,进行相应卡的操作后将前1张卡UID记入地址B中,禁止它再次被使用,同时将当前卡UID记入地址A。

需要注意的是,由前述M1卡初始化过程可知,水表内读取数据Data是通过当前卡UID来完成的,那么虽然不同的卡有不同的UID,但密码存储在卡内,所以所有以上述方法初始化后的卡都可以在相同的水表上操作,这显然是不可行。为解决此问题,可以在Flash地址C中存储第1张卡的UID(这里的第1张卡指的是从水表被制造完成后的第1张与其接触的M1卡),这显然是唯一的,且地址C中的数据永远不得改动。以后可通过读取地址C中的数据来获取扇区1密码,从而读取数据Data1。因此,1块水表对应的只有1个密码即可解决上述
问题。自来水厂应记录用户第1张卡的序列号(用户水表中密码只与该序列号有关),若用户需补卡,对其初始化过程与前述过程相似,注意初始化扇区1密码时UID为第1张卡序列号即可。

    介绍了无磁水表中以MFRC522为核心的读卡器的设计,硬件上采用Philips提供的RC522典型外围电路,软件上除了基本的卡操作流程外,根据M1卡多扇区多密码的特点,在数据传输的加密方面采用了一次一密的动态加密方式,大大地提高了数据安全性,不过由于每次读写卡时至少要访问到两个扇区,这样增加了一些用户的操作等待时间,但总体来讲并无大碍。

    尽管基于RC500读写卡器的技术已十分成熟,但以RC522为核心的相关系统在国内并不多见,同样是Philips公司的产品,RC522显然是RC500的精简版,无论是Command指令,还是内部寄存器都比RC500要更为简洁,且价格更为低廉,而总体功能上却并未削弱多少,因此本文认为RC522替代RC500将会是一种趋势。

}

我要回帖

更多关于 读卡器是怎么用的 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信