0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-24 13:54 ? 次閱讀

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

1.CAN總線特點

1.1多主控制

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

物理層,CAN采用差分總線。單片機引腳的邏輯電平0,被CAN收發(fā)器(PHY)轉換為顯性電平(Dominant),邏輯電平1被轉換為隱性電平(Reccesive)。總線上執(zhí)行的是“線與”邏輯,只要有一個節(jié)點輸出顯性電平,那么總線上就是顯性電平。

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

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

1.2速度快,距離遠

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

1000kbps 40m

500kbps 130m

100kbps 620m

50kbps 1300m

5kbps 10000m

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

2.幀類型

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

數(shù)據(jù)幀(Data Frame),用來把數(shù)據(jù)從發(fā)送節(jié)點傳送至接收節(jié)點。

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

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

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

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

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

3.CAN總線應用注意事項

3.1終端匹配電阻

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

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

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

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

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

頻率與波長對應關系

150K 2000m

500K 600m

1M 300m

10M 30m

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

3.2EMC防護

CAN常常工作在強干擾的工業(yè)環(huán)境中,采用屏蔽雙絞線會極大的提升EMC防護性能。同時如果數(shù)字電路部分和CAN收發(fā)器之間用高速光耦隔離開,并且對兩部分采用完全隔離的電源供電,那么可以把總線上的干擾最大限度地隔離在外部。

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

3.3時鐘容差(Oscillator Tolerance)

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

3.4CAN模塊死機現(xiàn)象

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

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

由于CAN總線非??煽?,不易出錯,所以在測試階段建議人為制造一些總線錯誤,比如短路,斷路,強干擾之類,看程序是否能從異常狀態(tài)下恢復。

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6026

    文章

    44460

    瀏覽量

    631161
  • CAN總線
    +關注

    關注

    145

    文章

    1908

    瀏覽量

    130514
收藏 人收藏

    評論

    相關推薦

    can標準和擴展能否共存

    CAN(Controller Area Network)是一種用于汽車和工業(yè)自動化領域的現(xiàn)場總線通信協(xié)議。CAN協(xié)議具有多種格式,包括標準
    的頭像 發(fā)表于 07-24 15:24 ?1245次閱讀

    can網絡數(shù)據(jù)特點

    特點,在分布式系統(tǒng)得到了廣泛應用。 數(shù)據(jù)的重要性 :數(shù)據(jù)CAN網絡中用于數(shù)據(jù)傳輸?shù)幕締卧浣Y構設計和特性直接關系到整個網絡的通信
    的頭像 發(fā)表于 07-24 15:18 ?267次閱讀

    現(xiàn)場總線的使用方法與注意事項

    的穩(wěn)定可靠運行,正確的使用方法和注意事項至關重要。本文將詳細介紹現(xiàn)場總線的使用方法和注意事項,以供讀者參考。
    的頭像 發(fā)表于 06-06 11:49 ?600次閱讀

    FMD LINK 使用注意事項

    電子發(fā)燒友網站提供《FMD LINK 使用注意事項.pdf》資料免費下載
    發(fā)表于 05-06 10:11 ?0次下載

    CAN總線系統(tǒng)故障診斷的步驟、方法、注意事項

    CAN總線系統(tǒng)故障診斷的步驟、方法、注意事項? CAN總線系統(tǒng)故障診斷是指對CAN
    的頭像 發(fā)表于 02-03 11:31 ?4052次閱讀

    高速CAN總線和低速CAN總線的特性

    高速CAN總線和低速CAN總線的特性 高速CAN總線和低速C
    的頭像 發(fā)表于 01-31 14:09 ?2384次閱讀

    請問用CAN存儲器存儲的CAN總線數(shù)據(jù)格式有哪些呢?

    請問用CAN存儲器存儲的CAN總線數(shù)據(jù)格式有哪些呢? CAN總線是一種常用于汽車、工業(yè)控制和其
    的頭像 發(fā)表于 01-31 13:46 ?1115次閱讀

    can總線的數(shù)據(jù)數(shù)據(jù)長度碼和數(shù)據(jù)字節(jié)數(shù)的關系?

    can總線的數(shù)據(jù)數(shù)據(jù)長度碼和數(shù)據(jù)字節(jié)數(shù)的關系? CAN總線是一種常用于數(shù)據(jù)通信的協(xié)議,它使用
    的頭像 發(fā)表于 01-31 11:31 ?1890次閱讀

    CAN總線的標準和擴展有什么區(qū)別呢?分別適用于什么工況?

    CAN總線的標準和擴展CAN協(xié)議的兩種
    的頭像 發(fā)表于 01-30 09:41 ?5233次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>的標準<b class='flag-5'>幀</b>和擴展<b class='flag-5'>幀</b>有什么區(qū)別呢?分別適用于什么工況?

    CAN通信協(xié)議中有哪幾種類型?CAN通信中格式的作用

    CAN通信協(xié)議中有四種類型,分別是數(shù)據(jù)、遠程、錯誤和過載
    的頭像 發(fā)表于 01-30 09:18 ?4747次閱讀

    CAN總線共模電感選型

    CAN總線共模電感是應用于CAN總線通信中的一種電子元件,用于解決CAN總線通信中的共模干擾問題
    的頭像 發(fā)表于 01-05 13:42 ?3558次閱讀

    霍爾元件使用的注意事項

    霍爾元件使用的注意事項? 霍爾元件是一種常見的電子元件,主要用于測量和檢測磁場的變化。它具有靈敏度高、響應速度快、耐磁場干擾等優(yōu)點,在各種應用得到廣泛使用。然而,為了確?;魻栐恼9ぷ骱脱娱L其
    的頭像 發(fā)表于 12-18 14:56 ?1132次閱讀

    如何用示波器排查CAN的各種錯誤呢?

    ,在CAN通信中,錯誤可能會導致設備故障和通信中斷,因此排查CAN錯誤非常重要。本文將詳細介紹如何使用示波器排查CAN的各種錯誤
    的頭像 發(fā)表于 12-07 11:09 ?1021次閱讀

    javaequals()方法的注意事項

    會有不同的注意事項。在本文中,我們將詳細討論equals()方法的注意事項,并解釋如何正確使用它來比較兩個對象。 首先,我們來看一下equals()方法的基本定義: public boolean
    的頭像 發(fā)表于 11-17 16:59 ?716次閱讀

    電源的電容作用及注意事項

    電子發(fā)燒友網站提供《電源的電容作用及注意事項.pdf》資料免費下載
    發(fā)表于 11-13 09:21 ?0次下載
    電源<b class='flag-5'>中</b>的電容作用及<b class='flag-5'>注意事項</b>