TMS320C30與A/D和D/A接口的設(shè)計
MAX153 和MX7545 是美國MAXIM 公司近幾年推出的8位A/D轉(zhuǎn)換器和12位D/A 轉(zhuǎn)換器。MAX153具有高達(dá)1MSPS的采樣率,MX7545具有4MSPS的數(shù)/模轉(zhuǎn)換速度。它們集跟蹤/保持器于一體,因而由它們構(gòu)成的數(shù)據(jù)采集和波形產(chǎn)生電路結(jié)構(gòu)較為簡單。與其它同類產(chǎn)品相比,具有性能/價格比高的優(yōu)點(diǎn),故在高速數(shù)據(jù)采集、數(shù)字信號處理及可變增益放大器等動態(tài)性能要求比較高的系統(tǒng)中,用它們作為數(shù)據(jù)采集和波形產(chǎn)生器件或控制信號的產(chǎn)生器件十分理想。MAX153和MX7545可以很容易地與一般的微處理器接口,而不需要過多地考慮時序問題。然而,當(dāng)它們同時與高速數(shù)字信號處理器(DSP)接口時,就需要從軟硬件的設(shè)計上仔細(xì)考慮時序問題和其它問題。下面先簡單介紹一下MAX153和MX7545 的工作模式,隨后以它們與TMS320C30數(shù)字信號處理器的接口為例,詳細(xì)介紹其接口的軟硬件設(shè)計方法。
1 MAX153的工作模式
根據(jù)MODE管腳上信號的不同,MAX153有兩種不同的工作模式。當(dāng)MODE接地(0V)時,轉(zhuǎn)換器處于RD工作模式;當(dāng)MODE接高電平(+5V)時,轉(zhuǎn)換器處于WR-RD工作模式。限于篇幅,下面將只介紹WR-RD工作模式。
從圖1可以看出,轉(zhuǎn)換器在的下降沿開始啟動,當(dāng)變高時,高4位的數(shù)據(jù)已轉(zhuǎn)換完畢且已送到輸出緩沖器,同時低4位數(shù)據(jù)開始轉(zhuǎn)換,380ns后變低,表明低四位數(shù)據(jù)轉(zhuǎn)換也已完成。數(shù)據(jù)的讀取有兩種方式,這里僅介紹最快工作模式下的數(shù)據(jù)讀取方式。
圖1所示的是由外部信號控制的轉(zhuǎn)換時序圖。在這種讀取數(shù)據(jù)的模式中,號提前有效,可以獲得最快的轉(zhuǎn)換時間。一般在的上升沿250ns后變?yōu)榈?就可以完成轉(zhuǎn)換獲得數(shù)據(jù)。在的下降沿變?yōu)榈?之后,隨著或的上升沿而變?yōu)楦摺?
2 MX7545的工作模式
與一般的D/A轉(zhuǎn)換器一樣,MX7545也有電流和電壓兩種工作模式。其中,電流工作模式又分為單極性和雙極性兩種,這里只介紹單極性電流工作模式。不論是電流工作模式還是電壓工作模式,MX7545的工作時序是一樣的,如圖2所示。其中,MX7545在一個轉(zhuǎn)換周期內(nèi),片選信號有效時間tcs需要180ns,寫信號的有效時間tWR需要160ns。
3 硬件接口
根據(jù)汽車防撞雷達(dá)系統(tǒng)的要求,在發(fā)送三角波調(diào)頻信號的同時需采集雷達(dá)的回波信號。由于系統(tǒng)資源的限制,我們把A/D和D/A同時配置在TMS320C30的擴(kuò)展總線上。TMS320C30是TI公司的通用DSP芯片,有很強(qiáng)的浮點(diǎn)/定點(diǎn)數(shù)據(jù)運(yùn)算能力和很高的處理速度,特別適合于實(shí)時數(shù)據(jù)采集及運(yùn)算處理(如FFT,FIR,IIR濾波等)。圖3是該接口的硬件連接圖。圖中,XA[8~10]為擴(kuò)展總線的地址線中的3條,經(jīng)過譯碼器(74LS138)譯碼后,其輸出Y1、Y2分別接到MX7545和MAX153的片選信號()端,分別作為他們的片選信號。RD/WR為TMS320C30擴(kuò)展總線的讀寫控制信號,為擴(kuò)展總線的選通脈沖,XD[0~11]為擴(kuò)展總線的數(shù)據(jù)總線。A/D和D/A的讀寫信號由DSP的擴(kuò)展總線的讀寫信號和選通信號來決定,它們的關(guān)系可由下式表示:
當(dāng)A/D工作時,Y2尋址選中MAX153。DSP的寫信號有效時,A/D轉(zhuǎn)換啟動;DSP的讀信號有效時, A/D輸出數(shù)據(jù)。當(dāng)D/A工作時,Y1尋址使MX7545有效。DSP的寫信號有效時,D/A轉(zhuǎn)換啟動。MAX153工作于最快的轉(zhuǎn)換方式,口地址是804200;MX7545工作于通用的單極性電流工作模式,口地址是804100。從圖中可以看出,其硬件電路是較為簡單的。
4 時序的配合和程序的編制
下面將介紹D/A在通用電流工作模式下和A/D在最快工作模式下與TMS320C30 DSP接口的時序配合問題。
4.1 時序配合問題
從系統(tǒng)硬件電路的接法和工作時序上,可以分析“啟動轉(zhuǎn)換”和“讀取數(shù)據(jù)”的時序關(guān)系。一個假寫操作便可使A/D的/WR有效,即可啟動轉(zhuǎn)換。就DSP的擴(kuò)展總線的信號線選通的端口而言,讀寫都需兩個時鐘周期。當(dāng)DSP采用33.3MHz的時鐘時,每個時鐘周期H1為60ns(即主時鐘的二分頻)。從圖1可見,啟動轉(zhuǎn)換時間tWR的最小需要250ns,故需要插入總線等待周期。若插入4個等待周期,此時tWR為60×5=300ns,除去高速譯碼器的傳輸延遲17ns,實(shí)際WR的脈沖寬度遠(yuǎn)大于MAX153所規(guī)定的tWR的最小脈寬250ns,因而啟動A/D轉(zhuǎn)換是可靠的。
由圖1可知,MAX153要求的轉(zhuǎn)換時間tRD須大于250ns,故這里需要加入300ns的延遲時間,此時讀取A/D轉(zhuǎn)換的數(shù)據(jù)也是可靠的。接著讀取并轉(zhuǎn)移A/D數(shù)據(jù),然后向D/A送數(shù)據(jù)。從圖2可以看出,tCS至少需要180ns,tWR至少需要160ns,故設(shè)置4個總線等待周期也是完全可以滿足要求的。
4.2 匯編程序編寫
由于此電路用于汽車防撞雷達(dá)信號的采集和處理系統(tǒng)中,故此電路應(yīng)完成的功能是:在發(fā)送雷達(dá)所需的三角波的同時采集雷達(dá)的回波信號,即二者須同時完成。具體程序如下:
SECT ″INIT″
.TEXT
BR INIT
INIT LDP 0,DP ;設(shè)置頁指針
LDI 1800H,ST ;禁止全局中斷
LDI @STCK,SP ;設(shè)置系統(tǒng)堆棧指針
LDI @CTRL,AR0 ;設(shè)置寄存器首址
LDI @PRIMARY,R0 ;主總線上存儲器處于0等待狀態(tài)
STI R0,*+AR0(100)
LDI @SECONDARY,R0 ;擴(kuò)展總線等待4個總線周期
STI R0,*+AR0(96)
LDI @DADAT,AR0 ;設(shè)置存儲D/A數(shù)據(jù)的地址
LDI 0H,R0
LDI @STEP,R1 ;設(shè)置增加步長
LDI @LEH1,RC ;設(shè)置三角波上升沿的點(diǎn)數(shù)
RPTB LODUP ;裝載要發(fā)送的D/A上升沿數(shù)據(jù)
STI R0,*AR0++(1)
LODUP ADDI R1,R0
NOP
LDI @LEH1,RC ;設(shè)置三角波下降沿的點(diǎn)數(shù)
RPTB LODOW ;裝載要發(fā)送的D/A下降沿數(shù)據(jù)
STI R0,*AR0++(1)
LODOW SUBI R1,R0
LDI @DAPORT,AR0 ;設(shè)置D/A端口地址
LDI @ADPORT,AR1 ;設(shè)置A/D端口地址
LDI @ADDAT,AR4 ;假讀一次,復(fù)位A/D
LDI 0,R4
LDI @DADAT,AR3 ;賦D/A數(shù)據(jù)地址
LDI @LEH,RC ;設(shè)置循環(huán)次數(shù)
RPTB LOOP ;塊循環(huán)
STI R4,*AR1 ;假寫一次,啟動A/D轉(zhuǎn)換
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
LDI *AR1,R3 ;讀取A/D數(shù)據(jù)
STI R3,*AR4++(1) ;存儲A/D數(shù)據(jù)
LDI *AR3++(1),R0 ;轉(zhuǎn)移D/A數(shù)據(jù)
LOOP STI R0,*AR0 ;向D/A 送數(shù)據(jù)
BR PROSESS ;轉(zhuǎn)向后續(xù)信號處理程序
.DATA
CTRL .WORD 808000H ;控制寄存器首地址
PRIMARY .WORD 00000808H ;主總線控制字
SECONDARY .WORD 00000088H ;擴(kuò)展總線控制字
STCK .WORD 0809F00H ;系統(tǒng)堆棧指針值
DAPORT .WORD 804100H ;D/A口地址
ADPORT .WORD 804200H ;A/D口地址
DADAT .WORD 10000H ;存放D/A數(shù)據(jù)的首地址
ADDAT .WORD 11000H ;存放A/D數(shù)據(jù)的首地址
LEH .WORD 0682H ;塊循環(huán)長度控制字
STEP .WORD 02H ;步長控制字
.END
根據(jù)程序,可以得到系統(tǒng)的時序,如圖4所示。
根據(jù)以上硬件和軟件的設(shè)計,由時序圖可以得到:
AD啟動轉(zhuǎn)換時間:60×5=300ns
等待A/D轉(zhuǎn)換時間:60×5=300ns
讀取A/D數(shù)據(jù)時間:60×5=300ns
存儲A/D數(shù)據(jù)和轉(zhuǎn)移D/A數(shù)據(jù)時間:60×7=420ns
發(fā)送D/A數(shù)據(jù)時間:60×5=300ns
發(fā)送D/A數(shù)據(jù)時間到啟動A/D下一個轉(zhuǎn)換所需時間:60ns
所以,總的轉(zhuǎn)換時間是:
Ts=300+300+300+420+300+60=1680ns
故其轉(zhuǎn)化頻率為:
Fs=1/Ts=1/1.68μs=595.2kHz
程序設(shè)計中需注意的問題有:
(1)在啟動A/D轉(zhuǎn)換前,應(yīng)先假讀一次,使A/D復(fù)位,以避免不可靠的操作。
(2)TMS320C30的擴(kuò)展總線應(yīng)設(shè)置4個等待周期,以保證A/D和D/A與DSP 收發(fā)數(shù)據(jù)時序的配合。
(3)無論A/D還是D/A與DSP或MCU的接口電路的設(shè)計,最重要的是保證它們的時序正確。特別是當(dāng)它們同時與DSP連接時,更應(yīng)該從軟件方面仔細(xì)考慮它們的時序配合問題。
MAX153和MX7545不僅功能較強(qiáng),而且能方便地與一般的微處理器接口,但在與DSP接口時要考慮一些特殊的問題。鑒于詳細(xì)介紹DSP同時與A/D和D/A轉(zhuǎn)換器接口方面的文章較少,故我們選擇其一接口方式加以介紹,對于其它模式的應(yīng)用也可以參考本文介紹的方法。我們已將該設(shè)計成功地應(yīng)用于基于DSP的汽車防撞雷達(dá)信號的處理系統(tǒng)中。