《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式和RFID技術(shù)的電子門(mén)票系統(tǒng)
基于嵌入式和RFID技術(shù)的電子門(mén)票系統(tǒng)
來(lái)源:微型機(jī)與應(yīng)用2011年第9期
沈洪銳,張晶晶,李 燁,孫番典
(華南師范大學(xué) 物理與電信工程學(xué)院,廣東 廣州 510006)
摘要: 介紹了通過(guò)在ARM+μClinux+Web+SQLite平臺(tái)下擴(kuò)展CAN總線,并以RFID讀卡器作為控制節(jié)點(diǎn)而實(shí)現(xiàn)的電子門(mén)票系統(tǒng)。一方面可以方便持卡者查詢(xún)門(mén)票使用情況、場(chǎng)所路線以及館內(nèi)人流量,幫助其更好地選擇相關(guān)路線;另一方面有助于舉辦方實(shí)時(shí)了解各片區(qū)的人流情況及追蹤目標(biāo),以便做出調(diào)度和提高安防工作效率。
Abstract:
Key words :

摘  要: 介紹了通過(guò)在ARM+μClinux+Web+SQLite平臺(tái)下擴(kuò)展CAN總線,并以RFID讀卡器作為控制節(jié)點(diǎn)而實(shí)現(xiàn)的電子門(mén)票系統(tǒng)。一方面可以方便持卡者查詢(xún)門(mén)票使用情況、場(chǎng)所路線以及館內(nèi)人流量,幫助其更好地選擇相關(guān)路線;另一方面有助于舉辦方實(shí)時(shí)了解各片區(qū)的人流情況及追蹤目標(biāo),以便做出調(diào)度和提高安防工作效率。
關(guān)鍵詞: RFID;CAN總線;ARM;Web Server;SQLite

 由于RFID電子門(mén)票具有防偽性能好、可靠性高、適應(yīng)性強(qiáng)、成本低等特點(diǎn),已被普遍應(yīng)用于各種大型公共活動(dòng)中。本文提出一種經(jīng)濟(jì)型、基于嵌入式技術(shù)的RFID電子門(mén)票系統(tǒng)。
1 RFID的原理
 射頻識(shí)別(RFID)利用射頻信號(hào)的空間耦合或反射的傳輸特性,對(duì)被識(shí)別物體自動(dòng)識(shí)別,是一種非接觸式自動(dòng)識(shí)別技術(shù)。RFID主要由電子標(biāo)簽(Tag)和閱讀器(Reader)兩部分組成。電子標(biāo)簽由耦合元件和芯片組成,其工作能量來(lái)源于閱讀器發(fā)出的射頻脈沖,通過(guò)無(wú)線電波與讀寫(xiě)設(shè)備進(jìn)行數(shù)據(jù)交換。閱讀器主要由無(wú)線收發(fā)模塊、天線、控制模塊和接口電路組成,其主要任務(wù)是控制射頻模塊向電子標(biāo)簽發(fā)射讀取信號(hào),并接收電子標(biāo)簽的應(yīng)答,對(duì)電子標(biāo)簽的標(biāo)識(shí)信息進(jìn)行解碼,將標(biāo)識(shí)信息及其他相關(guān)信息傳輸?shù)街鳈C(jī)以便處理。該系統(tǒng)選用低頻(125  kHz)RFID系統(tǒng),性能不受環(huán)境影響,價(jià)格低廉,因此適合大規(guī)模生產(chǎn)使用。
2 CAN總線技術(shù)[1]
 CAN是由ISO定義的串行通信總線,具有高位速率、高抗電磁干擾性、高可靠性等特點(diǎn),而且能夠檢測(cè)到產(chǎn)生的任何錯(cuò)誤。CAN在微控制器之間互相通信或微控制器與遠(yuǎn)程的外圍器件互相通信的情況下是一個(gè)理想的解決方法。CAN相比于RS485采用了新技術(shù)及獨(dú)特的設(shè)計(jì),具有多主節(jié)點(diǎn)的網(wǎng)絡(luò)特性,總線利用率高,數(shù)據(jù)傳輸速度快,可擴(kuò)充性好,通信距離長(zhǎng),具有可靠的錯(cuò)誤處理和檢錯(cuò)機(jī)制,個(gè)別節(jié)點(diǎn)失效并不影響整個(gè)通信網(wǎng)絡(luò)的運(yùn)行,實(shí)時(shí)性好。因此在自動(dòng)化各個(gè)行業(yè),CAN取代RS485將是一種不可逆轉(zhuǎn)的趨勢(shì)。
3 ARM+μClinux平臺(tái)下實(shí)現(xiàn)動(dòng)態(tài)Web[2]
 在μClinux環(huán)境下,httpd、thttpd和Boa是三個(gè)主要的Web服務(wù)器。這里選擇非常適合嵌入式系統(tǒng)的Boa Web服務(wù)器,它支持認(rèn)證、CGI等。Boa是一個(gè)單任務(wù)的http服務(wù)器,μClinux代碼已經(jīng)自帶了Boa的源碼,配置和修改源碼后,在配置內(nèi)核時(shí)把Boa選進(jìn)內(nèi)核實(shí)現(xiàn)入網(wǎng),通過(guò)瀏覽器就可以訪問(wèn)嵌入式網(wǎng)頁(yè)。
 迄今,實(shí)現(xiàn)動(dòng)態(tài)Web頁(yè)面有CGI、ASP、PHP和JSP四種技術(shù)可供選擇,由于目前μClinux還不支持ASP、PHP等動(dòng)態(tài)Web頁(yè)面技術(shù),因此本設(shè)計(jì)選擇CGI。CGI提供Web服務(wù)器一個(gè)執(zhí)行外部程序的通道,這種服務(wù)端技術(shù)使得瀏覽器和服務(wù)器之間具有交互性。CGI程序接收Web瀏覽器發(fā)送給Web服務(wù)器的信息,進(jìn)行處理后執(zhí)行相應(yīng)的任務(wù)。本系統(tǒng)選擇與平臺(tái)無(wú)關(guān)的C語(yǔ)言編寫(xiě)CGI程序。
4 嵌入式數(shù)據(jù)庫(kù)SQLite及其在μClinux上的移植[3]
4.1 嵌入式數(shù)據(jù)庫(kù)SQLite簡(jiǎn)介

 嵌入式數(shù)據(jù)庫(kù)SQLite較其他大型數(shù)據(jù)庫(kù)的特點(diǎn)是程序直接調(diào)用相應(yīng)的API實(shí)現(xiàn)對(duì)數(shù)據(jù)的存取操作,無(wú)需獨(dú)立運(yùn)行的數(shù)據(jù)庫(kù)引擎。SQLite不具有外部依賴(lài)性,完全獨(dú)立,并且提供了對(duì)SQL92標(biāo)準(zhǔn)的大多數(shù)支持:支持多表和索引、事務(wù)、視圖、觸發(fā)和一系列的用戶(hù)接口及驅(qū)動(dòng)。在嵌入式系統(tǒng)中移植SQLite數(shù)據(jù)庫(kù)成為一種很好的解決方案。
4.2 SQLite開(kāi)發(fā)技術(shù)
 SQLite本身提供了C語(yǔ)言的API接口,使得對(duì)數(shù)據(jù)庫(kù)的操作十分簡(jiǎn)單,主要是對(duì)3個(gè)API函數(shù)的調(diào)用。
 (1)打開(kāi)數(shù)據(jù)庫(kù)
 int sqlite3_open(const char*filename,sqlite3**ppDb);
 sqlite3_open()用于打開(kāi)指定的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)文件名稱(chēng)由filename參數(shù)指定,并通過(guò)ppDb參數(shù)返回合法的數(shù)據(jù)庫(kù)句柄。
 (2)執(zhí)行數(shù)據(jù)庫(kù)
    int sqlite3_exec(sqlite3*,const char *sql,sqlite_callback, void*,char**errmsg);
第一個(gè)參數(shù)sqlite3*是前面open函數(shù)得到的指針。第二個(gè)參數(shù)const char*sql是一條SQL語(yǔ)句或多條SQL語(yǔ)句,語(yǔ)句間必須用“;”號(hào)隔開(kāi),以\0結(jié)尾。第三個(gè)參數(shù)是回調(diào),當(dāng)這條SQL語(yǔ)句執(zhí)行之后,SQLite3會(huì)調(diào)用該回調(diào)函數(shù)。第四個(gè)參數(shù)void*是傳遞給回調(diào)函數(shù)的參數(shù),如果不需要傳遞指針給回調(diào)函數(shù),可以賦NULL給該參數(shù)。第五個(gè)參數(shù)char**errmsg用來(lái)保存錯(cuò)誤信息。
 (3)關(guān)閉數(shù)據(jù)庫(kù)
 int sqlite3_close(sqlite3*db);
 參數(shù)db就是打開(kāi)時(shí)的結(jié)構(gòu)體,即數(shù)據(jù)庫(kù)句柄。
4.3 SQLite應(yīng)用程序交叉編譯
 要將嵌有SQLite的CGI程序應(yīng)用到S3C44b0+μClinux開(kāi)發(fā)平臺(tái)上,必須對(duì)CGI程序進(jìn)行交叉編譯。由于交叉編譯要用到romfs格式的libsqlite.a庫(kù)文件,因此必須先對(duì)SQLite源代碼進(jìn)行修改,以便生成靜態(tài)庫(kù)文件libsqlite3.a。然后交叉編譯生成cgi格式文件,與內(nèi)核一起編譯后下載到開(kāi)發(fā)板。
5 電子門(mén)票系統(tǒng)的設(shè)計(jì)
 在S3C44B0+μClinux+Web+SQLite嵌入式平臺(tái)下,通過(guò)CAN總線與RFID讀卡器進(jìn)行通信。整體構(gòu)架如圖1所示。該系統(tǒng)可以分為兩個(gè)模塊:第一部分為各個(gè)場(chǎng)所的刷卡點(diǎn),包括CAN總線和RFID讀卡器的設(shè)計(jì),該模塊的功能是采集數(shù)據(jù)。第二部分為ARM嵌入式遠(yuǎn)程控制功能,實(shí)現(xiàn)數(shù)據(jù)的讀取、儲(chǔ)存以及處理,數(shù)據(jù)包括CAN總線數(shù)據(jù)和Web內(nèi)建表單數(shù)據(jù)。

 

 

5.1 CAN通信節(jié)點(diǎn)工作原理[4]
 當(dāng)持卡者將RFID電子門(mén)票靠近讀卡器時(shí),通過(guò)固有頻率的射頻載波向無(wú)源電子標(biāo)簽傳送信號(hào),無(wú)源電子門(mén)票進(jìn)入讀寫(xiě)器的天線工作區(qū)域后被激活,并將載有個(gè)人信息的射頻信號(hào)經(jīng)卡內(nèi)收發(fā)模塊發(fā)射出去;讀卡器天線接收到無(wú)源電子標(biāo)簽發(fā)來(lái)的射頻信號(hào),經(jīng)過(guò)處理后,提取出個(gè)人信息,通過(guò)CAN現(xiàn)場(chǎng)總線送至ARM處理器處理。
5.2 ARM數(shù)據(jù)處理核心[5]
 ARM把CAN總線傳過(guò)來(lái)的信息進(jìn)行解析,得到卡號(hào)和位置的信息,并且更新數(shù)據(jù)庫(kù)里面各項(xiàng)信息。持卡者或者主辦方通過(guò)Web服務(wù)器就可以查詢(xún)信息。CGI程序在收到Web頁(yè)面內(nèi)建表單的數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行處理,進(jìn)而調(diào)用相應(yīng)的SQLite語(yǔ)言進(jìn)行處理,例如select、update等操作。CGI程序完成處理后的輸出被重定向到客戶(hù)瀏覽器,持卡者或主辦方通過(guò)瀏覽器查詢(xún)到相關(guān)的信息。
 本論文討論了基于嵌入式和RFID技術(shù)的電子門(mén)票系統(tǒng),是一個(gè)經(jīng)濟(jì)實(shí)用的解決方案。傳統(tǒng)的紙質(zhì)門(mén)票功能單一、效率低、客戶(hù)管理和跟蹤很難實(shí)施。RFID門(mén)票是票務(wù)行業(yè)探索的熱點(diǎn),相信RFID門(mén)票將會(huì)被更多的企業(yè)、景區(qū)、活動(dòng)主辦方、比賽場(chǎng)所接受并應(yīng)用。
參考文獻(xiàn)
[1] 陽(yáng)憲惠.現(xiàn)場(chǎng)總線技術(shù)及應(yīng)用[M].北京:清華大學(xué)出版社,2003.
[2] 吳堅(jiān),張家奇,蔣平.μClinux下Web Server及CGI技術(shù)的實(shí)現(xiàn)[J].測(cè)控技術(shù),2007,26(4):64-70.
[3] 莊宗輝,薛毓強(qiáng),連瑞紅.嵌入式數(shù)據(jù)庫(kù)SQLite在遠(yuǎn)程監(jiān)控系統(tǒng)中的應(yīng)用[J].現(xiàn)代電子技術(shù),2007(8):62-64.
[4] 柯建華,魏學(xué)業(yè).基于RFID與CAN的煤礦井下人員定位系統(tǒng)研究[J].煤炭工程,2006(11):104-106.
[5] 王國(guó)寧.基于嵌入式Internet的CAN總線遠(yuǎn)程監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)[D].上海:東華大學(xué),2006.

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