canbus

canbus

作為ISO11898CAN標準的CANBus(ControLLer Area Net-work Bus),是製造廠中連接現場設備(感測器、執行器、控制器等)、面向廣播的串列匯流排系統,最初由美國通用汽車公司(GM)開發用於汽車工業,後日漸增多地出現在製造自動化行業中。

系統組成


CANBus系統通過相應的CAN介面連接工業設備(如限位開關、光電感測器、管道閥門、電機啟動器、過程感測器、變頻器、顯示板、PLC和PCI工作站等)構成低成本網路。

性能


直接連接不僅提供了設備級故障診斷方法,而且提高了通信效率和設備的互換性。CANBus數據傳輸速率為1Mbps時,傳輸最大距離為40m,速率為5kbps時傳輸最大距離為10km,基本站點數64,傳輸媒體是屏蔽雙絞線光纖

控制特點


CANBus數據鏈路層協議採用對等式(Peer to peer)通信方式,即使主機出現故障,系統其餘部分仍可運行(當然性能受一定影響)。當一個站點狀態改變時,它可廣播發送信息到所有站點。
CANBus的信息傳輸通過報文進行,報文幀有4種類型:數據幀、遠程幀、出錯幀和超載幀,其中數據幀格式如圖8所示。CANBus幀的數據場較短,小於8B,數據長度在控制場中給出。短幀發送一方面降低了報文出錯率,同時也有利於減少其他站點的發送延遲時間。幀發送的確認由發送站與接收站共同完成,發送站發出的ACK場包含兩個“空閑”位(recessive bit),接收站在收到正確的CRC場后,立即發送一個“佔有”位(dominant bit),給發送站一個確認的回答。CANBus還提供很強的錯誤處理能力,可區分位錯誤、填充錯誤、CRC錯誤、形式錯誤和應答錯誤等。
CANBus應用一種面向位型的損傷仲裁方法來解決媒體多路訪問帶來的衝突問題。其仲裁過程是:當匯流排空閑時,線路表現為“閑置”電平(recessive level),此時任何站均可發送報文。發送站發出的幀起始欄位產生一個佔有電平(dominant level),標誌發送開始。所有站以首先開始發送站的幀起始前沿來同步。若有多個站同時發送,那麼在發送的仲裁場進行逐位比較。仲裁場包含標識符ID(標準為llbit),對應其優先順序。每個站在發送仲裁場時,將發送位與線路電平比較,若相同則發送;若不同則得知優先順序低而退出仲裁,不再發送。系統響應時間與站點數無關,只取決於安排的優先權。可以看出,這種媒體訪問控制方式不像Ethetnet的CSMA/CDCA協議那樣會造成數據與通道帶寬受損。

協議


CANBus除配置設備網(DeviceNet)協議外,還提供基於CAL(CAN Application Layer) 的CANopen協議(CiA DS-301),即支持設備參數的直接訪問,又可實現有苛刻時間要求的過程數據通信。
CANBus的DeviceNet協議具有開放性,用戶無須購買加入系統所需的硬體、軟體和允許權,多廠家設備能夠在單一網路上相互操作。CANBus也允許與Ethernet或其他區域網相連,接入控制演演算法組態及管理信息PC系統,從而形成管控一體化的工業網路。