国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器

這篇具有很好參考價值的文章主要介紹了CAN總線基礎(chǔ)詳解以及stm32的CAN控制器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

CAN簡介

CAN總線拓撲圖

CAN總線特定

CAN應(yīng)用場景

CAN的物理層

CAN的協(xié)議層

CAN數(shù)據(jù)幀介紹

CAN位時序介紹

數(shù)據(jù)同步過程

硬件同步

再同步

CAN總線仲裁

stm32的CAN控制器

CAN控制器介紹

CAN控制器模式

CAN控制器框圖

接收過濾器

CAN控制器波特率計算

CAN相關(guān)寄存器

CAN主控制寄存器(CAN_MCR)

CAN位時序寄存器(CAN_BTR)

CAN 標(biāo)識符寄存器(CAN_(T/R)IxR)

數(shù)據(jù)長度和時間戳寄存器(CAN_(T/R)DTxR)

CAN低位數(shù)據(jù)寄存器(CAN_(T/R)DLxR)

CAN高位數(shù)據(jù)寄存器(CAN_(T/R)DHxR)

CAN過濾器模式寄存器(CAN_FM1R)

CAN過濾器位寬寄存器(CAN_FS1R)

CAN 過濾器FIFO關(guān)聯(lián)寄存器(CAN_FFA1R)

?CAN 過濾器激活寄存器(CAN_FA1R)

CAN 過濾器組x寄存器(CAN_FxR(1/2))


CAN簡介

????????CAN(Controller Area Network),是IOS國際標(biāo)準(zhǔn)化的串行通信協(xié)議 。為了滿足汽車產(chǎn)業(yè)的“減少線束的數(shù)量”、“通過多個LAN,進行大量數(shù)據(jù)的高速通信”的需求。

CAN總線的發(fā)展史:

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

  • 低速CAN(ISO11519)通信速率10~125Kbps,總線長度可達1000米
  • 高速CAN(ISO11898)通信速率125Kbps~1Mbps,總線長度≤40米(經(jīng)典CAN
  • CANFD 通信速率可達5Mbps,并且兼容經(jīng)典CAN,遵循ISO 11898-1 做數(shù)據(jù)收發(fā)

CAN總線拓撲圖

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

CAN總線由兩根線( CANL 和 CANH )組成,允許掛載多個設(shè)備節(jié)點(低速CAN:20 高速CAN:30)。

CAN總線特定

  1. ? 多主控制? 每個設(shè)備都可以主動發(fā)送數(shù)據(jù)
  2. ? 系統(tǒng)的柔軟性? 沒有類似地址的信息,添加設(shè)備不改變原來總線的狀態(tài)
  3. ? 通信速度? 速度快,距離遠
  4. ? 錯誤檢測&錯誤通知&錯誤恢復(fù)功能
  5. ? 故障封閉? 判斷故障類型,并且進行隔離
  6. ? 連接節(jié)點多? 速度與數(shù)量找個平衡

CAN應(yīng)用場景

CAN總線協(xié)議已廣泛應(yīng)用在汽車電子、工業(yè)自動化、船舶、醫(yī)療設(shè)備、工業(yè)設(shè)備等方面。

CAN的物理層

  1. CAN使用差分信號進行數(shù)據(jù)傳輸,根據(jù)CAN_H和CAN_L上的電位差來判斷總線電平。
  2. 總線電平分為顯性電平(邏輯0)和隱性電平(邏輯1),二者必居其一。
  3. 顯性電平具有優(yōu)先權(quán)。發(fā)送方通過使總線電平發(fā)生變化,將消息發(fā)送給接收方。

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

電平

高速CAN

低速CAN

顯性電平(0)

UCAN_H – UCAN_L=? 2V

UCAN_H – UCAN_L = 3V

隱性電平(1)

UCAN_H – UCAN_L = 0V

UCAN_H – UCAN_L = - 1.5V

CAN的協(xié)議層

CAN總線以“幀”形式進行通信。CAN協(xié)議定義了5種類型的幀:數(shù)據(jù)幀、遙控幀、錯誤幀、過載幀、間隔幀,其中數(shù)據(jù)幀最為常用。

幀類型

幀作用

數(shù)據(jù)幀(Data Frame)

用于發(fā)送單元向接收單元傳輸數(shù)據(jù)的幀

遙控幀(Remote Frame)

用于接收單元向具有相同ID的發(fā)送單元

請求數(shù)據(jù)的幀

錯誤幀(Error Frame)

用于當(dāng)檢測出錯誤時向其他單元通知

錯誤的幀

過載幀(Overload Frame)

用于接收單元通知其尚未做好接收準(zhǔn)備

的幀

間隔幀(Inter Frame Space)

用于將數(shù)據(jù)幀 及遙控幀與前面的幀

分離開來的幀

CAN數(shù)據(jù)幀介紹

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

  1. 幀起始:表示數(shù)據(jù)幀開始的段,顯性信號
  2. 數(shù)據(jù)段:數(shù)據(jù)的內(nèi)容,一幀可發(fā)送0~8字節(jié)數(shù)據(jù)
  3. 仲裁段:表示該幀優(yōu)先級的段,優(yōu)先級
  4. CRC段:檢查幀的傳輸錯誤的段
  5. ACK段:表示確認正常接收的段
  6. 控制段:表示數(shù)據(jù)的字節(jié)數(shù)及保留位的段
  7. 幀結(jié)束:表示數(shù)據(jù)幀結(jié)束的段,7個隱性信號

CAN位時序介紹

? CAN總線以“位同步”機制,實現(xiàn)對電平的正確采樣。位數(shù)據(jù)都由四段組成:同步段(SS)、傳播時間段(PTS)、相位緩沖段1(PBS1)和相位緩沖段2(PBS2),每段又由多個位時序Tq組成。

?采樣點是指讀取總線電平,并將讀到的電平作為位值的點。

?根據(jù)位時序,就可以計算CAN通信的波特率。

?注意 : 節(jié)點監(jiān)測到總線上信號的跳變在SS段范圍內(nèi),表示節(jié)點與總線的時序是同步,此時采樣點的電平即該位的電平。

數(shù)據(jù)同步過程

CAN為了實現(xiàn)對總線電平信號的正確采樣,數(shù)據(jù)同步分為硬件同步和再同步。

硬件同步

節(jié)點通過CAN總線發(fā)送數(shù)據(jù),一開始發(fā)送幀起始信號??偩€上其他節(jié)點會檢測幀起始信號在不在位數(shù)據(jù)的SS段內(nèi),判斷內(nèi)部時序與總線是否同步。如果起始信號不在SS段內(nèi),采樣點獲取的電平是不正確的,節(jié)點會采用硬件同步機制進行調(diào)整,把自己的SS段平移到檢測到邊沿的地方,此時采樣點獲取的電平是正確的。

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

再同步

再同步利用普通數(shù)據(jù)為的邊沿信號進行同步。再同步的情況分為兩種,邊沿信號相對于SS段的位置即超前和滯后。

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

再同步時,PSB1和PSB2中增加或減少的時間被稱為“再同步步長寬度(SJW)”,其范圍時1-4Tq,限定了SJW的值后,再同步時,不能增加限定長度的SJW值,SJW值較大時,吸收誤差的能力更強,但是通信速率會下降。

CAN總線仲裁

當(dāng)CAN總線處于空閑時,最先開始發(fā)送消息的單元獲取發(fā)送權(quán),當(dāng)多個單元同時發(fā)送時,從報文ID的第一位開始進行仲裁,連續(xù)輸出顯性電平最多的單元可以繼續(xù)發(fā)送,即首先出現(xiàn)隱形電平的單元失去對總線的控制權(quán),變?yōu)榻邮?。競爭失敗的單元自動檢測總線是否空閑,當(dāng)總線空閑會第一時間再次檢測發(fā)送。

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

stm32的CAN控制器

CAN控制器介紹

?STM32 CAN控制器(bxCAN),支持CAN 2.0A 和 CAN 2.0B Active版本協(xié)議。

?CAN 2.0A 只能處理標(biāo)準(zhǔn)數(shù)據(jù)幀且擴展幀的內(nèi)容會識別錯誤,而CAN 2.0B Active 可以處理標(biāo)準(zhǔn)數(shù)據(jù)幀和擴展數(shù)據(jù)幀。CAN 2.0B Passive只能處理標(biāo)準(zhǔn)數(shù)據(jù)幀且擴展幀的內(nèi)容會忽略。

?bxCAN主要特點:

  • ? 波特率最高可達1M bps
  • ? 支持時間觸發(fā)通信(CAN的硬件內(nèi)部定時器可以在TX/RX的幀起始位的采樣點位置生成時間戳)
  • ? 具有3級發(fā)送郵箱
  • ? 具有3級深度的2個接收FIFO
  • ? 可變的過濾器組(最多28個)

CAN控制器模式

CAN控制器的工作模式有三種:初始化模式、正常模式和睡眠模式。

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

CAN控制器的測試模式有三種:靜默模式、環(huán)回模式和環(huán)回靜默模式,這三種測試模式需要再初始化模式下進行配置。

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

CAN控制器框圖

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

  • CAN內(nèi)核:包含各種控制/狀態(tài)/配置寄存器,可以配置模式、波特率等
  • 發(fā)送郵箱:用來緩存待發(fā)送的報文,最多可以緩存3個報文
  • 接收FIFO:緩存接收到的有效報文
  • 接收過濾器:篩選有效報文?

發(fā)送處理

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

發(fā)送優(yōu)先級由郵箱中報文的標(biāo)識符決定。標(biāo)識符數(shù)值越低有最高優(yōu)先級。如果標(biāo)識符值相同,郵箱小的先被發(fā)送。

接收處理

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

?有效報文指的是(數(shù)據(jù)幀直到EOF段的最后一位都沒有錯誤),且通過過濾器組對標(biāo)識符過濾。

接收過濾器

當(dāng)總線上報文數(shù)據(jù)量很大時,總線上的設(shè)備會頻繁獲取報文,占用CPU。過濾器的存在,選擇性接收有效報文,減輕系統(tǒng)負擔(dān)。

每個過濾器組都有兩個32位寄存器CAN_FxR1和CAN_FxR2。根據(jù)過濾器組的工作模式不同(位寬和選擇模式),寄存器的作用不盡相同。

?位寬可設(shè)置32位或16位,寄存器存儲的內(nèi)容就有所區(qū)別。

過濾器組Reg

32位

16位(寄存器由兩部分組成)

CAN_FxR1

STDID[10:0]、EXTID[17:0]、

IDE、RTR

STDID[10:0]、EXTID[17:15]、

IDE、RTR

CAN_FxR2

STDID[10:0]、EXTID[17:0]、

IDE、RTR

STDID[10:0]、EXTID[17:15]、

IDE、RTR

?? ? ? 選擇模式可設(shè)置屏蔽位模式或標(biāo)識符列表模式,寄存器內(nèi)容的功能就有所區(qū)別。

屏蔽位模式,可以選擇出一組符合條件的報文。寄存器內(nèi)容功能相當(dāng)于是否符合條件。

?標(biāo)識符列表模式,可以選擇出幾個特定ID的報文。寄存器內(nèi)容功能就是標(biāo)識符本身。

CAN控制器波特率計算

?STM32的CAN外設(shè)位時序分為三段:

  • 同步段SYNC_SEG
  • 時間段1 BS1(PTS +PBS1)
  • ?時間段2 BS2?

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

波特率=1/(1tq+tq?(TS1[3:0]+1)+tq?(TS2[2:0]+1) )

CAN相關(guān)寄存器

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

CAN主控制寄存器(CAN_MCR)

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

CAN位時序寄存器(CAN_BTR)

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

CAN 標(biāo)識符寄存器(CAN_(T/R)IxR)

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

數(shù)據(jù)長度和時間戳寄存器(CAN_(T/R)DTxR)

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

CAN低位數(shù)據(jù)寄存器(CAN_(T/R)DLxR)

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

CAN高位數(shù)據(jù)寄存器(CAN_(T/R)DHxR)

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

CAN過濾器模式寄存器(CAN_FM1R)

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

CAN過濾器位寬寄存器(CAN_FS1R)

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

CAN 過濾器FIFO關(guān)聯(lián)寄存器(CAN_FFA1R)

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

?CAN 過濾器激活寄存器(CAN_FA1R)

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU

CAN 過濾器組x寄存器(CAN_FxR(1/2))

CAN總線基礎(chǔ)詳解以及stm32的CAN控制器,stm32,CAN總線,基礎(chǔ)詳解,MCU文章來源地址http://www.zghlxwxcb.cn/news/detail-822927.html

到了這里,關(guān)于CAN總線基礎(chǔ)詳解以及stm32的CAN控制器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 基于 STM32+FPGA 的多軸運動控制器的設(shè)計

    基于 STM32+FPGA 的多軸運動控制器的設(shè)計

    運動控制器是數(shù)控機床 、 高端機器人等自動化設(shè)備控制系統(tǒng)的核心 。 為保證控制器的實用性 、 實時性和穩(wěn)定 性, 提出一種以 STM32 為主控制器 、 FPGA 為輔助控制器的多軸運動控制器設(shè)計方案 。 給出了運動控制器的硬件電路設(shè)計 , 將 S 形加減速算法融入運動控制器 ,

    2024年01月17日
    瀏覽(49)
  • 基于STM32的智能家居控制器設(shè)計與實現(xiàn)

    基于STM32的智能家居控制器設(shè)計與實現(xiàn)

    一、項目背景 1.1 智能家居的發(fā)展與需求 隨著科技的不斷進步,智能家居成為現(xiàn)代生活中的一個熱門領(lǐng)域。智能家居通過將傳感器、執(zhí)行器、網(wǎng)絡(luò)和人機交互等技術(shù)融合在一起,實現(xiàn)了家居設(shè)備的智能化控制和管理。這為人們帶來了更便捷、舒適和安全的居住環(huán)境。智能家居

    2024年02月09日
    瀏覽(89)
  • STM32F4X SDIO(四) SDIO控制器

    STM32F4X SDIO(四) SDIO控制器

    STM32F4X內(nèi)部有一個SDIO控制器,開發(fā)者可以使用這個控制器跟SD卡進行通信,下面就來簡單了解一下STM32F4X的SDIO控制器的使用。 下圖為STM32F4X的SDIO控制器框圖,框圖可以分為以下5部分, 適配器寄存器 、 FIFO 、 控制單元 、 命令路徑 、 數(shù)據(jù)路徑 。 SDIO控制器時鐘 STM32F4X的所有

    2024年02月07日
    瀏覽(39)
  • 基于 STM32+FPGA 的通用工業(yè)控制器設(shè)計(一)系統(tǒng)方案設(shè)計

    基于 STM32+FPGA 的通用工業(yè)控制器設(shè)計(一)系統(tǒng)方案設(shè)計

    本章首先介紹了現(xiàn)有 PLC 系統(tǒng)的概況,然后提出了本文設(shè)計的通用工業(yè)控制器的 整體方案架構(gòu),分析了硬件和軟件上需要實現(xiàn)的功能,最后對各部分功能進行分析并提 出具體的實現(xiàn)方案。 2.1 PLC 系統(tǒng)簡介 可編程邏輯控制器( Programmable Logic Controller , PLC )是以微處理器為基

    2024年02月15日
    瀏覽(96)
  • STM32基于CAN總線協(xié)議控制步進電機

    STM32基于CAN總線協(xié)議控制步進電機

    如上圖所示,實現(xiàn)了以下功能: 1.兩塊stm32單片機通過CAN控制器與收發(fā)器進行半雙工通信; 2.stm32主機通過檢測按鍵,切換不同的模式,將不同模式的case值發(fā)送給stm32從機; 3.stm32從機根據(jù)收到的case值,控制步進電機進行不同的運動操作; 4.OLED用于顯示收發(fā)內(nèi)容與按鍵狀態(tài)等

    2024年01月19日
    瀏覽(20)
  • 【STM32 CubeMX】SPI層次結(jié)構(gòu)SPI協(xié)議與SPI控制器結(jié)構(gòu)

    【STM32 CubeMX】SPI層次結(jié)構(gòu)SPI協(xié)議與SPI控制器結(jié)構(gòu)

    隨著嵌入式系統(tǒng)的迅猛發(fā)展,STM32系列微控制器在各種應(yīng)用中得到廣泛應(yīng)用。在嵌入式系統(tǒng)設(shè)計中,串行外設(shè)接口(SPI)是一種常見且重要的通信協(xié)議。為了更便捷地配置和使用SPI,STMicroelectronics提供了一款強大的工具——STM32 CubeMX。本文將著重介紹STM32 CubeMX中SPI的層次結(jié)構(gòu)

    2024年02月20日
    瀏覽(28)
  • STM32 FSMC (Flexible static memory controller) 靈活靜態(tài)內(nèi)存控制器介紹

    STM32 FSMC (Flexible static memory controller) 靈活靜態(tài)內(nèi)存控制器介紹

    說到STM32的FSMC(Flexible Static Memory Controller),這個玩意兒可真是STM32家族的“多面手”。想象一下,如果STM32是個熱衷于DIY的工程師,那FSMC就是他的瑞士軍刀,無論是連接SRAM、PSRAM、NOR/NAND Flash還是LCD模塊,F(xiàn)SMC都能應(yīng)對自如,簡直就是連接外部存儲和記憶界的“橋梁”。 FSM

    2024年02月21日
    瀏覽(23)
  • CAN收發(fā)器與CAN控制器

    CAN收發(fā)器是一種用于CAN總線通信的專用芯片,主要用于將CAN控制器和CAN總線物理層之間的信號進行轉(zhuǎn)換和調(diào)節(jié)。它的主要作用是將CAN控制器輸出的數(shù)字信號轉(zhuǎn)換為CAN總線所需要的物理信號,同時將CAN總線上接收到的物理信號轉(zhuǎn)換為數(shù)字信號,并將其傳遞給CAN控制器進行處理。

    2024年01月24日
    瀏覽(22)
  • 運動控制器設(shè)計——基于FreeModbus在STM32F4平臺實現(xiàn)ModbusTCP和ModbusRTU

    運動控制器設(shè)計——基于FreeModbus在STM32F4平臺實現(xiàn)ModbusTCP和ModbusRTU

    本文筆者最近的項目是設(shè)計一款運動控制器,MCU使用的是STM32F429,要求是通過Modbus TCP協(xié)議實現(xiàn)與示教器通訊,并通過ModbusRTU實現(xiàn)與觸摸屏通訊。 本文將介紹在STM32F4上實現(xiàn) ModbusTCP和ModbusRTU通訊 的過程。筆者才疏學(xué)淺,如有錯誤還請指正。 Modbus協(xié)議是典型的主-從通訊結(jié)構(gòu),鏈

    2024年02月05日
    瀏覽(14)
  • CAN總線詳解及STM32的CAN通信編程指南

    CAN總線詳解及STM32的CAN通信編程指南

    對于CAN通信而言,本人之前也未接觸了解過,由于實習(xí)的技術(shù)要求,因此也花費了一段時間對CAN通信進行學(xué)習(xí),并且實現(xiàn)了基于STM32的CAN環(huán)回靜默模式通信,因此寫一遍比較詳細的文章對該內(nèi)容進行總結(jié)。本文的參考資料有STM32的中文參考手冊、協(xié)議手冊等。話不多說開始吧!

    2024年02月11日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包