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