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