`

CAN协议(二)

 
阅读更多
10111011101100011110111001111101011111001111101001111100111101111011011101
根据标准can2.0b协议可以讲该字符串解析出来,标准的扩展协议如图2所示
        
                                                            图2 can扩展消息格式
然后将数据根据格式划分成各个有意义的字段,如图3所示,这里我自己将高电平编码为1,低电平编码为0。但是在can协议中,他将高电平定义为显性位,逻辑上定义为0,将低电平定义为隐形位,逻辑上定义为1,我们前面先不管这个。
             
                                                          图3  数据分割
在can的协议中当连续出现5个高电平时就需要插入一个低电平,所以在解析的过程中需要将这些插入的数据删除,就是图3中用红线删除的那些数据。
在删除这些数据之后根据图2的格式可以将各个字段分割出来
解析信息:
29位ID:0 1110 1110 1101 1110 1110 0111 1110,从右到左每4位一个字段,这里需要将其在转换回can协议定义的逻辑电平的形式---即将0变为1,将1变为0,这样便符合我们日常的编码习惯。解析出来的ID=0x11121181,与我们发送的数据是相符合的。
DLC:1101  转换成十进制为2 表示这一帧中有两个数据,接下来的16个字节便表示2个数据
D1:11111001  = 0x06
D2:11110111 = 0x08
这样便解析出了我们需要的数据,这是和我发送的数据一致的。

这里需要注意的有两点:
1、在can的协议中当连续出现5个高电平时就需要插入一个低电平;
2、在can协议中将CAN_H和CAN_L的差值为高电平时定义为显性,逻辑上表示为0,为低电平时定义为隐形,逻辑上表示为1。这在解码的过程中需要注意。
分享到:
评论

相关推荐

    CAN协议全文英文版,主要为博世发布的标准版,想深耕可以下载

    1991 年,博世公司发布了 CAN 协议的第二个版本,即我们今天所看到的 CAN Specification Version 2.0。 CAN 协议的基本概念 CAN 协议是一种串行通信协议,使用差分信号传输数据。CAN 协议的基本概念包括: * 消息...

    can入门教程 can协议

    CAN协议使用非屏蔽二进制反码(MSB-first)方式进行仲裁,ID数值越小,优先级越高。在总线空闲时,任何节点都可以开始发送,若发生冲突,优先级低的节点会立即停止,避免了总线竞争。 6. 错误处理: CAN协议有...

    CAN协议完全讲解_CAN 入门书

    ### CAN协议完全讲解知识点 #### 一、CAN总线概览 - **定义与起源**: - CAN(Controller Area Network)是一种国际标准化的串行通信协议,最初由德国博世公司在1986年为汽车工业开发。其设计目的是为了满足汽车...

    MCGS与CAN协议

    #### 二、CAN协议简介 CAN(Controller Area Network)是一种用于实时应用的串行通信协议,最初由德国Bosch公司为汽车工业设计。随着技术的发展,CAN已经成为一个国际标准(ISO 11898),并被广泛应用于工业自动化、...

    CAN总线协议配置示例代码

    一、CAN协议概述 CAN总线协议最初由Bosch公司开发,主要设计目标是提高汽车电子系统的可靠性。CAN协议分为物理层、数据链路层和应用层。其中,物理层定义了信号传输介质和电气特性;数据链路层则包括帧结构、错误...

    CAN-FD相关协议介绍.pdf

    二、什么是 CAN-FD? CAN-FD 是基于 CAN 2.0 的改进型协议,主要特点是在 CAN 控制器硬件中添加了两个特性:支持双倍比特率和可变的数据速率。这种改进使得 CAN-FD 能够满足汽车工业和其他领域对高速数据传输的需求...

    CAN总线协议中文版_CAN总线解析_can解析_can协议_

    1. **通信模型**:CAN协议采用多主站的通信模型,每个节点都可以主动发送数据,无需中心控制器。数据通过总线以报文的形式传输,报文包含一个标识符(ID),用于区分不同优先级的消息。 2. **仲裁机制**:CAN总线...

    CAN bootloader升级协议代码

    CAN(Controller Area Network)是一种广泛应用于汽车电子、工业自动化、航空航天等领域的现场总线协议,以其高可靠性、实时性及抗干扰能力而著名。在本主题中,"CAN bootloader升级协议代码"指的是利用CAN通信协议...

    can总线协议讲解

    - **协议框架**: CAN协议定义了一系列规则来确保数据能够正确无误地在节点间传输。 - **帧结构**: CAN帧由多个部分组成,包括起始分界符、仲裁场、控制场、数据场、CRC场、应答场和结束分界符等。 - **错误处理**: ...

    CAN通信协议V2.0中文版

    ### CAN通信协议V2.0中文版核心知识点详解 #### 一、CAN总线协议概述 **CAN(Controller Area Network)总线**是一种用于实时应用的串行通信协议,最初由德国Bosch公司开发,旨在满足现代汽车工业中对高性能、高...

    CAN总线协议入门 PDF格式

    #### 二、CAN总线拓扑结构 - **拓扑示例**:在汽车行业中,CAN总线通常用于连接发动机、网关、动力总成、灯光、车窗及门锁、仪表板、空调和刹车系统等关键部件,形成了复杂的网络结构。 - **节点模型**:每个节点都...

    CAN2.0 AB协议 中文

    #### 二、CAN2.0 AB协议概述 **CAN2.0 AB协议**主要包括两个部分: 1. **A部分**:主要介绍了CAN的基本报文格式,与之前的CAN1.2规范相兼容。 2. **B部分**:在此基础上增加了扩展格式的报文,定义了更宽的地址...

    二次开发示例源代码.rar_CAN盒二次开发_USBCAN例子程序_usb can tool_usbcan二次开发_vci-op

    包含的库文件和示例代码将帮助他们理解CAN通信协议,掌握USB CAN工具的使用,并进行相应的二次开发,以满足特定的项目需求。通过深入研究这些内容,开发者可以提升其在CAN通信领域的专业技能,并能够创建更高效、更...

    简单的Python示例,使用python-can库实现CAN协议的基本功能

    can协议

    周立功-CANopen协议_can协议_canopen_canopen周_canopen协议_周立功canopen_

    CAN协议是底层的二层通信协议,它定义了物理层和数据链路层,着重于如何在一根总线上高效地传输数据,具有错误检测和恢复机制。CAN协议的帧结构包括仲裁、控制、数据和CRC等字段,支持多种优先级和实时性要求。 ...

    CAN协议中的PGN和ID的关系

    ### CAN协议中的PGN和ID的关系 #### 概述 控制器局域网络(Controller Area Network,简称CAN)是一种用于实时应用的串行通讯协议标准,最早由德国Bosch公司提出,现已被广泛应用于汽车、工业自动化等领域。随着...

    OBDII ISO 15765-4 CAN协议解析并输出

    **OBDII ISO 15765-4 CAN协议解析与输出** OBD(On-Board Diagnostics)是汽车自诊断系统,用于检测车辆的排放控制和发动机性能。OBDII是其第二代,提供了统一的数据接口和通信协议,方便第三方设备进行车辆状态...

    CAN总线与CANopen协议.pdf

    ISO/OSI 模型中的第一层(物理层)和第二层(数据链路层),通常情况下 CAN 总线网络都是独立的网络,所以没有网络层。在实际使用中,用户还需要自己定 义应用层的协议,因此在 CAN 总线的发展过程中出现了各种...

Global site tag (gtag.js) - Google Analytics