NXP S32k3 MCAL CAN &CANFD 配置

本文详细介绍了在S32K358开发板上使用TJA1463进行CAN和CANFD通信的配置过程,包括CAN时钟选择、CAN控制器和硬件对象配置,以及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应用场景

        最近接触到汽车BMS产品。需要验证硬件开发板CAN&CANFD通信部分,CAN收发器使用TJA1463,本章将基于S32K358介绍 CAN 相关配置。CAN FD的也基本差不多的配置,相关参数打开即可。

原理介绍
        CAN

        S32K358提供8组CAN实例,FLEXCAN0~FLEXCAN7。每组都支持CANFD协议,通过配置可实现CAN通信或CANFD通信。CANFD支持一帧报文64字节的数据传送。CANFD除了设置仲裁段波特率还有一个数据段波特率。以往经验汽车网关中经常将前者设置为500kbps,后者设置为2Mbps。

        CAN的时钟可以选择由芯片内部时钟提供或者外部时钟提供。一般建议使用外部时钟,因为内部时钟可能不稳定增加CAN通信不稳定的因素。

        CANTJA1463对应的驱动也需要配置好,才能使用CANoe建立起链路,从而调试CAN通信。目前一般的CAN收发器驱动代码比较简单。S32K358的Demo板上用的是TJA1153(带功能安全的CAN收发器),这款收发器的驱动代码比较复杂一些,需要配置CAN报文并且发送指定的报文内容才可以驱动TJA1153工作。后续补上TJA1153的代码。

        CAN的采样率设置一般可配置成75%,80%等。采样率由s

UDS(统一诊断服务)是在车辆中使用的一种通信协议,它是基于ISO 14229标准开发的,用于车辆的诊断通信。在UDS中,数据的传输涉及多种不同类型的帧,包括连续帧、流控帧和多帧等。 连续帧(Flow Control Frame):在处理较大的数据传输时,如果数据量超过了单帧能够承载的大小,就需要将数据分割成多个帧来传输。连续帧用于标记一个数据消息的多个帧的连续部分。它们通常会包含一个连续帧计数器,这个计数器会指明当前帧是该消息中的第几帧,以及消息总共有多少帧。 流控帧(Flow Control Frame):用于控制数据的发送速率,确保发送端和接收端的数据处理能够匹配。流控帧可以是正向的,比如发送方请求继续发送更多的数据,也可以是反向的,比如接收方请求发送方减慢发送速度或者暂停发送。在UDS中,流控制通常通过发送特定的消息(如ISO 14229-3中定义的单帧和连续帧)来实现。 多帧(Multi Frame):当传输的数据量超过一个帧的最大数据载荷时,就需要使用多帧传输。多帧传输涉及到将数据分成多个连续的帧,每个帧都有序号和总帧数的信息,接收方通过这些信息将多个帧重新组合成原始的数据消息。 在使用多帧传输时,发送方和接收方之间的通信需要有相应的协议来确保数据的完整性和顺序性。如果在数据传输过程中,接收方没有正确地接收到某个帧,它可以通过发送流控帧来请求重传那个特定的帧。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值