《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于C8051F單片機的紅外軸溫探測器零點校正技術(shù)
基于C8051F單片機的紅外軸溫探測器零點校正技術(shù)
摘要: 在數(shù)據(jù)采集系統(tǒng)中,,前級放大器的零點漂移是探測誤差的主要來源,特別是在環(huán)境惡劣的條件下。例如,,用于鐵路軸溫檢測的紅外探頭,,要在環(huán)境溫度—40℃至+55℃的范圍內(nèi)可靠的工作,其零點的溫漂范圍很大,,是很難采用簡單的軟件修正和硬件補償技術(shù)完全解決的,。本文介紹利用C8051F007單片機,在進行溫度數(shù)據(jù)采集和處理的同時,,通過片上DAC對前級放大器進行零點自動調(diào)整,,采用“軟硬兼施”的閉環(huán)調(diào)整方法,補償了系統(tǒng)的零點漂移,。
Abstract:
Key words :

  引言

  在數(shù)據(jù)采集系統(tǒng)中,,前級放大器的零點漂移是探測誤差的主要來源,,特別是在環(huán)境惡劣的條件下,。

  例如,用于鐵路軸溫檢測的紅外探頭,,要在環(huán)境溫度—40℃至+55℃的范圍內(nèi)可靠的工作,,其零點的溫漂范圍很大,是很難采用簡單的軟件修正和硬件補償技術(shù)完全解決的,。本文介紹利用C8051F007單片機,,在進行溫度數(shù)據(jù)采集和處理的同時,通過片上DAC對前級放大器進行零點自動調(diào)整,,采用“軟硬兼施”的閉環(huán)調(diào)整方法,,補償了系統(tǒng)的零點漂移。

  根據(jù)本課題的特點,,由于環(huán)境溫度變化的速度十分緩慢,,當采集時間相對環(huán)境溫度變化較短時,可以認為在采集過程中零點的漂移量是相對固定的,。那么,,當傳感器差動放大器的輸入端上產(chǎn)生零點漂移時,我們可以在非數(shù)據(jù)采集時間內(nèi)動態(tài)地調(diào)整放大器的輸出參考點,,抵消掉零點漂移帶來的影響,。

  此種方法同樣可用于其它傳感器零點漂移范圍較大、信號變化較慢的情況,。

  零點誤差的產(chǎn)生

  傳感器輸出電壓VS由零點電壓VZ和信號電壓VR組成,,

公式

  VR是與被測量物理量直接相關(guān)的電壓,要通過ADC轉(zhuǎn)換成數(shù)字量,。VZ是零點電位,,從長時間來看,VZ往往是隨環(huán)境溫度緩慢變化的,但在較短的采集時間內(nèi),,也可以近似看作不變,。

  為了只將VR進行放大采集,我們將另行提供一個補償電壓VN,,并且使VN=VZ,,將VS和VN輸入到一個差模放大器的兩輸入端。設(shè)放大器的增益為G,,則放大器輸出為(VZ+VR-VN)G,。如果VN=VZ,則輸出為VRG,,直接得到我們需要的電壓,。但實際中,VZ會隨時間緩慢變化,,我們無法時刻做到VN=VZ,。而一旦VN≠VZ,輸出就會產(chǎn)生零點誤差(VZ-VN)G,,尤其是在G很大的時候,,誤差會十分明顯。

  根據(jù)探測現(xiàn)場的實際情況,,平時無列車通過,,探頭暫停采集的時候,我們可以利用ADC不停地捕捉零點漂移,,并通過DAC輸出補償電壓VN,,隨時去掉零點誤差。而當列車通過探頭的時間內(nèi),,單片機停止校正并鎖存DAC調(diào)零輸出,,探頭以此刻DAC調(diào)整的輸出狀態(tài)作為探測零點開始進行工作。

  主要器件介紹

  儀表放大器AD620

  儀表放大器是一個雙端輸入的差動放大器,,除了高精度,,高穩(wěn)定性的特點外,其輸出零點參考電壓可以通過REF管腳的電壓任意設(shè)置,,這就為我們調(diào)整零漂提供了可能,。

  AD620的輸入端有著高達109Ω的輸入阻抗;輸入失調(diào)電壓30uV,,輸出失調(diào)電壓400uV,。輸入偏置電流很低,通常在0.5nA最高不超過2nA,;增益為100時,,增益誤差0.15%;增益100時的共模抑制比高達130dB;輸入噪聲公式,,輸出噪聲公式,。除此以外,AD620的溫度穩(wěn)定性也十分優(yōu)異:增益大于1時,,增益的溫度系數(shù)為-50ppm,,輸入失調(diào)電壓和輸出失調(diào)電壓的平均溫度系數(shù)分別為0.3uV/℃和5.0uV/℃。

  與通用運放不同的是,,通用運放大多用連接在輸入與輸出間的外部電阻控制自身閉環(huán)增益,,而儀表放大器采用內(nèi)部反饋網(wǎng)絡(luò),它的增益控制電阻是不與輸入,、輸出端連接在一起的,,有專門用來連接增益設(shè)置電阻的引腳。AD620通過接在1,、8腳之間的電阻來設(shè)置增益大小,,增益G與增益設(shè)置電阻之間的關(guān)系如公式1。

公式

  一般通用運放的輸出都是對地輸出,,而儀表放大器的輸出是相對于放大器的輸出參考引腳電位的,。通過在輸出參考引腳施加不同的電壓可以設(shè)置對地輸出電壓的輸出零點,。儀表放大器的對地輸出電壓公式如公式2,。

公式

  C8051F007單片機

  本設(shè)計方案需要用到高速MCU和高精度ADC、DAC,,Silicon Laboratories公司的高性能單片機C8051F007正好滿足這一需要,。該單片機集成了8051內(nèi)核,但時鐘頻率更高,,處理能力更強,。片上集成8通道12位ADC和2個12位DAC,除了完成采集和處理任務(wù)之外,,還有足夠的模擬部件進行零漂調(diào)整,。比用分離元件既提高了可靠性,又簡化了電路,,也降低了成本,。

  片上集成DAC

  C8051F007片上集成的兩個DAC使用方法十分簡單,DAC可以用單片機內(nèi)部提供的2.43V參考電壓,,也可以外部提供,。我們在這里使用內(nèi)部參考電壓。參考電壓配置寄存器是REF0CN,,地址是0xD1,。無論使用DAC0還是DAC1,都需要將寄存器的0、1位置“1”,。

  在本應(yīng)用中,,bit2到bit0設(shè)置成“000”,也就是12位轉(zhuǎn)換數(shù)值的MSB到LSB存在DAC0H的bit3到DAC0L的bit0,。

  DAC1的設(shè)置過程與DAC0相同,,不再贅述。

寄存器格式

  片上集成ADC

  C8051F007片上集成了一個8通道12位ADC,。8個通道既可以單獨設(shè)置成單通道,,也可以兩兩設(shè)置成雙端差動采集。在ADC的輸入端還有一個前端放大器,,放大倍數(shù)可以編程,。ADC參考電壓可以外部提供,也可以使用內(nèi)部參考電壓,。內(nèi)部參考電壓2.43V,。可以選擇多個ADC轉(zhuǎn)換開啟信號,。

 

  ADC使用前,,也要先設(shè)置參考電壓,內(nèi)部參考電壓的設(shè)置過程可以參考DAC,。

  接著設(shè)置ADC的輸入方式寄存器AMX0CF(地址0xBA)和通道選擇寄存器AMUX0SL(0xBB),。8個輸入通道兩兩分成一組(通道0和通道1、通道2和通道3,、通道4和通道5,、通道6和通道7)。AMX0CF的bit0到bit3可以分別設(shè)置這四組輸入的方式,。置“1”將該組兩個輸入設(shè)置成雙端輸入方式,,清0則該組兩通道各自為單端輸入方式。AMUX0SL的bit3到bit0為輸入端口選擇位,,控制多路器是外部某一輸入端口與ADC相連,。具體設(shè)置方式可以參考C8051F007的數(shù)據(jù)手冊。

  寄存器ADC0CF,,用來設(shè)置ADC的轉(zhuǎn)換速率和輸入增益,。地址0xBC,復(fù)位初始數(shù)值0x60,,表1給出了寄存器ADC0CF的配置說明,。

  •   Bit7- Bit 5: ADC轉(zhuǎn)換時鐘設(shè)定,通過設(shè)定000至1xx來控制ADC的轉(zhuǎn)換周期分別為1,、2,、4,、8和16倍時鐘。
  •   Bit4- Bit 3: 無用
  •   Bit2- Bit 1: ADC內(nèi)部前置放大器增益設(shè)置,,通過設(shè)定000至1xx來控制放大器分別為1,、2、4,、8和16倍的增益,。
  •   ADC0CN寄存器,用于控制ADC的各種轉(zhuǎn)換功能,。地址0xE8,,復(fù)位初始數(shù)值0x00,表2給出了ADC0CN寄存器的配置說明
  •   Bit7: ADC開啟位
  •   0:ADC進入掉電狀態(tài)
  •   1:ADC進入激活狀態(tài),,可以隨時進行轉(zhuǎn)換
  •   Bit6: 采樣跟蹤模式設(shè)定
  •   0:在下一次采樣之前,,ADC一直在跟蹤
  •   1:按照ADSTM1-0(Bit3-2)設(shè)定的方式跟蹤 ADSTM1-0(Bit3-2)
  •   00:向ADBUSY寫入1時開始跟蹤,需要3個轉(zhuǎn)換周期
  •   01:定時器3溢出開始跟蹤,,需要3個轉(zhuǎn)換周期
  •   10:管腳CNVTS上升沿開始跟蹤,,需要3個轉(zhuǎn)換周期
  •   11:定時器2溢出開始跟蹤,需要3個轉(zhuǎn)換周期
  •   Bit5: 轉(zhuǎn)換完成中斷標志
  •   0:自上次中斷標志清除后,,沒有轉(zhuǎn)換完成
  •   1:ADC完成一次轉(zhuǎn)換
  •   Bit4: ADC忙碌位
  •   讀:
  •   0:轉(zhuǎn)換完成或自復(fù)位后無轉(zhuǎn)換,;當中斷開啟時,該位由1變到0時觸發(fā)中斷
  •   1:ADC正在忙于轉(zhuǎn)換
  •   寫:
  •   0:無效果
  •   1:如果ADSTM1-0(Bit3-2)=00b時,,觸發(fā)一次轉(zhuǎn)換
  •   Bit3-2: 轉(zhuǎn)換觸發(fā)模式:
  •   00:向ADBUSY寫1觸發(fā)轉(zhuǎn)換
  •   01:定時器3溢出觸發(fā)
  •   10:管腳CNVTS上升沿觸發(fā)
  •   11:定時器2溢出觸發(fā)
  •   Bit1: 窗口比較中斷標志(軟件清零)
  •   0:窗口比較不滿足匹配條件
  •   1:窗口比較滿足匹配條件
  •   Bit0: 數(shù)據(jù)寄存器左對齊設(shè)置位
  •   0:數(shù)據(jù)寄存器右對齊
  •   1:數(shù)據(jù)寄存器左對齊

  零漂校正過程

  首先我們設(shè)定在某一環(huán)境下,,探頭輸出沒有零點漂移,那么根據(jù)公式2,,我們得到初始狀態(tài)儀表放大器輸出為(V+-V-)G+VREF,。DAC0輸出中點電位1.2V,即VREF=1.2V,。我們可以調(diào)節(jié)放大器反相輸入端的可調(diào)電位器,使放大器輸出電壓VC,,該電壓在零到ADC最大采集電壓之間,,略高于0V即可,這樣為的是使ADC可以采集到放大器輸出在這個電壓上下變化的情況,。由于ADC不能采集0V以下的電壓,,所以該電壓不能選擇0V。在這里我們選擇0.5V,,太高了會縮小電壓采集的范圍,。此時

公式

  當環(huán)境改變時,設(shè)此時傳感器產(chǎn)生零點漂移為DVS,。放大器輸出(V+-V-)G+DVSG+VREF,,零點漂移DVS·G,。此時通過ADC采集放大器輸出電壓,如果輸出大于VC,,則減小DAC0的輸出,,即減小VREF;相反,,如果輸出小于VC,,則增大DAC0的輸出,即增大VREF,,這樣如此采集->調(diào)整->采集.......使放大器輸出電壓穩(wěn)定在

公式,。

  比較式3和式4可以看出,我們完全是靠DAC0的變化量DVREF將DVS·G抵消掉,。

  消除零點漂移是一個逐漸逼近的過程,,每次逼近的步長可以通過軟件設(shè)定,但由于受到DAC分辨率的影響,,最小步長是DAC的1LSB代表的電壓,,所以我們最小只能將零漂控制在0到最小步長之間。受DAC輸出范圍的限制,,初始時DAC0輸出1.2V,,若設(shè)此時的零漂為VD(通常我們認為是零),那么,,我們能夠調(diào)節(jié)的最大零點漂移范圍是[VD-1.2/G,,VD+1.2/G]。當單片機的系統(tǒng)時鐘為16M時,,完成一個采集,,調(diào)整的周期最多用數(shù)百uS。列車通過時間一般在十分鐘以內(nèi),,在此時間內(nèi)完成的數(shù)據(jù)采集,,對緩慢的零點漂移來說影響是不大的。

 

  硬件,、軟件實現(xiàn)

  放大器零點校正的硬件原理圖如圖1所示,。

放大器零點校正的硬件原理圖

  儀表放大器的同相輸入端接紅外傳感器輸出電壓;反相輸入端輸入調(diào)零電壓,。放大器1,、8腳間接入增益設(shè)置電阻。5腳的參考電壓輸入,,連接單片機C8051F007片上DAC0的輸出,,通過DAC的輸出來自動校正放大器的零點。實際電路中VREF也可通過電位器分壓來取得調(diào)整電壓,,以提高調(diào)整細度,。放大器輸出電壓經(jīng)AIN0送至單片機片上的ADC轉(zhuǎn)化為數(shù)字量,。

  單片機C語言編程框圖如圖2所示。

單片機C語言編程框圖

  系統(tǒng)在不采集傳感器輸出電壓的時候自身進行系統(tǒng)調(diào)零,,先將放大器參考點電壓設(shè)置為0.5V,,也就是讓DAC0輸出0.5V。然后采集放大器的輸出電壓,,如果輸出電壓大于0.5V,,可以減小參考電壓抵消漂移;相反,,如果輸出電壓小于0.5V,,說明有負向零點漂移產(chǎn)生,則要增大參考電壓抵消漂移,。

  結(jié)語

  根據(jù)儀表放大器的輸出公式我們可以看出,,當放大倍數(shù)很高時,零點漂移也會同時被放大,。這樣,,如果零點漂移本身范圍過大時,有可能超出DAC的調(diào)節(jié)范圍,。通常有效調(diào)節(jié)零漂的跨度要略小于DAC的輸出范圍,,可在DAC輸出范圍的兩頭各劃出一段數(shù)據(jù)區(qū)作為超限標志。程序中每次調(diào)節(jié)DAC0輸出后,,要隨時檢測被轉(zhuǎn)化數(shù)字量的大小,,一旦發(fā)現(xiàn)DAC輸出值超出調(diào)節(jié)范圍,可以及時對外發(fā)出超限警告,。

  實際設(shè)計中,,零點的調(diào)整只是解決本傳感器的一個問題,其它例如不同環(huán)溫下的非線性問題還需要另行解決,,好在采用C8051F007高性能單片機,,其功能和速度均可同時滿足上述要求。

  參考文獻:

  1 .C8051F00x datasheet http://www.silabs.com/public/documents/tpub_doc/dsheet

  2.AD620 datasheet http://www.analog.com/UploadedFiles/Data_Sheets/897653854AD620_g.pdf

  3.王鐵流等,,“紅外軸溫監(jiān)測系統(tǒng)中列車信號的計算機模擬”,,《電子技術(shù)應(yīng)用》,1995.9

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。