一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

CANOpen系列教程05_ CAN總線同步與位填充、優(yōu)先級(jí)的決定

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 2020-03-06 16:13 ? 次閱讀

1寫在前面

繼續(xù)為大家更新CAN總線協(xié)議相關(guān)內(nèi)容,這些內(nèi)容其實(shí)也比較重要,會(huì)直接影響到你后期CAN總線的編程,夸張一點(diǎn)的說會(huì)影響到你的軟件架構(gòu)。

本文內(nèi)容相對(duì)來(lái)說比較容易理解,初學(xué)者有必要了解一下。

2

位填充

位填充是為防止突發(fā)錯(cuò)誤而設(shè)定的功能。當(dāng)同樣的電平持續(xù) 5 位時(shí)則添加一個(gè)位的反型數(shù)據(jù)。

這個(gè)功能很好理解,如下圖所示。位填充的數(shù)據(jù)不需要編程控制,由控制器自動(dòng)完成。其目的也是提高CAN總線的穩(wěn)定性。

(1) 發(fā)送單元的工作

在發(fā)送數(shù)據(jù)幀和遙控幀時(shí), SOF~CRC 段間的數(shù)據(jù),相同電平如果持續(xù) 5 位,在下一個(gè)位(第 6 個(gè)位)則要插入 1 位與前 5 位反型的電平。

(2) 接收單元的工作

在接收數(shù)據(jù)幀和遙控幀時(shí), SOF~CRC 段間的數(shù)據(jù),相同電平如果持續(xù) 5 位,需要?jiǎng)h除下一個(gè)位(第 6 個(gè)位)再接收。如果這個(gè)第 6 個(gè)位的電平與前 5 位相同,將被視為錯(cuò)誤并發(fā)送錯(cuò)誤幀。

3

優(yōu)先級(jí)的決定

前面講述“CAN 總線差分信號(hào)”時(shí)描述了顯性和隱性,其實(shí)這是CAN總線的特點(diǎn),也是決定CAN總線優(yōu)先級(jí)比較重要的功能。

在CAN總線空閑態(tài),最先開始發(fā)送消息的單元獲得發(fā)送權(quán)。

多個(gè)單元同時(shí)開始發(fā)送時(shí),各發(fā)送單元從仲裁段的第一位開始進(jìn)行仲裁。連續(xù)輸出顯性電平最多的單元可繼續(xù)發(fā)送。

上圖描述了CAN控制仲裁的過程,單元2最終獲得了搶占CAN總線的權(quán)利,也就是說單元2具有更高的優(yōu)先級(jí)。

當(dāng)單元1 仲裁失利時(shí),自動(dòng)轉(zhuǎn)換為接收(本來(lái)該發(fā)送,優(yōu)先級(jí)比別人低,就開始接收數(shù)據(jù)了。 同時(shí),控制器將會(huì)在下一輪繼續(xù)發(fā)送這次未完成的數(shù)據(jù))。

3.1 數(shù)據(jù)幀和遙控幀的優(yōu)先級(jí)

具有相同 ID 的數(shù)據(jù)幀和遙控幀在總線上競(jìng)爭(zhēng)時(shí),仲裁段的最后一位(RTR)為顯性位的數(shù)據(jù)幀具有優(yōu)先權(quán),可繼續(xù)發(fā)送。

數(shù)據(jù)幀和遙控幀的仲裁過程如下圖:

3.2 標(biāo)準(zhǔn)格式和擴(kuò)展格式的優(yōu)先級(jí)

標(biāo)準(zhǔn)格式 ID 與具有相同 ID 的遙控幀或者擴(kuò)展格式的數(shù)據(jù)幀在總線上競(jìng)爭(zhēng)時(shí),標(biāo)準(zhǔn)格式的 RTR 位為顯性位的具有優(yōu)先權(quán),可繼續(xù)發(fā)送。

提示:

不明白數(shù)據(jù)幀和遙控幀,標(biāo)準(zhǔn)格式和擴(kuò)展格式之間差異的朋友,建議參看我上一篇文章《CANOpen系列教程04》。

4

其他

CAN總線協(xié)議的重要內(nèi)容在這前面基本是講述的差不多了,還有一些不是很重要的內(nèi)容,比如硬件設(shè)計(jì)需要在CAN_H和CAN_L之間添加一個(gè)120歐電阻,總線的傳輸距離等。

接下來(lái)的文章會(huì)結(jié)合STM32芯片集成CAN控制器、例程講述如何編程控制CAN總線數(shù)據(jù)的收發(fā)等。

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

    關(guān)注

    57

    文章

    2836

    瀏覽量

    466273
  • CANopen
    +關(guān)注

    關(guān)注

    8

    文章

    293

    瀏覽量

    44368
  • 換位填充
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    1736
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    配電柜—斷電危機(jī)?配電柜故障排查優(yōu)先級(jí)指南

    在排查配電柜故障過程中,合理安排排查優(yōu)先級(jí)至關(guān)重要。下面聊一下如何科學(xué)合理安排配電柜故障排查優(yōu)先級(jí)順序。
    的頭像 發(fā)表于 03-06 18:55 ?192次閱讀
    配電柜—斷電危機(jī)?配電柜故障排查<b class='flag-5'>優(yōu)先級(jí)</b>指南

    CAN總線與LIN總線的區(qū)別

    不同的數(shù)據(jù)傳輸速率,從最低的10 kbps到最高的1 Mbps。 拓?fù)浣Y(jié)構(gòu): 通常采用雙絞線結(jié)構(gòu),支持多點(diǎn)通信。 錯(cuò)誤檢測(cè): 具有強(qiáng)大的錯(cuò)誤檢測(cè)機(jī)制,包括錯(cuò)誤、幀錯(cuò)誤等。 仲裁機(jī)制: 使用基于優(yōu)先級(jí)的非破壞性總線仲裁機(jī)制。 L
    的頭像 發(fā)表于 11-12 10:13 ?4027次閱讀

    CAN總線通信中的數(shù)據(jù)幀結(jié)構(gòu)解析

    幀由多個(gè)字段組成,每個(gè)字段都有特定的功能和長(zhǎng)度。一個(gè)標(biāo)準(zhǔn)的CAN數(shù)據(jù)幀包括以下部分: 幀起始 (SOF):表示數(shù)據(jù)幀的開始,由一個(gè)顯性(邏輯0)組成。 仲裁段 :用于確定發(fā)送優(yōu)先級(jí)。 幀ID :標(biāo)識(shí)數(shù)據(jù)幀的唯一標(biāo)識(shí)符。 遠(yuǎn)程傳
    的頭像 發(fā)表于 11-12 10:12 ?2447次閱讀

    CAN總線通信協(xié)議詳解

    的主要特點(diǎn) 多主控制 :任何節(jié)點(diǎn)都可以在任何時(shí)候發(fā)送信息,無(wú)需請(qǐng)求許可。 非破壞性總線仲裁 :當(dāng)兩個(gè)或多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送信息時(shí),優(yōu)先級(jí)較低的消息會(huì)被自動(dòng)停止發(fā)送,以避免數(shù)據(jù)沖突。 錯(cuò)誤檢測(cè)與處理 :CAN
    的頭像 發(fā)表于 11-12 09:46 ?2828次閱讀

    freertos中斷優(yōu)先級(jí)在哪設(shè)置

    FreeRTOS是一個(gè)流行的實(shí)時(shí)操作系統(tǒng),它廣泛應(yīng)用于嵌入式系統(tǒng)開發(fā)。在FreeRTOS中,中斷優(yōu)先級(jí)是一個(gè)重要的概念,因?yàn)樗?b class='flag-5'>決定了中斷處理的順序和響應(yīng)時(shí)間。 1. 理解中斷優(yōu)先級(jí) 在討論如何設(shè)置
    的頭像 發(fā)表于 09-02 14:17 ?1198次閱讀

    CAN總線知識(shí)】CAN總線信號(hào)傳輸?shù)?b class='flag-5'>位定時(shí)與同步理論

    CAN協(xié)議與其它現(xiàn)場(chǎng)總線協(xié)議的區(qū)別中有一個(gè)是:它使用同步數(shù)據(jù)傳輸而不是異步傳輸(面向字符)。這意味著傳輸性能得到更有效的發(fā)揮,但是另一方面,這需要更加復(fù)雜的
    的頭像 發(fā)表于 07-17 08:25 ?1929次閱讀
    【<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>知識(shí)】<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>信號(hào)傳輸?shù)?b class='flag-5'>位</b>定時(shí)與<b class='flag-5'>位</b><b class='flag-5'>同步</b>理論

    APS智能優(yōu)化排產(chǎn)軟件的優(yōu)先級(jí)應(yīng)用

    資源、訂單需求和約束條件,自動(dòng)計(jì)算出最優(yōu)的生產(chǎn)計(jì)劃。在這個(gè)過程中,訂單排產(chǎn)的優(yōu)先規(guī)則起著至關(guān)重要的作用。1.交期優(yōu)先級(jí)交期優(yōu)先級(jí)是訂單排產(chǎn)中最基本的優(yōu)先規(guī)則。根據(jù)
    的頭像 發(fā)表于 06-26 17:43 ?610次閱讀
    APS智能優(yōu)化排產(chǎn)軟件的<b class='flag-5'>優(yōu)先級(jí)</b>應(yīng)用

    ESP32S2如何設(shè)置中斷優(yōu)先級(jí)?

    ESP32S2有六級(jí)中斷, 如何設(shè)置中斷優(yōu)先級(jí)? 比如在GPIO例程里 ,這種中斷優(yōu)先級(jí)是如何設(shè)置的呢? 中斷寄存器列表里 ,只有簡(jiǎn)稱,哪里能獲取這個(gè)名稱所對(duì)應(yīng)的功能??
    發(fā)表于 06-21 07:59

    請(qǐng)問有什么方法降低WIFI中斷的優(yōu)先級(jí)?

    因?yàn)轫?xiàng)目對(duì)時(shí)序輸出要求比較嚴(yán)格,WIFI中斷優(yōu)先級(jí)比硬件定時(shí)器中斷優(yōu)先級(jí)要高,在定時(shí)器中斷里面對(duì)GPIO管腳控制被延長(zhǎng)執(zhí)行,請(qǐng)問有什么方法降低WIFI中斷的優(yōu)先級(jí)?
    發(fā)表于 06-19 07:37

    CAN總線的傳輸速率由什么決定

    CAN(Controller Area Network)總線是一種用于汽車和工業(yè)自動(dòng)化領(lǐng)域的通信協(xié)議,具有高可靠性、實(shí)時(shí)性和靈活性。CAN總線的傳輸速率是衡量其性能的重要指標(biāo)之一,它
    的頭像 發(fā)表于 06-16 10:17 ?2408次閱讀

    如何在不同優(yōu)先級(jí)安裝相同的處理程序?

    在不同的優(yōu)先級(jí)中安裝相同的處理程序? 我需要一個(gè)解決方案,在不同的優(yōu)先級(jí)中安裝相同的處理程序(ISR),以便在我的項(xiàng)目中處理 CAT2 中斷,但我不能上傳項(xiàng)目,因?yàn)槲液炇鹆?NDA。
    發(fā)表于 05-28 08:13

    systick的中斷優(yōu)先級(jí)是否應(yīng)該設(shè)置為最高優(yōu)先級(jí)的嵌套中斷?

    最近在學(xué)習(xí)ucosii有這樣一個(gè)疑問,關(guān)于stm32的systick作為ucosii的基準(zhǔn)時(shí)鐘,systick的中斷優(yōu)先級(jí)是否應(yīng)該設(shè)置為最高優(yōu)先級(jí)的嵌套中斷。理由是什么?各位大俠求指教?。?!
    發(fā)表于 05-16 06:44

    stm32的中斷優(yōu)先級(jí)分組了之后還能改分組嗎?

    如標(biāo)題所示,stm32的中斷優(yōu)先級(jí)分組了之后還能改分組嗎? 比如我要使用外部中斷EXIT2,3,我在配置的時(shí)候配置了優(yōu)先級(jí)分組2組,然后配置了EXIT2,3,如果我下面又想開外部中斷的EXIT4,5的話,我是不是必須還的要使用優(yōu)先級(jí)
    發(fā)表于 05-13 08:40

    創(chuàng)建了兩個(gè)task如果一個(gè)優(yōu)先級(jí)高 一個(gè)優(yōu)先級(jí)低,高優(yōu)先級(jí)的那個(gè)一直在做,什么時(shí)候會(huì)調(diào)度到低優(yōu)先級(jí)的呢?

    創(chuàng)建了兩個(gè)task如果一個(gè)優(yōu)先級(jí)高一個(gè)優(yōu)先級(jí)低, 我看到任務(wù)的函數(shù)都是用死循環(huán)做的,那個(gè)高優(yōu)先級(jí)的那個(gè)一直在做,什么時(shí)候會(huì)調(diào)度到低優(yōu)先級(jí)的呢?
    發(fā)表于 05-13 07:13

    STM8中斷優(yōu)先級(jí)不夠怎么解決?

    STM8L 中,中斷優(yōu)先級(jí)通過下面函數(shù)設(shè)置,但此處僅 ITC_PriorityLevel_1,ITC_PriorityLevel_2,ITC_PriorityLevel_3總共才3個(gè)中斷優(yōu)先級(jí)可設(shè)
    發(fā)表于 05-06 06:54