0 引 言
随着二代身份证的换发工作的推进,我国需要使用二代身份证的领域越来越广泛。由于二代身份证件是射频智能卡CONTROL ENGINEERING China版权所有,可以通过二代身份证阅读器来读取身份信息,这为提高工作效率和录入信息的准确度提供了条件控制工程网版权所有,但是二代证阅读器在银行、电信、邮政等行业推广使用仍有很大障碍。这是因为这些行业的业务终端一般都使用非windows操作系统的终端,但是二代证阅读器生产厂家提供的只是windows系统下的SDK开发包,使用户无法在这些行业进行二次开发。即便是windows系统,有些行业也不希望因为使用二代证阅读器而改动自己软件系统。基于这样情况,我们设计开发了二代身份证智能采集器,可以有效解决这个问题。二代身份证智能采集器是配合第二代居民身份证阅读器在银行、电信、邮政等领域应用的第二代居民身份证信息自动录入工具,二代身份证智能采集器可以实现在不改变银行、电信、邮政等行业应用设备、软件的情况下,实现对第二代居民身份证信息的自动录入,消除手动录入错误,减少工作量,提高效率。
1、设计方案分析
1.1硬件设计
智能采集器通过RS232串口连接线与二代身份证阅读器的串口相连,通过键盘PS/2接口连接线与PC机或终端的PS/2接口相连,使标准键盘与智能采集器有效隔离,用户在使用智能采集器的同时,也可使用标准键盘控制工程网版权所有,实现智能采集器与标准键盘的分时复用。二代身份证阅读器是基于射频卡技术的身份证信息读取设备,能快速准确地读取二代证中的身份密文信息。本智能采集器可以独立完成与二代身份证阅读器的验证及通信,同时可以读取并保存阅读器发过来相应身份证的信息,然后通过内部高速MCU进行运算和编码,把接收到的RS232信号转换标准PS/2键盘信号,直接输入计算机显示相应的信息。
智能采集器的系统逻辑框图如图1所示。
图1智能采集器的系统逻辑框图
硬件结构原理图如图2所示
图2、智能采集器硬件结构原理图
智能采集器的主控MCU为STC89C516RD+[1],该单片机是宏晶科技公司推出的新一代超强抗干扰、高速、低功耗的MCU,其指令代码完全兼容传统8051单片机, 其晶振为11.0592MHz,串行接口电平转换芯片为ADM202控制工程网版权所有,模拟开关CD4066实现了专用键盘与标准键盘的分时复用,电源直接从主机的PS/2口供电,蜂鸣器和指示灯由CPU控制。
1.2软件设计
智能采集器的软件工作流程如图3所示:
图3 程序工作原理图
系统通过RS-232通信接口发送命令请求到第二代身份证阅读器CONTROL ENGINEERING China版权所有,读出证件信息;经过验证后,保存到智能采集器中;再等待系统定义的热键按下,一旦有热键按下,智能采集器将相应的信息取出;处理之后发送到PC机的PS/2键盘接口,在光标闪烁处显示相应信息。
本系统包括系统初始化(如各寄存器初始化、串口初始化、端口初始化等) 、数据采集、GBK编码转换、键盘事件处理、数据发送等模块。采用软件控制程序的循环执行,以达到实时检测并发送信息的目的。
在数据通信方面,使用了单片机自带的USART通用同步异步接收传输器,采取异步工作模式,8位数据格式。因此需在程序启动时对相关寄存器进行初始化。同时须与身份证阅读器同步传输波特率。
由于CPU使用11.0592MHz的晶振,采用高速通信模式,根据文献2可得公式:
要计算的波特率= 2SMOD.Fosc/64,设置波特率为9600,Fosc应等于FDH。
MOVLW FDH
MOVWF SPBRG ;设置波特率为9600
通信亦采用轮询方式[3],智能采集器通过连接端口,不断向身份证阅读器发送卡片轮询命令(命令格式:AA AA AA 96 69 00 03 20 01 22),当收到应答信息为(AA AA AA 96 69 00 08 00 00 9F 00 00 00 00 97)时,则表示阅读器已经检测到有效的二带身份证卡了,然后进行相关数据采集处理。使用MOV INDEX, W语句取得接收身份证数据,使用MOV SDA,C 语句发送命令数据。
出错处理部分对主流程和按键轮询部分分别进行纠错。为防止程序进入死循环,添加了断电功能,用于对智能采集器的重启纠错。
系统采用结构化程序设计方案,具有较好的模块性、可移植性和可修改性;系统通过主控流程管理和调度其他模块,其主程序流程如图4: