基于以太网的非接触式IC卡读卡器的设计
2015-01-18熊才高陈小凤
熊才高,陈小凤,潘 岱
(湖北工业大学商贸学院,湖北 武汉430079)
随着非接触式IC卡越来越广泛地应用于各行各业[1-3],基于以太网的非接触式IC卡将射频识别技术和IC卡技术结合起来,在卡片靠近读/写卡器时即完成卡中数据的读写操作,数据读写在局域网上进行,读写速度快,成功地解决了无源和免接触这一难题[4。
本文提出了一种基于以太网的非接触式IC卡的数据传输设计方案,并基于ARM控制器设计了一种先进的局域网非接触式读卡器,解决了非接触式IC卡读写和数据在局域网远程传输的问题,实现了以太网通信和RS485通信接口的读卡器的功能。
1 系统原理及结构设计
本系统采用以太网通信接口,并预留了RS485通信接口,供扩展使用。采用深圳市信德电子的RFID射频IC感应模块 MFRC RC522[5],利用了先进的调制和解调技术,完全集成了在13.56MHz下所有类型的被动非接触式通信方式和协议,它与主机间通信采用SPI模式,可以保证模块稳定可靠地工作,读卡距离远。卡片是采用Mifare1S50非接触式IC卡,基于 MF R522的 Mifare1S50卡上有1KB EEPROM存储容量,并划分为16扇区,各扇区的密码和存储控制都是独立的,可以根据实际需要设定各自的密码和存储控制,因此一张卡能同时运用在16个不同的系统中。卡片上还内建有增值、减值的专项数学运算电路,非常适合公交、地铁等行业的检票、收票系统。卡片上的数据读写可超过10万次以上,数据保存期可达10万年以上(图1)。
图1 系统结构图
整个系统通信基于以太网TCP/IP协议,与上位机通讯是自定义的通讯协议。上位机为工控机,下位机为各个IC卡读卡器。其中,上位机检测通讯状态以及查看读卡器读/写状态。当下位机状态显示通讯正常后,将IC卡放入读卡器,读取卡数据,并根据自定义的协议将信息上传给上位机。IC卡读卡器可设置为主动读卡或被动读卡工作模式。在主动读卡模式下,读卡器可按用户要求主动读取IC卡的内容;在被动读卡模式下,由上位机控制读卡器读写IC卡。
2 通信协议
通信协议的设计是系统设计的核心问题,信息帧的结构、校验方法等直接影响到系统的通信速度、实时性和可靠性。本系统以太网通信使用LWIP的TCP/IP协议。
LWIP的TCP/IP协议的主要特点是:支持多网络接口下的IP转发、支持ICMP协议、阻塞控制、RTC估算等。在本系统中通信协议主要设计了上位机命令帧格式和读卡器应答帧格式,帧格式如下:
上位机命令帧格式:
帧头(AA,AB,AC) 源地址 目的地址 命令字 命令参数1,2,3…… 帧尾(AE,AD,AF)
读卡器应答帧格式:
帧头(BA,BB,BC) 源地址 目的地址 命令字 命令参数1,2,3…… 帧尾(BD,BE,BF)
上位机命令帧的源地址为上位机地址,目的地址为读卡器地址,而读卡器应答帧的源地址为读卡器地址,目的地址为上位机地址。
3 系统硬件设计
IC读卡器由电源模块、时钟模块、网络通信模块、读卡模块、语音提示模块、控制模块构成,具有网络通信实时上传刷卡信息的功能。系统处理器采用的型号是STM32F107VC,内部集成支持工业以太网标准的Ethernet MAC接口,需要外部扩展PHY连接物理层网络[6]。IC读卡器硬件组成见图2。
图2 系统组成框图
3.1 电源模块
IC读卡器用直流5V电源供电,经ASM1117将5V转为标准的3.3V。其中IC读卡器主芯片、网络芯片以及语音芯片需要3.3V电源。
3.2 时钟模块
IC读卡器的RTC主要硬件都集成在处理器内部,外围电路需要一个32.768kHz的晶振和VBAT供电电池即可。STM32F107VC内部已经包含了40kHz低速内部RC振荡电路LSE,但是其精准度不是很高,为此需在外部32.768kHz的晶振电路驱动RTC实时时钟。STM32F107VC的VBAT采用CR1220纽扣电池供电的方式。VBAT总是有电的,保证RTC的持续运行以及后备寄存器的内容不丢失。
3.3 读卡模块
读卡模块采用的是SPI接口,型号为RC522,使用的卡片类型是 mifarel S50IC[5]。该卡片的内部由一个天线和ASIC组成。卡片内的LC串联谐振电路的频率与读写器发射的频率相同,当卡片接近读卡器时,内部谐振电路产生共振,对卡片内部电容器充电。在电容器的另一端,通过单向导通的电子泵,将电容内的电荷送到另一个储能电容器,当储能电容器的电荷达到2V时,此电容器做为卡片内部工作电源,实现卡内数据发射或接取读写器的数据的操作。
3.4 网络通信模块
IC读卡器的处理器STM32F107VC内部集成有高性能以太网模块,支持通过以太网收发数据。IC读卡器的10/100M以太网PHY芯片采用高性价比的DM9161A,实现RMII接口与连接,符合RJ45接口标准,满足平行交叉网线自适应。以太网PHY芯片DM9161A工作在RMII模式时需要外部提供50MHz时钟输入,由STM32F107VC的PA8PIN(MCO)管脚输出提供[6]。DM9161A在嵌入式系统中应用极为普遍,符合IEEE802.3,10BASE-T/100BASE-TX 协议,符合 ANSIX3TPPMD1995标准,集成10BASE-T,100BASE-TX 收发器,支持MII/RMII接口,支持全工和半工模式转换,支持中继模式和节点模式转换,含可触发中断的MII/RMII管理接口,具有低功耗模式,采用3.3V供电。
3.5 LED以及蜂鸣器控制模块
此部分电路就是简单的I/O口控制电路,通过高低电平来控制指示灯的亮灭以及蜂鸣器的鸣叫。蜂鸣器是为了提示刷卡的情况,正常刷卡会“滴”一声。上位机也可以通过命令来控制蜂鸣器的鸣叫。
3.6 RS485通信模块
RS485通信部分可以根据用户的需求选择通信方式。系统采用的RS485芯片是ADM2587E,它采用集成式隔离DC/DC技术,是一款隔离的RS485收发器,可配置成半双工或全双工模式。当以太网通信断开时,可以通过RS485通信读取设备的IP,也可通过RS485实现协议的通信。
4 系统软件设计
系统下位机软件的主要功能分为主动模式和被动模式。主动模式下,当有刷卡操作时,读卡器读取数据,并对卡进行判断:是否是读卡器对应的卡?若是,则保存数据,待上位机询问有无卡信息时,上传卡的信息给上位机;若不是,报警,蜂鸣器鸣叫。被动模式下,等待上位机的命令进行读写卡,将IC卡放入读卡器,上位机命令读取规定部分信息并上传规定信息给上位机,当上位机命令写入新信息到卡片,读卡器就执行新信息给卡片(图3)。
图3 系统软件流程
5 结束语
本文提出了一种基于以太网的非接触式IC卡的数据传输设计方案,并基于ARM控制器设计了一种先进的局域网非接触式读卡器。创新点主要有两个方面,一是既设计了常见的RS485通信方式,也设计了以太网通信方式,用户可根据需要选择通信方式;二是系统下位机软件的主要功能分为主动模式和被动模式,既可以实时上传刷卡信息,也可以修改、读取、更新IC卡信息。在整个系统中,上位机与下位机(即读卡器)之间采用以太网通信模式,整个网络连接稳定、可靠。
[1] 曾孝平,任家峪,熊 东.基于RFID的非接触式IC卡读写器设计[J].计算机测量与控制,2010,18(10):2357-2359.
[2] 李扬弘,李秉智.非接触IC卡读卡器的开发研究[J].计算机工程与应用,2005,32:106-108,114.
[3] 赵 敏,高明芳.基于非接触式IC卡门禁控制系统的硬件实现[J].煤炭技术,2011,30(12):45-46.
[4] 闫群民.基于非接触式IC卡的高速公路收费系统设计[J].计算机测量与控制,2009,7(01):215-217.
[5] MF.RC522非接触式读写卡芯片中文资料[M]:NXP公司,2010.
[6]张学武,江 冰,张 卓.嵌入式系统原理与接口技术[M].北京:电子工业出版社,2013.