作者 |Andrei小編 | 吃不飽
當ECU之間使用CAN來進行通信時,總線上發生了什么?我們可以借助示波器來觀察總線上的電平,而從示波器上我們可以看到一串連續的高低起伏的“線條”——波形。無論是電磁波或者是總線上變化的電平,這些信息的載波在時間和空間上是連續的。而從這段連續的載波中解讀出我們所需要的信息就需要借助一定的采集手段——采樣。CAN控制器需要從總線的高低電平中獲取到邏輯0和1。那么控制器要在哪個位置采樣?要怎樣才能實現正確采樣呢?這就涉及到了采樣點這個概念。01采樣點的定義采樣點是CAN控制器讀取總線電平,并解釋各個比特的邏輯值的時間點。在我們了解采樣點的測試方法之前,我們需要先了解CAN報文的一個位時間是如何組成的。CAN控制器的最小時間周期稱作時間份額(Time quantum,簡稱Tq),它是通過對芯片晶振周期進行分頻而得來的。一個位時間由若干個Tq組成(通常為8到25個),同時根據功能分為4個階段:同步段、傳播段、相位緩沖段1和相位緩沖段2。
4個階段的功能如下
同步段(Sync_Seg):用于實現時序調整,總線上各個節點的跳變沿產生在同步段內,通常為1個Tq;傳播段(Prop_Seg):用于補償網絡上的物理延遲時間。這些延遲時間包含信號在總線上的傳輸延遲和CAN節點內部的處理延遲。傳播段保證了2倍的信號在總線上的延遲時間;相位緩沖段1(Phase_Seg1)和相位緩沖段2(Phase_Seg2):用于補償跳變沿的相位誤差,其長度會在重同步的實現過程中延長或縮短。采樣點位于相位緩沖段1的結尾。由于相位緩沖段1和相位緩沖段2能夠延長或縮短,采樣點也能夠隨之變化。02為什么需要測試采樣點?
合適的采樣點位置是CAN控制器正常通信的保證。
對于CAN網絡這個整體而言,各個節點應該盡量使用相同的采樣點位置,否則容易出現采樣錯誤,進而使整個網絡的通信出現故障;
對于單個節點而言,過早的采樣使得節點易受位時間初期的電平波動影響,進而導致采樣錯誤;
受限于重同步的要求和相位緩沖段的寬度,CAN控制器無法過晚采樣。
03采樣點的測試方法
采樣點的測試方法:干擾某一位的采樣點附近的總線電平,利用CAN錯誤幀機制,根據ECU是否發送錯誤幀來判斷是否出現采樣錯誤,進而計算ECU的采樣點。根據ECU角色的不同,采樣點測試的方法可以分為兩類:以ECU作為發送節點,干擾它發送的報文;以ECU作為接收節點,干擾它接收的報文。實際測試環境的總線干擾設備采用VH6501,并以待測ECU作為接收節點,使用VH6501構建仿真報文,然后從后往前逐次翻轉仿真報文數據場的時間份額的電平極性,直到總線上出現錯誤幀。
在開始采樣點測試之前,我們需要設置VH6501自身的采樣點;
VH6501使用一連串的脈沖電平來構建仿真報文;
從后往前逐次翻轉仿真報文數據場的各個脈沖的電平極性,直到干擾到待測ECU的采樣點,使得待測ECU發送錯誤幀。
在執行采樣點的測試過程中,我們使用示波器截獲CAN總線上的波形。樣件使用500 Kbps的傳統CAN,即位時間為2 μs。示波器時基設置為8 μs,即一個橫格可容納4個位。
上圖為沒有受到干擾的報文的波形圖,圖中我們可以清晰地看到數據場的每個比特占用均等的1/4橫格。而當我們啟動干擾(極性翻轉),并且成功翻轉采樣點所在區間的電平極性后,我們將看到示波器上出現了錯誤幀,并且數據場最后一個字節的最后一個隱性位相較于正常的波形有著明顯的縮短。
04采樣點測試誤差產生的原因
采樣點測試誤差的來源有測試環境、設備和測試方法等等。
VH6501和待測ECU之間的位時間偏差造成的系統誤差:理想情況下500 Kbps的傳統CAN的位時間長度為2 μs,但實際環境里,待測ECU和VH6501的位時間與標準的位時間之間存在一定的偏差。如果ECU的位時間大于VH6501的位時間,采樣點的測量結果會比實際值偏大;當樣件的位時間小于CANoe設定的位時間,采樣點的測量結果會比實際值偏小。這樣的系統誤差無法通過改進測量方法來降低。
測試方法引起的誤差:前文介紹采樣點測試方法中提到,采樣點測試是通過VH6501翻轉待測ECU采樣點附近的電平極性實現的。但是采樣點是一個“時間點”,而VH6501干擾的是時間段。因此每次干擾的時間段的長度將直接影響采樣點測試的誤差大小。常用的測試方法中,每個位時間由16個Tq組成,每次翻轉一個Tq。最終的實際結果相對于正確結果可能存在±6.25%的偏差。但是在介紹采樣點測試方法中我們提到,VH6501使用脈沖序列來構建報文,每個位時間由320個脈沖組成。那么通過縮小每次翻轉的電平長度,可以將±6.25%的誤差縮減至±0.3125%。
05CAN FD采樣點測試復雜原因的分析
CAN FD報文的結構更復雜且位速率可變。這使得CAN FD采樣點測試相較于傳統CAN更復雜。CAN FD在位速率較小的仲裁場和位速率較大的數據場分別采用了兩個不同的采樣點。
CAN FD數據場的位速率視報文的BRS位(Bit rate switch)而調整-當BRS位檢測為隱性時,CAN FD的位速率將從仲裁場的最小位速率切換為數據場的數據位速率,這一位速率將持續至CRC界定符的采樣點。因此在測量CAN FD采樣點時應避免對BRS和CRC界定符進行干擾。同時由于位時間的差異,使用VH6501構造脈沖序列時應考慮到BRS和CRC界定符采樣點前后的位速率的切換以及位時間4個階段的長度變化。
06CAN FD的第二采樣點
不同于采樣點,第二采樣點在CAN FD控制器接收其他節點發送報文的過程中并不會起到任何作用。第二采樣點的作用,是在不改變傳輸延遲補償的情況下,實現CAN FD在數據場的位錯誤檢測要求。
位錯誤的檢測要求發送節點對總線狀態進行回讀。傳統CAN總線在設計之初考慮到了信號在總線上的傳播時延以及發送節點TXD和RXD之間的處理時延,這兩種時延通過位時間的傳播段實現補償,進而保證了發送節點在發送一個比特期間也能從總線上回讀到這個比特。ISO 11898-5規定傳輸時延的上限為255 ns。位速率為8 Mbps的CAN FD節點的位時間為125 ns。以極限狀態下1個位時間由8個Tq組成來計算,單位Tq為15.625 ns。即傳輸時延需要17個Tq來補償。顯然一個位時間完全不夠來補償傳輸時延。
解決方法有兩種。一是增大位時間,增大傳播段的Tq組成數量,但是這種方法會降低位速率,因此和CAN FD高速目標相沖突。二是采用傳輸時延補償,即在發送節點回讀總線狀態時引入一段傳輸時延補償,進而保證位錯誤檢測的需要。而引入這段傳播時延補償的結果即為第二采樣點(secondary sample point,縮寫 SSP)。
SSP對于CAN FD控制器的重要性不言而喻,它是保證控制器在數據段實現位錯誤檢測功能的關鍵。使用SSP的發送節點會忽略它在采樣點檢測到的位錯誤。但是如果在SSP檢測到位錯誤,發送節點將會在下一個采樣點對檢測到的位錯誤發出錯誤幀。
07小結
ECU采樣點的位置設計是否得當對于通信有著相當大的影響。本文重點介紹了傳統CAN采樣點的測試方法,并簡要分析采樣點測試的誤差產生原因,同時就CAN FD采樣點測試的復雜性和第二采樣點進行了介紹。
北匯信息專注于汽車電子測試,后續將會為大家帶來更多的科普文章,介紹汽車電子及測試相關的知識。同時,也包括本文中所提到的CAN FD第二采樣點SSP的測試實踐經驗。注:圖片源自ISO 11898標準以及VC等。
-
芯片
+關注
關注
456文章
50955瀏覽量
424783 -
示波器
+關注
關注
113文章
6267瀏覽量
185352 -
CAN
+關注
關注
57文章
2757瀏覽量
463918
發布評論請先 登錄
相關推薦
評論