CAN總線一直以來以穩(wěn)定、容錯性高而著稱。要想達(dá)到這樣的效果,其獨(dú)特的同步機(jī)制是非常重要的一點(diǎn),本文將為大家講解一下CAN總線的同步機(jī)制以及SJW的作用所在。
CAN總線的同步共有兩種方式:硬同步和重同步。
硬同步
在總線剛剛從空閑狀態(tài)中走出來的時候,在幀頭的位置都會進(jìn)行一次同步。此時所有的節(jié)點(diǎn)位時間重新開始,就像所有的運(yùn)動員都再一次回到了起跑線上。這種同步方式被稱作硬同步。
重同步
硬同步時只是在有幀起始信號時起作用,無法確保后續(xù)一連串的位時序都是同步的,這個時候重同步就到了發(fā)揮作用的時候。具體來說,CAN總線的一個位時間中包含兩個緩沖段BS1和BS2:
在兩個緩沖段中間的位置,即是讀取總線電平的采樣點(diǎn)位置,當(dāng)檢測到總線上存在相位差的時候,通過延長BS1段或縮短BS2段來獲得同步,這樣的方式稱為重新同步。
這兩個相位緩沖段的延長時間或縮短時間上限由再同步跳轉(zhuǎn)寬度(SJW)給定。采樣點(diǎn)是接收節(jié)點(diǎn)判斷信號邏輯的位置,CAN通訊屬于異步通訊,需要通過不斷的重新同步才能保證收發(fā)節(jié)點(diǎn)的采樣準(zhǔn)確,所以SJW(同步跳轉(zhuǎn)寬度)決定了接收節(jié)點(diǎn)是否能有比較好的兼容性。如下圖,即是某CAN總線中利用ZLG CANscope進(jìn)行的采樣點(diǎn)與位寬度容忍的快速測試結(jié)果:
因此,使用CAN總線的時候,發(fā)現(xiàn)位寬度有偏差,則需要對其程序中的位定時寄存器或者晶振進(jìn)行修正。比如不要使用帶小數(shù)點(diǎn)的晶振,如11.0592HZ。這樣算出來的波特率肯定不準(zhǔn)。不要使用陶瓷晶振,會有偏差超過1%的概率,即使重同步也會失敗。
波特率計(jì)算時,提高適應(yīng)范圍,需要保證12-20(特征16)個的位時間因子,然后通過提高正常節(jié)點(diǎn)波特率寄存器中的同步跳轉(zhuǎn)寬度SJW值(加大到2-3個單位時間)來實(shí)現(xiàn)。比如使用ZLG兩款波特率計(jì)算工具,可以計(jì)算出良好的波特率寄存器值。
-
CAN總線
+關(guān)注
關(guān)注
145文章
1954瀏覽量
130919 -
寄存器
+關(guān)注
關(guān)注
31文章
5359瀏覽量
120796 -
異步通訊
+關(guān)注
關(guān)注
0文章
12瀏覽量
7498
原文標(biāo)題:CAN總線的同步有何奧秘?
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
![](https://file.elecfans.com/web2/M00/B1/10/poYBAGS0rcOAep9KAAJucT2wrSI639.jpg)
Linux內(nèi)核同步機(jī)制
設(shè)計(jì)時間同步機(jī)制關(guān)注的主要性能參數(shù)
Vulkan同步機(jī)制和圖形轉(zhuǎn)換的風(fēng)險
用于無線網(wǎng)絡(luò)MMORPG的同步機(jī)制
![用于無線網(wǎng)絡(luò)MMORPG的<b class='flag-5'>同步機(jī)制</b>](https://file.elecfans.com/web2/M00/48/FA/pYYBAGKhtDGAKl-OAAAPUFHKMZI331.jpg)
CAN總線通信原理分析
![<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>通信原理分析](https://file.elecfans.com/web2/M00/49/5A/pYYBAGKhtEiAHkGJAAAS97H8d1M052.jpg)
你知道linux 同步機(jī)制的complete?
可以了解并學(xué)習(xí)Linux 內(nèi)核的同步機(jī)制
Linux內(nèi)核的同步機(jī)制
![Linux內(nèi)核的<b class='flag-5'>同步機(jī)制</b>](https://file.elecfans.com/web1/M00/C7/94/pIYBAF9pVvuAFj5iAABERLK12ao454.png)
CAN總線同步機(jī)制/地址機(jī)制/仲裁機(jī)制分析
![<b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>同步機(jī)制</b>/地址<b class='flag-5'>機(jī)制</b>/仲裁<b class='flag-5'>機(jī)制</b>分析](https://file.elecfans.com/web1/M00/D6/81/o4YBAF_kARKARa36AAEGGNW26J0073.png)
CAN總線的同步有何奧秘
基于有限狀態(tài)機(jī)的FlexRay時鐘同步機(jī)制
![基于有限狀態(tài)機(jī)的FlexRay時鐘<b class='flag-5'>同步機(jī)制</b>](https://file.elecfans.com/web1/M00/E8/3F/pIYBAGBj3SCAK6OBAABOX_9lHnQ651.png)
評論