新聞中心

EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于RFID的農(nóng)產(chǎn)品生產(chǎn)線讀寫器設(shè)計

基于RFID的農(nóng)產(chǎn)品生產(chǎn)線讀寫器設(shè)計

作者: 時間:2011-10-09 來源:網(wǎng)絡(luò) 收藏
讀取系統(tǒng)軟件工作流程:

本文引用地址:http://butianyuan.cn/article/155650.htm


圖4 軟件系統(tǒng)工作流程

1、嵌入式數(shù)據(jù)庫操作模塊

在本項目中使用了Sqlite3 作為系統(tǒng)的嵌入式數(shù)據(jù)庫。嵌入式數(shù)據(jù)庫是整個系統(tǒng)的重要組成部分, 主要負擔了采集基本數(shù)據(jù)的本地存儲, 條碼閱讀信息的初步存儲和快速查詢, 工作日志的保存, 還能和網(wǎng)絡(luò)通信模塊配合實現(xiàn)網(wǎng)絡(luò)主/ 從數(shù)據(jù)庫的同步, 在主服務(wù)器崩潰的情況下, 依然可以通過整理所有嵌入式數(shù)據(jù)庫的數(shù)據(jù)進行大部分數(shù)據(jù)的恢復, 增加了系統(tǒng)的可靠性, 此數(shù)據(jù)庫采用了單數(shù)據(jù)文件, 能夠支持大部分SQL 92標準的數(shù)據(jù)庫操作語句, 支持事務(wù)功能, 通過擴展網(wǎng)絡(luò)操作接口函數(shù), 達到了和后臺數(shù)據(jù)庫進行通信和交換數(shù)據(jù)的目的。

2、網(wǎng)絡(luò)通信模塊

本系統(tǒng)的特色就是通過嵌入式Linux 操作系統(tǒng)的網(wǎng)絡(luò)底層支持, 以多種網(wǎng)絡(luò)傳輸途徑, 將數(shù)據(jù)和后臺數(shù)據(jù)服務(wù)器進行數(shù)據(jù)傳輸。在本系統(tǒng)的網(wǎng)絡(luò)部分中, 在局域網(wǎng)內(nèi)利用Linux 系統(tǒng)的提供的TCP/IP 協(xié)議支持, 在編程中采用了動態(tài)與服務(wù)器建立連接的方法, 在讀取到標簽信息并解碼出有效信息的時候, 向服務(wù)器相應(yīng)端口發(fā)送相應(yīng)的Socket 請求信息, 服務(wù)器端接受到請求后建立連接并新建Socket 端口來和終端進行通信; 只有在讀取數(shù)據(jù)的時候數(shù)據(jù)庫和終端間才產(chǎn)生數(shù)據(jù)傳輸和占用服務(wù)器端資源, 從而降低了網(wǎng)絡(luò)占有率和服務(wù)器端的負荷, 提高了網(wǎng)絡(luò)通信的效率。

3、 協(xié)議解析模塊

協(xié)議解析模塊負責將發(fā)送的命令參數(shù)加入包頭等信息,并將收到的標簽回傳的信息進行解包, 通過對信息的解包, 能夠得到盤存或讀寫的相關(guān)信息。MPR6000 支持的 Gen2命令包括Read, Write, Kill , Erase, Lock。命令都由一個字符串構(gòu)成, 其結(jié)構(gòu)如下:
SOF> Node> Length> Status> Payload> CRC>
分別由開始幀、節(jié)點、總長度、狀態(tài)、標簽信息、CRC 這幾部分組成。

舉例來說, Gen2 盤點命令的操作碼為01h, 操作會返回在讀寫域內(nèi)全部的符合讀取條件的Gen2 標簽, 而經(jīng)過反碰撞模塊處理后, 得到的數(shù)據(jù)幀由標簽信息和盤存總結(jié)兩部分組成:

即 回復信息>= [ 標簽回復>] 盤存總結(jié)>
標簽回復> = EPC> 訪問回復>
EPC> = 標簽ID 長度> 協(xié)議控制字> 標簽ID>
舉例, 當使用天線B 并且RF 的功率為22 時, 讀取所有SL 為NOT SET, S3 flag 為A 的Gen2 標簽, 此時的起始Q 為1( 即2 個時隙) 。
60 01 01 16 02 03 00 01
如果當前射頻范圍內(nèi)的標簽有一個64 位的Gen2 標簽1的ID 為“ 0102 0304 0506 0708”。
而且有一個96 位Gen2 標簽2 的ID 為“ 1211 1009 08070605 0403 0201”。

可能讀寫模塊會收到這樣一個包, 完整內(nèi)容如下:
04 28 00 01 02 03 04 05 06 07 08 07 08 30 00 12 11 10 09 08 07 06 05 04 03 02 01 00 02 00 16 00 01 00 00 00 02 00 09
現(xiàn)在對這個包進行解析, 根據(jù)協(xié)議規(guī)定 接受包> = [標簽回復>] 盤存總結(jié)>
= [04 28 00 01 02 03 04 05 06 07 08> 07 08 30 00 12 11 10 09 08 07 06 05 04 03 02 01>] 00 02 00 16 00 01 00 00 00 02 00 09>

標簽1 回復> = 標簽1 ID 長度> 協(xié)議控制字> 標簽1 ID>
標簽1 ID 長度> = 04> = 4- word = 64 Bit 標簽ID
協(xié)議控制字> = 28 00>, 從而得出 標簽1 ID> =0102 0304 0506 0708>
標簽2 回復> = 標簽2 ID 長度> 協(xié)議控制字> 標簽2 ID>

標簽1 ID 長度> = 06> = 6- word = 96 Bit 標簽ID
協(xié)議控制字> = 30 00>, 得出 標簽2 ID> = 1211 1009 0807 0605 0403 0201>

而又有 盤存總結(jié)>= 標簽數(shù)> 時隙數(shù)>EPC CRC 錯誤> 回復CRC 錯誤> 沖突次數(shù)> 通信輪數(shù)>
所以得到 標簽數(shù)> = 2, 時隙數(shù)> = 22, EPC CRC 錯誤> = 1, 回復CRC 錯誤> = 0, 沖突次數(shù)> = 2, 通信輪數(shù)> = 9

在提取標簽信息后, 則可以將所獲得的標簽信息送到嵌入式數(shù)據(jù)庫模塊進行本地暫存, 同時通過網(wǎng)絡(luò)模塊上傳至后臺服務(wù)器做記錄, 中間的接口函數(shù)部分就不詳細給出了。

四、總結(jié)與展望

本文中描述的嵌入式RFID 終端讀取器, 在農(nóng)業(yè)產(chǎn)品包裝中進行了實用, 基本滿足了RFID 系統(tǒng)對前端RFID 標簽數(shù)據(jù)采集、處理、通信方面的要求, 在功能上和穩(wěn)定性方面已經(jīng)能夠替代專用RF , 因為采用了免費的開源Linux 操作系統(tǒng)和開源數(shù)據(jù)庫Sqlite , 大大降低了總體成本, 特別適合在成本敏感系數(shù)高的生產(chǎn)和監(jiān)控中使用。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉