《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 等时间间隔指令分组并行处理的只读型射频卡读卡器的设计

等时间间隔指令分组并行处理的只读型射频卡读卡器的设计

2008-07-17
作者:徐寅林,倪维柱,朱松盛

    摘 要: 传统只读射频卡读卡器的设计一般采用U2270B或P4095读写基站芯片加MCU模式,其成本高、功耗大。本文介绍一种仅采用一片89C2051加少量普通元件构成的读卡器电路以及独特的等时间间隔" title="时间间隔">时间间隔指令分组并行处理" title="并行处理">并行处理的程序设计方案,电路简单、功耗小、成本低。
    关键词: 射频卡读卡器  等时间间隔指令分组  并行处理

 

    非接触式只读型IC卡又称只读射频卡(RFID),经过多年的发展和推广,已经广泛应用于身份识别和寻址控制,如门禁、保安、考勤、食堂等领域。目前已逐步扩展应用到展览会、公园、旅店、餐厅等公共场所的门票、优惠卡以及生产过程、邮政包裹、航空铁路运输、产品包装、交通等部门的物流、电子标签、防伪标志、一次性票证等众多领域。
    射频卡与读卡设备之间无须接触,采用无线耦合和电磁感应方式与读卡设备之间通讯。射频卡按照其工作频率可以分为低频卡和高频卡两类。低频卡的工作频率为125kHz,高频卡的工作频率为13.56MHz。其中瑞士EM微电子公司的EM4100低频卡及兼容系列由于价格低、读卡距离远、读卡器简单而应用最为广泛。
    传统的低频射频卡读卡器的设计一般采用U2270B或P4095读写基站芯片+MCU模式,电路相对复杂,成本较高。本文介绍一种新颖的射频卡读卡器,该读卡器采用独特的等时间间隔指令分组并行处理的程序设计方案,充分利用89C2051的潜在功能,舍去了读写基站芯片,因而硬件电路大大简化。该类型的读卡器读卡距离与采用读写基站芯片的读卡器相当,但电路功耗低、硬件成本仅为传统读卡器的一半左右,因此多年来已生产大量产品,运行使用情况良好。
1 EM4100射频卡简介
    EM4100是一种广为使用的只读射频感应卡,其内部ROM保存着10位十进制卡号数据。当它被放在一个频率125kHz交变电磁场时感应获得能量驱动,射频卡内置天线环路等效负载的改变,势必造成射频卡对交变电磁场能量吸收数量的改变。如果这个天线环路等效负载是按照一定时序变化的,就可以对该外部交变电磁场实现反调制,从而将其内部芯片数据反馈传递给读卡器。
    EM4100采用Manchester(曼彻斯特)调制格式编码。一旦射频卡获得有效能量,它就会周而复始地向外发送64个数据位信息(称之为一帧数据),位传送率为RF/64,即每一位信息时长为64个外部电磁场波动周期,也就是64位信息位中包括9位‘1’的同步引导头,40位的卡号数据,14位奇偶校验以及 1位停止位。全部64位信息由制造商生产时编程刻录在ROM中,其卡号数据是全球唯一的。

 


    图1为曼彻斯特编码" title="曼彻斯特编码">曼彻斯特编码示意图,在一个数据位的中间时刻,信号的上跳变" title="跳变">跳变表示数据“1”的编码;信号的下跳变表示数据“0”的编码。
    表1为EM4100射频卡内部64数据位信息定义。

 

    其中D20~D23,D30~D33,……,D80~D83,D90~D93 32个数据位依次由低到高存放4个字节的卡号数据。所以最大卡号数据为0FFFFFFFFH,也就是10位十进制数的“4294967295”。
2 射频卡读卡器的设计
2.1 电路设计方案

    按照射频卡工作原理,读卡器的电路设计分为125kHz电磁波产生电路、电磁波的接收及解调电路、曼彻斯特编码信号的解码电路三个部分。
    图2为射频卡读卡器电路图。

 


    (1)125kHz电磁波产生电路
    为了充分利用硬件资源,125kHz信号直接由U1单片机的P1.7口提供,用软件在P1.7口产生精确的矩形波" title="矩形波">矩形波周期信号。U2A的6个并接反相器74HC04起到功率放大驱动的作用,125kHz信号通过限流电阻R5提供给天线L1、电容C1组成的串联谐振电路。适当调节天线L1的电感量,使LC串联谐振电路在125Hz达到谐振,此时在C1两端能观察到峰峰值高达80V的正弦信号。由于C1两端电压较高,所以在选择元件参数时要注意电容的耐压问题。
    (2)电磁波的接收及解调电路
    如图2所示,D1、D2,C2~C6,R1~R4共同构成了电磁波接收及解调电路。
    在读卡器附近没有射频卡的情况下,在测试点①处得到的是125kHz的等幅振荡信号。一旦有卡片进入读卡范围,由于卡片天线环路等效负载的反调制作用,在①处得到的信号将如图1第三行所示的调制波形。该调制波经C2耦合,同时送到D1、C5及D2、C6组成的检波电路。在测试点②③处将得到图1第二行所示的解调包络波形,不过②③两点的波形刚好互为反相。解调波形再经过电阻R1、R4电容C3(下半部分电路为电阻R2、R3电容C4)构成的π型滤波器进一步滤去残余的125kHz载波信号,得到较为理想的解调信号送至单片机的两个输入端P1.0、P1.1。
    (3)曼彻斯特编码信号的解码
    单片机的两个输入端P1.0、P1.1连接其内部比较器+、-输入端,比较器的输出端直接连接内部P3.6脚。程序读P3.6脚就可获得较为理想的解调后的编码信号,曼彻斯特编码信号的解码是通过程序软件实现的。
2.2 程序设计
    (1)数据位检测
    数据位的检测就是曼彻斯特编码信号的解码,主要在于P3.6引脚信号的跳变边沿检测。因为两个数据位的时间间隔为512μs,所以在检测到一个跳变后,再分别检测P3.6在延时400μs、600μs时的状态,从而判定下一个跳变是上升沿还是下降沿。但是这样的检测存在一点问题,曼彻斯特编码信号的跳变不仅发生在每个数据位的中间,也会发生在两个相同数据位(相邻两个数据位为11或00)的交界处,见图1曼彻斯特编码信号波形第3、4数据位交界处有个下降沿,第5、6数据位交界处有个上升沿。仔细分析图1曼彻斯特编码波形图,可以发现,只有当相隔512μs后仍能检测到跳变,当前的跳变才有可能是数据位中间的跳变,如果512μs后检测不到跳变,则当前的跳变就是数据位连接处的跳变。一旦判断表明当前的跳变是数据位连接处的跳变,就需要从下一个边沿重新开始检测所有的数据位。
    (2)同步头检测
    按照上述方法,如果连续检测到9个上升沿(即9位数据1的同步头)就意味着新的一帧数据开始到来。但是,由于边沿检测程序及9个1的同步头判断程序需要花费不少时间,所以不采用边检测边判断同步头的方法,而是一次性连续读入128位(这样肯定能获得完整的一帧数据),然后在这128位中寻找同步头,再进行后续的数据位处理。通过实践发现,经过这样处理后读卡器读卡最灵敏。
    (3)等时间间隔指令分组产生125kHz矩形波
    125kHz矩形波的周期是8μs,利用P1.7产生该信号意味着每隔4μs P1.7就要取反一次。在采用12MHz晶振的单片机系统中,显然是无法用定时器中断来实现的,因为光是中断响应最长时就要达到8个机器周期,超过了4μs。
    为了既能产生125kHz矩形波又能同时做数据位检测等其他工作,采用等时间间隔指令分组方法实现了并行处理算法。具体思路如下:在连续读入128数据位时,为实现该工作而编写的指令代码都按执行时间被划分为4μs一组,每组的第一条指令必定是CPL P1.7以产生125kHz矩形波信号(如图3所示),而同组的其他指令才用于实现边沿检测、数据存储等工作。图3中左边的“并行处理算法示意图”和右边的“程序片断”仅用于示例,两者没有对应关系。

 


    本文介绍了一种新型只读型射频卡读卡器的电路及程序实现方法。该读卡器采用等时间间隔指令分组并行处理算法最大化,利用了89C2051的功能,相比同类型读卡器不需要U2270或P4095读写基站芯片,因此电路简洁、成本低、功耗小。
参考文献
[1] ATMEL89系列Flash单片机原理及应用.北京:电子工业出版杜,2001.
[2] EM4100 datasheet(EM4100数据手册).
[3] Temic U2270B datasheet(U2270B数据手册).
[4] www.sefea.com/pdf/P4095_B.pdf(P4095数据手册).

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。