CAN 总线 之一 总线拓扑、物理电平、发展史 详解
簡介
??CAN 是 Controller Area Network 的縮寫,即 控制器局域網絡。通常稱為 CAN BUS,即 CAN 總線。可以歸屬于工業現場總線的范疇,是目前國際上應用最為廣泛的開放式現場總線之一。CAN是一個用于連接電子控制單元(ECU)的多主機串行總線標準。
??CAN 建立在基于信息導向傳輸協定的廣播機制(Broadcast Communication Mechanism)上,屬于現場總線的范疇,它是一種有效支持分布式控制或實時控制的串行通信網絡。是由以研發和生產汽車電子產品著稱的德國 BOSCH 公司為了解決當時汽車控制系統的需求而開發的。下圖顯示了一個典型的 CAN 在汽車網絡中的應用
總線結構
??CAN 總線是一種廣播類型的總線。 這意味著所有節點都可以“聽到”所有傳輸。 無法僅向特定節點發送消息;所有節點都會不可避免地接收所有流量。 但是,CAN 硬件提供本地過濾,因此每個節點只能對有趣的消息做出反應。CAN網絡上需要至少兩個節點才可進行通信。
??ISO 國際標準 ISO 11898-2 和 ISO 11898-3 分別規定了兩種 CAN 總線結構(在 BOSCH CAN2.0 規范中,并沒有關于總線拓撲結構的說明)。其中:
- ISO 11898-2 定義了通信速率為 125 kbps~1 Mbps 的高速 CAN 通信標準,屬于閉環總線,傳輸速率可達1Mbps,總線長度 ≤ 40米。
- ISO 11898-3 定義了通信速率為 10~125 kbps 的低速 CAN 通信標準,屬于開環總線,傳輸速率為 40kbps 時,總線長度可達1000米。
它使用線性主線,星形主線或者連接到一個線性主線上的多星結構主線 。上圖僅僅是一種最簡化的結構。實際如下:
物理電平
??在 CAN總 線上,利用 CAN_H 和 CAN_L 兩根線上的電位差來表示 CAN 信號。CAN 總線上的電位差分為 顯性電平(Dominant Voltage) 和 隱性電平(Recessive Voltage) 。其中顯性電平為邏輯 0,隱性電平為邏輯 1。模塊以線與的方式連接到總線:如果只有一個節點將總線驅動到邏輯0,則整個總線處于該狀態,而不管發送邏輯1的節點數量。
- 高速 CAN 總線在傳輸顯性(0)信號時,會將 CAN_H 端抬向 5V 高電平,將 CAN_L 拉向 0V 低電平。當傳輸隱性(1)信號時,并不會驅動 CAN_H 或者 CAN_L 端。 顯性信號 CAN_H 和 CAN_L 兩端差分標稱電壓為 2V。 終端電阻在沒有驅動時,將差分標稱電壓降回 0V。顯性信號(0)的共模電壓需要在 1.5V 到 3.5V 之間。隱性信號(1)的共模電壓需要在 +/-12V。
- 低速/容錯CAN信號在傳輸顯性信號(0)時,驅動CANH端抬向5V,將CANL端降向0V。在傳輸隱性信號(1)時并不驅動CAN 總線的任何一端。在電源電壓Vcc為5V時,顯性信號差分電壓需要大于2.3V,隱性信號的差分電壓需要小于0.6V。CAN總線兩端未被驅動時,終端電阻使CANL端回歸到RTH電壓(當電源電壓Vcc為5V時,RTH電壓至少為Vcc-0.3V=4.7V),同時使CANH端回歸至RTL電壓(RTL電壓最大為0.3V)。兩根線需要能夠承受-27V至40V的電壓而不被損壞。
??在高速和低速CAN中,從隱性信號向顯性信號過渡的速度更快,因為此時CAN線纜被主動積極地驅動。顯性向隱性的過渡速度主要取決于CAN網絡的長度和導線的電容。
??CAN總線采用不歸零碼位填充技術(NRZ),發送器只要檢測到位流里有5個連續相同值的位,便自動在位流里插入補充位。
通信幀
獨立文章說明!
歷史
??在 CAN 總線出現以前,汽車 ECU 依靠越來越復雜的點對點布線。上世紀 80 年代初,BOSCH 的工程師們對現有的串行總線系統進行了評估,以確定它們在汽車上的可能的用途。由于現有的網絡協議都不能滿足汽車工程師的要求,Uwe Kiencke 于 1983 年開始開發新的串行總線系統。當時聘請的顧問之一是來自于德國 Braunschweig-Wolfenbüttel 的 Applied Science 大學的 Wolfhard Lawrenz 教授。Wolfhard Lawrenz 教授給出了新網絡方案的名字 “Controller Area Network”,簡稱 CAN。來自 Karlsruhe 大學的教授 Horst Wettstein 博士也提供了理論支持。
-
1983年:BOSCH 公司內部啟動了一個項目,以研究一個車內網絡。
-
1986 年 2 月:在密歇根州底特律舉辦的汽車工程師協會(SAE)會議上,Bosch 公司公布了 CAN 總線協議作為汽車電子解決方案。
-
1987 年:由英特爾和飛利浦生產的第一批 CAN 控制器芯片上市。英特爾首先發布了 82526(手冊見附錄),這是第一款 CAN 總線的硬件實現。不久后飛利浦發布了 82C200(手冊見附錄)。后來,英特爾還發布了 82527(手冊見附錄).
(1)1991年發布的梅賽德斯-奔馳 W140 是第一款采用基于CAN 的多路布線系統的量產車。
(2)2006 年飛利浦將半導體公司恩智浦獨立出去了,現在說到半導體相關的業務都來自于恩智浦。 -
1991年:Bosch 公司發布了 CAN2.0。該規范由 A 和 B 兩部分組成。A 部分用于標準格式,帶有 11 位標識符;B 部分用于帶有 29 位標識符的擴展格式。使用 11 位標識符的 CAN 設備通常稱為 CAN 2.0A,使用 29 位標識符的 CAN 設備通常稱為 CAN 2.0B。
-
1992 年:CAN in Automation(CiA)協會成立。同年,CiA 發布了 CAN Application Layer (CAL) 協議
-
1993 年 11 月:在1990 年早些時候,Bosch CAN 規范(CAN 2.0 版)被提交給國際標準化組織。CAN 總線被列入國際標準,發布了 ISO 11898 和 ISO 11519。
- ISO 11898 是通信速度為 5kbps-1Mbps的 CAN 高速通信標準。高速CAN網絡在每個網絡端點端接一個120歐姆的電阻。
- ISO 11519 是通信速度為 125kbps以下的 CAN 低速通信標準,也就是容錯CAN(LSFT CAN)。提供從5 Kbit/s到125 Kbits/s的波特率。該標準允許在CAN總線連線失敗時CAN總線通信得以繼續進行。
由于終端的類型不同,因此高速和低速/容錯CAN設備不能在同一個網絡中使用。
-
1994 年:CiA 組織了 第一屆國際 CAN 會議(iCC)。同年,美國汽車工程師協會以 CAN 為基礎制定了 SAEJ1939 標準,用于卡車和巴士控制和通信網絡。
-
1995 年:ISO 11898 修正案(擴展框架格式)發布。同年,CiA 出版 CiA 301 CANopen 協議
-
2003 年:ISO 將原先的 ISO 11898 CAN標準的數據鏈路和高速物理層的標準分離為 ISO 11898-1 和 ISO 11898-2 兩部分
-
2006 年:ISO 11898-3(低功耗,低速物理層)發布
-
2007 年:ISO 11898-5(低功耗,高速物理層)發布
-
2012 年:Bosch 公司發布了 CAN FD 1.0
-
2013 年:ISO 11898-6(具有選擇性喚醒功能的物理層)發布
-
2015 年:ISO 11898-1(經典CAN和CAN FD)評審稿發布
-
今天:幾乎每一輛汽車都有 CAN 總線系統,它廣泛應用于卡車、公共汽車、工業車輛、船舶、飛機和工業自動化。
特點
參考
附件
總結
以上是生活随笔為你收集整理的CAN 总线 之一 总线拓扑、物理电平、发展史 详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 排序算法 之四 分类、时间/空间复杂度、
- 下一篇: CAN 总线 之六 BOSCH CAN