熟悉CAN總線的朋友應該都知道,CAN通信中的每一位分爲四個部分,在CAN中線的標準裏都有明確描述,之前在CAN總線的相關推送裏也講過幾次,尤其在配置CAN總線通信波特率的時候,這幾個時間段都要在相關寄存器配置。具體如下圖所示:
而單採樣點一般位於相位緩衝段1之後,採樣點顧名思義,從名字就可以看出,是讀取總線電平,並解釋各位的值的一個時間點,採樣點對CAN總線來說也非常重要,尤其在組網的時候,多個節點儘量保持同一個採樣點,且最好在但不超過7/8位時間點上。標準中也給了幾個例子
而CAN組織CiA也對採樣點進行了詳細的描述。
雖然有時候,同一個波特率可以有幾個對應的位時間段配置,但還是要選擇一個符合最佳採樣點的配置,在J1939標準中還給出了幾個例子
關於採樣點的計算,(1+TSEG1)/(1+TSEG1+TSEG2) 例如上面的計算舉例:
晶振時鐘頻率11M, SJW爲1個Tq, TSEG1 爲18, TSEG2爲3,則採樣點計算帶入上面的公式, (1+18)/(1+18+3) = 86.3636%約等於86%。其他計算類似。希望對你有所幫助,在自己動手寫CAN通信配置CAN位速率的時候儘量使採樣點靠近7/8位時間點
一般SJW設置爲1.