防碰撞演算法
A. 求RFID防碰撞演算法改進思路
在SR演算法的基礎上增加了2條命令:Slot0命令使時隙為0的標簽在[0, 1]范圍內隨機選擇一個新的時隙並載入時隙計數器中,時隙不為0的標簽將其時隙加1。Slot1命令使時隙為1的標簽在[0, 1]范圍內隨機選擇一個新的時隙並載入時隙計數器中,時隙不為1的標簽將其時隙加1。
B. 我想學習RFID的防碰撞的演算法,能推薦一個可以實現二進制防碰撞演算法的射頻晶元嗎
智能超市的當然用二進制的比較好了,aloha演算法容易出現標簽飢渴,也就是可能漏讀標簽
C. 求RFID標簽防碰撞演算法: 可以是ALOHA演算法實現或者是二進制樹演算法實現,
RFID(Radio Frequency Identification的),即射頻識別,俗稱電子標簽。
我接觸的主要是用在倉儲和物流上,具體的驅動是由廠家提供,呵呵,估計熟悉的人不多,需要找底層的開發人員才行。
D. rfid防碰撞演算法的成功時隙數怎麼求出來
正常情況下讀寫器某一時刻只能對磁場中的一張射頻IC卡進行讀寫操作。但是當多張IC卡片同時進入讀寫器的射頻場時,讀寫器怎麼辦呢?讀寫器需要選出唯一的一張卡片進行讀寫操作,這就是防沖突。常見的非接觸式智能卡中的防沖突機制主要有:面向比特的防沖突機制,面向時隙的防沖突機制,位和時隙相結合的防沖突機制。
正常情況下讀寫器某一時刻只能對磁場中的一張射頻IC卡進行讀寫操作。但是當多張IC卡片同時進入讀寫器的射頻場時,讀寫器怎麼辦呢?讀寫器需要選出唯一的一張卡片進行讀寫操作,這就是防沖突。
防沖突機制是非接觸式智能IC卡特有的問題。在接觸式智能IC卡的操作中是不存在沖突的,因為接觸式智能卡的讀寫器有一個專門的卡座,而且一個卡座只能插一張卡片,不存在讀寫器同時面對兩張以上卡片的問題。常見的非接觸式智能卡中的防沖突機制主要有以下幾種:
1.面向比特的防沖突機制。
ISO14443A中使用這種防沖突機制,其原理是基於卡片有一個全球唯一的序列號。比如Mifare1卡,每張卡片有一個全球唯一的32位二進制序列號。顯而易見,卡號的每一位上不是「1」就是「0」,而且由於是全世界唯一,所以任何兩張卡片的序列號總有一位的值是不一樣的,也就說總存在某一位,一張卡片上是「0」,而另一張卡片上是「1」。
當兩張以上卡片同時進入射頻場,讀寫器向射頻場發出卡呼叫命令,問射頻場中有沒有卡片。這些卡片同時回答「有卡片」;
然後讀寫器發送防沖突命令「把你們的卡號告訴我」,收到命令後所有卡片同時回送自己的卡號。
可能這些卡片卡號的前幾位都是一樣的。比如前四位都是1010,第五位上有一張卡片是「0」而其他卡片是「1」,於是所有卡片在一起說自己的第五位卡號的時候,由於有卡片說「0」,有卡片說「1」,讀寫器聽出來發生了沖突。
讀寫器檢測到沖突後,對射頻場中的卡片說,讓卡號前四位是「1010」,第五位是「1」的卡片繼續說自己的卡號,其他的卡片不要發言了。
結果第五位是「1」的卡片繼續發言,可能第五位是「1」的卡片不止一張,於是在這些卡片回送卡號的過程中又發生了沖突,讀寫器仍然用上面的辦法讓沖突位是「1」的卡片繼續發言,其他卡片禁止發言,最終經過多次的防沖突循環,當只剩下一張卡片的時候,就沒有沖突了,最後勝出的卡片把自己完整的卡號回送給讀寫器,讀寫器發出卡選擇命令,這張卡片就被選中了,而其他卡片只有等待下次卡呼叫時才能再次參與防沖突過程。
上述防沖突過程中,當沖突發生時,讀寫器總是選擇沖突位為「1」的卡片勝出,當然也可以指定沖突位為「0」的卡片勝出。
上述過程有點擬人化了,實際情況下讀寫器是怎麼知道發生沖突了呢?在前面的數據編碼中我們已經提到,卡片向讀寫器發送命令使用副載波調制的曼側斯特(Manchester)碼,副載波調制碼元的右半部分表示數據「0」,副載波調制碼元的左半部分表示數據「1」,當發生沖突時,由於同時有卡片回送「0」和「1」,導致整個碼元都有副載波調制,讀寫器收到這樣的碼元,就知道發生沖突了。
這種方法可以保證任何情況下都能選出一張卡片,即使把全世界同類型的所有卡片都拿來防沖突,最多經過32個防沖突循環就能選出一張卡片。缺點是由於卡序列號全世界唯一,而卡號的長度是固定的,所以某一類型的卡片的生產數量也是一定的,比如常見的Mifare1卡,由於只有4個位元組的卡序列號,所以其生產數量最多為2的32次方,即4294967296張。
2.面向時隙的防沖突機制
ISO14443B中使用這種防沖突機制。這里的時隙(timeslot)其實就是個序號。這個序號的取值范圍由讀寫器指定,可能的范圍有1-1、1-2、1-4、1-8、1-16。當兩張以上卡片同時進入射頻場,讀寫器向射頻場發出卡呼叫命令,命令中指定了時隙的范圍,讓卡片在這個指定的范圍內隨機選擇一個數作為自己的臨時識別號。然後讀寫器從1開始叫號,如果叫到某個號恰好只有一張卡片選擇了這個號,則這張卡片被選中勝出。如果叫到的號沒有卡片應答或者有多於一張卡片應答,則繼續向下叫號。如果取值范圍內的所有號都叫了一遍還沒有選出一張卡片,則重新讓卡片隨機選擇臨時識別號,直到叫出一張卡片為止。
這種辦法不要求卡片有一個全球唯一序列號,所以卡片的生產數量沒有限制,但是理論上存在一種可能,就是永遠也選不出一張卡片來。
Felica採用的也是這種機制。
3.位和時隙相結合的防沖突機制
ISO15693中使用這種機制。一方面每張卡片有一個8位元組的全球唯一序列號,另一方面讀寫器在防沖突的過程中也使用時隙叫號的方式,不過這里的號不是卡片隨機選擇的,而是卡片唯一序列號的一部分。
叫號的數值范圍分為0-1和0-15兩種。其大體過程是,當有多張卡片進入射頻場,讀寫器發出清點請求命令,假如指定卡片的叫號范圍是0-15,則卡片序列號最低4位為0000的卡片回送自己的7位元組序列號。如果沒有沖突,卡片的序列號就被登記在PCD中。然後讀寫器發送一個幀結束標志,表示讓卡片序列號最低4位為0001的卡片作出應答;之後讀寫器每發送一個幀結束標志,表示序列號的最低4位加1,直到最低4位為1111的卡片被要求應答。如果此過程中某一個卡片回送序列號時沒有發生沖突,讀寫器就可選擇此張卡片;如果巡檢過程中沒有卡片反應,表示射頻場中沒有卡片;如果有卡片反應的時隙發生了沖突,比如最低4位是1010的卡片回送卡號時發生了沖突,則讀寫器在下一次防沖突循環中指定只有最低4位是1010的卡片參與防沖突,然後用卡片的5-8位作為時隙,重復前面的巡檢。如果被叫卡片的5-8位時隙也相同,之後再用卡片的9-12位作為時隙,重復前面的巡檢,依次類推。讀寫器可以從低位起指定任意位數的序列號,讓卡號低位和指定的低位序列號相同的卡片參與防沖突循環,卡片用指定號前面的一位或4位作為時隙對讀寫器的叫號作出應答。由於卡片的序列號全球唯一,所以任何兩張卡片總有某個連續的4位二進制數不一樣,因而總能選出一張卡片。需要指出的是,當選定的時隙數為1時,這種防沖突機制等同於面向比特的防沖突機制。
另外需要說明的是,TTF(Tag Talk First)的卡片一般是無法防沖突的。這種卡片一進入射頻場就主動發送自己的識別號,當有多張卡片同時進入射頻場時就會發生不讀卡的現象。這時只有靠卡片的持有者自己去避免沖突了。
參考:http://www.necrfid.com/rfid/knowledge/225.html
E. 關於畢業設計 RFID防碰撞演算法分析 思路
有的怎麼發給你
F. 關於RFID防碰撞演算法中的Q值演算法
Q=S/G,CN=1/Q,so C=G/(S*N)
G. C正在做RFID系統防碰撞演算法的研究,急求RFID系統防碰撞演算法的C代碼。希望做過同樣畢業設計的同學幫個忙!
你調用延時函數即可
H. RFID有幾種防碰撞演算法
基本上目前有兩種,一種是二分法,也叫二進制樹,另外一種是 ALOHA。基於時隙概率的演算法。
I. 求二進制防碰撞演算法的matlab模擬演算法。
假如你想要編碼為x,設x的范圍是【min,max】,二進制編碼長度為10,那二你在MATLAB2008里輸入 gaoptimset 會彈出遺傳演算法的所有的設置選項及默認項。
J. 常用的防碰撞演算法有哪些它們有什麼特點
在10g中有LAST_VALUE+IGNORE NULLS很好解決,如下:
dingjun123@ORADB> SELECT ID,
2 last_value(val IGNORE NULLS) over(ORDER BY ID) val,
3 cate
4 FROM t;
ID VAL CATE
---------- ---------- ----------
1 VAL1 CATE0
2 VAL1 CATE0
3 VAL1 CATE0
4 VAL1 CATE0
5 VAL1 CATE0
6 VAL6 CATE1
7 VAL6 CATE1
8 VAL6 CATE1
9 VAL6 CATE1
9 rows selected.