h1_key

當(dāng)前位置:首頁(yè) >新聞資訊 > 技術(shù)文章>STM32中的CAN芯片簡(jiǎn)介
STM32中的CAN芯片簡(jiǎn)介
2023-04-10 3608次

  1.1CAN簡(jiǎn)介

CAN芯片Controller Area Network 的縮寫(xiě)(以下稱為CAN),是ISO國(guó)際標(biāo)準(zhǔn)化的串行通信協(xié)議。在當(dāng)前的汽車產(chǎn)業(yè)中,出于對(duì)安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統(tǒng)被開(kāi)發(fā)了出來(lái)。由于這些系統(tǒng)之間通信所用的數(shù)據(jù)類型及對(duì)可靠性的要求不盡相同,由多條總線構(gòu)成的情況很多,線束的數(shù)量也隨之增加。為適應(yīng)“減少線束的數(shù)量”、“通過(guò)多個(gè)LAN,進(jìn)行大量數(shù)據(jù)的高速通信”的需要,1986 年德國(guó)電氣商博世公司開(kāi)發(fā)出面向汽車的CAN 通信協(xié)議。此后,CAN 通過(guò)ISO11898 及ISO11519 進(jìn)行了標(biāo)準(zhǔn)化,現(xiàn)在在歐洲已是汽車網(wǎng)絡(luò)的標(biāo)準(zhǔn)協(xié)議。

 

CAN 的高性能和可靠性已被認(rèn)同,并被廣泛地應(yīng)用于工業(yè)自動(dòng)化、船舶、醫(yī)療設(shè)備、工業(yè)設(shè)備等方面?,F(xiàn)場(chǎng)總線是當(dāng)今自動(dòng)化領(lǐng)域技術(shù)發(fā)展的熱點(diǎn)之一,被譽(yù)為自動(dòng)化領(lǐng)域的計(jì)算機(jī)局域網(wǎng)。它的出現(xiàn)為分布式控制系統(tǒng)實(shí)現(xiàn)各節(jié)點(diǎn)之間實(shí)時(shí)、可靠的數(shù)據(jù)通信提供了強(qiáng)有力的技術(shù)支持。

 

  1.2 CAN 物理層

  CAN與 I2C、SPI 等具有時(shí)鐘信號(hào)的同步通訊方式不同,CAN 通訊并不是以時(shí)鐘信號(hào)來(lái)進(jìn)行同步的,它是一種異步通訊,只具有 CAN_High 和 CAN_Low 兩條信號(hào)線,共同構(gòu)成一組差分信號(hào)線,以差分信號(hào)的形式進(jìn)行通訊。我們來(lái)看一個(gè)示意圖

  

 

  1.3電氣參數(shù)

  a)參考通信距離及傳輸速度

  通信距離(米)波特率

  251M

  70500K

  280125K

  350100K

  45080K

  70050K

  200018K

  30009K

  b)CAN總線上的節(jié)點(diǎn)數(shù)可達(dá)110個(gè)。

  c)總線狀態(tài)

  總線狀態(tài) 總線有“顯性”和“隱性”兩個(gè)狀態(tài),“顯性”對(duì)應(yīng)邏輯“0”,“隱性”對(duì)應(yīng)邏輯“1”。

  差分信號(hào)又稱差模信號(hào),與傳統(tǒng)使用單根信號(hào)線電壓表示邏輯的方式有區(qū)別,使用差分信號(hào)傳輸時(shí),需要兩根信號(hào)線,這兩個(gè)信號(hào)線的振幅相等,相位相反,通過(guò)兩根信號(hào)線的電壓差值來(lái)表示。

  (1)顯性(dominant): ----邏輯0

  CANH----高電平 --------------3.0-4.25V ----典型值3.6V

  CANL----低電平 ---------------0.5-1.75V ----典型值1.4V

  Vdiff---------------------------------------------------------2.25V

  (2)隱性(recessive): ----邏輯1

  CANH----高電平 ----0.5VCC(2.0-3.0V) ----典型值2.5V

  CANL----低電平 ----0.5VCC(2.0-3.0V) ----典型值2.5V

Vdiff-------------------------------------------------------------0V

 

  1.4CAN 協(xié)議層

  1.4.1 CAN 的波特率及位同步

  由于 CAN 屬于異步通訊,沒(méi)有時(shí)鐘信號(hào)線,連接在同一個(gè)總線網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)會(huì)像串口異步通訊那樣,節(jié)點(diǎn)間使用約定好的波特率進(jìn)行通訊。

  1.4.2 位時(shí)序分解

  位時(shí)序邏輯將監(jiān)視串行總線,執(zhí)行采樣并調(diào)整采樣點(diǎn),在調(diào)整采樣點(diǎn)時(shí),需要在起始位邊沿進(jìn)行同步并后續(xù)的邊沿進(jìn)行再同步。通過(guò)將標(biāo)稱位時(shí)間劃分為以下三段,即可解釋其工作過(guò)程:

  同步段 (SYNC_SEG):位變化應(yīng)該在此時(shí)間段內(nèi)發(fā)生。它只有一個(gè)時(shí)間片的固定長(zhǎng)度 (1 x tCAN)。

  位段 1 (BS1):定義采樣點(diǎn)的位置。它包括 CAN 標(biāo)準(zhǔn)的 PROP_SEG 和 PHASE_SEG1。其持續(xù)長(zhǎng)度可以在 1 到 16 個(gè)時(shí)間片之間調(diào)整,但也可以自動(dòng)加長(zhǎng),以補(bǔ)償不同網(wǎng)絡(luò)節(jié)點(diǎn)的頻率差異所導(dǎo)致的正相位漂移。

  位段 2 (BS2):定義發(fā)送點(diǎn)的位置。它代表 CAN 標(biāo)準(zhǔn)的 PHASE_SEG2。其持續(xù)長(zhǎng)度可以在 1 到 8 個(gè)時(shí)間片之間調(diào)整。

  再同步跳轉(zhuǎn)寬度 (SJW) 定義位段加長(zhǎng)或縮短的上限。它可以在 1 到 4 個(gè)時(shí)間片之間調(diào)整。

  如果在 BS1 而不是 SYNC_SEG 中檢測(cè)到有效邊沿,則 BS1 會(huì)延長(zhǎng)最多 SJW, 以便延遲采樣點(diǎn)。

  相反地,如果在 BS2 而不是 SYNC_SEG 中檢測(cè)到有效邊沿,則 BS2 會(huì)縮短最多 SJW, 以便提前發(fā)送點(diǎn)。


 

  例子:

  假如要配置波特率為100k,所用單片機(jī)的APB時(shí)鐘為42MHz,則:

  NominalBitTime:1/100000s即10us

  t(PCLK):1/42000000S,即1/42us.

  此時(shí)只需((TS1[3:0] + 1)+ (TS2[2:0] + 1)+1)* (BRP[9:0] + 1) =420

  我們可令t(q)=1us,即(BRP[9:0] + 1)=42,,則

  TS1[3:0] + TS2[2:0] =7

  1.4.3 CAN 的報(bào)文種類及結(jié)構(gòu)

  為了更有效地控制通訊,CAN 一共規(guī)定了 5 種類型的幀,它們的類型及用途說(shuō)明如表

  

 

  1.5 STM32中的CAN框架

  STM32 的芯片中具有 bxCAN 控制器 (Basic Extended CAN),它支持 CAN 協(xié)議 2.0A 和 2.0B 標(biāo)準(zhǔn)。該 CAN 控制器支持最高的通訊速率為 1Mb/s;可以自動(dòng)地接收和發(fā)送 CAN 報(bào)文,支持使用標(biāo)準(zhǔn)ID 和擴(kuò)展 ID 的報(bào)文;外設(shè)中具有 3 個(gè)發(fā)送郵箱,發(fā)送報(bào)文的優(yōu)先級(jí)可以使用軟件控制,還可以記錄發(fā)送的時(shí)間;具有 2 個(gè) 3 級(jí)深度的接收 FIFO,可使用過(guò)濾功能只接收或不接收某些 ID 號(hào)的報(bào)文;可配置成自動(dòng)重發(fā);不支持使用 DMA 進(jìn)行數(shù)據(jù)收發(fā)??蚣苁疽鈭D如下:

  

 

 

  STM32 的有兩組 CAN 控制器,其中 CAN1 是主設(shè)備,框圖中的“存儲(chǔ)訪問(wèn)控制器”是由 CAN1控制的,CAN2 無(wú)法直接訪問(wèn)存儲(chǔ)區(qū)域,所以使用 CAN2 的時(shí)候必須使能 CAN1 外設(shè)的時(shí)鐘。框圖中主要包含 CAN 控制內(nèi)核、發(fā)送郵箱、接收 FIFO 以及驗(yàn)收篩選器。

  bxCAN 工作模式

  bxCAN 有三種主要的工作模式: 初始化、 正常和睡眠。

  a)初始化模式

  當(dāng)硬件處于初始化模式時(shí),可以進(jìn)行軟件初始化。篩選器的初始化可以在初始化模式之外進(jìn)行。

  b)正常模式

  一旦初始化完成,軟件必須向硬件請(qǐng)求進(jìn)入正常模式,這樣才能在 CAN 總線上進(jìn)行同步,并開(kāi)始接收和發(fā)送。篩選器尺度和模式配置必須在進(jìn)入正常模式之前完成。

  c)睡眠模式(低功耗)

  為降低能耗功耗, bxCAN 具有低功耗模式,稱為睡眠模式。

  

 

 

  • 一文讀懂什么是IMU傳感器?
  • IMU(慣性測(cè)量單元,Inertial Measurement Unit) 是一種用于測(cè)量物體運(yùn)動(dòng)狀態(tài)的電子設(shè)備,通過(guò)組合多種傳感器來(lái)提供三維空間中的加速度、角速度及姿態(tài)信息。
    2025-03-05 324次
  • 一文讀懂什么是圖像傳感器?
  • 圖像傳感器是一種將光學(xué)圖像轉(zhuǎn)換為電信號(hào)的電子器件,廣泛應(yīng)用于數(shù)碼相機(jī)、智能手機(jī)、安防監(jiān)控、醫(yī)療影像、自動(dòng)駕駛等領(lǐng)域。它是現(xiàn)代成像系統(tǒng)的核心組件,決定了圖像的清晰度、色彩還原能力和動(dòng)態(tài)范圍等關(guān)鍵性能。
    2025-03-03 83次
  • 一文讀懂什么是加速度傳感器?
  • 加速度傳感器(Accelerometer)?是一種測(cè)量物體線性加速度的裝置,可檢測(cè)物體在空間中沿X、Y、Z軸的平移運(yùn)動(dòng)(包括靜態(tài)重力加速度和動(dòng)態(tài)運(yùn)動(dòng)加速度)。
    2025-02-26 171次
  • XILINX賽靈思 XC7K160T-2FBG484E
  • 賽靈思(XILINX)作為行業(yè)的領(lǐng)軍企業(yè),其推出的 XC7K160T-2FBG484E 更是一款備受矚目的產(chǎn)品。XC7K160T-2FBG484E 屬于賽靈思 7 系列 FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列),具有強(qiáng)大的性能和豐富的功能。
    2024-09-25 349次
  • XILINX賽靈思 XCKU085-2FLVA1517E
  • 賽靈思(XILINX)作為全球領(lǐng)先的可編程邏輯器件供應(yīng)商,其推出的 XCKU085-2FLVA1517E 以卓越的性能和豐富的功能,成為眾多電子工程師和設(shè)計(jì)師的首選。XCKU085-2FLVA1517E 屬于賽靈思 UltraScale 架構(gòu)系列產(chǎn)品,采用先進(jìn)的 20 納米工藝技術(shù)制造。這一工藝不僅帶來(lái)了更高的性能,還實(shí)現(xiàn)了更低的功耗,為各種復(fù)雜的電子系統(tǒng)設(shè)計(jì)提供了理想的解決方案。
    2024-09-25 307次

    萬(wàn)聯(lián)芯微信公眾號(hào)

    元器件現(xiàn)貨+BOM配單+PCBA制造平臺(tái)
    關(guān)注公眾號(hào),優(yōu)惠活動(dòng)早知道!
    10s
    溫馨提示:
    訂單商品問(wèn)題請(qǐng)移至我的售后服務(wù)提交售后申請(qǐng),其他需投訴問(wèn)題可移至我的投訴提交,我們將在第一時(shí)間給您答復(fù)
    返回頂部