<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

CAN總線通信詳解

智能汽車電子與軟件 ? 來源:智能汽車電子與軟件 ? 2023-03-29 10:06 ? 次閱讀

一、CAN相關芯片

1.CAN控制器

2.CAN收發器:CAN收發器的作用是負責邏輯電平和信號電平之間的轉換。

即從CAN控制芯片輸出邏輯電平到CAN收發器,然后經過CAN收發器內部轉換將邏輯電平轉換為差分信號輸出到CAN總線上,CAN總線上的節點都可以決定自己是否需要總線上的數據。

d08765a6-cd7f-11ed-bfe3-dac502259ad0.png

二、CAN的配置

void CAN1_Config_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

CAN_InitTypeDef CAN_InitStructure;

CAN_FilterInitTypeDef CAN_FilterInitStructure;

NVIC_InitTypeDef NVIC_InitStructure;

d09e4082-cd7f-11ed-bfe3-dac502259ad0.png

d0b6ae38-cd7f-11ed-bfe3-dac502259ad0.png

三、CAN波特率計算公式

d0cccb00-cd7f-11ed-bfe3-dac502259ad0.png

CAN波特率=系統時鐘/分頻數/(1*tq+tBS1+tBS2)

其中

tBS1=tq*(TS1[3:0]+1)

tBS2=tq*(TS2[2:0]+1)

tq=(BRP[9:0]+1)*tPCLK

這里tq表示1個時間單元

tPCLK=APB時鐘的時間周期

BRP[9:0],TS1[3:0]和TS2[2:0]在CAN_BTR寄存器中定義

總體配置保持

tBS1>=tBS2,tBS2>=1個CAN時鐘周期,tBS2>=2tSJW

四、CAN的發送與CAN的接收

1、發送過程:CAN控制器將CPU傳來的信號轉換為邏輯電平(即邏輯0-顯性電平或者邏輯1-隱性電平)。CAN發射器接收邏輯電平之后,再將其轉換為差分電平輸出到CAN總線上。

d0e0e022-cd7f-11ed-bfe3-dac502259ad0.png

2、接收過程:CAN接收器將CAN_H 和 CAN_L 線上傳來的差分電平轉換為邏輯電平輸出到CAN控制器,CAN控制器再把該邏輯電平轉化為相應的信號發送到CPU上。

d0f50200-cd7f-11ed-bfe3-dac502259ad0.png

五、STM32 CAN控制器簡介-發送流程和接收流程

程序選擇1個空置的郵箱(TME=1)->設置標識符(ID),數據長度和發送數據->設置CAN_TIxR的TXRQ位為1,請求發送->郵箱掛號(等待成為最高優先級)->預定發送(等待總線空閑)->發送->郵箱空置

d1055c5e-cd7f-11ed-bfe3-dac502259ad0.png

FIFO空->收到有效報文->掛號_1(存入FIFO的一個郵箱,這個由硬件控制,我們不需要理會)->收到有效報文->掛號_2->收到有效報文->掛號_3->收到有效報文->溢出。

CAN收到的有效報文,存儲在3級郵箱深度的FIFO中。FIFO接收到的報文數,我們可以通過查詢CAN_RFxR的FMP寄存器來得到,只要FMP不為0,我們就可以從FIFO讀出收到的報文。

d121ee32-cd7f-11ed-bfe3-dac502259ad0.png

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 收發器
    +關注

    關注

    10

    文章

    3069

    瀏覽量

    105020
  • 控制器
    +關注

    關注

    112

    文章

    15447

    瀏覽量

    173112
  • CAN
    CAN
    +關注

    關注

    56

    文章

    2510

    瀏覽量

    460767
  • 通信
    +關注

    關注

    18

    文章

    5744

    瀏覽量

    134767
  • 總線
    +關注

    關注

    10

    文章

    2735

    瀏覽量

    87389

原文標題:CAN總線通信

文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    詳解汽車CAN總線

    作者:Xiaomin 概述 CAN(Controller Area Network)總線協議是由 BOSCH 發明的一種基于消息廣播模式的串行通信總線,它起初用于實現汽車內ECU之間
    發表于 07-26 08:33

    CAN總線詳解 精選資料分享

    總線技術3.運行流程:4.顯性隱性:一、 CAN幀結構CAN-bus通信幀:數據幀、遠程幀、錯誤幀、過載幀和幀間隔1.數據幀由7個段組成,其中根據仲裁段ID碼長度的...
    發表于 08-20 07:03

    CAN通信總線詳解

    CAN做為應用比較廣泛的通信總線,受到了越來越多的客戶喜歡和青睞,廣泛應用于工業和汽車,常見的高層協議有CANopen,J1939,DeviceNet等,在公眾號曾經分享過超過15篇有關C...
    發表于 08-31 07:14

    基于CAN總線的多ECU通信平臺設計

    介紹CAN 總線及其通信協議J1939, 并設計基于CAN 總線的多ECU 通信平臺的硬件結構;
    發表于 04-15 09:49 ?22次下載

    Linux系統下CAN總線通信的設計及實現

    本設計為光電穩定跟蹤平臺開發CAN 驅動,以實現CAN 總線上設備間的通信。分析了linux 下標準設備驅動機制和CAN
    發表于 08-04 08:33 ?30次下載

    CAN總線通信電路

    CAN總線通信電路
    發表于 10-14 13:59 ?6535次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>通信</b>電路

    CAN總線在多機通信中的應用

    設計了多個CAN總線通信節點,通過PCI9810-CAN適配卡上的CAN總線,組成一個局域
    發表于 10-19 14:57 ?68次下載
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>在多機<b class='flag-5'>通信</b>中的應用

    CAN總線通信原理分析

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

    CAN總線詳解

    汽車CAN總線基礎詳解與基本應用情況與實例分享
    發表于 03-22 15:50 ?0次下載

    CAN總線通信詳解

    CAN總線通信詳解。
    發表于 03-30 16:46 ?0次下載

    汽車can總線工作原理及測量方法詳解

    本文首先介紹了CAN總線的總體結構,其次介紹了汽車CAN總線數據傳輸系統構成及工作原理,最后介紹了汽車CAN
    發表于 04-25 08:54 ?14.5w次閱讀
    汽車<b class='flag-5'>can</b><b class='flag-5'>總線</b>工作原理及測量方法<b class='flag-5'>詳解</b>

    CAN總線通信報文驗收濾波、位定時與同步詳解

    CAN(Controller Area NetWork)總線,即控制器局域網總線,是由德國Bosch公司于1982年開發和推出的最早用于汽車內部測量與執行部件之間的數據通信協議。在20
    的頭像 發表于 05-07 16:16 ?1w次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>通信</b>報文驗收濾波、位定時與同步<b class='flag-5'>詳解</b>

    為什么要用光纖CAN轉換器_基于光纖轉CAN模塊的CAN總線通信改造

    總線,在通訊上也會受到部分干擾,所以改造CAN總線迫在眉睫。本文首先介紹了什么是光纖及can總線,其次介紹了為什么要用光纖
    發表于 05-07 17:09 ?7637次閱讀

    CAN總線學習筆記四:CAN總線通信

    在理解了CAN總線的自通信程序后,再來探討CAN總線間的相互通信變得容易了許多。對于是自
    發表于 09-21 15:06 ?1521次閱讀

    詳解CAN總線通信優先級機制

    詳解CAN總線CAN總線報文格式—數據幀文章中,講解到仲裁段。仲裁段用于寫明需要發送到目的CAN
    發表于 10-25 14:00 ?1954次閱讀
    <b class='flag-5'>詳解</b><b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>通信</b>優先級機制
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>