CAN Driver

news2025/1/17 21:35:14

CAN Driver

前言:CAN驱动针对的是微控制器内部的CAN控制器,它可以实现以下功能:

对CAN控制器进行初始化;

发送和接收报文;

对报文的数据和功能进行通知(对接收报文的指示、对发送报文的确认);

溢出和错误处理;

唤醒检测。

此外,CAN驱动还具有以下特性:单个或多个CAN通道、CAN驱动的多重实例化、对接收报文的中断/轮询模式。

CAN驱动是MCAL的一部分,可以执行硬件访问、向上层提供独立于硬件的API,而仅有的能够访问CAN驱动的上层是CAN接口(CAN Interface)。CAN驱动也可以为数据传输的初始化和通知接收事件的回调函数提供服务,该服务也是独立于硬件的。除此之外,CAN驱动也可以控制从属于同一个CAN硬件单元的CAN控制器的行为和状态。

在工具EB tresos studio(下文称EB)下,以“simple_demo_can_rte “工程为例,该工程所用MCU型号为S32K144(pin100),工程在EB工具下打开页面如图1,配置AUTOSAR MCAL的CAN驱动配置,涉及CAN、PORT、MCU模块相关内容。

图1:EB工程概览

1.  PORT模块配置CAN

1.1  CAN PORT 容器

如图2左下角outline窗口所示,在PortContainer的实例PortContainer_0中有PortNumberOfPortPins和PortPin两项,前者是PortPin数量后者为Port具体配置项。

图2:PortPin配置

1.2  CAN PORT 配置

如添加配置CAN0,如图2中在红框1处PortNumberOfPortPins加2,红框2处,点击添加Port配置实例。双击打开新增实例,一般需要配置下列四处红框标识处即可,其中

PortPin Pcr这个的值就是当前你所使用的引脚的MSCR number,在芯片的用户手册附件可查(图4),每一个引脚都有对应的值。选择正确的PCR值后PortPin Mode的枚举中就会有对应的选项出现。图4为CAN0_TX脚配置,CAN0_RX按照同样逻辑配置。

图3:CAN PortPin配置

图4:IO Signal Table

2.  设置CAN模块

图5:CAN 控制器配置

2.1  添加CAN控制器实例

点击图5所示outline窗口的CanConfigSet->CanController,如图所示主窗口点击箭头所指的加号添加控制器实例,双击实例进入配置页面。

图6:CAN控制器配置页面1

图7:CAN控制器配置页面2

2.2  一般配置项

如图6主要需要设置的项有硬件CAN通道选择,收、发、busoff工作方式选择,图7红框1处CAN波特率配置,红框2处CAN时钟配置。

2.3  波特率配置方式

图8:CAN波特率配置1

图9:CAN波特率配置2

图10:CAN波特率配置3

按照计划的波特率填入prop_seg、seg1、seg2等值。

    1.  CAN时钟源参考点配置

CAN时钟源可选择项在MCU模块的McuClockReferenePoint下选择,路径和添加步骤如图11所示,可以直接选择合适的时钟频率或者重新添加。点击图11的2处并双击进入图12所示页面,选择1处时钟源后点击2处图标会自动显示该时钟源大小。

图11:CAN时钟配置1

图12:CAN时钟配置2

    1.  引用配置实例

上述配置完成后,回到CAN控制器配置处,点击图13箭头所示图标,点击List referenceable nodes工具会列出可选项,从中选择需要的即可。

图13:左侧图标功能菜单

    1.  mailbox设置

按照图14添加mailbox实例并双击进入如图15所示配置页面,一般所需配置项如图红框所示,收、发、CANID过滤配置,CAN控制器配置如图13所示同样的方法,索引到合适的CAN控制器配置。

图14:mailbox设置路径

图15:mailbox配置

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SSM+Vue的人力资源管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

交叉编译工具链-Ubuntu 安装说明

交叉编译工具链-Ubuntu 安装说明 【实验目的】 了解交叉编译工具链的安装方法与使用方法 【实验环境】 1、 ubuntu 14.04 发行版 【注意事项】 1、实验步骤中以“$”开头的命令表示在 ubuntu 环境下执行 【实验步骤】 1、安装交叉编译工具链 在 ubuntu 下打开一个终端并进入到家…

yamot:一款功能强大的基于Web的服务器安全监控工具

关于yamot yamot是一款功能强大的基于Web的服务器安全监控工具,专为只有少量服务器的小型环境构建。yamot只会占用非常少的资源,并且几乎可以在任何设备上运行。该工具适用于Linux或BSD,当前版本暂不支持Windows平台。 比如说,广…

elasticsearch11-实战搜索和分页

个人名片: 博主:酒徒ᝰ. 个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来。 本篇励志:三人行,必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud…

Prometheus+Grafana可视化监控【ElasticSearch状态】

文章目录 一、安装Docker二、安装ElasticSearch(Docker容器方式)三、安装Prometheus四、安装Grafana五、Pronetheus和Grafana相关联六、安装elasticsearch_exporter七、Grafana添加ElasticSearch监控模板 一、安装Docker 注意:我这里使用之前写好脚本进行安装Docke…

Linux学习之平均负载的概念和查看方法

先理解一下平均负载的含义: 平均负载是指单位时间内,系统处于可运行状态和不可中断状态的进程数,也可以看成平均活跃进程数。 可运行状态的进程: 正在使用CPU或者正在等待CPU处理的进程,ps 命令看到的,处于…

AO天鹰优化算法|含源码(元启发式算法)

-----------------------往期目录------------------ 1、灰狼优化算法 文章目录 天鹰优化器一、第一种搜索方法二、第二种搜素方法三、第三种搜素方法四、第四种搜索方法 代码实现 天鹰优化器 Aquila Optimizer(AO),灵感来自Aquila在捕捉猎物…

Mysql001:(库和表)操作SQL语句

目录: 》SQL通用规则说明 SQL分类: 》DDL(数据定义:用于操作数据库、表、字段) 》DML(数据编辑:用于对表中的数据进行增删改) 》DQL(数据查询:用于对表中的数…

开源日报 0825 | 简化开发过程,提升Swift应用性能的扩展工具库

OpenZeppelin/openzeppelin-contracts Stars: 22.8k License: MIT OpenZeppelin Contracts 是一个用于安全智能合约开发的库。它建立在社区验证过的代码基础上,具有以下主要功能: 实现了 ERC20 和 ERC721 等标准。灵活的基于角色的权限控制方案。可重…

数据结构-leetcode-环形链表

解题图解: 代码如下: bool hasCycle(struct ListNode *head) {struct ListNode * fasthead;//在这里fast是快指针//head作为low指针//因为这个题不需要做修改也只需返回true或false//就少开辟一个空间while(fast!NULL&&fast->next!NULL){hea…

Css实现右上角飘带效果

效果图&#xff1a; 源码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style type"text/css">*{margin: 0 auto;padding: 0;}.wrap {/* 设置宽高 */width: 350px;height: …

多分类中混淆矩阵的TP,TN,FN,FP计算

关于混淆矩阵&#xff0c;各位可以在这里了解&#xff1a;混淆矩阵细致理解_夏天是冰红茶的博客-CSDN博客 上一篇中我们了解了混淆矩阵&#xff0c;并且进行了类定义&#xff0c;那么在这一节中我们将要对其进行扩展&#xff0c;在多分类中&#xff0c;如何去计算TP&#xff0…

1_图神经网络GNN基础知识学习

文章目录 安装PyTorch Geometric安装工具包 在KarateClub数据集上使用图卷积网络 (GCN) 进行节点分类两个画图函数Graph Neural Networks数据集&#xff1a;Zacharys karate club network.PyTorch Geometric数据集介绍 edge_index使用networkx可视化展示 Graph Neural Networks…

cenos自动启动tomcat

首先创建一个脚本 关闭tomcat 等待2分钟 启动tomcat 并且把日志输出在 /usr/local/tomcat/tomcatchognqi.log #!/bin/bashexport JAVA_HOME/usr/local/jdk/jdk1.8.0_211 export JRE_HOME$JAVA_HOME/jre# 日志文件路径和文件名 LOG_FILE"/usr/local/tomcat/tomcatchognqi.…

Ubuntu20.4搭建基于iRedMail的邮件服务器

iRedMail 是一个基于 Linux/BSD 系统的零成本、功能完备、成熟的邮件服务器解决方案。基于ubuntu20.4搭建基于iRedMail的邮件服务器包括环境配置&#xff0c;iRedMail安装与配置&#xff0c;iRedMail调整邮件附件大小等3个小节进行描述。具体如下详细描述。 1 环境配置 1.设置…

企业架构LNMP学习笔记56

MongoDB数据类型操作&#xff1a;CURD 1、添加数据&#xff1a; mongodb里存储数据的格式文档形式&#xff0c;以bson格式的文档形式。 创建数据库&#xff1a; > use tp5shop switched to db tp5shop > db.getName() tp5shop使用切换库&#xff0c;不存在自动创建&am…

Jmeter 自动化性能测试常见问题汇总

一、request 请求超时设置 timeout 超时时间是可以手动设置的&#xff0c;新建一个 http 请求&#xff0c;在“高级”设置中找到“超时”设置&#xff0c;设置连接、响应时间为2000ms。 1. 请求连接超时&#xff0c;连不上服务器。 现象&#xff1a; Jmeter表现形式为&…

计算机竞赛 机器视觉人体跌倒检测系统 - opencv python

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 机器视觉人体跌倒检测系统 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&…

【AIGC】Stable Diffusion Prompt 每日一练0915

一、前言 1.1 写在前面 本文是一个系列&#xff0c;有点类似随笔&#xff0c;每天一次更新&#xff0c;重点就Stable Diffusion Prompt进行专项训练&#xff0c;本文是第一篇《Stable Diffusion Prompt 每日一练0915》。 1.2 项目背景 stable diffusion提示词(prompt)是用于…

[vue问题]开发中问题集合

“TypeError: Cannot read property ‘Request’ of undefined” 这是测试文件的报错&#xff0c;最后发现是因为项目启动的时候就报错了&#xff0c;是其它错误导致的&#xff0c;所以测试文件才会提示这种错误&#xff0c;当启动报错修复后&#xff0c;该问题没有了 热加载…