【導讀】CAN 是一種差分信號標準,廣泛用于汽車、工業(yè)和儀器儀表行業(yè)。它用于不同系統(tǒng)之間的串行通信,這些系統(tǒng)常常是經長距離連接到不同的電源系統(tǒng)。由于環(huán)境限制,常常使用電流隔離來中斷接地環(huán)路或提供物理安全性。
隔離式CAN網絡的傳播延遲比非隔離式CAN網絡要長,設計起來可能頗具挑戰(zhàn)性。圖1顯示一個使用信號和電源隔離CAN收發(fā)器ADM3053 的隔離式 CAN 節(jié)點,我們將以它為例來計算所需的 CAN控制器參數,以便在 20 米電纜上以 1 Mbps 的速度進行通信。
圖 1. 使用信號和電源隔離 CAN 收發(fā)器 ADM3053 的隔離式 CAN 節(jié)點
一個CAN比特由四個獨立的時間段組成 :同步段 (SYNC_SEG)、傳播段 (PROP_SEG)、相位段1(PHASE_SEG1) 和相位段 2(PHASE_SEG2)。這些時間段可以在 CAN 控制器中進行編程,對于計算 CAN 控制器的設置參數至關重要。圖 2 所示為標稱比特時間的不同時間段。
計算中使用如下假設條件 :
• 電纜長度為 20 m
• 數據速率或比特率為1 Mbps
• 電纜傳播延遲為 5 ns/m
• CAN 控制器振蕩器頻率為36 MHz
圖 2. CAN 標稱比特時間
CAN 采用逐位仲裁方式,不同的節(jié)點可以爭奪總線訪問權,這就導致多個節(jié)點可以同時傳輸數據。傳輸節(jié)點必須對總線上的數據進行采樣,以便確定它是否贏得仲裁。由于系統(tǒng)的傳播延遲,控制器必須補償各位采樣的時間。在控制器中設置 PROP_SEG 可以提供此補償,其計算方法如下 :
對于 ADM3053,從 TxD 到 RxD 的傳播延遲為 250 ns(最大值)。
電纜的物理延遲等于 5 ns/m 乘以電纜長度 20 m,結果為 100 ns。
因此,通過系統(tǒng)并返回的總傳播時間為 :2 x ( 傳播延遲 + 收發(fā)器傳播延遲 ) = 700 ns (2 × (100 + 250) = 700 ns)。
為了給控制器編程,必須將寄存器設置為“時間量子”的整數倍。時間量子的時長等于 CAN 系統(tǒng)時鐘的時間周期,本例中為 28 ns。
對于 28 ns 的時間量子,每位包括 36 (1000/28 = 36) 個時間量子。
PROP_SEG = ROUND_UP (700 ns/28 ns) = 25 個時間量子
從每位的 36 個時間量子中,減去用于 PROP_SEG 的 25個時間量子和用于 SYNC_SEG 的 1 個時間量子,余下的時間量子分配給 PHASE_SEG1 和 PHASE_SEG2,每段5 個。
CAN 系統(tǒng)時鐘存在容差,因而會出現累積相位誤差。這要求系統(tǒng)通過再同步跳躍 (RJW) 同步,RJW 為 4 和PHASE_SEG1 二者中的較小值。
由此便可計算系統(tǒng)的振蕩器容差要求 :
?f < RJW/(20 × NBT) = 4/(20 × 36) = 0.006
?f < Minimum (PHASE_SEG1 and PHASE_SEG2)/2(13 × NBT –PHASE_SEG2) = 5/2(13 × 36 – 5) = 0.005
這兩個值中的較小者就是所需的振蕩器容差 0.5%。
計算得出下列設置參數 :
• SYNC_SEG = 1
• PROP_SEG = 25
• PHASE_SEG1 = 5
• PHASE_SEG2 = 5
• RJW = 4
推薦閱讀: