男生免费无收费污网站_成人国产欧美日韩_国产手机小视频在线播放_亚洲最大成人在线网址_女生输了给对方玩一个月_在线免费观看日本一区二区_成人精品五区色欲淫欲网站_午夜18禁精品无码国产av大片

控制器局域網 —CAN

時間:2024-10-21
新悅網絡

編輯:

CAN(控制器局域網)是一種串行通信協議,最初由博世公司(Bosch)在1980年代為汽車電子系統開發,用于連接汽車的各個微控制器和設備,提供可靠的、實時的數據交換。由于其高可靠性、抗干擾能力強和支持多節點通信的特點,CAN協議被廣泛應用于汽車、工業自動化、醫療設備、航空航天等多個領域。

CAN建立在基于信息導向傳輸協定的廣播機制上。其根據信息的內容,利用信息標志符(每個標志符在整個網絡中獨一無二)來定義內容和消息的優先順序進行傳遞,而并非指派特定站點地址的方式。

因此,CAN擁有了良好的彈性調整能力,可以在現有網絡中增加節點而不用在軟、硬件上做出調整。除此之外,消息的傳遞不基于特殊種類的節點,增加了升級網絡的便利性。

 

CAN協議的原理

CAN協議是一種基于總線拓撲的多主總線通信協議,允許多個設備(節點)通過共享的一條通信線路進行數據交換。其關鍵原理包括:

  1. 差分信號傳輸:CAN使用兩條信號線(CAN_H和CAN_L)來傳輸差分信號。這種傳輸方式大大增強了抗干擾能力。

  2. 多主通信:CAN總線上所有節點可以主動發送數據,并且沒有主從之分。多個節點可共享同一總線,但只有優先級最高的消息可以在總線忙時發送,避免沖突。

  3. 無沖突仲裁機制:CAN使用位級仲裁機制,即當多個節點同時發送數據時,優先級較高的節點(ID較低的消息)優先發送,而低優先級的節點會自動停止發送,等待下一次傳輸機會。這樣避免了數據沖突。

  4. 錯誤檢測與恢復:CAN協議內置多種錯誤檢測機制,如位錯誤、幀錯誤、CRC校驗等,確保數據傳輸的可靠性。當檢測到錯誤時,節點可自動恢復并重發數據。

 

CAN協議的架構

CAN是一個用于連接電子控制單元(ECU)的多主機串行總線標準。電子控制單元有時也被稱作節點。CAN網絡上需要至少兩個節點才可進行通信。節點的復雜程度可以只是簡單的輸入輸出設備,也可以是包含有CAN交互器并搭載了軟件的嵌入式組件。節點還可能是一個網關,允許普通計算機通過USB或以太網端口與CAN網絡上的設備通信。

所有節點通過兩根平行的總線連接在一起。兩條電線組成一條雙絞線,并且接有120Ω的特性阻抗。

ISO 11898-2,也稱為高速度CAN。它在總線的兩端均接有120Ω電阻。

 

 

 

高速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。

 

 

 

ISO 11898-3,也被稱作低速或者容錯CAN。它使用線性主線,星形主線或者連接到一個線性主線上的多星結構主線著稱。每個節點都有終端電阻作為全局終端電阻的一部分。全局終端電阻不應低于100 Ω。

 

 

 

低速/容錯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通常被用于汽車和工業應用,在這些應用環境中,總線通常從一端橫跨至另一端。容錯CAN總線則經常被用在需要連接在一起的一組節點。

ISO規格只要求總線共模電壓必須保持在最小和最大范圍內,但不定義如何將總線電壓保持在這個范圍。

CAN總線必須使用終端電阻。終端電阻可以用來抑制信號反射,同時可以使總線電壓回到隱性狀態或者閑置狀態。

高速CAN在總線兩端使用120Ω電阻。低速CAN在每個節點均使用電阻。也有其他類型的終端,例如ISO 11783中定義了終端偏壓電路。 

終端偏壓電路使用由4條導線組成的線纜,除了CAN信號線以外還有電源線和地線。這在每段總線兩端提供自動偏壓和終端功能。ISO11783網絡是專為熱拔插總線段和電子控制單元設計的。

 

每個節點需要:

  • 中央處理器、微處理器或主處理器
    • 處理主機決定收到的信息的意思以及想要傳輸的信息。
    • 傳感器、驅動器和控制設備可以與主處理器連接。
  • CAN控制器;通常是集成單片機的一部分
    • 接收:CAN控制器將從總線上接收的串位字節存儲直到整個消息可用,之后主處理器可以獲取這個消息(通常由于CAN控制器觸發一個中斷)。
    • 發送:主處理器發送傳遞信息到CAN控制器,之后當總線空閑時將串位信息傳遞至總線。
  • 收發器;由ISO11898-2/3介質訪問單元(MAU)標準定義
    • 接收:把數據流從CAN總線層轉換成CAN控制器可以使用的標準。 CAN控制器通常配有保護電路。
    • 傳輸:把來自CAN控制器的數據流轉換至CAN總線層。

 

 

每個節點能夠發送和接收信息,但不是同時進行的。 一個消息或幀主要包括標識符(ID),它表示信息的優先級,最多八個數據字節。CRC、ACK和其他幀部分也是消息的一部分。改進了的CAN FD將每個幀拓展至最多64字節。 消息采用不歸零(NRZ)格式串聯傳送到主線并可被所有節點接收。

被CAN網絡連接的設備通常是傳感器,驅動器和其他控制設備。 這些設備通過一個中央處理器、一個CAN控制器,和一個CAN接收器連接至總線。

 

CAN協議由物理層和數據鏈路層組成,符合OSI模型的底層兩層設計:

  1. 物理層:物理層定義了信號傳輸的電氣特性和線路配置,規定了節點通過差分電壓來傳輸數據的方式。典型的CAN總線由兩條線組成:CAN_H和CAN_L,通過兩者的電壓差來判斷是邏輯0(顯性位)還是邏輯1(隱性位)。

  2. 數據鏈路層:包括數據幀格式、仲裁方法、錯誤處理等,確保不同節點之間的數據通信。CAN協議支持以下幾種幀類型:

    • 數據幀:實際傳輸數據的幀。
    • 遠程幀:用于請求發送特定ID的數據幀。
    • 錯誤幀:當檢測到錯誤時發送的幀。
    • 過載幀:用于指示節點忙碌無法處理新的數據幀。

    每個數據幀主要包括標識符(決定優先級)、控制字段、數據字段(最大8字節)、CRC校驗字段和確認字段。

 

CAN協議的應用

  1. 汽車電子:CAN協議是現代汽車中最常用的通信協議,用于連接發動機控制單元(ECU)、傳感器、制動系統、安全氣囊、車載娛樂系統等。它可以實現車輛內多個控制器之間的實時、高效數據傳輸。

  2. 工業自動化:在工業領域,CAN常用于傳感器、執行器和控制系統的連接,例如機器人控制、工廠自動化設備等,能確保數據可靠傳輸和實時反饋。

  3. 醫療設備:CAN被應用于病床監控系統、手術設備、CT掃描儀等設備的內部通信,確保系統運行的安全性和可靠性。

  4. 礦業與重型機械:CAN廣泛用于重型設備如礦用車輛和機械設備的控制與監測。其抗干擾能力使其適合在惡劣的工業環境下運行,能確保設備的安全操作。

  5. 航空與航天:CAN被用作飛機和衛星內各個模塊的通信協議,幫助系統實現同步控制和實時數據交換。

 

最新內容

知識庫