我的订单购物车(0)联系客服 帮助中心供应商合作 嘉立创产业服务群
领券中心备货找料立推专区爆款推荐TI订货PLUS会员BOM配单工业品PCB/SMT面板定制

如何DIY一个钥匙门禁卡?

2017-08-04 14:33:53阅读量:16937来源:立创商城

在你看来,这是冷冰冰的元器件。在他们眼里,这是魔术师手里的帽子,里面藏着电子科技的神秘。第二届立创商城电子制作节电子“魔术师”们的精彩作品,等你来围观:www.szlcsc.com/go/170508zzj!留下精彩点评,还可参与抢楼赢红包活动:www.szlcsc.com/go/170728ql26个666元大红包等你来抢!


本作品经原作者西西授权发布并标注原创,转载请注明出处,未经允许不得用作商业用途。

作品名称:基于EM4095的125KHz RFID读卡器

1、作品简介

无线射频识别,即RFID(RadioFrequencyIdentification)是利用感应、电磁场或电磁波为传输手段,完成非接触式双向通信、获取相关数据的一种非接触式IC卡自动识别技术。该技术完成识别工作时无须人工干预,易于实现自动化且不易损坏,操作快捷方便,已经得到了广泛的应用。比如:公交卡、钥匙门禁卡等等。

RFID系统的分类方法有很多,在通常应用中都是根据频率来分,根据不同的工作频率,可将其分为低频(120~135kHz)、高频(10~15MHz)、超高频(850~960MHz)、微波(2.45~5.8GHz)等。

本文介绍的这个电子制作是工作于125KHz的低频卡,该读卡器所使用的主控芯片是Em4095和超高性价比的ST单片机STM8S003。系统具有电路简洁,成本低的特点,主要实现了对广泛使用于钥匙扣的无源只读卡(EM4100型ID卡或兼容卡)的数据读取。

2、作品亮点

①主控采用瑞士EM公司出品的专用读卡芯片EM4095,电路简洁、稳定。

②信号解码部分采用超低成本1.X元的意法半导体8位单片机STM8S003F3P6完成。

③单片机端采用“自适应算法”实现对RFID输出信号(曼彻斯特编码解码)的解码,具有不受单片机时钟信号快慢、精度的影响,实现了稳定的解码输出、且读卡距离远。

3、系统框架

此系统的基本工作原理并不复杂:卡主控制器EM4095持续不断发出125KHz的射频场信号,当标签(EM4100)进入该作用范围后,标签凭借感应电流所获得的能量发送出存储在该芯片中的产品信息(包含40位的ID号码),接着EM4095的模拟前端输出该已解调好的原始信号,以曼彻斯特编码的方式送至中央信息系统(单片机)进行ID号码的解析。

4、硬件原理图描述

原理图分为多个部分,下面逐个介绍:

第一部分:读卡器主控EM4095部分的硬件电路

备注说明:上图中,是一个载波频率125K(范围100K~150KHz)RFID的阅读芯片(内部集成调制/解调器——曼彻斯特编码),它完成模拟前端的收发和基站信号的解调输出;而J2是一个P2.54插座接口,需接到一个尺寸为36×65mm的铜线绕制的矩形线圈。该电路的具体工作过程可描述如下:

EM4095的引脚SHD和MOD用来操作设备。当SHD为高电平的时候,EM4095为睡眠模式,电流消耗最小。在上电的时候,SHD输入必须是高电平,用来使能正确的初始化操作。当SHD为低电平的时候,回路允许发射射频场,并且开始对天线上的振幅调制信号进行解调。

引脚MOD是用来对125KHz射频信号进行调制的。事实上,当你1)在该引脚上施加高电平时,你将把天线驱动阻塞,并关掉电磁场;2)在该引脚上施加低电平,将使片上VCO进入自由运行模式,天线上将出现没有经过调制的125KHz的载波。EM4095用作只读模式,引脚MOD没有使用,推荐将它连接至VSS。

锁相环由环滤波、电压控制振荡器和相比较模块组成。通过使用外部电容分压,DEMOD_IN引脚上得到天线上的真实的高电压。这个信号的相和驱动天线驱动器的信号的相进行比较。所以锁相环可以将载波频率锁定在天线的谐振频率上。根据天线种类的不同,系统的谐振频率可以在100kHz到150kHz之间的范围内。当谐振频率在这一范围内的时候,它就会被锁相环锁定。

接收模块解调的输入信号是天线上的电压信号。DEMOD_IN引脚也同来做接收链路的输入信号。DEMOD_IN输入信号的级别应该低于VDD-0.5V,高于VSS+0.5V。通过外部电容分压可以调节输入信号的级别。分压器增加的电容必须通过相对较小的谐振电容来补偿。振幅调制解调策略是基于“振幅调制同步解调”技术的。接收链路由采样和保持、直流偏置取消、带通滤波和比较器组成。DEMOD_IN上的直流电压信号通过内部电阻设置在AGND引脚上。AM信号被采样,采样通过VCO时钟进行同步,所有的信号直流成分被CDEC电容移除。进一步的滤波把剩下的载波信号、二阶高通滤波器和CDC2带来的高频和低频噪声进一步移除。经过放大和滤波的接收信号传输到异步比较器,比较器的输出被缓存至DEMOD_OUT。

RDY/CLK这个信号为外部微处理器提供ANT1上信号的同步时钟以及EM4095内部状态的信息。ANT1上的同步时钟表示PLL被锁定并且接收链路操作点被设置。当SHD为高电平时,RDY/CLK引脚被强制为低电平。当SHD上的电平由高转低时,

PLL为锁定状态,接收链路工作。经过时间Tset后,PLL被锁定,接收链路操作点已经建立。这时候,传送到ANT1上的信号同时也传送至RDY/CLK,提示微处理器可以开始观察DEMOD_OUT上的信号和于此同时的时钟信号。当MOD为高电平时,

ANT驱动器关闭,但此时RDY/CLK引脚上的时钟信号仍然在继续。当SHD引脚上的电平从高到低之后,经过时间Tset后,RDY/CLK引脚上的信号被100kΩ的下拉电阻拉低。这样做的原因是为了标签的AM调制低于100%情况下RDY/CLK的扩展功能。在这种情况下它被用来做为辅助驱动器。该辅助驱动器在调制时使线圈上保持较低的振幅。

第二部分:信号解码单元(单片机部分)

备注说明:如上图所示,信号解码单元,由ST意法半导体单片机STM8S003F3P6完成,其中,Q1和B1组成了一个声音提示功能单元,由单片机内置的硬件BEEPER单元完成。P1接口是单片机的下载和仿真接口,读者可使用ST-LINK/V2开发工具进行操作。复位单元中,D2的用途是当关断系统电源VCC时,加快C8电压的释放,确保单片机下次上电的正常复位和启动。实际工作中,C26、C27、Y1组成的时钟产Th电路可省掉,而直接使用单片机内部的RC时钟源。PD3作为一个GPIO端口对

EM4095进行ONOFF控制,可控制系统的功耗;而EM4095的RFID输出信号(曼彻斯特编码解码)接到单片机的PD3端口(SIN)进行解码,解码完成后的信号(ID号码)由单片机的Uart串口接口进行对外输出。LED2和LED3是工作指示灯。

第三部分:系统的供电电源部分

备注说明:如上图所示,F1是可恢复保险丝(0.5A),U1是5.0V的LDOLM1117。

D1的作用是尽量防止电源接错而导致U1的损坏。VCC产Th的电压是5V给系统供电。

5、PCB实物图(暂无)

备注说明:因PCB制造还没赶得上,后续PCB这部分的原始设计文档和PCB实物图片,请到立创社区BBS里进行下载。

6、软件部分的描述

EM4095的数据格式为:9bit起始位+40bit数据位(ID值)+10bit行校验位

+4bit列校验位+1bit停止位,这部分的数据输出,EM4095是以曼彻斯特编码的形式对外输出的,因此不能直接利用和识别,因此需要用单片机对这些10101010二进制流进行解码,这样才能得到该RIFD的ID号码。硬件上,STM8单片机通过中断的方式,对EM4095输出的SIN信号进行同步解码。软件解码,这部分是该系统的关键部分,因篇幅有限,下面仅列出关键部分的代码,全部的源码工程文件,请到立创社区BBS里进行下载。

Main主函数里先定义一个256字节的数组,用于临时保存EM4095输出的二进制流。u8fdataTT_Buffer[256];

设置stm8s的PD3端口为上下升沿中断

GPIO_Init(GPIOD,GPIO_PIN_3,GPIO_MODE_IN_PU_IT);//Sin(INT!)

EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOD,EXTI_SENSITIVITY_RISE_FALL);

在中断函数里,不断收集二进制流,收满256个片段数据,停止收集,然后解码: 

主函数就是一个LOOP循环: 

7、材料清单(BOM列表)

以下是这个电子制作的BOM列表,器件全部采购来自立创商城(http://www.szlcsc.com),PCB板的制造在深圳嘉立创完成。

8、总结

此电子制作,因主控采用了知名瑞士EM公司出品的专用读卡芯片EM4095,系统具有电路简洁、稳定的特点,同时,单片机STM8S端采用了本人“自主研发的”

“自适应算法”实现对RFID输出信号(曼彻斯特编码解码)的解码,实现了不易受温湿度环境变化而导致的单片机时钟信号快慢的影响,实现了稳定的解码输出、且读卡距离远(手板实验,读卡距离大于8cm)。

我是立创的老铁粉丝,欢迎大家与本人进行交流。此作品以方案验证板的形式出现,并得到了立创商城的赞助,在此表示非常感谢!顺此,授权立创商城对本作品进行宣传和开源!


【关于】立创商城(WWW.SZLCSC.COM成立于2011年,致力于为客户提供一站式电子元器件线上采购服务,成交量全国领先。自建6000多平米现代化元器件仓库,现货库存超50000种。本文经作者授权发布并标注原创,转载请注明出处。