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