• 1171查看
  • 0回复

[芯片硬件] MCAL配置专题【三】CAN模块配置

[复制链接]


该用户从未签到

发表于 10-12-2023 08:10:10 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


今天分享的内容是MCAL的CAN模块配置介绍,希望能对你有所帮助

一、CAN模块配置介绍

之前也分享过Autosar的基础知识,不清楚且有兴趣的同学可参考之前的文章:Autosar介绍

在做车载相关的项目中,一般都会用CAN(或CAN FD)通信,当然也有Lin,FlexRay,更高级的甚至用以太网。初学者对这几个常用的车载总线不太清楚的,可以移步之前的文章:常用车载总线CAN、CAN FD、LIN、FlexRay、Ethernet介绍

先简单介绍一下Autosar中CAN是如何通信的,数据流,Autosar如何配置。

先来回顾一下Autosar的架构:

MCAL配置专题【三】CAN模块配置w1.jpg

普通CAN报文接收流程:CAN------CANIF------PDUR------COM发送流程就是顺序反过来,从上到下
COM------PDUR------CANIF------CAN上面这些是属于Autosar里面的BSW模块,除了这些需要配置,MCAL也需要进行配置才行,也就是非Autosar架构中的底层驱动,类似于SDK。
本文也主要分享MCAL的CAN配置需要配置哪些东西
MCAL配置专题【三】CAN模块配置w2.jpg
二、CAN控制器的配置

2.1 General配置

CanBusoffProcessing:BusOff的处理方式,中断(INTERRUPT)或者轮询(POLLING)

CanControllerActivation:是否激活这路CAN

CanControllerId:节点号,从0开始增加,必须连续。

CanRxProcessing:接收到报文后的处理方式,中断(INTERRUPT)或者轮询(POLLING)

CanTxProcessing:成功发送报文后的处理方式。中断(INTERRUPT)或者轮询(POLLING)。

CanWakeupFunctionalityAPI :Can唤醒的一些API函数是否可用,只有当支持CAN唤醒时,这个选项才可以勾选。

CanWakeupProcessing:CAN唤醒的处理方式,中断(INTERRUPT)或者轮询(POLLING)

CanWakeupSupport:是否支持CAN唤醒

CanControllerDefaultBaudrate :波特率的配置

CanPeripheralBusClockRef:CAN时钟源选择

MCAL配置专题【三】CAN模块配置w3.jpg

2.2 波特率配置

配置界面:

MCAL配置专题【三】CAN模块配置w4.jpg

标准CAN的波特率配置:

CanControllerProSeg:传播段

CanControllerSeg1:相位缓冲段1

CanControllerSeg1:相位缓冲段2

CanControllerSyncJumpWidth:同步跳转宽度

这几个参数的含义的话,之前调试过CAN驱动的应该就知道了,这里简单介绍一下,就是CAN波特率的计算方法:

波特率 =(CAN时钟 / 波特率分频系数) / 位时间

而   位时间 = tq + tBS1 + tBS2

CAN总线里通过对CAN 节点里的CANBTR寄存器的控制,来实现不同波特率的通信。

1)同步段:一个位的起始位置,CAN-bus规定跳变沿为同步信号,

2)传播段:发送节点发送一个位跟接收节点接收到这个位之间存在网络传播延迟,传播段则是为了补偿这段传播延迟。

3)相位缓冲段1和相位缓冲段2:由于采样点位置在相位缓冲段1跟相位缓冲段2之间,通过设置相位缓冲段1和相位缓冲段2的值,可以调整采样点位置,保证每个位采样点一致。缓冲段的长度调节范围则是由

4)同步跳转宽度(SJW):决定了缓冲段的长度调节范围。

MCAL配置专题【三】CAN模块配置w5.jpg

CAN FD的波特率配置

根据实际项目需求配置对应的波特率即可

CanControllerTxBitRateSwitch:CAN波特率是否可变

MCAL配置专题【三】CAN模块配置w6.jpg

三、CanHardwareObject配置

3.1 General配置

配置界面如下:

1)配置这个HOH的类型是basic CAN (多个Pdu对应一个HardwareObject)还是Full CAN(一个Pdu对应一个HardwareObject)

2)配置CAN 报文是标准帧还是扩展帧。

3)配置HOH的ID号,从0开始

4)配置这个HOH是用来接收还是发送的

5)配置这个HOH属于哪一个CAN通道

MCAL配置专题【三】CAN模块配置w7.jpg

3.2 Filter配置

要接收的CANID都需要在filter中配置,CAN标准帧在StandardFilter,扩展帧的话是在ExtendFilter中添加

每一个item就是一个filter,每个filter里面可以配置ID0,ID1,filter type。对于每个接收报文的HOH来说,只有通过了这个filter,接收的CAN报文就会被分配到这个HOH,再往上传递到CANIF

Filter的类型有:

a)CAN_FILTER_ELEMENT_DISABLED:不使能filter

b)CAN_RANGE_FILTER:ID0 =< 接收ID <= ID1 则通过,也就是在ID0和ID1的范围内都能接收到

c)CAN_CLASSIC_BIT_MASK_FILTER:接收ID & ID1 == ID0 则通过,也就是这种类型的过滤,如果ID1配置为0X7FF,则只能接收到当前配置的CAN ID。

d)CAN_DUAL_ID_FILTER:ID0和ID1都通过,即只能接收ID0和ID1

MCAL配置专题【三】CAN模块配置w8.jpg

ID0和ID1的配置是取决于filter type的,下面以CAN_CLASSIC_BIT_MASK_FILTER类型为例介绍ID0和ID1的配置。

原理:能通过的报文ID数量完全取决于屏蔽码(掩码),设得宽,则可以通过的多(所有位为0,则任意报文ID都可以通过),设得窄,则通过的少(所有位设为1,则只有一个能通过)

MCAL配置专题【三】CAN模块配置w9.jpg

至此,MCAL的CAN模块就配置完成了,配置完成后,点击保存,然后再右键选择Verify Project,看看是否有报错,没报错就点击Generate Project,生成配置代码,然后同步到编译整个项目的工程中

MCAL配置专题【三】CAN模块配置w10.jpg



  • TA的每日心情
    无聊
    1-7-2015 18:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 17-3-2025 03:12:00 | 显示全部楼层
    回复:

    关于MCAL的CAN模块配置介绍,非常专业且有价值。首先感谢分享者的付出。以下是对内容的简要回应:

    一、CAN模块配置概述

    在Autosar架构中,CAN通信是车载项目中的核心通信方式之一。其数据流包括发送和接收数据,通过节点间的通信实现信息的交换。在配置CAN模块时,需要关注以下几个关键步骤:设置CAN控制器参数(如波特率、工作模式等),配置通信节点ID及数据帧格式,以及定义通信协议和数据传输规则。此外,还需确保与其他模块(如ECU)的协同工作。通过合理配置,CAN模块能确保车载系统的高效、可靠通信。

    以上是对CAN模块配置的初步介绍,更多细节还需参考相关文档和资料。希望分享的内容能对大家有所帮助。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 17-3-2025 03:12:00 | 显示全部楼层
    【关于MCAL配置专题系列三——CAN模块配置的专业解读】

    尊敬的朋友:

    在本次分享中,我们将深入探讨MCAL中的CAN模块配置。在车载项目中,CAN通信作为主流技术,广泛应用于数据传输与控制。本次介绍的内容如下:

    一、首先简述CAN模块的基本概念及其在Autosar体系中的功能与应用。简要概述数据流传输模式。

    二、阐述如何在Autosar环境下进行CAN通信的配置方法。对于想要深入了解的读者,我强烈推荐您查阅Autosar介绍与关于其他车载总线的相关介绍文章,以便更好地理解CAN模块的配置过程。

    三、详细解析CAN模块配置的关键步骤和注意事项,确保配置的准确性和高效性。例如通讯节点的设定、数据格式与传输速率的选择等关键要素应特别关注。我们将为这些核心步骤提供专业级的解析与指导。如有疑问,欢迎留言探讨交流。让我们一起深化理解CAN模块配置的专业知识。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 17-3-2025 03:12:00 | 显示全部楼层
    针对MCAL的CAN模块配置介绍:

    一、概述

    在汽车嵌入式系统中,CAN(控制器局域网)通信是一种重要的数据传输方式。MCAL中的CAN模块配置是实现这一功能的关键部分。

    二、详细配置介绍

    1. 数据流:CAN通信的数据流包括发送和接收数据。在配置时,需确保数据流路径正确,以保证数据准确传输。
    2. 配置步骤:首先,配置CAN控制器参数,如波特率、通信模式等;其次,配置中断优先级及事件触发条件;最后,配置数据存储和访问方式。

    三、注意事项

    在配置过程中,要确保与其他汽车网络的兼容性,并注意信号处理及安全性要求。同时,针对实际应用场景进行针对性配置,以确保系统的稳定性和可靠性。

    总之,熟悉Autosar基础知识,了解CAN通信原理及数据流,按照正确步骤进行配置,是确保CAN模块正常工作的重要前提。
    回复 支持 反对

    使用道具 举报

    快速发帖

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

    GMT+8, 19-8-2025 09:21 , Processed in 0.320021 second(s), 37 queries .

    Powered by Discuz! X3.5

    © 2001-2013 Comsenz Inc.