【深入探討】嵌入式RFID讀寫器的內(nèi)部數(shù)據(jù)管理
發(fā)布時間:2014-07-09 責(zé)任編輯:echotang
【導(dǎo)讀】不同于普通物流領(lǐng)域,由于裝備信息較為復(fù)雜,單一普通標簽難以勝任承載所需全部信息。考慮經(jīng)濟和實用性,采用不同頻率多標簽方式才能較好滿足要求。因此,本文針對裝備信息的RFID數(shù)據(jù)結(jié)構(gòu)重點進行了分析,并詳細研究了嵌入式讀寫器內(nèi)部數(shù)據(jù)的存儲和管理,以滿足裝備保障信息化需求。
在保障裝備裝備時,訓(xùn)練使用、檢修、加裝改造等記錄用傳統(tǒng)手工操作,管理人員必須對進裝備名稱、隨裝配套類型及數(shù)量、出廠單位、出廠日期以及其他眾多屬性進行逐一登記,不但工作效率低、而且容易出差錯,成為制約工作進度的瓶頸。如果裝備信息管理運用RFID標簽取代紙質(zhì)履歷表,記錄裝備從出廠、配備、動用、維修、保管、事故、加裝改造、退役報廢等全生命周期的履歷信息,手持讀寫器讀取射頻標簽及信息記錄裝置每日信息,可以幫助操作人員及時掌握裝備工作情況,為維修保障人員提供信息支持。
1RFID數(shù)據(jù)模型研究
1.1RFID數(shù)據(jù)特性
RFID數(shù)據(jù)模型是管理RFID數(shù)據(jù)的基礎(chǔ)。從總體上RFID應(yīng)用有著共同的需求特點:
(1)識別:RFID標簽唯一地標識該物體。
(2)位置:一個位置可以是一個地理位置,也可以是有背景含義的特殊位置,如倉庫、靶場等。
(3)關(guān)系:RFID應(yīng)用的另一個關(guān)鍵概念是聚合,即對象之間形成的關(guān)系。一種常見聚合情況是包含關(guān)系,即在物體運動過程中,被包含的物體與外包裝物體有相同的運動路徑等特性。另一個集合情況是協(xié)作,即貼有標簽的物體之間有一定的關(guān)系[1],如某型導(dǎo)彈射擊訓(xùn)練由發(fā)射車與檢測車共同完成,則發(fā)射車與檢測車之間有協(xié)作關(guān)系。
1.2數(shù)據(jù)模型
本文重點是利用數(shù)據(jù)庫技術(shù)實現(xiàn)裝備數(shù)據(jù)信息的層次化管理。系統(tǒng)中涉及的數(shù)據(jù)主要有靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)兩種類型。
1.2.1靜態(tài)數(shù)據(jù)
靜態(tài)數(shù)據(jù)是有關(guān)固定信息、業(yè)務(wù)規(guī)則以及系統(tǒng)設(shè)置的數(shù)據(jù),不輕易隨時間變更[2]。在本系統(tǒng)中,靜態(tài)數(shù)據(jù)主要包括:
(1)Objects:所有使用射頻標簽進行標識系統(tǒng),包括系統(tǒng)及隨裝配件的名稱、型號、出廠單位、出產(chǎn)年份等信息。
(2)Organizations:裝備在生命周期(出廠到退役報廢之間的時間)內(nèi)裝配變動信息,包括裝配單位、裝配時間、戰(zhàn)斗序列等信息。
(3)Actions:事務(wù)處理類型。包括重大活動記錄、技術(shù)檢查、維修、加裝改裝等信息。
1.2.2動態(tài)數(shù)據(jù)
動態(tài)數(shù)據(jù)反映了系統(tǒng)運作中的事務(wù)過程,與時間、空間密切相關(guān)。動態(tài)數(shù)據(jù)主要包括:Arrangement,用于描述裝備實體(Objects)與狀態(tài)的層次關(guān)系;ObjectOrganization,用于描述裝備實體(Objects)在某時間內(nèi)的調(diào)撥、調(diào)整;ActionItem,用于描述裝備處理情況。
1.2.3數(shù)據(jù)模型的建立
如果有靜態(tài)關(guān)系,則根據(jù)ER模型的映射關(guān)系,映射成表即可[3]。對于兩個實體之間的基于狀態(tài)的關(guān)系,則在兩個實體表的主鍵之間加上時間間隔(stime,etime)組成,其中時間間隔代表了關(guān)系或者狀態(tài)存在的生命周期?;谑录膭討B(tài)關(guān)系,由映射在兩個表的主鍵加上時間戳屬性timestamp組成,這個時間戳代表了時間發(fā)生的時間點。
2基于嵌入式的RFID讀寫器數(shù)據(jù)管理
2.1系統(tǒng)的設(shè)計思路
根據(jù)以上分析,數(shù)據(jù)來源主要分為兩類:一類是固定的裝備身份信息,這些信息是一般不會隨時間變化,數(shù)據(jù)量比較小;另一類是動態(tài)的裝備壽命信息,通常是記錄日常操作的起始時間和裝備調(diào)撥、調(diào)整,數(shù)據(jù)量稍大且需要重復(fù)讀寫。
為此,以某型車輛裝備為例,采用一種13.56MHz的無源標簽存儲裝備身份信息,采用頻率為2.4GHz的有源標簽存儲動態(tài)壽命信息。本設(shè)計采用WindowsCE作為操作系統(tǒng),通過RFID射頻收發(fā)模塊讀取所需求的數(shù)據(jù),對數(shù)據(jù)進行解析、提取、存儲,并構(gòu)建嵌入式SQLite數(shù)據(jù)庫,實現(xiàn)對數(shù)據(jù)的管理。而用戶對存儲的數(shù)據(jù)進行查詢修改等操作,最方便的方法就是在Web頁面里實現(xiàn),因此需要搭建一個Web服務(wù)器,使用戶可以通過Web頁面來控制這些工作的完成并實現(xiàn)對數(shù)據(jù)的操作訪問。
設(shè)備管理提供了統(tǒng)一的讀寫器接口程序,可兼容性地控制多種類型讀寫器的工作;數(shù)據(jù)管理完成了數(shù)據(jù)的過濾、存儲,并利用嵌入式Web服務(wù)器對數(shù)據(jù)進行查詢和修改;嵌入式Web服務(wù)器是嵌入式技術(shù)和網(wǎng)絡(luò)技術(shù)結(jié)合的產(chǎn)物,把Internet中的Web服務(wù)器進行一定的裁剪,嵌入到設(shè)備中,從而可以利用嵌入式Web服務(wù)器對設(shè)備進行操作、管理。本文擬使用GoAheadWebServer,它是一個源碼免費、可以運行在多個平臺的嵌入式Web服務(wù)器,并支持ASP、嵌入式JavaScript和標準的CGI執(zhí)行,能較好地滿足需求。
2.2數(shù)據(jù)的解析和過濾
讀寫器從標簽讀取大量的未經(jīng)處理的數(shù)據(jù),一般來說讀取到的數(shù)據(jù)并非完全有用的標簽數(shù)據(jù),需要對其進行提取、解析,以得到有用的信息。數(shù)據(jù)在傳輸過程中不可避免地會受到外界的干擾而發(fā)生錯誤,因此數(shù)據(jù)必須進行過濾,將過濾后的數(shù)據(jù)再進行存儲[4]。
標簽數(shù)據(jù)一般都是二進制編碼,讀取后需要將二進制編碼數(shù)據(jù)轉(zhuǎn)換成unicode數(shù)據(jù)。
在標簽讀取過程中實現(xiàn)標簽的二進制位編碼到unicode編碼的轉(zhuǎn)換,在標簽數(shù)據(jù)處理環(huán)節(jié)則根據(jù)轉(zhuǎn)換獲得的標簽unicode編碼以及過濾條件對標簽進行過濾,為信息應(yīng)用層提供有意義的標簽信息。
過濾規(guī)則可以通過Web頁面進行設(shè)置,設(shè)置信息存儲到過濾規(guī)則配置文件中。進行過濾時,過濾器讀取配置文件并應(yīng)用于過濾規(guī)則。
3數(shù)據(jù)存儲與管理的實現(xiàn)
3.1構(gòu)建嵌入式數(shù)據(jù)庫
SQLite3是輕型、免費和開源的嵌入式數(shù)據(jù)庫,支持絕大多數(shù)標準的SQL92語句,工作速度快,可以滿足中間件數(shù)據(jù)處理的實時要求。因此選用SQLite3數(shù)據(jù)庫在大小和功能方面是一個理想的折中。
SQLite3嵌入式數(shù)據(jù)庫提供了源碼,在硬件平臺上對源碼進行交叉編譯即可實現(xiàn)移植。編譯后,生成了大小為93KB的sqlite3可執(zhí)行文件和大小為991KB的sqlite3動態(tài)鏈接庫libsqlite3.so。
3.2數(shù)據(jù)模型在數(shù)據(jù)庫中的實現(xiàn)
嵌入式數(shù)據(jù)庫中以單個庫文件形式進行數(shù)據(jù)存儲,數(shù)據(jù)庫文件可以在不同的操作系統(tǒng)平臺下使用而無需轉(zhuǎn)換。數(shù)據(jù)庫文件內(nèi)部采用表數(shù)據(jù)頁和索引數(shù)據(jù)頁兩種存儲結(jié)構(gòu)進行組織。用戶定義的臨時表和系統(tǒng)中的臨時表(用于排序、分組等操作)以臨時數(shù)據(jù)庫文件形式進行管理。
在開發(fā)板上,使用上一步生成的sqlite3可執(zhí)行文件來生成本系統(tǒng)所需要的數(shù)據(jù)庫表。Sqlite3的數(shù)據(jù)庫與Access數(shù)據(jù)庫類似都采用了單文件的模式,為此生成了一個名為rfid的數(shù)據(jù)庫文件,根據(jù)項目需求規(guī)劃必須的數(shù)據(jù)表。
直接在命令行下敲入“sqlite3rfid;”即可生成rfid數(shù)據(jù)庫,并得到提示符“sqlite3〉”,通過輸入SQL語句即可建立所需的表:
createtablerfid(Numberintegerprimarykey,Objectsvarchar(),Organizationsvarchar(),Actionsvarchar(),ActionItemvarchar(),ObjectOrganizationvarchar(),Arrangementvarchar());
.quit;
這里只考慮了基本屬性,可以為數(shù)據(jù)表做擴展表格實現(xiàn)其額外的屬性。
參照SQLDML的語法,該模型的邏輯結(jié)構(gòu)主要元素描述如下:
(1)Objects:Objects(EPCPrimaryKey,name,deseription),記錄系統(tǒng)及隨裝信息。
(2)Organizations:Organizations(organizationIDPrimaryKey,organization),標識裝備在生命周期內(nèi)裝配單位及編制序列。
(3)Actions:Actions(actionIDPrimaryKey,actType),標識業(yè)務(wù)流程中的事務(wù)類型。其中,actionID為事務(wù)類型標識碼;actType表示事務(wù)類型的名稱。
(4)Arrangement:Arrangement(IDPrimaryKey,EPC,parentEPC,QtyOfChild,organizationID,stime,etime),Arran-
gement關(guān)系是本數(shù)據(jù)模型的關(guān)鍵,反映了物品的物理層次關(guān)系。其中,parentEPC標識關(guān)于該EPC的上一層次的EPC編碼;QtyOfChild記錄了由該EPC標識的下一層次的物品數(shù)量;stime和etime分別標識該層次關(guān)系的發(fā)生和結(jié)束時間。
(5)ActionItem:ActionItem(IDPrimaryKey,actionID,EPCreferencesObjects,timestamp):ID標識每個發(fā)生的事務(wù);timestamp為該事務(wù)發(fā)生的時間。
(6)ObjectOrganization(IDPrimaryKey,EPCreffereneesObjects,organizationID,timestamp):ID標識裝備的調(diào)撥、調(diào)整及編制戰(zhàn)斗序列的變化。
SQLite數(shù)據(jù)庫提供了豐富的C語言API接口函數(shù),使得對數(shù)據(jù)庫的操作十分方便。本系統(tǒng)只需要以下3個核心函數(shù)就可以實現(xiàn)連接數(shù)據(jù)庫、處理查詢等操作:
intsqlite3_open(constchar*db,intmode,char**errmsg);
intsqlite3_close(sqlite*db);
intsqlite3_exec(sqlite*db,char*sql,int(*callback)(void*,
int,char**,char**),void*parg,char**errmsg);
其中,前2個函數(shù)用于打開與關(guān)閉數(shù)據(jù)庫,第3個函數(shù)sqlite3_exec()用來處理SQL查詢,此函數(shù)的第2個參數(shù)用來處理一條或多條SQL語句,如果是查詢(SELECT)語句,則查詢結(jié)果的每一條記錄都必須調(diào)用第3個參數(shù)的Callback函數(shù),第4個參數(shù)則為Callback函數(shù)的第一個參數(shù)指針;如果不是查詢語句,則第3、4個參數(shù)為NULL。所有SQL執(zhí)行完畢后返回0,否則返回錯誤代碼,可通過第5個參數(shù)值來查看詳細錯誤信息。
使用sqlite3_mprintf函數(shù)將數(shù)據(jù)段的值添加到SQL語句中,然后通過sqlite3_exec函數(shù)執(zhí)行該SQL語句把標簽數(shù)據(jù)插入到數(shù)據(jù)庫中。
3.3數(shù)據(jù)的訪問操作
GoAheadWebServer是一款面向嵌入式系統(tǒng)的Web服務(wù)器,作為系統(tǒng)中數(shù)據(jù)轉(zhuǎn)發(fā)和模塊承載平臺。向Wince系統(tǒng)中移植比較簡單,在VisualC++6.0打開CE子目錄下的工作空間webs.dsw,將生成的webs.exe和所需的Web頁面導(dǎo)入WinCE系統(tǒng)中相應(yīng)位置即可。需要注意的是:要設(shè)置計算機系統(tǒng)環(huán)境變量Path,使其包含include和lib,確保包含CE、UEMF、webs和UNICODE的特征值被定義在內(nèi)。
在使用GoAheadWebServer前,需要對GoAheadWebServer進行配置:
(1)在瀏覽器輸入地址時,服務(wù)器返回某一頁面,該頁面通過在main.c文件中的initWebs函數(shù)進行設(shè)定,設(shè)定語句為:
websRedirec(wp,T("index.htm"));
(2)當瀏覽器訪問某一地址下的目錄時,服務(wù)器將返回該目錄下的缺省頁面,通過main.c文件中的websHomePageHandler函數(shù)進行設(shè)定,設(shè)定語句為:
websSetDefaultPage(T("default.asp"));
用戶在頁面對過濾規(guī)則進行配置后,CGI程序?qū)⑴渲媒Y(jié)果寫入配置文件filter.conf中。在進行數(shù)據(jù)過濾時,過濾器將會讀取此配置文件得到相應(yīng)的過濾規(guī)則對數(shù)據(jù)進行過濾。
首先使用C語言API調(diào)用sqlite3_open()打開數(shù)據(jù)庫,然后調(diào)用sqlite3_exec()函數(shù)來執(zhí)行SQL語句完成對數(shù)據(jù)庫的讀寫更新等操作,最后執(zhí)行sqlite3_close()關(guān)閉數(shù)據(jù)庫。
通常,CGI應(yīng)用程序?qū)?zhí)行結(jié)果輸出到標準輸出(stdout),WebServer從CGI應(yīng)用程序中的標準輸出中讀取信息,并將這些信息返回給客戶端[5]。因此,在程序中如果要將SQL查詢結(jié)果輸出給客戶。CGI應(yīng)用程序中可以使用prinf()函數(shù)將查詢結(jié)果以HTML的形式輸出到標準輸出,進而Web服務(wù)器向客戶端返回動態(tài)頁面,這樣就實現(xiàn)了用戶、WebServer與SQLite3嵌入式數(shù)據(jù)的交互。
通過編譯,webs.ere最后將以操作系統(tǒng)的一個子進程運行,可與操作系統(tǒng)內(nèi)的其他進程進行通信及數(shù)據(jù)傳輸,從而實現(xiàn)操作系統(tǒng)內(nèi)部程序間的相互交互作用。
本文研究了針對裝備信息的RFID數(shù)據(jù)結(jié)構(gòu)模型,使用SQLite數(shù)據(jù)庫實現(xiàn)標簽數(shù)據(jù)的存儲、過濾,并設(shè)計了簡單易用的Web界面,只需通過瀏覽器進行簡單的操作,就可完成對過濾規(guī)則的設(shè)置以及與數(shù)據(jù)的交互等功能。今后的工作是進行更多的頁面優(yōu)化設(shè)計,將使其更加有實際應(yīng)用價值。
特別推薦
- 克服碳化硅制造挑戰(zhàn),助力未來電力電子應(yīng)用
- 了解交流電壓的產(chǎn)生
- 單結(jié)晶體管符號和結(jié)構(gòu)
- 英飛凌推出用于汽車應(yīng)用識別和認證的新型指紋傳感器IC
- Vishay推出負載電壓達100 V的業(yè)內(nèi)先進的1 Form A固態(tài)繼電器
- 康佳特推出搭載AMD 銳龍嵌入式 8000系列的COM Express緊湊型模塊
- 村田推出3225尺寸車載PoC電感器LQW32FT_8H系列
技術(shù)文章更多>>
- 高性能碳化硅隔離柵極驅(qū)動器如何選型,一文告訴您
- 貿(mào)澤電子新品推薦:2024年第三季度推出將近7000個新物料
- 大聯(lián)大世平集團的駕駛員監(jiān)控系統(tǒng)(DMS)方案榮獲第六屆“金輯獎之最佳技術(shù)實踐應(yīng)用”獎
- X-CUBE-STL:支持更多STM32, 揭開功能安全的神秘面紗
- 觸摸式OLED顯示屏有望重新定義汽車用戶界面
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
音頻IC
音頻SoC
音頻變壓器
引線電感
語音控制
元件符號
元器件選型
云電視
云計算
云母電容
真空三極管
振蕩器
振蕩線圈
振動器
振動設(shè)備
震動馬達
整流變壓器
整流二極管
整流濾波
直流電機
智能抄表
智能電表
智能電網(wǎng)
智能家居
智能交通
智能手機
中電華星
中電器材
中功率管
中間繼電器