專利名稱:射頻識別數(shù)據通信中數(shù)據幀結尾的檢測方法
技術領域:
本發(fā)明屬于RFID (Radio Frequency Identification,射頻識別)領 域,涉及一種支持EPC-C1G2協(xié)議的射頻識別數(shù)據通信中T-R (Tag-to-Interrogator:標簽到讀寫器)數(shù)據幀結尾檢測的方法。
技術背景UHF (Ultra High Frequency,超高頻)射頻標簽識別技術是指工作在 860 960MHz的射頻識別技術,該技術具有可讀距離長、閱讀速度快、防 碰撞能力強與作用范圍廣的特點,可廣泛應用于物流管理、門禁、交通管 理等領域。相關技術標準參考EPC Radio-Frequency Identity Protocols, Class-1 Generation-2, UHF RFID Protocol for Communications at 860 MHz - 960 MHz, Version 1.0,9禾卩IS0/IEC 18000—6C: Information technology _ Radio frequency identification for item management -Part 6: Parameters for air interface communications at 860 MHz to 960 MHz。根據協(xié)議,T-R數(shù)據幀具有如下一些特點(1) 數(shù)據可以選擇采用FMO編碼或MILLER編碼;(2) 每一幀數(shù)據都以dummy 1結尾;(3) 并不是所有數(shù)據幀的長度可以預先計算,數(shù)據長度不一定是整數(shù) 字節(jié);(4) 有的數(shù)據幀最后附有有效的CRC校驗碼,有的則沒有。根據T-R數(shù)據是否具有固定長度和是否帶有有效的CRC16校驗碼,可 以將所有命令的T-R反饋數(shù)據分為以下四類(1) Select和NAK命令沒有反饋數(shù)據;(2) QueryR印、QueryAdjust和Query命令的反饋數(shù)據都是固定16bits, 沒有CRC16校驗碼;(3) Access、 Req—RN、 Write、 Kill、 Lock、 BlockWrite、 BlockErase、 Read和ACK (非Truncated EPC)的反饋數(shù)據都有有效的CRC16校驗碼;(4) 當ACK反饋數(shù)據是Truncated EPC時,后面帶的CRC并不是對 Truncated EPC重新計算后得到的(即沒有有效的CRC16校驗碼),同時也 不能預先確定反饋數(shù)據的長度。MILLER編碼數(shù)據的幀結尾如圖1所示,當數(shù)據采用這種編碼方式時, 便可以直接采用幀結尾序列檢測的方法進行幀結尾判斷。FM0編碼數(shù)據的幀結尾如圖2所示,現(xiàn)有的幀結尾檢測方法一般是采 用幀結尾序列比較檢測的方法或者預計算幀長度并對接收數(shù)據進行計數(shù)的 方法。幀結尾序列檢測的方法就是直接將接收數(shù)據序列與序列"00000000" 比較,若相等則判斷為幀結尾,這樣可能會多接收1比特數(shù)據,也就是說 有1比特解碼模糊;同時,由于不能對所有接收到數(shù)據幀的長度進行預先 計算,所以預計算幀長度并對接收數(shù)據進行計數(shù)的方法在這里也不能對所 有情況適用??傊?,釆用單一的幀結尾檢測方法難以實現(xiàn)對所有情況下的T-R數(shù)據 的幀結尾檢測。 發(fā)明內容本發(fā)明的目的就是針對現(xiàn)有技術的不足,提供一種EPC-C1G2協(xié)議中 T-R數(shù)據幀結尾檢測方法。本發(fā)明中的數(shù)據為EPC-C1G2協(xié)議中的T-R數(shù)據,其編碼方式包括 MILLER編碼方式和FM0編碼方式,該編碼方式由讀寫器根據需要自行設定。1、 對于MILLER編碼方式的T-R數(shù)據,讀寫器對T-R數(shù)據中的所有序 列與特定的幀結尾序列進行比較,如果兩者相同,則該序列處為幀結尾;2、 對于FMO編碼方式的T-R數(shù)據,讀寫器根據自己發(fā)送的命令判斷接 收的T-R數(shù)據的類型;(l)如果讀寫器接收的T-R數(shù)據具有固定長度,同時沒有CRC16校驗碼, 具體檢測方法是a. 首先讀寫器根據自己發(fā)送的命令計算出T-R數(shù)據的幀長度;b. 然后在對T-R數(shù)據進行解碼時對接收比特進行計數(shù);C.計數(shù)值與幀長度相等時,該處為幀結尾。(2) 如果讀寫器接收的T-R數(shù)據具有CRC16校驗碼,同時沒有固定長度, 步驟d和步驟e同時進行,具體是d. 首先將CRC16校驗器的值置為FFFFh,對解碼后的每一比特的T-R數(shù) 據進行CRC16計算,如果CRC16校驗器的值等于lD0Fh,該處為幀結尾。e. 讀寫器同時對T-R數(shù)據中的所有序列與特定的幀結尾序列進行比 較,如果兩者相同,同時在步驟d中還未出現(xiàn)幀結尾,則該序列處為幀結 尾。(3) 如果讀寫器接收的T-R數(shù)據既沒有CRC16校驗碼,也沒有固定長度, 編碼方式轉換為MILLER編碼方式進行數(shù)據傳輸,同時所有T-R數(shù)據采用幀 結尾序列檢測的方法進行幀結尾檢測。本發(fā)明采用了 CRC校驗的方法對T-R數(shù)據進行幀結尾檢測,是一種幀結 尾檢測的新方法。本發(fā)明方法能夠根據T-R數(shù)據的編碼方式、是否具有固 定幀長度以及是否帶有CRC16校驗碼,聯(lián)合采用不同的幀結尾檢測方法對 T-R數(shù)據進行無差錯幀結尾檢測,解決了采用單一的幀結尾檢測方法難以 實現(xiàn)對符合EPC-C1G2協(xié)議的射頻識別數(shù)據通信中所有情況下的T-R數(shù)據的 幀結尾檢測的難題。
圖1為MILLER編碼數(shù)據的幀結尾示意圖; 圖2為FMO編碼數(shù)據的幀結尾示意圖; 圖3為聯(lián)合檢測幀結尾實現(xiàn)框圖; 圖4為MILLER編碼數(shù)據的幀結尾檢測示意圖; 圖5為FM0編碼數(shù)據(固定幀長度)的幀結尾檢測示意圖; 圖6為FMO編碼數(shù)據(非固定幀長度,CRC校驗正確)的幀結尾檢測 示意圖;圖7為FMO編碼數(shù)據(非固定幀長度,CRC校驗錯誤)的幀結尾檢測 示意圖。
具體實施方式
這里給出本發(fā)明的 一個實施例。如圖3所示為聯(lián)合檢測幀結尾的實現(xiàn)框圖,F(xiàn)M0_MILLER DECODER負責 對T-R數(shù)據進行解碼,同時負責采用幀結尾序列比較檢測的方法和預計算 幀長度并對接收數(shù)據進行計數(shù)的方法進行幀結尾檢測,i—data為待解碼數(shù) 據,i—pulse為待解碼數(shù)據的同步脈沖,i—m指定數(shù)據的編碼方式,i_length 則為幀長度預計算值,對于能夠預計算幀長度的情形,該值即取預計算值 (比如16),對于不能預計算長度的則取接收緩存的最大值1024,該模塊輸 出解碼數(shù)據data、解碼數(shù)據的同歩脈沖pulse以及解碼數(shù)據有效標志信號 data—valid,該模塊解碼后得到的數(shù)據有可能會在末尾多一個'1'(即有 l比特解碼模糊)。正因為此,還需要結合后面的CRC校驗法來進一步檢測 幀結尾,該任務是由CRC verifier來完成,CRC verifier在i—crc—en的 使能控制下對解碼后數(shù)據data進行CRC16運算,運算結束時給出o—crc—end 脈沖信號、crc—stop停止標志信號以及校驗結果o_crc_err。 Output controller負責分析前面幾種幀結尾檢測法的檢測結果,主要是根據 crc—stop來控制是否需要對解碼后數(shù)據進行截取(若采用幀結尾序列檢測 法時解碼后數(shù)據多一個'l'),從而控制輸出最終的正確解碼結果o—data、 o_data_valid禾口 o—pulse。對于幀結尾序列比較檢測的方法,在FMO一MILLER DECODER模塊中設有 一個八位移位寄存器data_r寄存基帶編碼數(shù)據(若為MILLER編碼,則需 先去掉副載波,去副載波方法該發(fā)明不予以討論),當寄存器值為指定的幀 結尾序列(若T-R數(shù)據編碼方式為FMO編碼方式,則該幀結尾特定序列為 "00000000";若T-R數(shù)據編碼方式為MILLER編碼,則該幀結尾特定序列為 "01000000"或"10111111")時,則判定為幀結尾,這種方法對采用FM0編碼的數(shù)據進行解碼可能會多接收一個'r。對于預計算幀長度并對接收數(shù)據進行計數(shù)的方法,則在FM0_MILLER DECODER模塊中設有一個計數(shù)器cnt,在解碼時對解碼得到的比特數(shù)據進行 計數(shù),當計到幀長度預計算值i—length時,判定為幀結尾。對于CRC校驗檢測幀結尾的方法,若接收數(shù)據含有有效的CRC16校驗, 則i—crc_en為'1,, CRC verifier對解碼數(shù)據進行CRC運算,當運算結 果crcl6為特定的殘基(這里是(lDOF)h, CRC16的具體計算方法請參見EPCC1G2協(xié)議標準)時,表示已經接收到正確長度的正確數(shù)據,輸出o_crc_enci 脈沖,并置crC_st(3p有效以阻止后面的無效數(shù)據輸出。 下面結合圖例說明具體實現(xiàn)過程。1、 對于MILLER編碼方式的T-R數(shù)據讀寫器將T-R數(shù)據序列和特定的幀結尾序列("01000000"或 "10111111")進行比較,如果兩者相同,則該序列處為幀結尾。假設接收 數(shù)據為33比特,i_length為1024,如圖4所示,接收到的T-R數(shù)據經過 MILLER解碼后逐比特移入八位移位寄存器data—r,在tl時刻,移位寄存 器data—r的值為(40) h (即"01000000"),等于預定的幀結尾序列,所 以這時判定為幀結尾,停止繼續(xù)對接收數(shù)據進行解碼。2、 對于FM0編碼方式的T-R數(shù)據讀寫器首先根據自己發(fā)送的命令判斷接收的T-R數(shù)據的類型,然后根 據T-R數(shù)據的類型采取不同的幀結尾檢測方法對T-R數(shù)據進行幀結尾檢測。(1) 如果讀寫器接收的T-R數(shù)據具有固定長度,但是沒有CRC16校驗 碼,則采用下面的幀結尾檢測過程,假設接收數(shù)據為16比特,i—length 為16,如圖5所示首先,讀寫器根據自己發(fā)送的命令計算出T-R數(shù)據的 幀長度為(該例中為16);然后,對T-R數(shù)據進行解碼時用計數(shù)器cnt對接收比特進行計數(shù);在tl時刻,cnt的值等于16,則判定該處為幀結尾,停 止繼續(xù)解碼。(2) 如果讀寫器接收的T-R數(shù)據具有CRC16校驗碼,但是沒有固定長 度,則采用下面的幀結尾檢測過程這時,i—crc_en為高電平,CRC16校 驗器CRC verifier開始工作,并CRC在每一幀數(shù)據開始時將CRC16校驗器 的值置為FFFFh,對解碼后的T-R數(shù)據逐比特移入CRC16校驗器,進行CRC16 計算,如果CRC16校驗器的值等于lD0Fh,該處為幀結尾;與此同時,讀寫 器將經FM0解碼后的T-R數(shù)據逐比特移入八位移位寄存器data一r,并將 data一r的內容與特定的幀結尾序列("00000000")進行比較,如果兩者相 同,同時CRC16校驗器還未檢測到幀結尾,則判定該處為幀結尾。下面分 傳輸T-R數(shù)據正確與傳輸T-R數(shù)據出錯兩種情況進行說明。①傳輸T-R數(shù)據正確假設接收數(shù)據為33比特,i—length為1024,數(shù)據帶有CRC校驗值并且數(shù)據傳輸無誤,如圖6所示。在每幀數(shù)據開始時將CRC16校驗器的值置為FFFFh,隨著每一比特數(shù)據移入 CRC16校驗器,CRC16校驗器的值CRC16都會更新,在t2時刻, CRC16=lD0Fh,判斷此處為幀結尾,并輸出CRC—ST0P為高電平,停 止將后面的數(shù)據輸出,這樣就正確無誤地接收到33比特T-R數(shù)據。 假如這時CRC16校驗器不工作,僅通過比較data_r的內容與特定 的幀結尾序列來檢測幀結尾,則由圖可以看出,只有到tl時刻 data—r才等于"00000000",若判定這時為幀結尾,則會多接收一 比特數(shù)據,即幀結尾判定錯誤。 ②傳輸T-R數(shù)據出錯假設接收數(shù)據為33比特,i—length為1024, 數(shù)據帶有CRC校驗值并且數(shù)據傳輸出現(xiàn)錯誤,如圖7所示。在每幀 數(shù)據開始時將CRC16校驗器對值置為FFFFh,隨著每一比特數(shù)據移 入CRC16校驗器,CRC16校驗器的值CRC16都會更新,但是過了第 34比特,CRC16都沒有與1D0Fh相等。同時,讀寫器將經FM0解碼 后的T-R數(shù)據逐比特移入八位移位寄存器data—r,并將data—r的 內容與特定的幀結尾序列("00000000")進行比較,在tl時刻, data_r= (00) h (即"00000000"),這時判定為幀結尾。由于數(shù)據 傳輸出錯,導致CRC16校驗器沒有在第33比特處及時檢測出幀結 尾,這樣在后面的tl時刻檢測到幀結尾時就已經多接收了一比特 數(shù)據,但這時會輸出CRC—ERR報錯,表示數(shù)據傳輸錯誤,從而讓接 收方放棄這幀T-R數(shù)據。
權利要求
1、射頻識別數(shù)據通信中數(shù)據幀結尾的檢測方法,所述的數(shù)據為EPC-C1G2協(xié)議中的T-R數(shù)據,其編碼方式包括MILLER編碼方式和FMO編碼方式,其特征在于(1)對于MILLER編碼方式的T-R數(shù)據,讀寫器對T-R數(shù)據中的所有序列與特定的幀結尾序列進行比較,如果兩者相同,則該序列處為幀結尾;(2)對于FMO編碼方式的T-R數(shù)據,讀寫器根據自己發(fā)送的命令判斷接收的T-R數(shù)據的類型;①如果讀寫器接收的T-R數(shù)據具有固定長度,同時沒有CRC16校驗碼,具體檢測方法是a.首先讀寫器根據自己發(fā)送的命令計算出T-R數(shù)據的幀長度;b.然后在對T-R數(shù)據進行解碼時對接收比特進行計數(shù);c.計數(shù)值與幀長度相等時,則該處為幀結尾;②如果讀寫器接收的T-R數(shù)據具有CRC16校驗碼,同時沒有固定長度,步驟d和步驟e同時進行,具體是d.首先將CRC16校驗器的值置為FFFFh,對解碼后的每一比特的T-R數(shù)據進行CRC16計算,如果CRC16校驗器的值等于1DOFh,則該處為幀結尾;e.讀寫器同時對T-R數(shù)據中的所有序列與特定的幀結尾序列進行比較,如果兩者相同,同時在步驟d中還未出現(xiàn)幀結尾,則該序列處為幀結尾;③如果讀寫器接收的T-R數(shù)據既沒有CRC16校驗碼,也沒有固定長度,編碼方式轉換為MILLER編碼方式進行數(shù)據傳輸,同時所有T-R數(shù)據采用步驟(1)的方法進行幀結尾檢測。
全文摘要
本發(fā)明屬于射頻識別技術領域,涉及一種支持EPC-C1G2協(xié)議的射頻識別數(shù)據通信中T-R數(shù)據幀結尾檢測的方法。現(xiàn)有檢測方法采用幀結尾序列比較檢測的方法或預計算幀長度并對接收數(shù)據進行計數(shù)的方法,但是采用單一的幀結尾檢測方法難以實現(xiàn)對所有情況下的T-R數(shù)據的幀結尾檢測。本發(fā)明采用了CRC校驗的方法對T-R數(shù)據進行幀結尾檢測,并能夠根據T-R數(shù)據的編碼方式、是否具有固定幀長度以及是否帶有CRC16校驗碼,聯(lián)合采用不同的幀結尾檢測方法對T-R數(shù)據進行無差錯幀結尾檢測。本發(fā)明解決了采用單一的幀結尾檢測方法難以實現(xiàn)對符合EPC-C1G2協(xié)議的射頻識別數(shù)據通信中所有情況下的T-R數(shù)據的幀結尾檢測的技術難題。
文檔編號H04L1/00GK101252411SQ20081006020
公開日2008年8月27日 申請日期2008年3月31日 優(yōu)先權日2008年3月31日
發(fā)明者呂炳赟, 孫玲玲, 潘劍俠, 肖自鏵, 琪 馬 申請人:杭州電子科技大學