基于WINCE的RFID读写应用的研究

2012-11-26 09:01朱亚萍
关键词:驱动程序模拟器射频

闻 明,朱亚萍

(杭州电子科技大学自动化学院,浙江杭州310018)

0 引言

随着物联网的发展,射频识别技术和基于WINCE系统的终端设备更多地应用于生产和生活当中。终端设备的应用在国外起步比较早,嵌入式WINCE系统以其友好的用户界面和良好的性能得到了广泛地应用,人们一直以来都在关注WINCE系统及其周围相应配套设备在应用上的优势和需要改进的地方[1]。由于WINCE系统的局限性[2],并不支持对其周围相应配套设备的直接通信操作。无论是在国外还是国内,可以直接配套应用在WINCE系统上的射频读写模块的价格都比较高昂。在读写应用上,市面上的中低端RFID模块一般都是基于单片机和PC机的,并不支持WINCE系统,再加上WINCE本来就很复杂的开发环境,对于普通开发者来说,无疑增加了WINCE系统下的读卡应用的开发应用难度,找到合适的开发步骤和方法就显得很重要了。本文选用价格一般的高频IC卡读写模块——YW-20x-C,给出了其在ARM 9处理器、WINCE 6.0系统下的读写应用的开发过程。

1 RFID读写系统总体设计

1.1 RFID读写模块

本文采用的是利用PHILIPS公司的非接触技术设计的微型嵌入式非接触式读写模块Y W-20x-C,该天线一体读写模块内嵌MFRC500射频基站,可以读取13.56 MHz的Mifare One射频卡[3],带有默认自动寻卡功能。读写模块引脚如表1所示。

1.2 读写模块与上位机的电路连接图

本文选用友善之臂公司的S3C2440开发板作为读写卡模块的应用平台,通过UART接口与模块进行通信,当卡片进入到天线区后在CARDIN引脚上出现低电平,上位机可通过寻卡指令直接读取卡片上的信息。模块与开发板平台的连接如图1所示。

表1 YW-20x-C模块引脚

图1 电路连接图

2 RFID读写系统软件设计

2.1 读写模块接口驱动设计

WINCE驱动程序是对硬件设备或是虚拟设备的一层软件抽象,WINCE系统通过设备驱动与外围设备进行通信,实现对硬件设备的操作、管理[4]。市面上的RFID模块基本上没有提供基于WINCE系统的设备驱动程序,所以读写模块硬件设备在WINCE系统下开发应用的首要问题就是解决设备流驱动的问题,下面给出其驱动设计的一般步骤:

(1)建立模拟器工具[5]。运行Platform Builder,建立一个基于X86体系的模拟器;

(2)创建驱动程序工程。在PB6.0平台的driver目录下建立要创建的驱动所在的目录。如在C:Wince600platformmini2440Srcdrivers目录下建立一个IOCtrol目录,修改Drivers目录下的dirs文件;

(3)创建驱动程序头文件YW20x.h和源代码文件YW20x.c,在该文件中实现流接口函数。由于模块使用的是串口通信,故加入DLL接口函数[6],用来完成标准的文件I/O函数,提供给WINCE操作系统的内核使用;

(4)准备配置文件。创建相应的动态库导出文件 YW20x.def、Makefile文件和编译链接文件Sources,控制编译这些文件。使用CEC Editor修改cec文件编译添加的新特性;

(5)复制新生成的4个文件到Release目录下。修改注册表文件platform.reg和platform.bib文件;

(6)Buid and Sysgen,编译内核,将驱动源程序下载到内核文件;

(7)加载驱动。在模拟器下可以看到驱动被加载的状态。

至此,流驱动编写完毕,在相应的目录下会找到编译好的动态库YW20x.dll,即为驱动库文件。将驱动库文件加载到目标机中,稍后应用程序使用WINCE操作系统的文件API函数和流接口进行通信,访问驱动程序及实现相应的读写卡功能。

2.2 读写应用软件设计

应用软件的开发环境[7]是VS2005+SP1+WINCE6.0+mini2440SDK,平台为.NET,开发语言为 C#。完成 VS2005下 WINCE6.0开发环境的搭建后,安装 mini2440SDK,然后编写应用程序YW20xWinceDemo,实现寻卡函数YW_RequestCard(),读卡函数YW_ReadaBlo ck(),写卡函数YW_WriteaBlock(),读钱包函数YW_Purse_Read(),充值函数YW_Purse_Charge(),扣费函数YW_Purse_Decrease()。其功能程序结构框图如图2所示。

在VS2005下对应用程序YW20xWinceDemo进行编译,然后将编译生成的demo文件在CHSINT SDK ForWinCE 6.0(ARMV4I)模拟器中模拟在wince系统环境下的运行。模拟调试结果显示完成了WINCE环境下应用软件的开发,读卡、写卡、充值、扣费等功能函数得到了体现。

最后,将ARM开发板通过USB线与PC机相连,通过同步软件ActiveSync将PC机中之前生成的demo文件同步到ARM终端机中。将射频读写模块和ARM开发板连接,打开demo文件,ARM终端机显示屏上看到的软件运行界面和之前VS2005平台下模拟器中模拟运行的软件界面是完全一样的,再次验证了读写应用软件的成功编写。对各功能函数进行测试,可以顺利读取IC卡的卡号,以及实现对IC卡的充值、扣费等读写操作。

图2 功能程序结构图

3 结束语

本文完成了RFID读写模块在WINCE系统下的接口驱动设计和读写应用的软件设计,实现了读写应用功能。目前流行的基于WINCE的终端设备很多都具有导航、呼叫等功能[8],其相应的GPS、GSM/GPRS等功能模块在WINCE系统平台下的应用开发显得越来越普遍。本文给出了RFID读写模块应用开发的关键过程——流驱动的编写步骤和应用程序的开发,为研究基于WINCE系统下的射频读写应用开发和其他功能模块的应用开发,奠定了基础和提供了借鉴。

[1] Nagl L,Krishnamurthi B,Schoenig S,et al.Experiences Using WinCE PocketPCs as Computation and Data Acquisition Platforms for Ambulatory Telemonitoring[C].San Francisco:Proceedings of the 26th Annual International Conference of the IEEE EMB,2004:3 373 -3 376.

[2] Hong bin Ma,Dong yang Lu,Qun He,et al.Serial Communication between PDA and GPSBased on Windows CE[C].Wu Han:2011 Third Pacific-Asia Conference on Circuits Communications and System,2011:1-3.

[3] 友我科技.YW-20x-C射频卡天线一体读写模块[EB/OL].http://www.youwokeji.com.cn/YW-20x-C.htm l,2010 -03 -12/2012 -06 -10.

[4] 丁智勇.基于Windows CE的RFID读卡器系统设计与实现[D].武汉:武汉理工大学,2008.

[5] 姜波.Windows CE.Net程序设计[M].北京:机械工业出版社,2007:194-230.

[6] 汪兵.Windows CE嵌入式高级编程及其实例详解[M].北京:中国水利水电出版社,2008:352-390.

[7] 邱小平,李恬,雷群英.Windows CE6开发经典[M].北京:电子工业出版社,2009:1-100.

[8] 吴红兰,黄圣国.嵌入式GPS数据采集与分析系统设计[J].实验室研究与探索,2011,30(1):54-57.

猜你喜欢
驱动程序模拟器射频
5G OTA射频测试系统
了不起的安检模拟器
盲盒模拟器
关于射频前端芯片研发与管理模式的思考
划船模拟器
计算机硬件设备驱动程序分析
ALLESS转动天线射频旋转维护与改造
腹腔镜射频消融治疗肝血管瘤
动态飞行模拟器及其发展概述
基于MPC8280的CPU单元与内部总线驱动程序设计