摘 要:介紹水聲通信Modem系統的組成結構和軟硬件總體設計方案。系統包括以DSP芯片TMS320VC5409為核心的數字信號處理電路、USB接口電路、前置模擬終端(AFE)電路和換能器。通過該方法可以實現水聲通信Modem系統的遠距離數據傳輸,迅速實現DSP與計算機之間的數據交換。
關鍵詞:水聲通信;調制解調器;USB接口;DSP;A/D轉換器
中圖分類號:TP302;TN929.3 文獻標識碼:A
文章編號: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(以下簡稱為5409)是TI 公司TMS320VC5000系列中應用最廣泛、性價比較高的芯片之一,主要應用于數字信號處理領域[1]。考慮到DSP處理器的運算速度、片上資源、功耗、封裝開發工具以及價格等因素,現以5409為核心,進行外圍電路的擴展,利用片內McBSP接口以及通用數據傳輸通道,完成水聲通信Modem的通信控制和數據調制/解調等功能,使得數據處理和數據傳輸能夠并行運行,從而提高整個系統的運行效率。該系統具有高速、靈活、通用度高的特點。
1 硬件系統構成
水聲通信Modem主要由5409,SST29LE010A,CH375,TPS73HD318,AD73311L,TLC2652M,OP07和換能器等組成,硬件系統結構如圖1所示。
1.1 電源模塊
系統需要+1.8 V,+3.3 V,±5 V,±12 V電源。經過整流濾波后的直流電源,由7812,7912穩壓模塊輸出±12 V給OP07。±12 V再經過7805,7905穩壓輸出±5 V給TLC2652M-8D,同時提供+5 V給TPS73HD318,CH375。TPS73HD318輸出+1.8 V,+3.3 V,最大輸出電流1 A,帶過熱保護功能[2]。滿足5409,AD73311L,SST29LE010A芯片對+1.8 V,+3.3 V電壓、電流的要求。AD73311L模擬+3.3 V,與其他數字電路利用隔離磁珠進行模/數隔離,避免相互干擾。
圖1 水聲通信Modem系統硬件結構圖
1.2 接口模塊
系統USB接口的主控芯片采用CH375,完成USB協議和并行I/O協議轉換,使該無線數據傳輸單元以即插即用方式直接與PC機通信。USB接口模塊的硬件電路圖[3]如圖2所示。
圖2 USB接口模塊硬件電路圖
INT輸出的中斷請求是低電平有效,5409可以使用中斷方式或者查詢方式獲知中斷請求。當WR為高電平,且CS和RD及A0都為低電平時,CH375中的數據通過D7~D0輸出;當RD為高電平,并且CS,WR及A0都為低電平時,D7~D0上的數據都被寫入CH375芯片中;當RD為高電平,并且CS和WR都為低電平而A0為高電平時,D7~D0上的數據都被作為命令碼寫入CH375芯片中。
1.3 存儲模塊
5409片上帶有ROM,但是運行程序和數據在掉電后不能保留。因此,擴展FLASH E2PROM存儲模塊。系統選用SST公司的128K×8 b的E2PROM芯片ST29LE010A,工作電壓3.0~3.6 V,整塊E2PROM能在5 s內擦寫完成,可擦寫100 000次左右,數據保持時間很長[1]。系統采用3.3 V工作電壓,E2PROM并行自舉引導方式。硬件電路原理如圖3所示。
圖3 擴展FLASH存儲器硬件電路原理圖
5409的D8用于控制閃存的寫使能,當D8為低電平時,可對閃存編程和擦除,通過編程控制D8,使WE的時序滿足要求。為防止誤寫,WE平時被設置為高電平,而OE與5409的DS相連,低電平有效,平時被設置為高電平,以保護芯片。圖3中采用雙刀雙置開關,當開關置下方時,FLASH的OE與DSP的DS相連,WE置高,可讀FLASH;當開關置上方時,OE置高,WE與5409的D8相連,為寫操作。
1.4 DSP模塊
系統核心由5409及其附加電路、控制邏輯電路組成,完成系統控制及運算處理功能。
系統中5409與CH375之間采用并行接口方式,與AD73311L之間采用串行接口方式,即McBSP工作在SPI模式下,與AD73311L連接。
5409芯片采用雙電源供電機制,即1.8 V或更低的內核電源,為該器件的內部邏輯提供電壓;3.3 V的I/O電源便于直接與外部低壓器件接口[1,4]。由電壓調節器芯片TPS73HD318實現該功能。
5409的時鐘采用外接頻率為8 MHz晶體,內部倍頻的大小由芯片上CLKMD1~CLKMD3一組引腳的狀態決定[4]。開始設置CLKMD1~CLKMD3為001,即PLL×10,5409工作頻率為80 MHz。
5409片內包括3個高速、全雙工、多通道緩沖串行接口McBSP[4],其方便的數據流控制可使它與大多數同步串行外部設備接口。它由數據線BD(R/X)、幀同步線BFS(R/X)和移位時鐘線BCLK(R/X)組成。
通過McBSP主要完成與AD73311L支持SPI接口之間的數據交換,5409對AD73311L的控制通過GPIO的XF(輸出)引腳來完成。5409與AD73311L硬件連接電路原理如圖4所示。
圖4 5409與AD73311L硬件連接電路原理圖
5409的McBSP作為SPI的從設備與SPI的主設備AD73311L連接。在這種方式下,McBSP的移位時鐘線BCLK(R/X)在內部相連,幀同步線BFS(R/X)在內部相連。系統時鐘的輸出引腳CLKOUT連接MCLK引腳,為AD73311L提供主時鐘信號。這種主從SPI模式實現5409對AD73311L的初始化以及數據交換。
1.5 A/D~D/A模塊
AD73311L是AD公司的16位串行A/D/A集成轉換器,廣泛應用于語音信號處理、無線通信、數據通信等領域[5]。系統采用AD73311L芯片,完成D/A,A/D轉換功能。圖4中A/D的輸入采用單端輸入方式,D/A的輸出采用雙端輸出方式。其中,C10,R10,C11組成帶通濾波器。
1.6 功放模塊
系統信號放大電路分為兩路:D/A→信號放大→換能器;換能器→信號放大→A/D。兩路信號放大電路的原理和組成結構采用相同模式,都采用兩級級聯放大:第一級選擇TLC2652M作小信號放大[6];第二級由運放OP07構成,實現功率放大及濾波[7]。調整電路中的電阻、電容參數,以實現兩路信號放大的需求。
由TLC2652M構成的放大電路,理論上閉環放大倍數約為100倍;低通截止頻率f=33.86 kHz。
由運放OP07構成的放大電路,理論上放大倍數為30倍,低通截止頻率f=24.11 kHz。
1.7 換能器
根據系統對換能器的指向性要求、電聲特性以及工作條件等要求,直接生產專用換能器。
2 軟件系統構成
軟件主要由CH375計算機端口和DSP端口編程及初始化、5409初始化、McBSP0初始化以及對AD73311L的初始化等程序模塊組成。初始化流程圖如圖5所示。
圖5 初始化流程圖
USB數據傳輸模塊的主要程序包括兩部分:計算機端口軟件編程和DSP端口軟件編程。
計算機端,使用VC作為計算機端應用軟件的開發平臺,利用CH375器件中DLL提供的API函數對其進行操作[8]。
本地端,5409采用C語言編程,編寫內置固件程序的基本框架如下:
//CH375初始化
CH375_WR_CMD_PORT(CMD_RESET_ALL);
//CH375執行硬件復位
CH375_WR_CMD_PORT(CMD_CHECK_EXIST);
//檢查CH375是否工作正常
…
CH375_WR_CMD_PORT(CMD_SET_USB_MODE);//向CH375發送USB工作模式設置命令
CH375_WR_DAT_PORT(2);
//設置USB的工作模式為內部固件模式
//USB中斷入口程序
CH375_WR_CMD_PORT(CMD_GET_STATUS);
//向CH375發送中斷狀態獲取命令
InterruptStatus=CH375_RD_DAT_PORT();
//獲取中斷狀態,并通知CH375做相應處理
if(InterruptStatus==USB_INT_EP2_OUT)
//數據下傳
{CH375_WR_CMD_PORT(CMD_RD_USB_DATA);//向CH375發送讀數據命令
RD_Data=CH375_RD_DAT_PORT();
//從USB緩沖區中讀取數據
CH375_WR_CMD_PORT(CMD_UNLOCK_USB);
//釋放當前USB緩沖區
CH375_WR_CMD_PORT(CMD_WR_USB_DATA7);//向CH375發送寫數據命令
CH375_WR_DAT_PORT(DATA);
//向USB端點2緩沖區寫入數據DATA
CH375_WR_CMD_PORT(CMD_RD_USB_DATA);
RD_Data=CH375_RD_DAT_PORT();
…//分析接收到的數據
CH375_WR_CMD_PORT(CMD_WR_USB_DATA7);//向CH375發送寫數據命令
CH375_WR_DAT_PORT(ACK);//向USB端點2的上傳緩沖區寫入應答數據ACK
}
If(InterruptStatus==USB_INT_EP2_IN)
//數據上傳
{CH375_WR_CMD_PORT(CMD_UNLOCK_USB);
//釋放當前USB緩沖區
CH375_WR_CMD_PORT(CMD_WR_USB_DATA7)
;//向CH375發送寫數據命令
CH375_WR_DAT_PORT(DATA);//向USB端點2的上傳緩沖區寫入上傳數據DATA
}
5409的初始化程序是完成DSP堆棧、CPU時鐘及其他各個工作寄存器的初試值設置,以滿足系統工作要求[1]。
McBSP0初始化程序是設置McBSP0口的工作狀態,使它運行于系統所需的工作模式[1]。系統要求McBSP工作于從SPI模式、采用外部時鐘和字寬為16 b等工作條件。接收、發送時鐘和幀同步信號都由AD73311L提供。接收和發送數據每幀一字,每字16 b,都沒有延時。程序設計框架如下:
…
DXR10 .set 23h ;McBSP0數據發送寄存器1
SPSA0 .set 38h ;McBSP0子地址地址寄存器
SPCD0 .set 39h ;McBSP0子地址數據寄存器
Mainstart:
…
McBSP0_initializing:
stm #0,SPSA0 ;選擇SPCR10串口控制寄存器1
stm #1000h,SPCD0;SPI時鐘標準模式
stm #1,SPSA0 ;選擇SPCR20串口控制寄存器2
stm #0000h,SPCD0;McBSP0處于復位狀態
stm #2,SPSA0 ;選擇RCR10接收控制寄存器1
stm #0040h,SPCD0;每幀1個字,字寬為16 b
stm #3,SPSA0 ;選擇RCR20接收控制寄存器2
stm #0040h,SPCD0;MSB先接收,無延時
stm #4,SPSA0 ;選擇XCR10發送控制寄存器1
stm #0040h,SPCD0 ;每幀1個字,字寬為16 b
stm #5,SPSA0 ;選擇XCR20發送控制寄存器2
stm #0040h,SPCD0;MSB先發送,無延時
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;發送/接收幀同步且低有效、時鐘由外部輸入
stm #0ffh,DXR10 ;寫第一個數據到發送寄存器1中
stm #0,SPSA0 ;選擇SPCR10串口控制寄存器1
stm #1001h,SPCD0;啟動串口接收
stm #1,SPSA0 ;選擇SPCR20串口控制寄存器2
stm #0001h,SPCD0;啟動串口發送
McBSP0_receive_int:
…
McBSP0_transmit_int:
…
AD73311L有六種工作模式:程序模式、數據模式、程序/數據混合模式、模擬環路模式、數字環路模式和功能檢測循環模式[5]。前三種是正常的工作模式,后三種是調試模式,僅在調試時使用。
AD73311L共有六個內部控制寄存器,5409對六個控制寄存器的寫入順序為:CRB,CRC,CRD,CRE,CRF,CRA。AD73311L的初始化程序如下:
…;AD73311L芯片復位
ld #08143h,a;CRB命令字,Fad=DMCLK/256,
DMCLK=MCLK/5,SCLK=DMCLK/8
stlm a,DXR10 ;命令字送入DXR10寄存器中
ld #08279h,a;CRC命令字,電源管理
stlm a,DXR10 ;命令字送入DXR10寄存器中
ld #08304h,a;CRD命令字,設輸入20 dB,輸出+6 dB
stlm a,DXR10 ;命令字送入DXR10寄存器中
ld #08400h,a;CRE命令字,設置D/A群延時為0
stlm a,DXR10 ;命令字送入DXR10寄存器中
ld #08520h,a;CRF命令字,設A/D為單端輸入模式
stlm a,DXR10 ;命令字送入DXR10寄存器中送
ld #08001h,a;CRA命令字,設芯片為1,數據模式
stlm a,DXR10 ;命令字送入DXR10寄存器中
…;AD73311L進入數據模式
3 結 語
水聲通信Modem以5409為核心,通過芯片CH375實現與PC機的USB通信,利用McBSP0與芯片AD73311L組成SPI串行通信方式,再進行信號放大以及電聲信號轉換,實現水下通信。經實際驗證,該系統的傳輸速度快,易用、可擴展、快速、傳輸可靠等優點,它的研制成功為海洋事業的發展提供很好的應用前景。
參考文獻
[1]彭啟琮,李玉柏,管慶.DSP技術的發展與應用[M].北京:高等教育出版社,2002.
[2]Texas Instruments.TPS73HD301,TPS73HD318,TPS73-HD325 Dual-output Low-dropout Voltage Regulators [Z].1999.
[3]南京沁恒電子有限公司.USB總線接口芯片CH375中文手冊[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]樓鋼,李偉,鄧學博.小信號放大電路設計[J].浙江理工大學學報,2007,24(6):661-664.
[8]湯劍靈,高玉.USB通信芯片CH375在數據交換中的應用[J].電子工程師,2007,33(10):61-63.