基于MC68HC908GP32的深海熱液多點溫度、壓力采集及控制系統(tǒng)
0 引 言
現(xiàn)代深海探測領(lǐng)域中,需要進行溫度、壓力檢測,并通過電磁閥實時控制水下機械臂采樣動作,通過步進電機控制旋轉(zhuǎn)水下攝像頭拍攝轉(zhuǎn)速,以達到研究深海熱液溫度壓力變化并實時控制的目的。海底熱液溫度最高可達300~400℃,最低則不超過10℃;海底壓力最高可達40Mpa。根據(jù)此特殊情況,設(shè)計了測溫范圍為0~500℃,測壓范圍為1~45Mpa的控制系統(tǒng)。本系統(tǒng)利用MOTOROLA公司MC68HC908GP32單片機作為核心控制,并擴展出數(shù)據(jù)存儲,電磁閥和電機控制等功能。整個系統(tǒng)具有實時控制,功耗低,體積小等優(yōu)點。
1 系統(tǒng)原理
本系統(tǒng)由三組鉑電阻測三點溫度,三個鉑電阻分別編號為1、2、3,由繼電器控制選擇輸入至溫度變送器變換為電流信號,后經(jīng)電流-電壓轉(zhuǎn)換電路輸入至單片機AD轉(zhuǎn)換口,在單片機內(nèi)部處理后在數(shù)碼管顯示;由一個壓力傳感器測壓力,編號為4,經(jīng)壓力變送器輸入單片機AD轉(zhuǎn)換口,在單片機內(nèi)部處理后在數(shù)碼管顯示。數(shù)碼管為4位七段數(shù)碼管,第一位顯示編號,后三位顯示溫度值或壓力值,編號1-2-3-4-1循環(huán)顯示,兩編號數(shù)據(jù)顯示間隔時間為10秒(可調(diào))。同時每隔1秒(可調(diào))將溫度和壓力數(shù)據(jù)存入EEPROM存儲器中,需要時通過串口傳至PC機,可供后續(xù)數(shù)據(jù)分析處理。PC機端用Delphi做數(shù)據(jù)處理軟件,可繪制溫度、壓力變化曲線,保存后供進一步分析處理。系統(tǒng)同時根據(jù)溫度、壓力變化實時控制電磁閥吸合控制機械臂動作,并可根據(jù)其他系統(tǒng)控制信號調(diào)整步進電機轉(zhuǎn)速。系統(tǒng)設(shè)計框圖如圖1所示:
500)this.style.width=500;" border="0" />
2 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件包括單片機匯編程序設(shè)計和人機交互界面設(shè)計兩部分。
2.1 單片機匯編程序設(shè)計
匯編程序由各個子程序構(gòu)成,對采集數(shù)據(jù)進行實時處理。主要有溫度及壓力循環(huán)顯示子程序,A/D轉(zhuǎn)換及數(shù)據(jù)處理子程序,EEPROM數(shù)據(jù)存儲子程序,數(shù)據(jù)上傳PC機子程序,步進電機轉(zhuǎn)速調(diào)整及電磁閥控制子程序,定時中斷子程序,外部中斷子程序等部分構(gòu)成。主程序流程圖如圖2所示:
500)this.style.width=500;" border="0" />
2.2 人機交互界面設(shè)計
人機交互界面由Delphi 7.0開發(fā)而成,由串口通信,數(shù)據(jù)處理,數(shù)據(jù)文件操作,數(shù)據(jù)曲線形成及其分析,端口波特率設(shè)置等部分組成。
3 系統(tǒng)硬件電路設(shè)計
3.1 微處理器
MOTOROLA單片機MC68HC908GP32具有加密功能的32K字節(jié)Flash ROM,512字節(jié)RAM,8路8位A/D轉(zhuǎn)換控制器,增強型串行通信接口和串行外圍接口,及兩個16位雙通道定時器接口模塊。它的總線時鐘高達8MHZ,最小指令周期為125ns,帶時鐘預(yù)分頻的定時基模塊有8中周期性實時中斷,且具有多種保護功能[1]。
3.2 溫度、壓力數(shù)據(jù)采集部分
本系統(tǒng)選用三個PT100鉑電阻作為測溫傳感器,通過兩個繼電器選通做為溫度輸入。這種鉑電阻溫度系數(shù)的離散度很小,精確度高,靈敏度好,測溫范圍為-200~650℃[2];配套使用的溫度變送器測溫范圍為0~500℃,能將溫度信號轉(zhuǎn)換為隨溫度線性變化的電流信號輸出,范圍為4-20mA。
電流與溫度之間的關(guān)系式為:
500)this.style.width=500;" border="0" />
選用北京SAILING公司壓力傳感器,測壓范圍0~60Kpa;配套使用的壓力變送器測壓范圍為0~45Kpa,能將壓力信號轉(zhuǎn)換為隨壓力線性變化的電流信號輸出,范圍為4~20mA。
電流與壓力之間的關(guān)系式為:
500)this.style.width=500;" border="0" />
變送器輸出的電流信號經(jīng)過電流-電壓轉(zhuǎn)換電路得到0-5V的直流電壓,進入單片機進行A/D轉(zhuǎn)換。轉(zhuǎn)換電路如圖3所示:
500)this.style.width=500;" border="0" />
3.3 數(shù)據(jù)存儲及顯示部分
500)this.style.width=500;" border="0" />
數(shù)據(jù)存儲及顯示電路如圖4所示,主要由以下三部分組成:
1)數(shù)據(jù)循環(huán)顯示部分。使用單片機的SPI接口擴展移位寄存器74LS164做為七段數(shù)碼管接口,解決了片內(nèi)I/O不足的問題。數(shù)碼管共有4位,第一位循環(huán)顯示編號1-2-3-4-1,后三位顯示與編號相對應(yīng)的數(shù)據(jù),可精確到個位。測量所得數(shù)據(jù)每隔1秒動態(tài)掃描顯示,每個編號對應(yīng)數(shù)據(jù)共顯示10秒,每40秒為一個大循環(huán)。
2)EEPROM存儲部分。采用基于I²C-BUS的存儲器件AT24C64實現(xiàn)存儲功能,其存儲容量為64Kbit。系統(tǒng)中采用兩個并行I/O口A0與A1進行軟件模擬產(chǎn)生I²C總線時序信號,實現(xiàn)I²C總線數(shù)據(jù)的讀寫。主要讀寫流程為:
字節(jié)寫入:開始-器件地址/0-應(yīng)答-字節(jié)高地址-字節(jié)低地址-應(yīng)答-數(shù)據(jù)寫入-應(yīng)答-停止
字節(jié)讀出:開始-器件地址/0-應(yīng)答-字節(jié)高地址-字節(jié)低地址-應(yīng)答-開始-器件地址/1-應(yīng)答-數(shù)據(jù)讀出-停止
3)與PC機串口通信部分。使用單片機的SCI接口實現(xiàn)單片機與主機之間的通信,采用RS-232標(biāo)準(zhǔn)實現(xiàn)點對點的通信,用查詢方式發(fā)送、接收數(shù)據(jù)。
3.4 步進電機、電磁閥控制部分
深海探測具有復(fù)雜性和實時性,系統(tǒng)需一次完成多任務(wù)作業(yè)。針對海底不同的環(huán)境,系統(tǒng)需要根據(jù)現(xiàn)場采集的數(shù)據(jù)實時的調(diào)整步進電機的轉(zhuǎn)速和電磁閥的吸合。因此本系統(tǒng)采用了德國百格拉公司的三相混合步進電機及其控制器,該電機具有低功耗、高扭矩、高精度和幾無共振爬行等特點。
500)this.style.width=500;" border="0" />
驅(qū)動步進電機與電磁閥部分電路如圖5所示。單片機通過步進電機控制器進行轉(zhuǎn)速控制。MC68HC908GP32具有兩個16位雙通道定時器接口模塊,利用其中一個定時器的兩個通道進行控制,一個通道T1CH0為脈沖調(diào)制輸出,產(chǎn)生電機控制器所需頻率脈沖信號,另一個通道T1CH1產(chǎn)生電機旋轉(zhuǎn)方向信號,加光耦隔離與步進電機控制器連接。通過調(diào)整脈沖輸出頻率即可調(diào)整步進電機轉(zhuǎn)速,調(diào)整電機方向信號電平即可控制電機旋轉(zhuǎn)方向。電機控制器與步進電機通過功率接口連接,同時控制器有撥碼開關(guān)選擇步進電機步長。電磁閥控制采用三個輸入I/O口與兩個輸出I/O口進行控制。輸入口接受其他系統(tǒng)控制信號,由單片機判斷選擇電磁閥是否吸合輸出控制信號,控制信號控制繼電器通斷做為強電器件開關(guān)以控制電磁閥。
4 結(jié)語
本文介紹了基于mc68hc908gp32的深海熱液多點溫度、壓力采集及控制系統(tǒng),經(jīng)實驗表明,在0~500℃的溫度范圍和1~45Mpa的壓力范圍內(nèi)工作穩(wěn)定可靠,實時性及智能化程度高,體積小,使用方便。不僅可在復(fù)雜的海底測溫環(huán)境中進行作業(yè),也可擴展出更豐富的電機控制功能;既可單獨作業(yè),又可與PC機通信對數(shù)據(jù)進行更復(fù)雜精密的計算和使用,具有使用價值。