Autosar CAN开发05(从实际应用认识CAN波特率)

建议同时阅读本专栏的:

Autosar CAN开发03(从实际应用认识CAN总线的物理层)

Autosar CAN开发04(从实际应用认识CAN报文)

Autosar CAN开发05(从实际应用认识CAN波特率)

前言

当知道了CAN的物理链路,了解了什么是CAN报文。

于是,你兴致勃勃的按照上面的接线方法,接好板子、接上CAN线,接好CAN线、还有终端电阻,再CAN盒接上电脑。

然后安装好电脑的CAN上位机并打开,然后发现。

嗯?怎么要选波特率,仲裁域波特率是啥玩意啊?

没办法,我们不知道是多少,只能问别人,于是,人家告诉你这这个板子的波特率是这么选。然后点击确认,报文就开始出来。

反正报文出来了就行,这个板子的波特率就这么选,记住就好了嘛。

...

相信,大部分的朋友都是这么操作的对吧。

但是,我们可是CAN开发工程师啊,可不能说连个波特率为啥要怎么选都不知道啊。

CAN波特率类型

首先,我们要知道仲裁域波特率是指哪个位置的波特率数据域波特率又是指哪个位置的波特率。

如下面两张图所示:

数据域波特率

仲裁域波特率​

注意,仲裁域波特率并不是单指仲裁域,而是除去数据域的其它地方的波特率:

另外,CAN格式的报文,数据域和仲裁域都是一样的波特率。所以,只要选一个仲裁域的就好了。

对于CANFD格式的报文,数据域和仲裁域是不同的波特率。所以,数据域和仲裁域的波特率都要选。

至于到底要选择波特率多少呢?

这就要根据代码里配置的波特率是多少了,而代码配置为多少,又是根据需求来的了。

深入理解CAN波特率

另外关于波特率我们理解深入一点:

实际上,波特率我是这样理解的:如波特率500k,即1秒/500k=2微秒,也就是说,最小2微秒可以进行一次电平变化,1秒最多可以电平变化500k次。(这个最小2us的一次变化的电平,这个叫做位时间)

再看回这张图(标准CAN格式的报文结构):

可见,标准CAN格式报文的长度(物理层次)为:1+11+1+1+1+4+0(64)+15+1+1+1+7=44~108位。

我们上面还说了,500K波特率的话,位时间是2us。

所以,对于500K波特率的标准CAN格式报文,数据域长度为64bit时,我们在示波器可以看到是这样的:

即,一帧报文的时间长度是:108bit * 2us = 116us。

好了,关于仲裁域波特率和数据域波特率的认识就到这里了。

结束

到这里为止,我们从CAN总线物理层需要的东西,到CAN报文是什么,再到CAN报文在CAN总线上的传输、到CAN波特率都大致了解了一遍。

现在,再看回之前认识CAN总线的那两张图片:

这回是不是就明白了,我们从CAN上位机看到的CAN报文,究竟是怎么来的了。

这篇文章的目的是为了能迅速认识什么是CAN总线和CAN报文,很多关于CAN通讯平时用不上的深入细节都省略了,等到最后这个CAN通讯开发系列快结束的时候,在写CAN驱动时再深入讲解,这样就更容易理解了。

实际上,对CAN入门来说,只要知道CAN的物理链路要怎么去接线,CAN报文是什么东西,这样就能进行CAN通讯开发了,比如CAN应用报文开发、网管报文开发、报文超时故障开发、CAN诊断开发等等。

好了,接下来就可以步入CAN开发了。但是,要开发总得有需求吧?总不能一上来啥需求也不知道,咔咔咔一顿开发,都不知道开发了啥。

下一篇文章,我们会看看CAN通讯开发的需求都是些什么。


建议同时阅读本专栏的:

Autosar CAN开发03(从实际应用认识CAN总线的物理层)

Autosar CAN开发04(从实际应用认识CAN报文)

Autosar CAN开发05(从实际应用认识CAN波特率)

发表日期:2023.12.25

朋友们,关注下我呀,我以我过来人,再用小白的角度认真写的知识总结一定让你的脑子饿肚子进来,扶墙出去...

返回目录:

Autosar BSW 开发笔记(目录)-CSDN博客

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

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

相关文章

Java之ArrayList源码解读

ArrayList源码解读 ArrayList ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。…

探索 HTTP 请求的世界:get 和 post 的奥秘(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

STM32MP157D-DK1开发板Qt镜像构建

上篇介绍了STM32MP57-DK1开发板官方系统的烧录。那个系统包含Linux系统的基础功能,如果要进行Qt开发,还需要重新构建带有Qt功能的镜像 本篇就来介绍如何构建带有Qt功能的系统镜像,并在开发板中烧录构建的镜像。 1 Distribution包的构建 ST…

逆向P1P2总结

字节八位 word 16位 deword 32 位 00 00 00 e8 是存储32位信息的起点 不是程序运行的起点 为什么电脑有32位与64位之分 寻址宽度 以字节为单位 0xfffffff 1 就是最大容量 转为十进制为 4294967296 / 1024 (k)/1024 (kb)/ 1…

【笔记】入门PCB设计(全30集带目录) 杜洋工作室 AD09 Altium Designer

入门PCB设计(全30集带目录) 杜洋工作室 AD09 p1 创建p2 原理图上增加元件1)加元件2)放导线3)自定义元件1. 自定义排针2.有引脚的元件 p3 完整原理图 p1 创建 step1.创建(PCB)工程,后缀.PrjPCB。…

从Maven初级到高级

一.Maven简介 Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供构建和依赖管理支持的工具。 一个 Maven 工程有约定的目录结构,约定的目录结构对于 Maven 实现自动化构建而言是必不可少的一环,就拿自动编译来说,Maven 必须 能…

如何快速删除pdf周围的空白

问题:写论文往往需要pdf格式的图片,但pdf往往四周存在大量空白需要手动截图很麻烦 解决: 打开命令行输入:pdfcrop 图片名.pdf

31. Ajax

简介 AJAX 是 Asynchronous JavaScript And XML 的简称。直译为,异步的JS和XML。AJAX的实际意义是,不发生页面跳转、异步载入内容并改写页面内容的技术。AJAX也可以简单的理解为通过JS向服务器发送请求。 AJAX这门技术很早就被发明,但是直到…

C++入门编程一(基本框架代码、宏定义、标识符、数据类型)

文章目录 一、基本框架代码解释多行注释缩进自动排版宏定义关键字 标识符命名规则标识符sizeof()关键字实型(浮点型)字符型转义字符字符串类型布尔类型数据的输入 基于b站黑马c视频做的笔记,仅供参考和复习!!! 一、基本框架代码解…

ES8生产实践——Kibana对接Azure AD实现单点登录

基本概念介绍 什么是单点登录 单点登录(Single Sign-On,SSO)是一种身份验证和访问控制机制,允许用户使用一组凭据(通常是用户名和密码)仅需登录一次,即可访问多个应用程序或系统,而…

node封装一个图片拼接插件

说在前面 平时我们拼接图片的时候一般都要通过ps或者其他图片处理工具来进行处理合成,这次有个需求就需要进行图片拼接,而且我希望是可以直接使用代码进行拼接,于是就有了这么一个工具包。 插件效果 通过该插件,我们可以将图片进…

Kafka日志文件存储

日志文件 kafka在server.properties配置文件中通过log.dir属性指定了Kafka的日志存储路径 核心文件 1. log文件 实际存储消息的日志文件, 大小固定1G(参数log.segment.bytes可配置), 写满后就会新增一个新的文件, 文件名是第一条消息的偏移量 2. index文件 以偏移量为索引…