AUTOSAR MCAL for SemiDrive E3 功能模块使用介绍:CAN

一、 概述

本文介绍了使用芯驰提供的满足 AUTOSAR 标准的 MCAL,开发 SemiDrive E3_CAD 配置。

硬件平台:芯驰 E3640 GATEWAY 开发板

软件平台: Semidrive_AutoSAR_MCAL_package_v3.0

二、  相关概念

1、CAN 和 CANFD:CAN-FD 可以理解成 CAN 协议的升级版,只升级了协议,物理层未改变。

区别

CAN

CANFD

传输速率

最大传输速率1Mbps

速率可变,

仲裁比特率最高1Mbps(与CAN相同),

数据比特率最高8Mbps

数据域长度

一帧数据最长8字节

一帧数据最长64字节

协议内容

-

取消远程帧


表1 CAN 和 CANFD 区别

2、CAN标准数据帧和扩展数据帧:

CAN 协议可以接收和发送11位标准数据帧和 29 位扩展数据帧,CAN 标准数据帧和扩展数据帧只是帧 ID 长度不同,以便可以扩展更多 CAN 节点。

它们在功能上的特性相同:帧 ID 数值越小,优先级越高。

图 1 数据帧分布对比

三、  示例说明

在 EB 中依次配置 CAN 和 CANFD,分别完成数据收发。

四、  示例 CAN

1、使用 EB 软件打开 Semidrive_AutoSAR_MCAL_package_v3.0 软件包。

2、原理图及引脚:这里使用 GPIO_D12、GPIO_D13 对应控制器 CANFD7,经过收发器芯片 JTA1042 转换为 CAN7_H、CAN7_L,由开发板上 J2306 引出。

图 2 原理图

3、Mcu 配置中 CANFD7 的 RCC 使能(这里一定要使能)。


图 3 Mcu 配置

4、Port 配置中 GPIO_12、GPIO_13 的 Mux 复用为 CANFD7 的收发(上下拉选项为 NOPULL)。


图 4 Port 配置

5、Can配置主要由两部分:CanController 和 CanHardwareObject

5.1 CanController

5.1.1 CanControllerBaseAddress 保证控制器与其地址相匹配,详见参考手册 3.1 Memory Map 章节的 Table。

图5.1 设置CanControllerBaseAddress

5.1.2 CanMessageBufferRegiionConfig

这里修改缓存的大小,对于 CAN 标准帧或扩展帧必须设置为 CAN_MB_8_BYTES_PAYLOAD;

对于 CANFD 帧,设置为 64 字节时,可发送 12、16、32、48、64 字节的任一种报文。

图 5.2 设置 CanMessageBufferRegiionConfig

5.1.3 CanControllerBaudrateConfig

位时序和波特率配置:这里参照手册修改默认配置(75%→80%)。

图 5.3 设置 CanControllerBaudrateConfig

5.2 CanHardwareObject:

STANDARD 只能接受标准帧报文;

MIXED 能收发不同帧(标准帧、扩展帧、CANFD)的报文。

注意:CanObjectID HRH 先排列, ID=0 开始, HTH 后排列。

图 5.4 设置CanHardwareObject

6、串口发送、USBCANFD-200U/ZCANPRO 接收界面:

图 6.1 运行现象

文件路径:…\mcal\CanIf_TS_T01D20M1I4R0\src\Canif.c

图 6.2 代码分析 


7、USBCANFD-200U/ZCANPRO 发送、串口接收界面:(先注意 EB 中波特率的匹配)

图 7.1 发送设置

这里串口显示接收长度为12:

图 7.2 串口显示

五、  示例 CANFD

1、在 CAN 标准帧的基础上,做如下修改:(仲裁域波特率: 500 采样:80%)


图 8.1 配置 CanControllerBaudrateConfig 

2、双击进入到 CANFD 数据域的波特率配置(修改可变速率资料域波特率:2Mbps):

图 8.2 配置 CanControllerFDBaudrateConfig

3、此处设置在 64 字节的话 可发 12, 16, 32, 48, 64 字节任一种报文:


图 8.3 配置 CanMessageBufferRegionConfig

4、回到 Object,在 CanldType 选项选择 MIXED(同时兼容 CAN 标准帧和拓展帧):


图 8.4 配置 CanHardwareObject

5、修改示例代码:发送字节设置为 12,id 修改为扩展型 CANFD。

图 8.5 修改示例代码

6、串口发送、USBCANFD-200U/ZCANPRO 接收界面(类型显示为 CANFD):


图 8.6.1 串口显示

文件路径:…\mcal\CanIf_TS_T01D20M1I4R0\src\Canif.c

图 8.6.2 发送代码分析

图 8.6.3 运行显示

7、USBCANFD-200U/ZCANPRO 发送、串口接收界面:

修改数据发送设置,与 EB 中的波特率匹配,接收长度为 12 字节与示例代码中的长度匹配:

图 8.7.1 发送设置

这里串口显示接收长度为 12:

图 8.7.2 运行显示

六、   参考文档

  • 《SD103_E3_REF_GATEWAY_ePOWERTRAIN_A03_SCH》
  • 《E3400_E3600_MCU_Technical_Reference_Manual》
  • 《E3400_E3600_MCU_Datasheet》
  • 《SemiDrive_E3_MCAL_User_Guide》
欢迎在博文下方留言评论,我们会及时回复您的问题。如有更多需求,欢迎联系大联大世平集团 ATU 部门:atu.sh@wpi-group.com
作者:Alan Li / 李亚楠

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论