<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天內不再提示

MPC5744p的CAN通信波特率如何計算

汽車電子技術 ? 來源:嵌入式程序猿 ? 作者:小猿 ? 2023-01-20 14:58 ? 次閱讀

摘要

本篇筆記主要記錄MPC5744p的CAN通信波特率計算,以及需要注意的問題

CAN 位時間

記得最早是在2015年就給大家推送過關于CAN通信波特率的設置,當時是以NXP的kinetis系列之KV46為例子來給大家介紹的,最近推送了幾篇有關CAN通信的文章,后臺又有人問起這個問題,今天我們就來在給大家詳細普及下,今天以NXP的汽車級芯片MPC5744p的flexCAN為例,MPC系列是基于PowerPC架構的,和ARM架構的芯片時由區別的,但NXP家的PPC架構和ARM架構如果都是flexCAN的IP,那么驅動基本上可以通用,之前的文章也可供參考。

今天我們來一步步看如何在flexcan上配置can的比特率,首先要搞明白CAN標準對位時間的定義,CAN通信波特率的計算是一個難點,要正確計算設置CAN波特率。CAN2.0協議中定義標稱位速率為一理想的發送器在沒有重新同步的情況下,每秒發送的位數量,也就是我們說的波特率。位時間由若干個時間單元(Tq)或者稱為時間份額組成。每一位的組成如下圖所示:

微信截圖_20230105161930.png

CAN2.0協議中規定要求每一位可以劃分為幾個不重疊時間片段,分別是:

同步段(Synchronization segment)

傳播段(Propagation segment)

相位緩沖段1(Phase segment 1)

相位緩沖段2(Phase segment 2)

同步段:

位時間的同步段用于同步總線上不同的節點。這一段內要有一個跳變沿。

傳播段:

傳播段用于補償網絡內的物理延時時間。它是總線上輸入比較器延時和輸出驅動器延時總和的兩倍。

相位緩沖段1、相位緩沖段2(PHASESEG1、PHASE SEG2):

相位緩沖段用于補償邊沿階段的誤差。這兩個段可以通過重新同步加長或縮短。

采樣點:

采樣點是讀總線電平并解釋各位的值的一個時間點。采樣點位于相位緩沖段1(PHASE_SEG1)之后。

除過同步段是一個時間份額外,其他幾個域都在寄存器的不同位設置,需要特別注意的一點是在mscan中將傳播段和相位緩沖段放在一個寄存器中設置

微信截圖_20230105161930.png

更波特率配置相關的寄存器,MSCAN總線定時器0和MSCAN總線定時器1,首先來看總線定時器0

CAN波特率

對于MPC57xx系列,主要時配置寄存器CAN_CTRL1

圖片

圖片

其中PRESDIV位域就是用來設置波特率預分頻器的,也就是設置時間量子的時鐘。

首先CAN控制器的時鐘由兩個入口

圖片

CAN總線控制寄存器1主要就是來設置位時間的幾個域,TSEG1段用于設置傳播段和相位緩沖段1,TSEG2用于設置相位緩沖段2,搞清楚這幾個域的配置后,我們就可以來動手配置了,例如要求配置波特率位500k,使用總線時鐘160MHz 4分頻為CAN模塊時鐘(CAN模塊時鐘也可以配置為外部晶振,推薦正式項目,配置為外部晶振,當然如果你的板子有晶振的話),則我們可以配置如下:

預分頻配置為4,

傳輸段配置為7,則為8個時間量子

PSEG1 配置為7,則根據數據手冊描述,相位緩沖段1為8個時間量子 PSEG2配置為 2, 則根據數據手冊描述,相位緩沖段2為3個時間量子

根據CAN標準,同步段一般為一個時間量子,

則波特率計算如下

波特率 = 1/(8 + 8 + 3 + 1) * 40000000/4 = 500kbps, 同理可配置其他波特率,當然同一種波特率,這幾個域可以配為不同的值。也可以參考以下推送,里面有詳細的推導過程。

圖片

如果時采用SDK 配置, 那么SDK只需要填入波特率,便會主動分配每個段的值,但是我們還是要知道和搞清楚會自己配置。

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

    關注

    56

    文章

    2491

    瀏覽量

    460242
  • 波特率
    +關注

    關注

    2

    文章

    283

    瀏覽量

    33822
  • MPC5744P
    +關注

    關注

    1

    文章

    9

    瀏覽量

    8115
收藏 人收藏

    評論

    相關推薦

    can波特率計算

    can波特率其實并不難計算,這里給出了can波特率的簡單計算,并給出了實例STM32的
    發表于 12-14 17:02 ?1.1w次閱讀
    <b class='flag-5'>can</b><b class='flag-5'>波特率</b><b class='flag-5'>計算</b>

    設計了一個關于mpc5744p板子,電路設計基本上都是按照mpc5744p電路,請問為什么燒寫程序燒不進去?

    我有個問題,我設計了一個關于mpc5744p板子,電路設計基本上都是按照mpc5744p電路,為什么燒寫程序燒不進去??
    發表于 06-29 11:45

    CAN波特率計算

    車輛使用的250K 的波特率,使用STM32制作的控制板中的CAN波特率計算波特率=APB1Clock/(1+
    發表于 08-20 08:11

    MPC5744P的Overlay RAM相關資料分享

    內容提要引言1. MPC5744P的Overlay RAM工作原理介紹2 MPC5744P的Flash Overlay配置詳解2.1 平臺Flash標定區域描述字寄存器配置字
    發表于 11-04 07:53

    如何學習MPC5744P CAN總線?

    如何學習MPC5744P CAN總線?
    發表于 02-07 08:58

    請問Devkit MPC5744P板上的CAN1端口在哪里?

    我需要在 Devkit MPC5744P 板上測試 Flexcan1 通信,但我只能找到 CAN0 端口。你能告訴我 CAN1 端口在哪里嗎?我找不到它。
    發表于 03-14 13:33

    如何對MPC5744P進行編程?

    目前我正在學習如何對 MPC5744P 進行編程,但在嘗試創建簡單的 UART 應用程序時目前無法解決此問題。當我將 UART + CAN 示例用于 MPC5744P 時,UART 和 CAN
    發表于 03-16 08:36

    如何驗證MPC5744P FPU是否正常工作?

    我想知道是否啟用了 MPC5744P 浮點單元?我參考了一些帖子并將我的 S32DS 設置為如下所示,是否正確?以及如何選擇合適的庫支持謝謝~!
    發表于 03-23 08:51

    MPC5744P標志如何保留在RAM中?

    我正在為 MPC5744P 編寫引導加載程序。當在 APP 中檢測到下載請求時,看門狗復位用于從 APP 跳轉到引導加載程序。我想將此請求標志保存在 RAM 中。當項目重置時,標志如何保留在 RAM 中?謝謝你!
    發表于 03-27 09:10

    如何為MPC5744P配置內存保護單元?

    我想知道更多關于如何為 MPC5744P 配置內存保護單元,我需要知道如何使用這個配置器。
    發表于 04-04 09:03

    在MCU MPC5744P上,需要SENT模塊軟件驅動,求分享

    在MCU MPC5744P上,我需要SENT模塊軟件驅動,謝謝。
    發表于 04-17 08:50

    基于恩智浦MPC5744PCAN驅動開發和測試

    摘要 本篇筆記主要記錄基于恩智浦MPC5744PCAN驅動開發和測試,接口設計,封裝為BSP驅動,為之后實現CAN的高層通信打下基礎。。 準備工作 安裝S32DS for PA, 因
    的頭像 發表于 09-03 11:35 ?3797次閱讀
    基于恩智浦<b class='flag-5'>MPC5744P</b>的<b class='flag-5'>CAN</b>驅動開發和測試

    基于恩智浦MPC5744P的SAE J1939協議棧開發

    的,MPC5744P 支持CAN2.0B。CAN 的高層協議,J1939 是基于CAN2.0B的擴展幀,29位標識符,支持單幀和多幀收發通信
    的頭像 發表于 09-24 16:15 ?7848次閱讀
    基于恩智浦<b class='flag-5'>MPC5744P</b>的SAE J1939協議棧開發

    恩智浦MPC5744P微控制器芯片手冊

    恩智浦MPC5744P微控制器芯片手冊免費下載。
    發表于 03-04 16:06 ?23次下載

    MPC5744pCAN通信波特率計算

    本篇筆記主要記錄MPC5744pCAN通信波特率計算,以及需要注意的問題。
    的頭像 發表于 07-10 17:40 ?2248次閱讀
    亚洲欧美日韩精品久久_久久精品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>