CAN協議與其它現場總線協議的區別中有一個是:它使用同步數據傳輸而不是異步傳輸(面向字符)。這意味著傳輸性能得到更有效的發揮,但是另一方面,這需要更加復雜的位同步方法。
?如何確保位同步?
在面向字符的協議中的位同步實現起來很簡單,在接受每個字符的起始位時進行同步。但在同步傳輸協議中,只有一幀的開始才有一個起始位。這通常不足以使接收器的位采樣和發送器保持同步。為了使接收器在幀結束時也能正確采樣到接收的位流,就需要接收器不斷進行重新同步。重新同步表示在位流中每個有效的信號邊沿都可對接收信號的時鐘周期進行檢測。在信號邊沿間的最大時間周期內,發送和接受振蕩器之間最大可能的時間差必須在一個位間隔內的標稱采樣點之前和之后通過足夠的空閑時間(“相位緩沖段”)來補償。
?位時間的4個時間段
由于CAN協議使用非破壞性的位總線仲裁和顯性應答位,信號從發送器傳輸到接收器再返回到接收器必須在一個位時間內完成。因此除了保留用于同步的時間外,還需要一個時間段(“傳輸延遲段”)對總線上的信號傳輸進行補償以及用于發送和接收節點的內部信號延遲。
圖1所示為標稱的位時間,劃分為4個不重疊的時間段:
- 同步段(Sync_Seg)
- 傳輸時間段(Prop_Seg)
- 相位緩沖段1(Phase_Seg1)
- 相位緩沖段2(Phase_Seg2)
圖1 位時間的劃分一個位間隔的時間段的長度根據振蕩器周期,被定義為一個基本時間單位(時間份額)的倍數。基本時間單位tq是表示同步機制時間分辨率的基本單位并且因為同步段而被引入到位時間中。同步段是位時間中CAN信號電平的邊沿將要產生的那一部分。在同步段之后產生的邊沿與同步段之間的距離稱為該邊沿的“相位誤差e”。傳輸延遲段提供必要的時間用于處理網絡中的最大信號傳輸延遲。該時間段必須兩倍于兩個節點之間的最大信號傳輸延遲時間加上發送和接收節點的內部延遲時間之和。
?位同步之“硬同步”和“重新同步”
需要區分兩種類型的同步:幀起始處的“硬同步”和幀中間的“重新同步”。在硬同步之后,位時間在sync段結束時重新啟動而不考慮相位的誤差。這樣硬同步強制產生硬同步的邊沿延伸到重新啟動的位時間的同步段中。重新同步導致位時間縮短或延長,從而使采樣點產生移位。
通過標稱采樣點之前和之后的相位緩沖段,在重新同步時為實際采樣點的移位保留了空閑時間。同步只發生在隱性位轉換到顯性位電平的邊沿。通過在每個時間量內對總線的實際電平進行采樣并和前一次采樣點的總線電平相比較可檢測出邊沿。如果在同步段內檢測到邊沿,那么該邊沿可實現同步,否則信號邊沿與同步段的結束之間的距離就是邊沿相位誤差(以時間量計算)。如果邊沿發生在同步段之前,相位誤差為負,否則為正。如果相位誤差為正,相位緩沖段1將被延長。每次重新同步時,相位緩沖段縮短或延長的數量(“同步跳轉寬度”,SJW)的最大值受到限制,它可編程為1和Min{4, Phase_Seg1}之間的值。當信號邊沿相位誤差的數值小于或等于SJW的編程值。硬同步和重新同步的值將是相同的。如果相位誤差的數量大于SJW,重新同步將無法完全補償相位誤差,這樣誤差(相位誤差-SJW)仍然存在。在兩次采樣點之間只允許執行一次同步。重新同步維持了邊沿和采樣點之間的最小距離,使總線電平的穩定和濾除尖峰的時間小于傳輸段和相位段1時間之和。一個位時間內不同的段可按照下面的限度進行編程:
- Sync_Seg:1時間份額
- Prop_Seg1:1...8或更多時間份額
- Phase_Seg1:1...8或更多時間份額
- Phase_Seg2:Max{Phase_Seg1,信息處理時間}
- 波特率預分頻器:1...32
- SJW:1...4,但是不大于Min{4, Phase_Seg1}
在同步的時候,Phase_Seg1可以長于編程的標稱時間而Phase_Seg2可以短于標稱時間。“數據處理時間”從采樣點之后開始,它是用于決定隨后發送的位電平的時間(例如,數據位、CRC位、填充位、錯誤標志或空閑)。該時間不能大于2個時間量。其長度為Phase_Seg2編程值的下限。在同步時Phase_Seg2可以小于數據處理時間,這不會影響總線的時序。每個位時間的時間份額值必須設置為8到25的范圍內。
圖2 重新同步的原理
圖2中所示為重新同步的原理。如果發送器的振蕩器比接收器的慢(a),用于同步的信號邊沿將延遲到達接收器。接收器可通過采樣點的移位進行補償。可補償的最大累積“延遲”(邊沿相位誤差)由相位段1所保留的時間確定。在重新同步過程中,如果相位誤差的值小于等于SJW,采樣點則根據所發生的邊沿相位誤差e進行移位,并因此恢復與當前位位置相關的采樣點的位置。當發送器的振蕩器比接收器的快時(b),信號邊沿的到達比接收器預期的要早,因此下一個位時間間隔必須提前啟動。這通過縮短相位緩沖段2來實現。這種情況下,同步段被省略了,因此在重新同步之后,從信號邊沿到采樣點之間的距離和同步段到采樣點之間的距離相等(如果沒有檢測到邊沿)。在第一個例子中,該“提前”邊沿的相位誤差值小于SJW,因此可以實現完全補償。相位緩沖段只是暫時改變,在下一個位時間里如果沒有檢測到相位誤差,它們將恢復為標稱值。接收器希望邊沿出現在同步段當中。下面是應用于位同步的規則 [ISO99-1]:
- 在一個位時間內的兩次采樣點之間只有一次同步。
- 只有在前一個采樣點檢測到的信號電平與后一個采樣點的信號電平不同時,才能使用從隱性到顯性的信號邊沿進行同步。短暫的干擾脈沖是不起作用的。
- 只要在總線空閑時出現一個隱性到顯性的信號邊沿,就會執行一個“硬同步”(新的位時間間隔的起始)。
- 在幀間空間中(間歇場的第一位除外)隱性到顯性的信號邊沿會導致執行一個硬同步。
-
CAN總線
+關注
關注
145文章
1951瀏覽量
130777 -
位同步
+關注
關注
0文章
8瀏覽量
7672 -
位定時
+關注
關注
0文章
3瀏覽量
5749 -
信號傳輸
+關注
關注
4文章
427瀏覽量
20187
發布評論請先 登錄
相關推薦
評論