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