基于單片機的高精度水位監控儀的設計
1 引言
水位監控儀廣泛應用于水利、石油、化工、冶金、電力等領(lǐng)域的自動(dòng)檢測和控制系統中。目前有些水位監控儀在運行過(guò)程中存在著(zhù)一些問(wèn)題,如:系統不穩定、抗干擾能力差、精度低、輸出控制或顯示信號不滿(mǎn)足要求、現場(chǎng)更改程序或程序升級麻煩及通信能力差等。本文設計的智能水位監控儀是吸收了國內外最新智能化儀表的設計經(jīng)驗,采用工業(yè)控制單片機,集水位采集、存儲、顯示及遠程聯(lián)網(wǎng)于一體,適用于各種液位測量及閘門(mén)開(kāi)度的測量。
2 系統硬件總體設計
本系統硬件部分主要考慮的功能有:模擬量的變換;模擬量的采集;高精度16位模數轉換器AD7705在系統中的應用;精確時(shí)鐘芯片DS1302的應用;四路繼電器報警,繼電器驅動(dòng)芯片采用ULN2003;4~20mA電流環(huán)輸出數模轉換器AD421的應用以提供系統檢測信號;用于與上位微機通訊的接口實(shí)現。系統框圖如圖1。
圖1 系統硬件原理圖
在本系統中,我們選用的主控芯片是高集成度MCU芯片C8051F021。C8051F單片機是完全集成的混合信號系統級芯片(SOC) .具有與8051兼容的高速CIP-51內核和與MCS-51完全兼容的指令集;片內集成了數據采集和控制系統中常用的模擬、數字外設及其他功能部件;內置FLASH程序存儲器、內部RAM;大部分器件內部還有位于外部數據存儲器空間的RAM,即XRAM;C8051F單片機具有片內調試電路,通過(guò)4腳的JTAG接口可以進(jìn)行非侵入式、全速的在線(xiàn)系統調試。
2.1 SPI通訊接口設計
在系統設計中,有兩個(gè)外部芯片應用了SPI接口方式:AD7705和AD421,單片機和這兩個(gè)外圍芯片構成了一個(gè)SPI總線(xiàn)系統。其中單片機的NSS端懸空并被片內上拉電阻置為高電平連接,因為AD421是一個(gè)4~20mA輸出的數模轉換器芯片,所以它與單片機的數據線(xiàn)連接只有主設備輸出從設備輸入,即MOSI。水位監控儀中SPT系統的連接如圖2所示。
圖2 SPI接口系統原理圖
2.2 模數轉換設計
在本次設計中,我們選用了兩種模數轉換電路,第一種是利用單片機片內的12位ADC,在可變電阻器通道中用的是該電路:另外一種是片外的高精度模數轉換芯片AD7705,該芯片的精度達16位,應用于壓力傳感器通道的數據采集中,下面計算得出具體應用中能達到的精度。在水位監控儀的設計中,我們忽略模擬電路的前端誤差,那么可精確到的毫米數可由式1計算得出:
(1)
計算可得,當測量量程a=10m時(shí),如果采用12位的ADC,測量精度為2.44mm;如采用16位ADC,測量精度可達0.153mm。
我們的設計要求為精確到2 mm,所以如采用16位的ADC完全能符合我們的設計要求。在設計中由于可變電阻器法本身測量精度較低所以使其采用了單片機片內的12位ADC,為盡量提高測量精度,減小測量誤差,我們還用單片機的另一通道對可變電阻器的供電電源電壓進(jìn)行了采集,在軟件中兩者進(jìn)行了適當融合處理,在此不再詳述。壓力傳感器通道我們選用了片外的ADC轉換芯片AD7705, AD7705芯片正好有兩路模擬通道,供我們的兩路壓力傳感器通道使用,在軟件中進(jìn)行通道的切換。
2.3 報警電路設計
本系統中四路報警電路的設計是采用單片機的I/O口加達林頓驅動(dòng)芯片ULN2003實(shí)現的,然后將輸出接到繼電器的控制端。ULN2003由7組達林頓晶體管陣列和相應的電阻網(wǎng)絡(luò )及鉗位二極管網(wǎng)絡(luò )構成,具有同時(shí)驅動(dòng)7組負載的能力,是單片雙極型大功率高速集成電路。繼電器選用的是G6B-1174P型號的產(chǎn)品,24V供電電壓。電氣內部結構連接示意如圖3。
本系統設計中采用四路繼電器信號輸出報警,包括高水位一、高水位二、低水位一、低水位二,這四個(gè)報警水位高度可通過(guò)下位機按鍵或上位機界面中人為設定和修改。以高水位一為例進(jìn)行說(shuō)明,當水位值在高水位一和高水位二之間時(shí),單片機發(fā)出開(kāi)關(guān)量控制信號,使其對應的繼電器常開(kāi)觸點(diǎn)接觸導通,具體報警方式可靈活選擇,可在外電路中串接報警燈或報警鈴,當該繼電器動(dòng)作時(shí),相應報警開(kāi)始(表現為燈亮或者鈴響)。
圖3 報警電路原理框圖
2.4 4-20mA電流環(huán)輸出數模轉換電路與時(shí)鐘電路的設計
在微機工業(yè)測控現場(chǎng)中,經(jīng)常會(huì )出現待測模擬電壓信號與測量設備之間有較遠的距離的情況,把該待測模擬電壓信號直接通過(guò)很長(cháng)的線(xiàn)路送入測量設備顯然是不合理的。通常采用的方法是:在測量現場(chǎng)對待測模擬信號進(jìn)行放大、濾波等預處理,再經(jīng)過(guò)變換后進(jìn)行遠距離傳送,在測量設備附近再反變換成電壓信號進(jìn)行測量。適合工業(yè)測控系統遠距離傳送的信號一般有電流源或頻率信號。為了把待測模擬電壓信號變換成電流源信號傳送,常常使用電壓/電流變換電路。本系統采用一種高性能數字模擬變換器AD421,變換器輸出信號為4~20mA電流環(huán)。
單片機應用系統中,為了使系統具有實(shí)時(shí)性,需由一時(shí)鐘電路給系統提供時(shí)鐘信號(年、月、日、時(shí)、分、秒)。我們選用了DALLAS公司的DS1302芯片。水位監控儀中用的主控芯片C8051F021共有兩個(gè)串行口,該我們的設計中,一個(gè)用于與上位微機的通訊,另一個(gè)用于與編碼器通訊,因此,在時(shí)鐘模塊與單片機的接口設計中只能采用第二種接口方式,即用普通I/O口模擬工作時(shí)序。該時(shí)鐘芯片對時(shí)序要求非常嚴格,時(shí)序的確定是跟硬件緊密相連的,芯片內部的寄存器、鎖存器等都對時(shí)序有嚴格的要求,所以充分體現了在研制過(guò)程中軟硬件相結合的重要性。在程序設計過(guò)程中也遇到了因時(shí)序問(wèn)題引起的數據傳輸錯誤,但最終都順利解決。
2.5 串行通訊部分電路的設計
在本次設計中,下位機與上位微機通信的串行口部分我們采用了兩種通信方式:第一種采用RS-232通信方式;第二種采用了RS-485通信方式。
本次設計中RS-232通信電平是用轉換芯片MAX202來(lái)實(shí)現的。MAX202適用于噪聲嚴重環(huán)境下的RS-232通信,每個(gè)發(fā)送器輸出和接收器輸入勿需封閉均可抗15kV靜電放電(ESD,Electro-Static Discharge)沖擊,MAX202有兩個(gè)驅動(dòng)器和兩個(gè)接收器,MAX202芯片是為在缺少12V電源的情況下進(jìn)行RS- 232C與TTL/COMS電平轉換而設計的雙向轉換芯片,MAX202的供電電源是+5 V,電平轉換速度的最大值不小于120kbps。MAX202芯片的外圍器件很少,只需用4個(gè)0.1μF的電容,因而進(jìn)一步降低了成本和減小了占用的空間。
在我們的設計中,采用了SN65LBC184電平轉換芯片,SN65LBC184是SN5176行業(yè)標準范圍內的差分數據線(xiàn)收發(fā)器,它帶有內置高能量瞬變噪聲保護裝置,這種設計特點(diǎn)顯著(zhù)提高了抵抗數據同步傳輸電纜上的瞬變噪聲的可靠性。差分驅動(dòng)器設計集成了由轉換率控制(slew-rate-controlled)的輸出端,足可以250kbps的速率傳送數據,轉換率控制比之不受控制可允許更長(cháng)的無(wú)終止電纜運轉和來(lái)自主干線(xiàn)的更長(cháng)的短截線(xiàn)長(cháng)度以及更快的電壓轉變速度。獨有的接收器設計可在輸入端處于漂浮(開(kāi)路)時(shí)提供高電平輸出失效保護,SN65LBC184接收器包括一個(gè)高輸入電阻,該電阻等效于1/4單位的負載,允許在總線(xiàn)上掛接最多128個(gè)類(lèi)似器件。SN65LBC184的工作溫度為-40℃至+85℃,因此足可以滿(mǎn)足工作溫度環(huán)境要求。
為了防止上位機和下位機的之間互相的干擾,采用光電隔離器件是一種簡(jiǎn)單而有效的方法。在RS-485的接口電路中我們選用的也是高速光電耦合器6N136。連接電路如圖4所示,其中圖中電源標號+5(2)表示從DC-DC模塊輸出的+5V電源。
圖4 RS-485接口電路圖
3 水位監控儀系統的軟件設計
在我們本次水位監控儀設計中,所選用的軟件調試環(huán)境是Cygnal IDE,它是為C8051系列微控制器量身定制的集成開(kāi)發(fā)環(huán)境,我們將Kei18051編譯環(huán)境的工具集成到Cygnal IDE中,從而形成了一個(gè)集成了編輯、編譯、下載代碼、在線(xiàn)調試等一系列功能的開(kāi)發(fā)環(huán)境,很方便單片機程序的開(kāi)發(fā)。
在我們的系統中將整體程序設計分為兩個(gè)大的模塊:初始化模塊和循環(huán)執行模塊。相應的子程序為:系統初始化子程序和循環(huán)子程序,在主程序調用了這兩個(gè)子程序。系統初始化子程序中對I/O、外部振蕩器、AD/DA、定時(shí)器、DART, SPI以及中斷系統都做了初始化的工作。循環(huán)子程序是一個(gè)死循環(huán),它包括了對顯示部分的初始化和循環(huán)體內容,在循環(huán)體中我們不但完成顯示部分的功能,還做了一些系統應該一直查詢(xún)的信號量,比如按鍵、通道對應的中斷使能切換、繼電器輸出信號的控制處理等。
本文作者創(chuàng )新點(diǎn):本水位監控儀在精度上能夠滿(mǎn)足1mm的設計要求;在可靠性上基本上能夠克服外界的干擾,實(shí)現穩定運行;在功能上具有多功能的設計,符合多種使用方式,可根據具體要求對功能進(jìn)行選擇;能夠方便的實(shí)現人機操作,進(jìn)行各種參數的設定和修改,在一定程度上滿(mǎn)足了智能化的要求。
評論