0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CAN總線的同步機制以及SJW的作用所在

AGk5_ZLG_zhiyua ? 來源:lp ? 2019-03-14 16:33 ? 次閱讀

CAN總線一直以來以穩(wěn)定、容錯性高而著稱。要想達到這樣的效果,其獨特的同步機制是非常重要的一點,本文將為大家講解一下CAN總線的同步機制以及SJW的作用所在。

CAN總線的同步共有兩種方式:硬同步和重同步。

硬同步

在總線剛剛從空閑狀態(tài)中走出來的時候,在幀頭的位置都會進行一次同步。此時所有的節(jié)點位時間重新開始,就像所有的運動員都再一次回到了起跑線上。這種同步方式被稱作硬同步。

重同步

硬同步時只是在有幀起始信號時起作用,無法確保后續(xù)一連串的位時序都是同步的,這個時候重同步就到了發(fā)揮作用的時候。具體來說,CAN總線的一個位時間中包含兩個緩沖段BS1和BS2:

在兩個緩沖段中間的位置,即是讀取總線電平的采樣點位置,當檢測到總線上存在相位差的時候,通過延長BS1段或縮短BS2段來獲得同步,這樣的方式稱為重新同步。

這兩個相位緩沖段的延長時間或縮短時間上限由再同步跳轉(zhuǎn)寬度(SJW)給定。采樣點是接收節(jié)點判斷信號邏輯的位置,CAN通訊屬于異步通訊,需要通過不斷的重新同步才能保證收發(fā)節(jié)點的采樣準確,所以SJW(同步跳轉(zhuǎn)寬度)決定了接收節(jié)點是否能有比較好的兼容性。如下圖,即是某CAN總線中利用ZLG CANscope進行的采樣點與位寬度容忍的快速測試結(jié)果:

因此,使用CAN總線的時候,發(fā)現(xiàn)位寬度有偏差,則需要對其程序中的位定時寄存器或者晶振進行修正。比如不要使用帶小數(shù)點的晶振,如11.0592HZ。這樣算出來的波特率肯定不準。不要使用陶瓷晶振,會有偏差超過1%的概率,即使重同步也會失敗。

波特率計算時,提高適應(yīng)范圍,需要保證12-20(特征16)個的位時間因子,然后通過提高正常節(jié)點波特率寄存器中的同步跳轉(zhuǎn)寬度SJW值(加大到2-3個單位時間)來實現(xiàn)。比如使用ZLG兩款波特率計算工具,可以計算出良好的波特率寄存器值。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • CAN總線
    +關(guān)注

    關(guān)注

    145

    文章

    1898

    瀏覽量

    130337
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119206
  • 異步通訊
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    7459

原文標題:CAN總線的同步有何奧秘?

文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    CAN總線的位定時與同步機制#汽車CAN總線?

    CAN總線
    北匯信息POLELINK
    發(fā)布于 :2023年07月17日 10:57:12

    Linux內(nèi)核同步機制

    在現(xiàn)代操作系統(tǒng)里,同一時間可能有多個內(nèi)核執(zhí)行流在執(zhí)行,因此內(nèi)核其實象多進程多線程編程一樣也需要一些同步機制同步各執(zhí)行單元對共享數(shù)據(jù)的訪問。尤其是在多處理器系統(tǒng)上,更需要一些同步機制同步
    發(fā)表于 08-06 07:08

    設(shè)計時間同步機制關(guān)注的主要性能參數(shù)

    大小的影響。另外,還得考慮節(jié)點的能耗以及應(yīng)用相關(guān)性等特點和約束條件?! ?、時間同步機制設(shè)計中應(yīng)當考慮的因素  無線傳感器網(wǎng)絡(luò)中的時閭同步機制設(shè)計會受到很多因素的影響。苜先,傳感器節(jié)點需要彼此并行操作
    發(fā)表于 12-31 17:09

    Vulkan同步機制和圖形轉(zhuǎn)換的風(fēng)險

    Vulkan同步機制和圖形-計算-圖形轉(zhuǎn)換的風(fēng)險(一)
    發(fā)表于 01-21 06:17

    關(guān)于CAN總線位定時和同步機制的簡要分析

    關(guān)于CAN總線位定時和同步機制的簡要分析
    發(fā)表于 05-28 06:05

    RTT中的消息同步機制是如何實現(xiàn)的?

    RTT中的消息同步機制是如何實現(xiàn)的
    發(fā)表于 11-02 07:00

    用于無線網(wǎng)絡(luò)MMORPG的同步機制

    針對手機和 無線網(wǎng)絡(luò) 的限制條件,設(shè)計了一套可行的應(yīng)用在手機多人在線角色扮演類游戲上的網(wǎng)絡(luò)游戲同步機制. 分析了同步技術(shù)中的延時問題及其對游戲交互性和公平性的影響以及
    發(fā)表于 06-10 15:51 ?13次下載
    用于無線網(wǎng)絡(luò)MMORPG的<b class='flag-5'>同步機制</b>

    CAN總線通信原理分析

    基于CAN總線系統(tǒng)結(jié)構(gòu)構(gòu)成,通過工程實踐的具體應(yīng)用以及CAN控制器及收發(fā)器硬件結(jié)構(gòu)的深入理解,并從通信的角度出發(fā)著重深入分析了CAN
    發(fā)表于 05-08 15:23 ?404次下載
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>通信原理分析

    你知道linux 同步機制的complete?

    在Linux內(nèi)核中,completion是一種簡單的同步機制,標志"things may proceed"。 要使用completion,必須在文件中包含,同時創(chuàng)建一個類型為struct completion的變量。
    發(fā)表于 04-24 11:45 ?1161次閱讀

    可以了解并學(xué)習(xí)Linux 內(nèi)核的同步機制

    Linux內(nèi)核同步機制,挺復(fù)雜的一個東西,常用的有自旋鎖,信號量,互斥體,原子操作,順序鎖,RCU,內(nèi)存屏障等。
    發(fā)表于 05-14 14:10 ?641次閱讀

    Linux內(nèi)核的同步機制

    在現(xiàn)代操作系統(tǒng)里,同一時間可能有多個內(nèi)核執(zhí)行流在執(zhí)行,因此內(nèi)核其實像多進程多線程編程一樣也需要一些同步機制同步各執(zhí)行單元對共享數(shù)據(jù)的訪問,尤其是在多處理器系統(tǒng)上,更需要一些同步機制同步
    的頭像 發(fā)表于 09-22 09:46 ?2168次閱讀
    Linux內(nèi)核的<b class='flag-5'>同步機制</b>

    CAN總線同步機制/地址機制/仲裁機制分析

    CAN(ControllerAreaNetwork)總線,即控制器局域網(wǎng)總線,在工業(yè)控制、醫(yī)療電子、家用電器及傳感器領(lǐng)域都得到了廣泛的應(yīng)用。
    發(fā)表于 12-24 10:45 ?7630次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>同步機制</b>/地址<b class='flag-5'>機制</b>/仲裁<b class='flag-5'>機制</b>分析

    CAN總線同步有何奧秘

    CAN總線一直以來以穩(wěn)定、容錯性高而著稱。要想達到這樣的效果,其獨特的同步機制是非常重要的一點,本文將為大家講解一下CAN總線
    的頭像 發(fā)表于 12-26 02:52 ?1364次閱讀

    基于有限狀態(tài)機的FlexRay時鐘同步機制

    工作的能力,其信息傳輸?shù)拇_定性離不開其內(nèi)部的時鐘同步機制的支持。時鐘同步機制可根據(jù)該節(jié)點啟動的不同工作階段,定義成不同的工作狀態(tài),如初始化、等待接收同步幀等。考慮到傳統(tǒng)的FSM方法建立模型存在代碼難以復(fù)用、維護困難等問題,本文基
    的頭像 發(fā)表于 03-31 10:22 ?3305次閱讀
    基于有限狀態(tài)機的FlexRay時鐘<b class='flag-5'>同步機制</b>

    淺談Linux kernel中的同步機制

    同步就是進程與進程之間,進程與系統(tǒng)資源之間的交互。由于 Linux內(nèi)核采用的是多任務(wù),所以在多個進程之間,必須要有同步機制來保證彼此協(xié)調(diào)。
    的頭像 發(fā)表于 05-04 17:06 ?760次閱讀