二代身份證智能采集器研究與開(kāi)發(fā)
摘 要:隨著二代身份證的廣泛使用,如何使二代身份證閱讀器與各種平臺(tái)的相關(guān)應(yīng)用協(xié)同工作的問(wèn)題越來(lái)越突出。本文研究設(shè)計(jì)了一種智能采集器, 實(shí)現(xiàn)了二代身份證信息的平臺(tái)無(wú)關(guān)智能讀取,可以和銀行、電信等現(xiàn)有應(yīng)用實(shí)現(xiàn)無(wú)逢連接,工程實(shí)踐表明,該方案切實(shí)可行。
關(guān)鍵詞:二代證;智能采集器;單片機(jī);
0 引 言
隨著二代身份證的換發(fā)工作的推進(jìn),我國(guó)需要使用二代身份證的領(lǐng)域越來(lái)越廣泛。由于二代身份證件是射頻智能卡,可以通過(guò)二代身份證閱讀器來(lái)讀取身份信息,這為提高工作效率和錄入信息的準(zhǔn)確度提供了條件,但是二代證閱讀器在銀行、電信、郵政等行業(yè)推廣使用仍有很大障礙。這是因?yàn)檫@些行業(yè)的業(yè)務(wù)終端一般都使用非windows操作系統(tǒng)的終端,但是二代證閱讀器生產(chǎn)廠家提供的只是windows系統(tǒng)下的SDK開(kāi)發(fā)包,使用戶無(wú)法在這些行業(yè)進(jìn)行二次開(kāi)發(fā)。即便是windows系統(tǒng),有些行業(yè)也不希望因?yàn)槭褂枚C閱讀器而改動(dòng)自己軟件系統(tǒng)?;谶@樣情況,我們?cè)O(shè)計(jì)開(kāi)發(fā)了二代身份證智能采集器,可以有效解決這個(gè)問(wèn)題。二代身份證智能采集器是配合第二代居民身份證閱讀器在銀行、電信、郵政等領(lǐng)域應(yīng)用的第二代居民身份證信息自動(dòng)錄入工具,二代身份證智能采集器可以實(shí)現(xiàn)在不改變銀行、電信、郵政等行業(yè)應(yīng)用設(shè)備、軟件的情況下,實(shí)現(xiàn)對(duì)第二代居民身份證信息的自動(dòng)錄入,消除手動(dòng)錄入錯(cuò)誤,減少工作量,提高效率。
1、設(shè)計(jì)方案分析
1.1硬件設(shè)計(jì)
智能采集器的系統(tǒng)邏輯框圖如圖1所示。
圖1智能采集器的系統(tǒng)邏輯框圖
硬件結(jié)構(gòu)原理圖如圖2所示
圖2、智能采集器硬件結(jié)構(gòu)原理圖
智能采集器的主控MCU為STC89C516RD+[1],該單片機(jī)是宏晶科技公司推出的新一代超強(qiáng)抗干擾、高速、低功耗的MCU,其指令代碼完全兼容傳統(tǒng)8051單片機(jī), 其晶振為11.0592MHz,串行接口電平轉(zhuǎn)換芯片為ADM202,模擬開(kāi)關(guān)CD4066實(shí)現(xiàn)了專用鍵盤與標(biāo)準(zhǔn)鍵盤的分時(shí)復(fù)用,電源直接從主機(jī)的PS/2口供電,蜂鳴器和指示燈由CPU控制。
1.2軟件設(shè)計(jì)
智能采集器的軟件工作流程如圖3所示:
圖3 程序工作原理圖 |
系統(tǒng)通過(guò)RS-232通信接口發(fā)送命令請(qǐng)求到第二代身份證閱讀器,讀出證件信息;經(jīng)過(guò)驗(yàn)證后,保存到智能采集器中;再等待系統(tǒng)定義的熱鍵按下,一旦有熱鍵按下,智能采集器將相應(yīng)的信息取出;處理之后發(fā)送到PC機(jī)的PS/2鍵盤接口,在光標(biāo)閃爍處顯示相應(yīng)信息。
本系統(tǒng)包括系統(tǒng)初始化(如各寄存器初始化、串口初始化、端口初始化等) 、數(shù)據(jù)采集、GBK編碼轉(zhuǎn)換、鍵盤事件處理、數(shù)據(jù)發(fā)送等模塊。采用軟件控制程序的循環(huán)執(zhí)行,以達(dá)到實(shí)時(shí)檢測(cè)并發(fā)送信息的目的。
在數(shù)據(jù)通信方面,使用了單片機(jī)自帶的USART通用同步異步接收傳輸器,采取異步工作模式,8位數(shù)據(jù)格式。因此需在程序啟動(dòng)時(shí)對(duì)相關(guān)寄存器進(jìn)行初始化。同時(shí)須與身份證閱讀器同步傳輸波特率。
由于CPU使用11.0592MHz的晶振,采用高速通信模式,根據(jù)文獻(xiàn)2可得公式:
要計(jì)算的波特率= 2SMOD.Fosc/64,設(shè)置波特率為9600,F(xiàn)osc應(yīng)等于FDH。
MOVLW FDH
MOVWF SPBRG ;設(shè)置波特率為9600
通信亦采用輪詢方式[3],智能采集器通過(guò)連接端口,不斷向身份證閱讀器發(fā)送卡片輪詢命令(命令格式:AA AA AA 96 69 00 03 20 01 22),當(dāng)收到應(yīng)答信息為(AA AA AA 96 69 00 08 00 00 9F 00 00 00 00 97)時(shí),則表示閱讀器已經(jīng)檢測(cè)到有效的二帶身份證卡了,然后進(jìn)行相關(guān)數(shù)據(jù)采集處理。使用MOV INDEX, W語(yǔ)句取得接收身份證數(shù)據(jù),使用MOV SDA,C 語(yǔ)句發(fā)送命令數(shù)據(jù)。
出錯(cuò)處理部分對(duì)主流程和按鍵輪詢部分分別進(jìn)行糾錯(cuò)。為防止程序進(jìn)入死循環(huán),添加了斷電功能,用于對(duì)智能采集器的重啟糾錯(cuò)。
系統(tǒng)采用結(jié)構(gòu)化程序設(shè)計(jì)方案,具有較好的模塊性、可移植性和可修改性;系統(tǒng)通過(guò)主控流程管理和調(diào)度其他模塊,其主程序流程如圖4:
圖4 主程序流程圖
2關(guān)鍵技術(shù)分析
2.1漢字編碼轉(zhuǎn)換
為了進(jìn)行漢字信息處理,國(guó)家專門于1981年頒布了國(guó)標(biāo)GB2312――《信息交換漢字編碼字符集》。其中共收集了漢字6763個(gè),并確定每個(gè)漢字采用兩字節(jié)編碼。區(qū)位碼和國(guó)際碼這兩種漢字編碼都由國(guó)標(biāo)GB2312規(guī)定??紤]到GB2312支持的漢字太少,1995年的漢字?jǐn)U展規(guī)范GBK1.0收錄了21886個(gè)符號(hào),它分為漢字區(qū)和圖形符號(hào)區(qū)。漢字區(qū)包括21003個(gè)字符。2000年的GB18030是取代GBK1.0的正式國(guó)家標(biāo)準(zhǔn)。它是對(duì)GBK和GB2312編碼的進(jìn)一步擴(kuò)充[4]。
由于第二代身份證卡內(nèi)存儲(chǔ)的漢字信息為GB13000編碼,考慮到本智能采集器除了應(yīng)用于銀行、電信、郵政等終端設(shè)備相連外,還需要和其他PC機(jī)相連,對(duì)于連接PC機(jī),經(jīng)測(cè)試目前windows98以上的操作系統(tǒng)都支持GB1300,可以將閱讀器中的漢字編碼直接顯示,而當(dāng)前許多終端設(shè)備主要使用GB2312字庫(kù)、GBK字庫(kù)、GB18030字庫(kù),這就需要根據(jù)終端支持的字庫(kù)不同,將閱讀器中的漢字編碼進(jìn)行適當(dāng)?shù)奶幚砗箫@示在不同類型的終端設(shè)備上。鑒于此,我們?cè)谠O(shè)計(jì)中考慮到漢字編碼的兼容性和用戶操作的方便性,選擇在智能采集器中采用GBK漢字庫(kù),并建立GB1300和GBK對(duì)應(yīng)的編碼字典,如果終端設(shè)備只支持GB2312字庫(kù),則在讀取閱讀器中的漢字編碼后,通過(guò)查找字典,將GB1300編碼轉(zhuǎn)換為對(duì)應(yīng)的區(qū)位碼,對(duì)于不能查找到的冷僻字,則自動(dòng)忽略;如果終端設(shè)備支持GBK或GB18030,則輸出GBK編碼直接顯示。實(shí)踐證明,該方案不僅可以兼容當(dāng)前絕大部分終端設(shè)備,而且能無(wú)縫連接到PC機(jī)上的各類應(yīng)用。
2.2專用鍵盤和標(biāo)準(zhǔn)鍵盤的分時(shí)復(fù)用
由于本程序要實(shí)現(xiàn)采集器專用鍵盤與宿主機(jī)標(biāo)準(zhǔn)鍵盤的分時(shí)復(fù)用,所以按照使用手冊(cè)將相關(guān)插頭、插座對(duì)接。根據(jù)程序檢測(cè)相應(yīng)針腳的電平高低來(lái)判斷允許那個(gè)數(shù)據(jù)信號(hào)輸出,從而通過(guò)選擇不同的輸入地址線,選擇不同的輸入設(shè)備,達(dá)到分時(shí)復(fù)用的目的。
2.3身份證數(shù)據(jù)幀格式解析
公安部已經(jīng)嚴(yán)格規(guī)定了二代證的信息儲(chǔ)存格式如表1所示:
表一: 二代身份證數(shù)據(jù)格式
字段名稱 |
姓名 |
性別 |
民族 |
出身日期 |
家庭住址 |
身份證號(hào) |
發(fā)證機(jī)關(guān) |
有效期 |
追加信息 |
照片信息 |
長(zhǎng)度(字節(jié)) |
30 |
2 |
4 |
16 |
70 |
36 |
30 |
32 |
36 |
1024 |
起始地址 |
0000H |
001FH |
0021H |
0025H |
0035H |
007BH |
009FH |
00BDH |
00DDH |
0101H |
智能采集器通過(guò)輪詢發(fā)現(xiàn)二代證閱讀器中已經(jīng)存在身份信息時(shí),則向連接端口發(fā)送AA AA AA 96 69 00 03 30 01 32命令,可以按照上面給定的格式讀取相應(yīng)的數(shù)據(jù)信息。其中:性別字段目前的代碼為1-男,2-女,9-其他;家庭住址字段中注意‘-’的識(shí)別;追加信息字段表示地址變更信息,若沒(méi)有變更,則該字段為空;對(duì)于照片信息,智能采集器只是負(fù)責(zé)將編碼信息按特定的字符流傳輸?shù)浇K端或PC機(jī)上,然后使用公安部提供的SDK解密顯示圖像;目前只能在windows 平臺(tái)上實(shí)現(xiàn)圖像顯示。
3、結(jié)束語(yǔ)
本智能采集設(shè)備支持即插即用,采用專用鍵盤設(shè)計(jì),不需要切換輸入法,在銀行、電信、郵政等行業(yè)應(yīng)用時(shí),不需要對(duì)原有系統(tǒng)的軟硬件作任何改動(dòng),即可進(jìn)行第二代居民身份證信息的自動(dòng)錄入操作;使用方便快捷。通過(guò)實(shí)際應(yīng)用于成都市建設(shè)銀行部分支行前臺(tái)營(yíng)業(yè)服務(wù)系統(tǒng)表明:本設(shè)計(jì)方案消除手動(dòng)錄入錯(cuò)誤,減少工作量,提高了工作效率。
參考文獻(xiàn)
[1]、STC增強(qiáng)型8051單片機(jī)中文指南(RC/RD+系列)http://www.MCU-Memory.com;
[2]、武慶生、仇海 彈片機(jī)原理與應(yīng)用 電子科技大學(xué)出版社 1998 P82;
[3]、徐樂(lè)年,劉坤,劉明輝 基于M-BUS的智能采集器的設(shè)計(jì)與應(yīng)用 工礦自動(dòng)化 2006.4 P268
[4]、何江水,高有行 VxWorks漢字的顯示支持 微計(jì)算機(jī)信息,2005,5 :142-144