基于CAN總線的裝備器材庫智能監(jiān)控系統(tǒng)的設(shè)計
引言
裝備器材科技含量和性能的提高,使它對溫度、濕度和壓力等保管條件的要求也越來越嚴(yán)格,為了保證裝備器材的可靠性和裝備器材庫的安全性,必須加強對裝備器材庫的管理與監(jiān)控。
目前,對裝備器材庫的溫度、濕度、壓力以及煙霧的監(jiān)控,很大程度上依靠管理人員巡檢和相對簡單的監(jiān)控系統(tǒng),這已經(jīng)不能滿足裝備管理發(fā)展的需要。尤其在環(huán)境急劇變化的情況下,如果管理人員不能及時發(fā)現(xiàn)并實時解決問題,大量裝備器材特別是武器備件、化學(xué)防護(hù)器材和彈藥就會腐蝕、銹蝕、失效,甚至爆炸,造成難以預(yù)料的后果。針對以上問題,設(shè)計了基于CAN總線的智能監(jiān)控系統(tǒng),它能有效地監(jiān)測各裝備器材庫溫度、濕度的變化情況、壓力情況以及有無火災(zāi)發(fā)生等情況,可實時報警并通過人機交互界面進(jìn)行顯示,具有成本低、應(yīng)用廣、使用方便且可靠性高等優(yōu)點。
系統(tǒng)總體結(jié)構(gòu)
CAN總線是一種多主機控制局域網(wǎng)標(biāo)準(zhǔn),具有物理層和數(shù)據(jù)鏈路層的網(wǎng)絡(luò)協(xié)議、多主節(jié)點、無損仲裁,它可靠性高、擴(kuò)充性能好。CAN總線能有效支持分布式控制系統(tǒng)的串行通信網(wǎng)絡(luò),一方面,其通信方式靈活,可實現(xiàn)多主方式工作,還可實現(xiàn)點對點、點對多點等多種數(shù)據(jù)收發(fā)方式;另一方面,它能在相對較大的距離范圍間進(jìn)行較高位速率的數(shù)據(jù)通信。本系統(tǒng)是由上位機對多個并列的裝備器材庫監(jiān)控單元進(jìn)行控制管理,各監(jiān)控單元之間要進(jìn)行快速的數(shù)據(jù)傳輸,CAN總線能很好地滿足該系統(tǒng)的要求。
如圖1所示,本系統(tǒng)由上位監(jiān)控機、CAN節(jié)點0與其它CAN節(jié)點組成。其中,上位監(jiān)控機為PC機,各C AN節(jié)點的微控器為TC89LE54RD+, STC89LE54RD+外接CAN控制器SJA1000,外部設(shè)備主要為SHT11數(shù)字溫度、濕度傳感器、PPT-R壓力傳感器和KG8005A煙霧傳感器。
圖1 系統(tǒng)總體結(jié)構(gòu)圖(略)
上位監(jiān)控機(PC機)采用IBM-PC兼容機,主要負(fù)責(zé)對系統(tǒng)各節(jié)點的監(jiān)控數(shù)據(jù)的接收與管理、控制命令的發(fā)送以及各控制單元動態(tài)參數(shù)和設(shè)備狀態(tài)的實時顯示。
CAN節(jié)點0是一個至關(guān)重要的節(jié)點,它主要有兩個功能:一是作為上位機(PC機)與CAN總線的接口,完成CAN總線數(shù)據(jù)與RS-232接口的數(shù)據(jù)轉(zhuǎn)換,對智能節(jié)點傳送過來的數(shù)據(jù)信息進(jìn)行緩存,對告警信號進(jìn)行告警以通知維護(hù)人員進(jìn)行處理;二是負(fù)責(zé)協(xié)調(diào)上位機與各個CAN節(jié)點的通信,以確保各個節(jié)點的監(jiān)控數(shù)據(jù)能夠快速、準(zhǔn)確地傳給上位機。
監(jiān)控CAN節(jié)點為智能型的監(jiān)控模塊,以單片機為核心,主要負(fù)責(zé)對現(xiàn)場的環(huán)境參數(shù)和設(shè)備狀態(tài)進(jìn)行監(jiān)測,對采集來的數(shù)據(jù)進(jìn)行打包處理并將處理過的數(shù)字信號通過CAN通信控制器SJA1000送入CAN總線,實現(xiàn)對系統(tǒng)中各個裝備器材庫的壓力、溫度、濕度和煙霧的測量。一般情況下,智能監(jiān)控節(jié)點會把監(jiān)控數(shù)據(jù)進(jìn)行存儲,定期上傳給上位機,并可接受上位機的輪詢。若超出正常工作范圍則進(jìn)行告警,同時向上位機實時報告數(shù)據(jù)。
硬件結(jié)構(gòu)的設(shè)計
如圖2所示,監(jiān)控CAN節(jié)點以STC89LE54RD+為微控制器,外圍模塊包 括CAN總線接口模塊、溫濕度采集模塊、壓力采集模塊、煙霧采集模塊以及報警模塊等。為充分利用STC89LE54RD+的接口資源,除CAN接口模塊外其余均采用串行接口器件,這樣就減小了電路體積,降低了電路的硬件成本。STC89LE54RD+是高速/低功耗且兼容Philips公司51MX內(nèi)核的新一代單片機,12時鐘/機器周期和6時鐘/機器周期可反復(fù)設(shè)置,內(nèi)部集成有MX810專用復(fù)位電路。執(zhí)行指令的速度為標(biāo)準(zhǔn)8051的12倍,支持在系統(tǒng)編程ISP、在應(yīng)用編程IAP。
圖2 監(jiān)控CAN節(jié)點結(jié)構(gòu)圖(略)
CAN總線接口模塊
在本模塊中,我們選用SJA1000作為CAN控制器,PCA82C25作為CAN控制器接口芯片。SJA1000集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可處理通信數(shù)據(jù)幀處理;PCA82C250是CAN協(xié)議控制器和物理總線之間的接口,此器件對總線提供差動發(fā)送能力,對CAN控制器提供差動接收能力,增大通信距離,提高系統(tǒng)的瞬間抗干擾能力,保護(hù)總線,降低射頻干擾,實現(xiàn)熱防護(hù)。把STC89LE54RD+的ALE、RD、WR和 SJA1000的ALE、RD、WR相連就構(gòu)成一個最小系統(tǒng)節(jié)點,通過讀、寫外部數(shù)據(jù)存儲器的形式來訪問 SJA1000。將SJA1000的TX1腳懸空,RX1引腳接地,形成CAN協(xié)議所要求的電平邏輯。
圖3 CAN總線接口模塊原理圖(略)
為進(jìn)一步提高系統(tǒng)抗干擾能力,在CAN控制器SJA1000和CAN控制器接口PCA82C250之間加接6N137光電隔離芯片,并采用DC/DC變換器隔離電源;通信信號傳輸?shù)綄?dǎo)線的端點時會發(fā)生反射,反射信號會干擾正常信號的傳輸,因而總線兩端兩個124W的電阻對匹配總線阻抗起著相當(dāng)重要的作用,如果忽略它們,會使數(shù)據(jù)通信的抗干擾性和可靠性大大降低,甚至無法通信;PCA82C250第8腳與地之間的電阻RS稱為斜率電阻,它的取值決定了系統(tǒng)處于高速工作方式還是斜率控制方式,把該引腳直接與地相連,系統(tǒng)將處于高速工作方式。在這種方式下,為避免射頻干擾,使用屏蔽電纜作總線;而在波特率較低、總線較短時,一般采用斜率控制方式,上升和下降的斜率取決于RS的阻值。通常情況下,15kW~200kW為RS較理想的取值范圍,在這種方式下,使用平行線或雙絞線作總線。
溫濕度采集模塊
溫濕度采集模塊采用瑞士Scnsirion公司生產(chǎn)的SHT11數(shù)字溫濕度傳感器,該傳感器具有響應(yīng)速度快、抗干擾能力強、精度高、功耗低以及不需要外部元件等特點。
SHT11芯片內(nèi)部高度集成,如圖4所示,有相對濕度傳感器、溫度傳感器、放大器、14位A/D轉(zhuǎn)換器、校準(zhǔn)存儲器、易失存儲器(RAM)、狀態(tài)寄存器、循環(huán)冗余校驗碼(CRC)寄存 器、二線串行接口、控制單元、加熱器及低電壓檢測電路。其測量原理是:首先利用兩只傳感器分別產(chǎn)生相對濕度、溫度的信號,然后經(jīng)過放大,分別送至A/D轉(zhuǎn)換器進(jìn)行模/數(shù) 轉(zhuǎn)換、校準(zhǔn)和糾錯,最后通過二線串行接口將相對濕度及溫度的數(shù)據(jù)送至主控機。
圖4 SHT11內(nèi)部結(jié)構(gòu)圖(略)
壓力測量模塊
壓力測量模塊采用精密智能壓力傳感器PPT-R,PPT-R是霍尼威爾公司生產(chǎn)的高品質(zhì)壓力傳感器,帶有不繡鋼隔膜,適用于對高溫、腐蝕性介質(zhì)的測量。
PPT-R智能壓力傳感器性能優(yōu)良、組態(tài)靈活,它可對每次測量的壓力信號進(jìn)行積分,積分時間可在8mS~12S之間選擇,這樣可以 提高數(shù) 字控制系統(tǒng)在不同環(huán)境條件下的適應(yīng)性和抗干擾能力。PPT傳感器具有良好的重復(fù)性和穩(wěn)定性,其壓力信號可由單片機設(shè)置為數(shù)字輸出模式或模擬輸出模式,在本系統(tǒng)中將其設(shè)置為數(shù)字輸出模式。
煙霧測量模塊
煙霧測量模塊采用國產(chǎn)的KG8005A型煙霧傳感器,屬于國內(nèi)首創(chuàng),達(dá)到了國際先進(jìn)水平,具有抗腐蝕能力強的敏感元件、高靈敏度的檢測電路、二級煙塵粉塵淘析結(jié)構(gòu)和不銹鋼外殼結(jié)構(gòu),能對煙霧進(jìn)行就地監(jiān)測、遙測和集中監(jiān)視,輸出標(biāo)準(zhǔn)的開關(guān)信號,長時自動監(jiān)測到火災(zāi)初期各類燃燒物質(zhì)陰燃階段產(chǎn)生的不可見及可見煙霧,對各種火災(zāi)進(jìn)行準(zhǔn)確、及時地預(yù)報,且能有效地防止粉塵干擾所引起的非火災(zāi)誤報。
軟件的設(shè)計
系統(tǒng)軟件的設(shè)計采用模塊化,主要分為上位機程序模塊、數(shù)據(jù)采集處理模塊和CAN通信模塊等。在此主要介紹上位機軟件模塊與CAN通信模塊的設(shè)計。
上位機軟件的設(shè)計
上位機軟件以Borland公司推出的C++Builder6為開發(fā)平臺,具有系統(tǒng)參數(shù)設(shè)置、監(jiān)控狀態(tài)設(shè)置、數(shù)據(jù)發(fā)送和接收、節(jié)點狀態(tài)查詢以及中斷接收數(shù)據(jù)管理等功能。上位機首先對CAN總線及其自身初始化,然后發(fā)送命令通知特定的節(jié)點向CAN總線上發(fā)送數(shù)據(jù),通過CAN總線上傳到上位機,再由上位機處理。上位機采用定時輪循方式向各個節(jié)點發(fā)命令,采用中斷方式接收數(shù)據(jù)。
相關(guān)編程如下:
首先用CreateFile( )打開通信串口,函數(shù)引用格式為:
CreateFile(lpFileName,dwDesiredAccess,dwShareMode, lpSecurityAttributes, ,dwCreationDistribution, dwFlagsAndAttributes,
hTemplateFile);
然后用BuildCommDCB( )和SetCommState( )函數(shù),通過通信設(shè)備控制塊DCB(Device Control Block)設(shè)置串口通信參數(shù)(如波特率、停止位、數(shù)據(jù)位、校驗位等);
當(dāng)有通信事件產(chǎn)生時,就可用函數(shù)ReadFile( )和WriteFile ( )直接對串口緩沖區(qū)進(jìn)行讀寫操作。其引用格式分別為:
WriteFile(hFile,lpBuffer,nNumberOfBytesToWrite, lpNumberOfBytesWritten,lpOverlapped);
ReadFile(hFile,lpBuffer,nNumberOfBytesToRead, lpNumberOfBytesRead,lpOverlapped).
上位機軟件的其它功能的實現(xiàn),可通過調(diào)用相應(yīng)組件的屬性進(jìn)行編程。
CAN通信模塊設(shè)計
CAN通信程序負(fù)責(zé)將采集到的數(shù)據(jù)發(fā)送到CAN控制器,再由其負(fù)責(zé)發(fā)送到CAN總線。
對于接收數(shù)據(jù),本系統(tǒng)采用中斷方式實現(xiàn)。一旦中斷發(fā)生,即將接收的數(shù)據(jù)自動裝載到相應(yīng)的報文寄存器中,此時還可采用屏蔽濾波方式,利用屏蔽濾波寄存器對接收報文的標(biāo)識符和預(yù)先在接收緩沖器初始化時設(shè)定的標(biāo)識符進(jìn)行有選擇地逐位比較,只有標(biāo)識符匹配的報文才能進(jìn)入接收緩沖器,那些不符合要求的報文則將被屏蔽于接收緩沖器之外,從而減輕CPU處理報文的負(fù)擔(dān)。此外,不同數(shù)據(jù)應(yīng)放入不同的報文寄存器中,其程序流程圖如圖5所示。
圖5 CAN模塊通信流程圖(略)
結(jié)束語
本系統(tǒng)基于CAN總線,采用了IBM-PC兼容機、單片機和SJA1000組成二級控制系統(tǒng),實現(xiàn)了一體化的操作,可以實現(xiàn)部隊裝備器材庫智能化監(jiān)控。本系統(tǒng)結(jié)構(gòu)簡單,操作方便,安全可靠,造價低廉且運行穩(wěn)定。