通信原理差錯控制編碼 [張力檢測系統(tǒng)中差錯控制編碼的原理與實現]
發(fā)布時間:2020-02-16 來源: 散文精選 點擊:
摘要:在鋼絲繩張力無線檢測系統(tǒng)數據傳輸過程中,由于受傳輸信道介質和外界環(huán)境干擾影響,導致數據傳輸錯誤。根據差錯控制編碼的基本原理,本文介紹一種能檢測兩位錯誤并糾正一位錯誤的差錯控制技術,并在Keil C51中進行C語言程序設計實現此算法。
關鍵詞:張力檢測;編碼;譯碼;漢明碼;KeilC51
中圖分類號:TP274 文獻標識碼:A
隨著現代通信技術和計算機技術的高速發(fā)展,無線數字通信的應用越來越廣泛。鋼絲繩張力檢測系統(tǒng)就是一個很好的例子。此系統(tǒng)將數字無線通信、測量和計算機技術結合在一起,其功能是將電梯、纜車或提升機鋼絲繩張力檢測信息通過測力傳感器轉換成數字信號, 通過數據采集處理與移動數據通信發(fā)射裝置,在接收端經過數據接收與數據處理等裝置,對原始數據進行處理、分析和計算,輸出人們想要的結果,并作出相應的判斷與控制。使用該系統(tǒng),可為提升機安全、經濟地運行提供重要保證,從而大大地提高提升系統(tǒng)可靠性,減少事故,防止人員傷亡。
1 編譯碼算法討論
1.1 編碼原理
漢明碼就是在一組代碼中加入一定數量的監(jiān)督碼元。若某個信息位錯,引起幾組奇偶校驗結果均出錯,由此根據奇偶組的檢錯,確定誤碼信息位及誤碼性質。
一般說來,若碼長為n,信息位數為k,則監(jiān)督位數?r=n-k?。編碼效率為k/n。如果希望用r個監(jiān)督位構造出r個監(jiān)督關系式來指示一位錯碼中的n種可能位置,則要求:
1.2 設計思想
在提升機鋼絲繩張力檢測系統(tǒng)中需要同時檢測好幾根鋼絲繩的張力均衡情況,因此在傳送數據的時候需要將這幾路信號連續(xù)傳送出去。在測力傳感器將檢測信息轉換成數字信號后,鋼絲繩張力無線檢測系統(tǒng)上位機用來對這些數字信號進行編碼。在數據接收端,下位機則用來進行譯碼取出有效數據。
假定數據塊長度為8個字節(jié),發(fā)送前將高四位和低四位取出分別進行編碼再進行發(fā)送(見圖1)。在接收端,同編碼一樣,譯碼也是分開進行:接收到16位數據后,分別取出高八位和低八位進行譯碼,并提取有用信息,即信息位,得到編碼前的原始數據。
1.2.1 編碼設計
由于單片機串口串行發(fā)送數據一般都是8 位數據位,所以根據漢明碼不等式,需要4 位監(jiān)督位,即 r = 4 ,用s3 s2 s1 s0 表示四個監(jiān)督關系式中的校正子,信息碼位k = 4。這樣就構成(8 ,4) 漢明碼,此編碼效率為50%。其構成見表1 所示。這里用a7 a6 a5 a4 a3 a2 a1 a0 表示8 個碼元,s0 s1 s2 s3 表示四個監(jiān)督關系式中的校正子。則s0 s1 s2 的值與錯碼位置的對應關系可以規(guī)定如表2 所示(當然我們可以規(guī)定成另外一種對應關系)。s3的值在下面1.2.2譯碼設計這一節(jié)中確定。
由表1知,發(fā)送編碼時,按下式決定監(jiān)督位
當s3為0時表示沒有錯碼或者有兩個錯碼
當s3為1時表示存在一個錯碼
現根據s3s2s1s0的取值進行錯碼分析從而進行檢測和糾正
討論:
(1)s3=0
當s2s1s0不為000 (即a1,a2………a7中有一個錯碼)
當s2s1s0為000(即a1,a2………a7中沒有錯碼)
沒有錯碼
(2)s3=1
綜合以上討論情況得出此種編碼方式可以滿足糾正一個錯碼檢測兩個錯碼的要求。下面進一步討論在Keil C51進行C語言編程實現。
2 軟件實現
上述設計思想可以通過一定的數字邏輯器件來實現,將其運用于串行數據通信中,可提高數據的可靠性,并且編譯碼速度也較快。但是這需要一定的硬件電路來支持,因此也就增加了設備的成本和復雜性。下面敘述的用軟件實現的方法,能夠在不增加任何硬件的情況下,完成錯碼的糾正和檢測,從而也更好地改善了傳輸系統(tǒng)的性能。
軟件實現的基本思想:先構造一個編碼表,因此數據的編碼可以通過查表來實現,具體流程圖見圖2。在數據接收端,當一數據塊接收完畢,取出高8位和低8位,通過計算校正因子,判斷接收數據有無錯誤,若有一個錯誤,則通過表2確定錯碼位置,然后用取反指令即可。若有兩個或以上錯誤,則重新發(fā)送數據。接收程序流程圖見圖3。
MCS-51系列單片機在串行數據傳輸過程中用軟件實現流程如圖2~圖4所示。為敘述方便,假定A機發(fā)送,B機接收。在A機開始發(fā)送時,先送一個“AA”信號,B機收到后回答一個“BB”,表示同意接收。當A機收到“BB”后,開始發(fā)送編碼后的數據信息,直到全部數據信息發(fā)送完畢。接收程序與此對應,B機首先和A機聯(lián)絡,然后接收數據,待全部數據接收完畢,再對接收的數據進行譯碼,完成數據位錯碼的檢測和糾正,當檢測到兩個或兩個以上錯碼時,向A機回送“CC”,重新接收數據塊長度。
在實時的,動態(tài)的單片機級的通信中要有快速的算法。因為在動態(tài)中位與位的時距t往往只有幾十微秒,以9600b/s的傳輸速度為例,t=104微秒。在這104微秒中要完成譯碼過程,否則,現有的碼未檢測完畢,下一個碼已經到了。在Keil C51中運行上述程序,運行時間僅為幾十微秒,速度較快,可以滿足要求。
至此,整個檢測誤碼糾正誤碼過程結束。
3 結語
單片機之間通過無線方式進行數據通信,由于工業(yè)現場的各種干擾,使得串行數據傳輸經常出現誤碼,從而影響整個提升機鋼絲繩張力檢測系統(tǒng)的可靠性。本文結合漢明碼和奇偶校驗碼編碼思想,構造了一種糾正一位錯碼檢測兩位錯碼的編碼算法。通過軟件實現提高了整個傳輸系統(tǒng)的性價比。
參考文獻
[1]樊昌信. 通信原理[M]. 北京: 國防工業(yè)出版社, 2001.
[2]王建校, 楊建國等. 51系列單片機及C51程序設計[M]. 北京: 科學出版社, 2002.
[3]李群芳,黃建. 單片微型計算機與接口技術[M]. 北京: 電子工業(yè)出版社, 2001.
[4]徐愛鈞, 彭秀華. 單片機高級語言C51應用程序設計[M]. 北京: 電子工業(yè)出版社, 1998.
[5]劉保錄. 基于單片機的電機綜合參數測試儀設計[J]. 蘭州工業(yè)高等專科學校學報, 2003( 2).
相關熱詞搜索:差錯 檢測系統(tǒng) 編碼 張力檢測系統(tǒng)中差錯控制編碼的原理與實現 差錯控制技術 控制系統(tǒng)的頻率特性實驗報告
熱點文章閱讀