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