新聞中心

        EEPW首頁 > 測試測量 > 學習方法與實踐 > 二代身份證智能采集器研究與開發

        二代身份證智能采集器研究與開發

        作者:吳貞東 曾德勝 許小波 時間:2008-01-25 來源:微計算機信息 收藏

                 隨著二代身份證的廣泛使用,如何使二代身份證閱讀器與各種平臺的相關應用協同工作的問題越來越突出。

        本文引用地址:http://www.104case.com/article/78078.htm

                本文研究設計了一種智能采集器, 實現了二代身份證信息的平臺無關智能讀取,可以和銀行、電信等現有應用實現無逢連接,工程實踐表明,該方案切實可行。 

               引  言

               隨著二代身份證的換發工作的推進,我國需要使用二代身份證的領域越來越廣泛。由于二代身份證件是射頻智能卡,可以通過二代身份證閱讀器來讀取身份信息,這為提高工作效率和錄入信息的準確度提供了條件,但是二代證閱讀器在銀行、電信、郵政等行業推廣使用仍有很大障礙。

               這是因為這些行業的業務終端一般都使用非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通信接口發送命令請求到第二代身份證閱讀器,讀出證件信息;經過驗證后,保存到智能采集器中;再等待系統定義的熱鍵按下,一旦有熱鍵按下,智能采集器將相應的信息取出;處理之后發送到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:

        圖4 主程序流程圖

               2關鍵技術分析

               2.1漢字編碼轉換

               為了進行漢字信息處理,國家專門于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機上的各類應用。

              2.2專用鍵盤和標準鍵盤的分時復用

               由于本程序要實現采集器專用鍵盤與宿主機標準鍵盤的分時復用,所以按照使用手冊將相關插頭、插座對接。根據程序檢測相應針腳的電平高低來判斷允許那個數據信號輸出,從而通過選擇不同的輸入地址線,選擇不同的輸入設備,達到分時復用的目的。

               2.3身份證數據幀格式解析
          

                公安部已經嚴格規定了二代證的信息儲存格式如表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 平臺上實現圖像顯示。

                3、結束語

               本智能采集設備支持即插即用,采用專用鍵盤設計,不需要切換輸入法,在銀行、電信、郵政等行業應用時,不需要對原有系統的軟硬件作任何改動,即可進行第二代居民身份證信息的自動錄入操作;使用方便快捷。通過實際應用于成都市建設銀行部分支行前臺營業服務系統表明:本設計方案消除手動錄入錯誤,減少工作量,提高了工作效率。

               參考文獻

               [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



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 民权县| 江都市| 大方县| 牟定县| 普宁市| 柳河县| 秭归县| 土默特左旗| 四子王旗| 湟源县| 北京市| 洮南市| 新安县| 荆门市| 永丰县| 海宁市| 亳州市| 沙河市| 广昌县| 晋州市| 乌审旗| 涿州市| 台湾省| 方城县| 大同市| 吉木萨尔县| 水富县| 孟津县| 河北区| 项城市| 武功县| 芜湖县| 岳阳县| 含山县| 会泽县| 冀州市| 柳河县| 齐河县| 郧西县| 新野县| 蒙阴县|