在許多應(yīng)用系統(tǒng)中,數(shù)字信號(hào)處理器(DSP)必須從多路模數(shù)轉(zhuǎn)換器(ADC)通道獲取信息,才能將經(jīng)DSP處理后的數(shù)字信號(hào)傳送到多路數(shù)模轉(zhuǎn)換器(DAC)通道進(jìn)行。關(guān)鍵問(wèn)題是怎樣在DSP系統(tǒng)中十分容易且高效地實(shí)現(xiàn)這些轉(zhuǎn)換,而這必然涉及到接口電路的設(shè)計(jì)。為此,本文將介紹一種在單片內(nèi)集成有ADC通道和DAC通道的模擬接口電路TLC320AC01與TMS320VC5402緩沖串口進(jìn)行接口的設(shè)計(jì)方法,同時(shí)給出了通過(guò)對(duì)這種接口電路的硬件進(jìn)行軟件編程來(lái)實(shí)現(xiàn)模擬信號(hào)的采集與回放的程序代碼。
1 芯片介紹
TMS320VC5402是TI公司生產(chǎn)的TMS320VC54x系列中的一個(gè)操作靈活、高速、具有較高性價(jià)比、低功耗的16位定點(diǎn)通用DSP芯片。它的主要特點(diǎn)包括:改進(jìn)的哈佛結(jié)構(gòu)(1條程序存儲(chǔ)器總線,3條數(shù)據(jù)存儲(chǔ)器總線和4條地址總線)、帶有專(zhuān)用硬件邏輯CPU和片內(nèi)存儲(chǔ)器以及片內(nèi)外圍專(zhuān)用的指令集、具有專(zhuān)用的匯編語(yǔ)言工具等。TMS320VC5402內(nèi)含4k字的片內(nèi)Rom和16k字的雙存取RAM、1個(gè)HPI(Host Port Interface)接口、2個(gè)多通道緩沖串口MCBSP(Multi-Channel Buffered Serial Port),它的單周期指令執(zhí)行時(shí)間為10ns、雙電源(1.8V和3.3V)供電,此外,該DSP同時(shí)還帶有符合IEEE1149.1標(biāo)準(zhǔn)的JTAG邊界掃描仿真邏輯。 TLC320AC01是TI公司生產(chǎn)的14位、音頻(大約12kHz帶寬)、內(nèi)含抗混疊濾波器和重構(gòu)濾波器的模擬接口電路,它同時(shí)帶有一個(gè)能與許多DSP芯片相連的同步串行數(shù)字接口。其內(nèi)部電路的配置和性能參數(shù)的設(shè)定(比如采樣頻率、濾波器帶寬和增益高調(diào)整等)都可以通過(guò)對(duì)它內(nèi)部的8個(gè)數(shù)據(jù)寄存器寫(xiě)入控制信息來(lái)實(shí)現(xiàn)。其ADC通道與DAC通道可同步操作,數(shù)據(jù)是以二進(jìn)制補(bǔ)碼格式進(jìn)行傳輸?shù)?。它?種基本的操作模式:?jiǎn)螜C(jī)模式、主從模式、線性編解碼模式。在單機(jī)模式下,TLC320AC01可生成移位時(shí)鐘和幀同步信號(hào)以用于單機(jī)的數(shù)據(jù)傳輸;在主從模式下,1個(gè)TLC320AC01將作為主機(jī)生成主移位時(shí)鐘和幀同步信號(hào),另外的模擬接口電路為從機(jī);在線性編解碼操作模式下,移位時(shí)鐘和幀同步信號(hào)由外部電路生成,定時(shí)信號(hào)可以由任何一種編解碼電路產(chǎn)生。TLC320AC01的典型應(yīng)用包括調(diào)制解調(diào)器、語(yǔ)音處理、工業(yè)過(guò)程控制、光譜分析、作為DSP的模擬接口電路進(jìn)行數(shù)據(jù)采集處理以及各種記錄儀等。TLC320AC01的工作溫度范圍是0~70℃,采用28腳塑料J型針?lè)庋b(帶FN后綴)和64腳塑料扁平封裝(帶PM后綴),體積較小,適用于便攜設(shè)備。它采用單5V電源供電時(shí),工作時(shí)的最大功耗為110mW。
2 硬件連接
該接口的硬件連接電路原理如圖1所示。圖中,TMS320VC5402與2片TLC320AC01的主時(shí)鐘必須來(lái)源于同一外部時(shí)鐘源。本采用10MHz的有源晶振作主時(shí)鐘源,以消除噪聲并保持DSP芯片與TLC320AC01接口電路的協(xié)調(diào)工作。 主模式時(shí),TLC320AC01的M/S端接高電平;從模式時(shí),TLC320AC01的M/S接地。
3 軟件設(shè)計(jì)
3.1 軟件編制過(guò)程
在完成了正確的硬件連接后,接下來(lái)就可以進(jìn)地軟件編程調(diào)試了。該過(guò)程要完成的工作主要包括以下幾方面: (1)兩個(gè)通道的區(qū)分 TLC320AC01的運(yùn)行模式是主從模式:一個(gè)TLC320AC01是主,另一個(gè)是從。硬件上可通過(guò)設(shè)置M/S的高低電平來(lái)分配主從模式的TLC320AC01,而軟件上則通過(guò)檢測(cè)從TLC320AC01所接收的信息字中的最低有效位來(lái)分析主與從。主信息字的最低有效位是0,而所有從信息字的最低有效位均是1。主從模式下,TLC320AC01與TMS320VC5402的緩沖串口通信輪流進(jìn)行。
(2)初始化 初始化操作過(guò)程包括通過(guò)TMS320VC5402的同步串口發(fā)送兩串16位的數(shù)字信息到TLC320AC01。第一串為0000 0000 0000 0011B,其中14個(gè)最高有效位(bits 15~2)定義輸出采樣值為0,而2個(gè)最低有效位(bits1~0)用于說(shuō)明下一個(gè)要傳輸?shù)臄?shù)據(jù)字是否屬于二次通信(關(guān)于一次通信和二次通信的內(nèi)容請(qǐng)參閱TLC320AC01的數(shù)據(jù)手冊(cè))。第二串?dāng)?shù)據(jù)值用來(lái)對(duì)TLC320AC01的9個(gè)數(shù)據(jù)寄存器的某一個(gè)進(jìn)行配置。其中Bit15、14用來(lái)控制Modem中的相移,這里設(shè)置為0;bit13為0表示這個(gè)數(shù)據(jù)值將寫(xiě)到TLC320AC01的某個(gè)寄存器;bit12~8用于要配置的寄存器地址;bit7~0為要寫(xiě)到寄存器的值。9個(gè)寄存器的描述如下:R0在大多數(shù)應(yīng)用時(shí)設(shè)為0,R1用于設(shè)置采樣頻率,R2用于設(shè)置低通濾波器的截止頻率,R3用于進(jìn)行相移控制,R4用于進(jìn)行模擬輸入輸出的增益控制,R5用于使能高通濾波器,R6用于控制操作模式,R7可用來(lái)控制從模式的串行通信,R8則用于控制生成的幀同步脈沖數(shù)。 (3)用戶代碼的編寫(xiě) 該過(guò)程主要完成音頻信號(hào)的采集與回放代碼的編制。本設(shè)計(jì)采用中斷方式,包括發(fā)送中斷和接收中斷。
3.2 部分關(guān)鍵代碼 (1)初始化 初始化代碼TMS320VC5402的初始化和TLC320AC01的初始化。TMS320VC5402的初始化代碼如下: SSBX INTM ;使所有中斷無(wú)效 ORM #0834h,PMST ;設(shè)備處理器方式狀態(tài)寄存器PMST STM #02492h,SWWSR ;所有外圍兩個(gè)等待狀態(tài) RSBX OVM ;使OVM=0 RSBX FRCT ;使FRCT=0,允許整數(shù)乘 STM #010h,IMR ;多通道緩沖串口接收中斷使能 RSBX INTM ;使能所有非屏蔽中斷 下面是TLC320VC01的初始化程序代碼: SSBX SXM ;設(shè)置符號(hào)擴(kuò)展模式 LD #PR1,DP ;以下三句設(shè)置TLC320AC01內(nèi)部數(shù)據(jù) LD PR1,A ;寄存器R1的值,其余寄存器的設(shè)置與此同 CALL AC01_2ND …… RET AC01_2ND; RSBX INTM ;使中斷有效 STH A,DXR10 STL A,DXR10 STL #0,DXR10 ;確保字被發(fā)送 SSBX INTM ;使中斷無(wú)效 RET (2)接收中斷服務(wù)程序 這段程序包括通道的區(qū)分,方法是使主TLC320AC01首選寫(xiě)入,主TLC320AC01的LSB是0,從TLC320AC01的LSB是1。發(fā)送中斷與此相同。具體程序如下: SBPREC:BITF DRR10,#1 BC loop1,TC LD DRR10,A AND #0fffch,A STL A,DXR10 B loop2 Loop1:LD DRR10,A AND # 0fffch,A STL A,DXR10 RETE Loop2:RETE
4 結(jié)束語(yǔ)
利用本文介紹的硬件設(shè)計(jì)方法和軟件編程可以完成模擬信號(hào)的采集與回放,從而實(shí)現(xiàn)諸如數(shù)據(jù)采集、處理和存儲(chǔ)等功能,并可對(duì)采集的數(shù)據(jù)進(jìn)行頻譜分析,因而可廣泛應(yīng)用于頻譜分析儀、數(shù)字記錄儀以及調(diào)制解調(diào)器等。