一、单片机读取ID卡(工作原理及电路)

目录
一、单片机读取ID卡(工作原理及电路)
二、单片机读取ID卡(产生载波)
三、单片机读取ID卡(EM41000的数据格式)
四、单片机读取ID卡(硬件调试及读码)

一、非接触卡的读卡原理

本系列文章主要探讨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 的读卡驱动信号。

LC谐振电路具有选频能力,它可以将有用的频率成分保留下来,而将无用的频率成分滤除,比如收音机、电视机。收音机的天线会同时接收多个电台发射的不同载波的广播节目,而我们收听时,必须在这众多广播节目中选出我们所要接收的那一套广播节目,这就是选频(选台)。改变谐振电路的谐振频率,使其谐振在所需要接收台的载频上,从而选择出所接收台的广播信号,而滤除掉除此之外的其他台及外来的无用信号,这就完成了选台。

(2)当有 ID 卡靠近读卡器线圈时,谐振把能量感应到 ID 卡内的线圈上, 对卡内的电容进行充电,ID 卡将以此作为电源, 通过负载调制的方法,向读卡器发送信息。原理如下所示。

如果变压器的副边突然接入一个大的负载,变压器原边电压就会瞬间降低,切除负载,变压器的原边电压就会马上恢复。前面说了,射频卡相当于变压器的副边,卡内也有这样一个负载,接通负载时射频场的振荡幅度会减小,切除负载,射频场的幅度会恢复。卡片通过负载是否接入来表示发送的数据,读写器探测到射频场的幅度改变,就能知道卡片发送什么数据了。这就是卡片回送数据的原理。

通过S开关的不断切换,将Rmod电阻不断并联,从而更改负载电阻的大小,当谐振回路两端的电压发生变化时,由于线圈电感耦合,这种变化会传递给读写器,表现为读写器线圈两端电压的振幅发生变化,因此产生对读写器电压的调幅,从而产生包络。
在这里插入图片描述

(3)包络检波:
读卡器内部流程如下图所示。
在这里插入图片描述

由于我们需要在产生的载波上,读取ID卡的编码,这时候调制信号的包络就是曼切斯特码,此时就需要包络检波电路来“提取”对应的曼切斯特码。
包络的相关知识可以看这里

包络:当用一个低频信号对一个高频信号进行幅度调制(即调幅)时,低频信号就成了高频信号的包络线。这样的信号称为调幅信号。 从调幅信号中将低频信号解调出来的过程,就叫做包络检波。

4、电路
(1)推挽式功率放大电路
在这里插入图片描述
(2)LC谐振电路
在这里插入图片描述
(3)包络检波电路
在这里插入图片描述
(4)滤波整形电路
在这里插入图片描述

检测方法:检测上次接收数据的结束位与下次接收数据的起始位(半个周期的低电平 与一个周期的高电平),但是,此时INPORT输入脚电平已变为低电平信号。 之后再连续检测16个半周期电平翻转,到达第9个1的前半周期(高电平), 之后INPORT变为低电平,再通过定时器0来模拟同步时钟,对曼彻斯特进行解。 注意:号发送顺序:先发校验位,紧接着是最高位、次高位····连发5位数据。 如本号是11100 00110 00000 00000 11100 10101 10100 00010 01011 01010 10010 最先接收到是第一个五位的校验位0,然后才是1110,依次类推。 下降沿为 1 上升沿为 0 整个程序的思想:每次采样完成,判断一次所采到的数据是否为1 ,若为1,继续采样,直到采完9个1, 若为0,丢掉数据,重新采样。从而实现是否有的判断。 ***********************************************************************************/ #include #include #include //增加部分:由于改版,读卡输入和蜂鸣器输入的io口有所更改 //----------------------------------------------------------------------------- // 16-bit SFR Definitions for 'F34x sfr16 SBRL1 = 0xB4; // Global CONSTANTS #define SYSCLK 12000000 // SYSCLK frequency in Hz #define BAUDRATE0 115200 // Baud rate of UART0 in bps #define BAUDRATE1 115200 // Baud rate of UART1 in bps #define BIT5 0x20 sbit SPK = P3^5; //蜂鸣器 sbit INPORT = P0^3; //解输入 sbit wave = P1^7;
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值