您好、欢迎来到现金彩票网!
当前位置:2019欢乐棋牌 > 总线仲裁 >

CAN总线之通俗易懂----报文3

发布时间:2019-07-13 22:47 来源:未知 编辑:admin

  术语“基本CAN”和“完整CAN”源自CAN的初创年代。历史上曾经有Intel 82526 CAN控制器,它为程序员提供DPRAM型接口。然后出现了Philips 82C200 CAN控制器,它使用面向FIFO(队列)的编程模型和有限制的过滤功能。为了区分这两种编程模型,人们出于某些原因把Intel的模型称为“完整CAN”,把Philips的模型称为“基本CAN”。如今,大多数CAN控制器同时支持这两种编程模型,所以没有理由继续使用术语“基本CAN”和“完整CAN”。事实上,这些术语可能会令人迷惑,应当尽量避免。

  当然,“完整CAN”控制器可以和“基本CAN”进行通信,反之也可。不存在任何兼容性问题。

  报文仲裁(两个或多个CAN控制器协商确定谁使用总线的过程)对于数据传送中真正可用的带宽非常重要。

  任何CAN控制器都可能在检测到空闲总线时开始传送数据。这可能会导致两个或多个控制器(几乎)同时开始传送报文。通过下述方法解决这种冲突。传送节点在发送报文时监视总线。如果节点在自身发送隐性位时检测到显性位,它将立即退出仲裁过程并转变成接收方。仲裁针对整个仲裁字段进行,当该字段已经被发送时,总线上恰好只剩一个传送节点。这个节点就像什么都没发生那样继续传送。其它潜在的传送节点将在总线下次空闲时尝试重传它们的报文。仲裁过程不会消耗时间。

  这种逐位仲裁成功的重要条件是两个节点不会传送相同的仲裁字段。这个规则有一个例外:如果报文不包含任何数据,那么任何节点都可传送该报文。

  因为总线采用线与逻辑,并且显性位是逻辑0,所以包含数值最低仲裁字段的报文将赢得仲裁。

  答:当然,节点将赢得仲裁并顺利地进行报文传送。但是,当进行应答的时候,没有任何节点将在应答时隙(ACK时隙)发送显性位,所以传送节点将检测到ACK错误,发送错误标志,将传送错误计数器加8并开始重传。这将发生16次。然后传送节点将进入错误被动状态。通过错误限制算法的特殊规则,如果节点为被动错误并且错误是ACK错误,则传送错误计数器不再增加。所以节点将一直继续传送,至少要到有人应答报文。

  再次提醒,CAN报文中无显式地址。每个CAN控制器都会检查总线上的所有通信,并使用硬件过滤器和软件的组合来确定是否对该报文“感兴趣”。

  事实上,CAN中没有报文地址的概念。报文的内容由存在于报文中某处的标识符进行标识。CAN报文被称为“内容寻址”的报文。

  常规的报文地址类似于“这是发给节点X的报文”。而内容寻址的报文类似于“这是包含标签为X的数据的报文”。这两个概念之间的区别很小但是非常重要。

  根据标准,仲裁字段的内容用来确定总线上报文的优先级。所有CAN控制器还将在硬件过滤过程中使用整个(一些控制器将只使用一部分)仲裁字段作为主键。

  标准没有规定仲裁字段必须用作报文标识符。但是不管怎样,这是一种常见情况。

  我们说过,标识符可以是11位(CAN 2.0A)或29位(CAN 2.0B)。这不完全正确。出于与某种老式CAN控制器(猜猜是哪种)兼容的原因,标识符不得把7个最高有效位都设置为1。所以,对于11位标识符,只剩下0到2031,29位标识符可以使用532676608个不同的值。

  注意,所有其它CAN控制器都接受“非法”标识符,所以现代CAN系统标识符2032到2047可以自由使用。

  高层协议 CAN标准定义的是硬件(物理层–有几种)和通信的基本层面(数据链路层)。CAN协议本身仅规定如何通过共享通信介质把小数据包从A点传送到B点。它不包含例如流量控制、数据传送大于可容纳...博文来自:貝農

  上一节中初步接触CAN总线,梳理了一些关于CAN总线的基础内容。本节将深入了解CAN总线的结构,包括报文的组成,内容和处理形式。看到一个关于CAN总线工作原理非常形象的一个比喻:和其他总线一样,CAN...博文来自:anew_moon的博客

  CAN报文CAN总线是广播类型的总线。这意味着所有节点都可以侦听到所有传输的报文。无法将报文单独发送给指定节点;所有节点都将始终捕获所有报文。但是CAN硬件能够提供本地过滤功能,让每个节点对报文有选择...博文来自:貝農

  CAN的报文格式在总线部分组成。CAN协议支持两种报文格式,其唯一的不同是标识符(ID)长度不同,标准格式为11位,扩展格式为29位。在标准格式中,报文的起始位称为帧起始(SOF...博文来自:Suger Mike的博客

  现在CAN总线越来越普及了,在实际的工作中CAN总线比起其他的总线形式有很多的优点。但CAN的数据毕竟和RS232等串行数据不同,主要是由帧信息、帧ID、帧数据等几部分构成。下面我来给大家介绍一下如何...博文

  CAN物理层CAN总线CAN总线使用不归零(NRZ)的位填充。有两种不同的信令状态:显性(逻辑0)和隐性(逻辑1)。这些信令状态对应于所在物理层(存在几种不同的物理层)的某种电平。模块以线与逻辑连接到...博文

  (来自博客:)一、帧CAN协议的报文传输主要由下面的4种帧来实现:数据帧:从发送端携带数...博文

  由于CAN总线采用广播的传输方式,对于标示不同的报文,总线上所有的节点都能接收,如此以来各节点会接收并处理相当数量无用的报文;本文介绍如何用CAN控制器对无用报文的验收滤波功能

  根据CAN控制网络数据流的方向可以看出,CAN网络的报文信息延时由以下三部份组成。        1、帧延时Tdf:由信息串行化导致的延时;帧延时即报文信息的传输延时,由帧长度和总线的传输速率决定。 ...

  由于现代化汽车内部的控制器、传感器和执行器的数量不断增加,导致了车内线束增多;并且车内各控制器之间组成的网络需要相互通信,使得CAN控制器局网应用而生。控制器局域网CAN(ControllerArea...

  以下是使用vectorautosar协议栈分析:  对于周期性报文发送原理:比如周期为20ms,协议栈有个调度函数Com_MainFunctionTx,每隔10ms(可配置修改)调用一次,没调用一次会...

  12-16阅读数 1439基于STM32的多路CAN总线通信软件程序和硬件设计   STM32F407自带两路CAN,按照客户要求,需要定制一款5路CAN的电路板,选择三片MCP2515另外扩展出三路CAN通信电路,实测五路C...

  CAN总线:应答场定义应答场长度为2个位,包含应答间隙(ACKSLOT)和应答界定符(ACKDELIMITER)。在应答场里,发送站发送两个“隐性”位。当接收器正确地接收到有效的...

  生命信号:汽车上比较重要的CAN节点,需要加生命信号;一般为从0开始每次加1,0、1、2…FF,然后循环。作用是表征CAN节点VCU没有出现故障等,使其他节点清楚的知道接收到的CAN消息是可靠的。如果...

  本程序可以实现Python 调用Kavaser,实现CAN的数据收发功能测试,如果有任何问题,可以联系我。下载

  网络管理主要功能:是用来管理ECU是否在网络里面,不在的话请求加入,也就是ALIVE报文, 要判断是否掉线,以及睡眠状态的转换机制,以及跛行状态判,也即是RING报文。主要的实现逻辑流程:从rtos队...

  02-121.解析*.dbc文件格式文件 2.解析由CANTest保存的CAN数据(txt文件),翻译成可以直接看懂的数据 3..显示某个帧ID的帧内容的实时曲线.接收实时CAN数据翻译后保存为txt文件 5.可以收发调试CAN数据下载

  阅读数 2791本文介绍CANopen中心跳信号的原理,以及在开源CANopen协议栈CanFestival中的实现过程。一、心跳的作用CANopen网络中,当一个节点需要知道另一个节点的状态时,除了发送远程帧查询节...博文

  阅读数 2327LX-CAN通讯帧传输协议LX_CAN 通讯帧传输协议定义了 LX_CAN 协议规范中的通讯模式,以及LX_CAN 网络中各个节点按照数据传输协议实现相互之间的数据交换。通过 LX_CAN 通讯帧传输...博文

  主要进行了硬件程序的编写 局域网控制总线的报文传输协议的相关代码 希望对于arm学习的人有用下载

  帐号相关流程注册范围n企业n政府n媒体n其他组织换句话讲就是不让个人开发者注册。 :)填写企业信息不能使用和之前的公众号账户相同的邮箱,也就是说小程序是和微信公众号一个层级的。填写公司机构信息,对公账...

  阅读数 2万+MATLAB编程题rn题目描述:从一个NxM的矩阵C中找出与1xM的矩阵P欧氏距离最小的某一行row,要求不能用循环!!!rn输入:矩阵C(NxM)、矩阵P(1xM)rn输出:rowrnrnrn解题思...博文

  编写C语言版本的卷积神经网络CNN之一:前言与Minst数据集06-29阅读数 4万+

http://codebiosis.com/zongxianzhongcai/110.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有