《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Android的火車(chē)票實(shí)名檢票系統(tǒng)設(shè)計(jì)
基于Android的火車(chē)票實(shí)名檢票系統(tǒng)設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2012年第9期
黃江平,吳 昊
華東交通大學(xué) 電氣與電子工程學(xué)院,江西 南昌330013
摘要: 介紹了一種基于嵌入式平臺(tái)的實(shí)名制檢票手持終端的硬件構(gòu)成和軟件實(shí)現(xiàn)。采用了Android嵌入式操作系統(tǒng),對(duì)火車(chē)票上QR二維碼和二代身份證RFID系統(tǒng)采集到的數(shù)據(jù)進(jìn)行提取、顯示。同時(shí)通過(guò)WIFI,將采集到的數(shù)據(jù)與服務(wù)器數(shù)據(jù)進(jìn)行比對(duì)。實(shí)際運(yùn)行表明,系統(tǒng)運(yùn)行穩(wěn)定,可正確快速地識(shí)別出實(shí)名火車(chē)票的真?zhèn)?,?shí)現(xiàn)了系統(tǒng)設(shè)計(jì)的功能要求。
關(guān)鍵詞: QR碼 ARM11 RFID Android 圖像處理
中圖分類(lèi)號(hào): TP391
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)09-0021-03
Design of real name ticket system based on Android platform
Huang Jiangping,Wu Hao
School of Electrical and Electronic Engineering,East China Jiaotong University,Nanchang 330013,China
Abstract: A method of desingning real name ticket system based on Android embedded platform is introduced in this article.This handheld identification terminal adopts embedded operating Android,to extract and display the data by two-dimensional code system and second generation ID card RFID system. Meanwhile,it will compare the data with the server data by WIFI.Test result shows that the system has strong reliability to increase the efficiency of the ticket check. The instrument can meet the functional requirements of system design.
Key words : QR coeds;ARM;RFID;Android;image processing

    2012年1月,春運(yùn)火車(chē)票全面實(shí)行實(shí)名制, 在旅客進(jìn)站檢票時(shí),工作人員要查驗(yàn)兩種證件:印有乘車(chē)人信息以及二維條碼的火車(chē)票、乘車(chē)人本人身份證。目前的查驗(yàn)設(shè)備主要由三部分組成:電腦、二維碼讀取設(shè)備和二代身份證信息讀取設(shè)備。至少需要配備2名工作人員、一臺(tái)小型電腦桌,一張電腦椅。旅客進(jìn)站檢票時(shí),通常需經(jīng)過(guò)如下流程:

    出示火車(chē)票和身份證給工作人員,工作人員分別在二維碼讀取設(shè)備上讀出車(chē)票的信息和在二代身份證讀取個(gè)人信息, 兩者聯(lián)網(wǎng)比對(duì)無(wú)誤后確認(rèn)是否有效[1]。在這個(gè)過(guò)程中,由于二維碼讀取設(shè)備和二代身份證信息讀取設(shè)備是兩個(gè)不同的設(shè)備,整體造價(jià)很高,給大面積使用造成一定的困難。同時(shí)整個(gè)實(shí)名制檢票系統(tǒng)占地大,不方便移動(dòng),須在每個(gè)檢票口都必須安放一套實(shí)名制檢票系統(tǒng),這更增加了成本[2]。而且檢票過(guò)程用時(shí)較多,影響旅客的出行。
    針對(duì)以上情況,本文提出了一種基于Android的實(shí)名制火車(chē)票檢票手持設(shè)備。通過(guò)對(duì)火車(chē)票二維碼以及二代身份證RFID信息的采集、顯示,同時(shí)通過(guò)WIFI網(wǎng)絡(luò)對(duì)實(shí)名火車(chē)票信息進(jìn)行驗(yàn)證來(lái)解決實(shí)名驗(yàn)票過(guò)程中遇到的各種問(wèn)題。
1 系統(tǒng)的總體構(gòu)成
    基于Android嵌入式平臺(tái)的火車(chē)票實(shí)名檢票系統(tǒng)主要由基于ARM11嵌入式微處理器、二維條碼掃描系統(tǒng)、RFID身份證識(shí)別系統(tǒng)和無(wú)線網(wǎng)絡(luò)系統(tǒng)WIFI組成。手持設(shè)備采用基于ARM11內(nèi)核的S3C6410嵌入式微處理器組成信息處理核心,二維碼條碼掃描模塊采用500萬(wàn)像素自動(dòng)對(duì)焦CMOS攝像頭組成二維條碼采集系統(tǒng),RFID模塊主要完成身份證信息的提取。采用開(kāi)源的Android操作系統(tǒng)作為嵌入式系統(tǒng)軟件平臺(tái),主要為用戶提供友好的圖形界面以及驅(qū)動(dòng)底層的硬件設(shè)備。系統(tǒng)的總體框架如圖1所示。

2 系統(tǒng)硬件構(gòu)成
    基于Android嵌入式平臺(tái)的火車(chē)票實(shí)名檢票系統(tǒng)由嵌入式系統(tǒng)硬件和軟件構(gòu)成,其中系統(tǒng)硬件主要包括S3C6410微處理器、二維碼攝像頭掃描系統(tǒng)、RFID身份證掃描系統(tǒng)及外圍電路等。
2.1 基于S3C6410的嵌入式系統(tǒng)
    通常手持設(shè)備要求移動(dòng)方便、外形美觀、低功耗、高性能、擴(kuò)展方便。為此,使用三星公司的S3C6410嵌入式微處理器,采用FPGA封裝,共424引腳。通過(guò)外接總線,通用I/O和各種專(zhuān)用模塊的擴(kuò)展,其功能強(qiáng)大。S3C6410外圍電路主要包括DDR RAM、Flash、串行接口模塊、LCD顯示模塊、WIFI收發(fā)模塊、攝像頭接口模塊、USBHost接口模塊等。硬件平臺(tái)的總體設(shè)計(jì)框架如圖2所示。

2.2 RFID識(shí)別系統(tǒng)
    目前二代身份證使用ISO14443 TYPEB標(biāo)準(zhǔn)。為此,RFID識(shí)別系統(tǒng)作為二代身份證的信息采集設(shè)備,采用飛利浦MFRC522芯片來(lái)讀取二代身份證。MFRC522集成了13.56 MHz頻率下所有類(lèi)型的被動(dòng)非接觸式協(xié)議和通信方式,支持ISO14443兼容應(yīng)答器信號(hào),數(shù)字信號(hào)部分處理錯(cuò)誤及檢測(cè)ISO14443幀。此外,芯片支持快速CRYPTO1加密算法,用于驗(yàn)證MIFARE系列卡片。MFRC522支持MIFARE更高速的非接觸式通信,雙向數(shù)據(jù)傳輸速率高達(dá)424 kb/s。MFRC522與主機(jī)間通信采用連線較少的串行通信,且可根據(jù)不同的需求,選取串行UART、SPI或IIC模式之一進(jìn)行通信。在本系統(tǒng)中采用UART串行通信的模式與S3C6410嵌入式微處理器進(jìn)行通信,其構(gòu)成如圖3所示。

2.3 條碼掃描系統(tǒng)
    火車(chē)票實(shí)名檢票系統(tǒng)中,條碼掃描系統(tǒng)主要負(fù)責(zé)火車(chē)票票面的二維碼信息的采集和解碼。在本系統(tǒng)中,采用500萬(wàn)像素自動(dòng)對(duì)焦的攝像頭對(duì)二維碼進(jìn)行拍照并識(shí)別其中的票面信息,相對(duì)于傳統(tǒng)的激光掃描器,攝像頭采集器件具備外圍連線簡(jiǎn)單、價(jià)格便宜、功耗低等特點(diǎn),較適合于移動(dòng)設(shè)備中使用。
3 系統(tǒng)軟件構(gòu)成
    在本系統(tǒng)中,選用Android 2.3.7操作系統(tǒng)作為火車(chē)票實(shí)名檢票系統(tǒng)的軟件平臺(tái)。Andioid是Google開(kāi)發(fā)的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng),后由開(kāi)放手持設(shè)備聯(lián)盟開(kāi)發(fā)。它采用了軟件堆層的架構(gòu),主要由底層系統(tǒng)、中間件和應(yīng)用程序三部分組成,是第一個(gè)為移動(dòng)終端打造的真正開(kāi)放和完整的移動(dòng)操作系統(tǒng)[3]。其中軟件開(kāi)發(fā)部分主要包括Android底層驅(qū)動(dòng)開(kāi)發(fā)、二維碼掃描解碼模塊開(kāi)發(fā)以及上層用戶應(yīng)用程序的開(kāi)發(fā)。系統(tǒng)的軟件結(jié)構(gòu)如圖4所示。

3.1 條碼掃描解碼模塊軟件設(shè)計(jì)
    我國(guó)現(xiàn)行的火車(chē)票是將包含持票人身份信息以及售票信息的QRCode二維碼印制在火車(chē)票的右下角。在本系統(tǒng)中,采用500萬(wàn)像素可自動(dòng)對(duì)焦的CMOS攝像頭采集火車(chē)票票面的二維碼信息。為此,在軟件設(shè)計(jì)中,需要設(shè)計(jì)攝像頭驅(qū)動(dòng)程序。Android底層使用的是Linux內(nèi)核,攝像頭系統(tǒng)部分在libui庫(kù)中定義本地代碼框架,對(duì)上層提供接口功能部件,由CameraServices實(shí)現(xiàn),CameraServices通過(guò)調(diào)用硬件抽象層下層的攝像頭來(lái)實(shí)現(xiàn)功能。Camera 本地系統(tǒng)上層接口既可以通過(guò)本地程序調(diào)用,也可以使用JNI 來(lái)構(gòu)建攝像頭應(yīng)用的 Java 框架。攝像頭接口驅(qū)動(dòng)的框架如圖5所示。

 

 

    在本系統(tǒng)中,采用攝像頭對(duì)QR二維碼進(jìn)行圖像數(shù)據(jù)采集。而采集到的QR二維碼圖像通常存在一定程度的污損,需要先適當(dāng)?shù)貙?duì)圖像進(jìn)行處理,然后再對(duì)圖像進(jìn)行探測(cè)定位,最后進(jìn)行RS糾錯(cuò),輸出解碼結(jié)果。具體的步驟如下:
    (1)圖像灰度化。將攝像頭得到的彩色圖像轉(zhuǎn)為灰度圖像。
    (2)中值濾波。將得到的灰度圖像去除噪聲,保留圖像的原本特征。
    (3)二值化。采用積分圖的快速二值化算法。
    (4)邊緣檢測(cè)。采用Sobel算子對(duì)二值化的圖像進(jìn)行邊緣檢測(cè)。
    (5)圖像校正。在拍攝過(guò)程中通常存在一定程度的幾何失真,需要通過(guò)Hough變換對(duì)圖像進(jìn)行旋轉(zhuǎn),并采用雙線性插值法對(duì)旋轉(zhuǎn)后的圖像進(jìn)行修正。
    (6)QR碼識(shí)別。QR碼的識(shí)別特征是QR碼的探測(cè)圖形,根據(jù)探測(cè)圖形的三個(gè)頂點(diǎn)坐標(biāo)可以初步估算版本號(hào)以及確定模塊的寬度,然后尋找QR碼的定位圖像。當(dāng)發(fā)現(xiàn)有校正圖形時(shí),則利用校正圖形和定位圖形建立取樣網(wǎng)絡(luò),將QR碼圖像轉(zhuǎn)換為數(shù)據(jù)矩陣,“0”代表網(wǎng)格上顏色較淺的模塊,“1”代表網(wǎng)格上顏色較深的模塊。
    (7)提取版本和格式信息,并校驗(yàn)信息檢測(cè)是否有誤,如果有誤,則中止解碼。
    (8)提取掩模信息,將數(shù)據(jù)矩陣與掩模的圖形碼進(jìn)行相應(yīng)的“異或”操作。
    (9)RS糾錯(cuò)。如圖像中錯(cuò)誤量超過(guò)糾錯(cuò)能力,則中止解碼。
    (10)解碼結(jié)果輸出。
    條碼掃描解碼模塊的流程如圖6所示。
3.2 身份證識(shí)別器串行通信接口設(shè)計(jì)
    在本系統(tǒng)中,二代身份證通過(guò)RS232串口與S3C6410嵌入式微處理器進(jìn)行通信。因此,需要在Android系統(tǒng)中加入串行口驅(qū)動(dòng)程序。本系統(tǒng)硬件抽象層中通過(guò)兩個(gè)線程對(duì)串口的設(shè)備節(jié)點(diǎn)/dev/ttymv1進(jìn)行讀和寫(xiě)。
    JNI中的源碼通過(guò)init、download、upload 3個(gè)硬件抽象層中的函數(shù)接口對(duì)串口進(jìn)行初始化、讀數(shù)據(jù)和寫(xiě)數(shù)據(jù)。讀數(shù)據(jù)時(shí),在硬件抽象層中通過(guò)讀數(shù)據(jù)的線程從串行設(shè)備節(jié)點(diǎn)中將數(shù)據(jù)讀出后進(jìn)行CRC校驗(yàn)和解析,如果CRC校驗(yàn)正確,則把解析之后的數(shù)據(jù)通過(guò)JNI層傳到Java中進(jìn)行使用。寫(xiě)數(shù)據(jù)時(shí),直接把Java傳過(guò)來(lái)的數(shù)據(jù)通

    實(shí)驗(yàn)表明,該系統(tǒng)硬件電路簡(jiǎn)單,可靠性強(qiáng),易于擴(kuò)展;軟件圖形界面友好,使用方便。對(duì)本系統(tǒng)硬軟件稍作更改,即可運(yùn)用于餐飲點(diǎn)餐、物流、超市等領(lǐng)域,可以極大地提高各領(lǐng)域的工作效率,適合于大面積推廣。
參考文獻(xiàn)
[1] 李軼舜,徐建閩,盧凱.基于第2代身份證的火車(chē)電子售檢票系統(tǒng)的構(gòu)建[J].交通與計(jì)算機(jī),2008,26(5):148-151.
[2] 胡弼,程永生.基于ARM的實(shí)名制檢票手持識(shí)別終端設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù),2010,29(10):62-65.
[3] 蔣耘晨.Android系統(tǒng)原理和實(shí)戰(zhàn)應(yīng)用[M].北京:北京理工大學(xué)出版社,2011.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。