引言目前相關文獻均缺乏對can匯流排位定時與同步機制的詳細分析。本文深入分析了can匯流排位週期的結構以及can的兩種位同步方式 (硬同步和重同步),並明確給出了重同步時重同步跳轉寬度和相位差補償的關係,對於指導位定時引數的設定有較好的參考價值。
sp; 位週期結構
網路的標準位速率,其中就是額定位時間(也稱標準位週期)。如圖1所示,can匯流排的額定位時間是由4部分組成的:同步段(sync_seg),傳播段(prop_seg),相位緩衝段1(pseg1)和相位緩衝段2(pseg2)。所以額定的為時間 ,位週期中的這些段都是可以程式設計設定的,且都可以用整數個基本時間單位(時間份額)來表示。這個基本時間單位由振盪器分頻而得的 ,(brp為波特率預分頻因子,也可以程式設計設定)。
圖1 can匯流排額定位時間的結構
同步段是can匯流排位週期中每一位的起始部分。不管是傳送節點傳送一位還是接收節點接收一位都是從同步段開始的。但是由於傳送節點和接收節點之間存在網路傳輸延遲以及物理介面延遲,傳送節點傳送一位之後,接收節點延遲一段時間才能接收到,因此,傳送節點和接收節點對應同一位的同步段起始時刻就有一定的時延,記為。
傳播延時段的設定就是要補償該段時延()的。can匯流排協議中的非破壞性仲裁機制以及幀內應答機制,都要求那些正在傳送位流的傳送節點能夠同時接收來自其他傳送節點的「顯性位」(邏輯0),否則就會使得仲裁無效或者應答錯誤。傳播延遲段推遲那些可能較早取樣匯流排位流的節點的取樣點,保證由各個傳送節點傳送的位流到達匯流排上的所有節點之後才開始取樣。
重同步跳轉寬度sjw並不是位週期裡的一段,卻是位定時計算時的乙個重要的指標,它定義了重同步時為補償相位誤差位時間中相位緩衝段1或者相位緩衝段2被增長或縮短的最大基本時間單元數。 同步機制
can匯流排的位同步只有在節點檢測到「隱性位」(邏輯1)到「顯性位」(邏輯0)的跳變時才會產生,當跳變沿不位於位週期的同步段之內時將會產生相位誤差。該相位誤差就是跳變沿與同步段結束位置之間的距離。如果跳變沿發生在同步段之後取樣點之前為正的相位誤差;如果跳變沿位於同步段之前取樣點之後為負的相位誤差。相位誤差源於節點的振盪器漂移,網路節點之間的傳播延遲以及雜訊干擾等。can協議規定了兩種型別的同步:硬同步和重同步。
硬同步硬同步只在匯流排空閒時通過乙個下降沿(幀起始)來完成,此時不管有沒有相位誤差,所有節點的位時間重新開始。強迫引起硬同步的跳變沿位於重新開始的位時間的同步段之內。
重同步在訊息幀的隨後位中,每當有從「隱性位」到「顯性位」的跳變,並且該跳變落在了同步段之外,就會引起一次重同步。重同步機制可以根據跳變沿增長或者縮短位時間以調整取樣點的位置,保證正確取樣。
.如圖2,跳變沿落在了同步段之後取樣點之前,為正的相位誤差,接收器會認為這是乙個慢速傳送器傳送的滯後邊沿。此時節點為了匹配傳送器的時間,會增長自己的相位緩衝段1(陰影部分)。增長的時間為相位差的絕對值,但是上限是重同步跳轉寬度sjw。
如圖3,跳變沿落在了取樣點之後同步段之前,為負的相位誤差,接收器把它解釋為乙個快速傳送器傳送的下乙個位週期的提前邊沿。同樣節點為了匹配傳送器的時間,會縮短自己的相位緩衝段2(陰影部分),下乙個位時間立即開始。縮短的時間也為相位差的絕對值,上限是重同步跳轉寬度sjw。
圖2 正相位誤差時的重同步
p;圖3 負相位誤差時的重同步
相位緩衝段只在當前位週期內被增長或者縮短,接下來的位週期,只要沒有重同步,各段將恢復為位時間的程式設計預設值。
當相位差的絕對值小於或者等於重同步跳轉寬度sjw時,重同步和硬同步的效果是相同的,能實現相位差的補償;但是如果相位差的絕對值比重同步跳轉寬度大,由於補償的最大值是重同步跳轉寬度,致使重同步不能完全補償相位差。
can協議的位填充機制除實現仲裁場、控制場、資料場和crc序列的資料的透明性外,還增加了從「隱性位」到「顯性位」跳變的機會,也就是增多重同步的數量,提高同步質量。在沒有出錯影響的情況下,位填充原則保證了兩次重同步跳轉邊沿之間不會多於10個位週期(即5個顯性位,5個隱性位),而實際的系統會有錯誤發生,使得實際的兩次重同步跳轉邊沿之間的間隔可能為17到23個位時間(活動錯誤標誌及其疊加6到12個位時間,錯誤界定符8個位時間,間歇場3個位時間)。
結語在實際的系統設計中,使用者可以根據振盪器時鐘頻率,匯流排波特率以及匯流排的最大傳輸距離等因素,對can控制器的位定時引數進行優化設定【4,5】,協調影響位定時設定的兩個主要因素:振盪器容差和最大匯流排長度,合理安排位週期中取樣點的位置和取樣次數,保證匯流排上位流的有效同步的同時,優化系統的通訊效能,進一步推進can匯流排的廣泛應用。
CAN匯流排位定時和同步機制的分析
摘要 can 匯流排位定時引數可以由使用者來程式設計設定,合理的設定位定時能夠有效保證位流的同步,提高 can匯流排的通訊效能。本文詳細分析了 can匯流排的位定時和同步機制,並給出了重同步時重同步跳轉寬度與相位差補償的關係。can匯流排,位定時,同步。1 引言can controller area...
CAN匯流排的取樣位和同步跳轉寬度
取樣位 對取樣動作進行設定的標誌位,取樣位可以設定為多次或一次。波特率較低時建議將取樣位設定為一次,波特率高時設定為多次,波特率高低以100kbps作為分界。同步跳轉寬度 用於相容不同波特率的匯流排,除了本身設定的 波特率,還能接收乙個上下容差範圍內的波特率。其設定為sjw 1 0 計算公式為tsj...
技能模組的防外掛程式機制和同步機制優化
遊戲在真實的環境中,有些特殊情況需要處理,本文介紹技能模組是如何處理人為作弊和現實中的網路導致的一些問題。主要介紹四個部分 防外掛程式網路延遲問題解決 網路卡頓和抖動 流量優化 注意,本文預設介紹的是玩家的技能處理,也就是技能的控制端在玩家的客戶端。對於控制端在伺服器的小怪,基本沒有前三個問題。1....