自動應答(Auto-ACK)和重傳功能(ReSend)是我們無線通信中長談的問題,數據通過調制電路,輻射到空中以后,如何判斷對方是否收到該數據?如果沒收到又會通過什么機制來處理本次的異常呢?這可以通過一個有意思“兩軍問題”來說明。
圖一
如圖一所示,白軍駐扎在藍軍之間,白軍比任何一支藍軍都更為強大,但是藍軍若能同時合力進攻則能夠打敗白軍,他們不能夠遠程的溝通,只能派遣通信兵穿過通知對方藍軍協商進攻時間。是否存在一個能使藍軍必勝的通信協議,這就是兩軍問題。
通信兵得經過敵人的溝渠,在這過程中他可能被捕,也就是說,兩軍問題中傳遞消息路徑不可靠的。如果傳遞消息的信道是可靠的,兩軍問題可解。
然而,并不存在這樣一種路徑,所以兩軍問題在經典情境下是不可解的,為什么呢?
倘若藍軍1(簡稱1)向藍軍2(簡稱2)派出了通信兵,若1要知道2是否收到了自己的信息,1必須要求2給自己傳輸一個回執(zhí),說“我收到了消息”,然而,就算2已經送出了這條信息,2也不能確定1就一定會在這個時間進攻,因為2發(fā)出的回執(zhí)1并不一定能夠收到。所以,1必須再給2發(fā)出一個回執(zhí)說“我收到了”,但是1也不會知道2是否收到了這樣一個回執(zhí),所以1還會期待一個2的回執(zhí)。
在這個系統中永遠需要存在一個回執(zhí),這對于兩方來說都并不一定能夠達成十足的確信,并且我們還沒有考慮,通信兵的信息還有可能被篡改。由此可見,經典情形下兩軍問題是不可解的,并不存在一個能使藍軍一定勝利的通信協議。
兩軍問題作為現代通信系統中必須解決的問題,我們尚不能將之完全解決,這意味著你我傳輸信息時仍然可能出現丟失、監(jiān)聽或篡改的情況。但我們能不能通過一種相對可靠的方式來解決大部分情形呢?
在我們實際通信中,確立通信可靠當然不會如兩軍問題一樣無限的傳遞下去,如何解決呢,便是加入了Acknowledgement(ACK)機制,如圖二所示。
圖二
這是我們通信交互中的比較常用的數據判斷方式,當發(fā)送方發(fā)出一個數據后,如果接收方收到數據,便會切換到發(fā)送模式,發(fā)出一個ACK幀,此時如果發(fā)送方收到了ACK幀,便確定此數據發(fā)送成功,本次通信完成。那么如果發(fā)送方沒有收到ACK幀呢?我們該如何處理,接下來我們引入重發(fā)機制。
重傳機制通過發(fā)送數據后是否收到接收方發(fā)來的ACK來確定,如果沒有收到將會由用戶或者MCU來判斷是否繼續(xù)發(fā)包,這便是重發(fā)機制,如圖三所示,在第一次發(fā)送完成后,發(fā)送方并沒有接收到ACK響應,于是在接下來又重發(fā)了第二次,此時接收方打開了接受,并回應了發(fā)送方ACK,此時標志通信完成。
圖三
綜上可以看出,自動應答和重傳機制適用于所有的通信領域,通過這2個互補的方式增強通信穩(wěn)定性,保證數據的有效傳,在工業(yè)現場,電磁干擾會特別突出,當發(fā)送方未收到ACK響應時,便標志通信失敗,直接明了的告訴用戶,接下來交由用戶控制和判斷,當這種情況無法避免時,我們就需要切換信道,增強發(fā)送功率,或者加入路由,通過多節(jié)點路由的方式讓無線數據包能抵御空中的各種干擾。
億佰特人每一天都致力于更好的助力物聯化、智能化、自動化的發(fā)展,提升資源利用率,更多產品更多資料,感興趣的小伙伴可以登錄我們的官網進行了解,還有客服在線答疑哦!
7 X 24 銷售服務熱線
4000-330-990深圳辦事處柯經理:18218726658 無錫辦事處劉經理:13558641933
成都總部銷售經理:
秦 科(無線模塊):18884314654 馮子恒(無線模塊):18828049434
蔡友銀(無線模塊):13882211021 葛宇龍(通信設備):19138800613
胡兵(外貿銷售經理):18584911141、 sales06@ebyte.com
業(yè)務郵箱:support@cdebyte.com 全國銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號B5棟(前臺座機:028-61543675)
?? 成都億佰特電子科技有限公司【版權所有】 蜀ICP備13019384號