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