【深入探討】嵌入式RFID讀寫器的內部數據管理
發布時間:2014-07-09 責任編輯:echotang
【導讀】不同於普通物流領域,由於裝備信息較為複雜,單一普通標簽難以勝任承載所需全部信息。考慮經濟和實用性,采用不同頻率多標簽方式才能較好滿足要求。因此,本文針對裝備信息的RFID數據結構重點進行了分析,並詳細研究了嵌入式讀寫器內部數據的存儲和管理,以滿足裝備保障信息化需求。
在保障裝備裝備時,訓練使用、檢修、加裝改造等記錄用傳統手工操作,管理人員必須對進裝備名稱、隨裝配套類型及數量、出廠單位、出廠日期以及其他眾多屬性進行逐一登記,不但工作效率低、而且容易出差錯,成為製約工作進度的瓶頸。如果裝備信息管理運用RFID標簽取代紙質履曆表,記錄裝備從出廠、配備、動用、維修、保管、事故、加裝改造、退(tui)役(yi)報(bao)廢(fei)等(deng)全(quan)生(sheng)命(ming)周(zhou)期(qi)的(de)履(lv)曆(li)信(xin)息(xi),手(shou)持(chi)讀(du)寫(xie)器(qi)讀(du)取(qu)射(she)頻(pin)標(biao)簽(qian)及(ji)信(xin)息(xi)記(ji)錄(lu)裝(zhuang)置(zhi)每(mei)日(ri)信(xin)息(xi),可(ke)以(yi)幫(bang)助(zhu)操(cao)作(zuo)人(ren)員(yuan)及(ji)時(shi)掌(zhang)握(wo)裝(zhuang)備(bei)工(gong)作(zuo)情(qing)況(kuang),為(wei)維(wei)修(xiu)保(bao)障(zhang)人(ren)員(yuan)提(ti)供(gong)信(xin)息(xi)支(zhi)持(chi)。
1RFID數據模型研究
1.1RFID數據特性
RFID數據模型是管理RFID數據的基礎。從總體上RFID應用有著共同的需求特點:
(1)識別:RFID標簽唯一地標識該物體。
(2)位置:一個位置可以是一個地理位置,也可以是有背景含義的特殊位置,如倉庫、靶場等。
(3)關係:RFID應ying用yong的de另ling一yi個ge關guan鍵jian概gai念nian是shi聚ju合he,即ji對dui象xiang之zhi間jian形xing成cheng的de關guan係xi。一yi種zhong常chang見jian聚ju合he情qing況kuang是shi包bao含han關guan係xi,即ji在zai物wu體ti運yun動dong過guo程cheng中zhong,被bei包bao含han的de物wu體ti與yu外wai包bao裝zhuang物wu體ti有you相xiang同tong的de運yun動dong路lu徑jing等deng特te性xing。另ling一yi個ge集ji合he情qing況kuang是shi協xie作zuo,即ji貼tie有you標biao簽qian的de物wu體ti之zhi間jian有you一yi定ding的de關guan係xi[1],如某型導彈射擊訓練由發射車與檢測車共同完成,則發射車與檢測車之間有協作關係。
1.2數據模型
本文重點是利用數據庫技術實現裝備數據信息的層次化管理。係統中涉及的數據主要有靜態數據和動態數據兩種類型。
1.2.1靜態數據
靜態數據是有關固定信息、業務規則以及係統設置的數據,不輕易隨時間變更[2]。在本係統中,靜態數據主要包括:
(1)Objects:所有使用射頻標簽進行標識係統,包括係統及隨裝配件的名稱、型號、出廠單位、出產年份等信息。
(2)Organizations:裝備在生命周期(出廠到退役報廢之間的時間)內裝配變動信息,包括裝配單位、裝配時間、戰鬥序列等信息。
(3)Actions:事務處理類型。包括重大活動記錄、技術檢查、維修、加裝改裝等信息。
1.2.2動態數據
動態數據反映了係統運作中的事務過程,與時間、空間密切相關。動態數據主要包括:Arrangement,用於描述裝備實體(Objects)與狀態的層次關係;ObjectOrganization,用於描述裝備實體(Objects)在某時間內的調撥、調整;ActionItem,用於描述裝備處理情況。
1.2.3數據模型的建立
如果有靜態關係,則根據ER模型的映射關係,映射成表即可[3]。對於兩個實體之間的基於狀態的關係,則在兩個實體表的主鍵之間加上時間間隔(stime,etime)組成,其中時間間隔代表了關係或者狀態存在的生命周期。基於事件的動態關係,由映射在兩個表的主鍵加上時間戳屬性timestamp組成,這個時間戳代表了時間發生的時間點。
2基於嵌入式的RFID讀寫器數據管理
2.1係統的設計思路
根據以上分析,數據來源主要分為兩類:一類是固定的裝備身份信息,這些信息是一般不會隨時間變化,數據量比較小;另一類是動態的裝備壽命信息,通常是記錄日常操作的起始時間和裝備調撥、調整,數據量稍大且需要重複讀寫。
為此,以某型車輛裝備為例,采用一種13.56MHz的無源標簽存儲裝備身份信息,采用頻率為2.4GHz的有源標簽存儲動態壽命信息。本設計采用WindowsCE作為操作係統,通過RFID射頻收發模塊讀取所需求的數據,對數據進行解析、提取、存儲,並構建嵌入式SQLite數據庫,實現對數據的管理。而用戶對存儲的數據進行查詢修改等操作,最方便的方法就是在Web頁麵裏實現,因此需要搭建一個Web服務器,使用戶可以通過Web頁麵來控製這些工作的完成並實現對數據的操作訪問。
設備管理提供了統一的讀寫器接口程序,可兼容性地控製多種類型讀寫器的工作;數據管理完成了數據的過濾、存儲,並利用嵌入式Web服務器對數據進行查詢和修改;嵌入式Web服務器是嵌入式技術和網絡技術結合的產物,把Internet中的Web服務器進行一定的裁剪,嵌入到設備中,從而可以利用嵌入式Web服務器對設備進行操作、管理。本文擬使用GoAheadWebServer,它是一個源碼免費、可以運行在多個平台的嵌入式Web服務器,並支持ASP、嵌入式JavaScript和標準的CGI執行,能較好地滿足需求。
2.2數據的解析和過濾
讀寫器從標簽讀取大量的未經處理的數據,一般來說讀取到的數據並非完全有用的標簽數據,需要對其進行提取、解(jie)析(xi),以(yi)得(de)到(dao)有(you)用(yong)的(de)信(xin)息(xi)。數(shu)據(ju)在(zai)傳(chuan)輸(shu)過(guo)程(cheng)中(zhong)不(bu)可(ke)避(bi)免(mian)地(di)會(hui)受(shou)到(dao)外(wai)界(jie)的(de)幹(gan)擾(rao)而(er)發(fa)生(sheng)錯(cuo)誤(wu),因(yin)此(ci)數(shu)據(ju)必(bi)須(xu)進(jin)行(xing)過(guo)濾(lv),將(jiang)過(guo)濾(lv)後(hou)的(de)數(shu)據(ju)再(zai)進(jin)行(xing)存(cun)儲(chu)[4]。
標簽數據一般都是二進製編碼,讀取後需要將二進製編碼數據轉換成unicode數據。
在標簽讀取過程中實現標簽的二進製位編碼到unicode編碼的轉換,在標簽數據處理環節則根據轉換獲得的標簽unicode編碼以及過濾條件對標簽進行過濾,為信息應用層提供有意義的標簽信息。
過濾規則可以通過Web頁麵進行設置,設置信息存儲到過濾規則配置文件中。進行過濾時,過濾器讀取配置文件並應用於過濾規則。
3數據存儲與管理的實現
3.1構建嵌入式數據庫
SQLite3是輕型、免費和開源的嵌入式數據庫,支持絕大多數標準的SQL92語句,工作速度快,可以滿足中間件數據處理的實時要求。因此選用SQLite3數據庫在大小和功能方麵是一個理想的折中。
SQLite3嵌入式數據庫提供了源碼,在硬件平台上對源碼進行交叉編譯即可實現移植。編譯後,生成了大小為93KB的sqlite3可執行文件和大小為991KB的sqlite3動態鏈接庫libsqlite3.so。
3.2數據模型在數據庫中的實現
qianrushishujukuzhongyidangekuwenjianxingshijinxingshujucunchu,shujukuwenjiankeyizaibutongdecaozuoxitongpingtaixiashiyongerwuxuzhuanhuan。shujukuwenjianneibucaiyongbiaoshujuyehesuoyinshujuyeliangzhongcunchujiegoujinxingzuzhi。yonghudingyidelinshibiaohexitongzhongdelinshibiao(用於排序、分組等操作)以臨時數據庫文件形式進行管理。
在開發板上,使用上一步生成的sqlite3可執行文件來生成本係統所需要的數據庫表。Sqlite3的數據庫與Access數據庫類似都采用了單文件的模式,為此生成了一個名為rfid的數據庫文件,根據項目需求規劃必須的數據表。
直接在命令行下敲入“sqlite3rfid;”即可生成rfid數據庫,並得到提示符“sqlite3〉”,通過輸入SQL語句即可建立所需的表:
createtablerfid(Numberintegerprimarykey,Objectsvarchar(),Organizationsvarchar(),Actionsvarchar(),ActionItemvarchar(),ObjectOrganizationvarchar(),Arrangementvarchar());
.quit;
這裏隻考慮了基本屬性,可以為數據表做擴展表格實現其額外的屬性。
參照SQLDML的語法,該模型的邏輯結構主要元素描述如下:
(1)Objects:Objects(EPCPrimaryKey,name,deseription),記錄係統及隨裝信息。
(2)Organizations:Organizations(organizationIDPrimaryKey,organization),標識裝備在生命周期內裝配單位及編製序列。
(3)Actions:Actions(actionIDPrimaryKey,actType),標識業務流程中的事務類型。其中,actionID為事務類型標識碼;actType表示事務類型的名稱。
(4)Arrangement:Arrangement(IDPrimaryKey,EPC,parentEPC,QtyOfChild,organizationID,stime,etime),Arran-
gement關係是本數據模型的關鍵,反映了物品的物理層次關係。其中,parentEPC標識關於該EPC的上一層次的EPC編碼;QtyOfChild記錄了由該EPC標識的下一層次的物品數量;stime和etime分別標識該層次關係的發生和結束時間。
(5)ActionItem:ActionItem(IDPrimaryKey,actionID,EPCreferencesObjects,timestamp):ID標識每個發生的事務;timestamp為該事務發生的時間。
(6)ObjectOrganization(IDPrimaryKey,EPCreffereneesObjects,organizationID,timestamp):ID標識裝備的調撥、調整及編製戰鬥序列的變化。
SQLite數據庫提供了豐富的C語言API接口函數,使得對數據庫的操作十分方便。本係統隻需要以下3個核心函數就可以實現連接數據庫、處理查詢等操作:
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個函數用於打開與關閉數據庫,第3個函數sqlite3_exec()用來處理SQL查詢,此函數的第2個參數用來處理一條或多條SQL語句,如果是查詢(SELECT)語句,則查詢結果的每一條記錄都必須調用第3個參數的Callback函數,第4個參數則為Callback函數的第一個參數指針;如果不是查詢語句,則第3、4個參數為NULL。所有SQL執行完畢後返回0,否則返回錯誤代碼,可通過第5個參數值來查看詳細錯誤信息。
使用sqlite3_mprintf函數將數據段的值添加到SQL語句中,然後通過sqlite3_exec函數執行該SQL語句把標簽數據插入到數據庫中。
3.3數據的訪問操作
GoAheadWebServer是一款麵向嵌入式係統的Web服務器,作為係統中數據轉發和模塊承載平台。向Wince係統中移植比較簡單,在VisualC++6.0打開CE子目錄下的工作空間webs.dsw,將生成的webs.exe和所需的Web頁麵導入WinCE係統中相應位置即可。需要注意的是:要設置計算機係統環境變量Path,使其包含include和lib,確保包含CE、UEMF、webs和UNICODE的特征值被定義在內。
在使用GoAheadWebServer前,需要對GoAheadWebServer進行配置:
(1)在瀏覽器輸入地址時,服務器返回某一頁麵,該頁麵通過在main.c文件中的initWebs函數進行設定,設定語句為:
websRedirec(wp,T("index.htm"));
(2)當瀏覽器訪問某一地址下的目錄時,服務器將返回該目錄下的缺省頁麵,通過main.c文件中的websHomePageHandler函數進行設定,設定語句為:
websSetDefaultPage(T("default.asp"));
用戶在頁麵對過濾規則進行配置後,CGI程序將配置結果寫入配置文件filter.conf中。在進行數據過濾時,過濾器將會讀取此配置文件得到相應的過濾規則對數據進行過濾。
首先使用C語言API調用sqlite3_open()打開數據庫,然後調用sqlite3_exec()函數來執行SQL語句完成對數據庫的讀寫更新等操作,最後執行sqlite3_close()關閉數據庫。
通常,CGI應用程序將執行結果輸出到標準輸出(stdout),WebServer從CGI應用程序中的標準輸出中讀取信息,並將這些信息返回給客戶端[5]。因此,在程序中如果要將SQL查詢結果輸出給客戶。CGI應用程序中可以使用prinf()函數將查詢結果以HTML的形式輸出到標準輸出,進而Web服務器向客戶端返回動態頁麵,這樣就實現了用戶、WebServer與SQLite3嵌入式數據的交互。
通過編譯,webs.ere最(zui)後(hou)將(jiang)以(yi)操(cao)作(zuo)係(xi)統(tong)的(de)一(yi)個(ge)子(zi)進(jin)程(cheng)運(yun)行(xing),可(ke)與(yu)操(cao)作(zuo)係(xi)統(tong)內(nei)的(de)其(qi)他(ta)進(jin)程(cheng)進(jin)行(xing)通(tong)信(xin)及(ji)數(shu)據(ju)傳(chuan)輸(shu),從(cong)而(er)實(shi)現(xian)操(cao)作(zuo)係(xi)統(tong)內(nei)部(bu)程(cheng)序(xu)間(jian)的(de)相(xiang)互(hu)交(jiao)互(hu)作(zuo)用(yong)。
本文研究了針對裝備信息的RFID數據結構模型,使用SQLite數據庫實現標簽數據的存儲、過濾,並設計了簡單易用的Web界jie麵mian,隻zhi需xu通tong過guo瀏liu覽lan器qi進jin行xing簡jian單dan的de操cao作zuo,就jiu可ke完wan成cheng對dui過guo濾lv規gui則ze的de設she置zhi以yi及ji與yu數shu據ju的de交jiao互hu等deng功gong能neng。今jin後hou的de工gong作zuo是shi進jin行xing更geng多duo的de頁ye麵mian優you化hua設she計ji,將jiang使shi其qi更geng加jia有you實shi際ji應ying用yong價jia值zhi。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索




