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