CAN網路快慢恢復

2021-10-07 15:29:39 字數 805 閱讀 5031

前言:

can匯流排上出現錯誤會導致can控制器進入bus off狀態,具體的可以參考can的規範。

can控制器提供自動恢復和手動恢復功能。

1.自動恢復

自動恢復比較簡單,初始化的時候開啟自動恢復功能。要求不高的話建議開啟,否則can bus off一直無法恢復通訊。

can->mcr |= can_masterctrl_autobusoffmanagement;/*atuo bus off recovery */

2.手動恢復

一般車廠要求ecu不能自動恢復,而是先快恢復後慢恢復。

常用的就是:先100ms恢復5次,然後是1000ms恢復一次。

具體的就是:

(1)發生bus off後,立即關閉tx,然後重置can控制器

(2)快恢復次數+1

(3)快恢復次數<5則設定恢復時間為100ms,否則,恢復時間設定1000ms

(4)恢復時間到了,就開啟tx

(5)成功傳送報文則清零快恢復次數

初始化時開啟相關中斷

can_itconfig(can_it_fmp,enable);

can_itconfig(can_it_bof,enable);

can_itconfig(can_it_err,enable);

中斷裡這樣寫

interrupt_handler(can_tx_irqhandler, 9){

/* in order to detect unexpected events during development,

it is recommended to se

CAN網路中的路由

現在汽車快速發展,車上的ecu數目已經達到幾十個,乘用車可能會更多,商用車雖然少些,但是也有二三十個之多,雖然sae j1939協議中對定了使用遮蔽雙絞線最多一路can上可以使用30個ecu,但是在實際使用過程中考慮網路負載和報文延時,一路can上並不會使用太多的節點,一般一路can網路最多也就十個...

can網路管理(osek中的NM)

1 協調各 ecu 同時進入網路睡眠模式 2 檢測和監控網路的配置 3 提供系統狀態。所有參與直接網路管理的 ecu,根據 oseknm 中的演算法建立邏輯環的通訊機制 4 每個參與直接 nm 的 ecu 都有乙個特定的網路管理位址 5 每個 ecu 傳送特定的 nm 報文,nm 報文由優先順序較高...

CAN匯流排網路「負載率」計算

can匯流排負載率 表徵的是單位時間內匯流排上的 位流 相對於匯流排頻寬的佔比。換就話說,匯流排實際資料傳輸速率與理論上能達到的資料傳輸速率的比值。以景區的負載率為例,每個景區都有乙個容納遊客負荷上限人數 比如說10000人 如果此時景區內只有1000人,則此時景區負載率是10 景區負載率是乙個空間...