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

    文章

    2467

    浏览量

    459174
  • 波特率
    +关注

    关注

    2

    文章

    280

    浏览量

    33758
  • MPC5744P
    +关注

    关注

    1

    文章

    9

    浏览量

    8108
收藏 人收藏

    评论

    相关推荐

    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 3718次阅读
    基于恩智浦<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 7807次阅读
    基于恩智浦<b class='flag-5'>MPC5744P</b>的SAE J1939协议栈开发

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

    恩智浦MPC5744P微控制器芯片手册免费下载。
    发表于 03-04 16:06 23次下载

    MPC5744pCAN通信波特率计算

    本篇笔记主要记录MPC5744pCAN通信波特率计算,以及需要注意的问题。
    的头像 发表于 07-10 17:40 2174次阅读