新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Atmega16的FEC設(shè)計(jì)與實(shí)現(xiàn)

基于Atmega16的FEC設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2017-06-04 來(lái)源:網(wǎng)絡(luò) 收藏

對(duì)于工業(yè)級(jí)通信系統(tǒng),監(jiān)測(cè)數(shù)據(jù)與控制命令傳輸?shù)臏?zhǔn)確性顯得尤為重要。尤其是某些重要的監(jiān)測(cè)數(shù)據(jù)(例如煤礦安全監(jiān)控系統(tǒng)中的瓦斯監(jiān)測(cè)數(shù)據(jù)等),原則上要求達(dá)到100%的準(zhǔn)確率,但在實(shí)際通信中這是不可能做到的,通常只能要求誤碼率在10-6或更低,這就要求系統(tǒng)具有高效的糾錯(cuò)功能[1]。本文基于Atmel公司的MEGA系列高性能單片機(jī),通過(guò)采用(12,8,4)漢明碼與交織技術(shù)相結(jié)合的方法實(shí)現(xiàn)了前向糾錯(cuò)編碼(FEC)方案,并利用TI公司的CC1100芯片構(gòu)建無(wú)線(xiàn)通信平臺(tái),在實(shí)際工業(yè)環(huán)境中進(jìn)行了測(cè)試。在不加任何FEC編碼的情況下,調(diào)制方式為GMSK,發(fā)射功率為-30 dBm,接收靈敏度為-105 dBm,通信波特率為9.6 kb/s,可靠通信距離為10 m;加入FEC編碼方案,其他條件不變的情況下,可靠通信距離提高到12 m,可見(jiàn)經(jīng)過(guò)FEC信道編碼的通信系統(tǒng)可以有效提高無(wú)線(xiàn)信號(hào)可靠傳輸?shù)木嚯x。

1 漢明碼與交織技術(shù)

漢明碼(Hamming Code)由Richard Hamming于1950年提出,它屬于線(xiàn)性分組編碼方式。設(shè)原代碼的碼長(zhǎng)為k bit,附加糾錯(cuò)編碼部分為r bit,當(dāng)碼字長(zhǎng)度n=2r-1,r=n-k,r=1,2,…時(shí)就稱(chēng)這種線(xiàn)性分組碼為漢明碼[2-3]。其基本原理是將信息碼元與監(jiān)督碼元通過(guò)線(xiàn)性方程式聯(lián)系起來(lái),每一個(gè)監(jiān)督位被編在傳輸碼字的特定比特位置上。系統(tǒng)對(duì)于錯(cuò)誤的數(shù)位無(wú)論是原有信息位中的,還是附加監(jiān)督位中的都能把它分離出來(lái)[4]。

信息傳輸中,信道噪聲干擾不僅使原代碼的每一位可能出錯(cuò),而且附加糾錯(cuò)位也可能出錯(cuò),故具有“一個(gè)差錯(cuò)”的情況共有k+r種,加上“正確”狀態(tài)共有k+r+1種狀態(tài),而r比特附加糾錯(cuò)位要能分辨這k+r+1種狀態(tài)。

對(duì)k位碼字的漢明碼進(jìn)行編碼,所需步驟如下:
(1)確定最小的監(jiān)督位數(shù)r,將它們記成D1,D2,…,Dr,每個(gè)監(jiān)督位符合不同的奇偶測(cè)試規(guī)定;
(2)原有信息和r個(gè)監(jiān)督位一起編成長(zhǎng)為r+k位的新碼字,選擇r監(jiān)督位(0或1)以滿(mǎn)足必要的奇偶條件;
(3)對(duì)所接收的信息作所需的r個(gè)奇偶檢查;
(4)如果所有的奇偶檢查結(jié)果均正確,則認(rèn)為信息無(wú)誤;如果發(fā)現(xiàn)有一個(gè)或多個(gè)錯(cuò)了,則錯(cuò)誤的位由這些檢查的結(jié)果來(lái)唯一地確定。

漢明碼是一種能糾一位錯(cuò)的線(xiàn)性分組碼, 由于它的編譯碼簡(jiǎn)單,在數(shù)據(jù)通信和計(jì)算機(jī)存儲(chǔ)系統(tǒng)中廣泛應(yīng)用。然而漢明碼只能糾正一個(gè)錯(cuò)誤,因此,為了使糾錯(cuò)碼能更好地抵抗由噪聲和干擾引起的突發(fā)錯(cuò)誤,避免突發(fā)的長(zhǎng)干擾或者深衰落,在實(shí)際應(yīng)用中往往結(jié)合數(shù)據(jù)交織技術(shù)。交織技術(shù)是指一個(gè)數(shù)據(jù)序列在一一對(duì)應(yīng)的條件下進(jìn)行數(shù)據(jù)的位置重排過(guò)程。它可以使信道中的突發(fā)錯(cuò)誤分散開(kāi)來(lái),將原來(lái)屬于突發(fā)錯(cuò)誤的信道改成獨(dú)立的隨機(jī)差錯(cuò)信道,從而充分發(fā)揮糾錯(cuò)編碼的作用,交織技術(shù)實(shí)際上是一種信道改造技術(shù)。本文所采用的交織技術(shù),其交織度達(dá)到400 bit。

2 通信系統(tǒng)平臺(tái)設(shè)計(jì)

本文采用ATmega16芯片與一款基于CC1100的無(wú)線(xiàn)模塊構(gòu)建的硬件平臺(tái),系統(tǒng)框圖如圖1所示。

如圖1所示,通過(guò)串口RS232與CC1100無(wú)線(xiàn)模塊進(jìn)行數(shù)據(jù)交互,無(wú)線(xiàn)模塊實(shí)現(xiàn)數(shù)據(jù)的透明傳輸。實(shí)現(xiàn)方案如圖2所示。在發(fā)送端,實(shí)現(xiàn)數(shù)據(jù)的打包,利用C語(yǔ)言實(shí)現(xiàn)FEC編碼和數(shù)據(jù)的交織處理,并通過(guò)RS232發(fā)送到CC1100無(wú)線(xiàn)模塊,然后經(jīng)過(guò)GMSK調(diào)制方式經(jīng)天線(xiàn)將信號(hào)發(fā)射出去;在接收端,經(jīng)天線(xiàn)首先通過(guò)GMSK解調(diào)信號(hào),然后對(duì)數(shù)據(jù)包進(jìn)行解交織和FEC解碼,然后進(jìn)行數(shù)據(jù)解包。


3 FEC編碼方案及測(cè)試

本文引用地址:http://www.butianyuan.cn/article/201706/348379.htm

3.1

FEC接收端不僅能在收到的信碼中發(fā)現(xiàn)錯(cuò)誤,還能糾正錯(cuò)誤。對(duì)于二進(jìn)制系統(tǒng),如果能夠確定錯(cuò)碼的位置,就能實(shí)現(xiàn)糾正。這種方法不需要反向信道(傳遞重發(fā)指令),也不會(huì)由于反復(fù)重發(fā)而延誤時(shí)間,實(shí)時(shí)性很好。在使用FEC編碼方式時(shí),糾正的錯(cuò)誤個(gè)數(shù)應(yīng)根據(jù)具體情況而定。本文采用了(12,8,4)漢明碼,能糾正一位錯(cuò)誤。
在發(fā)送方,根據(jù)式(1)的編碼邏輯,可以將數(shù)據(jù)進(jìn)行FEC編碼:

接收方將FEC編碼接收進(jìn)來(lái),并根據(jù)式(2)的編碼邏輯形成接收端的FEC編碼,

然后再對(duì)接收的數(shù)據(jù)進(jìn)行FEC譯碼,譯碼表如表1所示。


3.2 交織方案

考慮到實(shí)際的通信環(huán)境中會(huì)存在電火花等瞬間的強(qiáng)干擾,而且有時(shí)持續(xù)時(shí)間較長(zhǎng),因此在進(jìn)行交織編碼時(shí)采用較長(zhǎng)的交織深度,這樣能避免上述情況造成的不利影響。設(shè)計(jì)方案為:以400 B為一組,并對(duì)其進(jìn)行FEC后得到200 B,再將這400+200=600 B進(jìn)行交織并發(fā)送出去,如表2所示。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉