2011-10-20 24 views
1

我能在Google上找到的最好的東西是裏德 - 所羅門編碼;但看起來很激烈。通過軟件提高IR串行可靠性

基本上,我正在與一個具有串行端口的小型資源受限設備進行通信。通信是通過紅外線;串行端口直接連接到IR編碼器/解碼器硬件,然後再連接到IR轉接器。

通信是半雙工。這是一個硬件限制,因爲紅外線轉換者會看到他們自己的傳輸。我與主機輪詢並在客戶端使用中斷來知道何時傳回。

我遇到的問題是硬件對靜電放電非常敏感。我採取了所有實際的硬件措施來減少這個問題,但他們不夠好;我現在正在研究軟件問題。

任何人都可以提出錯誤恢復的任何實現,理想情況下,不需要重新傳輸?

越簡單越好。如果有免費的圖書館,更好!

+1

裏德 - 所羅門似乎是一個糾錯的標準。我沒有經驗與下面,只是發現它的谷歌搜索,所以reliabiltu檢查將取決於你,但庫的RS在那裏: – gnometorule

+1

http://www.ka9q.net/code/fec/ – gnometorule

回答

2

如果你不想使用Reed-Solomon,那麼Golay編碼怎麼樣?它是一個非常小的算法,並且這個代碼完全在一個C文件中實現它,並且在商業項目中顯示猶太潔淨(儘管它不是標準的開源許可證之一)。

你也可以找到其他的實現。 Golay碼是用於低比特率數字無線電系統中錯誤恢復的幾種機制之一。

link to source code