1 引言
A/D轉換器是一種數(shù)據(jù)采集中常用的模擬-數(shù)字信號轉換元件,按轉換原理可以分為逐次逼近型、雙積分型等;按接口方式可分為串行和并行接口類型;按分辨率又可分為8、12、14、16、18等多種類型。轉換時間是A/D轉換應用中一項重要的性能指標,在高速數(shù)據(jù)采樣中更是十分的重要,但在同樣的轉換時間指標前提下,使用串行或是并行A/D轉換器實現(xiàn)數(shù)據(jù)采樣,轉換時間上的差異往往被忽略。以下以美國TI公司的ADS7822和ADS774為例,通過二者與 AT89C51單片機的接口電路,分析在一次轉換過程中轉換時間上的差異。
2 ADS744的接口電路和轉換時間
2.1 ADS774及與單片機的接口
ADS774是12位逐次逼近型并行A/D轉換器,它具有轉換精度高、轉換速度快(最高8.5 μs)等特點,但接口電路較為繁瑣。圖1為ADS774與AT89C51的典型接口電路。
圖1中,ADS774采用0V~10 V單極性信號輸入模式,9引腳接地,轉換結果被設置為8位方式,12位轉換結果分兩次輸出并受4引腳(Ao)控制,Ao=“0”時,20~27引腳輸出 12位轉換結果的高8位,Ao=“l”時,輸出12位轉換結果的低4位。啟動轉換及讀取轉換結果由3、4、5、6腳控制,28引腳(STS)為轉換結束標志,轉換進行過程中,28引腳為高電平,轉換結束時,28引腳變?yōu)榈碗娖?。圖2為ADS774啟動轉換和讀取轉換結果的工作時序。結合圖l的接口電路和圖 2的工作時序可知,轉換工作過程如下:
(1)啟動A/D轉換,即AT89C51對ADS774執(zhí)行一次寫操作,地址信號中應使CS=“0”,Ao=“0”,R/C=“0”。
(2)單片機通過P2.4引腳查詢STS信號,當STS為低電平時,轉換即告結束。
(3)讀取轉換結果,即單片機對ADS774執(zhí)行兩次讀操作:第一次讀取轉換結果的高8位,這時應使A0=“0”,R/C=“l”,第二次讀取轉換結果的低4位,這時應使Ao=“1”,R/C=“1”。
2.2 轉換時間分析
根據(jù)轉換時序和轉換過程分析,結合圖1的接口電路,轉換程序及轉換時間如下所示(單片機使用12 MHz外接晶振):
由此可見,完成一次A/D轉換的時間為23μs~27μs,采用并行A/D轉換器可最大限度發(fā)揮高速A/D的速度性能,在高速數(shù)據(jù)采樣的過程中,為保證A/D轉換結果的準確性,即使采用多次采樣轉換結果均值濾波的方法,仍可以保證轉換的高速度。
3 ADS7822的接口電路和轉換時間
ADS7822是12位串行A/D轉換器,它的采樣頻率最高為75 kHz,采用串行外圍接口(SPI)方式與微處理器接口。ADS7822與AT89C51的典型接口電路如圖3所示,圖中VREF(1引腳)為參考電壓輸入引腳,IN+、IN-為差動信號輸入端,CS/SHDN(5引腳)為片選信號輸入,低電平有效,高電平時為關閉模式,DOUT(6引腳)為串行數(shù)據(jù)輸出端,DCLOCK(7引腳)為同步時鐘輸入端。
由于AT89C51單片機沒有SPI接口,因此使用P12、P13虛擬SPI接口的串行數(shù)據(jù)輸出端(DOUT)和同步時鐘輸入端(DCLOCK)。圖4為ADS7822啟動轉換和讀取轉換結果的工作時序圖。
圖4中tCYC為采樣周期(75 kHz),tCONVE為轉換時間(12個CLK周期),如果一次轉換結束后,CS仍保持為低電平,ADS7822將繼續(xù)輸出12位轉換結果,但再次的輸出將是低位在前,因此在讀出轉換結果后,應將CS變?yōu)楦唠娖?,使ADS7822處于掉電狀態(tài)。
以下是采用軟件虛擬方式,對ADS7822啟動轉換和讀取轉換結果的程序,CLK和DAT為使用AT89C51的P1.2和P1.3虛擬的串行時鐘線和數(shù)據(jù)線。
從以上轉換程序中可以看出,一次轉換,從啟動到讀取轉換結果,約需要100個機器周期以上,如果單片機使用12 MHz的外部晶振,則一次轉換的時間應該在100μs以上。如果在轉換過程中需要多次采樣均值濾波,則不滿足高速采樣的需要。
4 結束語
串行A/D雖然在使用中有接口電路簡單的優(yōu)點,但在需要軟件虛擬串行通信協(xié)議的情況下,轉換時間與同樣分辨率的并行A/D相比要遜色的多。如果要實現(xiàn)與并行A/D同樣的轉換速度,則需要選擇本身具有同類串口的單片機。