什么是CAN總線
CAN是控制器局域網絡(ControllerAreaNetwork,CAN)的簡稱,是由以研發和生產汽車電子產品著稱的德國BOSCH公司開發的,并最終成為國際標準(ISO11898),是國際上應用最廣泛的現場總線之一。在北美和西歐,CAN總線協議已經成為汽車計算機控制系統和嵌入式工業控制局域網的標準總線,并且擁有以CAN為底層協議專為大型貨車和重工機械車輛設計的J1939協議。
CAN總線的特點
?。?)它是一種多主總線,即每個節點機均可成為主機,且節點機之間也可進行通信。
?。?)通信介質可以是雙絞線、同軸電纜或光導纖維,通信速率可達1mb/s。
(3)can總線通信接口中集成了can協議的物理層和數據鏈路層功能,可完成對通信數據的成幀處理,包括位填充、數據塊編碼、循環冗余校驗、優先級判別等項工作。
(4)can協議的一個最大特點是廢除了傳統的站地址編碼,雨代之以對通信數據塊進行編碼。采用這種方法的優點是可使網絡內的節點個數在理論上不受限制,數據塊的標識碼可由11位或29位二進制數組成,因此可以定義211或229個不同的數據塊,這種數據塊編碼方式,還可使不同的節點同時接收到相同的數據,這一點在分步式控制中非常重要。
?。?)數據段長度最多為8個字節,可滿足通常工業領域中控制命令、工作狀態及測試數據的一般要求。同時,8個字節不會占用總線時間過長,從而倮證了通信的實時性。
(6)can協議采用crc檢驗并可提供相應的錯誤處理功能,保證了數據通信的可靠性。can總線所具有的卓越性能、極高的可靠性和獨特設計,特別適合工業設各測控單元互連。因此備受工業界的重視,并已公認為最有前途的現場總線之一。
CAN總線的工作原理
CAN總線使用串行數據傳輸方式,可以1Mb/s的速率在40m的雙絞線上運行,也可以使用光纜連接,而且在這種總線上總線協議支持多主控制器。CAN與I2C總線的許多細節很類似,但也有一些明顯的區別。
當CAN總線上的一個節點(站)發送數據時,它以報文形式廣播給網絡中所有節點。對每個節點來說,無論數據是否是發給自己的,都對其進行接收。每組報文開頭的11位字符為標識符,定義了報文的優先級,這種報文格式稱為面向內容的編址方案。在同一系統中標識符是唯一的,不可能有兩個站發送具有相同標識符的報文。當幾個站同時競爭總線讀取時,這種配置十分重要。
當一個站要向其它站發送數據時,該站的CPU將要發送的數據和自己的標識符傳送給本站的CAN芯片,并處于準備狀態;當它收到總線分配時,轉為發送報文狀態。CAN芯片將數據根據協議組織成一定的報文格式發出,這時網上的其它站處于接收狀態。每個處于接收狀態的站對接收到的報文進行檢測,判斷這些報文是否是發給自己的,以確定是否接收它。
由于CAN總線是一種面向內容的編址方案,因此很容易建立高水準的控制系統并靈活地進行配置。我們可以很容易地在CAN總線中加進一些新站而無需在硬件或軟件上進行修改。當所提供的新站是純數據接收設備時,數據傳輸協議不要求獨立的部分有物理目的地址。它允許分布過程同步化,即總線上控制器需要測量數據時,可由網上獲得,而無須每個控制器都有自己獨立的傳感器。
CAN總線的優點
● 具有實時性強、傳輸距離較遠、抗電磁干擾能力強、成本低等優點;
● 采用雙線串行通信方式,檢錯能力強,可在高噪聲干擾環境中工作;
● 具有優先權和仲裁功能,多個控制模塊通過CAN 控制器掛到CAN-bus 上,形成多主機局部網絡;
● 可根據報文的ID決定接收或屏蔽該報文;
● 可靠的錯誤處理和檢錯機制;
● 發送的信息遭到破壞后,可自動重發;
● 節點在錯誤嚴重的情況下具有自動退出總線的功能;
● 報文不包含源地址或目標地址,僅用標志符來指示功能信息、優先級信息。
CAN總線缺點
1)不一致性
CAN總線中有一個著名的Last-But-One-Bit 錯誤。CAN總線2 OA在信息認證(MessageValidation)中規定: 發送器驗錯的范圍可覆蓋到幀結束,如果發現錯誤,以后就按優先權和狀態的規定重發; 接 器驗錯的范圍覆蓋到幀結束的前一位。因此,如果由于空間干擾、電 源波動等原因,對于幀的倒數第二位,一部分節點A認為無錯,一 部分節點B 認為有錯,即出現了所謂的Byzantine 錯誤。這時,根 EOF 應該是7 個隱性位,節點B 認為這是一種形式錯誤,所以就會啟動錯誤幀,通知發送器重發,同時丟棄收到的幀。而認為設錯的節點A 由于只查到倒數第二位,因此就會接收此幀。如果在發送器例行的下一次發送前B 通知的重發成功,A就會收到重復幀; 如果重發不成功,B 就丟了一幀。在轉向和制動系統中,4 個輪子對命令的不同理解,可能造成性能的下降或其他更嚴重的后果。
2)不可預測性
CAN總線將節點狀態分為ErrorActive、Error Passive 和Bus Off 三種,這三種狀態在一定條件下可以互相轉換。不同狀態中節點的發送有不同的延遲。最高優先權的信息發送延遲有幾種可能: 當節點狀態為ErrorActive 時,若總線空閑,則立即發送; 當節點狀態為ErorActive時,如果其它幀正在發送,則需等正在發送的報文結束后,再過3 位后發送; 當節點狀態為ErrorPassive 時,它有一個出錯重發的要求,若沒有其它幀要發送,等3 位傳送(Intemission)和8 位掛起傳送(Suspend Transmission)后重發; 當節點狀態為Error Passive時,若總線空閑,出錯后等別的信息發送完后再發,等待時間與其它幀的長度有關; 當節點狀態為Bus Off 時,需等狀態恢復到ErrorPassive 或ErrorActive 再發。
當確認某節點的狀態時,還有幾個因素需要考慮: 首先,節點由最高優先權的信息和其他信息共用,因此,其他信息在傳送過程中出現的錯誤也會影響到節點狀態; 其次,進入ErrorPassive 或BusOff 狀態的條件是發送錯誤計數器與/或接收錯誤計數器的值,由于CAN 的原子廣播特點,其它節點的發送錯誤或接收錯誤會開啟一個錯誤幀,從而影響到該節點的接收錯誤計數器的值,進而影響節點狀態。
對于優先權較低的信息來說,發送時間的離散程度更大。在反饋控制系統中,采樣調節周期的大范圍抖動相當于信號延遲后的變化,它有可能使系統性能下降或不穩定。在與安全相關的開環系統中,抖動可能造成動作順序的混亂。
3)信道出錯堵塞
節點有可能受干擾或其它原因暫時或永久失效,出錯的主機會命令CAN 收發器不斷發送消息,即所謂的Babbling ldiot 錯誤。由于該信息的格式等均合法,因此CAN 沒有相應的機制來處理這種情況。根據CAN 的優先權機制,比它優先權低的信息就被暫時或永久堵塞。由于CAN總線存在上述幾種根本的缺陷,因此,在更為嚴格的控制系統中,它將會造成巨大的風險,無法滿足安全、環保、節能的要求。CAN 的事件觸發協議特點限制了ECU 的應用、開發與生產,不僅用過的ECU 難于重用,而且還不利于改善和開發新的ECU。
CAN總線的應用
現在CAN的高性能和可靠性已被認同,并被廣泛地應用于工業自動化、船舶、醫療設備、工業設備等方面,現場總線是當今自動化領域技術發展的熱點之一、被譽為自動化領域的計算機局域網。它的出現為分布式控制系統實現各節點之間實時、可靠的數據通信提供了強有力的技術支持。
CAN總線在工控領域主要使用低速-容錯CAN即ISO11898-3標準,在汽車領域常使用500Kbps的高速CAN。
某進口車型擁有,車身、舒適、多媒體等多個控制網絡,其中車身控制使用CAN網絡,舒適使用LIN網絡,多媒體使用MOST網絡,以CAN網為主網,控制發動機、變速箱、ABS等車身安全模塊,并將轉速、車速、油溫等共享至全車,實現汽車智能化控制,如高速時自動鎖閉車門,安全氣囊彈出時,自動開啟車門等功能。
CAN系統又分為高速和低速,高速CAN系統采用硬線是動力型,速度:500kbps,控制ECU、ABS等;低速CAN是舒適型,速度:125Kbps,主要控制儀表、防盜等。
某醫院現有5臺16T/H XXXX燃氣鍋爐,向洗衣房、制劑室、供應室、生活用水、暖氣等設施提供5kg/cm2的蒸汽,全年耗用天然氣1200萬m3,耗用20萬噸自來水。醫院采用接力式方式供熱,對熱網進行地域性管理,分四大供熱區。其中冬季暖氣的用氣量很大,據此設計了基于CAN現場總線的分布式鍋爐蒸汽熱網智能監控系統。現場應用表明:該樓宇自動化系統具有抗干擾能力強,現場組態容易,網絡化程度高,人機界面友好等特點。
評論
查看更多