《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > TMS320C30與A/D和D/A接口的設(shè)計(jì)
TMS320C30與A/D和D/A接口的設(shè)計(jì)
徐淑正 汪 蕙 楊華中1 許宏
摘要: 一種硬件代價(jià)極小、軟件控制簡單的DSP與A/D和D/A的接口設(shè)計(jì)方法。該方法采用DSP的程控能力協(xié)調(diào)A/D、D/A等各種模塊的工作,不需要總線隔離。該方法已成功地應(yīng)用于汽車防撞雷達(dá)信號(hào)的采集與處理系統(tǒng)中。
Abstract:
Key words :

    摘  要: 一種硬件代價(jià)極小、軟件控制簡單的title="DSP">DSP與A/D和D/A的接口設(shè)計(jì)方法。該方法采用DSP的程控能力協(xié)調(diào)A/D、D/A等各種模塊的工作,不需要總線隔離。該方法已成功地應(yīng)用于汽車防撞雷達(dá)信號(hào)的采集與處理系統(tǒng)中。 

    關(guān)鍵詞: DSP  A/D  D/A  時(shí)序關(guān)系

 

    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)品相比,具有性能/價(jià)格比高的優(yōu)點(diǎn),故在高速數(shù)據(jù)采集、數(shù)字信號(hào)處理及可變增益放大器等動(dòng)態(tài)性能要求比較高的系統(tǒng)中,用它們作為數(shù)據(jù)采集和波形產(chǎn)生器件或控制信號(hào)的產(chǎn)生器件十分理想。MAX153和MX7545可以很容易地與一般的微處理器接口,而不需要過多地考慮時(shí)序問題。然而,當(dāng)它們同時(shí)與高速數(shù)字信號(hào)處理器(DSP)接口時(shí),就需要從軟硬件的設(shè)計(jì)上仔細(xì)考慮時(shí)序問題和其它問題。下面先簡單介紹一下MAX153和MX7545 的工作模式,隨后以它們與TMS320C30數(shù)字信號(hào)處理器的接口為例,詳細(xì)介紹其接口的軟硬件設(shè)計(jì)方法。 

1 MAX153的工作模式

    根據(jù)MODE管腳上信號(hào)的不同,MAX153有兩種不同的工作模式。當(dāng)MODE接地(0V)時(shí),轉(zhuǎn)換器處于RD工作模式;當(dāng)MODE接高電平(+5V)時(shí),轉(zhuǎn)換器處于WR-RD工作模式。限于篇幅,下面將只介紹WR-RD工作模式。 

    從圖1可以看出,轉(zhuǎn)換器在的下降沿開始啟動(dòng),當(dāng)變高時(shí),高4位的數(shù)據(jù)已轉(zhuǎn)換完畢且已送到輸出緩沖器,同時(shí)低4位數(shù)據(jù)開始轉(zhuǎn)換,380ns后變低,表明低四位數(shù)據(jù)轉(zhuǎn)換也已完成。數(shù)據(jù)的讀取有兩種方式,這里僅介紹最快工作模式下的數(shù)據(jù)讀取方式。 

 

 

    圖1所示的是由外部信號(hào)控制的轉(zhuǎn)換時(shí)序圖。在這種讀取數(shù)據(jù)的模式中,信號(hào)提前有效,可以獲得最快的轉(zhuǎn)換時(shí)間。一般的上升沿250ns后變?yōu)榈?就可以完成轉(zhuǎn)換獲得數(shù)據(jù)。的下降沿變?yōu)榈?之后,隨著的上升沿而變?yōu)楦摺?nbsp;

2 MX7545的工作模式

    與一般的D/A轉(zhuǎn)換器一樣,MX7545也有電流和電壓兩種工作模式。其中,電流工作模式又分為單極性和雙極性兩種,這里只介紹單極性電流工作模式。不論是電流工作模式還是電壓工作模式,MX7545的工作時(shí)序是一樣的,如圖2所示。其中,MX7545在一個(gè)轉(zhuǎn)換周期內(nèi),片選信號(hào)有效時(shí)間tcs需要180ns,寫信號(hào)的有效時(shí)間tWR需要160ns。 

 

 

3 硬件接口

    根據(jù)汽車防撞雷達(dá)系統(tǒng)的要求,在發(fā)送三角波調(diào)頻信號(hào)的同時(shí)需采集雷達(dá)的回波信號(hào)。由于系統(tǒng)資源的限制,我們把A/D和D/A同時(shí)配置在TMS320C30的擴(kuò)展總線上。TMS320C30是TI公司的通用DSP芯片,有很強(qiáng)的浮點(diǎn)/定點(diǎn)數(shù)據(jù)運(yùn)算能力和很高的處理速度,特別適合于實(shí)時(shí)數(shù)據(jù)采集及運(yùn)算處理(如FFT,FIR,IIR濾波等)。圖3是該接口的硬件連接圖。圖中,XA[8~10]為擴(kuò)展總線的地址線中的3條,經(jīng)過譯碼器(74LS138)譯碼后,其輸出Y1、Y2分別接到MX7545和MAX153的片選信號(hào)()端,分別作為他們的片選信號(hào)。RD/WR為TMS320C30擴(kuò)展總線的讀寫控制信號(hào),為擴(kuò)展總線的選通脈沖,XD[0~11]為擴(kuò)展總線的數(shù)據(jù)總線。A/D和D/A的讀寫信號(hào)由DSP的擴(kuò)展總線的讀寫信號(hào)和選通信號(hào)來決定,它們的關(guān)系可由下式表示: 

      

 

 

    當(dāng)A/D工作時(shí),Y2尋址選中MAX153。DSP的寫信號(hào)有效時(shí),A/D轉(zhuǎn)換啟動(dòng);DSP的讀信號(hào)有效時(shí), A/D輸出數(shù)據(jù)。當(dāng)D/A工作時(shí),Y1尋址使MX7545有效。DSP的寫信號(hào)有效時(shí),D/A轉(zhuǎn)換啟動(dòng)。MAX153工作于最快的轉(zhuǎn)換方式,口地址是804200;MX7545工作于通用的單極性電流工作模式,口地址是804100。從圖中可以看出,其硬件電路是較為簡單的。 

4 時(shí)序的配合和程序的編制

    下面將介紹D/A在通用電流工作模式下和A/D在最快工作模式下與TMS320C30 DSP接口的時(shí)序配合問題。 

4.1 時(shí)序配合問題

    從系統(tǒng)硬件電路的接法和工作時(shí)序上,可以分析“啟動(dòng)轉(zhuǎn)換”和“讀取數(shù)據(jù)”的時(shí)序關(guān)系。一個(gè)假寫操作便可使A/D的/WR有效,即可啟動(dòng)轉(zhuǎn)換。就DSP的擴(kuò)展總線的信號(hào)線選通的端口而言,讀寫都需兩個(gè)時(shí)鐘周期。當(dāng)DSP采用33.3MHz的時(shí)鐘時(shí),每個(gè)時(shí)鐘周期H1為60ns(即主時(shí)鐘的二分頻)。從圖1可見,啟動(dòng)轉(zhuǎn)換時(shí)間tWR的最小需要250ns,故需要插入總線等待周期。若插入4個(gè)等待周期,此時(shí)tWR為60×5=300ns,除去高速譯碼器的傳輸延遲17ns,實(shí)際WR的脈沖寬度遠(yuǎn)大于MAX153所規(guī)定的tWR的最小脈寬250ns,因而啟動(dòng)A/D轉(zhuǎn)換是可靠的。 

    由圖1可知,MAX153要求的轉(zhuǎn)換時(shí)間tRD須大于250ns,故這里需要加入300ns的延遲時(shí)間,此時(shí)讀取A/D轉(zhuǎn)換的數(shù)據(jù)也是可靠的。接著讀取并轉(zhuǎn)移A/D數(shù)據(jù),然后向D/A送數(shù)據(jù)。從圖2可以看出,tCS至少需要180ns,tWR至少需要160ns,故設(shè)置4個(gè)總線等待周期也是完全可以滿足要求的。 

4.2 匯編程序編寫

    由于此電路用于汽車防撞雷達(dá)信號(hào)的采集和處理系統(tǒng)中,故此電路應(yīng)完成的功能是:在發(fā)送雷達(dá)所需的三角波的同時(shí)采集雷達(dá)的回波信號(hào),即二者須同時(shí)完成。具體程序如下: 

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     ;主總線上存儲(chǔ)器處于0等待狀態(tài) 

        STI R0,*+AR0(100) 

        LDI @SECONDARY,R0   ;擴(kuò)展總線等待4個(gè)總線周期 

        STI R0,*+AR0(96) 

        LDI @DADAT,AR0      ;設(shè)置存儲(chǔ)D/A數(shù)據(jù)的地址 

        LDI 0H,R0 

        LDI @STEP,R1        ;設(shè)置增加步長 

        LDI @LEH1,RC        ;設(shè)置三角波上升沿的點(diǎn)數(shù) 

        RPTB LODUP          ;裝載要發(fā)送的D/A上升沿?cái)?shù)據(jù) 

        STI  R0,*AR0++(1) 

LODUP   ADDI R1,R0                

        NOP 

        LDI @LEH1,RC        ;設(shè)置三角波下降沿的點(diǎn)數(shù) 

        RPTB LODOW          ;裝載要發(fā)送的D/A下降沿?cái)?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         ;假寫一次,啟動(dòng)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)    ;存儲(chǔ)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ù)信號(hào)處理程序 

               .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)的時(shí)序,如圖4所示。 

 

 

    根據(jù)以上硬件和軟件的設(shè)計(jì),由時(shí)序圖可以得到: 

    AD啟動(dòng)轉(zhuǎn)換時(shí)間:60×5=300ns 

    等待A/D轉(zhuǎn)換時(shí)間:60×5=300ns 

    讀取A/D數(shù)據(jù)時(shí)間:60×5=300ns 

    存儲(chǔ)A/D數(shù)據(jù)和轉(zhuǎn)移D/A數(shù)據(jù)時(shí)間:60×7=420ns 

    發(fā)送D/A數(shù)據(jù)時(shí)間:60×5=300ns 

    發(fā)送D/A數(shù)據(jù)時(shí)間到啟動(dòng)A/D下一個(gè)轉(zhuǎn)換所需時(shí)間:60ns 

    所以,總的轉(zhuǎn)換時(shí)間是: 

    Ts=300+300+300+420+300+60=1680ns 

    故其轉(zhuǎn)化頻率為: 

    Fs=1/Ts=1/1.68μs=595.2kHz 

    程序設(shè)計(jì)中需注意的問題有: 

    (1)在啟動(dòng)A/D轉(zhuǎn)換前,應(yīng)先假讀一次,使A/D復(fù)位,以避免不可靠的操作。 

    (2)TMS320C30的擴(kuò)展總線應(yīng)設(shè)置4個(gè)等待周期,以保證A/D和D/A與DSP 收發(fā)數(shù)據(jù)時(shí)序的配合。 

    (3)無論A/D還是D/A與DSP或MCU的接口電路的設(shè)計(jì),最重要的是保證它們的時(shí)序正確。特別是當(dāng)它們同時(shí)與DSP連接時(shí),更應(yīng)該從軟件方面仔細(xì)考慮它們的時(shí)序配合問題。 

    MAX153和MX7545不僅功能較強(qiáng),而且能方便地與一般的微處理器接口,但在與DSP接口時(shí)要考慮一些特殊的問題。鑒于詳細(xì)介紹DSP同時(shí)與A/D和D/A轉(zhuǎn)換器接口方面的文章較少,故我們選擇其一接口方式加以介紹,對(duì)于其它模式的應(yīng)用也可以參考本文介紹的方法。我們已將該設(shè)計(jì)成功地應(yīng)用于基于DSP的汽車防撞雷達(dá)信號(hào)的處理系統(tǒng)中。 

參考文獻(xiàn)

1 TMS320C30 User’s Guide. TI, 1994 

2 MAXIM Data Sheets.MAXIM, 2000 

3 楊振江.A/D、D/A轉(zhuǎn)換器接口技術(shù)與實(shí)用線路.西安:西安電子科技電子出版社,1996 

4 于繼洲. 集成A/D和D/A轉(zhuǎn)換器應(yīng)用技術(shù).北京:國防工業(yè)出版社,1992 

5 童本敏.標(biāo)準(zhǔn)集成電路數(shù)據(jù)手冊.北京:電子工業(yè)出版社,1989

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。