CAN通信篇 - Can模块配置(一)

文章目录

  • CanConfigSet
    • CanControllers
      • CanControllerBaudrateConfig
      • CanFilterMask
    • CanHardwareObjects
    • CanGeneral
      • CanMainfunctionRWPeriods
  • 总结

Can模块的是CAN控制器模块,该模块比较简单,只包括三个部分:Can控制器、Can硬件对象(CAN控制器手册中所描述的MailBox)以及通用配置中的Can主函数周期。下面所示为Davinci Configurator配置工具中Can模块的配置容器。
在这里插入图片描述
下面详细介绍下各部分配置及其参数意义。

CanConfigSet

CanConfigSet是Can模块的二级配置容器,包含了Can控制器和Can硬件对象,2个三级配置项容器。

CanControllers

CanController容器包含了所有Can控制器的配置。根据系统上实际使用的Can控制器硬件数量,在这里配置对应数量的控制器(就是每个控制器硬件对应的软件抽象,一对一关系)个数。下图所示是一个对应硬件Can控制器的配置容器的包含项,包括了:波特率和过滤器掩码,下面来一一介绍。
在这里插入图片描述
首先是Can控制器的通用参数配置,如下图所示。

在这里插入图片描述

其中需要特别注意的都已用红圈标明。其余配置项不是不重要,而是这些配置项有些是默认,有些是在MCAL导入达芬奇工具的arxml中已确定,属于预条件(比如,通过EB配置后,再导入达芬奇),这里不做过多详述。
这里需要注意的第一个是Can控制器的地址(Controller Base Address),即在MCU的寻址空间上,该控制器的位置,现在使用的Microp,基本都是内置Can控制器的,可以直接查芯Microp芯片手册获取该参数。
第二个是波特率选择,这里这个波特率是引用了子配置项波特率的配置。即实际波特率配置是在CanControllerBaudrateConfig容器配置的,这里仅仅是引用之。
第三个是时钟选择,这里引用自Mcu模块配置的给Can模块使用的时钟;
第四个是Tx/Rx处理方式,这里有两种选择,分别是中断式和轮询式,具体采用哪种方式,视具体项目需求而定;
第五个是唤醒处理方式,也分为中断和轮询两种方式,具体视项目需求而定;
第六个是唤醒源选取,唤醒源来自EcuM,这里仅是选取使用,具体后续在EcuM中做介绍;

CanControllerBaudrateConfig

波特率配置如下所示,具体每个参数及其意义,可查CAN通信原理,这里不做赘述。
在这里插入图片描述

CanFilterMask

在本容器进行过滤掩码配置,没有过多需要介绍的。

CanHardwareObjects

CanHardwareObjects包含了项目使用的MailBox数量及其配置。关于具体最多可以配置多少个Can硬件对象具体要参考所使用的Can控制器硬件手册,Can控制器硬件手册会说明该Can控制器最多支持多少个CanMailBox。MailBox分为接收和发送两种发送Can硬件对象如下所示:
发送型:
在这里插入图片描述
接收型:
在这里插入图片描述
这里配置上需要注意有以下:

  • Controller Ref ,引用CanController容器配置的Can控制器,表示该MailBox属于那个Can控制器;
  • Handle Type,有BASIC和FULL两种,表示该MailBox服务于的CAN类型,具体这两种CAN类型的区别,参考CAN基础知识,此处不做赘述;
  • Id Type,表示该MailBox可用于处理的CAN ID类型,有三种,分别为EXTENDED , MIXED 和 STANDARD,分别代表了扩展帧CAN报文(29bit-id)、混合CAN报文(扩展帧和标准帧都可以)和标准帧CAN报文(11bit-id);
  • Id Value,在FULL类型的Can硬件对象中,该值表示本Can MailBox处理的Can Id。在BASIC类型的Can硬件对象中,该值结合Filter Mask用于报文过滤;
  • Object Type,分为TRANSMIT和RECEIVE,用于定义该Can硬件对象是用于报文发送的MailBox还是用于接收MailBox
  • Filter Mask Ref ,引用CanController中定义的过滤掩码;

CanGeneral

CanGeneral是Can模块的通用配置容器,包含了许多配置参数。根据不同的芯片,配置项未必完全相同,此处参考的是Infineo TriCore平台。

  • Change Baudrate Api, 定义Can_ChangeBaudrate Api是否使能;
  • Counter Ref,引用Os模块定义的OS Counter,用于本模块;
  • Dev Error Detection, DET使能开关;
  • Ecc Init,指定Can驱动是否初始化Can报文RAM,当报文RAM使用了parity或ECC功能,建议硬件复位后初始化报文RAM;
  • Enable optimizations for hardware buffer lengths , 如果选中此项,FullCAN的硬件缓冲区将被限制为要接收的实际消息的帧长度。一般来说,这可以节省硬件资源,但如果收到帧长度较长的CAN-FD消息,它们可能会被驱动程序丢弃。如果禁用此功能,硬件缓冲区将配置为能够接收所有消息长度的最大值。
  • Fd NISO,指定CAN-FD帧格式一致性(ISO11898-1或博世CAN FD V1.0);
  • Fd Support,指定支持的CAN FD类型,NONE表示不支持,BRS表示支持,但DLC最大为8字节,FULL表示支持,且DLC最大为64字节;
  • Generic Confirmation,定义是否使能通用确认函数;
  • Generic Confirmation API2,此参数更改“CanGenericConfirmation”的签名,以支持总线镜像(第二种使用情形是支持CDD镜像组件进行总线镜像。另请参见“CanMirrorModeSupport”。)
  • Generic Pre Transmit,此参数定义是否为所有Tx消息调用通用的预传输函数。在发送消息之前,使用此选项可更改数据或中止传输。
  • Generic Precopy,此参数定义是否调用通用预拷贝函数。如果使能,任何Rx事件都会调用该函数。
  • Get Status, 该参数定义是否使能API Can_GetStatus();
  • Hardware Cancel By Appl, 该参数定义是否可以取消硬件loop检查,仅当CanHardwareLoopCheck使能时才可使用;
  • Hardware Loop Check, 该参数使能硬件loop检查,以避免死循环(仅在硬件支持时才可用);
  • Interrupt Category,如果采用中断式处理,指定所采用的中断等级;
  • Interrupt Lock,该参数指定由谁处理中断锁,可选DRIVER,APPL或BOTH;
  • Main Function Busoff Period[ms], 指定函数Can_MainFunction_Busoff的调用周期;
  • Main Function Mode Period[ms],指定函数Can_MainFunction_Mode的调用周期;
  • Main FunctionWakeup Period[ms],指定函数Can_MainFunction_Wakeup的调用周期;
  • Multiple Basic CAN Object,当使用多个基本CAN硬件消息来优化接收时激活该选项,这允许使用更多硬件消息过滤器和硬件消息缓冲区(仅在硬件支持时才有效)。
  • Multiple Basic CAN Tx Object,当使用多个TX基本CAN硬件消息优化传输时激活该想想,这允许使用更多硬件消息缓冲区(仅在硬件支持时才有效)。
  • ReInitialization While Start Transition,该选项定义是否在启动传输时执行整个处理器初始化(包括硬件Rx和Tx邮箱和控制寄存器)。

CanMainfunctionRWPeriods

对于采用轮询方式处理Can报文处理的场景,CanMainfunctionRWPeriods容器用于定义函数Can_MainFunction_Read和Can_MainFunction_Write的执行周期。
在这里插入图片描述

总结

以上就是Davinci Configurator中关于Can模块的配置介绍。

  • 这个模块主要进行Can控制器相关参数和Can模块的Tx和Rx的MailBox配置。至于CanGeneral的配置,一般保持默认即可。另外关于轮询式Can报文处理的周期定义,仅在配置为轮询式处事方式时才需要,对于配置为中断式的,空置即可。
  • 这个模块可以理解为是AUTOSAR架构下Can通信的最低层(暂不考虑MCAL),直接与CanBus交互;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/512567.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMvare安装17安装centos8教程

阿里镜像站:https://mirrors.aliyun.com/centos centos-8-isos-x86_64安装包下载_开源镜像站-阿里云 https://mirrors.aliyun.com/centos/8/isos/x86_64/CentOS-8.5.2111-x86_64-dvd1.iso 将上面的链接复制到迅雷进行高速下载 vmvare安装配置教程安装教程 CentO…

揭秘大气颗粒物与VOCs:PMF源解析技术全解析

在现今日益严峻的环境问题中,大气颗粒物和臭氧污染尤为突出,它们不仅深刻影响着全球气候和生态环境,更对人体健康构成了严重威胁。为了有效应对这一挑战,我们首先需要深入了解颗粒物和臭氧的来源,特别是臭氧的前体物之…

代码随想录训练营第37天 | LeetCode 738.单调递增的数字、LeetCode 968.监控二叉树、

目录 LeetCode 738.单调递增的数字 文章讲解:代码随想录(programmercarl.com) 视频讲解:贪心算法,思路不难想,但代码不好写!LeetCode:738.单调自增的数字_哔哩哔哩_bilibili 思路 ​​​​​​LeetCode 968.监控二…

鸿蒙学习-数据持久化

应用数据持久化概述 应用数据持久化,是指应用将内存中的数据通过文件或数据库的形式保存到设备上。内存中的数据形态通常是任意的数据结构或数据对象,存储介质上的数据形态可能是文本、数据库、二进制文件等。 HarmonyOS标准系统支持典型的存储数据形态…

Maven构建MapReduce程序上传至虚拟机运行找不到jdbc.Driver

问题前置: Maven构建MapReduce程序, pom中已经写入jdbc驱动, 上传至虚拟机运行扔找不到jdbc.Driver, 具体报错:java.lang.RuntimeException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 第一步:确认pom…

【AI视野·今日Sound 声学论文速览 第五十一期】Mon, 4 Mar 2024

AI视野今日CS.Sound 声学论文速览 Mon, 4 Mar 2024 Totally 6 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers VoxGenesis: Unsupervised Discovery of Latent Speaker Manifold for Speech Synthesis Authors Weiwei Lin, Chenhang He, Man Wai Mak, …

城市平均高温、平均低温数据爬取与可视化

爬取历史天气网站数据 从天气网站爬取指定城市、指定时间范围内的天气数据,并将数据保存为CSV文件。具体而言,它使用了Selenium库来模拟浏览器行为,以便获取动态加载的页面内容。 主要步骤如下: 读取城市信息和代理IP信息&…

html样式排版

<template><div class"box"><div class"header">头部</div><div class"main"><div class"left">菜单</div><div class"right"><div class"right-contentr"&g…

超分之Real-ESRGAN官方代码解读

文章目录 高阶退化过程生成用于一阶、二阶退化过程的各种模糊核&#xff0c;以及sinc滤波器具体的一阶、二阶退化过程 高阶退化过程 生成用于一阶、二阶退化过程的各种模糊核&#xff0c;以及sinc滤波器 文件位置 “basicsr/data/realesrgan_dataset.py” # ------------------…

中国企业走向世界,新加坡共和理工学院师生首站到访开源网安交流

近年来&#xff0c;中国企业在众多领域突飞猛进&#xff0c;不断追赶国际头部企业技术水平&#xff0c;甚至在某些领域已经达到国际领先水平&#xff0c;国内企业的最佳实践逐渐成为了全球精英学习研究的对象。 3月4日&#xff0c;由新加坡五所国立理工学院之一的新加坡共和理工…

HarmonyOS—编译构建概述

编译构建是将应用/服务的源代码、资源、第三方库等&#xff0c;通过编译工具转换为可直接在硬件设备上运行的二进制机器码&#xff0c;然后再将二进制机器码封装为HAP/APP软件包&#xff0c;并为HAP/APP包进行签名的过程。其中&#xff0c;HAP是可以直接运行在模拟器或真机设备…

[数据集][图像分类]芒果叶病害分类数据集4000张5类别

数据集格式&#xff1a;仅仅包含jpg图片&#xff0c;每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数)&#xff1a;4000 分类类别数&#xff1a;8 类别名称:["anthracnose","bacterial_canker","cutting_weevil","die_back",&…