一种简易的125khz读卡器设计原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种简易的EM 125khz读卡器设计原理
2008年12月04日星期四 22:52
等时间间隔指令分组并行处理的只读型射频卡读卡器的设计
徐寅林,倪维柱,朱松盛
南京师范大学物理科学与技术学院,江苏南京210097
2008-07-17
摘要:传统只读射频卡读卡器的设计一般采用U2270B或P4095读写基站芯片加MCU模式,其成本高、功耗大。
本文介绍一种仅采用一片89C2051加少量普通元件构成的读卡器电路以及独特的等时间间隔指令分组并行处理的程序设计方案,电路简单、功耗小、成本低。
关键词:射频卡读卡器等时间间隔指令分组并行处理
非接触式只读型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为曼彻斯特编码示意图,在一个数据位的中间时刻,信号的上跳变表示数据“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口产生精确的矩形波周期信号。
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)构成的π型滤波器进一步滤去残余的125 kHz载波信号,得到较为理想的解调信号送至单片机的两个输入端P1.0、P1.1。
(3)曼彻斯特编码信号的解码
单片机的两个输入端P1.0、P1.1连接其内部比较器+、-输入端,比较器的输出端直接连接内部P3.6脚。
程序读P3.6脚就可获得较为理想的解调后的编码信号,
检测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读写基站芯片,因此电路简洁、成本低、功耗小。