RFID安檢系統(tǒng)的嵌入式Linux解決方案
本文介紹了此RFID安檢系統(tǒng)的硬件框架和軟件設(shè)計(jì),實(shí)現(xiàn)了RFID安檢系統(tǒng)基于嵌入式Linux下的串口通信以及數(shù)據(jù)庫的應(yīng)用。最后通過實(shí)驗(yàn)證明并確定了其在速率、穩(wěn)定性方面的可行性,對(duì)于當(dāng)今大多數(shù)RFID安檢系統(tǒng)的開發(fā)具有一定的參考價(jià)值。
本文引用地址:http://m.butianyuan.cn/article/150790.htm RFID(射頻識(shí)別)是一種非接觸式的自動(dòng)識(shí)別技術(shù),它通過射頻信號(hào)自動(dòng)識(shí)別目標(biāo)對(duì)象并獲取相關(guān)數(shù)據(jù),識(shí)別工作無需人工干預(yù),可工作于各種惡劣環(huán)境下。RFID技術(shù)可識(shí)別高速運(yùn)動(dòng)物體并可同時(shí)識(shí)別多個(gè)標(biāo)簽, 操作快捷方便。非接觸IC卡是目前RFID系統(tǒng)中最常用的一種電子標(biāo)簽,它誕生于20世紀(jì)90年代初,是世界上最近幾年發(fā)展起來的一項(xiàng)新技術(shù),它成功地將射頻識(shí)技術(shù)和IC卡技術(shù)結(jié)合起來,解決了無源(卡中無電源)和免接觸這一難題,是電子器件領(lǐng)域的一大突破。由于存在著磁卡和接觸式IC卡不可比擬的優(yōu)點(diǎn),使之一經(jīng)問世,便立即引起廣泛的關(guān)注,并以驚人的速度得到推廣應(yīng)用,如我國的第二代公民身份證、公交卡、ETC免停車付費(fèi)卡等??梢哉fRFID技術(shù)越來越多地應(yīng)用到我國身份安檢、質(zhì)量安檢、車輛安檢、執(zhí)法安檢等諸多安檢系統(tǒng)中。
本文就是針對(duì)安檢系統(tǒng)這種工程背景下RFID通信的應(yīng)用開發(fā)。現(xiàn)在一般的RFID通信都基于串口,串口因其通用性、方面性和優(yōu)良性能得到了廣泛的應(yīng)用。由于安檢系統(tǒng)中往往涉及大量重要數(shù)據(jù)的讀取、通信以及實(shí)時(shí)更新,因此數(shù)據(jù)庫技術(shù)的引入必不可少。同時(shí)本文選擇了Linux操作系統(tǒng),眾所周知Linux同Windows相比性能更安全、更可靠,而且Linux還是一款免費(fèi)的代碼開源的操作系統(tǒng),裁減內(nèi)核更方便、快捷,與其他操作系統(tǒng)相比有著許多獨(dú)特的優(yōu)勢(shì),更加適合用作嵌入式操作系統(tǒng)。
1 系統(tǒng)結(jié)構(gòu)介紹
RFID安檢系統(tǒng)主要包括RFID前段讀寫器、嵌入式Linux終端兩大部分。
其中嵌入式終端的CPU采用ARM9內(nèi)核,內(nèi)核執(zhí)行速率達(dá)幾百兆赫茲,可以很好地滿足RFID數(shù)據(jù)的讀取和存儲(chǔ)。由于嵌入式系統(tǒng)一般是一個(gè)經(jīng)過裁剪、資源極其有限的系統(tǒng),因此對(duì)于安檢系統(tǒng)中涉及到的大量數(shù)據(jù)只能存取到外圍存儲(chǔ)設(shè)備中,本方案中的SD卡模塊正是用來存儲(chǔ)數(shù)據(jù)庫的,當(dāng)RFID讀寫器讀取到指定數(shù)據(jù),便在SD卡中的相關(guān)數(shù)據(jù)庫文件中查詢,并根據(jù)查詢結(jié)果做出相關(guān)反應(yīng)并及時(shí)更新本地?cái)?shù)據(jù)庫。
2 Linux下串口的開發(fā)
在Linux下對(duì)串口進(jìn)行配置、打開、讀寫等一系列的操作其使用方式與文件操作一樣,區(qū)別在于串口是一個(gè)終端設(shè)備[1]。Linux中的串口設(shè)備文件存放于/dev目錄下,其中串口1、串口2一般對(duì)應(yīng)設(shè)備名依次為“/dev/ttyS0”、“/dev/ttyS1”。在使用串口之前必須設(shè)置相關(guān)配置,包括波特率、數(shù)據(jù)位、校驗(yàn)位、停止位等。
串口設(shè)置由下面結(jié)構(gòu)體實(shí)現(xiàn):
Struct termios {
tcflag_t c_iflag; /* input flags */
tcflag_t c_oflag; /* output flags*/
tcflag_t c_cflag; /*control flags */
tcflag_t c_lflag; /* local flags */
tcflag_t c_cc[NCSS]; /* control characters */
}
按照串口配置流程,對(duì)termios結(jié)構(gòu)體設(shè)置相關(guān)參數(shù),當(dāng)串口按自己的設(shè)置要求配置成功后,即可將串口當(dāng)做普通I/O文件,使用read和write函數(shù)對(duì)串口進(jìn)行讀取。
3 sqlite3數(shù)據(jù)庫的應(yīng)用開發(fā)
sqlite3數(shù)據(jù)庫是一種嵌入式數(shù)據(jù)庫,其目標(biāo)是盡量簡(jiǎn)單,因此拋棄了傳統(tǒng)企業(yè)級(jí)數(shù)據(jù)庫的種種復(fù)雜特性,只實(shí)現(xiàn)對(duì)于數(shù)據(jù)庫而言必備的功能。盡管簡(jiǎn)單性是sqlite3追求的首要目標(biāo),但是其功能和性能都非常出色,具有支持SQL92標(biāo)準(zhǔn)、所有數(shù)據(jù)存放到單獨(dú)的文件中支持的最大文件可達(dá)2 TB、數(shù)據(jù)庫可以在不同字節(jié)的機(jī)器之間共享、體積小、系統(tǒng)開銷小、檢索效率高、支持多種計(jì)算機(jī)語言、源碼開放,并且可以用于任何合法用途等特性。
評(píng)論