结论:无论用的Motorola,还是Intel格式,只在单个信号跨字节时解析才有区别。

先看下Vector的CANoe中dbc编辑器是如何呈现报文的:

图1 CAN报文中byte与bit顺序

从图中可以看出,每行表示一个字节的8个位,从右到左依次是bit0, bit1...bit7. 一共有8行,从上到下依次是byte0, byte1...byte7.这也正是每帧CAN报文数据能容纳的最多数据——8个byte,共64个bit(bit位序从byte0到byte7依次递增排序)。

关于CAN报文,用的Motorola,还是Intel格式,只在单个信号跨字节时解析才有区别。

举例:

(1)配置CAN报文信号为Motorola格式

图2 Motorola格式信号
图3 Motorola格式信号排布

报文中相应信号用上述Motorola格式解析出来的结果如下:

图4 Motorola格式信号解析

(2)配置CAN报文信号为Intel格式

图5 Intel格式信号
图6 Intel格式信号排布

报文中相应信号用上述Intel格式解析出来的结果如下:

图7 Intel格式信号解析 

对比:

a)跨字节信号ins_p和Treserved:两种格式解析结果不同。按照byte0, byte1...的先后顺序,Motorola格式大字节在前,小字节在后,如ins_p解析为0x3884。而Intel格式小字节在前,大字节在后,如ins_p解析为0x438。(此处的大字节指的是高位bit所在的字节,小字节指的是低位bit所在的字节)

b)非跨字节信号VolAD:两种格式解析的结果相同,都是0xC0,也即192。

注:

a)需要明确:8个byte的顺序不变,每个byte中8个bit的顺序不变,如图1所示。

b)从图3和图6的箭头方向可以看出每个信号不同格式下bit的排布顺序。其中红色箭头指向首尾bit,白色箭头指向跨字节的衔接bit。红色箭头的首为LSB(Least Significant Bit),尾为MSB(the Most Significant Bit)。

Motorola和Intel格式报文解析的区别的更多相关文章

  1. CAN报文 Intel 格式与Motorola 格式的区别

    当一个信号的数据长度不超过 1 个字节(8 位)时,Intel 与 Motorola 两种格式的 编码结果没有什么不同,完全一样.当信号的数据长度超过 1 个字节(8 位)时,两者的编码结果出现 了明 ...

  2. Intel格式与Motorola格式的区别

      Intel低字节在前 Motorola高字节在前    在进行CAN总线通信设计或者测试过程中,经常看到CAN总线信号的编码格式有两种定义:Intel格式与Motorola格式.究竟两种编码格式有 ...

  3. xml格式报文的拼装,和解析成实体类

    我们的微信支付,使用的是第三方的支付,某银行的微信支持渠道.所有的接口请求.应答都是xml格式报文,这样就需要用到xml格式报文的拼装和解析,这儿简单讲一下. 拼接xml格式报文. 从页面表单提交和配 ...

  4. Intel格式和AT&T格式汇编区别

    一.AT&T 格式Linux 汇编语法格式 在 AT&T 汇编格式中,寄存器名要加上 '%' 作为前缀:而在 Intel 汇编格式中,寄存器名不需要加前缀.例如: AT&T 格 ...

  5. (转) at&T语法格式 与 at&T - intel格式对比

    原地址 示例: movl (%ebp), %eax, 等同于Intel格式中的 ] ,AT&T中,源操作数在左,目的操作数在右.“l”是Longword,相当于Intel格式中的dword p ...

  6. Dicom格式文件解析器[转]

    Dicom格式文件解析器   Dicom全称是医学数字图像与通讯,这里讲的暂不涉及通讯那方面的问题 只讲*.dcm 也就是diocm格式文件的读取,读取本身是没啥难度的 无非就是字节码数据流处理.只不 ...

  7. PHP serialize 和 JSON 解析与区别

    PHP serialize 和 JSON 解析与区别 对于JSON(JavaScript Object Notation)大家应该不陌生,它是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器 ...

  8. Intel HEX文件解析

    近期有一个需求就是为Arduino开发板做一个基于蓝牙的无线烧录程序.眼下的Arduino程序都是通过USB线连接到电脑的主机上,实际的传输过程是基于USB协议的,这个过程还是比較麻烦的.由于每次的编 ...

  9. C#ModBus Tcp 报文解析

    上一篇博客已经完成 C#ModBus Tcp Master的实现 本篇主要对不同的功能码所发出的报文进行解析(包括请求报文及响应报文) 读操作 功能码 0x01 读一组线圈 读取站号为1 从地址12开 ...

随机推荐

  1. C#,记录--一个方法中,完成对数据增删改操作

    实际应用中,一般不会使用delete彻底的删除数据,大多都是逻辑删除 为了不把本文写成小作文,举个小栗子吧 表 A,deletestate为置删除字段,int类型,值为0和1 表中五条数据 查询 se ...

  2. Eclipse目录实解

    从左1图中可以看到,其中的src/main/java存放java文件,src/main/resources存放项目用到的资源(js,css,图片,文件等).下面的两个文件夹是用来存放测试文件和资源的( ...

  3. 责任链模式 职责链模式 Chain of Responsibility Pattern 行为型 设计模式(十七)

    责任链模式(Chain of Responsibility Pattern) 职责链模式 意图 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系 将这些对象连接成一条链,并沿着这 ...

  4. http协议、模块、express框架以及路由器、中间件和mysql模块

    一.http协议 是浏览器和web服务器之间的通信协议 1.通用头信息 request url:请求的url,向服务器请求的数据 request method:请求的方式   get.post sta ...

  5. mysqli_fetch_array() ,mysqli_fetch_assoc()遇到的问题

    该函数每运行一次就会读取一行数据. $book1_imgnum="select * from book_img limit 12"; $book1_totalimg=mysqli_ ...

  6. Docker的使用

    Ubuntu16.04+ 在Ubuntu系统中安装较为简单,官方提供了脚本供我们进行安装. sudo apt install curl curl -fsSL get.docker.com -o get ...

  7. 报表平台对CRM系统价值几何

    CRM系统即客户关系管理系统,其利用信息科学技术实现市场营销.销售.服务等活动自动化,使企业能高效地为客户提供周到的服务,以提升客户满意度与忠诚度为目的的一种管理经营方式.而CRM报表平台作为一个枢纽 ...

  8. appium+python搭建自动化测试框架_Appium元素定位(二)

    Appium元素定位: 工具:Android\android-sdk\tools    uiautomatorviewer.bat 1. id定位: self.driver.find_element_ ...

  9. DataPipeline | 享物说产品负责人夏凯:数据驱动的用户增长实战

    夏凯 卡内基梅隆大学计算机系毕业,曾供职于Evernote数据团队和微软Bing.com搜索引擎广告部门.回国后作为早期成员加入小红书,先后从事大数据,用户增长,项目和团队管理等工作. 我最初是在美国 ...

  10. SQL SERVER 2012 AlwaysOn - 维护篇 03

    搭建 AlwaysOn 是件非常繁琐的工作,需要从两方面考虑,操作系统层面和数据库层面,AlwaysOn 非常依赖于操作系统,域控,群集,节点等概念: DBA 不但要熟悉数据库也要熟悉操作系统的一些概 ...