基于CAN總線的分布式監(jiān)控系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引 言
鍋爐是通過(guò)燃燒加熱工質(zhì)來(lái)提供熱能動(dòng)力的重要設(shè)備,同時(shí)又是承壓、受火、有爆炸危險(xiǎn)而又被各行各業(yè)普遍使用的特殊設(shè)備。所以實(shí)時(shí)監(jiān)控鍋爐的運(yùn)行狀態(tài),及時(shí)、準(zhǔn)確地發(fā)現(xiàn)鍋爐運(yùn)行中的事故至關(guān)重要。傳統(tǒng)的鍋爐監(jiān)控系統(tǒng)在測(cè)量手段和使用的傳感器方面都存在很大的缺陷。以溫度檢測(cè)為例,早期采用的熱電偶電橋法,測(cè)試過(guò)程復(fù)雜;而采用集成的半導(dǎo)體模擬溫度傳感器需要大量的傳輸電纜,成本高且不易維護(hù)。
CAN總線是一種多主機(jī)控制標(biāo)準(zhǔn),具有物理層和數(shù)據(jù)鏈路層的協(xié)議、多主節(jié)點(diǎn)、無(wú)損仲裁、高可靠性及擴(kuò)充性能好等特點(diǎn);能有效支持分布式控制系統(tǒng)的串行通信網(wǎng)絡(luò)。一方面,其通信方式靈活,可實(shí)現(xiàn)多主方式工作,還可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多點(diǎn)等多種數(shù)據(jù)的收發(fā);另一方面,能在相對(duì)較大的距離間進(jìn)行較高位速率的數(shù)據(jù)通信。本系統(tǒng)是由上位機(jī)對(duì)多個(gè)并列的承壓鍋爐監(jiān)控單元進(jìn)行控制管理,各監(jiān)控單元之間要進(jìn)行快速的數(shù)據(jù)傳輸。CAN總線能很好地滿足該系統(tǒng)的要求。
1 系統(tǒng)總體結(jié)構(gòu)
如圖1所示,系統(tǒng)由上位監(jiān)控機(jī)、CAN節(jié)點(diǎn)0與其他CAN節(jié)點(diǎn)組成。其中,上位監(jiān)控機(jī)為PC機(jī),各CAN節(jié)點(diǎn)的微控制器為STC89LE54RD+。STC89LE54RD+外接CAN控制器SJA1000,外部設(shè)備主要為一線式數(shù)字溫度計(jì)DS1822與壓力傳感器。
上位監(jiān)控機(jī)(PC機(jī))采用IBM-PC兼容機(jī),主要負(fù)責(zé)對(duì)系統(tǒng)各節(jié)點(diǎn)監(jiān)控?cái)?shù)據(jù)的接收與管理、控制命令的發(fā)送以及各控制單元?jiǎng)討B(tài)參數(shù)和設(shè)備狀態(tài)的實(shí)時(shí)顯示。
CAN節(jié)點(diǎn)0是一個(gè)至關(guān)重要的節(jié)點(diǎn),主要有兩個(gè)功能:一是作為上位機(jī)(PC機(jī))與CAN總線的接口,完成CAN總線數(shù)據(jù)與RS-232接口的數(shù)據(jù)轉(zhuǎn)換,對(duì)智能節(jié)點(diǎn)傳送過(guò)來(lái)的數(shù)據(jù)信息進(jìn)行緩存,對(duì)告警信號(hào)進(jìn)行告警以通知維護(hù)人員進(jìn)行處理;二是負(fù)責(zé)協(xié)調(diào)上位機(jī)與各個(gè)CAN節(jié)點(diǎn)的通信,以確保各個(gè)節(jié)點(diǎn)的監(jiān)控?cái)?shù)據(jù)能夠快速、準(zhǔn)確地傳給上位機(jī)。
監(jiān)控CAN節(jié)點(diǎn)為智能型的監(jiān)控模塊,以單片機(jī)為核心,主要負(fù)責(zé)對(duì)現(xiàn)場(chǎng)的環(huán)境參數(shù)和設(shè)備狀態(tài)進(jìn)行監(jiān)測(cè),對(duì)采集來(lái)的數(shù)據(jù)進(jìn)行打包處理并將處理過(guò)的數(shù)字信號(hào)通過(guò)CAN通信控制器SJA1000送入CAN總線;對(duì)系統(tǒng)中各個(gè)承壓鍋爐的壓力與溫度進(jìn)行測(cè)量。一般情況下,智能監(jiān)控節(jié)點(diǎn)會(huì)把監(jiān)控?cái)?shù)據(jù)進(jìn)行存儲(chǔ),定期上傳給上位機(jī),并可接受上位機(jī)的輪詢。若超出正常工作范圍,則告警,同時(shí)把數(shù)據(jù)實(shí)時(shí)向上位機(jī)報(bào)告。
2 硬件結(jié)構(gòu)的設(shè)計(jì)
如圖2所示,監(jiān)控CAN節(jié)點(diǎn)以STC89LE54RD十為微控制器,外圍模塊包括CAN總線接口模塊、溫度采集模塊、壓力采集模塊、報(bào)警模塊等。為充分利用STC89LE54RD+的接口資源,除CAN接口模塊外,其余模塊均采用串行接口器件。這樣就減小了電路體積,降低了電路的硬件成本。
STC89LE54RD+是高速、低功耗且兼容Philips公司51MX內(nèi)核的新一代單片機(jī),12時(shí)鐘/機(jī)器周期和6時(shí)鐘/機(jī)器周期可反復(fù)設(shè)置,內(nèi)部集成有MX810專用復(fù)位電路;執(zhí)行指令的速度為標(biāo)準(zhǔn)8051的12倍,支持在系統(tǒng)編程ISP和在應(yīng)用編程IAP。
2.1 CAN總線接口模塊
在圖3所示的模塊中,選用SJA1000作為CAN控制器,PCA82C250作為CAN控制器接口芯片。SJA1000集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可進(jìn)行通信數(shù)據(jù)的幀處理。PCA82C250是CAN協(xié)議控制器和物理總線之間的接口,對(duì)總線提供差動(dòng)發(fā)送能力,對(duì)CAN控制器提供差動(dòng)接收能力;增加通信距離,提高系統(tǒng)的瞬間抗干擾能力,保護(hù)總線,降低射頻干擾,實(shí)現(xiàn)熱防護(hù)。把STC89LE54RD+的ALE、RD、WR與SJA1000的ALE、RD、WR相連就構(gòu)成一個(gè)最小系統(tǒng)節(jié)點(diǎn),通過(guò)讀、寫外部數(shù)據(jù)存儲(chǔ)器的形式來(lái)訪問(wèn)SJA1000。將SJA1000的TX1腳懸空,RX1引腳接地,形成CAN協(xié)議所要求的電平邏輯。
為進(jìn)一步提高系統(tǒng)的抗干擾能力,在CAN控制器SJA1000和CAN控制器接口PCA82C250之間加接6N137光電隔離芯片,并采用DC-DC變換器隔離電源。通信信號(hào)傳輸?shù)綄?dǎo)線的端點(diǎn)時(shí)會(huì)發(fā)生反射,反射信號(hào)會(huì)干擾正常信號(hào)的傳輸,因而總線2端兩個(gè)124 W的電阻(見(jiàn)圖1)對(duì)匹配總線阻抗起著相當(dāng)重要的作用;忽略掉它們,會(huì)使數(shù)據(jù)通信的抗干擾性和可靠性大大降低,甚至無(wú)法通信。PCA82C250第8腳與地之間的電阻RS稱為“斜率電阻”,它的取值決定了系統(tǒng)處于高速工作方式還是斜率控制方式。把該引腳直接與地相連,系統(tǒng)將處于高速工作方式。在這種方式下,為避免射頻干擾,使用屏蔽電纜作總線;而在波特率較低、總線較短時(shí),一般采用斜率控制方式,上升和下降的斜率取決于RS的阻值。通常情況下,RS較理想的功率取值范圍為15 kW~200 kw。在這種方式下,使用平行線或雙絞線作總線。
2.2 溫度測(cè)量模塊
溫度測(cè)量模塊采用美國(guó)DalIas公司推出的基于單總線技術(shù)的數(shù)字溫度計(jì)芯片DS1822,其連接電路簡(jiǎn)單,無(wú)需外接元件,如圖4所示。DS1822采用了一種將溫度直接轉(zhuǎn)換為頻率的時(shí)鐘計(jì)數(shù)法,計(jì)數(shù)時(shí)鐘由溫度系數(shù)很低的振蕩器產(chǎn)生,因而非常穩(wěn)定;而計(jì)數(shù)的閘門周期則由溫度系數(shù)很高(即對(duì)溫度非常敏感)的振蕩器決定。
2.3 壓力測(cè)量模塊
壓力測(cè)量模塊采用精密智能壓力傳感器PPT-R。PPT-R是霍尼威爾公司生產(chǎn)的高品質(zhì)壓力傳感器,帶有不銹鋼隔膜,適用于對(duì)高溫、腐蝕性介質(zhì)的測(cè)量。
PPT-R智能壓力傳感器性能優(yōu)良、組態(tài)靈活。PPT-R傳感器可對(duì)每次測(cè)量的壓力信號(hào)進(jìn)行積分,積分時(shí)間可在8 ms~12 s之間選擇。這樣可以提高數(shù)字控制系統(tǒng)在不同環(huán)境條件下的適應(yīng)性和抗干擾能力。PPT傳感器具有優(yōu)異的重復(fù)性和穩(wěn)定性,其壓力信號(hào)可由單片機(jī)設(shè)置為數(shù)字輸出模式,也可以設(shè)置為模擬輸出模式。本系統(tǒng)中,將其設(shè)置為數(shù)字輸出模式。
3 軟件的設(shè)計(jì)
系統(tǒng)軟件的設(shè)計(jì)采用模塊化方式,主要分為上位機(jī)程序模塊、數(shù)據(jù)采集處理模塊和CAN通信模塊等。在此主要介紹上位機(jī)軟件模塊與CAN通信模塊的設(shè)計(jì)。
3.1 上位機(jī)軟件的設(shè)計(jì)
上位機(jī)軟件以Borland公司推出的C++Builder6為開(kāi)發(fā)平臺(tái),具有系統(tǒng)參數(shù)設(shè)置、監(jiān)控狀態(tài)設(shè)置、數(shù)據(jù)發(fā)送和接收、節(jié)點(diǎn)狀態(tài)查詢、中斷接收數(shù)據(jù)管理等功能。上位機(jī)首先對(duì)CAN總線及其自身初始化,然后發(fā)送命令通知特定的節(jié)點(diǎn)向CAN總線上發(fā)送數(shù)據(jù),通過(guò)CAN總線上傳到上位機(jī),再由上位機(jī)處理。上位機(jī)采用定時(shí)輪循方式向各個(gè)節(jié)點(diǎn)發(fā)命令,采用中斷方式接收數(shù)據(jù)。
首先用CreateFile( )打開(kāi)通信串口,函數(shù)引用格式為:
CreateFile(1pFileName,dwDesiredAccess,dwShare-Mode,lpSecurityAttributes,dwCreationDistribution,dw-FlagsAndAttributes,hTemplateFile);
然后用BuildCommDCB()和SetCommState( )函數(shù)通過(guò)通信設(shè)備控制塊DCB(Device Control Block)設(shè)置串口通信參數(shù),如波特率、停止位、數(shù)據(jù)位、校驗(yàn)位等;
當(dāng)有通信事件產(chǎn)生時(shí),就可用函數(shù)ReadFile( )和WriteFile( )直接對(duì)串口緩沖區(qū)進(jìn)行讀寫操作了。其引用格式分別為:
WriteFile(hFile,lpBuffer,nNumberOfBytesToWrite.lpNumberOfBytesWritten,lpOverlapped);
ReadFile(hFile,lpBuffer,nNumberOfBytesToRead,lpNumberOfBytesRead,lpOverlapped).
上位機(jī)軟件其他功能的實(shí)現(xiàn),可通過(guò)調(diào)用相應(yīng)組件的屬性進(jìn)行編程。最后編制的軟件界面如圖5所示。
3.2 CAN通信模塊設(shè)計(jì)
CAN通信程序?qū)⒉杉降臄?shù)據(jù)發(fā)送到CAN控制器,再由CAN控制器將數(shù)據(jù)發(fā)送到CAN總線。
對(duì)于接收數(shù)據(jù),系統(tǒng)采用中斷方式實(shí)現(xiàn)。一旦中斷發(fā)生,即將接收的數(shù)據(jù)自動(dòng)裝載到相應(yīng)的報(bào)文寄存器中,此時(shí)還可采用屏蔽濾波方式。利用屏蔽濾波寄存器對(duì)接收?qǐng)?bào)文的標(biāo)識(shí)符和預(yù)先在接收緩沖器初始化時(shí)設(shè)定的標(biāo)識(shí)符進(jìn)行有選擇的逐位比較。只有標(biāo)識(shí)符匹配的報(bào)文才能進(jìn)入接收緩沖器,那些不符合要求的報(bào)文則將被屏蔽于接收緩沖器之外,從而減輕CPU處理報(bào)文的負(fù)擔(dān)。此外,不同數(shù)據(jù)應(yīng)放人不同的報(bào)文寄存器中,其程序流程如圖6所示。
結(jié) 語(yǔ)
本系統(tǒng)采用了lBM-PC兼容機(jī)、單片機(jī)和SJA1000組成二級(jí)控制系統(tǒng).實(shí)現(xiàn)了一體化的操作,解決了長(zhǎng)期以來(lái)在承壓鍋爐監(jiān)控方面的難題。系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,操作方便,安全可靠,造價(jià)低廉,運(yùn)行穩(wěn)定可靠。