您当前的位置:五五电子网电子知识电子制作电脑-IT数码-外设自制一款RFID读卡器 正文
自制一款RFID读卡器

自制一款RFID读卡器

点击数:7581 次   录入时间:03-04 11:38:25   整理:http://www.55dianzi.com   电脑-IT数码-外设

  这个制作中RFID读卡器的印制电路板装有集成电路EM4095(b)读卡器,其功能是将RFID标签的数据通过已经安装的电路板上一些SMD元器件传输到ATM18测试板。

  也可以用微处理器ATtiny2313制作RFID读卡器,可以随意的从EM4102中读取数据,其中包括从软件下载的数据。这个制作更有趣的部分是向我们展示如何随心所欲的做你自己的RFID标签。我们接着看到如何将传感器连接到标签,并且与读卡器的传感器读卡器建立通信传递数据。这些传感器在电气上是绝缘的并且能在空间自由移动。

  一、能量传递
  
  EM41022型号的电子标签的能量获得是需要通过频率为125kHz时的电感耦合来实现的,作者认为这个设备能胜任的,自制RFID标签就不成问题。此外,通过EM4102提供的数据速率不是很高,简单的微型控制器都适用。

  下图中电路是用来确定从接收线圈传递来的能力有多大。RFID读卡器适用下列推荐数据:电感L=750μH,直径为0.25mm,线圈匝数为85匝,漆包线直径为0.25mm,线圈直径为50mm。

  接收线圈(L1)为95匝、1mH,并联于L1的谐振电容C1调谐与125KHz。发送和接收线圈的位置高于其他元件,且相距20mm。电流和电压的曲线通过调节R测出如下图示。下图(a)是测量电压与电流的函数关系,而下图(b)显示的是传输在负载上功率曲线。三条曲线分别显示调谐于200pF、远大于,远小于200pF的情况,以示失谐情况的影响。下图中可以看到在输出3V电压时它能耦合数十毫瓦的能量。一个ATtiny微型控制器在时钟频率为1MHz,电压为3V的情况下电流大概为2mA;在125kHz的情况下电流是低于O.1mA。因此看起来提供微型控制器运行所需的足够功率不是难题。

  RFID集成电路EM4102通过调制读卡器负载来传送ID。每个数据位传递需要占据125kHz载波的64个时钟周期,折合为波特率为1953.125BPS。一个完整的数据包32.768ms内完成传输。使用125kHz信号作为RFID控制器的时钟是可以的。这种自动化确保位时钟与读卡器同步,由于上述时钟的慢摆动,电流消耗是非常低的。也意味着CPU只需要计数64个时钟周期才转移到下一位:这就是对CPU(ATtiny3)进行汇编编程的原因。

  下图显示制作的电子标签的完整电路图。通过L1和C1形成的谐振回路提供微型控制器时钟。同时125kHz的AC信号经过二极管整流提供给CPU电源(或功率)。NMOS管T1的导通使谐振电路加上R3负载使振荡幅度减小,并且它通过调制信号实现微型控制器传输数据。但是,信号幅度必须不能过度减少,否则微型控制器因时钟失步而造成出错。

电子标签电路

  本制作的印制电路板的电路如下图。线圈并联在C1,并且焊接在C1引线脚的两侧相邻近的焊点上。

  AVR/GCC)嵌入。读卡器的最佳设计是元器件使用SMD封装,本制作使用C(AVR/GCC)编程并烧录芯片。

  读卡器的电路如下下图示,是非常简单的并且很容易手工绘制电路板。但是按翻拍会使制作PCB更简单,装有EM4095的4号板与5号板通过接口K3连接。在电路板上连接点为ANT1和ANT2外接线圈,其电感量为750μH,这并不严格,由于EM4095内部有一个锁相环会自动调节频率。

读卡器电路

 

  从RFID标签的数据串是通过EM4095解码]然后以曼彻斯特码流方式传给微型控制器。微型控制器的第一项工作是提取数据位。这项工作是在中断服务程序中实施的,每秒要进行31250中断,(8MHz/256=31250)。1个完整的数据位占16个中断周期见下下图示。(注:一个数据位占64个125kHz/8μS脉冲,即512μS:定时器一个中断间隔为1S/31250=32μS,两者相除512/32=16。可见连续16个低电平则为数据O,连续16个高电平为数据1)。

  以上为曼彻斯特码的代码片断。码长测量由接口PIND.4的电平实现:只有输入数据串的位数与原来的位数相同时电平是稳定的。当电平改变时,原有位数添入了一个或者两个半位。根据测量持续时间,一个或者两个半位储存在一个先进先出队列中供后续处理。

  解码程序本身占FIFO队列的半位。第一个任务是识别数据包的起始位:为了实现这个目的,程序沿着移位寄存器逐个移动半位直到同步序列被找到。后续的数据串被解码并且在RS232端口输出(19200波特,8N1格式)。不断有新的半位数据到达并且在FIFO队列等待主程序处理,确保没有丢失数据。RFID读卡器能读取任何标准的RFID标签且与EM4102兼容。



www.55dianzi.com

  二、线圈
  
  RFID读写器与标签都采用最简单的自绕线圈,至少在非常少的数量下,特定规格现成的线圈无法购得。计算此类电感空芯线圈的公式如下:

  电感其中d是导线的直径,D是线圈的直径,N是线圈的圈数。

  下表的第4列是根据公式计算的电感量,第5列是用电感测量仪实测的电感量,可以看出,后者比前者偏小且不超过10%,实际制作时根据公式计算的值已经足以使用,也可以根据实测电感找出制作参数来。

  三、RFID软件
  
  根据时钟速率为125KHz,半个数据位持续32个时钟周期,为了避免复杂的计算,可以使用定时器0的PWM功能。

  设置计时器O计数64就溢出,返回O重新计数,(通过软件设置OCROA为64-1=63),并设置了PWM值为50%(软件设置OCROB为32)。定时器0的PWM发生器每到计数值到达32时,可以安插在高至低的跳变(如图8最左边箭头示).也可以安插在低至高的跳变。上图中上面一排是5位曼彻斯特码流值,下右侧标注定时器计数值。

  因此,只需通过改变PWM发生器的寄存器堆的一位,我们就可以产生符合曼彻斯特码编码的一个0或1。这一过程在中断服务程序实现。

  寄存器IntBit包括了被传输的数据位,并且将IntMail设置为1作为应答,表示确认该位已被接收。主程序只是逐位传输数据及产生校验码,确保系统在一个不稳定的电源电压系统下能稳定工作,将欠压检测阈值设置为1.8V且启动看门狗。

  四、数据包和有效载荷
  
  一个完整的数据包,形成如下表所示。

  数据包包括9个部分。前导的同步码连续9个1不能出现在数据包的其他地方,因此可以用来识别它的开始。正确的数据位和有效荷载在前同步码的后面。有效载荷由十组4位二进制数或半字节组成。前两个半字节是客户ID后面是8位半字节数据跟随。先发送一个半字节列校验位(每列10个二进制数中有奇数个1为1否则为0),紧随其后的是一个0。所以总的数据包包含9(起始)+10×(4+1)(有效载荷)+4(列校)+1(最后位0)=64bits。每位持续64位的125kHz的时钟周期,所以比特率是1935.125BPS。故一个完整的数据包需要32.768mS传输。

[1] [2]  下一页


本文关键字:读卡器  电脑-IT数码-外设电子制作 - 电脑-IT数码-外设