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