如何準確的設定CAN匯流排的波特率,保證通訊的穩定性

2021-09-12 09:02:31 字數 2497 閱讀 4628

can匯流排採用的是非同步序列通訊,也就是沒有單獨的時鐘線來保證各個收發器之間時鐘的一致,每個收發器是按事先設定的波特率來對匯流排上的電平進行分位。因此波特率設定準確對can匯流排的穩定通訊來說非常重要。

can匯流排裡我們可以通過對can 節點裡的位定時暫存器的控制來實現不同波特率的通訊。can協議裡將乙個位時間分為同步段、傳播段、相位緩衝段1和相位緩衝段2。每個段的時間長度都可以用乙個整數的基本時間單位表示,該基本時間單位由系統的時鐘振盪器分頻得到。

同步段位於乙個位的起始位置,can-bus規定跳變沿為同步訊號,但是傳送節點傳送乙個位跟接收節點接收到這個位之間存在網路傳播延遲,傳播段則是為了補償這段傳播延遲,由於取樣點位置在相位緩衝段1跟相位緩衝段2之間,通過設定相位緩衝段1和相位緩衝段2的值,可以調整取樣點位置,保證每個位取樣點一致。緩衝段的長度調節範圍則是由同步跳轉寬度(sjw)決定。

圖 1  can位時間結構圖

簡單的了解了can匯流排位時間的分段後,我們來看看乙個節點的波特率到底要如何設定。如圖2是某arm核心的can位時間特性暫存器 (can_btr)。

圖 2  某arm核心位時間特性暫存器結構圖

silm(靜默模式)跟lbkm(回環模式)用於除錯;

sjw:同步跳轉寬度;

ts2/ts1:位時間裡兩個時間段的分配;

brp:波特率分頻器,該區域定義了基本時間單元的長度;

例如某著名車廠can通訊標準裡規定,通訊速率為125 kbps時,應該採用單次取樣,取樣點位置設定在70%~77%之間。其位定時引數取值可見表1與表2。

表 1  ls_can通訊速率與取樣點引數

表 2  ls_can可選時間份額與同步跳轉頻寬

取樣點:取樣點不能太靠前也不能太靠後,否則如果剛好處於乙個位的上公升沿或者下降沿區間,會造成識別錯誤,所以根據cia105的規範,取樣點在87.5%左右比較合適。但是一般我們可根據實際情況選取75%~85%之間;

同步跳轉寬度(sjw):sjw的值直接影響到重同步時相位緩衝段的可調節的範圍,sjw的值可以在1~4之間選擇,我們選擇3、4可以使匯流排獲得更寬的波特率容忍度;

取樣次數:分為單次取樣跟三次取樣,三次取樣在設計之初雖然是為了過濾掉匯流排上毛刺,但是採用三次取樣經常會影響sjw的跳轉,所以實際應用中我們一般都會採用單次取樣。

了解設定波特率的原則後,我們採用zlg的波特率計算軟體,對25kbps波特率的設定引數進行計算,計算結果如圖3。

圖 3  25kbps波特率計算引數

根據上面提到的原則,我們選取取樣點為75%,sjw為4,時間份額為14的一組引數,採用zlg的can卡做驗證。

l 自動波特率識別:採用canscope自動偵測波特率的功能,對can卡的波特率進行識別,識別結果為25kbps;

圖 4  自動偵測波特率

l 取樣點測試:採用canscope對當前波特率下can卡的取樣點進行測試,測試結果為75%;

圖 5  取樣點測試

l 位寬容忍度測試:採用canscope對當前波特率下can卡進行位寬容忍度測試,測試其對波特率的容忍度情況,測試結果為24kbps~26kbps,容忍度情況較好;

圖 6  位寬容忍度測試

l 位時間測試:用canscope的眼圖功能對當前波特率下can卡進行位時間測試,位時間為40us,與25kbps波特率的位時間相符。

圖 7  眼圖測試位時間

通過對波特率計算器計算出來的波特率暫存器設定引數進行驗證,發現測試結果跟我們的預期結果一致,因此在使用特殊波特率時,我們可以借助波特率計算器來快速計算出位定時暫存器的引數值。下面我們給出一些可參考的特殊波特率的引數:

原**:www.cechina.cn

can匯流排(二) 如何測量can匯流排的波特率

這兩天在研究車載can匯流排,因為對於車上的can匯流排的介面以及波特率沒有對應的資料可查 不同的車介面都不一樣,波特率也可能不同 做一想要從車上測出can匯流排上的資料還不太容易。於是我首先使用示波器 我使用的示波器型號是tds 220 來找出汽車上can匯流排的介面,然後測出can匯流排的波特率...

波特率 不同波特率CAN匯流排系統如何進行資料收發

產品型號 產品型號 usbcan iipro功能介紹 波特率自動識別 標準波特率識別 全範圍波特率識別 設定識別範圍 全面匹配 匯流排分析功能 可以直觀的幫使用者分析can匯流排干擾和測試can匯流排狀態。智慧型中繼功能 可作為can網橋使用,實現2路can通道的資料在相同或不同波特率下實時高速交換...

CAN匯流排的侷限

can匯流排的侷限 can匯流排由博世公司於1987年開發,1993年成為標準,在近23年的時間裡獲得了巨大的成功,逐漸替代了其它相近的匯流排,2001年的節點採用量已超過1億。但是,曾經力推can匯流排的廠商,如寶馬 博世 飛利浦等,目前都開始支援新的匯流排。對於推動新匯流排研究的原因,x by ...