有源RFID系統中可靠通信的研究
2.3 防沖突處理
有源RFID系統實現的重點是防碰撞算法的實現。目前。這類算法的實現方法有空分多址(SDMA)、頻分多址(FDMA)、碼分多址(CDMA)和時分多址(TD-MA)等。該設計方案中采用ETSI 302 208標準中基于載波偵聽(CSMA)的方法。CSMA是一種分布式介質訪問控制協議,在讀寫器覆蓋范圍內,各有源電子標簽都能獨立地決定數據幀的發送和接受。
每個有源電子標簽在發送數據幀之前,首先要進行載波監聽,只有介質空閑時,才允許發送幀,與FDMA和TDMA相比,能更好地利用資源。因為這種通信方式在發送數據之前,一直在檢測空氣中是否存在相同頻率的載波,如果有相同頻率的載波,就不發送數據;如果空氣中沒有相同頻率的載波,則表明現在的空間資源沒有被占用,可以發送數據。這樣,不僅提高了空間資源的利用效率,同時也提高了通信的可靠性。
利用CC2510支持傳輸前自動清理信道訪問(CCA)的功能,實現CSMA。電子標簽初始化完成后,程序進入主循環程序。電子標簽開始載波監聽,當CCA不為1時,表示空氣中沒有相同的載波數據時便發送相應的數據,各個電子標簽采用競爭的方式發送。CSMA發送流程圖如圖3所示。本文引用地址:http://cqxgywz.com/article/157305.htm

2.4 重傳機制
重傳機制主要采用ACK(acknowledge)方式,即發送方為發送的每一數據包設置緩存和相應的重發定時器,若在定時器超時之前收到來自目的節點對此數據包的ACK控制包,則認為此數據包已經成功地傳送。此時,取消對該數據包的緩存和定時,否則,將重發此數據包,并重新設置定時器。對于每個數據包,接收方都需要反饋ACK。
重傳機制主要由以下功能函數實現。Init()函數用于設備初始化,設置DMA、時鐘等;Send()函數用于發送數據包;ackTimeolJt()函數用于沒有在規定時間內收到ACK,而重發數據包;waitForAck()函數用于等待接受ACK,既定時間內,收到ACK標示為T,反之標示為F;aekReceived()函數用于收到ACK,取消重傳;Receive()函數用于接收規定格式的數據包;dataCheck()函數用于檢測數據的完整和可靠;sendAck()函數用于送ACK反饋給發送方。重傳機制程序流程圖如圖4所示。













評論