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