【TC3xx芯片】TC3xx芯片CAN模块详解

目录

前言

正文

1.CAN硬件资源】

1.1. CAN硬件单元

1.2. CAN时钟

1.2.1. CAN时钟设计

1.2.2. MCMCAN配置实例

1.3. CAN中断

1.3.1. TC3xx芯片CAN中断设计

1.3.2. 通过查看寄存器看中断配置和产生状态

1.3.3. 实际AUTOSAR工程CAN中断配置

2.功能描述

2.1. 操作模式

2.1.1 软件初始化

2.1.2. Normal Operation

2.1.3. CAN FD Operation

2.1.4. 传输延迟补偿及第二采样点

2.1.5. Restricted Operation Mode

2.1.6. Bus Monitoring Mode

2.1.7. 禁用自动重传Disabled Automatic Retransmission

2.1.8. 休眠模式Power Down (Sleep Mode)

2.1.9. 测试模式

2.2. 时间戳产生Timestamp Generation

2.3. 超时计数器Timeout Counter

2.4. 接收处理

2.4.1 接收滤波

2.4.2. Rx FiFOs

2.4.3. Rx Buffers

2.5. 发送处理

2.5.1. 发送暂停Transmit Pause

2.5.2. Tx Buffer

2.5.3. Tx FIFO

2.5.4. Tx Queue

2.5.6. Tx Buffer和Tx FIFO混合发送

2.5.7. Tx Buffer和Tx Queue混合发送

2.5.8. 发送取消Transmit Cancellation

2.5.9. Tx Event Handling

2.6. FIFO确认处理

3. Message RAM

3.1. Standard Message ID Filter Element

3.2. Tx Buffer Element

3.3. AUTOSAR CAN配置与芯片特性对应关系

5.总结


前言

CAN模块应该是车载ECU中最常用的功能模块了,但是结合具体的芯片平台,以下问题你清楚吗?

问题1:如何配置时钟模块得到我们想要的CAN模块时钟?

问题2:Autosar工程中如何配置CAN相关中断,其具体配置/使能了哪些CAN中断?

问题3:为什么要配置延迟补偿(第二采样点)?

问题4:Autosar工程中CAN配置项与具体芯片平台的Message RAM类型(Rx Buffer, Rx FIFO, Tx Buffer, Tx FIFO, Tx Queue)是如何对应的?

问题5:实际工程中建议如何使用Message RAM/Maibox ?

本文就来详细介绍下TC3xx芯片的CAN模块,并尝试回答以上问题。

注意:CAN协议本身还是挺复杂的,只不过芯片已经集成了CAN协议解析器,也就是说CAN协议本身由硬件来实现,用户基本不用太关系CAN协议本身,而且在Autsoar架构下CAN Driver模块已经抽象封装了具体芯片的特性,对于

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

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

相关文章

KubeSphere核心实战_kubesphere部署redis01_为redis指定配置文件_指定存储卷_配置服务---分布式云原生部署架构搭建047

然后我们再来,部署一下redis,可以看到,首先去容器官网去找到对应的redis的镜像然后 可以看到镜像中都有说的,如何启动,以及 --appendonly yes 是指定持久化.然后 /data表示数据存储的位置. 可以看到数据存储位置 然后还有配置文件的位置. 可以看到,我们首先去创建配置文件,然后…

LNMP 架构(Linux+NGINX+memcache+PHP)

目录 1 源码编译PHP与NGINX 1.1 NGINX 源码编译 1.2 PHP 源码编译安装 2 实现PHP与NGINX的连接 2.1 php-fpm的详细介绍 2.2 LNMP与LAMP的区别 2.3 PHP配置文件的介绍 2.4 实例实现php-fpm 与 NGINX的连接 2.4.1 指定pid的存放位置 2.4.2 php-fpm设置监听自己端口与IP 2.4.3 主配…

配置 昇腾 Ascend C/C++ 开发环境

配置 昇腾 Ascend C/C 开发环境 flyfish 这里以Orange Pi Ai Pro 为例 先说如何配置MindStudio,然后再说如何查看Orange Pi Ai Pro的一些信息 Orange Pi AI Pro 开发板是香橙派联合华为精心打造的高性能AI 开发板,其搭载了昇腾 AI 处理器。Linux 桌面…

VSCode系列 - 如何用VSCode搭建C++高效开发环境(2)

1. 插件的用法 1.1. C/C 1.1.1. 插件介绍1.1.2. 插件配置 1.2. Clang-Format1.3. cpp-check-lint 1.3.1. cpplint1.3.2. cppcheck1.3.3. 插件的使用 1.4. C/C Advanced Lint 1.4.1. 插件介绍1.4.2. 插件配置 1.5. Bracket Pair Colorizer 1.5.1. 插件介绍1.5.2. 功能配置 1.6. …

海外独立站站外推广:拓展全球市场的策略与实践

海外独立站的站外推广是一个系统工程,涉及市场研究、品牌本土化、多渠道推广、广告投放、网站体验优化、客户服务和数据分析等多个方面。通过本文的探讨,企业可以更好地理解海外推广的策略和实践,把握全球化电商的发展趋势,实现企…

【机器学习】探索机器学习在旅游业的革新之旅

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀目录 🔍1. 引言📒2. 机器学习在旅游需求分析中的应用🌞用户行为数据分析🌙旅客偏好预测模型⭐…

Java面试八股之如何保证消息队列中消息不重复消费

如何保证消息队列中消息不重复消费 要保证消息队列中的消息不被重复消费,通常需要从以下几个方面来着手: 消息确认机制: 对于像RabbitMQ这样的消息队列系统,可以使用手动确认(manual acknowledge)机制来…

vue里组件化引入svg图标的方式

配置好后可以轻松从iconfont导入svg图标或者任意svg图标。 参考:https://blog.csdn.net/weixin_39729729/article/details/137348970 https://blog.csdn.net/CMDN123456/article/details/139854354 官网https://www.iconfont.cn/help/detail?spma313x.help_detai…

C++ 设计模式——策略模式

策略模式 策略模式主要组成部分例一:逐步重构并引入策略模式第一步:初始实现第二步:提取共性并实现策略接口第三步:实现具体策略类第四步:实现上下文类策略模式 UML 图策略模式的 UML 图解析 例二:逐步重构…

Flask-SQLAlchemy 和 Alembic 的结合

Flask-SQLAlchemy 和 Alembic 的结合 安装必要的库配置 Flask-SQLAlchemy定义数据库模型初始化 Alembic配置 Alembic配置 env编写迁移脚本应用迁移后续迁移Flask-SQLAlchemy 和 Alembic 是两个非常流行的 Python 库,它们通常一起使用来管理 Flask 应用中的数据库迁移。Flask-S…

低功耗神经网络

低功耗神经网络(Low-Power Neural Networks)是指在有限能源或资源条件下设计和实现的高效神经网络模型。这些网络旨在减少能耗,同时在性能上保持与传统神经网络相近的水平。随着深度学习在移动设备、物联网(IoT)和边缘…

【c语言】整数在内存中的储存(大小端字节序)

整数在内存中的储存(大小端字节序) 1.整数在内存中的储存 2.大小端字节序 3.整数在内存中储存例子 4.字节序判断 5.死循环现象 文章目录 整数在内存中的储存(大小端字节序)整数在内存中的储存大小端字节序什么是大小端为什么会有…

深入理解 Go 语言原子内存操作

原子内存操作提供了实现其他同步原语所需的低级基础。一般来说,你可以用互斥体和通道替换并发算法的所有原子操作。然而,它们是有趣且有时令人困惑的结构,应该深入了解它们是如何工作的。如果你能够谨慎地使用它们,那么它们完全可以成为代码优化的好工具,而不会增加复杂性…

Unity 麦扣 x 勇士传说 全解析 之 怪物基类(2)(附各模块知识的链接,零基础也包学会的牢弟)(案例难度:★★☆☆☆)

1.怪物的动画逻辑一览 2.怪物的受伤死亡逻辑一览 using System.Collections; using System.Collections.Generic; using System.Xml; using UnityEngine;public class Monster : MonoBehaviour {[Header("速度")]public float normalSpeed;public float chaseSpeed;…

在国产芯片上实现YOLOv5/v8图像AI识别-【2.5】yolov8使用C++部署在RK3588更多内容见视频

本专栏主要是提供一种国产化图像识别的解决方案,专栏中实现了YOLOv5/v8在国产化芯片上的使用部署,并可以实现网页端实时查看。根据自己的具体需求可以直接产品化部署使用。 B站配套视频:https://www.bilibili.com/video/BV1or421T74f 背景…

valgrind 工具helgrind使用

valgrind --toolhelgrind --log-file./valgrind.log ./game_50 可能的错误报告:Possible data race during read/write of size X at address Y by thread #Z. Locks held: none。这表示在地址Y处,大小为X的数据被线程#Z在没有持有锁的情况下读写&…

nginx简介及功能

一、简介: 1、nginx、apache是什么? ‌Nginx‌是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。它由伊戈尔赛索耶夫为Rambler.ru站点开发,以其稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而…

专业技能(挖坑填坑)——MYSQL的索引、日志、事务、存储引擎、锁机制等相关原理

熟悉MySQL的使用,熟悉MYSQL的索引、日志、事务、存储引擎、锁机制等相关原理。 1.mysql索引,索引的底层数据结构实现 索引就是目录可以帮助快速的找到对应的资源。 MySQL默认的InnoDB存储引擎使用的索引底层数据结构是BTree。BTree是一种多路搜索查找树…

OSI七层网络模型 /TCP/IP五层模型以及封装分用的详细讲解

文章目录 协议分层的好处OSI七层网络模型TCP/IP五层网络模型网络设备所在的分层(重点)封装和分用 协议分层的好处 第一点: 在网络通信中,如果使用一个协议来解决所有的问题,那么这个协议就会非常的庞大,非常不利于去学习和理解&…

2023华为od机试C卷【转盘寿司】C 实现 单调栈

#include <stdio.h> #include <stdlib.h>/*单调栈 旋转寿司3 15 6 14 3 21 9 17*/ int main() {int i 0;int len 0;int data 0;int nums[501];char c ;while(scanf("%d",&nums[i]) 1){i;len;c getchar();if(c \n)break;}int *out NULL;int *s…