[应用方案] 单片机读取ID卡

[复制链接]
2490|18
 楼主| 21mengnan 发表于 2019-6-11 22:44 | 显示全部楼层 |阅读模式
一、非接触卡的读卡原理
本系列**主要探讨125KHz频段下的ID卡,13.5MHz频段IC卡不在本文探讨范围内。

1、简介
ID卡全称是(Identification Card)是一种只读型的非接触式卡,出厂时,厂家会将ID号写死在芯片内部,不允许进行二次修改,国内常见的ID卡为EM4100、EM4102卡等。

2、读卡流程
读卡器通过持续发射特定频率的射频信号,当ID卡进去其工作范围内时,将产生感应电流(想象变压器),ID卡得电后,将自身芯片内的编码信息通过天线发送出去;读卡器接收到从标签发送来的调制信号,经过解调后,得到ID卡的编码信息。

3、工作原理
(1)单片机通过控制 8050(NPN 型)和 8550( PNP 型) 构成了推挽式功率放大电路,再通过LC谐振电路, 产生 125KHz 的读卡驱动信号。

 楼主| 21mengnan 发表于 2019-6-11 22:44 | 显示全部楼层
LC谐振电路具有选频能力,它可以将有用的频率成分保留下来,而将无用的频率成分滤除,比如收音机、电视机。收音机的天线会同时接收多个电台发射的不同载波的广播节目,而我们收听时,必须在这众多广播节目中选出我们所要接收的那一套广播节目,这就是选频(选台)。改变谐振电路的谐振频率,使其谐振在所需要接收台的载频上,从而选择出所接收台的广播信号,而滤除掉除此之外的其他台及外来的无用信号,这就完成了选台。
 楼主| 21mengnan 发表于 2019-6-11 22:45 | 显示全部楼层
(2)当有 ID 卡靠近读卡器线圈时,谐振把能量感应到 ID 卡内的线圈上, 对卡内的电容进行充电,ID 卡将以此作为电源, 通过负载调制的方法,向读卡器发送信息。原理如下所示。
如果变压器的副边突然接入一个大的负载,变压器原边电压就会瞬间降低,切除负载,变压器的原边电压就会马上恢复。前面说了,射频卡相当于变压器的副边,卡内也有这样一个负载,接通负载时射频场的振荡幅度会减小,切除负载,射频场的幅度会恢复。卡片通过负载是否接入来表示发送的数据,读写器探测到射频场的幅度改变,就能知道卡片发送什么数据了。这就是卡片回送数据的原理。
通过S开关的不断切换,将Rmod电阻不断并联,从而更改负载电阻的大小,当谐振回路两端的电压发生变化时,由于线圈电感耦合,这种变化会传递给读写器,表现为读写器线圈两端电压的振幅发生变化,因此产生对读写器电压的调幅,从而产生包络。
122835cffbe6db0091.png
 楼主| 21mengnan 发表于 2019-6-11 22:45 | 显示全部楼层
(3)包络检波:
读卡器内部流程如下图所示。
355515cffbe7f0331f.png
 楼主| 21mengnan 发表于 2019-6-11 22:45 | 显示全部楼层
由于我们需要在产生的载波上,读取ID卡的编码,这时候调制信号的包络就是曼切斯特码,此时就需要包络检波电路来“提取”对应的曼切斯特码。
 楼主| 21mengnan 发表于 2019-6-11 22:45 | 显示全部楼层
包络:当用一个低频信号对一个高频信号进行幅度调制(即调幅)时,低频信号就成了高频信号的包络线。这样的信号称为调幅信号。 从调幅信号中将低频信号解调出来的过程,就叫做包络检波。
 楼主| 21mengnan 发表于 2019-6-11 22:46 | 显示全部楼层
4、电路
(1)推挽式功率放大电路
235915cffbea8756f4.png
(2)LC谐振电路
717005cffbeb51c10b.png
(3)包络检波电路
979355cffbec3de247.png
 楼主| 21mengnan 发表于 2019-6-11 22:46 | 显示全部楼层
(4)滤波整形电路
305225cffbed36c489.png
 楼主| 21mengnan 发表于 2019-6-11 22:47 | 显示全部楼层
我们在本文中使用新唐的N76E003单片机作为主控,通过f=1/T可以算出,T约为8us。我们采取PWM输出125KHz载波。
  1. void main(void)
  2. {
  3.     Set_All_GPIO_Quasi_Mode;//所有IO设置为双向模式
  4.         PWM5_P03_OUTPUT_ENABLE;//使能PWM5,通过P03引脚输出
  5.         clr_PWMTYP;//边沿对齐模式
  6.         clr_PWMMOD0;//设置为独立输出模式
  7.         clr_PWMMOD1;
  8.         PWM_CLOCK_DIV_8;//8分频模式
  9.         PWMPH = 0x00;
  10.         PWMPL = 0x0f;
  11.        
  12.     set_SFRPAGE;//PWM4 and PWM5 duty seting is in SFP page 1
  13.     PWM5H = 0x00;               
  14.     PWM5L = 0x08;
  15.     clr_SFRPAGE;                                            
  16.     set_LOAD;//载入周期和占空比
  17.     set_PWMRUN;//开始输出PWM
  18.     while(1)
  19.     {
  20.        //构建你的代码,LOAD会自动重载,PWM持续输出。
  21.     }
  22. }
 楼主| 21mengnan 发表于 2019-6-11 22:48 | 显示全部楼层
 楼主| 21mengnan 发表于 2019-6-11 22:49 | 显示全部楼层
单片机读取ID卡(EM41000的数据格式)
(一)EM4100的数据格式
128295cffbf4c098ae.png
现在让我们来解释一下。
(1)首先第一行,是9个“1”,这是EM4100固定的格式。
(2)之后的D00~D03,就是第一个ID号,P0代表的是第一行的偶校验(例:0000_0/0001_1/0110_0)当不为偶数时,偶校验置1。P0-P9均为每行前四位的偶校验。
(3)PC0~PC3为每列(P0-P9)的偶校验,(例:0000000110_0)
(4)举个栗子:卡号为06001259E3
694415cffbf672ba1e.png
在完成单片机读卡后,我们会使用单片机模拟ID卡,将使用这种数据格式发送卡号)
 楼主| 21mengnan 发表于 2019-6-11 22:49 | 显示全部楼层
(二)曼切斯特编码
为了后续的单片机读卡及单片机模拟ID卡,故我们需要了解下曼切斯特码(Manchester Encoding)的工作方式。让我们来看看下图
626855cffbf8615c04.png
主要观察上图中的四种状态:11,10,01,00
 楼主| 21mengnan 发表于 2019-6-11 22:50 | 显示全部楼层
1、功率放大电路及125Khz载波测量
A点为示波器测量处,signalcarrier为单片机产生125KHz波形
612725cffbfaed307c.png
实际波形
 楼主| 21mengnan 发表于 2019-6-11 22:51 | 显示全部楼层
966535cffbfe4eed2b.png
2、LC谐振电路及正弦波测量
B点为示波器测量点
726415cffbfee386c4.png
321755cffbff4b87d3.png
 楼主| 21mengnan 发表于 2019-6-11 22:52 | 显示全部楼层
3、包络检波电路及检波波形
C点为示波器测量点
459845cffc0047068a.png
786025cffc01e9cd3e.png
 楼主| 21mengnan 发表于 2019-6-11 22:52 | 显示全部楼层
4、放大整形电路及输出波形测量
测量点为OutSignal。
462485cffc034a76b7.png
526695cffc04409a40.png
 楼主| 21mengnan 发表于 2019-6-11 22:53 | 显示全部楼层
5、波形分析与读码
通过上面最终输出的波形,单片机已经可以识别到输出的曼切斯特码了。
首先我们使用市面上能买到的读卡器,读取一下本次测试用的ID卡卡号
1 E 0 0 6 8 B 0 9 8
通过在EM4100的数据格式一文中的格式,我们进行拆解,如下图所示


下面是一段随机截取的输出波形。我们进行分析
662205cffc059d7108.png
1111111111100110111001000,对照上图列表中的数据,然后发现根本对不上,,,,,
回过头来,我们在来看看关于曼切斯特码的格式。
从低到高跳变表示“1”,从高到低跳变表示“0”。(百度百科)

 楼主| 21mengnan 发表于 2019-6-11 22:54 | 显示全部楼层
这时候我们取反一下上面得到的编码
0000000000011001000110111(这下就可以对应上了吧~~~~~)

现在再让我们来看下维基百科上的相关图片,相信就会一目了然。
420865cffc07ddaccd.png
qiangtech 发表于 2019-6-12 10:14 | 显示全部楼层
很好,非常透彻。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

88

主题

1151

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部