1 系统工作原理和CPLD特性
射频卡读写系统又称射频识别系统(Radio Frequency Identification),它是利用无线方式进行非接触式双向数据通信,进而达到识别目标并交换信息的目的。射频识别技术发展迅速,在门禁、交通这、防盗、金融、身份证管理、工业自动化等方面有着广泛的应用前景。按照相关标准,非接触IC卡可以分为3种:(1)密耦合卡(ISO10536),作用距离0~1cm。(2)近耦合卡(ISO 14443),作用距离0~10cm。(3)疏耦合卡(ISO 15693),作用距离0~150cm[1]。
基于ISO 15693协议标准设计的射频卡读写器是目前中低频段工作距离最远(达1.5米)的射频识别装置。射频卡由半导体厂商提供,目前国内外均有符合该标准的商用化射频卡。
在实际应用中,密耦合卡和近耦合卡距离射频卡读写器作用距离特别小,一般每次只要求响应一张卡(如公交售票系统)。而疏耦合卡往往应用在对多卡同时进行响应的场合(如多个持卡行李同时经过门检),读写器与多卡同时进行数据交换可以通过软件设计加入“防碰撞机制”实现。但是由于读写器在响应某张卡时的数据交换时间被限制在200μs~300μs内,选用普通单片机无法达到这一要求,因此在设计中选用了高速CPLD器件来实现编码、解码以及差错控制功能。一方面在响应时间上满足了实际应用的需要;另一方面简化了软件设计。
2.1 编码器与译码器
单片机启动编码后,编码模块向单片机发中断(INT0)获取待编码的指令数据,同时将指令数据送入并行CRC模块。当指令数据完成编码后,控制电路将2字节 CRC值紧接在数据之后进行编码。译码时,译码器检测到起始位后,开始译码。译码后的数据通过中断(INT1)通知单片机取走。并同时送入CRC并行运算模块进行校验,单片机在特定的时刻(接收完最后一字节数据时)读取CRC校验标志端口CRCALL0,判断整个数据串的正确性。
(1)数据编码从读写器到卡的数据采用脉冲位置调制即“1/256”编码。用256个时隙表示8bit数据,通过控制bit脉冲出现的时间位置来表示0~255范围内的数据。如图2,在第255个位置出现的位置脉冲(9.44μs高电平的9.44μs低电平)表示数据E1(HEX),采用计数器加控制电路即可实现。控制部分协助实现数据无缝编码及形成帧起始位和结束位,用VHDL设计易于实现。编码后的数据进行ASK调制(13.56MHz载波),经天线发射出去。
(2)数据译码从射频卡返回的数据经过一次解调(去掉13.56MHz载波)后,数据编码格式如图3所示。可以直接进行数据译码,也可以去除子载波(423.75kHz)后得到Manchester码再译码。这里采用后者,通过在每一bit的前、后半段时间内两次取样、判决、加以串并变换即可得到译码后的并行数据并送至并行CRC模块进行CRC校验,同时送往单片机处理,行CRC模块在校验结束时通知单片机取校验结果。
2.2 差错处理模块
与射频卡内部电路配合,读写器端采用了常用的CRC检错得传机制。为了缩短处理时间,满足读写器在实际应用中对多张卡同时处理时的响应时间要求,设计采用硬件实现。