在一些實(shí)時(shí)數(shù)據(jù)采集與信息處理電路中,要滿足數(shù)據(jù)采集的精度和速度要求,以必須采用分辨率高,轉(zhuǎn)換速度快的AD轉(zhuǎn)換器。MAX194是一種性能優(yōu)越的高精度、帶采樣保持的高速度十四位串行AD轉(zhuǎn)換器。筆者在課題實(shí)踐中應(yīng)用了MAX194芯片取得了很好的效果。由于MAX194的輸出方式是串行輸出而與一般的并行輸出方式不同,因此,在與MC51系列單片機(jī)通信時(shí)有一些需要注意的事項(xiàng)。在此筆者把在應(yīng)用中遇到的問題及解決方法作以介紹。 1 工作原理及結(jié)構(gòu) MAX194 的工作原理框圖如圖1所示。它主要由主DAC、控制邏輯、比較器和校準(zhǔn)DAC組成。主DAC用于產(chǎn)生與輸入模擬信號(hào)進(jìn)行比較的模擬信號(hào),它的內(nèi)部結(jié)構(gòu)與一般模數(shù)轉(zhuǎn)換器內(nèi)部的DAC不同,它沒有采用T型電阻網(wǎng)絡(luò),而是由帶二進(jìn)制權(quán)值的電容陣列組成(見圖2).模擬電子開關(guān)受數(shù)字量的數(shù)字代碼控制,代碼為0時(shí)開關(guān)接地,代碼為1時(shí)開關(guān)接到參考電壓上。這樣,d13為1而其它為0時(shí),VA=VREF/2;當(dāng)d12為1而其它為0時(shí),VA=VREF/2 2;依次類推,直到當(dāng)d0=1而其它為0時(shí),VA=VREF/2 14。根據(jù)疊加原理,總的等效電勢(shì)為: VA=d13VREF/2+d12VREF/2 2……+d0VREF/2 14 以單極性輸入為例,其具體的轉(zhuǎn)換過程如下: (1)將電容的自由端均接在AIN,以使電容充電得到電壓VAIN。 (2)將最高位電容接參考電壓,其它電容的自由端接地,以使VA=VAIN,即d13=1而其它位為0,這時(shí),VA=VREF/2-VAIN,當(dāng)VA<0 即VAIN<VREF/2時(shí),比較器的輸出為1,并通過控制邏輯使d13=0,反之使d13=1。在最高位確定后,如果使d12=1而其余為0,則 VA="d13VREF/2"+d12VREF/2 2-VAIN。 (3)要通過比較器和控制邏輯來確定次高位,依次向下類推,經(jīng)過16次比較以可以使轉(zhuǎn)換結(jié)束(包括兩位附加位)。需要說明的是:圖中的DUMMY電容是為了使它前面的電容具有權(quán)值而設(shè)置的,其本身沒有權(quán)值。而由電容組成DAC將使MAX194具有采樣保持功能,也就是電路不需加采樣保持部分。 另外,MAX194自身具有校準(zhǔn)功能,可在上電時(shí)進(jìn)行校準(zhǔn)。當(dāng)外部環(huán)境改變時(shí)(如溫度變化,電源電壓改變等),還可以人為地置RESET為0時(shí)進(jìn)行校準(zhǔn)。 2 管腳排列及功能 MAX194的管腳排列如圖3所示。它采用16腳DIP封裝,各管腳的功能如下:
3 MAX194的應(yīng)用電路 MAX194可廣泛應(yīng)用于工業(yè)控制,測(cè)量,數(shù)字信號(hào)處理等方面。 圖4為筆者在鍋爐測(cè)溫系統(tǒng)中用MAX194與單睡機(jī)進(jìn)行接口的接口電路,該接口將CS接P2.7腳,并由軟件發(fā)出片選信號(hào)。用于轉(zhuǎn)換的時(shí)間脈沖CLK由89C51的ALE腳產(chǎn)生。89C51的TXD經(jīng)非門接SCLK,以用做讀取數(shù)據(jù)的時(shí)鐘。 讀出轉(zhuǎn)換結(jié)果有兩種方式,一種是在轉(zhuǎn)換的過程中以CLK的時(shí)鐘頻率讀出,另一種是在轉(zhuǎn)換結(jié)束后以SCLK的時(shí)鐘頻率讀出。筆者選擇在轉(zhuǎn)換結(jié)束后讀取結(jié)果的方式(第二種)。該方式在轉(zhuǎn)換結(jié)束以后,當(dāng)EOC變低并且在CS也為低時(shí),在DOUT上輸出最高位,之后在SCLK的下降沿依次輸出其它位。SCLK允許的最高頻率是5MHz。圖5為其時(shí)序圖。 圖中,tCONV為轉(zhuǎn)換時(shí)間;tCSS為CS下降模沿的時(shí)間;tCSH為SCLK最后一個(gè)下降沿至CS上升沿的時(shí)間。 4 注意事項(xiàng) 采用圖4電路進(jìn)行接口設(shè)計(jì)時(shí),應(yīng)注意以下幾點(diǎn); (1)Tcss必須大于75μs,應(yīng)在程序中先置CS為零,然后再發(fā)轉(zhuǎn)換開始信號(hào)。 (2)轉(zhuǎn)換開始脈沖必須與轉(zhuǎn)換時(shí)鐘同步,為此在P1.0和ALE之間應(yīng)加一個(gè)或門后再接至CONV,以確保同步。 (3)在TXD直接至SCLK相連時(shí),由于89C51在TXD的下降沿讀數(shù),而TXD(SCLK)的第一個(gè)下降沿以開始輸出次高位,這樣以會(huì)丟失最高位。為此,可在TXD與SCLK之間接一個(gè)反相器,這樣在TXD的下降沿讀入數(shù)據(jù)時(shí),即可在TXD的上升沿(SCLK的下降沿)使DOUT輸出數(shù)據(jù)。由于讀入數(shù)據(jù)和輸出數(shù)據(jù)是分時(shí)進(jìn)行的,因而保證了這種先讀出最高位,再輸出次高位的全數(shù)據(jù)輸出方式。 (4)由于在收緩沖器SBUF中,數(shù)據(jù)的存儲(chǔ)順序?yàn)椋? d6 d7 d8 d9 d10 d11 d12 d13 所以要在程序中重新排列其順序,圖6為其程序框圖,具體的程序如下: ADZHUAN:CLR PSW CLR C CLR P2.7 MOV P0,#02H MOV R1,#03H SETB P1.0 CLR P1.0 SETB P1.0 SETB P3.2 HERE:JB P3.2,HERE LOOP:MOV SCON,10H WAIT1:JNB RI,WAIT1 MOV A,SBUF MOV @R1,A INC R1 DJNZ R0,LOOP SETB P2.7 LCALL EXCH RET EXCH:MOV R1,30H MOV A,#00H CLR C MOV R7,#08H LOOP0:XCH A,R1 RRC A XCH A,R1 RLC A DJNZ R7,LOOP0 MOV 32H,A MOV R1,31H MOV A,#00H CLR C MOV R7,#08H LOOP1:XCH,A,R1 RRC A XCH A,R1 RLC A DJNZ R7,LOOP1 MOV 33H,A RET |