非接触式e5551读写器的开发
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