采樣點是接收節(jié)點判斷信號邏輯的位置,采樣點對CAN總線來說極其重要,尤其是在組網(wǎng)的時候,多個節(jié)點盡量保持同一個采樣點,若網(wǎng)絡(luò)中節(jié)點采樣點不一致會導(dǎo)致同樣的采樣頻率出現(xiàn)采樣錯誤,進而會使整個網(wǎng)絡(luò)出現(xiàn)故障。
一、采樣點的規(guī)則及原理
CAN 協(xié)議里將一個位時間分為同步段、傳播段、相位緩沖段 1 和相位緩沖段 2。這些段又由稱之為Time Quantum(以下稱為Tq)的最小時間單位構(gòu)成。1位由多少個Tq構(gòu)成、每個段由多少個Tq構(gòu)成等是可以設(shè)定的。通過設(shè)置bit時序,使得可以設(shè)定一個采樣點以使總線上多個單元可同時采樣,所謂采樣點就是在這一時刻總線上的電平被鎖存,這個鎖存的電平作為位的值。采樣點的位置在相位緩沖段1(PBS1)的結(jié)束處。
圖1 CAN 位時間結(jié)構(gòu)圖
l同步段(SS):多個連接在總線上的單元通過此段實現(xiàn)時序調(diào)整,同步進行接收和發(fā)送工作,邊沿包含在此段中;
l傳播時間段(PTS):用于補償網(wǎng)絡(luò)上所有的物理延遲;
l相位緩沖段1(PBS1)和相位緩沖段2(PBS2):當(dāng)信號不能被包換于(SS)段中時,可在此段進行補償;
l采樣點:讀取并解釋總線上各位值的一個時間點。
采樣點位置如圖1所示,它是讀取總線電平,并將讀到的電平作為位值的點,所以從一個位的開始到采樣點的時間占一個完整位的總時間的百分比就是所求的采樣點的值:sample =(1+TSEG1)/(1+TSEG1+TSEG2)。
二、采樣點測試原理
測試原理:波特率采樣點是CAN節(jié)點判斷位邏輯值的判斷點。采用干擾的手段,將采樣點位置的邏輯電平破壞,則這個CAN報文將出現(xiàn)錯誤。以此就可以確定干擾的位置為采樣點位置。如圖2所示,使用我們的CANScope-Pro的錯誤與干擾功能,可以調(diào)整需要翻轉(zhuǎn)的位偏移時間與持續(xù)時間,發(fā)送此錯誤的報文給DUT。通過遞進式移動干擾位置,查看總線出現(xiàn)錯誤幀的情況,則出現(xiàn)錯誤幀的偏移時間(圖中紅色箭頭)為采樣點位置。
圖2 采樣點測試原理
本測試使用CANScope-Pro和CANScope-StressZ。需要DUT上電后,初始化控制器后,不發(fā)送CAN報文,方便進行測試。CANScope可以勾選總線應(yīng)答。如圖所示,進行測試連接。使能CANScope-StressZ的RHL為60歐。
圖3 采樣點測試連接
執(zhí)行CANScope-Pro的“采樣點測試”功能,如圖4所示。點擊開始測試后。
圖4 采樣點測試
稍等片刻,即可出現(xiàn)測試結(jié)果,如圖5所示,測試出來的采樣點結(jié)果為85%~95%。
圖5 采樣點測試結(jié)果
三、常規(guī)采樣點的設(shè)計
采樣點對CAN總線來說非常重要,在組網(wǎng)的時候,多個節(jié)點應(yīng)盡量保持同一個采樣點,且最好在但不超過7/8位時間點上,標準中也給了如下幾個例子。
關(guān)于采樣點的計算,sample =(1+TSEG1)/(1+TSEG1+TSEG2).
例如上面的計算舉例:晶振時鐘頻率16M, SJW為1個Tq, TSEG1 為13, TSEG2為2,則采樣點計算帶入上面的公式,sample =(1+13)/(1+13+2)=87.5%.
最后建議大家盡可能的把采樣點設(shè)置為 CiA 推薦的值:當(dāng)波特率 > 800K采樣點75%,當(dāng)波特率 > 500K采樣點80%, 當(dāng)波特率 <= 500K采樣點87.5% 。