楚寧
摘? ?要:CANBus告警通信網(wǎng)路在于建構(gòu)出以CAN為傳輸接口的分布式監(jiān)控系統(tǒng),利用多種傳感器與致動器做為外部物理量的輸出入,并使用CAN功能的微控制器PIC18F458制作節(jié)點模組,由微控制器上類比/數(shù)位(A/D)轉(zhuǎn)換器將傳感器感測值轉(zhuǎn)換后,將資料送至CAN匯流排上,最后由主控制室接收資料,經(jīng)過計算與邏輯判斷等等,最后將結(jié)果顯示在LCD面板上。另外,亦可由主控制室設(shè)定比較默認(rèn)值來控制節(jié)點模塊上裝置,或利用開關(guān)按鈕發(fā)出訊息對制動器制動、關(guān)閉,以達(dá)到自動監(jiān)視與控制的目的。
關(guān)鍵詞:遠(yuǎn)程? 告警? 通信方式? 系統(tǒng)? 架構(gòu)
CAN于1986年由德國RobertBoschGmbH最先提出[1],且Philips與Intel也同時參與發(fā)展并于之后開發(fā)出CAN控制芯片。研究開發(fā)CAN匯流排最初的動機(jī)就是為了解決現(xiàn)代汽車中龐大電子控制裝置之間的復(fù)雜通信及減少不斷增加的信號線,于是設(shè)計出一個獨立的網(wǎng)路匯流排,使所有的周邊裝置都可以直接掛接在該匯流排上,CAN通信協(xié)議因而誕生。
1? CAN通信方式
CAN采取廣播通信的方式,而不是使用地址的方式傳遞資料,也就是說我們將資料送至匯流排上,在匯流排上每個節(jié)點都能接收訊息。這些定義的訊息是由訊息辨識碼(ArID)來進(jìn)行辨識,其中還包括訊息優(yōu)先權(quán)的仲裁判斷。所以,辨識碼在于網(wǎng)路上必須是單獨且唯一的,這影響到多個訊息競爭匯流排的使用權(quán),因而顯得非常重要。
1.1 訊息發(fā)送與節(jié)點的擴(kuò)充和維護(hù)
所謂廣播通信是指針對訊息(Message)制定的機(jī)制,設(shè)定訊息過濾器(Filter)與訊息屏蔽(Mask)來決定節(jié)點是否要接收在匯流排上的訊息。訊息屏蔽決定訊息識別碼與訊息過濾器的相對應(yīng)位是否要進(jìn)行比較;而訊息過濾器上相對應(yīng)的位則為比較的內(nèi)容。簡單來說,可將Filter視為被觸發(fā)的事件,而Mask則決定哪些位是可以被忽略的。當(dāng)Mask的值為”1”時使用Filter來過濾此位,而當(dāng)值為“0”時則無條件接受。若在未設(shè)置訊息過濾器及屏蔽的情況下,節(jié)點將會接收到每筆匯流排上的訊息。如此一來,將使得CAN不需要建立節(jié)點與節(jié)點之間的通信連結(jié)關(guān)系,這也讓匯流排上的節(jié)點彼此能夠共享訊息。
1.2 低傳輸延遲
在CAN匯流排系統(tǒng)中,允許節(jié)點請求傳輸訊框,請求傳輸訊框也按照優(yōu)先權(quán)順序的重要性運行,當(dāng)發(fā)生超過負(fù)載的情況且有高優(yōu)先權(quán)的節(jié)點立即需要信息時,該節(jié)點可以立即傳送請求傳輸訊框請求資料。透過優(yōu)先權(quán)順序的運行,使得請求節(jié)點可以取得實時響應(yīng),并存取到所需的信息,也使系統(tǒng)每個節(jié)點各自等待的時間較少。
1.3 錯誤檢驗、錯誤通報、錯誤回復(fù)
CAN匯流排上錯誤的偵測、處理及要求資料的再傳送都是由硬件來處理,同時也使用位填充的技術(shù)來做雙重的訊號保護(hù)。當(dāng)傳送的訊息資料中連續(xù)出現(xiàn)五個相同準(zhǔn)位的訊號時,不管是強(qiáng)勢位(0)或弱勢位(1),都會自動充填一個相反的位,而接收方在接收資料時更會自動把此相反位元拿掉,如此一來將更可以保證資料的完整性。在錯誤的偵測上,CAN會偵察五種的錯誤型式[2],分別為
(1)BitError:在訊框傳送過程中,如果匯流排上偵察的位與傳送出的位不同時,即發(fā)生BitError而停止傳送。但只有用在DLC、Datafield和傳送端的CRCField。
(2)StuffError:傳送的資料有五個連續(xù)相同準(zhǔn)位的位時,就自動插入一個相反的位。而當(dāng)匯流排偵測到有五個連續(xù)相同準(zhǔn)位的位時即表示發(fā)生Stufferror。
(3)CRCError:當(dāng)接收端發(fā)現(xiàn)接收計算后的循環(huán)冗位檢查(CyclicRedundancyCheck,CRC)值與實際傳送的資料不一樣時即表示發(fā)生CRCError。
(4)FormError:在CAN的訊框中某些欄位有其特殊指定的位值,只要這些位與規(guī)定值不同時即表示發(fā)生FormError。
(5)AcknowledgmentError:當(dāng)傳送端偵察到匯流排上的回應(yīng)(ACKSlot)不為“0”時,表示接收端無正確的回應(yīng),即發(fā)生AcknowledgmentError,將重新傳送此次的資料。
1.4 容錯機(jī)制
一般的匯流排系統(tǒng)中,任何一個錯誤的節(jié)點可能會造成整個網(wǎng)路系統(tǒng)癱瘓,但是CAN能自動將有錯誤的節(jié)點由匯流排上排除,以避免這方面的破壞。因為CAN定義每個節(jié)點都必須執(zhí)行傳送錯誤與接收錯誤兩個計數(shù)器,當(dāng)傳送錯誤發(fā)生時便將傳送錯誤計數(shù)值加1,而成功時便減1;接收的錯誤計數(shù)值也相同。而當(dāng)錯誤計數(shù)值超過255時,該節(jié)點將自動進(jìn)入“BusOff”狀態(tài),中止任何與該節(jié)點間的傳送與接收動作以維持帶寬[3]。計數(shù)值小于128時為“ErrorActive”狀態(tài);大于128而且小于255時為“ErrorPassive”狀態(tài),此兩種狀況還不會影響該節(jié)點的正常動作,故匯流排仍將運行在“On”的狀態(tài)。
2? CAN在工業(yè)的應(yīng)用
CAN在工業(yè)上的應(yīng)用,主要都是依使用者需求而去定義各自的形式,也就是對應(yīng)用層的設(shè)計開發(fā),在國外主要的高層協(xié)議有CANopen、DeviceNet、SDS三種開放式系統(tǒng)標(biāo)準(zhǔn),相當(dāng)成熟,也獲得支持。CANopen在通信和系統(tǒng)服務(wù)以及網(wǎng)路管理方面,使用了CAL子集。其標(biāo)準(zhǔn)設(shè)備功能性是以“設(shè)備子協(xié)議”的形式規(guī)定,并借助于對象目錄、對象索引和基于設(shè)備功能性來描述。DeviceNet高層協(xié)議是根據(jù)抽象對象模型來定義這個高層協(xié)議模型,為了建立可用的通信服務(wù)和對象的外部可見行為,以不同的設(shè)備子協(xié)議去規(guī)范不同種類設(shè)備的行為。
3? CANBus告警網(wǎng)路實驗架構(gòu)
3.1 瓦斯氣體感測模塊
在瓦斯感測節(jié)點模塊上,我們將TGS-800R的輸出電壓接至節(jié)點模塊且具有1顆LED警示燈。瓦斯傳感器會將感測電壓值送至該節(jié)點模塊,透過微控制器類比/數(shù)位轉(zhuǎn)換計算后,將訊號送至主控制室做邏輯判斷,若此值超出我們所預(yù)定的值,主控制室則會判定有瓦斯異常,并送一訊號至該節(jié)點模塊將LED致動,我們即可由LED的亮起以及主控制節(jié)點上LCD所顯示的訊息得知瓦斯外泄的警報。
3.2 振動感測模塊
震動傳感器(ShockSensor01S),具有微振動感測的功能且無振動方向上的限制,并在耐久性上可承受至少六千萬次的振動量測,且只需花費低成本的電路即可調(diào)整其靈敏度。在振動感測節(jié)點模塊上,當(dāng)振動(位移)發(fā)生時,震動傳感器會產(chǎn)生一脈沖方波輸出,此一方波訊號在經(jīng)過濾噪聲、微分和積分等處理后,傳送至節(jié)點電路模塊的微分控制器上,再由節(jié)點模塊程序?qū)⒋艘挥嵪⑺椭罜ANBus上由主控制模塊接收并顯示于LCD面板。
4 結(jié)語
分布式監(jiān)控即“集中監(jiān)視、分散控制”之意,此種架構(gòu)必須運用到分散式控制系統(tǒng)(DCS)的技術(shù)。工廠使用機(jī)器來降低人類的負(fù)荷并增加產(chǎn)能,因此使用者必須隨時了解機(jī)器的狀況,以便知道如何因應(yīng),這就是“監(jiān)視”。在了解機(jī)器或設(shè)備的相關(guān)訊息后,使用者可以針對補(bǔ)同的狀況下達(dá)不同的輸出指令,以達(dá)到系統(tǒng)設(shè)計的要求。將廠房或?qū)嶒炇椰F(xiàn)場狀況傳回系統(tǒng)控制者,其再依一定的判斷法則作出相對應(yīng)的控制輸出,就形成了一個“監(jiān)控系統(tǒng)”。
參考文獻(xiàn)
[1] 趙帥帥,陳成軍,王錦,等.基于STM32的波浪能發(fā)電裝置遠(yuǎn)程監(jiān)測系統(tǒng)[J].制造業(yè)自動化,2014,36(22):108-111,156.
[2] 李蒙,高仲合.基于ZigBee和GPRS的遠(yuǎn)程抄表系統(tǒng)設(shè)計[J].電子技術(shù),2014,43(10):40-42,33.
[3] 張海波,史紹領(lǐng).大型PLC系統(tǒng)不停產(chǎn)升級改造方法[J].港口裝卸,2014(5):50-51.