劉 偉 ,張存善
(1.中國(guó)人民解放軍93756部隊(duì) 天津 300130;2.河北工業(yè)大學(xué) 信息工程學(xué)院,天津 300130)
在工業(yè)現(xiàn)場(chǎng)測(cè)試過(guò)程中,由于生產(chǎn)中的各種參數(shù)的測(cè)試數(shù)據(jù)對(duì)生產(chǎn)過(guò)程具有重要的意義,因此對(duì)各種測(cè)試數(shù)據(jù)精度要求較高。而對(duì)于傳統(tǒng)的傳感器,比如壓阻式、應(yīng)變橋式、熱電偶、熱電阻、電容式以及壓電式傳感器,輸出的一般是毫伏級(jí)的微弱模擬信號(hào),溫度特性差,而且在傳輸過(guò)程中信噪比明顯降低[1]。因此需要設(shè)計(jì)高精度穩(wěn)定性強(qiáng)的信號(hào)采集系統(tǒng)進(jìn)行采集。然而采用以往的積分型和逐次比較型A/D實(shí)現(xiàn)高精度信號(hào)采集的難度較大且成本很高。近年來(lái)興起的Σ-Δ A/D轉(zhuǎn)換技術(shù)卻能以較低的成本獲取極高的分辨率。AD7705便是一款比較典型的高性能16位Σ-Δ A/D轉(zhuǎn)換芯片。
本設(shè)計(jì)采用AD7705為A/D轉(zhuǎn)換器,配合8位高性能PIC單片機(jī)PIC18F458組成高精度信號(hào)采集系統(tǒng)。硬件電路設(shè)計(jì)方面在單片機(jī)與AD7705典型應(yīng)用電路的基礎(chǔ)上做了改進(jìn),加入了光電隔離、電壓檢測(cè)復(fù)位等電路,使系統(tǒng)采集信號(hào)的精準(zhǔn)度和可靠性都有了很大的提高,軟件設(shè)計(jì)方面給出了關(guān)鍵部分的程序清單。目前該系統(tǒng)已經(jīng)成功應(yīng)用于某智能儀表中,在工業(yè)現(xiàn)場(chǎng)的表現(xiàn)良好。
AD7705芯片是帶有自校正功能的Σ-Δ16位A/D轉(zhuǎn)換器,如圖1所示。它包括由緩沖器和增益可編程放大器(PGA)組成的前端模擬調(diào)節(jié)電路、∑-Δ調(diào)制器以及可編程數(shù)字濾波器等,能直接將傳感器的不同擺幅范圍內(nèi)的信號(hào)放大到接近A/D轉(zhuǎn)換器的滿標(biāo)度電壓附近再進(jìn)行A/D轉(zhuǎn)換,還可選擇輸入模擬緩沖器,以及自校準(zhǔn)和系統(tǒng)校準(zhǔn)方式。此外它還具有高分辨率、寬動(dòng)態(tài)范圍、校準(zhǔn)、低功耗及優(yōu)良的抗噪聲性能,因此非常適用于儀表測(cè)量和工業(yè)控制等領(lǐng)域[2]。
圖1 AD7705功能框圖Fig.1 Functional block diagram of AD7705
作為中高端的8位PIC系列單片機(jī),PIC18F458是高性能的RISC CPU。具有高達(dá)2 MB的程序存儲(chǔ)器;4 KB的數(shù)據(jù)存儲(chǔ)器;高達(dá)10 MIPS的執(zhí)行速度;DC~40 MHz時(shí)鐘輸入;4~10 MHz帶PLL鎖相環(huán)有源晶振/時(shí)鐘輸入;16位寬指令,8位寬數(shù)據(jù)通道;帶優(yōu)先級(jí)的中斷;8×8單周期硬件乘法器。
該款單片機(jī)不僅集成了強(qiáng)大的外圍功能模塊 (增強(qiáng)型捕捉輸入功能、脈寬調(diào)制(PWM)輸出部件、I2C和SPI接口以及可尋址的通用同步/異步接收發(fā)送器(USART)串行通信接口),而且因其特殊的單片機(jī)特性(自振式看門狗、可編程代碼保護(hù)功能、休眠省電方式等)及先進(jìn)的flash技術(shù)(低功耗、高增強(qiáng)型flash技術(shù),全靜態(tài)設(shè)計(jì),2.0~5.5 V寬范圍的工作電壓,工業(yè)級(jí)和擴(kuò)展級(jí)溫度范圍),可以適用各種工業(yè)控制場(chǎng)合[3]。
本系統(tǒng)使用PIC18F458作為主控制芯片,選取此芯片與AD7705配合組建信號(hào)采樣系統(tǒng),不僅是因?yàn)镻IC18F458自身配備的主同步串行端口MSSP具有SPI工作方式,而且更重要的是該單片機(jī)的高性能能夠?qū)Σ杉降男盘?hào)進(jìn)行更加有效的處理,便于系統(tǒng)的進(jìn)一步擴(kuò)展。
該系統(tǒng)設(shè)計(jì)用于采集氧電勢(shì)和溫度的模擬信號(hào),二者分別是氧傳感器和K型熱電偶的輸出信號(hào)。其中氧電勢(shì)信號(hào)的輸出范圍是0~1.25 V,溫度信號(hào)的輸出范圍是 0~50 mV,系統(tǒng)原理框圖如圖2所示。
圖2 信號(hào)采集系統(tǒng)原理框圖Fig.2 Principle block diagram of signal collecting system
2.1.1 AD7705及前端采集電路
圖3 AD7705及前端采集電路Fig.3 Circuit of AD7705 and front-end acquisition
圖3為AD7705的外圍電路及系統(tǒng)的前端采集電路。氧電勢(shì)和溫度信號(hào)首先要進(jìn)入濾波電路去除干擾雜波然后進(jìn)行精密放大,這里采用低功耗雙運(yùn)算放大器MCP602和反饋電阻組成放大電路,MCP602具有偏置電流低、運(yùn)行速度快、開環(huán)增益高以及滿幅輸出等特點(diǎn),而且其很寬的帶寬非常適用于A/D轉(zhuǎn)換器的驅(qū)動(dòng)放大器[4]。由于提供給AD7705的基準(zhǔn)電壓是2.5 V,調(diào)節(jié)反饋電阻使氧電勢(shì)和溫度放大后的信號(hào)V_01和V_02都在0~2.5 V之間。
基準(zhǔn)電壓在AD7705的外圍電路中最為重要,它直接影響數(shù)據(jù)采集的精準(zhǔn)度,這里采用的是高精度2.5 V參考電壓源MCP1525,它采用先進(jìn)的 CMOS電路設(shè)計(jì)和 EPROM存儲(chǔ)方式,在時(shí)間和溫度穩(wěn)定性上具有明顯優(yōu)勢(shì),并且在工業(yè)級(jí)溫度范圍-40~+85°C范圍內(nèi)可正常工作,為系統(tǒng)信號(hào)采集的精準(zhǔn)度提供有力保障。
值得注意的是在設(shè)計(jì)AD7705印刷板電路時(shí)必須講究布線技巧,布線的好壞直接影響數(shù)據(jù)轉(zhuǎn)換精度,甚至?xí)鹦酒ぷ魇С?。?jīng)驗(yàn)表明,AD7705應(yīng)該布設(shè)在一個(gè)相對(duì)獨(dú)立和集中的區(qū)域,數(shù)字區(qū)和模擬區(qū)盡可能在底面分開布線,模擬接地與數(shù)字接地應(yīng)只在一個(gè)點(diǎn)連接在一起,所有電源都要加電容去耦電路,電容器盡可能靠近芯片的電源輸入端。
2.1.2 光電隔離電路
為了提高通訊接口在工業(yè)現(xiàn)場(chǎng)的抗干擾能力,采用光電隔離器件是一種簡(jiǎn)單而有效的方法,這里采用的是高速光耦6N136,如圖4所示,它能夠在對(duì)通訊接口進(jìn)行光電隔離的同時(shí)不會(huì)影響通訊速率,可以使系統(tǒng)在不降低采集效率的情況下提高可靠性[5]。由于光耦兩側(cè)的電源和地是要完全分開的,因此設(shè)計(jì)了兩路電源,使6N136能達(dá)到最佳隔離效果。在設(shè)計(jì)印刷板電路時(shí)要特別注意6N136底下不能走數(shù)據(jù)線,這樣會(huì)引入干擾導(dǎo)致數(shù)據(jù)采集跳動(dòng)。
圖4 光電隔離電路Fig.4 Photoelectric isolation circuit
2.1.3 單片機(jī)復(fù)位電路
由于工業(yè)現(xiàn)場(chǎng)環(huán)境復(fù)雜,簡(jiǎn)單的RC復(fù)位電路在強(qiáng)干擾情況下會(huì)使單片機(jī)復(fù)位引腳電壓意外跌落,造成單片機(jī)工作不正常。為了解決這一問(wèn)題,這里采用電壓檢測(cè)復(fù)位芯片HT7044,它能夠檢測(cè)4.5 V的固定電壓并具有穩(wěn)壓功能,可以滿足系統(tǒng)設(shè)計(jì)穩(wěn)定性的要求[6],如圖5所示。
圖5 單片機(jī)復(fù)位電路Fig.5 Microcontroller reset circuit
AD7705內(nèi)部只有一套模數(shù)轉(zhuǎn)換電路,通道1和通道2的選擇通過(guò)軟件設(shè)置進(jìn)行切換,實(shí)際應(yīng)用中往往需要對(duì)不同通道采取不同的增益,動(dòng)態(tài)地對(duì)AD7705進(jìn)行增益、通道設(shè)置,很靈活方便地達(dá)到這一目的。使用AD7705之前,首先要對(duì)所有寄存器進(jìn)行設(shè)置,才能保證器件正常工作。在實(shí)際使用中,首先選擇模擬輸入模式(單極性還是雙極性)、是否需要緩沖、時(shí)鐘分頻和輸出更新速率;根據(jù)外部輸入信號(hào)的幅度來(lái)決定設(shè)置器件的增益值。
該系統(tǒng)中的AD7705在應(yīng)用中選擇輸入通道單極性、初始增益等于1、數(shù)據(jù)更新速率為500 Hz。AD7705的讀寫操作嚴(yán)格按照時(shí)序進(jìn)行,圖6和圖7給出了AD7705的讀和寫時(shí)序圖。根據(jù)實(shí)際確定所有參數(shù)以后,對(duì)AD7705芯片進(jìn)行設(shè)置,參數(shù)設(shè)置方法比較獨(dú)特,在設(shè)置參數(shù)之前,首先對(duì)通信寄存器進(jìn)行一次寫操作,來(lái)決定下一個(gè)是什么樣的寄存器和什么樣的操作內(nèi)容,再進(jìn)行下一步的參數(shù)寫入,圖8給出了AD7705初始化及讀取數(shù)據(jù)流程圖,讀者可參考下面的AD7705初始化程序。
圖6 AD7705讀時(shí)序圖Fig.6 Diagram of read cycle timing
圖7 AD7705寫時(shí)序圖Fig.7 Diagram of write cycle timing
圖8 AD7705初始化及讀取數(shù)據(jù)流程圖Fig.8 Flow chart of AD7705 initialization and reading data
START_ad7705()
void START_ad7705()
{
uchar i;
AdDin=1;AdClk=1;
for(i=0;i<40;i++) {AdClk=0;AdClk=1;}/* 防止接口迷失,通信寄存器返回到等待寫狀態(tài)*/
WBYTE_ad7705 (0x21); /* 寫 CH1 clock register*/
WBYTE_ad7705 (0x07); /*2.4576 MHz 時(shí) 鐘 ,500Hz 數(shù)據(jù)更新速率*/
WBYTE_ad7705(0x11); /* 寫 CH1 setup register*/
WBYTE_ad7705(0x44); /* 單極性,無(wú)緩沖,自校準(zhǔn)模式,增益為1*/
Delay_1ms(50); /* 延時(shí) */
}
void WBYTE_ad7705(uchar bytew)
{
uchar i;
AdClk=1;AdDin=1; /*開始 */
for(i=0;i<8;i++)
{
AdClk=0;
if(bytew&0x80)AdDin=1; /*輸入數(shù)據(jù)位 */
else AdDin=0;
AdClk=1;
bytew=bytew<<1;
}
AdDin=1;AdClk=1; /*結(jié)束 */
}
初始化以后,單片機(jī)就可以從模數(shù)轉(zhuǎn)換器中讀數(shù)據(jù),讀取數(shù)據(jù)之前必須確定數(shù)據(jù)寄存器的狀態(tài),DRDY引腳處于低電平時(shí)表示數(shù)據(jù)轉(zhuǎn)換已經(jīng)完成,可以讀取數(shù)據(jù)。為了便于讀者理解,給出讀數(shù)據(jù)寄存器的函數(shù)原代碼如下:
uint RWORD_ad7705(uchar channel)
{
uchar i;uint AD16bit=0;
if(0==channel) WBYTE_ad7705(0x38);/* 選擇通道 */
if(1==channel) WBYTE_ad7705(0x39);
while(1==AdReady);/*等待數(shù)據(jù)準(zhǔn)備好 */
AdClk=1;AdDin=1;
for(i=0;i<16;i++)
{
AD16bit=AD16bit<<1;
AdClk=0;
if(1==AdDout) AD16bit++;/* 讀取數(shù)據(jù)位 */
AdClk=1;
}
AdDin=1;AdClk=1;
return AD16bit; /*返回讀數(shù)*/
}
該系統(tǒng)實(shí)現(xiàn)了高效率和高精度的信號(hào)采集,具備很強(qiáng)的抗干擾能力。目前已經(jīng)成功應(yīng)用于某智能儀表,使智能儀表在工業(yè)現(xiàn)場(chǎng)采集信號(hào)精度得到提高的同時(shí)控制精度也相應(yīng)得到提高,并且儀表運(yùn)行的可靠性和安全性得以增強(qiáng),實(shí)現(xiàn)了一定的應(yīng)用價(jià)值,具有非常廣闊的應(yīng)用前景。
[1] 陳勇鋼.AD7705高精度數(shù)據(jù)采集的實(shí)現(xiàn)[J].國(guó)外電子測(cè)量技術(shù),2006,25(1):38-40.CHEN Yong-gang.The precision data acquisition based on AD7705[J].Foreign Electronic Measurement Technology,2006, 25(1):38-40.
[2] Analog Devices,Inc.AD7705/AD7706 Data Sheet[EB/OL].(2006). http://www.analog.com/static/imported -files/data_sheets/AD7705_7706.pdf.
[3] 陳楊楊.基于PIC18F458單片機(jī)的LCD顯示[J].儀表技術(shù),2005(4):52-53.CHEN Yang-yang,LED display based on PIC18F458 SCM[J].Instrument Technique, 2005(4):52-53.
[4] 李源鴻.十六位模數(shù)轉(zhuǎn)換器AD7705及其應(yīng)用[J].成都信息工程學(xué)院學(xué)報(bào),2003,18(3):281-286.LI Yuan-hong.16 analog-digital converter AD7705 and its application[J].Chengdu University of Information Technology,2003,18(3):281-286.
[5] 高廷正.基于PIC18F458和AD7705的信號(hào)采集系統(tǒng)[J].儀器儀表用戶,2008(6):68-70.GAO Ting-zheng.The data acquisition system based on PIC18F458 and AD7705[J].Instrument Users,2008(6):68-70.
[6] 許廣賓.AD7705在智能數(shù)字儀表中的應(yīng)用[J].機(jī)械與電子,2008(17):413-414.XU Guang-bin.The application of intelligent digital instrument based on AD7705[J].Mechanical and Electronic,2008(17):413-414.