基于ARM的双频RFID读写设计

2011-02-21 21:39:15来源: 维库电子

 1 引言

   RFID(Radio Frequency Identification Technology,无线射频识别技术)由于具有高速移动物体识别、多目标识别和非接触识别等特点,显示出巨大的发展潜力和应用空间,被认为是21 世纪最有发展前途的信息技术之一。射频识别技术虽然有很多优点,但其技术本身也有局限性。对RFID 系统而言,低频系统具有良好的对水、肉体等可导媒介的穿透力,而速度、距离、抗冲突性较差;而高频系统则正好相反。如能结合各种频率系统,用其所长,则可以使RFID 适应多种场合,拓展其应用范围。本文设计的系统正是基于这一出发点,将低频和高频二种频率的RFID 模块组合在一起,构成双频系统,使系统兼具低频可穿透性和高频良好的距离、速度、抗冲突性等方面的优势。鉴于目前国内市场上应用最为广泛的射频卡和读写器实现方法,本文采用ARM 嵌入式系统作为微控制器,设计了能对低频125KHz 和高频13.56MHz 的二种频率RFID 卡操作的读写模块,实现了的双频 RFID 读写系统。

  2 系统设计

  由于ARM 微处理器具有运行速度快,接口功能丰富,其应用越来越广泛。本文采用三星公司的S3C44B0X,它是ARM7 系列的低功耗的32 位RISC 处理器,具有 ARM7TDMI内核,有丰富的内置部件,包括8K 字节Cache 和内部SRAM,带自动握手联络的2 通道UART,定时器,通用 I/O 口,ADC 和I2C-BUS 控制器等。尤其是它的内置液晶显示器接口,可直接连接LCD 显示器,无需专用LCD 显示器接口芯片,可使成本降低,很适合在本系统中使用。读写系统的结构如图1 所示。


图1 系统结构框图
整个系统由ARM 嵌入式系统(包括S3C44B0X,SDRAM 存储器和FLASH 存储器),低频RFID 卡读写模块,高频RFID 卡读写模块,USB 接口,LCD 显示器以及蜂鸣器、状态指示灯等组成。RFID 模块是北京华闰得公司开发的具有串行数据通信接口的模块,低频读写模块是 CR001,为工作于125kHz 的EM4001 卡;高频模块是CR013,为工作于13.56MHz的MF 卡。由于RFID 模块具有TTL 电平的串行通信接口,这样ARM 微处理器可直接通过片上的二个UART 接口与其连接,不需要电平转换即可轻松实现与RFID 模块的通信。嵌入式系统与 PC 机的连接则通过USB 接口实现。

  因为低频 RFID 卡一般都是只读卡,进入读卡器磁场范围后,就自动发出信号。ARM微处理器通过不断检测端口捕捉信号,一旦读到卡,就读取信息,并在LCD 上显示。对于高频卡,可根据需要进行读或写操作。

  LCD 显示器采用320*240 点阵的STN 型彩色液晶模块,可直接与S3C44B0X 连接,成本也较低。对LCD 的显示控制直接使用 S3C44B0X 内部的LCD 驱动控制器实现,它能自动产生LCD 驱动控制所需的信号。在这种接口方式下,LCD 显示缓冲区映射在系统的存储器空间上,程序只需将像素点内容写入存储器对应地址就可以实现对应LCD 屏上像素点颜色的显示刷新,控制十分方便。

  键盘和状态指示灯的操作控制采用 ZLG7290 实现。ZLG7290 是一款功能较强的按键处理和7 段数码管显示专业芯片,提供了I2C 串行接口和键盘中断信号,可方便地与S3C44B0X连接。

  在上位机(PC 机)上,通过设计专门的软件实现对RFID 卡的读写操作,并对RFID 卡进行管理。由于PC 机功能强大,如再配上数据库系统,可以对大量用户的数据和信息进行存储和查询等处理,满足多种应用的需要。

  3 系统的软件设计

  3.1 RFID 模块操作

  CR001 模块与S3C44B0X 的串口(UART0)相连,在接收数据前首先要对UART0 进行初始化。根据CR001 的使用规范,设置波特率为9600Baud,数据位为8 位,1 位停止位,无校验位。为使ARM 对低频RFID 卡及时作出响应,软件采用中断方式接收数据,即当 S3C44B0X 的UART0 接收到数据时,产生中断,在中断服务程序中接收CR001 模块的数据。

  根据 CR001 射频读写模块的使用规范,CR001 模块输出的数据包有5 个字段,即起始符(STX,02H)、数据(10 个ASCII 字符)、校验和(2 个 ASCII 字符)、LD 和LF(0DH和0AH)、结束符(ETX,03H)。因此在软件设计中,当收到UART0 的数据时,首先要判断一个数据包的起始符和结束符,以确定一个数据帧的起止位置,然后再检验数据的校验和是否正确。只有在接收的数据无误时,再将其中的数据取出、存储,并在LCD 上显示。中断服务软件的流程如图2 所示。


图 2 CR001 模块的中断服务程序流程
CR013 射频读写模块是采用Philips 公司的Mifare 技术设计的微型嵌入式、非接触式IC卡读写模块,内嵌 ISO14443 Type A 协议解释器,并可直接驱动射频天线。这是一种以被动方式工作的卡,刚进入天线有效感应区的卡得电进入空闲(IDLE)状态,它只吸收感应区内的磁场能量,不会首先发出信号。当读卡设备发出请求信号,符合条件的卡才会响应。因此处理器与模块之间以一问一答式的半双工方式进行通信。

  对 CR013 模块的读写过程相对较复杂,要执行一系列的操作指令,包括询卡、请求、防冲突、选卡、装载密钥、验证密码、读块、写块,这一系列的操作必须按固定的顺序。寻卡时,处理器需要执行请求、防冲突、选卡操作,与CR013 模块建立起通信关系,在通过装载密钥、验证密码操作后,才可进行读卡或写卡操作。

  1)、防冲突

  防冲突就是从多张卡中选出一张卡来操作,又叫防碰撞、防重叠。如果知道卡的序列号,则可跳过此步,直接执行下一步选卡命令。若不知道卡的序列号,则必须调用防碰撞函数,得到感应区内卡的序列号。若同时有多张卡在感应区内,防碰撞函数能检测到,并且从中选出一张卡的序列号来。

  2)、选择卡片

  根据上一步收到的卡号,发出选卡命令。经过这一步后才真正选中了一张要操作的卡,以后的操作都对这张卡进行。

  整个寻卡过程包括请求、防冲突、选卡三个步骤。当微处理器发出寻卡命令时,实际上微处理器执行了以上3 个步骤。为防止死锁,本文设置每步操作的最大次数为3 次,若3次不成功则寻卡失败。程序流程如图3 所示。


图3 CR013 模块寻卡程序流程
3)、密钥装载和验证密码

  微处理器发出读、写命令后,在进行读写操作前必须先执行密钥装载和验证密码。验证密码又叫认证、证实。模块将装载到读卡芯片FM1702SL 中的密码与卡中指定扇区的密码进行认证,如果密码相同,则认证成功,卡允许进行读写操作。

  3.2 LCD 显示软件设计

  LCD 用于显示用户操作界面,为此需要在屏幕上绘制图形,显示数据和文字。在对LCD 控制器进行操作前,首先要对LCD 控制器的专用寄存器进行初始化,内容包括定义3个LCD 控制寄存器,3 个帧缓冲区地址寄存器和3 个颜色查找表寄存器。

  为了在 LCD 上显示字符和图形,需要建立绘图和字符显示库函数。绘图函数包含一些基本的绘图功能,如画点、画线、画矩形框和区域填充等。其中画点是最基本的函数,其它函数都可以调用画点函数实现。

  为了在 LCD 上显示字符,还要建立ASCII 字符和汉字字符的点阵库和显示函数。显示ASCII 字符的原理是在特定的坐标位置画点,形成人们可以识别的字符图形。点的坐标根据建立的ASCII 字符点阵库来确定。ASCII 字符的点阵库可以根据字符的点阵位置生成点阵数组供调用。汉字的显示原理与ASCII 字符相同,事先也要建立汉字点阵字库,这一过程可通过专用的字库生成软件实现。另外,为了节省存储器空间,只需建立本系统要用到的汉字小字库,而不必生成所有常用字的点阵。

  3.3 键盘和指示灯的软件设计

  对键盘和指示灯的操作控制是由 ZLG7290 实现的,由于S3C44B0X 具有I2C 接口,因此可直接与ZLG7290 连接。编程时首先要对 I2C 总线进行初始化,然后打开键盘中断。当键盘有键被按下时,ZLG7290 的INT 引脚会产生一个低电平的中断请求信号。在ARM 的中断程序中通过I2C 总线读取键值,再根据键值完成相应功能。

  3.4 USB 接口通信

  为方便与 PC 机接口,本系统采用应用广泛的USB 接口与PC 机通信。因S3C44B0X 本身不带USB 接口,必须要进行扩展。但是,USB 接口协议非常复杂,固件编程和WDM 驱动程序的编写都是相当麻烦的工作。为降了设计难度,缩短开发周期,本文采用哈尔滨讯通公司的通用串行总线模块USB100。该模块内部封装了USB 协议和细节,即插即用,完全满足USB1.1 标准,对 USB 接口的操作如同对外部存储器操作一样方便,无需任何外接元件。

  USB100 模块有2 根状态信号RXF 和TXE,用于与ARM 联络。RXF 为低表示模块有数据输出,ARM 可以读取数据;TXE 则表示USB100 发送缓冲区的状态,TXE 为低表示USB100 发送缓冲器未满,可以向发送缓冲区写数据。在编程时,可以采用查询方式实现数据的收发。

  3.5 RTC 实时时钟显示功能

  为了显示读卡和写卡的时间,需要使用实时时钟(RTC)。S3C44B0X 具有一个独立的RTC 功能模块,能够像钟表和日历一样保存并自动计算时间。RTC 的寄存器保存了表示时间的8 位BCD 码数据,包括秒、分、时、日、星期、月和年,编程时主要是对这些参数进行初始化设置。在LCD 上显示实时时钟时,需定时地从上述的寄存器中取出相应的数据。由于LCD 上字符是根据ASCII 码显示的,而RTC 的寄存器中存放的时间参数都以 BCD 码形式存储,因此在LCD 显示日期和时间之前,必须先对时间数据进行格式转换,即将BCD码转换为ASCII 码。

  3.6 PC 机软件

  PC 机软件基于windows 操作系统,采用Visual C# 2005 进行编程。软件的功能主要包括在PC 机上显示操作面板,通过与 ARM 嵌入式系统通信实现对RFID 卡的读写操作,并将卡的相关信息在PC 机上显示;此外,软件还能访问数据库,将从卡中读取的数据存入数据库中,或将数据库中的取出数据写入RFID 卡,还能根据用户的需要查询相关信息。数据库采用Microsoft office Access 数据库系统,并采用结构化查询语言(SQL)对数据库访问。

  4 结束语

  本文以 ARM 微处理器S3C44B0X 为核心,设计实现了RFID 双频读写器系统。在对高频RFID 卡的寻卡过程中,通过对最大操作次数的限制,有效地防止了死锁。系统具有LCD 显示器,通过键盘操作便可对RFID 卡的进行读写。设计的USB 接口可方便地与PC机连接,在PC 机上实现对 RFID 卡的操作。系统功能强,使用灵活,可满足多种应用场合。由于采用了低成本的ARM 微处理器,简化了硬件,提高了系统的性价比。

关键字:读写器  ARM  双频  RFID

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/wltx/2011/0221/article_4181.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
读写器
ARM
双频
RFID

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved