基于TMS320C54X的雙調(diào)制解調(diào)器的設(shè)計與實現(xiàn)
1 引 言
本文引用地址:http://www.ex-cimer.com/article/20616.htm在有差錯信道中進行數(shù)據(jù)的高可靠性甚至無誤碼傳輸,可采用傳統(tǒng)的差錯重傳(arq)和前向糾錯(fec)等技術(shù),但這些技術(shù)都不可避免地存在時延和時延抖動,信道利用率低,開銷大等弊端,不適合于需要一定的可靠性又要求實時傳輸或?qū)ν话l(fā)業(yè)務(wù)立即進行處理的場合 ,如多媒體數(shù)據(jù)(語音,圖像 ,文本數(shù)據(jù))的通信、電力調(diào)度系統(tǒng)之間的通信、公安系統(tǒng)突發(fā)任務(wù)的下達等。基于tms320c54的雙mode m可在一定程度上避免這些問題,它采用兩路全雙工的數(shù)據(jù)通信鏈路來進行數(shù)據(jù)傳輸,相當(dāng)于用兩條線路來傳輸一路信息,接收端根據(jù)兩條線路的接收質(zhì)量智能地決定接收哪路信息,自動切換,無需采用a rq或fec等技術(shù)就可實現(xiàn)數(shù)據(jù)的高可靠性傳輸。該系統(tǒng)采用dsp技術(shù),以平衡對稱設(shè)計思路 ,實現(xiàn)雙mod em在同一平臺上實施 ,并利用軟件無線電技術(shù)實現(xiàn)多種選擇靈活搭配,除了具有電路設(shè)計 、調(diào)試簡單 、可靠性高和抗噪聲能力強等特點外,還具有以下優(yōu)點:
·傳輸中心頻率靈活可變,可適用于上音頻電力線載波(f=2880hz,3000hz)、微波(f=1700hz)、無線(f=1500hz),以及電力線載波機話音通道(f=1200hz)組成的通訊網(wǎng)中,采用本機傳送數(shù)據(jù)可統(tǒng)一所有的modem型號,便于互換與維修。
·解調(diào)部分具有agc(自動增益控制)功能?! ?/p>
·具有定性的誤碼顯示,線路信噪比狀況一目了然。
·支持兩個modem獨立使用。
2 雙modem的硬件設(shè)計及其實現(xiàn)
2.1 雙modem系統(tǒng)的組成
雙modem系統(tǒng)的組成如圖1所示,主要由以下五部分構(gòu)成:
(1)dsp最小系統(tǒng) 數(shù)字處理系統(tǒng)由于其可靠性高、可編程性強等優(yōu)勢在通信、航天制導(dǎo)、儀器儀表等各個領(lǐng)域正得到越來越廣泛的應(yīng)用。在雙modem中由一片tms320c5402
dsp芯片和一片eprom構(gòu)成的dsp最小系統(tǒng)是整個系統(tǒng)的關(guān)鍵部分。tms320c54x是ti公司tms320系列芯片中新一代16-bit定點dsp,適合于高速的數(shù)字信號處理。其特點如下:
·先進的多總線結(jié)構(gòu),一條程序總線,三條數(shù)據(jù)總線,四條地址總線,使得靈活性和性能大大提高?!?
·外接1024khz晶振,指令周期為10ns,100mips運算速度。
·提供power down低功耗方式?!?
·17×17-bit的并行乘法器為非流水單周期的乘法/累加(mac)操作產(chǎn)生40-bit的乘積 。
·8個輔助寄存器和一個專用運算單元支持間接尋址?!?
·4級流水操作用于延遲分支,調(diào)用和返回指令?!?
·16個軟件可編程的等待狀態(tài)發(fā)生器,用于程序、數(shù)據(jù)、i/o存儲器空間的延時等待操作?!?
·可訪問的擴展存儲器空間為192k×16-bit(其中64k程序存儲器、64k數(shù)據(jù)存儲器、64ki /o存儲器)。
·支持多達16個用戶可屏蔽中斷(sint15-sint0),jtag掃描仿真邏輯(ieee1149.1)
(2)cpld控制邏輯
現(xiàn)場可編程邏輯門陣列(fpga)和高性能數(shù)字信號處理器(dsp)是信號處理領(lǐng)域兩大關(guān)鍵器件,fpga和dsp的運算速度及并行處理能力成為制約高速信號處理應(yīng)用的主要因素,fpga以其設(shè)計靈活性及硬件高密度性在信號處理領(lǐng)域顯示出越來越重要的作用。該系統(tǒng)的cpld控制邏輯采用xilin的xc9536來完成,xc9536的可編程i/o引腳,可以實現(xiàn)dsp、scc、a/d轉(zhuǎn)換等所需的控制邏輯。
(3)a/d變換
系統(tǒng)接收時首先將模擬的語音信號通過a/d轉(zhuǎn)換變?yōu)閿?shù)字信號送入tms320c5402dsp,發(fā)送時將數(shù)字調(diào)制信號通過d/a轉(zhuǎn)換變?yōu)槟M信號后再上信道傳輸,為此我們選擇了ti公司單片集成ad和da轉(zhuǎn)換通道的音頻模數(shù)和數(shù)模轉(zhuǎn)換器320ad56作為系統(tǒng)的a/d轉(zhuǎn)換器件,該器件采用σ-δ轉(zhuǎn)換方法,采樣率為22.05khz,帶寬為8.8khz,分辨率為16bits,功耗為150mw,+5 v單電源供電,同時320ad56的時鐘可以直接與ttl、cmos、或正的ecl邏輯電平相連。
(4)閃爍存儲器(flash)
flash memory是一個非易失性固態(tài)存儲器,這種存儲器的特點是在寫之前要以塊為單位執(zhí)行擦除命令,即:使所有字節(jié)均變?yōu)?xff,然后再寫入數(shù)據(jù),而且斷電以后數(shù)據(jù)不丟失。我們采用amd公司的am28f010作為系統(tǒng)的eprom,它工作所需的時序信號/we、/rd、/bce由cp ld控制邏輯提供。am28f010的工作電壓為+5v,容量為64k×8bit,速度為150ns。
(5)串口通信模塊
modem從發(fā)送方串行接收數(shù)據(jù),然后經(jīng)過調(diào)制將數(shù)字信號轉(zhuǎn)換為模擬信號,最后通過線路傳送到接收方。接收方也需要通過modem從線路上將信號解調(diào),將模擬信號轉(zhuǎn)換為數(shù)字信號,然后串行發(fā)送給接收方。本系統(tǒng)中為了實現(xiàn)串行通信,采用am85c30作為串口通信控制器(sc c),am85c30是amd公司的zilog系列產(chǎn)品,采用cmos結(jié)構(gòu),是一種全雙工雙通道、多數(shù)據(jù)協(xié)議的數(shù)據(jù)通信控制器,可以通過軟件設(shè)置實現(xiàn)多種數(shù)據(jù)通信方式。am85c30的每個通道都有一套自己的讀/寫寄存器集,所有通信模式都是通過操作寫寄存器來實現(xiàn)的,同時所有狀態(tài)判斷都是通過操作讀寄存器來實現(xiàn)的,隨著數(shù)據(jù)接收/發(fā)送,讀寄存器的值可能會發(fā)生變化,這些變化能觸發(fā)程序活動或內(nèi)部硬件設(shè)置變化。
2.2 rs-232接口電路的設(shè)計
rs-232標準的接口應(yīng)能承受接口引腳中任何兩個引腳的短接,而其本身及所聯(lián)設(shè)備不受到損壞,其電平標準規(guī)定了雙極性邏輯電平,即邏輯電平由電壓幅值和極性共同來描述,輸入的邏輯電平是+3v到+15v和-3v到-15v,電壓-3v到+3v之間屬于不確定的;輸出的邏輯電平是+5v到+15v和-5v到-15v,電壓-5v到+5v之間屬于不確定的。由此可知,rs-232的電壓和邏輯電平不能直接用于計算機電路,需要進行電平轉(zhuǎn)換。在雙modem系統(tǒng)中,采用了三片sn75196集成芯片作為rs-232線路驅(qū)動器和線路接收器,以此來實現(xiàn)rs-232和計算機電路之間的電平轉(zhuǎn)換。sn75196是一種專用的多路rs-232收發(fā)器,其驅(qū)動器/接收器·82·數(shù)目為5/3,工作所需的電源電壓為±9v和+5v。
3 雙modem的軟件設(shè)計及其實現(xiàn)
雙modem的軟件設(shè)計采用標準的c語言和tms320c54x的匯編語言混合編制完成,主要由以下幾個要點構(gòu)成:
3.1 系統(tǒng)初始化
系統(tǒng)上電工作之前,首先必須進行初始化。主要包括對tms320c5402dsp的狀態(tài)寄存器st0 、st1,處理器模式狀態(tài)寄存器pmst,時鐘模式寄存器clkmd和軟等待狀態(tài)寄存器swwsr的初始化。對am85c30通信口的初始化,包括設(shè)置合適的數(shù)據(jù)傳輸格式,數(shù)據(jù)傳輸波特率,中斷允許寄存器等。其中波特率的設(shè)置只需將除數(shù)因子寫入am85c30的"波特率除數(shù)鎖存器"wr12、wr 13中,用tms320c54匯編語言編制的初始化程序?qū)⒃赾語言的主程序中調(diào)用。
3.2 中斷服務(wù)程序
中斷服務(wù)處理子程序是通信應(yīng)用程序的核心,當(dāng)系統(tǒng)上電初始化時,在中斷向量表的相應(yīng)位置將初始化為一個臨時中斷服務(wù)處理子程序的入口地址,一旦初始化結(jié)束,每當(dāng)一個指定的通信事件出現(xiàn)時,am85c30將產(chǎn)生一次通信中斷,cpu將依據(jù)此中斷號查看中斷向量表,調(diào)用執(zhí)行所指向的新的中斷處理程序,完成收/發(fā)處理。收/發(fā)數(shù)據(jù)的程序流程如圖2、圖3所示:
3.3 環(huán)行緩沖區(qū)與幀結(jié)構(gòu)
(1)環(huán)行緩沖區(qū)
在數(shù)據(jù)通信過程中,發(fā)送端和接收端都需要采用一定大小的緩沖區(qū),緩沖區(qū)的操作需要采用先進先出(fifo)的原則,即保證新插入的數(shù)據(jù)不能覆蓋尚未處理的數(shù)據(jù),采用環(huán)形緩沖區(qū)技術(shù)則可很好地解決這個問題,假設(shè)數(shù)據(jù)緩沖區(qū)為buffer〔len〕,即長度為len的緩沖區(qū)
,為了達到環(huán)形緩沖區(qū)操作的目的,需要定義一控制塊結(jié)構(gòu):
typedef struct
{ int cnt;
int rdi;
int wri;
int*buf;
}bcb
cnt域表示當(dāng)前緩沖區(qū)內(nèi)的數(shù)據(jù)長度,rdi表示從當(dāng)前環(huán)形緩沖區(qū)中讀取數(shù)據(jù)的指針位置,wri表示往當(dāng)前環(huán)形緩沖區(qū)中存放數(shù)據(jù)的指針位置,buf指針指向緩沖區(qū)的首地址。
(2)幀結(jié)構(gòu)
由于雙modem系統(tǒng)接收數(shù)據(jù)時要依據(jù)誤碼率的高低在兩條線路間進行智能切換,有選擇性地接收,從而實現(xiàn)數(shù)據(jù)的高可靠性傳輸。誤碼率的大小雖然是衡量線路傳輸狀況的指標
,但它是一個長期統(tǒng)計的結(jié)果,與當(dāng)前線路傳輸質(zhì)量無線性比例關(guān)系,在一小段時間內(nèi),有可能誤碼率高的線路傳輸?shù)臄?shù)據(jù)更正確,由于這種長期統(tǒng)計和短時數(shù)據(jù)的正確與否無線性比例關(guān)系,如果直接用數(shù)據(jù)流方式進行熱切換,就存在誤判并導(dǎo)致數(shù)據(jù)的誤收和對短時突發(fā)誤碼反映遲鈍和誤碼擴大的現(xiàn)象。因此必需將數(shù)據(jù)以一定長度為單位劃分為一個個的幀(fra
me),再以幀為單位結(jié)合誤碼率進行判斷、切換,這樣就可以把誤碼發(fā)生的位置定位在一幀長度內(nèi),使切換更準確,數(shù)據(jù)更可靠,在分幀切換當(dāng)中,發(fā)送端先將數(shù)據(jù)裝幀打包,幀結(jié)構(gòu)至少應(yīng)包括幀號、幀數(shù)據(jù)長度、幀數(shù)據(jù)等。為此,我們定義了如圖4所示的幀結(jié)構(gòu)。幀結(jié)構(gòu)采用類似hdlc的幀結(jié)構(gòu),幀起止標志固定為0x7e的8位數(shù)據(jù),兩端以0結(jié)束,中間是六連1,便于與幀數(shù)據(jù)相區(qū)分,幀結(jié)束標志與幀開始標志相同。crc采用16位的m序列,為了提高crc校驗的計算速度,采用了查表法。
4 結(jié)束語
實際信道都不是理想的無差錯信道,所傳輸?shù)?數(shù)據(jù)總會出現(xiàn)一定的誤碼。為此,我們采用高速dsp技術(shù)所設(shè)計的雙modem系統(tǒng),除了具有一般modem的通用功能之外,更主要的是可在有差錯的信道中,實時地進行數(shù)據(jù)的高可靠性甚至無誤碼傳輸。實際線路測試結(jié)果表明該系統(tǒng)在工作條件范圍內(nèi),當(dāng)歸一化信噪比≥17db時,對511偽隨機碼的誤碼率pe≤1×10-6,在中低速語音壓縮編碼后使用雙modem技術(shù)進行數(shù)據(jù)傳輸將有廣闊的市場發(fā)展前景。
評論