16位高性能低功耗A/D轉(zhuǎn)換器AD7705及其應(yīng)用 沈國(guó)民 王歡 謝軍龍 (華中科技大學(xué) 武漢,,430074) 摘要:介紹了16位高性能,、低功耗A/D轉(zhuǎn)換器AD7705的特點(diǎn),并給出了AD7705結(jié)合8031單片機(jī)進(jìn)行壓力測(cè)量的硬件接口電路及軟件編程方法,。 關(guān)鍵詞:A/D轉(zhuǎn)換器單片機(jī)壓力測(cè)量 ABSTRACT:The paper describes the characters of the high—performance,,low—power A/D converter AD7705,,introduces its application for pressure measurement with a single chip mierocomputer8031. KEYWORDS:A/D Converter Single chip microcomputer Pressure measurement 1 AD7705簡(jiǎn)介 1.1 主要性能 AD7705是美國(guó)AD公司新近推出的一種低成本,、高分辨率A/D轉(zhuǎn)換器,它適用于寬動(dòng)態(tài)范 圍測(cè)量,、工業(yè)控制或工藝控制中的低頻信號(hào)的轉(zhuǎn)換,。是用于智能系統(tǒng)、微控制系統(tǒng)和基于DSP系統(tǒng)的理想產(chǎn)品,。其功能框圖如圖1所示,。它具有如下功能及特點(diǎn): (1)雙通道全差分模擬輸入,可接受直接來自傳感器的低電平的輸人信號(hào),; (2)用Σ一△轉(zhuǎn)換技術(shù)實(shí)現(xiàn)了16位無丟失代碼性能,,0.003%的非線性度; (3)可編程增益前端,,增益:1—128,; (4) 可配置成三線串行接口; (5)信號(hào)極性以及更新速率的選擇可用串行輸入口由軟件來配置,; (6)該器件包括自校準(zhǔn)和系統(tǒng)校準(zhǔn)選項(xiàng),,以消除器件本身或系統(tǒng)的增益和偏移誤差; (7) 只需2.7~3.3V或4.75~5.25V單電源; (8) CMOS結(jié)構(gòu)確保器件具有極低功耗,,3V電壓時(shí),,最大功耗為lmV; (9)等待或掉電模式下,,器件消耗的電源電流僅為10ptA,; (10)主時(shí)鐘頻率為1MHz或2.4576MHz,數(shù)據(jù)輸出更新頻率有20Hz,、25Hz,、100Hz、200Hz,、 50Hz,、60Hz、250Hz,、500Hz八種選擇,。 1.2引腳功能 AD7705的引腳排列如圖2所示。其中SCLK,, 串行時(shí)鐘輸入,;MCLK IN/MCLK OUT,主 主時(shí)鐘信號(hào)輸入/輸出,;CS,片選信號(hào),,低電平有效,;RESET,復(fù)位輸入端,;AIN2(+)/AIN2(-),,差分模擬輸入通道2的正/負(fù)輸入端;AINl(+)/AINl(-),,差分模擬輸入通道1的正/負(fù)輸入端,;DRDY,數(shù)據(jù)輸出準(zhǔn)備,,當(dāng)它為低電平表示可從AD7705的數(shù)據(jù)寄存器中獲取新的輸出字,;DOUT/DIN,串行數(shù)據(jù)輸出/輸入端,;電源電壓,,+2.7V一+5.25V;GND,,內(nèi)部電路的地電位基準(zhǔn)點(diǎn),。 1.3工作時(shí)序 AD7705的讀寫時(shí)序如圖3所示。 注意在讀寫過程中串行數(shù)據(jù)的傳輸順序?yàn)楦呶辉谙龋臀辉诤?,這與8031串行口的數(shù)據(jù)傳輸順序恰好相反,。另外,在讀取A/D轉(zhuǎn)換結(jié)果時(shí),,需先檢測(cè)麗位,,只有在該位為低電平時(shí),才能讀取已更新的A/D轉(zhuǎn)換結(jié)果,。 1.4片內(nèi)寄存器 AD7705片內(nèi)包括8個(gè)寄存器,,其編程功能是通過對(duì)寄存器的設(shè)置來控制的,對(duì)這些寄存的讀/寫操作通過器件的串行接口來完成,。 第1個(gè)是通信寄存器,,它管理通道操作,決定下一個(gè)操作是讀操作還是寫操作,,以及下一次讀或?qū)懩囊粋€(gè)寄存器,。所有與器件有關(guān)的通信必須從寫入通信寄存器開始。上電或復(fù)位后,,器件等待在通信寄存器上進(jìn)行一次寫操作,,即接口的默認(rèn)狀態(tài)。在接口序列丟失的情況下,,如果在DIN為高電平時(shí)的寫操作持續(xù)足夠長(zhǎng)的時(shí)間(至少32個(gè)串行時(shí)鐘周期),,AD7705將會(huì)回到默認(rèn)狀態(tài)。此外,,通信寄存器還控制等待模式和通道選擇,,DRDY的狀態(tài)也可從它上面讀出。下表即為通信寄存器的各位說明,。 其中,,0/DRDY位狀態(tài)與DRDY引腳狀態(tài)相同;RS2~RS0,,寄存器選擇位,;R/W,讀/寫操作選擇,;STBY為高電平則處于等待或掉電模式,;CHl~CH0,通道選擇,。 第2個(gè)是設(shè)置寄存器,,決定校準(zhǔn)模式、增益設(shè)置,、單/雙極性輸入以及緩沖模式,。 第3個(gè)是時(shí)鐘寄存器,,包括濾波器選擇和時(shí)鐘控制位。 第4個(gè)是數(shù)據(jù)寄存器,,它是16位只讀寄存器,,器件輸出的數(shù)據(jù)從這個(gè)寄存器讀出。 最后是校準(zhǔn)寄存器組,,它存儲(chǔ)通道校準(zhǔn)數(shù)據(jù),,包括測(cè)試寄存器、零標(biāo)度校準(zhǔn)寄存器和滿標(biāo)度校準(zhǔn)寄存器,。 2 AD7705的應(yīng)用 AD7705靈活的串行口使其能很容易地與大多數(shù)微處理器進(jìn)行連接,,而且AD7705具有上述的多種優(yōu)點(diǎn),因而可將它直接與各種傳感器相連,,構(gòu)成對(duì)采樣速率要求不高的數(shù)據(jù)采集系統(tǒng),。下面介紹一種AD7705結(jié)合8031單片機(jī)進(jìn)行壓力測(cè)量的硬件接口電路及編程方法。 2.1硬件接口電路 接口電路如圖4所示,。 在此應(yīng)用中,,壓力傳感器被安裝在一個(gè)橋式電路中,在它的OUT(+)和OUT(一)端輸出差分輸出電壓,。橋式電路的激勵(lì)電壓用來為AD7705產(chǎn)生基準(zhǔn)電壓,,因此,激勵(lì)電壓的變化不會(huì)造成系統(tǒng)內(nèi)的誤差,。AD7705的第2個(gè)通道作為一個(gè)輔助通道來測(cè)量另一個(gè)變化,,如溫度,以便消除溫度對(duì)系統(tǒng)的影響,。將AD7705的CS直接接低電平,,與8031單片機(jī)可采用2線連接。由于8031單片機(jī)的串行口通常用來與上位機(jī)進(jìn)行通信,,在這種情況下,把AD7705的DO叭’和DIN線接在一起并與8031的P1.10相連以實(shí)現(xiàn)串行數(shù)據(jù)的輸入和輸出,,同時(shí)必須使用一個(gè)100k12的上拉電阻,。P1.1用來輸出串行時(shí)鐘信號(hào)。DRDY的狀態(tài)通過訪問通信寄存器的首位(MSB)得到,,以確認(rèn)數(shù)據(jù)寄存器是否進(jìn)行過更新,。 2.2 AD7705的編程 以上具體說明如何對(duì)AD7705進(jìn)行編程。為避免贅述,,在本例中假定只選擇通道1作為有效通道(對(duì)通道2的數(shù)據(jù)采集編程可參照通道1),,工作條件是增益為1,沒有濾波同步,,雙極性模式,,無緩沖,,4.9512MHz的時(shí)鐘和50Hz的輸出更新速率。采集一次模擬信號(hào)的流程圖如圖5所示,。由于C語言既有一般高級(jí)語言的特點(diǎn),,又能直接操作系統(tǒng)硬件,而且具有良好的可移植性,,所以用C語言進(jìn)行程序設(shè)計(jì)是單片機(jī)開發(fā)與應(yīng)用的必然趨勢(shì),。 本例采用Franklin C51編寫源程序,如下: #include<re951.h> #define uchar unsigned char sbit P1-0=P1^0: sbit P1-1=P1^1,; sbit ACC-0=ACC^0,; uchar RLC(a)/*左循環(huán)移位一位*/ {uchar a,b,,C,; b=a》7; C=a《1,; a=clb: return(a),; } void Writetoreg(a)/*移位寫入8位數(shù)據(jù)*/ {uchar i,a,; for(i=0,;i<=7;i++) {P1—0=1,,P1—1=O,; ACC=RLC(a); P1—0=ACC—O,;P1.1=1,; } } uchar read()/*移位讀出8位數(shù)據(jù)*/ {uchar i; for(i=0,;i<7,;i++) {P1—0=1,P1—1=O,; ACC一0=P1一O,;P1—1=1; ACC=RLC(ACC),; } retum(ACC) } void ADC7705(uchar idata*abc)/*一次模擬 數(shù)據(jù)采集*/ {uchar i,,a,reglength=2,; Writetoreg(0x20),;/*AD7705初始化*/ Writetoreg(0xoc); Writetoreg(0x 10),; Writetoreg(0x40),; Writetoreg(0x00),; a=Read();/*讀通信寄存器*/ while(aIxl0)/*判斷面i麗位狀態(tài)*/ {Writetoreg(0x38),;/*準(zhǔn)備讀數(shù)據(jù)寄存器*7 for(i=O,;i<feglength;i++) *adc=Read(),; } } 3結(jié)束語 AD7705是性能價(jià)格比較高的16位串行A/D轉(zhuǎn)換器,,它的雙輸入通道對(duì)于需要輔助通道以測(cè)定變量用來修正主通道的系統(tǒng)特別適合。AD7705不僅能應(yīng)用于壓力測(cè)量,,還可以應(yīng)用于溫度測(cè)量,,以及低功率、單電源的智能發(fā)射器和電池監(jiān)控中,。 參考文獻(xiàn) 1李朝青.單片機(jī)原理及接口技術(shù)[M].北京:北京航空航 天大學(xué)出版社,,1994 2徐愛鈞,彭秀華.單片機(jī)高級(jí)語言C51應(yīng)用程序設(shè)計(jì) [M].北京:電子工業(yè)出版社,,1998 |
|