CAN總線35週年特別篇 -- CAN總線的前世此生

本文整理翻譯自CAN in Automation(CiA),經過這個帖子你們會對當前市場上各類CAN名詞有個全面系統的認識



        1986年2月,Robert Bosch GmbH在汽車工程師協會(SAE)大會上推出了控制器局域網(CAN)串行總線系統。這是有史以來最成功的網絡協議之一誕生的時刻。現在,歐洲幾乎全部汽車都配備了至少一個CAN網絡。CAN還用於其餘類型的車輛,從火車到輪船,以及工業控制中,CAN是最主要的總線協議之一,甚至多是全球領先的串行總線系統。

從構思到第一個芯片

        在1980年代初期,博世的工程師正在評估現有的串行總線系統,以探討其在汽車中的可能用途。因爲沒有可用的網絡協議可以知足汽車工程師的要求,所以Uwe Kiencke於1983年開始開發新的串行總線系統。

        新的總線協議主要是要增長新的功能 --- 減小線束不是CAN發展背後的驅動力。奔馳的工程師很早就參與了新的串行總線系統的規範制定階段,英特爾做爲潛在的主要半導體供應商也參與了進來。來自德國Braunschweig-Wolfenbüttel的應用科學大學(現爲Ostfalia University of Applied Science)的Wolfhard Lawrenz教授被聘爲顧問,他將新的網絡協議命名爲「Controller Area Network(控制器區域網絡)」。來自卡爾斯魯厄大學的Horst Wettstein教授也提供了學術幫助。

        1986年2月,CAN誕生了:在底特律的SAE大會上,新的總線系統被稱爲「Automotive Serial Controller Area Network(汽車串行控制器局域網)」。Uwe Kiencke,Siegfried Dais和Martin Litschel介紹了多主網絡協議。它基於一種非破壞性仲裁機制,該機制容許總線訪問具備最高優先級的幀而沒有任何延遲。沒有中心控制器。此外,CAN之父(上述人員以及博世員工Wolfgang Borst,Wolfgang Botzenhard,Otto Karl,Helmut Schelling和Jan Unruh)已經實現了幾種錯誤檢測機制。錯誤處理還包括自動斷開故障總線節點,以保持其他節點之間的通訊。傳輸的幀不是由幀發送器或幀接收器的節點地址(幾乎在全部其餘總線系統中)識別的,而是由它們的內容識別的。表示幀有效載荷的標識符,還具備指定幀在網絡段內的優先級。

        隨後,許多介紹該創新通訊協議的演講和出版物,直到1987年中期(比計劃提早兩個月),英特爾才交付了第一款CAN控制器芯片82526。這是CAN協議的第一個硬件實現。在短短四年內,一個想法就變成了現實。此後不久,飛利浦半導體推出了82C200。CAN控制器的這兩個最先的祖先在接受過濾和幀處理方面有很大的不一樣。一方面,與飛利浦選擇的BasicCAN實施相比,英特爾所青睞的FullCAN概念要求所鏈接的微控制器的CPU負載更少。另外一方面,FullCAN設備在能夠接收的幀數方面受到限制。BasicCAN控制器還須要更少的硅。在當今的CAN控制器中,實現了接受過濾和幀處理這兩種概念的混合。這使BasicCAN和FullCAN的誤導性術語過期了。
編程


 
 

標準化和規格

        博世CAN規範(2.0版)已於1990年代初提交國際標準化。在發生了幾場政治糾紛以後,尤爲是涉及到法國一些主要汽車製造商開發的「車載區域網絡」(VAN,Vehicle Area Network),ISO 11898標準於1993年11月發佈。除了CAN協議外,它還標準化了物理層,速率高達1 Mbit / s。同時,ISO 11519-2對經過CAN的低功耗,容錯數據傳輸方式進行了標準化。因爲該標準存在缺陷,所以從未實施。在1995年,ISO 11898標準經過附錄進行了擴展,該附錄描述了使用29位CAN標識符的擴展幀格式。

        不幸的是,全部已發佈的CAN規範和標準化都包含錯誤或不完整。爲避免不兼容的CAN實施方案,Bosch確保全部CAN芯片均符合Bosch CAN參考模型。此外,由Wolfhard Lawrenz教授領導的德國Braunschweig-Wolfenbüttel應用科學大學已經進行了幾年的CAN一致性測試。所使用的測試模式基於ISO 16845一致性測試計劃標準系列。今天,多家測試機構可提供CAN一致性測試服務。

        修訂後的CAN規範已標準化。ISO 11898-1描述了「 CAN數據鏈路層」,ISO 11898-2標準化了「非容錯」 CAN物理層,而ISO 11898-3指定了「容錯CAN物理層」。ISO 11992系列(卡車和拖車接口)和ISO 11783(農業和林業機械)系列指定了基於SAE J1939網絡方法的應用程序配置文件。它們不兼容,由於物理層規範不一樣。

 

CAN時代的先鋒

        儘管CAN最初被開發用於汽車,但最初的應用來自不一樣的市場領域。特別是在北歐,CAN在早期已經很是流行。在芬蘭,電梯製造商Kone 使用了CAN總線。瑞典工程辦公室Kvaser向一些紡織機械製造商(Lindauer Dornier和Sulzer)及其供應商建議將CAN做爲機器內部的通訊協議。在Lars-Berno Fredriksson的領導下,這些公司成立了「 CAN紡織品用戶小組」。到1989年,他們制定了溝通原則,有助於在1990年代初塑造發展環境「 CAN Kingdom」。儘管相對於OSI參考模型,CAN Kingdom不是應用程序層,

       在荷蘭,飛利浦醫療系統決定將CAN用於其X射線機的內部聯網,從而加入了工業CAN用戶。主要由Tom Suters開發的「 Philips消息規範」(PMS)表明了CAN網絡的第一個應用層。來自德國Weingarten應用科學大學的Konrad Etschberger教授也有相同的想法,在他負責的Steinbeis過程自動化轉移中心(STZP)中,他開發了相似的協議。

        儘管第一個標準化的高層協議開始出現,但大多數CAN開拓者仍是採用了總體法。通訊功能,網絡管理和應用程序代碼是一種軟件。即便某些用戶但願採用模塊化的方法,但他們仍有專有解決方案的缺點。加強和維護CAN高層協議的必要努力被低估了 ---今天仍然部分是正確的。

        在1990年代初,是時候成立了一個用戶小組,以推廣CAN協議並促進其在許多應用中的使用。1992年1月,當時的《 VMEbus》雜誌編輯(出版商:Franzis)的Holger Zeltwanger吸引了用戶和製造商一塊兒創建了一箇中立的平臺,用於CAN的技術加強以及串行總線系統的市場營銷。兩個月後,「 CAN in Automation」(CiA)國際用戶和製造商小組正式成立。在早期,CAN通信已經出版。

        僅幾周後發佈的第一份技術出版物涉及物理層:CiA建議僅使用符合ISO 11898的CAN收發器。現在,製造商專用的EIA-485收發器在CAN網絡中很是廣泛,那個時候,並不老是兼容,應該已經徹底消失了。

        CiA的首要任務之一是規範CAN應用層。利用飛利浦醫療系統公司和STZP提供的現有材料,並在CiA其餘成員的幫助下,開發了「 CAN應用程序層」(CAL),也稱爲「綠皮書」。在使用CAN制定規範時,CiA的主要任務之一是組織CAN專家與那些但願在CAN上變得更多知識的專家之間的信息交換。所以,自1994年以來,舉行了國際CAN會議(iCC)。

        LAV(德國農業車輛協會)追求另外一種學術方法。自1980年代後期以來,已經開發了基於CAN的農用車輛總線系統(LBS)。可是在這項工做能夠成功完成以前,國際委員會已決定支持美國的解決方案J1939(ISO 11783)。此應用程序配置文件也基於CAN,由SAE卡車和公共汽車協會的委員會定義。J1939是一種非模塊化方法,很是易於使用,但也很是不靈活。

        還爲卡車開發了CAN的標準化。卡車和拖車之間的網絡標準化爲ISO11992。該協議基於J1939,從2006年起必須在歐洲使用。汽車的趨勢是向OSEK-COM和OSEK-NM,通訊協議和網絡管理邁進。二者均已提交國際標準化。到目前爲止,汽車製造商一直在使用專有軟件解決方案。

 

從理論到實踐

        固然,將CAN內核實現到其微控制器中的半導體供應商主要集中在汽車行業。自1990年代中期以來,英飛凌科技公司(之前爲西門子半導體公司)和摩托羅拉公司(外包爲飛思卡爾,後來被NXP收購)已經向歐洲汽車製造商及其供應商運送了大量CAN控制器。自1990年代末以來,遠東半導體供應商也開始提供CAN控制器。NEC在1994年推出了他們傳奇的CAN芯片72005,但爲時過早-該組件在商業上並不成功。

        自1991年以來,奔馳一直在其汽車中使用CAN。第一步,經過CAN鏈接負責發動機管理的電子控制單元。1995年,寶馬在其7系汽車中使用了帶有五個ECU(電子控制單元)的樹/星拓撲CAN網絡。第二步,跟隨人體電子設備所需的控制單元。實現了兩個物理上分離的CAN網絡,一般經過網關鏈接。其餘汽車製造商也沿用了奔馳的方式,一般在乘用車中實現兩個CAN網絡。現在,他們都在本身的車輛中實現了多個CAN網絡。

        在1990年代初期,美國機械工程公司Cincinnati Milacron的工程師與Allen-Bradley和Honeywell Microswitch共同成立了一家合資公司,以基於CAN的控制和通訊項目。可是,不久以後,重要的項目成員換了工做,合資企業瓦解了。可是Allen-Bradley和Honeywell分別繼續工做。這致使了至少在較低的通訊層中很是類似的兩個高層協議「 DeviceNet」和「智能分佈式系統」(SDS)。1994年初,Allen-Bradley將DeviceNet規範移交給了「開放DeviceNet供應商協會」(ODVA),這促進了DeviceNet的普及。Honeywell未能在SDS上採起相似的方式,這使SDS看起來更像是Honeywell微動的內部解決方案。DeviceNet是專爲工廠自動化而開發的,所以,它自己就是Profibus-DP和Interbus等協議的直接對手。提供現成的即插即用功能,DeviceNet已成爲美國這個特定細分市場中領先的總線系統。

        在歐洲,幾家公司嘗試使用CAL。儘管CAL方法在學術上是正確的,而且能夠在工業應用中使用它,可是每一個用戶都須要設計一個新的配置文件,由於CAL是真正的應用程序層。CAL能夠看做是獨立於應用程序的CAN解決方案必不可少的學術步驟,但它從未在該領域得到普遍承認。

        自1993年以來,在Esprit項目ASPIC的範圍內,由博世領導的歐洲財團一直在開發CANopen的原型。它是用於生產單元內部網絡的CAL配置文件。在學術方面,來自德國羅伊特林根應用科學大學的Gerhard Gruhler教授和來自英國紐卡斯爾大學的Mohammed Farsi博士參加了有史以來最成功的Esprit活動之一。項目完成後,CANopen規範移交給了CiA,以進行進一步的開發和維護。1995年,發佈了通過徹底修訂的CANopen通訊配置文件,並在短短五年內成爲歐洲最重要的標準化嵌入式網絡。

        第一個CANopen網絡用於內部機器通訊,尤爲是驅動器。CANopen提供了很高的靈活性和可配置性。高層協議已用於多個很是不一樣的應用領域(工業自動化,航海電子,軍用車輛等),同時其國際標準爲EN 50325-4(2003)。CANopen尤爲在歐洲使用。意大利的注塑機,德國的木鋸和機器,英國的捲菸機,法國的起重機,奧地利的搬運機以及瑞士的鐘表製造機只是工業自動化和機械製造中的幾個例子。在美國,推薦將CANopen用於叉車並將其用於信件分揀機中。

        CANopen不只定義了應用程序層和通訊配置文件,並且還定義了可編程系統以及不一樣設備,接口和應用程序配置文件的框架。這是整個行業(例如印刷機,海事應用,醫療系統)決定在1990年代後期使用CANopen的重要緣由。

        藉助DeviceNet和CANopen,可使用兩個標準化的(IEC 62026-3或EN 50325-4 / 5)應用層,以知足不一樣的工業自動化市場的需求。DeviceNet針對工廠自動化進行了優化,而CANopen特別適合於各類機器控制中的嵌入式網絡。這使得專有的應用程序層已過期。定義特定於應用程序的應用程序層的必要性已成爲歷史(也許,對於某些專用的大容量嵌入式系統而言除外)。

 

時間觸發的通信

        在2000年初,一個由數家公司組成的ISO特別工做組爲CAN幀的時間觸發傳輸定義了一個協議。Bernd Mueller博士,Thomas Fuehrer博士和其餘博世員工,以及半導體行業和學術研究專家共同定義了協議「 CAN上的時間觸發通訊」(TTCAN,Time-triggered communication on CAN)。

        這種CAN擴展能夠實現時間等量的幀傳輸和經過CAN的閉環控制的實現,並且還能夠在x-by-wire的應用中使用CAN。因爲CAN協議未更改,所以能夠經過同一物理總線系統傳輸時間觸發幀和事件觸發幀。可是,汽車行業還沒有采用TTCAN。並且,工業用戶不多使用時間觸發的協議擴展。他們改用CANopen中指定的同步傳輸功能,能夠說是一種軟時間觸發方法。

 

當局批准

        在90年代後期,發明了幾種基於CAN的專有安全協議。倖存下來的是德國Pilz生產的Safetybus p。在1999年,CiA開始開發CANopen-Safety協議,該協議已得到德國TüV的批准。通過標準化機構的大量參與以後,此CANopen擴展(CiA 304)在EN 50325-5(2009)中進行了國際標準化。

        DeviceNet使用CIP安全協議擴展。全球領先的船級社之一的德國勞埃德船級社(Germanischer Lloyd)已批准了適用於海事應用的CANopen框架(CiA 307)。除其餘外,該框架規定了從默認的CANopen網絡到冗餘總線系統的自動切換。現在,這些功能已在CiA 302系列其餘CANopen應用層功能中獲得了歸納和指定。

CAN FD開發

        2011年初,通用汽車和博世開始着手開發一些有關提升吞吐量的CAN協議。當將愈來愈多的軟件包下載到電子控制單元(ECU)時,汽車行業尤爲受苦。高性能通訊系統必須縮短這項耗時的任務。經過引入第二個比特率來提升CAN傳輸速度的想法並不新鮮。自2000年初以來,已有幾位學者發表了研究方法。可是,沒有一個研究者可以說服汽車製造商。博世與其餘CAN專家合做,預先開發了CAN FD規範,該規範於2012年在德國哈姆巴赫城堡舉行的第13屆國際CAN會議上正式推出。

        在ISO的標準化過程當中,發現了所提出的錯誤檢測機制中的一些學術缺陷。這須要對CAN FD協議進行審查,並引入其餘防禦措施(例如,填充位計數器)。這就是爲何存在非ISO CAN FD協議的緣由,該協議與ISO 11898-1中標準化的ISO CAN FD協議不兼容。

        戴姆勒公司的Mark Schreiner博士爲設計CAN FD網絡提供了不少提示和知識。他的許多想法都包含在CAN FD節點的CiA 601系列以及系統設計建議和規範中。

 

CAN的將來是光明的

        隨着CAN FD協議的引入,CAN技術的壽命得以延長。汽車行業已經開始爲下一代車載網絡採用CAN FD協議。能夠預期,全部將來的應用程序都將使用CAN FD協議。無論它們是否須要更高的帶寬都不要緊。您仍然能夠將CAN FD與單個位定時設置一塊兒使用。有效負載長度不管如何均可以在0到64字節之間配置。

        對於那些須要更多帶寬並須要混合拓撲的用戶,CiA已開發了所謂的SIC(信號改善電路)收發器規範(CiA 601-4)。最初的想法來自日本Tier-1供應商Denso。

        CiA還開發了基於CAN FD下層的CANopen FD協議。特別是對於工業運動控制應用,很是適合更高的傳輸速率和更長的有效載荷(最大64字節)。CiA還參與了使用SAE J1939系列中指定的現有參數組的商用車,基於CAN FD的應用層的開發。


第三代CAN

        2018年末,CiA開始開發第三代基於CAN的數據鏈路層協議CAN XL。它是應大衆汽車的要求啓動的。Carsten Schanze和Alexander Mueller提供了許多最初的想法。

        2020年因爲疫情,取消了國際CAN會議的執行,今年的國際CAN會議改成線上舉行,主題是CAN XL。CAN XL速度提高至10Mbps。



        同時保持CAN協議的優點以及與CAN和CAN FD的兼容性。下面是CAN FD和CAN XL的混合網絡:

補充:
(1)CiA CAN XL規範於2018年12月開始,目標是在2019年末以前擁有OSI第2層規範(稱爲CAN XL協議),第二步,將開始進行ISO標準化。
(2)經典CAN是1Mbps,CAN FD最高2Mbps,CAN FD-SiC是5-8Mbps,CAN XL是10Mbps。數組

相關文章
相關標籤/搜索