关于瑞萨R7 的CANFD切换为经典CAN

news2025/1/11 20:47:54

        首先,R7的CANFD是兼容CAN通讯的,在R7芯片他们公用相同的寄存器,至于发出来的帧是CANFD还是CAN取决于协议的不同。

       CANFD是可变速率数据段为可变长度,扩展到64Byte,仲裁段和数据段的速率不相同。CANFD新增了FDF,BRS,ESI。FDF表示是CAN报文还是CANFD报文,为隐性时速率可变;BRS为位速率转换;ESI表示错误状态,主动错误发送显性位。

  在兼容性方面,CANFD兼容CAN。

        

         如上图所示为CAN的电平图一个位是由多个段的多个Tq组成,Tq多少由寄存器决定(8个Tq到25个Tq),CAN 电平为差分信号,绘制后的位为上述图1所述。

        关于速率和波特率的关系,现在市场上主流汽车的波特率还是500khz。

        正常情况下,大多数的CAN寄存器的波特率和采样点的关系如下

        波特率:波特率 = CAN总线时钟频率 / (1 + Time Segment1 + Time Segment2)

        采样点:采样点 =( 1 + Time Segment1)/ (1 + Time Segment1 + Time Segment2)

这两个公式同时提到了Time Segment1和Time Segment2,所以说我们同时在寄存器中配置这两个段就可以满足,我们对总线波特率和采样点的要求,同时关于采样点我们一共有,同步段(sync_seg)、传播时间段(prop_seg)、相位缓冲时间段1(Time Segment1)、相位缓冲时间段2(Time Segment2)。同时注意还有一个段SJW(synchronization jump width)同步跳转宽度,是用来限定延长相位缓冲时间段1(Time Segment1),或者缩短相位缓冲时间段2(Time Segment2),所以一般SJW小于相位缓冲时间段2(Time Segment2),同步段(sync_seg)为一个Tq。

        在设置R7的CAN模式必须处于全部复位模式(Global reset mode),然后再发送和接收Buffer寄存器中对 FDF,BRRS位做隐性处理,此处设置寄存器的时候关于RCMC的位设置仍为1

        此时,关于数据段和和仲裁段的设置,当CANFD 的FDF,BRRS的设置取消后,关于数据段的波特率将不再使用,比如此时CAN总线时钟为40M,同步段1设置为59,同步段2设置为20,则波特率为500Khz,采样点在80%,设置经验值20个Tq的同步跳转段。

      

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

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

相关文章

牛客_小白月赛_61

传送门 A 如果不是特意防止溢出了,那么需要用long,否则会一直卡 很普通的写法,超了就 1, 最后补上一个 1就行 (所以, 这题我wa了8次, 卡了半个小时,就是因为没开 long ! ! !) package com.csh.A; /*** author :Changersh* date : 2022/11/18*/import java.io.*; i…

day02 springmvc

day02 springmvc 第一章 RESTFul风格交互方式 第一节 RESTFul概述 1. REST的概念 REST:Representational State Transfer,表现层资源状态转移。 定位:互联网软件架构风格倡导者:Roy Thomas Fielding文献:Roy Thom…

Android源码学习---init

init,是linux系统中用户空间的第一个进程,也是Android系统中用户空间的第一个进程。 位于/system/core/init目录下。 分析init int main(int argc, char **argv) { //设置子进程退出的信号处理函数 sigchld_handler act.sa_handler sigchld_handler;…

【博学谷学习记录】超强总结,用心分享丨人工智能 Python面向对象 学习总结之Python与Java的区别

目录前言简述面向对象类对象特性前言 经过学习,对Python面向对象部分有了一定的了解。 总结记录:面向对象上Python与Java的部分区别 简述 从类、对象、特性三个层面来简述其部分区别 面向对象 类 PythonJava定义class ClassName(object):passpubl…

2000-2020年各省固定资本存量数据

2000-2020年各省资本存量数据 1:来源:统计NJ、各省统计NJ 2、时间:2000-2020年 3、包括:30个省 4、数据说明:含原始数据和计算过程及最终结果 4、指标说明: 参考文献: 单豪杰(…

【微服务架构组件之注册中心】注册中心选型-我只选nacos

注册中心的产生是基于用来解耦服务提供者(Provider)与消费者(Consumer)的关系,分布式设计架构下,众多的服务提供者的数量并不是动态不变的,在传统的静态LB的方案中,无法很好感知这种变化; 在分…

[附源码]java毕业设计网上宠物商店

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

进度条——不仅仅是语言层面上的小程序

文章目录\r和\n进度条完整代码\r和\n 在老式键盘上,回车键是这样的形状 但是该键的功能它不仅仅是回车,而是回车换行! 这里需要明白两个概念: 回车:光标移动到当前行的行首 换行:光标移动到当前位置的…

跟艾文学编程《Python基础》Anaconda 安装

作者:艾文,计算机硕士学位,企业内训讲师和金牌面试官,公司资深算法专家,现就职BAT一线大厂。 邮箱:1121025745qq.com 博客:https://edu.csdn.net/lecturer/894?spm1003.2001.3001.4144 内容&am…

原生AJAX

👨‍💻个人主页:微微的猪食小窝 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 微微的猪食小窝 原创 1、AJAX 简介 AJAX 全称为Asynchronous Javascript And XML,就是异步的JS 和 XML. 通过AJAX可以在浏览器中向服务器…

Vue3留言墙项目——主体部分静态、mock

文章目录主体头部主体关键部分小卡片组件创建mock数据以及使用主体头部 主体部分显示的内容,根据头部点击的是留言墙还是照片墙的按钮,显示不同的内容。 将照片墙和留言墙要渲染的数据抽取到一个js中,在导入的Main.vue(主体页面&…

[go]汇编ASM简介

文章目录汇编(ASM)寄存器帧指针FP常见指令函数示例生成汇编Go汇编代码主要用于优化和与底层系统交互,并不会像其它的经典汇编代码那样独立运行。汇编(ASM) Go ASM是一种被Go编译器使用的特殊形式的汇编语言(伪汇编),它基于Plan9输…

记录一次Powerjob踩的坑(Failed to deserialize message)

一. 问题描述: 在本地开发环境, server端和worker都运行正常. 但是发布到SIT环境(容器)的时候, 服务端却监测不到worker(worker可以找到服务端) 二. 问题表现: 1.服务端看不到Worker信息 2. 服务端日志信息 : Failed to deserialize message from [akka://oms111.111.111…

ECMAScript modules规范示例详解

引言 很多编程语言都有模块这一概念,JavaScript 也不例外,但在 ECMAScript 2015 规范发布之前,JavaScript 没有语言层面的模块语法。模块实际上是一种代码重用机制,要实现代码重用,将不同的功能划分到不同的文件中是必…

pycharm安装并加载编译器,设置背景图片,手把手详细操作

pycharm安装并加载编译器,设置背景图片,手把手详细操作 pycharm社区版(免费)下载官网 双击安装包,选择安装路径 勾选这两个,其实全不勾也没事 下一步默认就行,点install 安装完成后&#xf…

mimikatz抓取密码实战

必须下载最新版本 Releases gentilkiwi/mimikatz GitHubhttps://github.com/gentilkiwi/mimikatz/releases 有32和64之分,systeminfo查看自己版本 首先我们用后门得到权限,在用getsystem提权,因为mimikatz要system权限,getuid…

Python基础-1-环境搭建(初体验)

一:开发环境 Linux-5.15.0(Ubuntu22.04) 二:安装Python3 1、安装:sudo apt-get install python3 2、版本查询: python3 --version python3进入python解释器也可查询对应版本,按CtrlD或执行…

力扣(LeetCode)20. 有效的括号(C++)

栈模拟 一次遍历字符串 sss , 遇到左括号则入栈,遇到右括号则匹配栈顶。如果右括号匹配成功 , 栈顶元素弹栈 , 匹配不成功 , 则 returnfalsereturn\ \ falsereturn false 。 提示 : 当遍历完所有字符,记…

【计算机网络】扩展以太网方法总结

注:最后有面试挑战,看看自己掌握了吗 文章目录物理层扩展以太网链路层扩展以太网网桥网桥分类透明网桥源路由网桥多接口网桥----以太网交换机直通式交换机存储转发式交换机冲突域与广播域🍃博主昵称:一拳必胜客 🌸博主…

LinkedList详解

介绍 众所周知ArrayList底层数据结构是数组,但是数组有个缺点,虽然查询快,但是增删改会慢因为数组是在连续的位置上面储存对象的应用。当我们删除某一个元素的时候在他后面的元素的索引都会左移,导致开销会很大。所以LinkedList应…