打印
[应用方案]

单片机读取ID卡

[复制链接]
1953|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一、非接触卡的读卡原理
本系列**主要探讨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电阻不断并联,从而更改负载电阻的大小,当谐振回路两端的电压发生变化时,由于线圈电感耦合,这种变化会传递给读写器,表现为读写器线圈两端电压的振幅发生变化,因此产生对读写器电压的调幅,从而产生包络。

使用特权

评论回复
地板
21mengnan|  楼主 | 2019-6-11 22:45 | 只看该作者
(3)包络检波:
读卡器内部流程如下图所示。

使用特权

评论回复
5
21mengnan|  楼主 | 2019-6-11 22:45 | 只看该作者
由于我们需要在产生的载波上,读取ID卡的编码,这时候调制信号的包络就是曼切斯特码,此时就需要包络检波电路来“提取”对应的曼切斯特码。

使用特权

评论回复
6
21mengnan|  楼主 | 2019-6-11 22:45 | 只看该作者
包络:当用一个低频信号对一个高频信号进行幅度调制(即调幅)时,低频信号就成了高频信号的包络线。这样的信号称为调幅信号。 从调幅信号中将低频信号解调出来的过程,就叫做包络检波。

使用特权

评论回复
7
21mengnan|  楼主 | 2019-6-11 22:46 | 只看该作者
4、电路
(1)推挽式功率放大电路

(2)LC谐振电路

(3)包络检波电路

使用特权

评论回复
8
21mengnan|  楼主 | 2019-6-11 22:46 | 只看该作者
(4)滤波整形电路

使用特权

评论回复
9
21mengnan|  楼主 | 2019-6-11 22:47 | 只看该作者
我们在本文中使用新唐的N76E003单片机作为主控,通过f=1/T可以算出,T约为8us。我们采取PWM输出125KHz载波。
void main(void)
{
    Set_All_GPIO_Quasi_Mode;//所有IO设置为双向模式
        PWM5_P03_OUTPUT_ENABLE;//使能PWM5,通过P03引脚输出
        clr_PWMTYP;//边沿对齐模式
        clr_PWMMOD0;//设置为独立输出模式
        clr_PWMMOD1;
        PWM_CLOCK_DIV_8;//8分频模式
        PWMPH = 0x00;
        PWMPL = 0x0f;
       
    set_SFRPAGE;//PWM4 and PWM5 duty seting is in SFP page 1
    PWM5H = 0x00;               
    PWM5L = 0x08;
    clr_SFRPAGE;                                            
    set_LOAD;//载入周期和占空比
    set_PWMRUN;//开始输出PWM
    while(1)
    {
       //构建你的代码,LOAD会自动重载,PWM持续输出。
    }
}

使用特权

评论回复
10
21mengnan|  楼主 | 2019-6-11 22:48 | 只看该作者

使用特权

评论回复
11
21mengnan|  楼主 | 2019-6-11 22:49 | 只看该作者
单片机读取ID卡(EM41000的数据格式)
(一)EM4100的数据格式

现在让我们来解释一下。
(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

在完成单片机读卡后,我们会使用单片机模拟ID卡,将使用这种数据格式发送卡号)

使用特权

评论回复
12
21mengnan|  楼主 | 2019-6-11 22:49 | 只看该作者
(二)曼切斯特编码
为了后续的单片机读卡及单片机模拟ID卡,故我们需要了解下曼切斯特码(Manchester Encoding)的工作方式。让我们来看看下图

主要观察上图中的四种状态:11,10,01,00

使用特权

评论回复
13
21mengnan|  楼主 | 2019-6-11 22:50 | 只看该作者
1、功率放大电路及125Khz载波测量
A点为示波器测量处,signalcarrier为单片机产生125KHz波形

实际波形

使用特权

评论回复
14
21mengnan|  楼主 | 2019-6-11 22:51 | 只看该作者

2、LC谐振电路及正弦波测量
B点为示波器测量点

使用特权

评论回复
15
21mengnan|  楼主 | 2019-6-11 22:52 | 只看该作者
3、包络检波电路及检波波形
C点为示波器测量点

使用特权

评论回复
16
21mengnan|  楼主 | 2019-6-11 22:52 | 只看该作者
4、放大整形电路及输出波形测量
测量点为OutSignal。

使用特权

评论回复
17
21mengnan|  楼主 | 2019-6-11 22:53 | 只看该作者
5、波形分析与读码
通过上面最终输出的波形,单片机已经可以识别到输出的曼切斯特码了。
首先我们使用市面上能买到的读卡器,读取一下本次测试用的ID卡卡号
1 E 0 0 6 8 B 0 9 8
通过在EM4100的数据格式一文中的格式,我们进行拆解,如下图所示


下面是一段随机截取的输出波形。我们进行分析

1111111111100110111001000,对照上图列表中的数据,然后发现根本对不上,,,,,
回过头来,我们在来看看关于曼切斯特码的格式。
从低到高跳变表示“1”,从高到低跳变表示“0”。(百度百科)

使用特权

评论回复
18
21mengnan|  楼主 | 2019-6-11 22:54 | 只看该作者
这时候我们取反一下上面得到的编码
0000000000011001000110111(这下就可以对应上了吧~~~~~)

现在再让我们来看下维基百科上的相关图片,相信就会一目了然。

使用特权

评论回复
19
qiangtech| | 2019-6-12 10:14 | 只看该作者
很好,非常透彻。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

78

主题

1008

帖子

1

粉丝