摘 要:随着二代身份证的广泛使用,如何使二代身份证阅读器与各种平台的相关应用协同工作的问题越来越突出。本文研究设计了一种智能采集器, 实现了二代身份证信息的平台无关智能读取,可以和银行、电信等现有应用实现无逢连接,工程实践表明,该方案切实可行。
关键词:二代证;智能采集器;单片机;
随着二代身份证的换发工作的推进,我国需要使用二代身份证的领域越来越广泛。由于二代身份证件是射频智能卡,可以通过二代身份证阅读器来读取身份信息,这为提高工作效率和录入信息的准确度提供了条件,但是二代证阅读器在银行、电信、邮政等行业推广使用仍有很大障碍。这是因为这些行业的业务终端一般都使用非windows操作系统的终端,但是二代证阅读器生产厂家提供的只是windows系统下的SDK开发包,使用户无法在这些行业进行二次开发。即便是windows系统,有些行业也不希望因为使用二代证阅读器而改动自己软件系统。基于这样情况,我们设计开发了二代身份证智能采集器,可以有效解决这个问题。二代身份证智能采集器是配合第二代居民身份证阅读器在银行、电信、邮政等领域应用的第二代居民身份证信息自动录入工具,二代身份证智能采集器可以实现在不改变银行、电信、邮政等行业应用设备、软件的情况下,实现对第二代居民身份证信息的自动录入,消除手动录入错误,减少工作量,提高效率。
智能采集器的系统逻辑框图如图1所示。
图1智能采集器的系统逻辑框图
硬件结构原理图如图2所示
图2、智能采集器硬件结构原理图
智能采集器的主控MCU为STC89C516RD+[1],该单片机是宏晶科技公司推出的新一代超强抗干扰、高速、低功耗的MCU,其指令代码完全兼容传统8051单片机, 其晶振为11.0592MHz,串行接口电平转换芯片为ADM202,模拟开关CD4066实现了专用键盘与标准键盘的分时复用,电源直接从主机的PS/2口供电,蜂鸣器和指示灯由CPU控制。
智能采集器的软件工作流程如图3所示:
图3 程序工作原理图 |
本系统包括系统初始化(如各寄存器初始化、串口初始化、端口初始化等) 、数据采集、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:
图4 主程序流程图
2关键技术分析
为了进行汉字信息处理,国家专门于1981年颁布了国标GB2312――《信息交换汉字编码字符集》。其中共收集了汉字6763个,并确定每个汉字采用两字节编码。区位码和国际码这两种汉字编码都由国标GB2312规定。考虑到GB2312支持的汉字太少,1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。2000年的GB18030是取代GBK1.0的正式国家标准。它是对GBK和GB2312编码的进一步扩充[4]。
由于第二代身份证卡内存储的汉字信息为GB13000编码,考虑到本智能采集器除了应用于银行、电信、邮政等终端设备相连外,还需要和其他PC机相连,对于连接PC机,经测试目前windows98以上的操作系统都支持GB1300,可以将阅读器中的汉字编码直接显示,而当前许多终端设备主要使用GB2312字库、GBK字库、GB18030字库,这就需要根据终端支持的字库不同,将阅读器中的汉字编码进行适当的处理后显示在不同类型的终端设备上。鉴于此,我们在设计中考虑到汉字编码的兼容性和用户操作的方便性,选择在智能采集器中采用GBK汉字库,并建立GB1300和GBK对应的编码字典,如果终端设备只支持GB2312字库,则在读取阅读器中的汉字编码后,通过查找字典,将GB1300编码转换为对应的区位码,对于不能查找到的冷僻字,则自动忽略;如果终端设备支持GBK或GB18030,则输出GBK编码直接显示。实践证明,该方案不仅可以兼容当前绝大部分终端设备,而且能无缝连接到PC机上的各类应用。
由于本程序要实现采集器专用键盘与宿主机标准键盘的分时复用,所以按照使用手册将相关插头、插座对接。根据程序检测相应针脚的电平高低来判断允许那个数据信号输出,从而通过选择不同的输入地址线,选择不同的输入设备,达到分时复用的目的。
公安部已经严格规定了二代证的信息储存格式如表1所示:
表一: 二代身份证数据格式
字段名称 |
姓名 |
性别 |
民族 |
出身日期 |
家庭住址 |
身份证号 |
发证机关 |
有效期 |
追加信息 |
照片信息 |
长度(字节) |
30 |
2 |
4 |
16 |
70 |
36 |
30 |
32 |
36 |
1024 |
起始地址 |
0000H |
001FH |
0021H |
0025H |
0035H |
007BH |
009FH |
00BDH |
00DDH |
0101H |
智能采集器通过轮询发现二代证阅读器中已经存在身份信息时,则向连接端口发送AA AA AA 96 69 00 03 30 01 32命令,可以按照上面给定的格式读取相应的数据信息。其中:性别字段目前的代码为1-男,2-女,9-其他;家庭住址字段中注意‘-’的识别;追加信息字段表示地址变更信息,若没有变更,则该字段为空;对于照片信息,智能采集器只是负责将编码信息按特定的字符流传输到终端或PC机上,然后使用公安部提供的SDK解密显示图像;目前只能在windows 平台上实现图像显示。
本智能采集设备支持即插即用,采用专用键盘设计,不需要切换输入法,在银行、电信、邮政等行业应用时,不需要对原有系统的软硬件作任何改动,即可进行第二代居民身份证信息的自动录入操作;使用方便快捷。通过实际应用于成都市建设银行部分支行前台营业服务系统表明:本设计方案消除手动录入错误,减少工作量,提高了工作效率。
参考文献
[1]、STC增强型8051单片机中文指南(RC/RD+系列)http://www.MCU-Memory.com;
[2]、武庆生、仇海 弹片机原理与应用 电子科技大学出版社 1998 P82;
[3]、徐乐年,刘坤,刘明辉 基于M-BUS的智能采集器的设计与应用 工矿自动化 2006.4 P268
[4]、何江水,高有行 VxWorks汉字的显示支持 微计算机信息,2005,5 :142-144