ADSll10自校準(zhǔn)模數(shù)轉(zhuǎn)換器在稱重中的應(yīng)用
引言
ADSlllO是精密的連續(xù)自校準(zhǔn)A/D轉(zhuǎn)換器,帶有差分輸入和高達(dá)16位的分辨率。片內(nèi)可編程的增益放大器PGA提供高達(dá)8倍的增益,并且允許以高分辨率對較小的信號進行測量。
1 ADSll10芯片結(jié)構(gòu)及工作原理
1.1 ADSll10芯片結(jié)構(gòu)
ADS1110由△-∑A/D轉(zhuǎn)換器、可程控增益放大、2.048 V的電壓基準(zhǔn)、時鐘振蕩器和I2C總線接口組成,其結(jié)構(gòu)如圖1所示。
1.2 ADSll10工作原理
ADSlllO模數(shù)轉(zhuǎn)換器是由1個差分開關(guān)電容△-∑調(diào)節(jié)器和1個數(shù)字濾波器組成。調(diào)節(jié)器測量正模擬輸入和負(fù)模擬輸入的壓差,并將其與基準(zhǔn)電壓相比較,數(shù)字濾波器從調(diào)節(jié)器接收高速位流,并輸出一個代碼。該代碼是一個與輸入電壓成比例的數(shù)字,這個數(shù)字被限定在一定范圍內(nèi),范圍取決于代表輸出碼所需要的位數(shù)。在ADS1110中,基準(zhǔn)電壓為2.048 V,該基準(zhǔn)通常用作A/D轉(zhuǎn)換器的電壓基準(zhǔn),不允許接外部基準(zhǔn)。ADS1110只能采用內(nèi)部電壓基準(zhǔn),而且該基準(zhǔn)不能直接測得,也不能被外部電路使用。
2 ADSl110在稱重測量中的應(yīng)用
數(shù)字電子稱是日常生活中廣泛使用的一種稱量工具,市場上使用的各式小量程電子稱存在一定的局限性,這些電子稱體積大、成本高、計量誤差大。本文提出的電子稱選用低功耗、超低價控制芯片STC89C51RC和16位△-∑A/D轉(zhuǎn)換器ADSlllO,設(shè)計一種體積小、低成本、計量精度高、工作可靠的小量程電子稱。
ADSlllO與STC89C5lRC單片機組成的稱重系統(tǒng)的硬件原理如圖2所示。
設(shè)計中選用單點式荷重傳感器LC8020,其精度為O.03%,靈敏度(2.O±O.2)mV/V,額定量程5 kg,供橋電壓5 V。當(dāng)稱重傳感器滿負(fù)載5 kg時,傳感器輸出電壓變化(10±1)mV,此時要求加入ADSlllO的電壓為1 024mV。設(shè)計配置8位ADSlllO寄存器如表1所列。
位的含意取決于它是被寫入還是被讀出。在單周期轉(zhuǎn)換方式中,寫1到位則轉(zhuǎn)換開始,寫入O無影響;在連續(xù)方式中,ADSlllO忽略寫入的值。在進行讀操作時,表明輸出寄存器中的數(shù)據(jù)是否為新數(shù)據(jù)。如果為O,則剛從輸出寄存器中讀出的數(shù)據(jù)是新數(shù)據(jù);如果為1,則剛從輸出寄存器讀出的數(shù)據(jù)以前已經(jīng)被讀取過。保留位位6和位5置為O。SC位控制ADSlllO是以連續(xù)轉(zhuǎn)換方式工作還是以單周期轉(zhuǎn)換方式工作,置SC為1時,ADS1110以單周期轉(zhuǎn)換方式工作。DR的位3和位2控制ADSlll0的數(shù)據(jù)速率,置DR的位3和位2為1表示ADSlll0的數(shù)據(jù)采樣率為15 sps。PGA的位1和O控制ADSlllO的增益,置PGA位1和O為1、O表示ADSlllO的PGA增益為4。
3 軟件設(shè)計
按照硬件電路,采用匯編語言編程,在KeilA51 V8.50環(huán)境下調(diào)試通過,并成功應(yīng)用在單片機稱重系統(tǒng)中。軟件按功能模塊,主要由LCD顯示控制、ADslllO模數(shù)轉(zhuǎn)化、超負(fù)荷報警檢測、采集數(shù)據(jù)處理、鍵盤中斷等子程序構(gòu)成。此處側(cè)重介紹ADSlll0模數(shù)轉(zhuǎn)換程序。程序代碼如下:
;定義P3.O腳為時鐘SCI,P3.1腳為數(shù)據(jù)SDA
SDA BIT P3.1 ;定義數(shù)據(jù)
SCL BIT P3.O ;定義時鐘
;配置寄存器子程序
SEND:ACALL START;主機發(fā)送開始條件
MOV A,#10010000B ;發(fā)送ADSlll0地址(末位為O表示寫)
ACALL S_BIT
ACALL G_ASK
JC STOP1 ;如果應(yīng)答失敗,結(jié)束通信
MOV A,#l0011100B;工作在單周期模式
ACALL S_BIT
ACALL G_ASK
STOP1: ACALL STOP
RET
;接收一次轉(zhuǎn)換值(3字節(jié))子程序
READ:ACALL START;主機發(fā)送開始條件
MOV A,#10010001B;發(fā)送ADSlllO地址(末位為1表示讀)
ACALL S_BIT
ACALL G_ASK
JC STOP2 ;如果應(yīng)答失敗,結(jié)束通信
ACALL READBYTE
MOV R7,A ;高字節(jié)存在R7中
CLR SDA ;發(fā)送應(yīng)答脈沖
NOP
NOP
SETB SCL
NOP
NOP
CLR SCL
ACALL READBYTE
MOV R6,A ;低字節(jié)存在R6中
CLR SDA ;發(fā)送應(yīng)答脈沖
NOP
NOP
SETB SCL
NOP
NOP
CLR SCL
ACALL READBYTE
MOV R5,A ;配置寄存器數(shù)據(jù)存在R5中
CLR SDA ;發(fā)送應(yīng)答脈沖
NOP
NOP
SETB SCL
NOP
NOP
CLR SCL
STOP2: ACALL STOP
RET
;I2C開始子程序
START:SETB SDA
SETB SCL
NOP
NOP
CLR SDA
NOP
NOP
CLR SCL
NOP
NOP
RET
;I2C停止子程序
STOP:CLR SDA
SETB SCL
NOP
NOP
SETB SDA
NOP
NOP
CLR SCL
NOP
NOP
RET
;I2C檢測應(yīng)答子程序
G_ASK:SETB SDA
SETB SCL
NOP
NOP
MOV C,SDA
NOP
NOP
CLR SCL
RET
;接收1字節(jié)數(shù)據(jù)子程序
READBYTE:SETB SDA ;釋放總線
MOV 7FH,#8H
READ_LOOP:SETB SCL;讀取數(shù)據(jù)
NOP
NOP
MOV C,SDA
NOP
NOP
CLR SCL
RLC A
DJNZ 7FH,READ LOOP
RET
;發(fā)送1字節(jié)數(shù)據(jù)子程序
S_BIT:CLR C
CLR SCL
MOV 7FH,#8H
SEND_LOOP1:RLC A
MOV SDA,C
SETB SCL
NOP
NOP
CLR SCL
NOP
DJNZ 7FH,SEND LOOP1
RET
4 實驗結(jié)果
根據(jù)上述設(shè)計方案制作了實驗電路,各電路模塊所需的電源由電源模塊提供。電源模塊以7805為核心,為電路提供5 V穩(wěn)壓電源。
測試條件:稱重傳感器型號LC80320,額定載荷5kg,傳感器信號線長O.2 m,測試載物臺面尺寸φ100 mm,測試環(huán)境溫度27.8℃。測試結(jié)果如表2所列。
結(jié)語
將ADSlllO應(yīng)用于小量程電子稱,能充分發(fā)揮其性能特點,降低硬件成本。實驗證明,該電子稱在日常條件下工作可靠,具有精度高、體積小、讀數(shù)直觀等優(yōu)點。經(jīng)驗證實現(xiàn)秤重測量范圍O~5kg,最小分辨1 g??梢院芎玫剡m應(yīng)日常生活需要,在民用市場上有著良好的應(yīng)用前景。