(3)阻抗匹配:在图2中由电容C11和C13组成,电容的值由天线本身和环境因素来决定,本系统C11、C13均取47 pF。该部分电路主要是为了实现滤波和天线之间的阻抗匹配,以使天线的性能达到最佳。
2.5 读写器无线传输模块
系统的无线数据传输通过内嵌有TCP/IP协议的GPRS模块来实现。目前市场上提供的GPRS无线模块有WAVECOM公司的Q2403B,SIEMENS公司的MC35i、MC39I,摩托罗拉公司的G20等。结合本系统的实际应用,选用了SIEMENS的Sim300。Sim300是新一代的900 MHz/1 800 MHz双频自动选择的无线模块,内嵌有TCP/IP协议栈,无需微处理器的支持即可实现基于TCP/IP的数据传输。其支持标准的AT命令及增强的AT命令监护数据模式,功能强大,操作灵活方便。微处理器可以通过标准串口接口RS232与Sim300通信,为用户提供了标准的AT命令接口,为数据传输提供了快速、可靠、安全的传输通道,用户可以很方便地进行实际应用的二次开发设计。
2.6 读写器人机交互的实现
手持终端人机交互通过外扩的一块I2C接口的数码管驱动及键盘扫描管理芯片ZLG7290,配以8 bit共阴数码管和16个按键实现。ZLG7290是广州周立功
单片机发展有限公司研发的数码管驱动及键盘扫描管理芯片,具有I2C总线串行接口,能够提供键盘中断、驱动8 bit共阴数码管和64个按键扫描等功能,并且支持10种数字和21种字母的译码显示功能。
3 读写器软件设计
读写器的软件采用μC/OS-Ⅱ嵌入式实时操作系统作为系统的软件平台,在μC/OS-Ⅱ系统下实现对读写器终端的控制管理。μC/OS-Ⅱ具有较高的可靠性和稳定性,提供了多任务管理功能。系统的各单元部分以单独的任务线程设计,在减少了软件设计的复杂度的同时也增强了软件系统的稳定性。
3.1 μC/OS-Ⅱ嵌入式实时操作系统的移植
要将μC/OS-Ⅱ实时操作系统移植到处理器上,处理器必须满足以下条件[2]:
(1)处理器的编译环境能够产生可以重入的C代码。
(2)用C语言就可以打开或关闭中断。
(3)处理器支持中断处理,并能产生定时中断。
(4)处理器支持能够容纳一定数量的硬件堆栈。
(5)处理器具有将寄存器、堆栈指针读出和存储到堆栈中的指令。
对于ARM7系列的微处理器LPC2148及其开发环境ADS1.2的编译器,完全能够满足上述条件,可以确保μC/OS-Ⅱ在LPC2148上的移植成功。移植工作包括:
(1)用#define设置一个常量的值(OS_CPU.H)。
(2)声明10个数据类型(OS_CPU.H)。
(3)用#define声明3个宏(OS_CPU.H)。
(4)用C语言编写6个简单的函数(OS_CPU_C.C)。
(5)编写4个汇编语言函数(OS_CPU_A.ASM)。
3.2 无线数据传输的软件实现
Sim300中内嵌了TCP/IP协议,并且以AT指令的形式给控制模块提供接入GPRS网络进而接入Internet的API接口。由于该GPRS模块具有自动拨号功能,因此在进行无线数据传输时,不需要通过AT拨号指令连接Internet。读卡器系统在传输数据时对数据准确性的要求相对较高,因此,本设计采用TCP的方式实现读写器终端与系统数据中心之间的数据传输。读写器终端在与数据中心进行数据传输时用到的AT指令如下:
(1)建立TCP连接
AT+CIPSTART=“TCP”,”61.13.48.9”,”2020”
连接数据中心服务器,此处61.13.48.9是服务器的IP地址,2020是端口号。连接成功的返回值是:CONNECT OK。
(2)向服务器发送数据
AT+CIPSEND
>Hello everyone!
向服务器发送字符串Hello everyone!。发送成功返回值为:OK。
(3)关闭连接
AT+CIPCLOSE
断开与数据中心服务器之间的连接,操作成功返回值为:OK。
(4)关闭移动场景
AT+CIPSHUT
操作成功返回值为:OK。
当服务器端有数据传输到GPRS模块时,数据会通过模块与LPC2148之间的串口接口直接转发给MCU,不需要AT指令操作。
由于该GPRS模块具有上电自动拨号的功能,在程序设计时就不再考虑终端拨号上网的实现。
3.3 MF RC500驱动软件的设计
MF RC500的驱动程序主要是MCU对MF RC500的控制以实现MF RC500与IC卡之间的数据交互,并把相关的数据结果返回给MCU。MCU通过MF RC500与IC卡的数据交换过程如下:
(1)由读写器的MCU发送指令给MCM(MF RC500)。
(2)MCM执行指令,并将其转换为射频信号发送给IC卡。
(3)IC卡接收到来自MCM的指令后,按指令完成其内部的各种处理,并回送应答信号/数据给MCM。
(4)MCM接收卡回送的射频信号,并将其转换为数字信号输出给MCU,MCU读取MCM接收到的应答/数据,即可完成与IC卡的数据交换。
MF RC500实现对IC卡读写的程序流程如图3所示。