《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > RFID 無線通信迂回式隨機(jī)樹形防沖突算法
RFID 無線通信迂回式隨機(jī)樹形防沖突算法
劉云
來源:RFID世界網(wǎng)
摘要: RFID 系統(tǒng)主要由三部分組成, 即電子標(biāo)簽(tag)、讀寫器(reader) 以及天線(antenna), 是一種非接觸式的自動(dòng)識別系統(tǒng)。隨著RFID系統(tǒng)的不斷增多, 多個(gè)電子標(biāo)簽同時(shí)將信號送入一個(gè)讀寫器的讀寫通道必然會(huì)產(chǎn)生信道爭用問題, 如何減少數(shù)據(jù)碰撞從而快速有效的在規(guī)定時(shí)間內(nèi)讀取出所有電子標(biāo)簽的信息成為一個(gè)難點(diǎn)。
Abstract:
Key words :

     射頻識別RFID (RadioFrequencyIdentification) 技術(shù)相對于傳統(tǒng)的磁卡及IC 卡技術(shù)具有非接觸、閱讀速度快、無磨損等特點(diǎn), 在最近幾年里得到快速發(fā)展。RFID 系統(tǒng)主要由三部分組成,  即電子標(biāo)簽(tag)、讀寫器(reader) 以及天線(antenna), 是一種非接觸式的自動(dòng)識別系統(tǒng)。隨著RFID系統(tǒng)的不斷增多,  多個(gè)電子標(biāo)簽同時(shí)將信號送入一個(gè)讀寫器的讀寫通道必然會(huì)產(chǎn)生信道爭用問題, 如何減少數(shù)據(jù)碰撞從而快速有效的在規(guī)定時(shí)間內(nèi)讀取出所有電子標(biāo)簽的信息成為一個(gè)難點(diǎn)。

    解決碰撞問題的算法有ALOHA算法、分隙ALOHA算法和二進(jìn)制樹形搜索算法, 但這幾種算法都有一個(gè)共同的缺陷: 信道利用率比較低。本文提出了一種新的反碰撞算法, 這種算法是在傳統(tǒng)的二進(jìn)制樹算法基礎(chǔ)上, 通過迂回式反碰撞算法, 利用二進(jìn)制位取值的互異(即非0 即1)的特性, 以及連續(xù)兩位發(fā)生沖突(即00, 01, 10, 11), 可同時(shí)識別出1~4 個(gè)標(biāo)簽, 進(jìn)而提高閱讀器識別標(biāo)簽的效率,  在信道利用率上遠(yuǎn)遠(yuǎn)優(yōu)于其它算法。

    1 射頻識別系統(tǒng)的工作原理

    射頻識別系統(tǒng)的工作頻段有低頻, 中頻, 高頻, 超高頻及微波之分, 而在工業(yè)中通常采用13.56MHz 的頻率。對于從閱讀器與電子標(biāo)簽間數(shù)據(jù)傳遞, 通常采用振幅鍵控ASK (AmplitudeShiftKeying)、頻移鍵控FSK(FrequencyShiftKeying)和相移鍵控PSK 
(PHASEShiftKeying)。ASK 和PSK 常被使用, 因?yàn)樗鼈兲貏e容易解調(diào), 其原理參見圖1。由圖1 中可知, 當(dāng)有多于1個(gè)的標(biāo)簽在閱讀器的作用范圍內(nèi)時(shí), 且傳遞的數(shù)據(jù)0/1 交錯(cuò)時(shí), 將會(huì)出現(xiàn)1個(gè)標(biāo)簽諧振, 
1個(gè)標(biāo)簽失諧的情況。這時(shí)就閱讀器則很難通過判斷輸出端的高低電位來讀出標(biāo)簽的內(nèi)部信息, 這就是我們要解決的碰撞問題。

      


    2 二進(jìn)制搜索算法原理

    二進(jìn)制搜索算法, 是以一個(gè)獨(dú)特的序列號(UID)來識別標(biāo)簽為基礎(chǔ)的, 為了能辨認(rèn)出閱讀器中數(shù)據(jù)碰撞比特位的準(zhǔn)確位置, 傳統(tǒng)采用曼徹斯特編碼。該編碼采用電平的上升沿和下降沿來表示數(shù)值位。本文中假設(shè)上升沿編碼為邏輯“0”, 下降沿編碼為邏輯“1”, 若狀態(tài)跳變, 視為無效數(shù)據(jù)且作為錯(cuò)誤碼被識別。如在多標(biāo)簽的環(huán)境中當(dāng)同時(shí)有上升沿和下降沿同時(shí)存在是, 則會(huì)互相抵消從而無狀態(tài)跳變, 以此閱讀器判斷發(fā)生碰撞的準(zhǔn)確位數(shù)而再次搜索。假設(shè)有6 個(gè)RFID 標(biāo)簽, 其相應(yīng)EPC代碼為8 位, 利用曼徹斯特編碼能準(zhǔn)確識別出碰撞位的示意圖如圖2 所示, 圖中用紅色部分為碰撞位。

                         


    從圖中可知, 閱讀器檢測出D2, D3, D4, D6, D7 位出現(xiàn)碰撞,從而可以判斷出在同一區(qū)域內(nèi)存在多個(gè)RFID標(biāo)簽。

    本文約定在閱讀器作用范圍內(nèi)的所有標(biāo)簽?zāi)茉谕粫r(shí)刻同步傳送響應(yīng)數(shù)據(jù), 以便準(zhǔn)確地監(jiān)測碰撞位的發(fā)生。為了便于表述算法, 還需要引入4 種命令:

        1) REQUEST: 表示閱讀器發(fā)送一個(gè)呼叫參數(shù)給區(qū)域內(nèi)標(biāo)簽, 所有標(biāo)簽的EPC 與之進(jìn)行“與運(yùn)算”, 結(jié)果全為0
      的標(biāo)簽將各自的EPC返回至閱讀器。在第1 次詢問時(shí), 呼叫參數(shù)應(yīng)全為0, 即Request 命令為: Request(00000000),
      這樣區(qū)域內(nèi)所有標(biāo)簽都會(huì)應(yīng)答。

        2) SELECT: 用某個(gè)(事先確定的) EPC 作為參數(shù)發(fā)送給標(biāo)簽。具有相同EPC
      的標(biāo)簽將以此作為執(zhí)行其他命令(例如讀出和寫入數(shù)據(jù))的切入開關(guān), 即選擇這個(gè)標(biāo)簽。

        3) READ/DATA: 選中的標(biāo)簽將存儲的數(shù)據(jù)發(fā)送給閱讀器)。

        4) UNSELECT: 取消一個(gè)事先選中的標(biāo)簽, 標(biāo)簽進(jìn)入“休眠”狀態(tài)。在該狀態(tài)下標(biāo)簽對收到的REQUEST 命令不作應(yīng)答。為了重新激活標(biāo)簽,
      須將標(biāo)簽移出閱讀器的作用范圍再進(jìn)入, 以實(shí)行復(fù)位。

      3 算法原理

        假設(shè)閱讀器作用范圍內(nèi)有6 個(gè)標(biāo)簽, 閱讀器在本文約定的環(huán)境中識別這些標(biāo)簽, 最初閱讀器對區(qū)域內(nèi)標(biāo)簽處于未知狀態(tài),
      發(fā)送Request(00000000) 命令, 此時(shí)閱讀器周邊區(qū)域內(nèi)所有的標(biāo)簽則同步應(yīng)答。詳細(xì)數(shù)據(jù)處理過程如下:

        Step1: 閱讀器發(fā)送Request (00000000) 命令。區(qū)域內(nèi)所有標(biāo)簽的與運(yùn)算結(jié)果全為0, 即所有的標(biāo)簽返回自身8 位的EPC
      代碼應(yīng)答。根據(jù)曼徹斯特編碼原理, 可解碼得EPC 數(shù)據(jù)為: “$$1$$$10”, 即D2, D3, D4, D6, D7
      位發(fā)生碰撞。算法作以下的處理: 從5 個(gè)碰撞位隨機(jī)選擇一位, 如D7; 然后將上一次Request命令中的參數(shù)00000000 的D7 位取反,
      得下一次Request 命令所需的參數(shù): 10000000。

        Step2: 閱讀器發(fā)送Request (10000000) 命令。則此時(shí)區(qū)域內(nèi)D7位是0 的標(biāo)簽應(yīng)答, 即標(biāo)簽1 不相應(yīng), 標(biāo)簽2~ 標(biāo)簽6
      應(yīng)答, 同理可解碼得EPC 數(shù)據(jù)為: “0$1$$$10”, 碰撞位有: D2, D3, D4, D6, 位。算法作以下的處理: 從4
      個(gè)碰撞位隨機(jī)選擇一個(gè), 如D3; 然后將上一次Request 命令中的參數(shù)10000000 的D3 位取反, 得下一次Request命令所需的參數(shù):
      10001000。

        Step3: 閱讀器發(fā)送Request (10001000) 命令。區(qū)域內(nèi)的D3 和D7 都是0 的標(biāo)簽應(yīng)答, 此時(shí)只有標(biāo)簽4 應(yīng)答,
      其他標(biāo)簽不響應(yīng), 在這種情況下沒有碰撞位, 閱讀器可以直接將收到的EPC 值用SELECT 命令發(fā)給標(biāo)簽4 并進(jìn)行讀寫操作,
      處理完成后執(zhí)行Unselect 命令, 屏蔽掉標(biāo)簽4, 使它處于“休閑” 狀態(tài)。算法再采用回溯策略, 從該節(jié)點(diǎn)的父節(jié)點(diǎn)獲得下一次Request
      命令所需的參數(shù): 10000000。

        Step4: 閱讀器發(fā)送Request ( 1000 0000) 命令。區(qū)域內(nèi)D7 位是0 的標(biāo)簽應(yīng)答, 即標(biāo)簽2, 標(biāo)簽3, 標(biāo)簽5, 標(biāo)簽6
      應(yīng)答, 同理可解碼得EPC 數(shù)據(jù)為: 0$101$10, 碰撞位有: D2, D6, 位, 此時(shí)只有兩個(gè)碰撞位, 則讀寫器可依次通過SELECT
      命令發(fā)送“00101010”,“00101110”, “01101010”, “01101110”, 從而完成標(biāo)簽5, 標(biāo)簽2, 標(biāo)簽6
      的讀寫操作, 最后通過UNSELECT 命令將些三個(gè)標(biāo)簽置于“休閑” 狀態(tài)。算法再采用回溯策略, 從該節(jié)點(diǎn)的父節(jié)點(diǎn)獲得下一次Request
      命令所需的參數(shù): 00000000。

        Step5: 閱讀器發(fā)送Request(00000000)命令。區(qū)域內(nèi)所有處于非“啞吧” 狀態(tài)的標(biāo)簽應(yīng)答, 即標(biāo)簽1 與標(biāo)簽3 應(yīng)答,
      同理可解碼得EPC數(shù)據(jù)為: $0101010, 此時(shí)碰撞位只有D7 位。則讀寫器可依次通過SELECT命令發(fā)送00101010, 10101010,
      從而完成標(biāo)簽3 和標(biāo)簽1 的讀寫操作, 最后通過UNSELECT 命令將標(biāo)簽3 和標(biāo)簽1 置于“休閑” 狀態(tài)。算法再采用回溯策略,
      從該節(jié)點(diǎn)的父節(jié)點(diǎn)獲得下一次Request 命令所需的參數(shù), 由于已到樹根無父節(jié)點(diǎn), 因此識別過程結(jié)束。圖3 為識別讀寫全部標(biāo)簽的流程圖:


     通過該實(shí)例, 可歸納該算法要點(diǎn)如下:

     1) 閱讀器發(fā)Request (00000000) 命令, 要求區(qū)域內(nèi)所有標(biāo)簽應(yīng)答。

     2) 檢測有無碰撞發(fā)生。若無碰撞時(shí), 可識別出一個(gè)單獨(dú)的標(biāo)簽。標(biāo)簽值為應(yīng)答時(shí)返回的EPC 值。處理完后, 再屏蔽掉它。

     3) 若有碰撞, 可分兩種情況, 如碰撞位>2, 則可從碰撞位中隨機(jī)選擇一位, 并由選中的那一位和上一次REQUEST 中的參數(shù)共同決定下一次Request 命令所需的參數(shù), 具體如下: 在上一次REQUEST 命令中參數(shù)的基礎(chǔ)上再對所選中的那一位取反,  即可得下一次REQUEST命令的參數(shù)。

     4) 若碰撞位<=2 時(shí), 可通過改變相應(yīng)兩位的數(shù)值即00, 01, 10, 11 的值以同時(shí)識別出4 個(gè)標(biāo)簽, 另外下一次Request 命令所需參數(shù), 采用回溯策略, 從其父節(jié)點(diǎn)獲得, 通過迂回方式直到執(zhí)行Request(00000000)命令返回值碰撞位小于2 時(shí)讀寫結(jié)束。

     4 系統(tǒng)的軟件實(shí)現(xiàn)

        以下程序?yàn)閷?shí)現(xiàn)讀寫過程的子程序:
        Push(EPC): 將EPC 值入棧;
        Pop(): 將棧頂元素彈出;
        GetTop(): 返回棧頂元素;
        StackEmpty(): ??辗祷豻rue, 不空返回false;
        Request(EPC): 閱讀器將EPC 發(fā)送給標(biāo)簽;
        GetCollisionBitsCount_(EPC): 返回EPC 值中碰撞位的數(shù)目;
        RandomSelectCollisionBit(EPC): 返回從EPC 中隨機(jī)選擇的一個(gè)碰撞位的下標(biāo);
        ReverseBit(EPC, n): 將EPC 的第n 位取反, 并返回取反后的EPC 值;
        SetCollision(EPC, bit): 將EPC 的碰撞位置bit 值, 而其他位不變, 并返回。

        閱讀器算法描述:
        Push(00000000);
        while(!stackEmpty())
        {
        Request(GetTop()); // 獲得返回的EPC 值;
        if(GetCollisionBitsCount(EPC)>2)
        Push(ReverseBit(GetTop(), RandomSelectCollisionBit(EPC)));
        else
        {
        pop();
        Switch(GetCollisionBitsCount(EPC))
        Case0:
        Select(EPC);
        ReadData(EPC);
        Unselect(EPC);
        break;
        Case1:
        EPC0=SetCollision(EPC, 0);
        Select(EPC0);
        ReadData(EPC0);
        Unselect(EPC0);
        EPC0=SetCollision(EPC,1);
        Select(EPC0);
        ReadData(EPC0);
        Unselect(EPC0);
        break;
        Case2:
        for(i=0;i<4, i++)
        {
        EPC0=SetCollision(EPC,i);
        Select(EPC0);
        ReadData(EPC0);
        Unselect(EPC0);
        }
        break;
        }
        }

    5 算法復(fù)雜度和通信信道分析

     本文這種迂回式算法受到標(biāo)簽數(shù)量以及碰撞對數(shù)的限制, 假設(shè)n 個(gè)標(biāo)簽中這樣無重疊的理想碰撞標(biāo)簽對(任意兩組標(biāo)簽對中無相同的標(biāo)簽)有m (m≤n/2) 組, 則在最理想的情況下(這個(gè)要由好的隨機(jī)算法提供)算法的總的詢問次數(shù)為: R (n, m) =2 (n-m) -3。在本文基于迂回式的算法發(fā)送REQUEST 命令的次數(shù)為5 次(R (6, 2)), 而參考文獻(xiàn)[5]中提出的算法的詢問次數(shù)為7 次,  讀寫速度提高28%, 對于標(biāo)簽較多的環(huán)境中將會(huì)高效完成讀寫動(dòng)作。

      6 結(jié)語

    通過本文對標(biāo)簽的處理過程可以看出讀寫過程實(shí)際上是請求與檢測的過程重復(fù)進(jìn)行, 當(dāng)碰撞位小于等于2 時(shí)可以快速高效的識別出標(biāo)簽, 而當(dāng)碰撞位大于2 時(shí)則通過屏蔽位的方式繼續(xù)發(fā)送請求命令直到碰撞位小于等于2, 正是通過反復(fù)迂回的方式從而大大減小了請求次數(shù),提高了讀寫的速度, 從而實(shí)現(xiàn)了高效率的控制。

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品久久久999| 国内精品美女在线观看| 久久九九99| 亚洲一区二区视频在线| 日韩视频免费在线观看| 久久精品欧洲| 久久国产精品电影| 性色av一区二区三区红粉影视| 一区二区三区四区国产精品| 亚洲人在线视频| 亚洲国产高清高潮精品美女| 伊人久久久大香线蕉综合直播| 国产一区二区三区四区hd| 国产精品尤物福利片在线观看| 欧美午夜在线视频| 老司机精品导航| 亚洲精品小视频在线观看| 最近中文字幕日韩精品| 亚洲高清资源| 亚洲国产高清一区| 亚洲黄一区二区| 亚洲黄一区二区| 亚洲精品一级| 99视频在线观看一区三区| 一本在线高清不卡dvd| 一本一道久久综合狠狠老精东影业| 日韩一级免费观看| 一区二区三区精品视频在线观看| 一区二区三区免费在线观看| 宅男精品导航| 亚洲欧美在线磁力| 久久经典综合| 免费一级欧美片在线播放| 欧美国产日韩亚洲一区| 欧美日韩无遮挡| 国产精品日韩| 国内精品亚洲| 亚洲国产精品久久| 99v久久综合狠狠综合久久| 亚洲网站在线看| 午夜亚洲伦理| 亚洲国产精品激情在线观看| 99re66热这里只有精品3直播| 亚洲性感激情| 欧美一区永久视频免费观看| 久久香蕉国产线看观看av| 欧美成人国产va精品日本一级| 欧美人与禽猛交乱配视频| 欧美精品v日韩精品v国产精品| 欧美午夜在线观看| 国产性色一区二区| 亚洲第一黄色| 中文av一区特黄| 欧美在线一二三区| 亚洲乱码国产乱码精品精98午夜| 亚洲一区二区三区高清| 久久精品首页| 欧美日本韩国一区| 国产精品一区久久久| 伊人一区二区三区久久精品| 日韩视频一区二区三区在线播放免费观看 | 亚洲一区二区三区精品在线| 亚洲欧美在线另类| 亚洲精品国产精品乱码不99| 亚洲一区二区三区三| 久久亚洲电影| 欧美午夜理伦三级在线观看| 韩国精品主播一区二区在线观看| 亚洲日本乱码在线观看| 亚洲女人av| 亚洲人成网站999久久久综合| 亚洲在线第一页| 牛牛精品成人免费视频| 国产精品久久久久av| 影音先锋国产精品| 亚洲综合电影一区二区三区| 亚洲国产高清aⅴ视频| 亚洲男人第一av网站| 女仆av观看一区| 国产色综合久久| 亚洲美女尤物影院| 久久精品人人| 久久9热精品视频| 欧美日韩免费观看一区二区三区| 国产综合久久| 亚洲淫性视频| 一区二区三区四区五区精品视频| 久久久视频精品| 国产精品久久99| 亚洲人成在线观看一区二区| 久久黄色小说| 欧美在线播放一区二区| 欧美日本韩国| 亚洲国产经典视频| 欧美伊人久久久久久午夜久久久久 | 国产在线拍揄自揄视频不卡99| 日韩亚洲国产精品| 91久久精品网| 久久视频国产精品免费视频在线| 国产精品久久久久久五月尺| 亚洲七七久久综合桃花剧情介绍| 欧美中文字幕第一页| 欧美一乱一性一交一视频| 欧美日韩亚洲一区三区 | 亚洲经典自拍| 久久精品一区二区三区四区| 欧美在线视频一区二区三区| 国产精品久久久久久久久久久久| 亚洲精品久久久久久久久久久久 | 亚洲欧美日韩另类| 欧美日韩情趣电影| 亚洲欧洲一区二区在线播放 | 久久精品卡一| 国产欧美一区二区白浆黑人| 亚洲图中文字幕| 亚洲深夜激情| 欧美日韩一区二区三区免费| 日韩亚洲欧美在线观看| 亚洲深夜福利网站| 欧美吻胸吃奶大尺度电影| 日韩亚洲综合在线| 亚洲无线视频| 国产精品xxxxx| 亚洲香蕉成视频在线观看| 亚洲私拍自拍| 国产精品福利久久久| 亚洲特黄一级片| 亚洲欧美日韩高清| 国产精品香蕉在线观看| 亚洲欧美中文日韩v在线观看| 亚洲欧美日韩专区| 国产精品私拍pans大尺度在线| 国产精品99久久不卡二区| 亚洲一区二区免费在线| 国产精品国内视频| 亚洲一区二区三区免费观看| 午夜精品影院| 国产午夜精品麻豆| 久久精品国产69国产精品亚洲| 久久综合久久久久88| 在线欧美福利| 99国产精品久久久久久久久久| 欧美日本一区二区视频在线观看| 99精品欧美一区二区三区综合在线 | 日韩视频中文字幕| 亚洲欧美日韩国产精品| 国产欧美 在线欧美| 欧美中文字幕不卡| 欧美成人午夜激情视频| 日韩亚洲视频| 欧美亚洲一区二区在线| 国产视频久久久久| 亚洲国产视频直播| 欧美日本免费| 亚洲黄色小视频| 欧美一级电影久久| 国产在线乱码一区二区三区| 亚洲欧洲精品一区二区| 欧美日韩系列| 亚洲欧美视频在线观看| 久热精品视频在线观看| 亚洲日本成人| 欧美在线播放视频| 亚洲第一视频网站| 亚洲一区二区3| 国产亚洲欧美aaaa| 亚洲精品欧美激情| 国产精品美女主播在线观看纯欲| 午夜视频一区| 欧美激情一区二区三区在线视频观看| 一区二区久久久久| 久久精品亚洲乱码伦伦中文| 亚洲欧洲日本专区| 欧美与欧洲交xxxx免费观看 | 亚洲黄色一区| 国产精品福利久久久| 久久精品国产久精国产爱| 欧美电影在线| 亚洲一区在线看| 欧美国产精品专区| 亚洲欧美激情视频在线观看一区二区三区 | 国产精品制服诱惑| 亚洲精品免费在线| 国产区精品视频| 99这里只有精品| 国产亚洲午夜| 亚洲少妇在线| 在线观看三级视频欧美| 亚洲欧美激情一区| 91久久久在线| 久久久久久久久久久一区| 亚洲美女黄网| 亚洲国产精品va在线看黑人| 国产精品成av人在线视午夜片| 亚洲激情一区二区三区| 国产日韩欧美不卡在线| 亚洲视频高清| 亚洲国产日韩精品| 久久影视三级福利片| 亚洲午夜久久久久久久久电影网|