<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費(fèi)電子 > 設(shè)計應(yīng)用 > 基于無線數(shù)傳技術(shù)的話音擾頻模塊設(shè)計

          基于無線數(shù)傳技術(shù)的話音擾頻模塊設(shè)計

          作者: 時間:2008-06-05 來源:電子技術(shù)應(yīng)用 收藏

            由于信令的信息非常重要,而且要求有實(shí)時性,只有檢錯重發(fā)并不能滿足要求。針對系統(tǒng)的特點(diǎn)和編解碼的復(fù)雜度,糾錯編碼采用Golay碼。 Golay碼是一種特殊的非本原BCH碼,屬于前向糾錯編碼FEC(Forward Error Correction),也是目前為止發(fā)現(xiàn)的惟一能糾正多個錯誤的完備碼,因其在噪聲環(huán)境下具有良好的糾錯性能而獲得了廣泛應(yīng)用,尤其適合短碼字長和短處理時延的應(yīng)用場合。

          本文引用地址:http://www.ex-cimer.com/article/83748.htm

            本方案選用的Golay(24,12)碼最小距離為8,能糾正3個隨機(jī)錯誤同時檢測4個錯誤。針對8位的特點(diǎn),將信息位縮短為8bit,并在最后添加0101進(jìn)行幀同步碼的提取,最終構(gòu)成3個字節(jié)的完整結(jié)構(gòu),提高了編碼的效率。編解碼的程序全部用C語言實(shí)現(xiàn),程序復(fù)雜度適中,Atmega8單片機(jī)的運(yùn)算能力完全可以勝任。Golay碼結(jié)構(gòu)如表2所示。

                  

            2.2.3 數(shù)據(jù)幀結(jié)構(gòu)的設(shè)計

            MSM6882接收的數(shù)據(jù)是與時鐘同步的比特流,為了從所接收的數(shù)據(jù)中提取時鐘信號,首先發(fā)送6字節(jié)即48bit“1”和“0”交替出現(xiàn)的位同步碼。為了按字節(jié)接收數(shù)據(jù),確定每一幀的起始位,需要在比特流中添加幀同步信息,以避免幀同步圖案與數(shù)據(jù)中內(nèi)容相同而導(dǎo)致的誤判。根據(jù)所選用的糾錯編碼特點(diǎn),每組Golay碼三個字節(jié)的最后4個 bit為0101,即不會出現(xiàn)三個字節(jié)以上的連續(xù)0或者連續(xù)1,所以幀起始碼選用31bit1和1bit0,幀結(jié)束碼采用32bit連0。在接收中斷處理程序中,檢測到31bit1和1bit0就開始按字節(jié)接收數(shù)據(jù),此后每3個字節(jié)一組進(jìn)行糾錯解碼,同時開始對接收到的連續(xù)0進(jìn)行計數(shù),超過32個就認(rèn)為一幀接收完畢。幀結(jié)構(gòu)如表3所示。

                 

            2.2.4 數(shù)傳模塊程序的設(shè)計

            數(shù)傳程序主要實(shí)現(xiàn)編碼和發(fā)送數(shù)據(jù)、接收數(shù)據(jù)和解碼的功能。發(fā)送時,Golay編碼由一個字節(jié)變?yōu)槿齻€字節(jié),把待發(fā)送數(shù)組先全部編碼再進(jìn)行發(fā)送;接收時,先將三個字節(jié)一組的字節(jié)流存儲為數(shù)組,再進(jìn)行Golay解碼,這樣,將占用大量RAM空間和時間。為了節(jié)省單片機(jī)資源,提高程序執(zhí)行效率,把編碼與發(fā)送數(shù)據(jù)、接收數(shù)據(jù)與解碼結(jié)合起來同時進(jìn)行。

            首先,定義全局變量作為接收發(fā)送的計數(shù)器和狀態(tài)標(biāo)志位,主函數(shù)中循環(huán)查詢系統(tǒng)工作狀態(tài)確定是否進(jìn)行編碼或者解碼和啟動發(fā)送字節(jié)的子函數(shù);在中斷處理函數(shù)中每接收和發(fā)送完一個字節(jié),就改變相應(yīng)的計數(shù)器和狀態(tài)標(biāo)志位,供主函數(shù)查詢。這樣把編解碼與收發(fā)結(jié)合起來,提高了程序的執(zhí)行效率,縮短了程序運(yùn)行的時間。

            其次,接收和發(fā)送都設(shè)置雙緩沖區(qū),結(jié)構(gòu)定義代碼如下:

          typedef struct

          {

          unsigned char rc; /*信息字節(jié)*/

          unsigned int r1; /*校驗(yàn)字*/

          }Golay;

            Golay RecvBuffer[2];

            Golay SendBuffer[2];

            在中斷處理函數(shù)中發(fā)送一個緩沖區(qū)數(shù)據(jù)的同時,在主函數(shù)里編碼填充另一緩沖區(qū);在中斷處理函數(shù)中接收數(shù)據(jù)、填充一個緩沖區(qū)時,在主函數(shù)里對另一個緩沖區(qū)中接收的上一組數(shù)據(jù)進(jìn)行解碼。在中斷處理函數(shù)中改變?nèi)值臓顟B(tài)標(biāo)志位,在主函數(shù)里進(jìn)行緩沖區(qū)間的切換。通過設(shè)置雙緩沖區(qū),收發(fā)分別只需占用兩組編碼空間,節(jié)省了單片機(jī)的RAM資源。

            2.3 信令的設(shè)計

            每次通話之前,即按下PTT之后,首先延時一段時間,這個時間由中繼臺的最大延時決定;再發(fā)送信令,確定此次通話是否擾頻以及擾頻的次序和時間間隔,為了與未加擾頻模塊的手持臺通信,需要保留不擾頻的功能,即CMX264在Clear模式下工作;同時增加地址選項(xiàng),通過地址進(jìn)行分組,可以實(shí)現(xiàn)組呼和單呼;通話完畢時發(fā)送結(jié)束幀,使手持臺恢復(fù)到Clear 模式。根據(jù)上述要求,設(shè)計擾頻信令格式如表4所示。

                  

            結(jié)構(gòu)定義代碼如下:

          typedef struct

          {

          unsigned char ScrambleFrameType; /*幀類型*/

          unsigned char RecvAddress[2]; /*接收地址*/

          unsigned char ScrambleSeq[4]; /*擾頻次序*/

          unsigned char HopCyc; /*時間間隔*/

          }Scramble;

            本文介紹的方案主要針對使用模擬集群的專用網(wǎng)絡(luò),調(diào)度通話內(nèi)容需要保密以避免竊聽和干擾。本方案通過電臺的話音信道進(jìn)行無線數(shù)據(jù)傳輸,對傳統(tǒng)擾頻方式進(jìn)行了改進(jìn),提高了系統(tǒng)的安全性和應(yīng)用范圍。

            參考文獻(xiàn)

            1 MORELOS-ZARAGOZA R.H. The art of error correcting coding. Wiley, 2002

            2 OKI Semiconductor. MSM6882 MSK Modem User's Manual.

            3 CML Microcircuits.Wireless Modem Troubleshooting Guide


            4 CML Microcircuits.CMX264 Frequency Domain Split Band Scrambler datasheet.

            5 Atmel Corporation. ATmega8 AVR 8-bit microcontroller datasheet.

            6 張宗橙.糾錯編碼原理和應(yīng)用.北京:電子工業(yè)出版社,2003


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();