摘要:介绍了非接触式e5551卡工作原理和与单片机的接口,给出了非接触式e5551卡读写器的硬件电路和读卡、写卡程序流程图。 关键词:非接触式卡 射频识别 读写器 RF 射频识别RFIDRadio Frequency Identification
技术是二十世纪九十年代兴起的一项自动识别技术,它利用无线射频方式进行非接触式双向通信。RFID系统中卡片与读写器之间无须物理接触即可完成识别,可实现多目标识别和运动目标识别,应用范围更加广泛。 根据工作频率不同,RFID系统可分为低频、中频、高频系统。低频系统一般工作在100kHz~500kHz,中频系统工作在10MHz~15MHz,它们主要适用于短距离、低成本识别高频系统工作在850MHz~950MHz以及2.4GHz~5GHz的微波段,适用于距离长、读写数据率高的场合。本文介绍的e5551 RFID系统属于低频系统,工作频率范围为100kHz~150kHz,最大识别距离约为20cm。
1 非接触式e5551卡工作原理 e5551 RFID系统组成如图1所示。其中PC通过RS485通信远程操作e5551读写器。读写器利用微控制器(MCU)与e5551卡进行交互读写。 通过e5551卡内线圈在特定交变磁场100kHz~150kHz中耦合,e5551获得感应电流,再通过整流得到直流加到卡内电路,e5551得到工作电压和电流。通过读写器的线圈感应e5551卡产生的磁场来读取e5551发送的数据。 1.1 e5551卡的存储结构 e5551卡内置264位EEPROM。这些EEPROM共分为8块,每块33位,其分布如图2所示。其中BLOCK0存储e5551卡的参数设置信息;BLOCK7在口令加密功能启动时存放e5551卡的读写控制密码,当加密功能没有使用时存放用户数据;其它六个存储块存放各种数据。
1.2 e5551卡工作参数的设定 BLOCK0用于设置e5551卡的各种操作特性,如同步信号、数据流格式、数据流长度、加密、口令唤醒和停止发射的启用/关闭等。 (1)位率(Bitrate)设定:位率可设置为RF/8、RF/16、RF/32、RF/40、RF/50、RF/64、RF/100、RF/128,由第12、13、14位确定。其中RF指载波频率Radio Frequency。 (2)调制方式设定:调制方式由两部分组成。第一部分为二进制编码方式,有直接编码、曼切斯特编码和双相位编码三种方式,由第16、17位确定;第二部分为频率调制方式,有相位键控、频率键控和直接编码三种方式,由第18、19、20位确定。 (3)口令加密设定:由第28位决定。该位置1启动口令加密功能,在启动口令加密功能前应该事先在BLOCK7写入密码。启动口令加密功能后,用户对e5551卡中数据进行修改均要求提供密码验证,密码正确时修改有效,否则修改无效。 图3 e5551芯片上电后线圈两端的电压 (4)请求应答(Answer On Request)设定:由第23位决定。该位置1启动AOR功能,这时e5551卡进入射频区后不主动发射数据,由基站给e5551卡发射唤醒命令后再发射数据。该功能要求首先启动口令加密功能,即基站唤醒e5551卡必须在唤醒命令序列中向e5551卡发射口令密码,e5551卡检测到合法唤醒命令时才恢复发射数据。 (5)同步信号设定:e5551卡可以使用两种不同的同步信号—Sequence Terminator和Block Terminator。Sequence Terminator在每个数据循环开始时出现;Block Terminator在每个BLOCK数据开始时出现。两种同步信号分别由第29、30位确定,它们既可以独立使用也可以结合使用。 (6)发射最大数据块数设定(MAXBLK):由第25、26、27位确定。当MAXBLK设置为0时,e5551卡只发射BLOCK0的数据给基站;当设置为1时e5551卡只发射BLOCK1的数据给基站;当设置为2时,e5551卡发射BLOCK1和BLOCK 2的数据给基站,余者依次类推。在启动口令加密功能后MAXBLK的值应小于7,这样e5551将不发射BLOCK7的数据。 2 e5551卡的读写 2.1 e5551卡的读 读e5551卡是指U2270B通过MCU进行读卡。在e5551卡内部,有个与e5551芯片相连的线圈,该线圈是e5551芯片供电与读卡器的双向通信接口。e5551卡就是利用该线圈产生具有阻尼特性的载频信号向读卡器发送数据。具体工作原理如图3所示。
当e5551卡接近读卡器时,由读卡器振荡电路产生的磁场感应e5551卡内的LC调谐电路产生感应电流,该电流经过e5551芯片内的整流器和过压保护电路得到e5551芯片的直流工作电压,形成上电复位,对应图3中的第一段;接着读取e5551芯片内BLOCK0的数据,即图3中的第二段;约2ms后,e5551卡按照设定的工作模式发送数据,首先从BLOCK1的第一位开始,直到MAXBLK所设定的最大块的最后一位。 2.2 e5551卡的写 写e5551卡指U2270B通过MCU进行写卡。读卡器通过对e5551卡内流过线圈的电流间隔性中断实现写卡,用电流流过e5551卡内线圈的持续时间实现对0和1的编码。详细过程如图4所示。 e5551卡读完BLOCK0数据后进入默认的读卡操作,如图4左半部分。若检测到起始电流中断,则e5551卡触发写卡操作,即图4的右半部分。电流中断持续时间一般为50μs~150μs,但为了便于可靠地检测起始电流中断,起始电流中断一般大于150μs。一般地,电流持续24个磁场脉冲周期编码为0,电流持续56个磁场脉冲周期编码为1。当电流持续了64个磁场脉冲周期后仍未检测到电流中断,e5551卡自动退出写卡模式。如果前面写卡数据正确就开始将数据编程写入e5551芯片的EEPROM,否则进行读卡操作。 图5 读写器硬件接口电路 3 读写器 3.1 硬件接口 U2270B是与e5551卡配套的一种近距离非接触式读写基站芯片,它所产生的载波频率为100kHz~150kHz,工作电压为5V或12V,适用于曼彻斯特编码或双相位编码,与微控制器有兼容接口。配上小量外围元件构成的读卡器电路如图5所示。 图5中用电阻R5、电容C6组成选频电路,去掉高频及低频,让100kHz~150kHz频率通过,与U2270B内部电路共同构成解调电路;用天线与内部驱动电路形成125kHz电磁场发射电路,传输能量;用4个二极管形成反馈电路稳定频率;用电阻R1及R7调节发射频率;通过二极管D5进行信号整形。 3.2 软件编程 本文以曼彻斯特编码、RF/32为例介绍e5551软件编程。采用曼彻斯特编码调制的数据,位数据1对应着电平上跳,位数据0对应着电平下跳。设RF=125kHz,位传送速率Bitrate=RF/32,则每传送一位数据的时间(位传送周期)为: 1P=32/125kHz=256μs 图6 读卡流程图 在一串数据序列中,两个相邻位数据传送跳变时间间隔为1P。若相邻位数据极性相同,则在该两次数据传送电平跳变之间,有一次非数据传送的电平空跳。程序开始时先等待一个TS=270μs~330μs高电平同步信号,然后按上述编码规则逐个检测电平变化并记录对应时间T1或T2,T1=90μs~180μs,T2=210μs~300μs。如前一数据为1的情况下,测得高电平时间为T1,对应下降沿无效,应接着测下一上升沿并得1;若测得高电平时间为T2,对应下降沿有效并得0。如前一数据为0的情况下,测得低电平时间为T1,对应上升沿无效,应接着测下一下降沿并得0;若测得低电平时间为T2,对应上升沿有效并得1。据此即可以串行方式读出卡内的数据。读卡程序流程图如图6所示。 写卡时,写0,CFE=1持续192μs,然后CFE=0持续280μs;写1,CFE=1持续448μs,然后CFE=0持续280μs。写卡程序流程图如图7所示。
e5551卡是一种低成本非接触式卡,虽然容量较小,但也能用于许多场合,如门禁系统、考勤系统等。如果硬件和软件设计合理,进一步提高其可靠性和安全性,再加上成本低廉、读写电路简单,应用必然更加广泛。