1 引言
串行數(shù)/模轉(zhuǎn)換減少了器件間的硬件連接,特別適用于電路空間較小且數(shù)據(jù)采集速率要求不是特別高的場合,。當(dāng)然,,硬件的簡化也相應(yīng)提高了使用的復(fù)雜程度。本文介紹AD7890型串行數(shù)/模轉(zhuǎn)換器在自動導(dǎo)向鉆井系統(tǒng)控制電路數(shù)據(jù)采集中的應(yīng)用,。由于井下工具電子倉部分空間狹窄,、工作條件惡劣,、可靠性要求高,所以特別適合采用串行A/D轉(zhuǎn)換器,。
AD7890是美國Analog Devices公司于20世紀(jì)90年代末推出的一款8通道12位串行A/D轉(zhuǎn)換器,。其主要性能特征包括:A/D轉(zhuǎn)換時間較快(9.5μs);功耗較低(最大50 mW,,體眠狀態(tài)下75μW),;信噪比較高(大于70 dB);總諧波失真小(不大于-78 dB),;內(nèi)置跟蹤/保持放大器,,片上參考電壓;具有高速,、靈活的串行接口等,。
2 AD7890的內(nèi)部結(jié)構(gòu)
圖1示出AD7890的內(nèi)部功能框圖,由圖1可知AD7890內(nèi)部含有相應(yīng)的信號調(diào)理(對于AD7890-5和AD7890-10),、多路開關(guān),、跟蹤保持放大器、通用串行接口及參考電源等,,給用戶的使用帶來極大的方便,。特別是電路中的多路開關(guān)輸出(MUX OUU)和跟蹤/保持輸入(SHA IN)采用分離的獨(dú)特設(shè)計,使用戶在二者間采用1個外部濾波電路就可完成全部8個通道的抗混疊處理,。
電路的SMODE端是工作模式的控制輸入端,,用戶可以用其指定器件內(nèi)部時鐘(主)和外部時鐘(從)的工作模式。采用外部時鐘工作模式時.用戶需提供讀寫數(shù)據(jù)的幀同步和串行時鐘信號SCLK,,其串行脈沖頻率最大可以達(dá)到10 MHz,。采用內(nèi)部時鐘模式時,AD7890本身向系統(tǒng)提供幀同步行時鐘,,此時的工作頻率取決于CLK IN引腳輸入的主時鐘頻率,。電路的8路模擬輸入端為VINl-VIN8,由多路開關(guān)根據(jù)3位通道地址選擇,,多路切換時按先開后合方式操作,。REF OUT/REF IN是參考電壓輸出/輸入端。使用外部參考電壓時外部+2.5 V參考電壓由該端接入,,而使用內(nèi)部參考電壓時需要在該端和模擬地AGND之間接入一只0.1μF的電容器,。
AD7890通過片內(nèi)的高速雙向串行數(shù)據(jù)接口成輸出數(shù)據(jù)和接收控制字。其控制寄存器由5位組成,,如圖2所示,,各位的默認(rèn)狀態(tài)均為0。其中A2,、A1,、A0分別為多路開關(guān)通道地址選擇的最高位,、次高位和最低位。通道選擇算法為:被選通道號=A2x4+Alx2+AO+1,??刂谱炙腿肟刂萍拇嫫鳎骷撮_始啟動內(nèi)部延時脈沖,,該脈沖寬度取決于CEXT引腳的電容值,用戶可以根據(jù)外部濾波和信號處理的實(shí)際延時,,適當(dāng)調(diào)節(jié)該電容值,,確保在A/D轉(zhuǎn)換開始前有足夠的時間進(jìn)行多路轉(zhuǎn)換建立和跟蹤保持的采集。該內(nèi)部延時脈沖時間到后,,跟蹤/保持器立即進(jìn)入保持狀態(tài)并且開始啟動12位A/D轉(zhuǎn)換器的本次操作,。
3 AD7890的工作時序
控制寄存器中的CONV為轉(zhuǎn)換開始狀態(tài)位,為l時表示進(jìn)入轉(zhuǎn)換狀態(tài),,與CONVST引腳輸入效果完全相同,。在向CONV寫操作(寫1)的第6個串行時鐘周期結(jié)束后內(nèi)部延時脈沖開始啟動,轉(zhuǎn)換過程開始,。另外,,在CONV為1時,CONVST的輸入命令無效,。STBY為休眠狀態(tài)位,,該位為1時,電路處于低功耗體眠狀態(tài),。電路在寫操作SCLK的第7個脈沖下降沿進(jìn)入休眠,。因此,系統(tǒng)向AD7890寫操作至少需要6個時鐘脈沖,,使其休眠的寫操作至少需要7個時鐘脈沖,。如果在6個時鐘脈沖前TFS回到高電平,則不會有任何數(shù)據(jù)寫入控制寄存器,。但是需要注意的是,,當(dāng)CONV位置為1時,轉(zhuǎn)換過程都會在寫操作發(fā)生時開始,,無論TFS的低電平能夠保持多少個時鐘脈沖,。
CONVST為轉(zhuǎn)換開始時的硬件輸入端,上升沿觸發(fā),。AD7890可以由CONVST輸入或CONV位寫1兩種方式啟動,。如前所述,從轉(zhuǎn)換過程開始到正式啟動A/D轉(zhuǎn)換器的時間間隔是由每次串行寫操作啟動的內(nèi)部延時脈沖來控制,。這也意味著該脈沖總會給軟件啟動的轉(zhuǎn)換過程帶來一定的延時,。若內(nèi)部延時時間已到,,由CONVST上升沿開始的A/D轉(zhuǎn)換時間為9.5μs,跟蹤/保持器的采集時間為2μs,。另外,,為了保證正常的A/D轉(zhuǎn)換,任何串行讀寫操作均不可在A/D轉(zhuǎn)換期間及下次轉(zhuǎn)換開始前500 ns內(nèi)進(jìn)行,。
4 AD7890的讀寫操作
AD7890串行數(shù)據(jù)輸入引腳是DATA IN,,寫操作時通過該引腳向AD7890控制寄存器寫入數(shù)據(jù),寫入時用傳輸幀同步TFS變?yōu)榈碗娖胶骃CLK的前5個下降沿寫入DATA IN上串行數(shù)據(jù)的前5位,。而同一次TFS中的5個SCLK脈沖下降沿以后的串行數(shù)據(jù)均無效,。
串行數(shù)據(jù)輸出引腳是DATA OUT,輸出數(shù)據(jù)由1位起始位(O),、3位通道地址和由最低有效位開始的12位轉(zhuǎn)換數(shù)據(jù)共16位組成,。輸出數(shù)據(jù)碼制,在雙極性輸入型(AD7890-10)中為補(bǔ)碼,,在單極性輸入型(AD7890-4和AD7890-2)中為無符號的二進(jìn)制數(shù),。
AD7890-4的讀寫操作在不同工作模式下略有區(qū)別,其時序如圖3所示,。
內(nèi)部時鐘模式讀操作時序如圖3(a)所示,,轉(zhuǎn)換結(jié)束后RFS自動變?yōu)榈碗娖剑瑫r開始輸出SCLK脈沖和串行數(shù)據(jù),,每位數(shù)據(jù)在SCLK下降沿時有效,。RFS在第16個SCLK上升沿時刻變?yōu)楦唠娖健A-TA OUT數(shù)據(jù)結(jié)束,。內(nèi)部時鐘寫操作時序如圖3(b)所示,,TFS輸入為低電平表示寫操作的開始,同時也啟動SLCK的輸出,,DATA IN上的串行數(shù)據(jù)在SCLK的下降沿寫入,,故寫入操作至少需要6個SCLK脈沖。
外部時鐘模式讀操作時序如圖3(c)所示,,從RFS低電平開始讀取16位串行數(shù)據(jù),,為保證正常操作,無論RFS和SCLK的時間關(guān)系如何,,起始位O都將維持至少一個SCLK脈沖周期,,并在第一個脈沖周期之后的第一個下降沿時結(jié)束。此外,,在讀操作進(jìn)行中若有新的A/D轉(zhuǎn)換結(jié)束,,則輸出數(shù)據(jù)寄存器的刷新會被延遲到讀操作完成和RFS返回到高電平后進(jìn)行。外部時鐘模式寫操作時序如圖3(c)所示,,串行數(shù)據(jù)寫操作在TFS變?yōu)榈碗娖綍r開始,,5位控制寄存器寫操作至少需要6個SCLK脈沖,,與內(nèi)部時鐘寫操作工作模式相同。
5 應(yīng)用實(shí)例
AD7890在51系列單片機(jī)系統(tǒng)中的應(yīng)用實(shí)例硬件接口原理如圖4所示,。系統(tǒng)采用外部時鐘工作模式,,用89C52的P1.3口作為時鐘輸出;P1.0口連接串行數(shù)據(jù)輸入和輸出,。也可以應(yīng)用5l系列單片機(jī)的串口RXD和TXD連接AD7890實(shí)現(xiàn)數(shù)據(jù)讀寫操作,,此時需要特別注意的是AD7890的串行數(shù)據(jù)總是最高有效位在前,而51系列單片機(jī)串行通信收發(fā)操作總是最低有效位在前,。P1.1,、P1.2分別連接RFS可和TFS。MUX OUT和SHA IN直接連接,,這種連接方式的缺點(diǎn)是系統(tǒng)不能同時訪問控制寄存器和輸出數(shù)據(jù)寄存器,。內(nèi)部延時脈沖寬度只需考慮2 μs的跟蹤/保持器采集時間,,因此電容C的最小容值可以為120 pF,。
軟件啟動AD7890轉(zhuǎn)換的C51函數(shù)程序框圖如圖5所示。執(zhí)行中由實(shí)際參數(shù)傳遞欲轉(zhuǎn)換的通道地址(0x00--Ox07對應(yīng)VINl-VIN8),,將通道地址A2,、Al、A0分別送控制字第7位,、第6位和第5位,。控制字第4位置1作為CONV標(biāo)志,。如果寫入的是置電路為休眠狀態(tài)的命令,,則應(yīng)將控制字第3位也置為1。通過P1.2置TFS為低電+平并在SCLK脈沖作用下串行輸出控制字,。經(jīng)過軟件延時等待,,延時時間大于內(nèi)部延時脈沖加5.9μs的A/D轉(zhuǎn)換時間。當(dāng)主頻為11.0592 MHz時,,89C52系統(tǒng)的1個機(jī)器周期約為l.085μs,。所以執(zhí)行空操作至少8次后再發(fā)送RFS命令,進(jìn)行讀操作,。讀操作過程中主機(jī)在SCLK脈沖同步下讀入16個串行數(shù)據(jù),。轉(zhuǎn)換結(jié)果在函數(shù)返回數(shù)字中的低12位中。若采用硬件啟動方式,,則需要先將控制寄存器CONV標(biāo)志寫0,,然后用P3.2口輸出A/D轉(zhuǎn)換啟動命令。由于沒有加入內(nèi)部延時脈沖,,因此如果不改變轉(zhuǎn)換通道,,硬件啟動方式可以得到最快的轉(zhuǎn)換速率,。
下面是應(yīng)用實(shí)例的C51程序清單。實(shí)例中所用軟硬件條件為:89C52單片機(jī),、11.0592 MHz時鐘,、AD7890-10和V2.40版本KEIL Cx51開發(fā)工具。