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