基于MAX197的多通道壓力數(shù)據(jù)采集系統(tǒng)
本文介紹了一種基于AT89C51和MAX197的壓力數(shù)據(jù)采集系統(tǒng),系統(tǒng)與PC利用RS232通信,在PC端軟件接收。系統(tǒng)在前級(jí)留出4~20mA的模擬信號(hào)接口,只要符合標(biāo)準(zhǔn)的信號(hào)都可接入,大大提高了系統(tǒng)的通用性
水利工程中常常需要對(duì)某些重要區(qū)段配置壓力測(cè)量系統(tǒng),比如管道進(jìn)出口、直線段、局部轉(zhuǎn)折、局部轉(zhuǎn)彎處等,用來(lái)測(cè)定諸如管道沿程阻力系數(shù)和不同類型管道局部阻力系數(shù)等對(duì)工程影響較大的參數(shù)。水文測(cè)量中單點(diǎn)的測(cè)量基本上是沒(méi)有意義的,必須通過(guò)合理的陣列測(cè)量才能進(jìn)行頻譜分析等工作。
多通道采集系統(tǒng)處理方案
根據(jù)系統(tǒng)要求,系統(tǒng)前端配置多路傳感器以探測(cè)液壓信號(hào),實(shí)際系統(tǒng)中使用了32路。傳感器采回的信號(hào)為電流信號(hào),在A/D變換前要變?yōu)殡妷盒盘?hào)。A/D變換中采用的是Maxim生產(chǎn)的MAX197對(duì)32個(gè)通道進(jìn)行循環(huán)采集。采集結(jié)果送入單片機(jī)中進(jìn)行預(yù)處理,單片機(jī)選用Atmel公司的產(chǎn)品AT89C51,使用RS232通信接口與PC端連接并發(fā)送數(shù)據(jù)。PC端將收到的數(shù)據(jù)在數(shù)據(jù)處理軟件中進(jìn)行結(jié)果處理、顯示。系統(tǒng)流程如圖1所示。
圖1 多通道采集系統(tǒng)流程圖
傳感器及過(guò)壓保護(hù)
傳感器采用AST4410型號(hào)的液壓傳感器,其性能參數(shù)如圖2所示。
長(zhǎng)度:60mm
直徑:17mm
測(cè)量范圍:表壓 0~40MPa 絕壓0~10kPa
精度等級(jí):0.2級(jí)或 0.5級(jí)1~5Vdc
輸出信號(hào):4~20mAdc
工作電壓:12~36Vdc
過(guò)程接口:1/4NPT螺紋
引線方式:電纜線
實(shí)際電路中供電電壓使用24V,這對(duì)于后級(jí)的A/D以及單片機(jī)電路來(lái)說(shuō)是相當(dāng)危險(xiǎn)的值,因此需要設(shè)置高電壓保護(hù)電路。
長(zhǎng)度:60mm
直徑:17mm
測(cè)量范圍:表壓 0~40MPa 絕壓0~10kPa
精度等級(jí):0.2級(jí)或 0.5級(jí)1~5Vdc
輸出信號(hào):4~20mAdc
工作電壓:12~36Vdc
過(guò)程接口:1/4NPT螺紋
引線方式:電纜線
實(shí)際電路中供電電壓使用24V,這對(duì)于后級(jí)的A/D以及單片機(jī)電路來(lái)說(shuō)是相當(dāng)危險(xiǎn)的值,因此需要設(shè)置高電壓保護(hù)電路。
圖2 高電壓保護(hù)電路
A/D采樣及MAX197應(yīng)用
MAX197是Maxim公司推出的8通道、12位的高速A/D轉(zhuǎn)換芯片。芯片采用單一電源+5V供電,單次轉(zhuǎn)換時(shí)間僅為6μs,采樣速率可達(dá)100kSa/s。
MAX197的內(nèi)部核心部分是一個(gè)采用逐次逼近方式的DAC,前端包括一個(gè)用來(lái)切換模擬輸入通道的多路復(fù)用器以及輸入信號(hào)調(diào)理和過(guò)壓保護(hù)電路。其內(nèi)部還建有一個(gè)2.5V的能隙基準(zhǔn)電壓源,管腳如圖3所示。
圖3 MAX197引腳定義視圖
MAX197既可以使用內(nèi)部參考電壓源,也可以使用外部參考電壓源。當(dāng)使用內(nèi)部參考源時(shí),芯片內(nèi)部的2.5V基準(zhǔn)源經(jīng)放大后向REF提供4.096V參考電平。這時(shí)應(yīng)在REF與AGND之間接入一個(gè)4.7μF電容,在REFADJ與AGND之間接入一個(gè)0.01μF電容。當(dāng)使用外部參考源時(shí),接至REF的外部參考源必須能夠提供400μA的直流工作電流,且輸出電阻小于10Ω。如果參考源噪聲較大,應(yīng)在REF端與模擬信號(hào)地之間接一個(gè)4.7μF電容。模擬量輸入通道擁有±16.5V的過(guò)電壓保護(hù),即使在關(guān)斷狀態(tài)下,保護(hù)也有效。
通過(guò)將控制寄存器的ACQMOD位置0可選擇內(nèi)部采集控制模式。在內(nèi)部采集控制模式下,寫信號(hào)脈沖將開始一個(gè)由內(nèi)部定時(shí)控制長(zhǎng)度的采集間隔。在6個(gè)時(shí)鐘周期長(zhǎng)度的采集間隔結(jié)束時(shí),將啟動(dòng)下一個(gè)轉(zhuǎn)換。
在內(nèi)部采集控制模式下,MAX197的模擬信號(hào)輸入電路擁有5MHz的信號(hào)帶寬,當(dāng)使用內(nèi)部采集控制模式并使用外接2MHz時(shí)鐘時(shí),可達(dá)到100kSa/s的通過(guò)速率。
通過(guò)將控制寄存器的ACQMOD位置1可選擇外部采集控制模式。采用外部采集控制模式是為了精確控制采樣孔徑或獨(dú)立控制采集和轉(zhuǎn)換時(shí)間。由用戶分別通過(guò)兩個(gè)寫信號(hào)脈沖控制采集間隔和開始轉(zhuǎn)換時(shí)間,第一個(gè)寫信號(hào)脈沖時(shí)將控制寄存器的ACQMOD位置1,開始一個(gè)采集間隔。第二個(gè)寫信號(hào)脈沖時(shí)將控制寄存器的ACQMOD位置0,結(jié)束采集間隔并開始轉(zhuǎn)換。然而,如果在第二個(gè)寫信號(hào)脈沖時(shí)將控制寄存器的ACQMOD位置1,則將開始又一個(gè)采集間隔。
在第一個(gè)寫信號(hào)脈沖和第二個(gè)寫信號(hào)脈沖時(shí),控制寄存器中的模擬通道選擇位必須置相同的值。電源關(guān)斷模式控制位可以置不同的值。
選用AT89C51單片機(jī)作為主處理器。通過(guò)P0.0~P0.7與MAX197的D0~D7相連,既用于輸入MAX197的初始化控制字,也用于讀取轉(zhuǎn)換結(jié)果數(shù)據(jù)。 用AT89C51單片機(jī)的P2.7作片選信號(hào),則MAX197的高位地址為7FH。選擇MAX197為軟件設(shè)置低功耗工作方式,所以置SHDN腳為高電平。本文采用外部基準(zhǔn)電壓,所以REFDJ接高電平,而REF則接外部輸入?yún)⒖茧妷骸T89C51單片機(jī)的P1.1腳用做判讀高、低位數(shù)據(jù)的選擇線,直接與HBEN腳相連。MAX197的INT腳可與AT89C51的INT0相連,以便實(shí)現(xiàn)中斷,讀取轉(zhuǎn)換結(jié)果。MAX197只有8個(gè)通道,一共要采32路壓力值,用8片4選1的模擬開關(guān)實(shí)現(xiàn)。
在電路中,AGND和DGND應(yīng)相互獨(dú)立,各種電源與模擬地之間都用0.1mF電容來(lái)消除電源的紋波。
AX197的硬件電路設(shè)計(jì)如圖4所示。
圖4 MAX197連接原理圖
單片機(jī)數(shù)據(jù)采集程序設(shè)計(jì)如下:
void scan(uchar channel){ //channel為通道數(shù)
uchar conword,low8,high4,i; //定義變量
for(i=0;i<8;i++){
if(i>0)channel=channel>>1;
if(channel&1){
conword=0x50+i;
P12=1;
XBYTE[0xE000]=conword; //讀取數(shù)據(jù)
while(P32==1){}
//P12=0;
P13=0;
low8=XBYTE[0xE000]; //低位處理
P13=1;
high4=XBYTE[0xE000]&0x0F; //高位處理
SUMX[i]=high4*256+low8; //數(shù)據(jù)整合
}
}
}
void scan(uchar channel){ //channel為通道數(shù)
uchar conword,low8,high4,i; //定義變量
for(i=0;i<8;i++){
if(i>0)channel=channel>>1;
if(channel&1){
conword=0x50+i;
P12=1;
XBYTE[0xE000]=conword; //讀取數(shù)據(jù)
while(P32==1){}
//P12=0;
P13=0;
low8=XBYTE[0xE000]; //低位處理
P13=1;
high4=XBYTE[0xE000]&0x0F; //高位處理
SUMX[i]=high4*256+low8; //數(shù)據(jù)整合
}
}
}
根據(jù)系統(tǒng)的要求以及芯片的性能,選擇10ms為采樣的最小間隔。后面在PC端的程序可調(diào)整設(shè)定發(fā)送間隔,如果發(fā)送間隔大于采樣間隔,則將采樣得到的完整數(shù)據(jù)取均值后再發(fā)送,可以起到濾波的作用。
if(FREQ>=10){ //INTERVAL 設(shè)定采樣間隔為10ms
FREQ=0;
scanall();
NUM1++;
P16=0;
P17=0;
}
if(NUM1>=INTERVAL){ //interval 即為PC端發(fā)送的指令
for(i=0;i<32;i++){ //如果大于10ms則取平均值
if(SUM[i]!=0){
union{
ulong usum;
uchar ustr[4];
} nua;
uchar a;
transfer(i);
SUM[i]=SUM[i]/NUM1;
nua.usum=SUM[i];
a=nua.ustr[2];
transfer(a);
a=nua.ustr[3];
transfer(a);
SUM[i]=0;
}
}
NUM1=0;
NUM2++;
}
FREQ=0;
scanall();
NUM1++;
P16=0;
P17=0;
}
if(NUM1>=INTERVAL){ //interval 即為PC端發(fā)送的指令
for(i=0;i<32;i++){ //如果大于10ms則取平均值
if(SUM[i]!=0){
union{
ulong usum;
uchar ustr[4];
} nua;
uchar a;
transfer(i);
SUM[i]=SUM[i]/NUM1;
nua.usum=SUM[i];
a=nua.ustr[2];
transfer(a);
a=nua.ustr[3];
transfer(a);
SUM[i]=0;
}
}
NUM1=0;
NUM2++;
}
串行通信部分
圖5 MAX232通信連接原理圖
采用MAX232芯片與PC機(jī)通信,電路連接如圖5所示。
總結(jié)
將系統(tǒng)進(jìn)行實(shí)際測(cè)試,連續(xù)運(yùn)行14小時(shí)正常。該系統(tǒng)已用于水庫(kù)模型測(cè)量實(shí)驗(yàn)中,運(yùn)行良好。將前端傳感器更換后,后級(jí)系統(tǒng)可以應(yīng)用于多種場(chǎng)合,另外加入保護(hù)電路后更可用于惡劣條件下。系統(tǒng)前級(jí)提供4~20mA的電流模擬信號(hào),后級(jí)即可工作并將信號(hào)輸出,通用性較強(qiáng)。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。
你可能感興趣的文章