摘 要: 介紹了A/D" title="A/D">A/D轉換器AD7730的基本原理,其中包括A/D轉換輸出速率的設定、內部校準和系統校準的選擇、接口電路設計等。給出了AD7730在發動機燃油消耗測量儀" title="測量儀">測量儀中的應用實例。
關鍵詞: ∑-Δ A/D轉換器 AD7730 校準 串行接口
AD7730是美國ADI公司推出的一款高分辨率的A/D轉換器,具有雙通道差分模擬輸入、24位無失碼、21位有效分辨率、±0.0018%線性誤差等特點。由于采用∑-Δ轉換技術,量化噪聲被移至A/D轉換的頻帶以外,因此AD7730特別適合用于寬動態范圍內的低頻信號A/D轉換,具有優良的抗噪聲性能。在發動機燃油消耗測量儀中使用AD7730直接與稱重傳感器和單片機接口,并由單片機讀入A/D轉換值,進行發動機平均油耗計算并顯示輸出,就是其應用之一。
1 AD7730的工作原理和內部結構
1.1 ∑-Δ A/D轉換器原理
∑-Δ A/D轉換器的工作原理如圖1所示,它以k倍過采樣頻率kfs(fs采樣頻率)采樣模擬輸入信號,并通過噪聲整形電路將fs/2信號帶寬內的大部分量化噪聲移至A/D轉換頻帶之外的fs/2至kfs/2之間,電路量化噪聲降為原來的1/[1]。模擬低通濾濾器只濾除kfs/2以上的噪聲,因此需通過數字濾波器和采樣抽取電路提取頻帶內的有用信號,濾除頻帶之外的量化噪聲和無用信號,提高信噪比和有效分辨率。采樣抽取的原則應滿足Nyquist采樣定律[2],采樣頻率應大于信號頻率的兩倍(fs>2fa)?!?Δ A/D轉換器的數字濾波器,用戶可通過軟件編程設置,從而使A/D轉換器可在數據輸出速率、峰-峰分辨率、噪聲系數之間作出最佳的選擇。
?
1.2 AD7730內部結構
AD7730內部結構如圖2所示,它包含一個24位的∑-Δ A/D轉換器、兩級可編程的數字濾波器、十三個片內控制寄存器、一個校正微處理器、兩路差分模擬輸入通道和雙向串行輸入輸出接口。
1.2.1 差分模擬輸入
AD7730具有兩路差分模擬輸入通道,通過寫入方式寄存器的控制位,可設置傳感器模擬輸入量程范圍為0~+10mV、0~+20mV、0~+40mV、0~+80mV(四種單極性信號)以及±10mV、±20mV、±40mV、±80mV(四種雙極性信號),并且能夠對不同幅度的傳感器輸入信號實現量程轉換。多路轉換器MUX的輸出在加到片內可編程增益放大器(PGA)之前,要先與片內6位DAC的輸出求和,使輸入信號在PGA的允許量程范圍之內(DAC輸出最大能抵消模擬輸入信號量程范圍內達±77.5mV的失調值)。
1.2.2 串行接口
AD7730工作方式的寫入設置和轉換結果讀出都是通過串行接口對片內相應寄存器進行操作完成的。串行時鐘脈沖SCLK是控制A/D串行數據傳送的移位脈沖。狀態標志標明AD7730數據寄存器的狀態。A/D轉換結果、校準系數、工作方式、數據輸出速率則通過DIN、DOUT兩條數據線進行串行讀寫操作來完成。圖3是AD7730的讀寫周期時序。
寫入AD7730的串行數據要先寫入輸入移位寄存器" title="移位寄存器">移位寄存器。當時鐘邏輯引腳POL為高電平時,執行單片機位操作寫指令,在SCLK時鐘下降沿,將數據傳送至AD7730的DIN串行數據輸入端;在SCLK時鐘上升沿,數據鎖存到輸入移位寄存器中。當移位寄存器規定的位數全部寫入時,輸入移位寄存器的內容便被傳送至指定的片內寄存器。
當啟動AD7730寄存器的讀操作時,片內相應寄存器的內容傳送到輸出移位寄存器。當時鐘邏輯引腳POL為高電平時,在SCLK時鐘下降沿,數據從輸出移位寄存器串行輸出到DOUT端口鎖存;在SCLK時鐘上升沿,執行單片機位操作讀指令,DOUT端口的數據便經串行移位讀入到單片機。
2 AD7730在發動機燃油消耗測量儀中的應用
2.1 發動機燃油消耗測量儀測量原理
測量儀的稱重傳感器輸出與油杯和杯內燃油重量之和成正比的信號,測控軟件根據耗油時間計算油杯內燃油重量與原有燃油重量的差值,以kg/h或g/s為測量單位顯示油耗。稱重式測量方式只與燃油的重量直接相關,而與燃油的密度、容積無關,因此不存在由于受燃油氣泡的影響導致容積的變化而產生的測量誤差。測量精度在很大程度上取決于稱重傳感器和A/D轉換器的精度。
A/D轉換器與檢測傳感器接口,傳統的設計方式是設置前置放大器或接口模塊。以往應用雙積分型A/D轉換器ICL7135或逐次逼近型A/D轉換器AD574與稱重傳感器接口時,采用運算放大器OP27或儀表放大器AD620組成前置放大電路,并設置零點、增益、基準電壓調整電位器。通過前置放大電路與YZ108B稱重傳感器接口,將稱重傳感器0~10mV的信號放大到ICL7135的0~2V的接口電平信號或AD574的0~10V的接口電平信號。由于電路標定調試需要調整電位器,所以硬件電路調試一直存在調整精度重復性差的弊端。
本文通過使用24位∑-Δ A/D轉換器AD7730與稱重傳感器直接接口,組建發動機燃油消耗測控裝置,如圖4所示。硬件電路取消了前置放大電路或接口模塊,電路參數可以免調試。A/D轉換器的數字濾波、輸出速率、基準電壓的設置可通過軟件編程設定。AD7730內部零點或系統零點及增益校準的編程控制方式取代了手動調整零點、增益、基準電壓電位器的參數設定。
2.2 AD7730接口電路設計
在發動機燃油消耗測量儀中,AD7730與YZ108B電阻應變片稱重傳感器的模擬接口電路和與微處理器的數字接口電路如圖5所示。R1、R2、C1、C2組成低通濾波電路,C3為共模濾波電容,C4為傳感器屏蔽層降噪電容。通過軟件編程設置AD7730模擬信號輸入量程為0~10mV,基準電壓為5V,并使其處于斬波" title="斬波">斬波工作方式和兩級數字濾波方式。
AT89C52的P1.0、P1.1、P1.3、P1.4分別與AD7730的SCLK、CS、DOUT、DIN接口,通過控制AD7730的串口時序,完成A/D連續轉換的讀寫操作。P1.2與連接,通過查詢方式控制AD7730。當狀態標志
為低電平時,讀取AD7730數據寄存器內的A/D轉換數據或校準數據。當
為高電平時,AD7730數據寄存器更新數據,禁止數據傳送。也可以把
與AT89C52的
連接,通過中斷方式控制AD7730,或訪問狀態寄存器的
位以節省一位I/O口。
2.3 印制電路板布局設計
AD7730具有24位的分辨率,在+10mV輸入量程、50Hz的輸出速率和斬波工作方式下,最低有效位1LSB對應0.596nV的電壓值,噪聲系數只有40nV [3]。由于AD7730的分辨率極高、噪聲系數極低,必須十分注意印制電路板的元件布局、芯片模擬地" title="模擬地">模擬地和數字地的接地連接。
在印制電路板元件布局方面,模擬元件與數字元件要完全分開,避免模擬信號線和數字信號線相互交叉。雙面印制板布設模擬地和數字地的鋪銅層,要分別覆圍所有模擬元件和數字元件。AD7730芯片下方不要布設任何信號線,并用模擬地鋪銅層覆圍。特別要注意的是,A/D轉換器和微處理器的晶振應用數字地覆圍屏蔽,并遠離模擬信號線,同時避免噪音對印制板其它部位元件產生幅射干擾影響。
?
印制板頂層模擬地與數字地鋪銅層要互不連接,底層模擬地與數字地鋪銅層不要在接線端子插座的直流地端短接,而要在AD7730芯片的模擬地AGND和數字地DGND處一點短接,這樣更能有效降低接地阻抗和噪聲系數。接線端子直流地與印制板模擬地鋪銅層要連接,模擬輸入信號線線條要寬、采用最短路徑靠近AD7730模擬輸入端口。AD7730模擬電源和數字電源端要分別用10μF鉭電容和0.01μF陶瓷電容并聯,系統工作電源要采用線性電源。
2.4 AD7730數據轉換的軟件編程
對于AD7730數據轉換的編程,首先要寫通訊寄存器,指定下一步操作是讀還是寫以及讀寫那一個寄存器,之后對指定寄存器進行讀寫操作。下面是用AD7730進行三字節(24位)數據轉換并通過串口輸出的片內寄存器讀寫控制子程序:
void writereg(byteword) /*寫AD7730片內寄存器子程序*/
unsigned char byteword;
{unsigned char temp;
int i;
CS=0;
temp=0x80;
for(i=0;i<8;i++)
{SCLK=0; /*時鐘下降沿,數據傳送至AD7730的DIN串行數據輸入端*/
if((temp&byteword)= =0)
DIN=0;
else DIN=1;
SCLK=1; /*時鐘上升沿,數據鎖存到AD7730輸入移位寄存器*/
temp=temp>>1;}
DIN=0;
CS=1;}
void read(readtime) /*讀AD7730 A/D轉換結果子程序*/
int readtime;
{int i, j,t;
unsigned char temp1;
t=0;
CS=0;
DIN=0;
temp1=0x00;
for(i=0;i<readtime;i++)
{while(RDY); /*A/D轉換狀態標志判斷*/
for(j=0;j<24;j++)
{SCLK=0; /*時鐘下降沿,數據從輸出移位寄存器串行輸出到DOUT端口鎖存*/
if(DOUT= =0)
temp1= temp1<<1;
else
{ temp1= temp1<<1;
temp1= temp1+0x01;}
SCLK=1; /*時鐘上升沿,DOUT端口的數據經串行移位讀入到單片機*/
if(j= =7‖j= =15‖j= =23)
{temp3[t]=temp1; /*A/D轉換值存入AT89C52單片機內存單元*/
t=t+1;
temp1=0x00;}}}
CS=1;}
2.5 數字濾波器和A/D輸出速率的選擇
AD7730具有兩級數字濾波器,濾波方式、建立時間、數據輸出速率可通過對濾波寄存器編程進行選擇。第一級濾波器具有斬波和非斬波兩種工作方式。斬波方式能夠消除調制器產生的量化噪聲,對于漂移、噪聲抑制和電磁干擾抑制要求較高的應用場合應采用斬波方式。反之,只要求達到較高的轉換速率的應用場合應采用非斬波方式。
第二級濾波器具有三種工作方式:①直通方式,第一級濾波器的輸出直接作為轉換結果。②22階FIR低通濾波器方式,對第一級濾波器的輸出再進行濾波處理。③快速階躍方式,模擬輸入有階躍變化或通道切換時,可選擇該方式提高A/D轉換響應。
AD7730數據輸出速率與A/D轉換有效位數、噪聲系數密切相關,較高的數據輸出速率對應較低的分辨率。例如±80mV輸入、斬波方式下50Hz模擬信號數據輸出速率,對應A/D轉換峰-峰分辨率為18位,噪聲系數為115nV;400Hz模擬信號數據輸出速率,對應A/D轉換峰-峰分辨率為16.5位,噪聲系數為335nV,而有效分辨率等于峰-峰分辨率加2.7位[4]。AD7730允許用戶在有效分辨率和輸出速率之間作出靈活選擇,在滿足測控系統測量精度指標的前提下,用戶可以選擇較高的數據輸出速率。
2.6 系統校準和內部校準方式的選擇
AD7730具有內部零點校準、內部滿量程校準、系統零點校準、系統滿量程校準等四種校準方式。
內部校準方式只對AD7730器件本身進行增益誤差和零點誤差校準,內部零點校準和內部滿量程校準的校準電壓由芯片內部提供。校準時首先進行內部滿量程校準,之后進行內部零點校準。系統校準則方式是對整個系統增益誤差和零點誤差、包括AD7730器件內部誤差進行校準,系統零點和系統滿量程校準需要從外部輸入校準電壓到器件模擬輸入端,并且要保證在校準期間穩定不變。系統校準首先執行零點校準,之后執行滿量程校準。在發動機燃油消耗測量儀中,選擇內部校準,相對零點校正系數和增益校準系數分別存入AD7730片內失調校準寄存器和增益校準寄存器中,AD7730數字濾波器的輸出減去零點校準系數的差,再乘以增益校準系數作為最終的A/D轉換結果。
3 試驗測量結果
發動機臺架負荷特性試驗的燃油消耗測量設定20s測量一次,平均油耗測量顯示數據為每20s更新一次。測量時間可在10s~100s之間設定更改。發動機燃油消耗測量儀油杯內1kg存量燃油作為相對零點,燃油低于1kg時自動充油,大于2kg時停止充油。1~2kg之間的燃油作為動態測量區域,現場應用的靜態標定測量誤差保持在1.5‰FS以內,小于以往的發動機燃油消耗測量儀5‰~8‰FS的測量誤差。在同一工況下采用相同時間間隔的測量,發動機油耗顯示數據重復穩定性良好。
參考文獻
1 高光天. 傳感器與信號調理器件應用技術.北京:科學出版社,2002
2 高光天. 模數轉換器應用技術. 北京:科學出版社,2001
3 AD7730/AD7730L Bridge Transducer ADC. Analog Device Inc,1998
4 Mary McCarthy. Peak-to-Peak Resolution Versus Effective Resolution. Application Note AN-615.Analog Device Inc,2003