如何調整CAN位寬容忍度?
CAN位寬容忍度是指在控制器局域網(wǎng)絡(luò )(CAN, Controller Area Network)中允許時(shí)鐘同步的誤差范圍。這是CAN網(wǎng)絡(luò )正常通信時(shí)的關(guān)鍵因素之一,因為CAN協(xié)議依賴(lài)位同步來(lái)確保多個(gè)節點(diǎn)在總線(xiàn)上正確解碼數據。
CAN位寬容忍度確保節點(diǎn)之間由于時(shí)鐘偏差或抖動(dòng)而導致的微小時(shí)間誤差不會(huì )導致通信故障。
CAN網(wǎng)絡(luò )的各個(gè)節點(diǎn)通過(guò)定時(shí)參數將位寬(bit width)劃分為幾個(gè)時(shí)間段,稱(chēng)為時(shí)間量子(Time Quanta, TQ)。一個(gè)完整的CAN位由多個(gè)時(shí)間量子組成,通常分為4個(gè)階段:
同步段(Synchronization Segment, Sync_Seg): 用于檢測邊沿同步。
傳播段(Propagation Segment, Prop_Seg): 傳播延遲。
相位緩沖段1(Phase Buffer Segment 1, Phase_Seg1): 用于補償傳播延遲和節點(diǎn)時(shí)鐘的容差。
相位緩沖段2(Phase Buffer Segment 2, Phase_Seg2): 用于與實(shí)際接收到的邊沿調整同步。
在CAN網(wǎng)絡(luò )中,位寬容忍度是由相位緩沖段1(Phase_Seg1)和相位緩沖段2(Phase_Seg2)決定的。這兩個(gè)段用于調整每個(gè)節點(diǎn)的時(shí)鐘,使它們保持同步。CAN控制器可以通過(guò)調整這些段的長(cháng)度來(lái)補償時(shí)鐘誤差,進(jìn)而實(shí)現對位寬容忍度的管理。
調整CAN位寬容忍度的關(guān)鍵是正確設置CAN定時(shí)寄存器中的相關(guān)參數。以下是主要的定時(shí)參數:
時(shí)鐘周期(TQ, Time Quanta): 可以通過(guò)調整CAN控制器的分頻器來(lái)設置一個(gè)TQ的長(cháng)度。
同步跳轉寬度(SJW, Synchronization Jump Width): 當接收到的邊沿時(shí)間與預期不同步時(shí),SJW定義了允許的時(shí)間跳躍范圍。
增大SJW可以容忍更大的時(shí)鐘誤差。
相位緩沖段1和相位緩沖段2的長(cháng)度: 這些段的長(cháng)度越大,容忍的誤差范圍越大,但也會(huì )影響傳輸速度。
調整CAN位寬容忍度的步驟:
選擇CAN總線(xiàn)速度:總線(xiàn)速度通常取決于網(wǎng)絡(luò )中的節點(diǎn)要求和線(xiàn)纜長(cháng)度(例如,500 kbps 或 1 Mbps)。
設置時(shí)鐘周期TQ:根據CAN控制器時(shí)鐘頻率和總線(xiàn)速率來(lái)計算每位的時(shí)間量子數。公式為:
調整同步跳轉寬度SJW:通過(guò)設置同步跳轉寬度來(lái)容忍邊沿與預期位置的偏移。如果網(wǎng)絡(luò )中節點(diǎn)的時(shí)鐘偏差較大,可以增加SJW的值,以允許更大的時(shí)鐘跳躍。
配置相位緩沖段:調整Phase_Seg1和Phase_Seg2的長(cháng)度,確保時(shí)鐘誤差在可接受范圍內。常見(jiàn)的做法是讓Phase_Seg1的長(cháng)度略大于Phase_Seg2,以提供更大的時(shí)鐘調整能力。
例如,使用的CAN控制器時(shí)鐘為8 MHz,要配置CAN總線(xiàn)的速度為500 kbps,具體步驟如下:
1、每位的時(shí)間量子數(TQ):CAN速度為500 kbps,因此每位占用的時(shí)間為:
這意味著(zhù)一位的長(cháng)度應為2微秒。
2、時(shí)鐘周期:8 MHz時(shí)鐘頻率,1個(gè)時(shí)鐘周期為125 ns。則一個(gè)位需要的時(shí)間量子數(TQ)為:
3、設置同步段和相位緩沖段:根據總線(xiàn)速度和網(wǎng)絡(luò )條件,設置同步段1 TQ,傳播段6 TQ,相位緩沖段1為4 TQ,相位緩沖段2為3 TQ,這樣就提供了足夠的時(shí)鐘容忍度。
4、同步跳轉寬度SJW:設置SJW為2 TQ,容許小范圍的跳躍調整。
假設網(wǎng)絡(luò )中某些節點(diǎn)的時(shí)鐘精度較差,為了容忍這些節點(diǎn)的時(shí)鐘誤差,可以采取以下措施:
增加SJW的寬度,例如從2 TQ調整為4 TQ。
增加相位緩沖段1和相位緩沖段2的長(cháng)度,以允許更多的時(shí)鐘調整空間。
例如,將相位緩沖段1從4 TQ調整為6 TQ,將相位緩沖段2從3 TQ調整為5 TQ。
這樣可以進(jìn)一步增強對時(shí)鐘誤差的容忍度,確保在有一定時(shí)鐘偏差的節點(diǎn)中仍然保持穩定的通信。
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。