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