物聯傳媒 旗下網站
登錄 注冊
RFID世界網 >  技術文章  >  航空  >  正文

超高頻RFID標準中編碼方式的研究和S函數實現

作者:林君勉,李書芳
來源:RFID世界網
日期:2011-07-11 14:19:52
摘要:本文闡述了UHF RFID 標準中的編碼方式的特性,介紹了matlab/Simulink 中S 函數的實現方法,重點用S 函數實現了RFID 的編碼,以及對這些編碼模塊的封裝,并做了基于這些模塊的通信系統仿真。本文所做的工作可為基于Simulink 的通信系統仿真提供參考與支持。
    1. 引言

    RFID 作為無線領域新崛起的一項應用技術,已被廣泛應用于工業自動化、商業自動化、交通運輸管理等眾多領域。RFID 技術以無線通信技術和大規模集成電路技術為核心,利用射頻信號及其空間耦合、傳輸特性,驅動電子標簽電路發射其存儲的惟一編碼。它可以對靜止或移動的目標進行自動識別,并高效地獲取目標信息數據,通過與互聯網技術的進一步結合,還可以實現全球范圍內的目標跟蹤與信息共享。

    本文參照已有國際標準 ISO/IEC 18000-6,首先研究了標準中不同的編碼方式的規則和特性,然后用S 函數來實現這幾種編碼,并利用Simulink 進行基帶編碼模塊的封裝和仿真。

    2. UHF RFID 標準中的編碼方式

    在射頻識別(RFID)技術中,讀寫器與電子標簽間相互通信傳遞數據(信息和指令)。為了便于通信,需要對數據的基帶信號進行編碼,主要是對要傳輸的信息進行編碼,以便傳輸信號能夠盡可能最佳地與信道相匹配,并且編碼后能夠使頻譜能量集中以節省傳輸所占頻帶寬度,其次使其具有檢錯能力和提供位同步信息。目前在UHF頻段的RFID 標準ISO/IEC18000-6 中,采用多種形式的數據編碼,見表1。 

    從表1 中可以看出,在前向鏈路上數據編碼采用的最多的方式是PIE 編碼和曼徹斯特編碼,而在反向鏈路中采用最多的是FM0 編碼。因此對RFID 標準中的編碼方式進行研究是十分必要和有意義的。下面重點介紹一下編碼規則。

    2.1 PIE 編碼

    PIE (脈沖間隔編碼)編碼是在前向鏈路中采用。按照標準,符號波形如圖1 所示。


圖 1 PIE 編碼符號波形

    其中,Tari 為讀寫器到標簽通信的時間間隔參考,也是數據“0”的持續時間長度,其參數如表2 所示:

    2.2 曼徹斯特編碼

    曼徹斯特編碼也是在前向鏈路中采用的,也被稱為分相編碼。編碼規則如圖2 所示。在曼徹斯特編碼中,如果原始數據為‘0’,將其編為‘01’;如果原始數據為‘1’,將其編為‘10’。這種編碼的特點是每個碼元中間都有跳變,低頻能量較少,便于接收端提取時鐘信息。


圖 2 曼徹斯特編碼規則

    2.3 FM0 編碼

    反向鏈路采用 FM0 技術,也被稱為雙相間隔碼。一個符號周期Trlb,分配給每個將被發送的位。在FMO 編碼中,數據轉換發生在所有的位邊界。另外,數據轉換發生在被發送的邏輯0 的中間位。

    數據編碼先對字節的最高位進行,圖3 給出了8 位'B1'的編碼說明。


圖 3 FM0 編碼規則

    3. UHF RFID 標準中編碼方式的實現

    在 Simulink 中,可以通過將現有的模塊組合成子系統并進行封裝實現模塊,利用這種方法可以充分利用現有的Simulink 庫中的資源,方便快捷地進行模塊的搭建。另外,在實際的應用中,通常會發現有些過程用普通的Simulink 模塊不容易搭建,這是可以利用S 函數來自己編程實現所需要的模塊。S 函數可以極大的擴展Simulink 的功能,使得Simulink的仿真變得更靈活,更強大。這部分主要通過這種方法來實現RFID 標準中的編碼方式。

    在使用 S 函數前,先簡單介紹一下Simulink 模型的處理過程。包含以下幾個方面:

    1、初始化階段:將參數傳遞給 matlab 進行求值,得到的數值作為實際的參數使用,然后展開模型的層次,每個子系統被它們所包含的模塊代替,接著檢查信號的鏈接,最后確定狀態初值和采樣時間。
    2、運行階段:計算輸出,更新離散狀態,然后計算連續狀態,最后計算輸出。

    S 函數既可以是M 文件,也可以是MEX 文件。M 文件的S 函數結構明晰,易于理解,書寫方便,而且可以調用matlab 豐富的函數,對于一般的應用,使用matlab 語言編寫S 函數就夠用了。

    M 文件的S 函數由以下形式的matlab 函數組成:[sys,x0,str,ts]=f(t,x,u,flag,p1,p2,…)

    其中f 是S 函數的文件明,t 是當前時間,x 是S 函數相應的狀態向量,u 是模塊的輸入,flag 是所要執行的任務,p1,p2 等都是模塊的參數。在模型仿真的過程中,Simulink 不斷調用函數f,通過flag 來說明要完成的任務。每次S 函數執行任務,都將以特定結構返回結果。

{$page$}


    我們將編寫的s 函數封裝成模塊并搭建仿真模型,如圖4所示。

    根據上述內容,結合 PIE 編碼規則,設計的S 函數如下: 

    仿真模型中,中間的PIE模塊就是設計封裝的模塊, 仿真后的結果如圖5所示。仿真結果與PIE編碼的編碼規則吻合。 


圖 4 PIE 編碼的模型


圖 5 PIE 編碼模型的仿真結果

    從圖5可以看出,由于PIE編碼是不等長編碼,所以在S函數實現的時候,得將原始數據進行保存,然后再進行編碼。解碼的時候一樣,得先將數據保存,然后解碼。這樣就使得解碼完的數據與原始數據之間產生一定時間的延時。這是不可避免的。同樣用S函數來設計曼徹斯特編碼和FM0編碼的模塊,編程的過程與PIE編碼類似,這里不再重復。曼徹斯特編碼和FM0編碼的模型和結果如圖6和圖7所示。可以看出仿真的結果與編碼規則一致。

    4. 結論

    本文介紹了RFID標準中的編碼方式,并介紹了利用S函數編程來實現自定義模塊的方法,搭建了編碼仿真模型,并給出了仿真結果。本文所做的工作可以為基于Simulink的仿真提供支持,也可為實際中利用Simulink進行模塊封裝與仿真提供參考。