999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

單片機實現海明碼糾錯原理的研究

2012-12-01 10:08:40張福軍宋鐵軍
自動化儀表 2012年4期
關鍵詞:單片機

張福軍 宋鐵軍 劉 坤

(黑龍江八一農墾大學信息技術學院1,黑龍江 大慶 163319;中國鐵通大慶分公司2,黑龍江 大慶 163453)

0 引言

在微機系統的數字信號傳輸過程中,信息不可避免地受到各種干擾的影響,使信號波形發生變化,由此而產生錯誤信息。因此,如何及時發現錯誤并糾正錯誤信息,在數字通信中顯得尤為重要[1]。在實際應用中,通常利用單片機的串行雙工通信方式完成信息的傳輸,以保證單片機之間的通信準確,降低誤碼率。

一般采用的串行雙工通信方式有兩種,一是提高信道通信質量,降低由于信道本身引起的誤碼;二是在信道本身誤碼率無法改變的情況下,采用差錯控制技術,在數據發送端對信息進行抗干擾編碼,在數據接收端對信息進行譯碼,從而發現錯誤碼字或自動糾正錯誤碼字,提高數據傳輸的準確度。對于確定的系統而言,通常采用第二種方法,具體思想為在發送端的數據序列中增加一些數位,稱為監督位,這些監督位和數據位之間有一定的關系。接收端利用這種關系,還原真實數據并進行錯誤判斷。這種方法需要在線路收發端加裝編譯碼控制電路,利用硬件完成糾錯編碼功能。在實時性允許的現場情況下,可以利用軟件來完成硬件功能,從而降低成本、簡化電路,并根據實際情況,靈活地選擇適當的編碼碼制[2]。

海明碼是目前比較成熟和具有一定糾錯能力的碼制,本文就是利用單片機實現海明碼軟件編碼和譯碼的過程。

1 海明碼的編碼原理

1.1 海明碼的基本原理

人們從不同的角度和思路出發,創造了多種差錯控制編碼,海明碼就是其中之一。海明碼是1950年由Hamming R提出的、可以糾正一位差錯的分組碼。它利用在m個信息位上,增加k個校驗位,構成一個n=(m+k)位的碼字,然后利用k個校驗關系式產生的k個校正因子來區分是否有錯和確定在碼字中的n個不同位置的一位差錯。為了能夠糾正單個錯誤,必須滿足下列Hamming不等式:

對于式(1),可以理解為假設n位信息中有一位出錯,必然產生n種不正確的代碼,而n位信息中含有k個校驗位,所以在2k個狀態中,用(2k-1)個狀態來分別代表出現一位錯碼的n種狀態,而剩下的一個表示正確的代碼。這樣可以知道出錯的碼位并進行糾正。

根據Hamming不等式可以得出對應不同校驗位的編碼長度,如表1所示。

表1 校驗位對應的編碼長度Tab.1 Encoding lengths vs.checking bit

由表1可以看出,當數據位較少時,需要附加的校驗位較多,但隨著數據位數的增加,所附加的校驗位就相對較少。

1.2 海明碼的編譯碼過程

利用單片機軟件實現海明碼的發送與接收,必須首先了解海明碼的編碼規則。海明碼編碼規則如下。

①校驗位與數據位之和為n,每個校驗位ki被分配在海明碼的第2i-1的位置上,其他位是數據位,并且按照從低位向高位依次排列的關系分配數據位。

②海明碼的每一位碼(包括校驗位和數據位)是由多個校驗位進行校驗的,被校驗的每一位位置號等于校驗它的各校驗位的位置號之和。只有這樣安排,才能從校驗的結果中反映出錯位的位置號[3]。

假設待發送的數據信息為一個字節,由表1可知,需要4位校驗位,這樣16種狀態可以包含12位數據中的每一位,其中包括8位數據位和4位校驗位。

待發送的 12 位數據為:M1、M2、M3、M4、M5、M6、M7、M8,校驗位為 K1、K2、K3、K4。根據海明碼編碼規則①,海明碼為 K1、K2、M1、K3、M2、M3、M4、K4、M5、M6、M7、M8。所有數據均為左邊為低位、右邊為高位。根據海明碼編碼規則②,生成的海明碼校驗位如表2所示。

表2 海明碼校驗位Tab.2 Hamming code checking bit

根據表1可以得出校驗位與需要校驗位之間的關系。K1校驗位對應的需校驗位的位編號最低位都為“1”,同理K2校驗位對應的需校驗位的位編號的倒數第二位都為“1”。依次類推它們與相應位的關系,可以得到校驗方程組為:

在數據的接收端需要對信息進行解碼,也就是譯碼,在譯碼過程中最重要的操作是獲得狀態碼。這里狀態碼用 S1、S2、S3、S4表示,狀態碼通過校驗方程得到。每個方程產生一個相應的值,把這些值組合起來就可以判斷出是否有錯誤以及錯誤的位置。檢驗方程如式(3)所示。

狀態碼與錯誤信息位的對應關系如表3所示[4-5],若沒有錯誤,狀態碼為 0000。

表3 狀態碼與錯誤信息位的對應關系Tab.3 Status codes vs.error information bit

根據表3的狀態碼對應關系,在接收端只要得到狀態碼即可糾正錯誤的信息位,實現糾錯的功能。

2 單片機海明碼糾錯原理

上述海明碼編譯碼的運算思想,可以用單片機軟硬件實現,它們各有優缺點。利用單片機配合數字邏輯部件實現,可大大提高數據的可靠性,串行數據傳輸具有編譯碼速度快等特點,但需要一定的硬件電路支持,這無疑增加了數據傳輸系統的成本和復雜性。下面介紹一下用單片機軟件實現編譯碼的過程。

2.1 單片機軟件實現海明碼的發送

海明碼編碼、發送的基本思想是在數據存儲器的M1區中每個單位存放1個8位數據,首先按照式(1)計算出相應的校驗位,然后根據海明碼編碼規則進行排列,并存放在存儲器的M2區中,兩個相鄰的存儲單元存放的是一幀數據,發送時將M2區中的內容一次性發往接收端。單片機采用比較常用的MCS-51單片機,發送機發送程序流程圖如圖1所示。

圖1 發送程序流程圖Fig.1 Flowchart of sending program

初始化程序包括定時器T1、串行口、M1和M2區地址指針、海明碼長度、累加和R等的初始化。發送機首先發送海明碼數據塊長度和累加和,若接收機不能夠正確接收,回答有錯(FFH),則發送機重新發送,直至接收機回答正確(00H),發送機開始發送海明碼數據信息,直到全部數據信息發送完畢[6]。MCS-51系列單片機內部具有位尋址功能的布爾處理器,位地址為20H~2FH,還具有位尋址的寄存器和累加器以及位操作指令。使用布爾處理器可以很容易地完成海明碼的編碼和譯碼計算,這些計算包括數據發送端校驗位的計算和數據接收端狀態碼的計算[7]。海明碼發送機軟件編碼的程序流程圖如圖2所示。

圖2 軟件編碼程序流程圖Fig.2 Flowchart of software encoding procedures

2.2 單片機軟件實現海明碼的接收

接收機的程序與發送機相對應。接收機首先接收數據塊長度和累加和,對接收的數據進行校驗。如果校驗有錯,則向發送機回送出錯字符(FFH),并重新接收數據塊長度和累加和;若校驗正確,則向發送機回送字符(00H),開始接收數據信息,并存入接收機的M2區。然后對M2區數據進行解碼,完成數據位錯碼的檢測和糾正。最后將正確的數據按發送格式存于接收機的M1區[8]。接收機接收程序流程圖與發送機發送程序流程圖類似,這里不再敘述。接收機海明碼軟件譯碼程序流程圖如圖3所示。

圖3 軟件解碼程序流程圖Fig.3 Flowchart of software decoding procedures

在接收端,當計算得到狀態碼后,還要根據狀態碼判斷接收數據是否有錯,若有錯,要找出出錯位置并予以糾正。為了便于操作,可以將表3的狀態碼對應錯誤位置,按照一定的順序存放在單片機程序存儲器中,其首地址為TAB,單元存放的內容為錯碼對應的位置,用“1”表示。當發現接收數據有錯時,只需將對應的地址單元內容與相應的數據單元內容相異或,即可完成錯碼的糾正。最后將海明碼還原出數據信息,存儲到接收機數據存儲器的M1區,從而完成數據接收與校驗的過程[9]。

3 結束語

由上述海明碼原理及校驗位和狀態碼關系式的具體構造過程和方法來看,海明碼可以發現并自動糾正一位差錯,能夠把差錯限制在盡可能小的范圍內且不需要發送機重新發送,有效節約了通信網絡中的信息流量。利用單片機軟件實現糾錯編解碼,不僅可以節約硬件資源,且比較容易實現,只要在發送機、接收機中分別加入數據編碼和解碼子程序即可。利用匯編語言或者C語言都很容易實現這一過程[10]。在實際應用中,錯碼的位置與狀態碼的對應關系可以不同,有多種組合,這由程序編寫人員確定。對應關系不同,則所得到的校驗位和狀態碼關系式也不相同,可見,海明碼的構造是很靈活的。

[1]趙軍軍.海明碼在微機信息傳輸中的糾錯原理與應用[J].寶雞文理學院學報,1997(1):54-57.

[2]梁紅,王英煥.軟件差錯控制在單片機通信中的應用[J].鞍山鋼鐵學院學報,1998,21(4):31 -33.

[3]須文波,姚紫陽.擴展海明碼在嵌入式系統通信中的應用[J].微處理機,2006(6):110 -113.

[4]于海雯.海明碼的原理及其構造方法[J].計算機與現代化,2001,72(2):148 -150.

[5]錢華明,李仲玉,馬吉臣,等.海明碼在提高導航數據傳輸可靠性中的應用[J].微計算機信息,2008,24(12):225 -227.

[6]邸德家.海明碼的編碼解碼程序實現[J].內蒙古石油化工,2007(2):115-117.

[7]陳雪麗.單片機原理及接口技術[M].北京:化學工業出版社,2008:13-17.

[8]張濤,王金崗.單片機原理與接口技術[M].北京:冶金工業出版社,2007:168-171.

[9]張玲,李磊民,劉剛.海明碼糾錯在無線遙控中的應用[J].通信技術,2007,40(11):17 -19.

[10]呂菲,劉大偉.糾錯碼在通信系統中的應用[J].軟件導刊,2008,7(4):17 -18.

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 国产精品女同一区三区五区| 欧美亚洲国产视频| 无码网站免费观看| 成人av专区精品无码国产| 欧美成人a∨视频免费观看| 亚洲三级视频在线观看| 国产产在线精品亚洲aavv| 欧美高清国产| 欧美成在线视频| 色婷婷丁香| 国产自在自线午夜精品视频| 都市激情亚洲综合久久| 久久青草热| 天天视频在线91频| 国产69精品久久久久孕妇大杂乱| 精品国产Av电影无码久久久| 亚洲第一国产综合| 国产精品一区二区国产主播| 久久精品人人做人人综合试看| 国产精品无码一二三视频| a毛片在线播放| 成人在线不卡视频| 亚洲精品中文字幕无乱码| 五月天久久综合| 日本中文字幕久久网站| 中文一区二区视频| 亚洲日本韩在线观看| 极品av一区二区| 国产在线八区| 91久久偷偷做嫩草影院免费看 | 内射人妻无套中出无码| 激情五月婷婷综合网| 特黄日韩免费一区二区三区| 国产97区一区二区三区无码| 69国产精品视频免费| 性喷潮久久久久久久久| 91美女视频在线| 久久性视频| 一级做a爰片久久免费| 国产99热| 黄色网页在线播放| 超碰91免费人妻| 国产女人在线观看| 国产欧美日韩专区发布| 久99久热只有精品国产15| 亚洲日韩每日更新| 99热这里只有精品在线播放| 国产精品真实对白精彩久久 | 国产欧美日韩va另类在线播放| 成人精品免费视频| 无码专区在线观看| 中文字幕久久波多野结衣| 91小视频在线| 日韩国产精品无码一区二区三区 | 丁香五月婷婷激情基地| 欧美A级V片在线观看| 亚洲成人免费在线| 国产精品19p| 国产精品99一区不卡| 国内精品久久人妻无码大片高| 免费人成网站在线高清| 国内精品视频区在线2021| 99热这里只有精品久久免费| 欧美日韩国产精品综合| 中文字幕乱码中文乱码51精品| 欧美日韩国产综合视频在线观看| 亚洲天堂首页| 亚洲αv毛片| 最新精品国偷自产在线| 亚洲欧洲AV一区二区三区| 成人精品在线观看| 亚洲欧美成人网| 91麻豆精品国产91久久久久| 欧美激情视频一区二区三区免费| 日本久久网站| 香蕉蕉亚亚洲aav综合| 91在线视频福利| 夜夜爽免费视频| 狠狠v日韩v欧美v| 精品成人一区二区三区电影| 国产理论一区| 成人午夜亚洲影视在线观看|