CAN总线之一篇文章讲清楚Motorala和inter格式

前言:

之前的工作中,其实对Motorala和inter格式并不是了解的十分透彻。最近由于工作需要,研究了一下这两种格式,发现里面的门道其实挺复杂的。

特此作了一些总结:和大家一起分享。

我查了不少文档,描述其实条理并不是特别清晰。容易让人产生一种混乱的感觉,本质上是没有抓住很多初学者的痛点。本文第一第二节先不讲两种格式,而是先理清最基本的问题。

1:了解CAN发送的bit时序和Byte时序

1.1 Byte发送时序

目前所有的CAN协议,所有的CAN收发器,都是按一个顺序发送:即先发送低字节Byte0-》Byte2->Byte3.....Byte7(CANFD,还能拓展到Byte64)。记住所有的都这样。

1.2 bit发送时序

一个Byte包含7个bit,那么先发送bit7,还是先发送bit0?,目前两种方法均可以(不过需要注意的是,无论是先发送bit7还是bit0,仲裁段都是先发送bit高位)。

从图中可以看出:

第一种情况,先发bit7-》bit0-》bit15-》bit8.。。。

第二种情况,先发bit0-》bit7—》bit8——》bit15

切记这两种,对后续理解6种起始位的计算非常重要

 

结合CANdb++或CANdb—admin工具,默认是采用先发送bit7。如果需要先发送bit0。则需要如下设置。如图

或者在seting界面勾选

则就能匹配bit0先发的机制。

2:了解signal中的MSB和LSB

需要注意的是,我们通常的思维是,将signal带入到Message中,暂时不要这么干,容易引起思维上的混乱。先只看signal。

MSB就代表信号的高bit位,LSB表示低bit

3:Motorala和inter格式对跨字节信号的处理

我们知道上面提到的Vehicle_Speed信号一个Byte肯定放不下,需要跨字节存放。

很多资料都用一句话总结:"Inter,Motorola是"。红色的字表示Signal中的MSB和LSB。黄色字表示的是Message(即帧)中的Byte

如下图,

Inter格式

Motorola格式

这个好理解,不会的多查点资料!!不再赘述。。。。

接下来就是重点

4:6种方法对Startbit的判定

4.1 motorala的四种格式

起始位16bit

这个非常特殊,需要吧信号按照镜像折叠,即像下图

把LSB向上移动,msb向下移动,然后按移动后的LSB算起始位

上面的Vehicle_Speed所处Message是8个Byte,就按图示方法变换位置,最后按变换后的LSB位置计算Startbit。

 查看结果:

这表示,猜想正确。

 

4.2 Inter的两种格式

起始位12bit

起始位11bit

4:6种起始位的计算方式和bit发送顺序的关系

sequence,一定要匹配bit0先发

其他4中都是bit7位先发

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

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

相关文章

MongoDB 向 PostgreSQL 宣战

上周 MongoDB 发布了一份亮眼的季度财报,盘后股价涨幅超过 18%。 值得一提的是,MongoDB 的 CEO Dev Ittycheria 特别提到 MongoDB 正在借助自己的数据库服务 Atlas 从 PostgreSQL 那里挖角。原话是举了一个博彩网站的例子: “Initially, th…

【C++ 第十八章】C++11 新增语法(4)

前情回顾: 【C11 新增语法(1):1~6 点】 C11出现与历史、花括号统一初始化、initializer_list初始化列表、 auto、decltype、nullptr、STL的一些新变化 【C11 新增语法(2):7~8 点】 右值引用和…

uniapp插槽用法

目录 什么是插槽? 基本概念 默认插槽 命名插槽 作用域插槽 场景一:子插槽向父组件传递一个字符串 场景二:子插槽向父组件传递对象 什么是插槽? 在 UniApp 中,插槽(Slot)是一种允许父组件向子组件特定位置插入HTML内容的方式。这种方式使得组…

快速便捷地解决 reCAPTCHA 的方法

reCAPTCHA 是一种流行的挑战-响应系统,旨在通过提供人类易于解决但机器难以解决的难题来保护网站免受机器人和自动化滥用。无论您是处理网络抓取项目中的 reCAPTCHA 的开发人员,还是在各种网站上浏览的用户,了解如何有效地处理 reCAPTCHA 都可…

每日OJ_牛客_五子棋(判断是否有赢)

目录 牛客_五子棋(判断是否有赢) 解析代码 牛客_五子棋(判断是否有赢) 五子棋__牛客网 题目: 用例输入: .................... .................... .................... .................... ....…

基础闯关4

环境配置 我们来配置LlamaIndex实验环境,首先创建Python环境并安装必要的库: conda create -n llamaindex python3.10 conda activate llamaindex conda install pytorch2.0.1 torchvision0.15.2 torchaudio2.0.2 pytorch-cuda11.7 -c pytorch -c nvid…

VBA数据库解决方案第十四讲:如何在数据库中动态删除和建立数据表

《VBA数据库解决方案》教程(版权10090845)是我推出的第二套教程,目前已经是第二版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…

Pixelmator Pro for Mac 专业图像处理软件【媲美PS的修图软件】

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件,将其从左侧拖入右侧文件夹中,等待安装完毕2、应用程序显示软件图标,表示安装成功 三、运行测试安装完成!!! 效果 一、下载软件 下载软件…

MySQL 使用C语言链接

mysql的基础,我们之前已经学过,后面我们只关心使用 要使用C语言连接mysql,需要使用mysql官网提供的库,大家可以去官网下载 我们使用C接口库来进行连接 要正确使用,我们需要做一些准备工作: 保证mysql服务有…

python常用库学习-Matplotlib使用

文章目录 安装 Matplotlib导入库基本示例1. 绘制简单的线图2. 散点图3. 柱状图4. 直方图5. 子图 更多高级功能1. 自定义样式2. 文本和注释3. 保存图形 示例:使用 Matplotlib 绘制多个图表示例 1: 绘制多个线图示例 2: 绘制散点图和直方图 参考文献 Matplotlib 是 Py…

MySQL数据库安装(详细)—>Mariadb的安装(day21)

该网盘链接有效期为7天,有需要评论区扣我: 通过网盘分享的文件:mariadb-10.3.7-winx64.msi 链接: https://pan.baidu.com/s/1-r_w3NuP8amhIEedmTkWsQ?pwd2ua7 提取码: 2ua7 1 双击打开安装软件 本次安装的是mariaDB,双击打开mar…

移动UI:成就勋章页面该如何设计,用例子说明。

移动应用的UI成就勋章页面通常是一个展示用户在应用中取得成就和获得勋章的页面。这种页面通常用于激励用户参与应用的活动,增加用户的参与度和忠诚度。 UI设计成就勋章页面时,一般会包括以下元素和功能: 1. 勋章列表: 展示用户…

集成电路学习:什么是ARM先进精简指令集计算机

ARM:先进精简指令集计算机 ARM先进精简指令集计算机(Advanced RISC Machine,简称ARM)是一种基于精简指令集计算机(RISC)原则的计算机处理器架构,由英国的ARM公司开发。这种架构以其低功耗和高性…

git创建本地分支并track跟踪远程分支

git创建本地分支并track跟踪远程分支 查看本地分支与远程分支的映射关系: git branch -vv 查看远程都有什么分支: git branch -r 在本地自动新建一个xxx分支,且自动track跟踪远程的同名xxx分支: git checkout --track origin/xx…

《黑神话:悟空》背后的渲染技术解析

《黑神话:悟空》作为备受瞩目的国产单机游戏,承载了深厚的文化底蕴,其背后的渲染技术无疑是推动其视觉表现达到新高度的关键。这款游戏不仅融合了传统与创新的角色设计,还通过一系列前沿的图形渲染技术,为玩家带来了前…

写的一致性问题之双写模式

文章目录 1、先写mysql:mysql会回滚,而redis不会回滚2、先写redis: 1、先写mysql:mysql会回滚,而redis不会回滚 写入msql成功,写入redis也成功,但是后续事务提交失败,mysql会回滚&a…

遗传算法Github初学

遗传算法的理论是根据达尔文进化论而设计出来的算法:人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因 遗传算法(genetic algorithm——GA)是计算数学中…

记一次Linux安装Maven、Git并拉取SpringBoot代码打包

记一次Linux安装Maven、Git并拉取SpringBoot代码打包 前言一、现在我用的方案二、安装Git三、安装maven四、脚本编写五、idea中运行六、总结 前言 在Java后端开发中,我相信基本上都在用springboot开发,因为它的约定优于配置,自动配置&#x…

五,Spring Boot中的 Spring initializr 的使用

五,Spring Boot中的 Spring initializr 的使用 文章目录 五,Spring Boot中的 Spring initializr 的使用1. 方式1:IDEA创建2. 方式2:start.spring.io 创建3. 注意事项和细节4. 最后: 需要:使用 Spring initi…

html+css网页设计 合十文化2个页面

htmlcss网页设计 合十文化2个页面 ui还原度90% 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 …