基于CAN總線的分布式監(jiān)控系統(tǒng)智能節(jié)點設計
監(jiān)控節(jié)點的通信采用CAN總線2.0A協(xié)議,通信模塊的軟件設計主要由初始化程序、發(fā)送程序、接收程序三部分組成。其中初始化程序是實現(xiàn)通信的關(guān)鍵,它主要用來完成CAN控制器工作方式的選擇,即對P87C591中CAN控制器控制段中的寄存器進行設置,包括:總線定時寄存器和輸出控制寄存器設置;接收驗收濾波寄存器和濾波屏蔽寄存器設置;設置發(fā)送數(shù)據(jù)幀類型(標準幀或擴展幀)、標識符、數(shù)據(jù)長度。初始化過程是在CAN控制器復位模式下完成的,監(jiān)控節(jié)點通信的初始化程序流程如圖4所示。
本文引用地址:http://butianyuan.cn/article/163647.htm
監(jiān)控節(jié)點與CAN總線之間的數(shù)據(jù)交換是通過發(fā)送程序和接收程序?qū)崿F(xiàn)的。發(fā)送程序流程如圖5所示,從圖5中可以看出系統(tǒng)的每個節(jié)點采用定時中斷的方式主動向監(jiān)控計算機發(fā)送數(shù)據(jù)。這是利用了CAN總線可以采用多主機方式通信的特點。由于實時監(jiān)控功能是由各個控制節(jié)點完成,而監(jiān)控計算機主要用來實現(xiàn)管理功能,所以采用了定時上傳數(shù)據(jù)的方法,而沒有實時上傳所有傳感器采集到的數(shù)據(jù),從而減輕了總線負擔。這也是分布式控制方法相對于集中控制方法的一個優(yōu)點。圖6為接收程序流程圖,接收緩沖區(qū)用來存放CAN總線上發(fā)來的數(shù)據(jù),CPU讀取數(shù)據(jù)后接收緩沖區(qū)將被清空,等待接收新的數(shù)據(jù)。
5結(jié)束語
本文設計的基于CAN總線的分布式監(jiān)控系統(tǒng)智能節(jié)點經(jīng)過現(xiàn)場調(diào)試,可以對潛水電機運行過程中出現(xiàn)的過流、過熱、短路、滲漏情況做出處理,對電機起到了保護作用;節(jié)點與上位計算機之間的數(shù)據(jù)通信穩(wěn)定可靠;可以通過現(xiàn)場設置模塊修改節(jié)點的參數(shù)。實驗表明了節(jié)點的適用性和可靠性,開發(fā)過程中所提出的技術(shù)方案和實現(xiàn)方法可以在分布式監(jiān)控系統(tǒng)及工業(yè)底層監(jiān)控網(wǎng)絡的現(xiàn)場智能節(jié)點設計中推廣應用。
本文作者創(chuàng)新點:設計了一種基于P87C591的智能監(jiān)控節(jié)點,在軟/硬件設計中均采用了模塊化的結(jié)構(gòu),具有高度的靈活性和廣泛的適用性。
評論