1 引 言
在有差錯(cuò)信道中進(jìn)行數(shù)據(jù)的高可靠性甚至無誤碼傳輸,可采用傳統(tǒng)的差錯(cuò)重傳(ARQ)和前向糾錯(cuò)(FEC)等技術(shù),但這些技術(shù)都不可避免地存在時(shí)延和時(shí)延抖動(dòng),,信道利用率低,,開銷大等弊端,不適合于需要一定的可靠性又要求實(shí)時(shí)傳輸或?qū)ν话l(fā)業(yè)務(wù)立即進(jìn)行處理的場(chǎng)合 ,,如多媒體數(shù)據(jù)(語(yǔ)音,,圖像 ,文本數(shù)據(jù))的通信,、電力調(diào)度系統(tǒng)之間的通信,、公安系統(tǒng)突發(fā)任務(wù)的下達(dá)等?;赥MS320C54的雙MODE M可在一定程度上避免這些問題,,它采用兩路全雙工的數(shù)據(jù)通信鏈路來進(jìn)行數(shù)據(jù)傳輸,相當(dāng)于用兩條線路來傳輸一路信息,,接收端根據(jù)兩條線路的接收質(zhì)量智能地決定接收哪路信息,,自動(dòng)切換,無需采用A RQ或FEC等技術(shù)就可實(shí)現(xiàn)數(shù)據(jù)的高可靠性傳輸,。該系統(tǒng)采用DSP技術(shù),,以平衡對(duì)稱設(shè)計(jì)思路 ,實(shí)現(xiàn)雙MOD EM在同一平臺(tái)上實(shí)施 ,,并利用軟件無線電技術(shù)實(shí)現(xiàn)多種選擇靈活搭配,,除了具有電路設(shè)計(jì) 、調(diào)試簡(jiǎn)單 ,、可靠性高和抗噪聲能力強(qiáng)等特點(diǎn)外,,還具有以下優(yōu)點(diǎn):
·傳輸中心頻率靈活可變,可適用于上音頻電力線載波(f=2880Hz,,3000Hz),、微波(f=1700Hz)、無線(f=1500Hz),,以及電力線載波機(jī)話音通道(f=1200Hz)組成的通訊網(wǎng)中,,采用本機(jī)傳送數(shù)據(jù)可統(tǒng)一所有的MODEM型號(hào),便于互換與維修,。
·解調(diào)部分具有AGC(自動(dòng)增益控制)功能,。
·具有定性的誤碼顯示,,線路信噪比狀況一目了然,。
·支持兩個(gè)MODEM獨(dú)立使用。
2 雙MODEM的硬件設(shè)計(jì)及其實(shí)現(xiàn)
2.1 雙MODEM系統(tǒng)的組成
雙MODEM系統(tǒng)的組成如圖1所示,,主要由以下五部分構(gòu)成:
(1)DSP最小系統(tǒng)
數(shù)字處理系統(tǒng)由于其可靠性高,、可編程性強(qiáng)等優(yōu)勢(shì)在通信、航天制導(dǎo)、儀器儀表等各個(gè)領(lǐng)域正得到越來越廣泛的應(yīng)用,。在雙MODEM中由一片TMS320C5402 DSP芯片和一片EPROM構(gòu)成的DSP最小系統(tǒng)是整個(gè)系統(tǒng)的關(guān)鍵部分,。TMS320C54X是TI公司TMS320系列芯片中新一代16-bit定點(diǎn)DSP,適合于高速的數(shù)字信號(hào)處理,。其特點(diǎn)如下:
·先進(jìn)的多總線結(jié)構(gòu),,一條程序總線,三條數(shù)據(jù)總線,,四條地址總線,,使得靈活性和性能大大提高?!?br />
·外接1024kHz晶振,,指令周期為10ns,100MIPS運(yùn)算速度,。
·提供Power Down低功耗方式,。
·17×17-bit的并行乘法器為非流水單周期的乘法/累加(MAC)操作產(chǎn)生40-bit的乘積 。
·8個(gè)輔助寄存器和一個(gè)專用運(yùn)算單元支持間接尋址,。
·4級(jí)流水操作用于延遲分支,,調(diào)用和返回指令。
·16個(gè)軟件可編程的等待狀態(tài)發(fā)生器,,用于程序,、數(shù)據(jù)、I/O存儲(chǔ)器空間的延時(shí)等待操作,。
·可訪問的擴(kuò)展存儲(chǔ)器空間為192k×16-bit(其中64k程序存儲(chǔ)器,、64k數(shù)據(jù)存儲(chǔ)器、64kI /O存儲(chǔ)器),。
·支持多達(dá)16個(gè)用戶可屏蔽中斷(SINT15—SINT0),,JTAG掃描仿真邏輯(IEEE1149.1)
(2)CPLD控制邏輯
現(xiàn)場(chǎng)可編程邏輯門陣列(FPGA)和高性能數(shù)字信號(hào)處理器(DSP)是信號(hào)處理領(lǐng)域兩大關(guān)鍵器件,F(xiàn)PGA和DSP的運(yùn)算速度及并行處理能力成為制約高速信號(hào)處理應(yīng)用的主要因素,,F(xiàn)PGA以其設(shè)計(jì)靈活性及硬件高密度性在信號(hào)處理領(lǐng)域顯示出越來越重要的作用,。該系統(tǒng)的CPLD控制邏輯采用XILIN的XC9536來完成,XC9536的可編程I/O引腳,,可以實(shí)現(xiàn)DSP,、SCC、A/D轉(zhuǎn)換等所需的控制邏輯,。
(3)A/D變換
系統(tǒng)接收時(shí)首先將模擬的語(yǔ)音信號(hào)通過A/D轉(zhuǎn)換變?yōu)閿?shù)字信號(hào)送入TMS320C5402DSP,發(fā)送時(shí)將數(shù)字調(diào)制信號(hào)通過D/A轉(zhuǎn)換變?yōu)槟M信號(hào)后再上信道傳輸,,為此我們選擇了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單電源供電,,同時(shí)320AD56的時(shí)鐘可以直接與TTL,、CMOS、或正的ECL邏輯電平相連,。
(4)閃爍存儲(chǔ)器(Flash)
Flash Memory是一個(gè)非易失性固態(tài)存儲(chǔ)器,,這種存儲(chǔ)器的特點(diǎn)是在寫之前要以塊為單位執(zhí)行擦除命令,即:使所有字節(jié)均變?yōu)?XFF,,然后再寫入數(shù)據(jù),,而且斷電以后數(shù)據(jù)不丟失。我們采用AMD公司的AM28F010作為系統(tǒng)的EPROM,,它工作所需的時(shí)序信號(hào)/WE,、/RD、/BCE由CP LD控制邏輯提供,。AM28F010的工作電壓為+5V,,容量為64k×8bit,速度為150ns,。
(5)串口通信模塊
MODEM從發(fā)送方串行接收數(shù)據(jù),,然后經(jīng)過調(diào)制將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),最后通過線路傳送到接收方,。接收方也需要通過MODEM從線路上將信號(hào)解調(diào),,將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),然后串行發(fā)送給接收方,。本系統(tǒng)中為了實(shí)現(xiàn)串行通信,,采用AM85C30作為串口通信控制器(SC C),AM85C30是AMD公司的Zilog系列產(chǎn)品,,采用CMOS結(jié)構(gòu),,是一種全雙工雙通道、多數(shù)據(jù)協(xié)議的數(shù)據(jù)通信控制器,,可以通過軟件設(shè)置實(shí)現(xiàn)多種數(shù)據(jù)通信方式,。AM85C30的每個(gè)通道都有一套自己的讀/寫寄存器集,所有通信模式都是通過操作寫寄存器來實(shí)現(xiàn)的,,同時(shí)所有狀態(tài)判斷都是通過操作讀寄存器來實(shí)現(xiàn)的,,隨著數(shù)據(jù)接收/發(fā)送,讀寄存器的值可能會(huì)發(fā)生變化,,這些變化能觸發(fā)程序活動(dòng)或內(nèi)部硬件設(shè)置變化,。
2.2 RS-232接口電路的設(shè)計(jì)
RS-232標(biāo)準(zhǔn)的接口應(yīng)能承受接口引腳中任何兩個(gè)引腳的短接,,而其本身及所聯(lián)設(shè)備不受到損壞,其電平標(biāo)準(zhǔn)規(guī)定了雙極性邏輯電平,,即邏輯電平由電壓幅值和極性共同來描述,,輸入的邏輯電平是+3V到+15V和-3V到-15V,電壓-3V到+3V之間屬于不確定的,;輸出的邏輯電平是+5V到+15V和-5V到-15V,,電壓-5V到+5V之間屬于不確定的。由此可知,,RS-232的電壓和邏輯電平不能直接用于計(jì)算機(jī)電路,,需要進(jìn)行電平轉(zhuǎn)換。在雙MODEM系統(tǒng)中,,采用了三片SN75196集成芯片作為RS-232線路驅(qū)動(dòng)器和線路接收器,,以此來實(shí)現(xiàn)RS-232和計(jì)算機(jī)電路之間的電平轉(zhuǎn)換。SN75196是一種專用的多路RS-232收發(fā)器,,其驅(qū)動(dòng)器/接收器·82·數(shù)目為5/3,,工作所需的電源電壓為±9V和+5V。
3 雙MODEM的軟件設(shè)計(jì)及其實(shí)現(xiàn)
雙MODEM的軟件設(shè)計(jì)采用標(biāo)準(zhǔn)的C語(yǔ)言和TMS320C54X的匯編語(yǔ)言混合編制完成,,主要由以下幾個(gè)要點(diǎn)構(gòu)成:
3.1 系統(tǒng)初始化
系統(tǒng)上電工作之前,,首先必須進(jìn)行初始化。主要包括對(duì)TMS320C5402DSP的狀態(tài)寄存器ST0 ,、ST1,,處理器模式狀態(tài)寄存器PMST,時(shí)鐘模式寄存器CLKMD和軟等待狀態(tài)寄存器SWWSR的初始化,。對(duì)AM85C30通信口的初始化,,包括設(shè)置合適的數(shù)據(jù)傳輸格式,數(shù)據(jù)傳輸波特率,,中斷允許寄存器等,。其中波特率的設(shè)置只需將除數(shù)因子寫入AM85C30的“波特率除數(shù)鎖存器”WR12、WR 13中,,用TMS320C54匯編語(yǔ)言編制的初始化程序?qū)⒃贑語(yǔ)言的主程序中調(diào)用,。
3.2 中斷服務(wù)程序
中斷服務(wù)處理子程序是通信應(yīng)用程序的核心,當(dāng)系統(tǒng)上電初始化時(shí),,在中斷向量表的相應(yīng)位置將初始化為一個(gè)臨時(shí)中斷服務(wù)處理子程序的入口地址,,一旦初始化結(jié)束,每當(dāng)一個(gè)指定的通信事件出現(xiàn)時(shí),,AM85C30將產(chǎn)生一次通信中斷,,CPU將依據(jù)此中斷號(hào)查看中斷向量表,調(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ū)的操作需要采用先進(jìn)先出(FIFO)的原則,即保證新插入的數(shù)據(jù)不能覆蓋尚未處理的數(shù)據(jù),,采用環(huán)形緩沖區(qū)技術(shù)則可很好地解決這個(gè)問題,,假設(shè)數(shù)據(jù)緩沖區(qū)為buffer〔len〕,即長(zhǎng)度為len的緩沖區(qū) ,,為了達(dá)到環(huán)形緩沖區(qū)操作的目的,,需要定義一控制塊結(jié)構(gòu):
typedef struct{
int cnt;
int rdi,;
int wri,;int*buf;
?。鼴CB
cnt域表示當(dāng)前緩沖區(qū)內(nèi)的數(shù)據(jù)長(zhǎng)度,,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ù)時(shí)要依據(jù)誤碼率的高低在兩條線路間進(jìn)行智能切換,有選擇性地接收,,從而實(shí)現(xiàn)數(shù)據(jù)的高可靠性傳輸,。誤碼率的大小雖然是衡量線路傳輸狀況的指標(biāo) ,但它是一個(gè)長(zhǎng)期統(tǒng)計(jì)的結(jié)果,,與當(dāng)前線路傳輸質(zhì)量無線性比例關(guān)系,,在一小段時(shí)間內(nèi),有可能誤碼率高的線路傳輸?shù)臄?shù)據(jù)更正確,,由于這種長(zhǎng)期統(tǒng)計(jì)和短時(shí)數(shù)據(jù)的正確與否無線性比例關(guān)系,,如果直接用數(shù)據(jù)流方式進(jìn)行熱切換,就存在誤判并導(dǎo)致數(shù)據(jù)的誤收和對(duì)短時(shí)突發(fā)誤碼反映遲鈍和誤碼擴(kuò)大的現(xiàn)象,。因此必需將數(shù)據(jù)以一定長(zhǎng)度為單位劃分為一個(gè)個(gè)的幀(fra me),,再以幀為單位結(jié)合誤碼率進(jìn)行判斷、切換,,這樣就可以把誤碼發(fā)生的位置定位在一幀長(zhǎng)度內(nèi),,使切換更準(zhǔn)確,數(shù)據(jù)更可靠,,在分幀切換當(dāng)中,,發(fā)送端先將數(shù)據(jù)裝幀打包,幀結(jié)構(gòu)至少應(yīng)包括幀號(hào),、幀數(shù)據(jù)長(zhǎng)度,、幀數(shù)據(jù)等,。為此,我們定義了如圖4所示的幀結(jié)構(gòu),。幀結(jié)構(gòu)采用類似HDLC的幀結(jié)構(gòu),,幀起止標(biāo)志固定為0x7e的8位數(shù)據(jù),兩端以0結(jié)束,,中間是六連1,,便于與幀數(shù)據(jù)相區(qū)分,幀結(jié)束標(biāo)志與幀開始標(biāo)志相同,。CRC采用16位的M序列,,為了提高CRC校驗(yàn)的計(jì)算速度,采用了查表法,。
4 結(jié)束語(yǔ)
實(shí)際信道都不是理想的無差錯(cuò)信道,,所傳輸?shù)?數(shù)據(jù)總會(huì)出現(xiàn)一定的誤碼。為此,,我們采用高速DSP技術(shù)所設(shè)計(jì)的雙MODEM系統(tǒng),,除了具有一般MODEM的通用功能之外,更主要的是可在有差錯(cuò)的信道中,,實(shí)時(shí)地進(jìn)行數(shù)據(jù)的高可靠性甚至無誤碼傳輸,。實(shí)際線路測(cè)試結(jié)果表明該系統(tǒng)在工作條件范圍內(nèi),當(dāng)歸一化信噪比≥17dB時(shí),,對(duì)511偽隨機(jī)碼的誤碼率Pe≤1×10-6,,在中低速語(yǔ)音壓縮編碼后使用雙MODEM技術(shù)進(jìn)行數(shù)據(jù)傳輸將有廣闊的市場(chǎng)發(fā)展前景。