摘 要:介紹水聲通信Modem系統(tǒng)的組成結(jié)構(gòu)和軟硬件總體設(shè)計(jì)方案。系統(tǒng)包括以DSP芯片TMS320VC5409為核心的數(shù)字信號(hào)處理電路、USB接口電路、前置模擬終端(AFE)電路和換能器。通過(guò)該方法可以實(shí)現(xiàn)水聲通信Modem系統(tǒng)的遠(yuǎn)距離數(shù)據(jù)傳輸,迅速實(shí)現(xiàn)DSP與計(jì)算機(jī)之間的數(shù)據(jù)交換。
關(guān)鍵詞:水聲通信;調(diào)制解調(diào)器;USB接口;DSP;A/D轉(zhuǎn)換器
中圖分類號(hào):TP302;TN929.3 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2010)04-008-04
Design and Realization of Underwater Acoustics Communication Modem Based on TMS320VC5409
YE Lingjun,LIU Zhong,HUANG Aolin
(Electronics Engineering College,Naval University of Engineering,Wuhan,430033,China)
Abstract:A system structure of underwater acoustics communication modem and a software and hardware total design project are introduced.The system mainly includes DSP chip TMS320VC5409 as the core digital signal processor circuit,USB interface circuit,analog front end circuit and energy converter.By using underwater acoustics communication modem equipment,long-distance data transmission can be realized,and also the prempt data exchange between DSP and computer can be realized.
Keywords:underwater acoustics communication;modem;USB interface;DSP;A/D converter
DSP芯片TMS320VC5409(以下簡(jiǎn)稱為5409)是TI 公司TMS320VC5000系列中應(yīng)用最廣泛、性價(jià)比較高的芯片之一,主要應(yīng)用于數(shù)字信號(hào)處理領(lǐng)域[1]。考慮到DSP處理器的運(yùn)算速度、片上資源、功耗、封裝開(kāi)發(fā)工具以及價(jià)格等因素,現(xiàn)以5409為核心,進(jìn)行外圍電路的擴(kuò)展,利用片內(nèi)McBSP接口以及通用數(shù)據(jù)傳輸通道,完成水聲通信Modem的通信控制和數(shù)據(jù)調(diào)制/解調(diào)等功能,使得數(shù)據(jù)處理和數(shù)據(jù)傳輸能夠并行運(yùn)行,從而提高整個(gè)系統(tǒng)的運(yùn)行效率。該系統(tǒng)具有高速、靈活、通用度高的特點(diǎn)。
1 硬件系統(tǒng)構(gòu)成
水聲通信Modem主要由5409,SST29LE010A,CH375,TPS73HD318,AD73311L,TLC2652M,OP07和換能器等組成,硬件系統(tǒng)結(jié)構(gòu)如圖1所示。
1.1 電源模塊
系統(tǒng)需要+1.8 V,+3.3 V,±5 V,±12 V電源。經(jīng)過(guò)整流濾波后的直流電源,由7812,7912穩(wěn)壓模塊輸出±12 V給OP07?!?2 V再經(jīng)過(guò)7805,7905穩(wěn)壓輸出±5 V給TLC2652M-8D,同時(shí)提供+5 V給TPS73HD318,CH375。TPS73HD318輸出+1.8 V,+3.3 V,最大輸出電流1 A,帶過(guò)熱保護(hù)功能[2]。滿足5409,AD73311L,SST29LE010A芯片對(duì)+1.8 V,+3.3 V電壓、電流的要求。AD73311L模擬+3.3 V,與其他數(shù)字電路利用隔離磁珠進(jìn)行模/數(shù)隔離,避免相互干擾。
圖1 水聲通信Modem系統(tǒng)硬件結(jié)構(gòu)圖
1.2 接口模塊
系統(tǒng)USB接口的主控芯片采用CH375,完成USB協(xié)議和并行I/O協(xié)議轉(zhuǎn)換,使該無(wú)線數(shù)據(jù)傳輸單元以即插即用方式直接與PC機(jī)通信。USB接口模塊的硬件電路圖[3]如圖2所示。
圖2 USB接口模塊硬件電路圖
INT輸出的中斷請(qǐng)求是低電平有效,5409可以使用中斷方式或者查詢方式獲知中斷請(qǐng)求。當(dāng)WR為高電平,且CS和RD及A0都為低電平時(shí),CH375中的數(shù)據(jù)通過(guò)D7~D0輸出;當(dāng)RD為高電平,并且CS,WR及A0都為低電平時(shí),D7~D0上的數(shù)據(jù)都被寫入CH375芯片中;當(dāng)RD為高電平,并且CS和WR都為低電平而A0為高電平時(shí),D7~D0上的數(shù)據(jù)都被作為命令碼寫入CH375芯片中。
1.3 存儲(chǔ)模塊
5409片上帶有ROM,但是運(yùn)行程序和數(shù)據(jù)在掉電后不能保留。因此,擴(kuò)展FLASH E2PROM存儲(chǔ)模塊。系統(tǒng)選用SST公司的128K×8 b的E2PROM芯片ST29LE010A,工作電壓3.0~3.6 V,整塊E2PROM能在5 s內(nèi)擦寫完成,可擦寫100 000次左右,數(shù)據(jù)保持時(shí)間很長(zhǎng)[1]。系統(tǒng)采用3.3 V工作電壓,E2PROM并行自舉引導(dǎo)方式。硬件電路原理如圖3所示。
圖3 擴(kuò)展FLASH存儲(chǔ)器硬件電路原理圖
5409的D8用于控制閃存的寫使能,當(dāng)D8為低電平時(shí),可對(duì)閃存編程和擦除,通過(guò)編程控制D8,使WE的時(shí)序滿足要求。為防止誤寫,WE平時(shí)被設(shè)置為高電平,而OE與5409的DS相連,低電平有效,平時(shí)被設(shè)置為高電平,以保護(hù)芯片。圖3中采用雙刀雙置開(kāi)關(guān),當(dāng)開(kāi)關(guān)置下方時(shí),F(xiàn)LASH的OE與DSP的DS相連,WE置高,可讀FLASH;當(dāng)開(kāi)關(guān)置上方時(shí),OE置高,WE與5409的D8相連,為寫操作。
1.4 DSP模塊
系統(tǒng)核心由5409及其附加電路、控制邏輯電路組成,完成系統(tǒng)控制及運(yùn)算處理功能。
系統(tǒng)中5409與CH375之間采用并行接口方式,與AD73311L之間采用串行接口方式,即McBSP工作在SPI模式下,與AD73311L連接。
5409芯片采用雙電源供電機(jī)制,即1.8 V或更低的內(nèi)核電源,為該器件的內(nèi)部邏輯提供電壓;3.3 V的I/O電源便于直接與外部低壓器件接口[1,4]。由電壓調(diào)節(jié)器芯片TPS73HD318實(shí)現(xiàn)該功能。
5409的時(shí)鐘采用外接頻率為8 MHz晶體,內(nèi)部倍頻的大小由芯片上CLKMD1~CLKMD3一組引腳的狀態(tài)決定[4]。開(kāi)始設(shè)置CLKMD1~CLKMD3為001,即PLL×10,5409工作頻率為80 MHz。
5409片內(nèi)包括3個(gè)高速、全雙工、多通道緩沖串行接口McBSP[4],其方便的數(shù)據(jù)流控制可使它與大多數(shù)同步串行外部設(shè)備接口。它由數(shù)據(jù)線BD(R/X)、幀同步線BFS(R/X)和移位時(shí)鐘線BCLK(R/X)組成。
通過(guò)McBSP主要完成與AD73311L支持SPI接口之間的數(shù)據(jù)交換,5409對(duì)AD73311L的控制通過(guò)GPIO的XF(輸出)引腳來(lái)完成。5409與AD73311L硬件連接電路原理如圖4所示。
圖4 5409與AD73311L硬件連接電路原理圖
5409的McBSP作為SPI的從設(shè)備與SPI的主設(shè)備AD73311L連接。在這種方式下,McBSP的移位時(shí)鐘線BCLK(R/X)在內(nèi)部相連,幀同步線BFS(R/X)在內(nèi)部相連。系統(tǒng)時(shí)鐘的輸出引腳CLKOUT連接MCLK引腳,為AD73311L提供主時(shí)鐘信號(hào)。這種主從SPI模式實(shí)現(xiàn)5409對(duì)AD73311L的初始化以及數(shù)據(jù)交換。
1.5 A/D~D/A模塊
AD73311L是AD公司的16位串行A/D/A集成轉(zhuǎn)換器,廣泛應(yīng)用于語(yǔ)音信號(hào)處理、無(wú)線通信、數(shù)據(jù)通信等領(lǐng)域[5]。系統(tǒng)采用AD73311L芯片,完成D/A,A/D轉(zhuǎn)換功能。圖4中A/D的輸入采用單端輸入方式,D/A的輸出采用雙端輸出方式。其中,C10,R10,C11組成帶通濾波器。
1.6 功放模塊
系統(tǒng)信號(hào)放大電路分為兩路:D/A→信號(hào)放大→換能器;換能器→信號(hào)放大→A/D。兩路信號(hào)放大電路的原理和組成結(jié)構(gòu)采用相同模式,都采用兩級(jí)級(jí)聯(lián)放大:第一級(jí)選擇TLC2652M作小信號(hào)放大[6];第二級(jí)由運(yùn)放OP07構(gòu)成,實(shí)現(xiàn)功率放大及濾波[7]。調(diào)整電路中的電阻、電容參數(shù),以實(shí)現(xiàn)兩路信號(hào)放大的需求。
由TLC2652M構(gòu)成的放大電路,理論上閉環(huán)放大倍數(shù)約為100倍;低通截止頻率f=33.86 kHz。
由運(yùn)放OP07構(gòu)成的放大電路,理論上放大倍數(shù)為30倍,低通截止頻率f=24.11 kHz。
1.7 換能器
根據(jù)系統(tǒng)對(duì)換能器的指向性要求、電聲特性以及工作條件等要求,直接生產(chǎn)專用換能器。
2 軟件系統(tǒng)構(gòu)成
軟件主要由CH375計(jì)算機(jī)端口和DSP端口編程及初始化、5409初始化、McBSP0初始化以及對(duì)AD73311L的初始化等程序模塊組成。初始化流程圖如圖5所示。
圖5 初始化流程圖
USB數(shù)據(jù)傳輸模塊的主要程序包括兩部分:計(jì)算機(jī)端口軟件編程和DSP端口軟件編程。
計(jì)算機(jī)端,使用VC作為計(jì)算機(jī)端應(yīng)用軟件的開(kāi)發(fā)平臺(tái),利用CH375器件中DLL提供的API函數(shù)對(duì)其進(jìn)行操作[8]。
本地端,5409采用C語(yǔ)言編程,編寫內(nèi)置固件程序的基本框架如下:
//CH375初始化
CH375_WR_CMD_PORT(CMD_RESET_ALL);
//CH375執(zhí)行硬件復(fù)位
CH375_WR_CMD_PORT(CMD_CHECK_EXIST);
//檢查CH375是否工作正常
…
CH375_WR_CMD_PORT(CMD_SET_USB_MODE);//向CH375發(fā)送USB工作模式設(shè)置命令
CH375_WR_DAT_PORT(2);
//設(shè)置USB的工作模式為內(nèi)部固件模式
//USB中斷入口程序
CH375_WR_CMD_PORT(CMD_GET_STATUS);
//向CH375發(fā)送中斷狀態(tài)獲取命令
InterruptStatus=CH375_RD_DAT_PORT();
//獲取中斷狀態(tài),并通知CH375做相應(yīng)處理
if(InterruptStatus==USB_INT_EP2_OUT)
//數(shù)據(jù)下傳
{CH375_WR_CMD_PORT(CMD_RD_USB_DATA);//向CH375發(fā)送讀數(shù)據(jù)命令
RD_Data=CH375_RD_DAT_PORT();
//從USB緩沖區(qū)中讀取數(shù)據(jù)
CH375_WR_CMD_PORT(CMD_UNLOCK_USB);
//釋放當(dāng)前USB緩沖區(qū)
CH375_WR_CMD_PORT(CMD_WR_USB_DATA7);//向CH375發(fā)送寫數(shù)據(jù)命令
CH375_WR_DAT_PORT(DATA);
//向USB端點(diǎn)2緩沖區(qū)寫入數(shù)據(jù)DATA
CH375_WR_CMD_PORT(CMD_RD_USB_DATA);
RD_Data=CH375_RD_DAT_PORT();
…//分析接收到的數(shù)據(jù)
CH375_WR_CMD_PORT(CMD_WR_USB_DATA7);//向CH375發(fā)送寫數(shù)據(jù)命令
CH375_WR_DAT_PORT(ACK);//向USB端點(diǎn)2的上傳緩沖區(qū)寫入應(yīng)答數(shù)據(jù)ACK
}
If(InterruptStatus==USB_INT_EP2_IN)
//數(shù)據(jù)上傳
{CH375_WR_CMD_PORT(CMD_UNLOCK_USB);
//釋放當(dāng)前USB緩沖區(qū)
CH375_WR_CMD_PORT(CMD_WR_USB_DATA7)
;//向CH375發(fā)送寫數(shù)據(jù)命令
CH375_WR_DAT_PORT(DATA);//向USB端點(diǎn)2的上傳緩沖區(qū)寫入上傳數(shù)據(jù)DATA
}
5409的初始化程序是完成DSP堆棧、CPU時(shí)鐘及其他各個(gè)工作寄存器的初試值設(shè)置,以滿足系統(tǒng)工作要求[1]。
McBSP0初始化程序是設(shè)置McBSP0口的工作狀態(tài),使它運(yùn)行于系統(tǒng)所需的工作模式[1]。系統(tǒng)要求McBSP工作于從SPI模式、采用外部時(shí)鐘和字寬為16 b等工作條件。接收、發(fā)送時(shí)鐘和幀同步信號(hào)都由AD73311L提供。接收和發(fā)送數(shù)據(jù)每幀一字,每字16 b,都沒(méi)有延時(shí)。程序設(shè)計(jì)框架如下:
…
DXR10 .set 23h ;McBSP0數(shù)據(jù)發(fā)送寄存器1
SPSA0 .set 38h ;McBSP0子地址地址寄存器
SPCD0 .set 39h ;McBSP0子地址數(shù)據(jù)寄存器
Mainstart:
…
McBSP0_initializing:
stm #0,SPSA0 ;選擇SPCR10串口控制寄存器1
stm #1000h,SPCD0;SPI時(shí)鐘標(biāo)準(zhǔn)模式
stm #1,SPSA0 ;選擇SPCR20串口控制寄存器2
stm #0000h,SPCD0;McBSP0處于復(fù)位狀態(tài)
stm #2,SPSA0 ;選擇RCR10接收控制寄存器1
stm #0040h,SPCD0;每幀1個(gè)字,字寬為16 b
stm #3,SPSA0 ;選擇RCR20接收控制寄存器2
stm #0040h,SPCD0;MSB先接收,無(wú)延時(shí)
stm #4,SPSA0 ;選擇XCR10發(fā)送控制寄存器1
stm #0040h,SPCD0 ;每幀1個(gè)字,字寬為16 b
stm #5,SPSA0 ;選擇XCR20發(fā)送控制寄存器2
stm #0040h,SPCD0;MSB先發(fā)送,無(wú)延時(shí)
stm #6,SPSA0 ;選擇SRGR10寄存器1
stm#0000h,SPCD0 ;#0000h =>SRGR10
stm #7,SPSA0 ;選擇SRGR20寄存器2
stm#0000h,SPCD0 ;#0000h =>SRGR20,
stm #0eh,SPSA0 ;選擇PCR0,引腳控制寄存器
stm #0f0dh,SPCD0;發(fā)送/接收幀同步且低有效、時(shí)鐘由外部輸入
stm #0ffh,DXR10 ;寫第一個(gè)數(shù)據(jù)到發(fā)送寄存器1中
stm #0,SPSA0 ;選擇SPCR10串口控制寄存器1
stm #1001h,SPCD0;啟動(dòng)串口接收
stm #1,SPSA0 ;選擇SPCR20串口控制寄存器2
stm #0001h,SPCD0;啟動(dòng)串口發(fā)送
McBSP0_receive_int:
…
McBSP0_transmit_int:
…
AD73311L有六種工作模式:程序模式、數(shù)據(jù)模式、程序/數(shù)據(jù)混合模式、模擬環(huán)路模式、數(shù)字環(huán)路模式和功能檢測(cè)循環(huán)模式[5]。前三種是正常的工作模式,后三種是調(diào)試模式,僅在調(diào)試時(shí)使用。
AD73311L共有六個(gè)內(nèi)部控制寄存器,5409對(duì)六個(gè)控制寄存器的寫入順序?yàn)?CRB,CRC,CRD,CRE,CRF,CRA。AD73311L的初始化程序如下:
…;AD73311L芯片復(fù)位
ld #08143h,a;CRB命令字,F(xiàn)ad=DMCLK/256,
DMCLK=MCLK/5,SCLK=DMCLK/8
stlm a,DXR10 ;命令字送入DXR10寄存器中
ld #08279h,a;CRC命令字,電源管理
stlm a,DXR10 ;命令字送入DXR10寄存器中
ld #08304h,a;CRD命令字,設(shè)輸入20 dB,輸出+6 dB
stlm a,DXR10 ;命令字送入DXR10寄存器中
ld #08400h,a;CRE命令字,設(shè)置D/A群延時(shí)為0
stlm a,DXR10 ;命令字送入DXR10寄存器中
ld #08520h,a;CRF命令字,設(shè)A/D為單端輸入模式
stlm a,DXR10 ;命令字送入DXR10寄存器中送
ld #08001h,a;CRA命令字,設(shè)芯片為1,數(shù)據(jù)模式
stlm a,DXR10 ;命令字送入DXR10寄存器中
…;AD73311L進(jìn)入數(shù)據(jù)模式
3 結(jié) 語(yǔ)
水聲通信Modem以5409為核心,通過(guò)芯片CH375實(shí)現(xiàn)與PC機(jī)的USB通信,利用McBSP0與芯片AD73311L組成SPI串行通信方式,再進(jìn)行信號(hào)放大以及電聲信號(hào)轉(zhuǎn)換,實(shí)現(xiàn)水下通信。經(jīng)實(shí)際驗(yàn)證,該系統(tǒng)的傳輸速度快,易用、可擴(kuò)展、快速、傳輸可靠等優(yōu)點(diǎn),它的研制成功為海洋事業(yè)的發(fā)展提供很好的應(yīng)用前景。
參考文獻(xiàn)
[1]彭啟琮,李玉柏,管慶.DSP技術(shù)的發(fā)展與應(yīng)用[M].北京:高等教育出版社,2002.
[2]Texas Instruments.TPS73HD301,TPS73HD318,TPS73-HD325 Dual-output Low-dropout Voltage Regulators [Z].1999.
[3]南京沁恒電子有限公司.USB總線接口芯片CH375中文手冊(cè)[EB/OL]. http://www.winchiphead.com,2005.
[4]Texas Instruments.TMS320VC5409 Fixed-point Digital Signal Processor Data Manual[Z].2004.
[5]Analog Devices Inc.Low Cost,Low Power CMOS General Purpose Analog Front End AD73311L[Z].2000.
[6]Texas Instruments.TLC2652,TLC2652A,TLC2652Y Advanced LinCMO STM Precision Chopper-stabilized Operational Amplifiers [Z].1999.
[7]樓鋼,李偉,鄧學(xué)博.小信號(hào)放大電路設(shè)計(jì)[J].浙江理工大學(xué)學(xué)報(bào),2007,24(6):661-664.
[8]湯劍靈,高玉.USB通信芯片CH375在數(shù)據(jù)交換中的應(yīng)用[J].電子工程師,2007,33(10):61-63.