CAN總線的特點/幀類型/應用中的注意事項

2021-01-08 電子發燒友
CAN總線的特點/幀類型/應用中的注意事項

TopSemic嵌入式 發表於 2021-01-05 10:37:39

1980年,Bosch的工程師開始研究汽車上高速串行通信的問題,並在1986年發布了CAN(Controller Area Network)總線。CAN以其多主,高速(最高1Mbps),抗幹擾的特性被廣泛應用汽車及各種工業環境。在此我們主要介紹一下CAN總線的特點,幀類型,以及應用中的注意事項。

1.CAN總線特點

1.1多主控制

跟我們常用的RS485隻有一個主機,從機只能等待主機的輪詢不同,在CAN總線中,當任意一個節點監測到總線空閒時,就可以立即啟動信息的發送,也就是每一個節點都可以當主機。當然,這馬上會引起我們的擔心。如同一個家庭每個人都當家做主,那還不亂了套嗎?不急,我們來看一下。這個問題是如何被巧妙地解決的。

物理層,CAN採用差分總線。單片機引腳的邏輯電平0,被CAN收發器(PHY)轉換為顯性電平(Dominant),邏輯電平1被轉換為隱性電平(Reccesive)。總線上執行的是「線與」邏輯,只要有一個節點輸出顯性電平,那麼總線上就是顯性電平。

仲裁(Arbitration),CAN的發送總是以SOF(Start Of Frame)起始,緊跟器後是ID。在發送ID的同時,節點監聽總線上的顯隱狀態,當監聽到的狀態與自己發送的不一致時,此節點將停止發送,進入只收模式。如下圖所示,每一幀消息所具有的ID決定了此消息的優先級,發送最高優先級消息的節點獲得總線最後的控制權,得以最終完整的發送自己的消息。

接收濾波(Filter)。一個掛在總線上的節點可以監聽到所有的消息(Message),但通常我們只對其中某些消息感興趣,這時怎麼辦呢?CAN模塊一般會提供接收濾波功能(Filter)。通過設置濾波寄存器,我們可以達到接收消息時,比對ID所有位,也可以只比對ID某些位,從而達到只接收ID與自己完全相同的消息,或接收ID與自己部分相同的消息的目的。利用這種機制可以給節點編組,給組成員群發消息。

1.2速度快,距離遠

CAN總線可以達到1Mbps的速率。總線速度隨著傳輸距離增加而下降,下面是一些典型速率。在一個數據幀內可以傳送8個字節的數據。

1000kbps 40m

500kbps 130m

100kbps 620m

50kbps 1300m

5kbps 10000m

2012年,Bosch又發布了CANFD(CAN with Flexible Data-rate),最高速率可以達到10Mbps,在一個數據幀內可以傳送64位元組的數據。2015 年 ,國際標準化組織(ISO)正式發布支持CAN FD的11898-1協議。

2.幀類型

CAN協議很簡潔,只包含4種幀類型。

數據幀(Data Frame),用來把數據從發送節點傳送至接收節點。

遠程幀(Remote Frame),一個節點用來請求其它節點發送數據。一個節點發送遠程幀時會把Arbitration Filed最後一位RTR(置1),具有相同ID的節點會把數據發送到總線上。

錯誤幀(Error Frame),當一個節點檢測到錯誤時會向總線發出錯誤幀,以通知其它節點。

過載幀(Overload Frame),用來在數據幀或遠程幀之間插入延時。

幀間隔(Interframe Space),不是一種幀類型。它是幀之間的間隙,由多個連續的隱性電平構成。

在編程時我們直接用到的就是數據幀和遠程幀。軟體編程比較簡單,需要注意的是一般需要設置寄存器中的初始化請求位(Initialization request),使模塊進入初始化狀態,才能開始進行CAN模塊的各種配置,初始化完成後退出初始化狀態,進入運行狀態。

3.CAN總線應用注意事項

3.1終端匹配電阻

在CAN總線的兩端要用120歐的電阻端接進行阻抗匹配,因為CAN總線長度一般會比較長,傳輸的信號速度快,特別是信號的邊沿跳變部分頻率很高。

傳輸線效應 平常我們總是認為電信號從一個引腳發出,通過導線,瞬間就會到達接收引腳,導線上的電壓處處是相等的。但是當信號的頻率很高,或者導線特別長,總之導線的長度接近傳導信號波長的1/10後,我們就需要轉變一下我們的觀念,此時信號的傳輸主要受電纜特性阻抗的影響。

電纜特性阻抗 = 信號電場強度(伏特/米) / 磁場強度(安培/米)

電纜的特性阻抗與電纜的材質,粗細,線纜之間的距離有關,而與電纜的長度無關。電纜的特性阻抗還和信號的頻率有關,但是當頻率增加到一定數值時,特性阻抗不再變化。常用的帶屏蔽雙絞線的特性阻抗是120歐。

信號在阻抗不連續處會產生反射,所以要保持電纜阻抗的連續性,而且線纜終點需要用等於電纜特性阻抗的電阻進行端接,以消耗掉傳輸至端點的信號,否則信號會反射回去和後續發出的信號產生疊加,引起錯誤。

頻率與波長對應關係

150K 2000m

500K 600m

1M 300m

10M 30m

端接電阻的另一個作用是可以使CAN總線從顯性狀態快速回到隱性狀態。因為在顯性狀態下,兩條線纜CAN_H, CAN_L之間的寄生電容會被充電,如果沒有一個放電迴路,總線不能快速回到隱性狀態。

3.2EMC防護

CAN常常工作在強幹擾的工業環境中,採用屏蔽雙絞線會極大的提升EMC防護性能。同時如果數字電路部分和CAN收發器之間用高速光耦隔離開,並且對兩部分採用完全隔離的電源供電,那麼可以把總線上的幹擾最大限度地隔離在外部。

需要注意的是屏蔽層只能在一點接入大地。如果在多個點接地,那麼通過大地會形成電流環路,反而會引入噪聲。

3.3時鐘容差(Oscillator Tolerance)

總線的速度越高,需要的時鐘精度越高。一般在低於125kpbs時可以用低成本的陶瓷震蕩器(ceramic resonators),更高的速度下建議使用晶體振蕩器(Quartz,or Crystal Oscilators)。

3.4CAN模塊死機現象

CAN模塊內部有監控電路,總線上的異常,如短路等,會引起錯誤計數器增長。TEC(Transmit Error Counter), REC(Receive Error Counter)。當發送錯誤TEC計數超過255後,CAN模塊進入BUS-OFF模式,此節點不能發送也不能接收。這樣做的好處是可以避免由個別模塊的問題引起整個總線不能工作。

晶片一般會提供兩種恢復機制:自動和手動模式。比如在STM32單片機中,如果ABOM位設置為1,CAN模塊將不斷嘗試自動恢復。如果ABOM=0,則需要程序進入CAN初始化模式,重新配置後,再退出初始化進入正常工作模式。

由於CAN總線非常可靠,不易出錯,所以在測試階段建議人為製造一些總線錯誤,比如短路,斷路,強幹擾之類,看程序是否能從異常狀態下恢復。
責任編輯人:CC 

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 什麼是CAN總線,CAN總線的優勢和特點
    已形成國際標準的現場總線  另外,與其它現場總線比較而言,CAN總線是具有通信速率高、容易實現、且性價比高等諸多特點的一種已形成國際標準的現場總線。這些也是目前 CAN總線應用於眾多領域,具有強勁的市場競爭力的重要原因。最有前途的現場總線之一  CAN 即控制器區域網路,屬於工業現場總線的範疇。
  • CAN總線錯誤幀長得啥樣?怎麼產生?
    can總線因為具有通信可靠性高,成本低,簡單實用等優點得到了越來越多的應用,所以充電機內部模塊間通信採用基於can總線的軟體均流方案;電動汽車充電機需要和蓄電池管理系統(bms)之間通信,同時由於can總線還具有較高的網絡安全性等特點,並且作為國際標準已逐漸發展成汽車電子系統的主流總線,因此將採用can總線作為充電機與電池管理系統之間的通信方式;而且can總線的通信距離較遠(10km),同時可靠性較高
  • can總線基本概念
    在汽車產業中,出於對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。由於這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。為適應「減少線束的數量」、「通過多個LAN,進行大量數據的高速通信」的需要,1986 年德國電氣商博世公司開發出面向汽車的CAN 通信協議。
  • 單片機外圍模塊漫談之三,CAN總線
    1980年,Bosch的工程師開始研究汽車上高速串行通信的問題,並在1986年發布了CAN(Controller Area Network)總線。CAN以其多主,高速(最高1Mbps),抗幹擾的特性被廣泛應用汽車及各種工業環境。在此我們主要介紹一下CAN總線的特點,幀類型,以及應用中的注意事項。1.
  • 什麼是LIN總線?高速CAN、容錯CAN、LIN總線有什麼區別?
    PS:從機應答幀是一個完整的幀,與(主節點)幀結構中的「應答」不同!3.1.4.數據段數據段可以包含1-8個字節,其中包含有兩種數據類型,信號(singal)和診斷消息(diagnostic messages)。信號由信號攜帶幀傳遞,診斷消息由診斷幀傳遞。
  • CAN總線原理簡介
    接下來就讓小編來告訴你答案~~~本文引用地址:http://www.eepw.com.cn/article/269402.htm  CAN(Controller Area Network),中文名稱為控制器區域網路,通常稱為CAN bus,即CAN總線。是由德國BOSCH(博世)公司研究開發的,現已成為ISO國際標準化的串行通信協議,是目前在國際上應用最廣泛的開放式現場總線之一。
  • Profibus現場總線的特點優勢及在工業控制系統中應用
    Profibus現場總線的特點優勢及在工業控制系統中應用 劉美俊 發表於 2020-03-17 10:46:35 1 引言 現場總線是信息技術、網絡技術的發展在控制領域的體現
  • 高速CAN、容錯CAN、LIN總線的區別是什麼
    總線上的數據是以廣播形式發出,任何節點均可以收到,但並非對每個節點有用(與CAN相同)。具體到發布與接聽是由哪個節點進行完成這個取決於應用層的軟體配置,一般情況下,對於一個幀中的應答,總線上只存在一個發布節點,否則就會出現錯誤。事件觸發幀例外,可能出現0,1,多個發布節點。 3.1.5.效驗和段
  • CAN總線在變電站高壓開關櫃在線檢測系統中的應用
    由於電子信息技術的進步,現場總線技術已經在高壓開關櫃功能智能化系統中得到了廣泛應用,使高壓開關櫃的在線檢測系統形成了一個分布式的監測系統,並使整個系統較傳統的集中監測系統性能增強,功能更為完善。1.CAN總線技術及其特點在傳統的變電站監測系統中,一般採用BITBUS
  • CAN總線協議詳解
    CAN總線協議只定義了物理層和數據鏈路層,要將CAN總線應用於實際的工程項目和產品開發中必須制定上層應用協議。目前汽車上應用的協議有:ISO15675(傳輸層協議)、ISO14229(應用層協議)等。CAN總線的特點1、 多主控制方式。在總線空閒時,所有單元都可往總線上發送消息(多主控制)。
  • CAN總線在汽車行駛記錄儀中的應用
    1、CAN總線特點  控制器區域網(Controller Area Metwork,CAN)總線是一種多主機局部網。CAN總線規範已被國際標準化組織(ISO)制定為國際標準。C-AN總線屬於總線式串行通信網絡,由 於採用了許多新技術和獨特設計,因而具有以下特點:1)總線以多主方式工作,通信方式靈活,且不用佔地址等節點信息;2)CAN總線網絡上的節點信息分不 同的優先級,可滿足不同的實時要求;3)採用非破壞性總線仲裁技術,在網絡負載很重的情況下也不會出現網絡癱瘓的情況;4)只需通過報文濾波即可實現點對 點、一點對多點及全局廣播等幾種方式傳送接收數據,無需專門的「調度」;5
  • can總線通訊協議
    CAN在汽車上的應用,具有很多行業標準或者是國際標準,比如國際標準化組織(ISO)的ISO11992、ISO11783以及汽車工程協會(Societyof Automotive Engigeers)的SAE J1939。CAN總線已經作為汽車的一種標準設備列入汽車的整車設計中。CAN總線簡介CAN通信協議規定了4種不同的幀格式,即數據幀、遠程幀、錯誤幀和超載幀。
  • CAN總線接口電路原理圖和注意事項
    CAN 總線是一種有效支持分布式控制和實時控制的串行通信網絡,以其高性能和高可靠性在自動控制領域得到了廣泛的應用。為提高系統的驅動能力,增大通信距離,實際應用中多採用Philips公司的82C250作為CAN控制器與物理總線間的接口,即CAN收發器,以增強對總線的差動發送能力和對CAN控制器的差動接收能力。
  • CAN總線錯誤檢測機制
    CAN總線是ISO國際標準化的串行通信協議。在汽車產業中,出於對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。由於這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。
  • 多路UART總線與CAN總線通訊系統設計
    為了實現4路UART總線與CAN總線之間的相互轉換過程,採用微控制器AT89S51來控制通訊數據轉換,通過硬體電路實驗和軟體調試算法,得到了4路串行總線與CAN總線之間的相互透明轉換過程。該電路系統大大方便了具有UART接口的設備進行遠距離、多節點傳輸,增強了系統的通訊可靠性。
  • CAN總線教程
    所以出現了那些幀,那些幀中的場,那些場中的位,云云。在總線上通常邏輯1 表示隱性。而0 表示顯性。這些1 啊,0 啊,就可以利用起來為我們傳數據了。利用這種電壓差,我們可以接收信號。CAN 的報文格式有兩種,不同之處其實就是識別符長度不同,具有11 位識別符的幀稱為標準幀,而還有29 位識別符的幀為擴展幀,CAN 報文有以下4 個不同的幀類型。
  • 探析CAN總線在駕駛系統中的重要作用
    CAN總線目前已廣泛應用在汽車電子領域,在整個自動駕駛駕駛系統中也有著十分重要的作用,自動駕駛汽車上的某些傳感器(如雷達、Mobileye)的信號傳遞也是通過CAN實現的。本文就帶大家了解一下CAN總線。
  • 工業級1-2路CAN總線的功能特點及應用
    打開APP 工業級1-2路CAN總線的功能特點及應用 佚名 發表於 2020-12-13 08:59:24 本CAN光纖貓能實現CAN總線信號轉換為光信號在光纖上傳輸,起到延長了CAN總線的通信距離的作用,同時由於採用光纖通信,解決了電磁幹擾、地環幹擾和雷電破壞的難題,大大提高了數據通訊的可靠性、安全性和保密性,可廣泛用於各種工業控制、過程控制和交通控制等場合,特別適合銀行、電力及對電磁幹擾環境有特殊要求的部門和系統。
  • 神馬是CAN總線?CAN總線抗幹擾6要素是什麼?
    什麼是CAN總線?   CAN 是Controller Area Network 的縮寫(以下稱為CAN),是ISO國際標準化的串行通信協議。在汽車產業中,出於對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。由於這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。
  • 汽車CAN總線的開發與測試系列-開篇
    作者根據自己的工作經驗,準備寫一個關於汽車CAN總線的系列文章。該系列文章將CAN總線在汽車電子領域的應用做一個簡單的梳理,內容包括測試和開發兩個主要方面。測試方面,主要講解關於汽車CAN總線的測試項目、標準協議、測試原理和評判依據,分享一些測試過程中開發的工具,介紹下CANoe的使用和CAPL腳本;開發方面,主要講解在單片機(以STM32F407為主)上進行CAN硬體相關的配置和報文收發、Busoff相關的處理。本系列文章,從底層硬體到CAN協議的應用,內容不少,希望自己能堅持下來,為促進國家汽車行業的發展盡一份綿薄之力吧。