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

发布时间:2023-05-24  

摘要

本篇笔记主要记录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只需要填入波特率,便会主动分配每个段的值,但是我们还是要知道和搞清楚会自己配置。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    物理层接口电路(符合ISO11898标准)也可与单片机直接连接构成一个高可靠、低成本、简单实用、多机互连的分布式测控系统。 2 CANRS-485物理层特性比较 CAN总线在物理层个有专用接口电路,该类......
    信会造成干扰。再如,节点地失调的情况下,由于AB之间的传输距离较远,大地也同样具有阻抗,节点A到B之间流过大地的电流,会造成两个节点之间的地失调。 以上两种情况都会在总线上面叠加共模电压,如果485芯片......
    偏重应用层。 很多人喜欢去评价,说哪个方向比哪个好,这4个方向没有绝对的哪个工资比哪个高,行内人自然懂,不懂得喷子键盘侠我也懒得解释。 我做了这个行业10年来说说自己的看法。 这4个方向,没有说哪个比哪个好......
    ),这可简化 TVS 的选型。 RS-485 类似,CAN 总线也可以容忍一些共模电压变化(图 8)。 图 7:SN65HVD1040A 驱动器绝对最大额定值 图 8......
    器上的功能模块,再加上外围电路,形成各种接口的扩展,其中包括有半双工的RS485、RS232、CAN通信模块、IO数字量口输入、IO口数字量输出。      2 模块硬件配置   2.1 RS-485总线......
    金升阳推出超薄型R4S系列CAN/485隔离收发模块; 【导读】为满足客户多样的设计需求,金升阳通过技术方案革新及平台升级,紧跟市场步伐,加快完成了CAN/485总线隔离收发模块R4系列......
    但同样重要的是,TI SN65HVD1040A 8 引脚 CAN 收发器具有相当高的绝对最大电压(图 7),这可简化 TVS 的选型。 RS-485 类似,CAN 总线也可以容忍一些共模电压变化(图 8......
    、RS-485是指电平标准(电信号)。 单片机与PC通讯示意图如下: CAN总线......
    添加三极管和保险丝做普通的过流保护。 PLC中控制板的应用 在PLC的控制板中除了需要和各个板卡之间做通信以外,同样也需要和外机做通信,因此往往会做外部通信的隔离,包括232隔离, 485隔离, CAN隔离等。川土......
    使用两线时提供半双工通信,在使用四线时提供全双工通信。   通过使用这种方法:   RS-485 支持最高 30Mbps 的更高数据传输率。   RS-232 协议相比,它还提供最大的数据传输距离。它传......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>