符合ISO/IEC 18000-6C標準的UHF RFID讀寫器設計
文章出處:http://5052h112.com 作者:林曦, 王敬超, 張春 人氣: 發表時間:2011年10月16日
引言
RFID (radio frequency identification) 是指以識別或數據交換為目的, 利用感應、無線電波或微波進行非接觸雙向通信的自動識別技術, 利用這種技術可以實現對所有物理對象的追蹤和管理。RFID 有著廣泛的應用, 尤其可以對企業的供應鏈進行高效的管理 。
2006 年EPC Gen2 納入ISO/ IEC 18000-6 標準,稱為ISO/ IEC 18000-6C。在超高頻(UHF) 頻段,ISO/ IEC 18000-6 標準中B 類多用于交通領域, 而C類主要用于物流、生產管理和供應鏈管理領域。但C 類標簽的速度高、價格低, 生產銷售的數量遠遠超過B 類, 有逐步替代B 類的趨勢, 成為目前RFID 研究的熱點。
本文介紹了一種符合ISO/ IEC 18000-6C 標準的讀卡器設計。射頻前端模塊采用零中頻收發結構,數字基帶處理模塊在單片機系統上實現, 并通過UART 和USB 與計算機(主機) 進行通信。所設計的讀寫器完成測試后實現了產品化。
1 ISO/ IEC 18000 協議
1、1 ISO/ IEC 18000-6C 協議簡介
ISO/ IEC 18000-6C 在數據傳輸時, 規定先傳輸高字節, 其前向鏈路的調制方式都是ASK, 采用PIE 編碼, 防沖突算法使用基于概率、分槽算法;其后向鏈路是通過反向散射調制技術來實現傳送數據, 可以選擇FM0 編碼或者密勒編碼。為防止在讀寫器獲取標簽信息的過程中, 把敏感數據擴散出去, 6C 標準采用了相對簡單的加密算法, 該算法僅對讀寫器傳送到標簽的數據信息進行加密, 標簽傳送到讀寫器的數據信息不進行加密, 其實現過程是讀寫器首先從標簽獲得一個16 bit寬隨機數, 然后將要傳送的16 bit寬數據與該隨機數進行模2 和計算得到密文, 最后標簽解密獲得讀寫器發送的原始數據。
ISO/ IEC 18000-6C 標準具備多次寫入能力, 并增加了部分存儲空間用于存儲用戶的附加數據; 允許加入安全與訪問控制、傳感器網絡和Ad Hoc 網絡等功能支持; 具有隨時更新標簽內容的能力, 保證標簽始終保存最新信息, 其鏈路頻率范圍可以在40~640 kHz 內調整。在本文的設計中, 考慮到模擬前端的解調能力, 采用了50 kb/ s 的傳輸速率,后向鏈路采用FM0 編碼。
1、2 ISO/ IEC 18000-6C 防沖突機制
詢問機采用圖所示的三個基本操作管理標簽群。每個操作均由一個或一個以上的命令組成。三個基本定義[3 ]如下。
讀卡器/ 標簽操作和標簽狀態
(1) 選擇: 讀寫器選擇標簽群以便于盤存和訪問的過程。詢問機可以用一個或一個以上的選擇命令在盤存之前選擇特定的標簽群。
(2) 盤存: 詢問機識別標簽的過程。詢問機在四個通話的其中一個通話中傳輸查詢命令, 開始一個盤存周期, 一個或一個以上的標簽可以應答, 詢問機檢查某個標簽應答, 請求該標簽發出PC、EPC和CRC216。
(3) 訪問: 詢問機與各標簽交易(讀取或寫入標簽) 的過程。訪問前必須要對標簽進行識別, 訪問由多個命令組成, 其中有些命令執行R ≥T 鏈的一次活頁加密。
為解決防沖突算法問題, 標簽內應具有一個16 位的隨機數發生器。查詢命令含有槽計數器參數Q。收到查詢命令后, 參與標簽應在(0 , 2Q - 1)范圍內挑選一個隨機數值, 并應將該數值載入其計數器, 挑選零數值的標簽應轉換成應答狀態, 并立即應答; 挑選非零數值的標簽應轉換成仲裁狀態,并等待發出查詢調整或查詢命令。
若多個標簽應答但讀卡機通過檢測和解決波形一級的沖突, 可以解決其中一個標簽發來的16 bit密鑰, 未解決的標簽收到錯誤的16 bit 密鑰, 并返回仲裁狀態, 不反向散射其PC、EPC 和CRC216。發出查詢命令啟動一個盤存周期后, 詢問機一般要發出一個或一個以上的查詢調整或重復查詢命令。查詢調整命令重復以前的查詢命令, 可以令Q 增值或減值, 但不將新的標簽引入該盤存周期內。重復查詢以前的查詢命令, 參數不變, 也不將新的標簽引入該盤存周期。處于仲裁或應答狀態的收到查詢調整命令的標簽首先調整Q (增值、減值或保持不變) , 然后在(0 , 2Q - 1) 挑選一個隨機數值, 將該數值載到槽計數器內。挑選零數值的標簽應轉換到應答狀態并立即應答; 挑選非零數值的標簽應轉換到仲裁狀態, 并等待下次命令。
2 讀寫器的硬件設計
采用直接射頻調制的發射機和零中頻結構的接收機實現讀寫器的射頻前端, 發送和接收通路隔離采用多天線技術。頻率綜合器產生所需要的射頻信號, 經過功分器得到兩路載波信號, 分別用于發送和接收通路。發送通路采用OOK調制, 基帶信號通過開關通斷控制載波是否經過功放, 并由天線發送; 接收通路中接收信號先經過功、放大等操作, 然后分別送到混頻器和兩路正交的載波信號進行混頻, 對混頻之后的信號經過濾波、放大、電平比較等操作, 恢復出數字基帶信號。相干解調采用正交I 和Q 兩路接收信號, 由于兩路接收信號相差90°相位, 無論接收信號和混頻信號相位差是多少, 總有一路能解調出有用信號, 避免了盲點的出現。
讀寫器的數字基帶處理模塊主要包括一個單片機、兩個轉換芯片、外部接口以及蜂鳴器。單片機為PHILIPS 公司的P89LPC932A1 , 采用了高性能處理器結構, 指令執行只需2~4 個時鐘周期, 6 倍于標準80C51 , 具有512B 片內附RAM, 8KB FLASH程序存儲器以及增強型UART[4 ] 。外部時鐘頻率為12 MHz。該數字模塊主要完成協議指令處理、防沖突算法以及通信數據的編解碼和校驗。
3 讀寫器的軟件設計
3、1 數字基帶的整體設計
讀寫器數字基帶整體結構包括指令譯碼模塊、串口通信模塊、數據編解碼模塊以及返回數據處理模塊。
讀寫器是在計算機(主機) 監控之下進行工作, 兩者之間形成主從通信模式。讀寫器接收到主機發來的指令, 由譯碼模塊確定讀寫器的具體操作。操作分為兩大類, 一類是對讀寫器操作。包括讀版本信息、設置工作頻率模式(固定頻率和跳變頻率) 和IAP 軟件升級等, 處理完成后將信息通過UART 返回給主機; 另一類是對標簽操作, 其中包括防沖突讀卡號、讀標簽和寫標簽等, 該操作指令通過PIE 編碼器發送后, 等待回波。返回數據通過FM0 解碼器后進入回波處理模塊, 數據正確則通過UART 返回給主機。
3、2 防沖突算法的實現
根據ISO/ IEC 18000-6C 防沖突算法, 針對讀寫器特定的應用要求, 完成防沖突讀卡號。首先讀寫器發送選擇指令, 場區內符合條件的標簽返回就緒狀態; 接著發送查詢指令開啟新盤存周期, 符合條件的標簽進入仲裁狀態; 經過多次查詢系列指令后, 計數器槽變為0 的標簽進入應答狀態并返回16 bit密鑰, 讀寫器解碼正確后, 用其特有16 bit密鑰對其進行讀寫操作, 其他標簽返回就緒狀態, 不再進行防沖突過程, 繼續讀卡; 讀卡完成后, 已讀取標簽退出盤存周期, 對剩下的標簽進行防沖突讀卡; 如果連續5 次沒有回波相應, 則認為場區無卡, 結束防沖突讀卡。
3、3 發送鏈路PIE 編碼器設計
如圖所示, 發送R ≥T 鏈路應采用PIE 編碼。Tari 為詢問機對標簽發信的基準時間間隔, 是數據0 的持續時間。
PIE 編碼波形圖
根據其特點, 編碼過程如下: 每次從讀取緩沖中取8 bit數據, 循環左移, 根據移出位判斷0 或1 并利用分頻模塊進行編碼操作, 左移8 次后, 取下一個數據, 重復上述操作, 直到發送完所有數據, 編碼結束。
3、4 發送鏈路命令流程
以對單標簽進行讀寫操作為例, 讀寫器首先發送選擇命令(標簽進入就緒狀態) , 然后發送查詢系列命令(當槽隨機數為0 時, 標簽進入應答狀態, 返回16 bit隨機密鑰) ; 在解碼16 bit密鑰波形后, 讀寫器發送ACK 命令(標簽判定16 bit密鑰正確, 標簽進入確認狀態, 返回PC 和UII) ; 在確認接收到PC 和UII 數據后, 讀寫器發送Req2RN 命令(如果標簽判定16 bit密鑰正確, 進入保護狀態, 返回新密鑰) ; 讀寫器解碼新的16 bit密鑰之后, 發送讀/ 寫命令(標簽判定16 bit密鑰正確, 標簽保持狀態, 返回讀取數據或者執行對指定數據區寫入數據) ; 讀寫器對接收到的回波信號進行解碼, CRC216 校驗正確后對主機返回對應數據(其中查詢系列命令采用前同步碼為幀頭, 其他用幀同步碼為幀頭)
3、5 CRC16 校驗設計
根據ISO/ IEC 18000-6C 標準的規定, 要編碼CRC216 , 首先要用FFFFh 預先載入整個CRC 寄存器(即C [15∶0 ]) , 然后將編為輸入標簽數據的數據位記錄下來, MSB 優先。將所有數據位記錄下來后, C [15∶0 ]取反得到CRC216 值。要解碼CRC216 , 首先要用FFFFh 預先載入整個CRC 寄存器(C [15∶0 ]) , 然后將收到的數據和CRC25 {數據, CRC216} 位記入數據位, 高字節優先。若C [15∶0 ] = 1D0Fh , 則CRC216 解碼成功。軟件設計中, 即將16 bitCRC 寄存器根據輸入數據長度按位左移, 同時判斷輸入數據位與CRC寄存器最高位是否相異, 如果相異則將寄存器與0x1021 按位相異或。
3、6 FM0 解碼器設計
FM0 編碼是在1 個位窗內采用電平變化來表示邏輯, 如果電平只在位窗的起始處翻轉則表示數據“1”; 如果電平除了在位窗的起始處翻轉, 還在位窗的中間翻轉則表示為數據“0”。解碼過程: 首先讀寫器同時對I 和Q 兩路信號進行采樣, 利用狀態機檢測返回幀頭的正確性,讀寫器根據幀頭的正確性來決定對I 或Q 路信號進行解碼。針對FM0 編碼的特點可知, FM0 每個數據單元的起始處發生翻轉, 由此可以根據起始處的上升沿或下降沿以及位窗中的采樣點來判斷出此位窗所表示的數據。設定一個位窗時間長度為T ,一種情況是位窗起始處為下降沿, 在該位窗3/ 4 T處采樣, 采樣為1 則位窗表示數據“0”, 采樣為0則位窗表示數據“1”; 另一種情況是位窗起始處為上升沿, 在該位窗3/ 4 T 處采樣, 采樣為1 則位窗表示數據“1”, 采樣為0 則位窗表示數據“0”。
4 結語
本文設計的讀寫器實現了對UHF 頻段下的ISO/ IEC 18000-6C 標簽的防沖突讀卡號以及讀寫標簽數據的功能。讀寫器可以在800~960 MHz 頻率范圍內跳頻工作, 同時可以使用IAP 功能實現應用中在線升級, 讀寫距離為8~10 m , 可以防沖突識別200 個卡以上, 最終實現了產品化。之后考慮到將來加入數字信號處理的需要, 在DSP 系統上做了對應移植, 為研究RFID 讀寫器的SOC 設計提供了一定的參考價值。
參考文獻:
[1 ] 游戰清,李蘇劍1 無線射頻識別技術(RFID) 理論及應用[M]1 北京: 電子工業出版社, 2004
[2 ] FINKENZELLER K1 射頻識別(RFID) 技術(第2 版) [M]1陳大才編譯1 北京:電子工業出版社,2001
[3 ] ISO1800026C220042FDAM 1 :2006 (E) [ S]
[4 ] User manual of P89LPC932A1 microcontroller [ K]
作者簡介:
林曦(1984 —) ,男,研究生,研究方向為超高頻RFID 讀寫器的關鍵技術研究;
王敬超(1982 —) ,男,研究生,從事RFID 讀寫器的系統設計及其小型化研究;
張春(1972 —) ,男, 工學博士,副教授,研究方向包括數模混合信號集成電路設計、嵌入式微處理器設計、數字信號處理系統、射頻識別等。