如何進行面向紡織MES系統的RFID嵌入式數據采集終端設計?
4 嵌入式數據采集終端軟件設計
生產數據采集系統中終端應用軟件需按任務進行規劃和設計,最關鍵的幾個任務為:系統初始化以及主程序、RFID讀寫器信息處理任務、TCP/IP通信任務、人機界面管理、狀態檢測和控制。大部分程序功能模塊都是采用中斷方式完成的,這樣可以使程序迅速響應其他外部事件,及時準確的對外設進行控制。軟件系統主程序流程如圖7所示。

圖7 數據采集終端系統軟件主程序流程
4.1 射頻識別單元軟件結構設計
在數據采集系統中,采用RFID技術實現底層生產數據的識別與控制。作為軟件系統的核心,將詳細說明射頻識別單元射頻標簽與讀寫器之間數據通信的軟件設計。
射頻識別數據采集部分主要包括射頻識別芯片初始化、標簽查詢、防沖突檢測、標簽卡選擇、認證操作、數據塊讀寫等。讀寫終端與標簽卡的通信整體流程如圖8所示。
圖8 讀寫終端與標簽卡通信流程
4.2 MF RC522對標簽的尋卡程序設計流程
當MF RC522初始化結束后,第1步工作就是尋找感應區內是否有滿足ISO/IEC 14443A標準的射頻卡。尋卡程序的流程如圖9所示。

圖9 MF RC522對標簽的尋卡程序流程
流程中尋卡命令有2個:0x52表示尋找感應區內所有符合14443A的標準卡,0x26表示尋找未進入休眠狀態的卡。返回值2個字節的卡片類型數據,0x4400表示Mifare UhraLight卡,0x0400表示Mifare One(S50)卡,0x0200表示Mifare One(S70)卡,0x0800表示Mifare Pro(X)卡,0x4403表示Mifare DESFire卡。
4.3 射頻標簽防碰撞程序設計流程
當MF RC522的感應區內同時有多個射頻卡時,需要進行防碰撞處理。ISO/IEC 1443A的防碰撞指令格式以及防碰撞程序流程如圖10所示。

圖10 MF RC522對標簽的防碰撞程序流程
圖10中,防碰撞指令0x93表示射頻卡的UID只有4個字節,NVM表示UID中有效的比特數,如當NVM為0x20時表示UID的有效比特數為32 bit。BCC只有當NVM為0x70時(即UID的4個字節都正確)才存在,表示此時整個UID都被識別,最終結果是要取得卡片的UID,防碰撞流程結束。
4.4 讀射頻標簽程序設計流程
在對卡片的塊區進行操作前,為提高安全性,必須對卡片進行密鑰驗證。當密鑰選擇為0TImes;60時表示驗證密鑰A;當密鑰選擇為0TImes;61時表示驗證密鑰B。當密鑰驗證碼寫入FIFO并發送出去后如果無錯誤返回值,可對射頻標簽進行讀寫操作。
射頻標簽讀操作指令先要計算讀操作指令的CRC校驗碼(2個字節),最后把這2個字節的指令和2個字節的CRC校驗碼發送到FIFO。當返回值無CRC錯誤并得到18個字節的數據時,說明讀操作成功。在這18個字節中只有16個字節是有效的,剩下的2個字節為填充字節。讀操作流程如圖11所示。

圖11 讀標簽操作流程
4.5 寫射頻標簽程序設計流程
寫操作指令包含2次握手過程。第1次先往FIFO內送入寫操作指令,等待卡片的應答信號,如果接收到4個比特的應答信號1010,則可以發送數據;否則說明塊區未準備好,必須等待塊區準備好后再寫數據。
數據寫入以后同樣等待卡片的應答信號,如果接收到4個比特的應答信號1010,則說明寫入成功;否則說明寫入失敗。寫操作的流程如圖12所示。

圖12 寫標簽操作流程
5 系統測試
為便于測試RFID數據采集終端數據讀寫的可靠性,設計開發了簡單的PC端上位機演示程序。該軟件基于Visual Basic程序設計語言開發,系統測試直觀、方便。軟件的主要功能是測試RFID讀寫器與射頻標簽之間數據通信的正確性和可靠性,如圖13所示。

圖13 射頻標簽讀寫測試
6 結束語
本文面向紡織企業信息化改造,設計了基于RFID技術的生產制造執行系統總體框架結構,并針對企業現有生產線數據采集終端的一些不足,構建了基于RFID 技術、嵌入式技術與Internet技術3者相結合的數據采集終端系統。經測試,該系統可以有效地解決目前生產領域數據采集處理的問題,在控制系統成本的同時,獲得更高的安全性、可靠性和便捷性,實現數據采集、生產管理以及企業信息控制的無縫集成。
評論