返回 自學工業控制網絡之路html
1991年3月,發佈了CAN技術貴幹v2.0,包含了A、B兩部分。CAN2.0A給出報文標準格式,CAN2.0B給出了標準和擴展的兩種格式。
1993年11月,國際標準ISO11898(高速應用)和ISO11519(低速應用)。數組
(1)它是一種多主總線,即每一個節點機都可成爲主機,且節點機之間也可進行通訊。安全
(2)通訊介質能夠是雙絞線、同軸電纜或光導纖維,通訊速率可達1Mb/s(此時距離最長40m)。網絡
(3)CAN總線通訊接口中集成了can協議的物理層和數據鏈路層功能,可完成對通訊數據的成幀處理,包括位填充、數據塊編碼、循環冗餘校驗、優先級判別等項工做。post
(4)CAN協議的一個最大特色是廢除了傳統的站地址編碼,雨代之以對通訊數據塊進行編碼。採用這種方法的優勢是可以使網絡內的節點個數在理論上不受限制,數據塊的標識碼可由11位或29位二進制數組成,所以能夠定義211或229個不一樣的數據塊,這種數據塊編碼方式,還可以使不一樣的節點同時接收到相同的數據,這一點在分步式控制中很是重要。性能
(5)短幀結構。數據段長度最多爲8個字節,可知足一般工業領域中控制命令、工做狀態及測試數據的通常要求。同時,8個字節不會佔用總線時間過長,從而倮證了通訊的實時性。測試
(6)CAN協議採用crc檢驗並可提供相應的錯誤處理功能,保證了數據通訊的可靠性。can總線所具備的卓越性能、極高的可靠性和獨特設計,特別適合工業設各測控單元互連。所以備受工業界的重視,並已公認爲最有前途的現場總線之一。編碼
(7)採用非破壞性位仲裁總線結構機制,當兩個節點同時向網絡上傳送信息時,優先級低的節點主動中止數據發送,而優先級高的節點可不受影響地繼續傳送數據。spa
(8)節點數最多可達110個。設計
(9)CAN總線不能用於防爆區。
(10)節點在錯誤嚴重的狀況下,具備自動關閉總線的功能,切斷它與總線的聯繫,以使總線上的其餘操做不受影響。
CAN總線以廣播的方式從一個節點向另外一個節點發送數據,當一個節點發送數據時,該節點的CPU把將要發送的數據和標識符發送給本節點的CAN芯片,並使其進入準備狀態;一旦該CAN芯片收到總線分配,就變爲發送報文狀態,該CAN芯片將要發送的數據組成規定的報文格式發出。此時,網絡中其餘的節點都處於接收狀態,全部節點都要先對其進行接收,經過檢測來判斷該報文是不是發給本身的。
因爲CAN總線是面向內容的編址方案,所以容易構建控制系統對其靈活地進行配置,使其能夠在不修改軟硬件的狀況下向CAN總線中加入新節點。
其中CAN核心模塊根據CAN總線協議控制數據幀的發送和接收;
接口管理邏輯模塊提供SJA1000與主微處理器或其它設備的鏈接,主微處理器能夠經過數據/地址複用總線和讀寫控制邏輯訪問SJA1000的全部寄存器;
發送緩衝區能夠存儲一個完整的標準或擴展的報文,當主微處理器要求SJA1000發送報文時,接口管理邏輯操縱CAN核心模塊將發送緩衝區中的報文發送到CAN總線上;
當接收一個報文時,CAN核心模塊首先將總線上的串行位流數據轉換位並行數據,而後交給接收過慮模塊進行識別,決定該報文是否爲主微處理器所要求的報文類別,全部接收的報文能夠存放在接收先進先出隊列,根據不一樣的工做模式和數據長度,該隊列能夠存放最多32個報文,而後用戶能夠靈活地對報文分爲不一樣地優先級和中斷處理服務。
CAN分爲物理層和數據鏈路層。
(1)物理層
規定了節點的所有電氣特性,信號如何發送,於是涉及位定時、位編碼和同步的描述。
(2)數據鏈路層
數據鏈路層分兩個子層,邏輯鏈路控制子層LLC和媒體訪問控制子層MAC。
● 具備實時性強、傳輸距離較遠、抗電磁干擾能力強、成本低等優勢;
● 採用雙線串行通訊方式,檢錯能力強,可在高噪聲干擾環境中工做;
● 具備優先權和仲裁功能,多個控制模塊經過CAN 控制器掛到CAN-bus 上,造成多主機局部網絡;
● 可根據報文的ID決定接收或屏蔽該報文;
● 可靠的錯誤處理和檢錯機制;
● 發送的信息遭到破壞後,可自動重發;
● 節點在錯誤嚴重的狀況下具備自動退出總線的功能;
● 報文不包含源地址或目標地址,僅用標誌符來指示功能信息、優先級信息。
(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。