CAN总线出现错误帧时,为什么要区分“错误主动”节点和“错误认可”节点?有什么意思?

作者&投稿:陶张 (若有异议请与网页底部的电邮联系)
CAN总线上错误帧很多怎么办?~

  首先要定位错误帧是哪个节点产生的,看一下波形,观察是如何产生的错误帧。最好是用专门的仪器,我们用ZLG致远电子的CANScope,可以定位和观察错误帧波形,并带有一系列的测试功能来分析故障问题,排除干扰。

首先,要明确你要的应答是什么,是正确接收某个报文,还是某个节点向另一节点请求报文
一、正确接收报文:
CAN报文包含一个ID场的部分,每个报文在总线上广播,节点收到报文后比较ID,如果是该节点应该接受的报文ID,该节点则完成接受;
二、请求报文:
CAN报文内在ID场前有一个1bit长度远程帧场,0表示为普通帧,1表示为远程帧,当A节点希望B节点向它发送某个报文时,A节点向总线广播远程帧,远程帧无数据场,总线上节点同样也是比较报文的ID场,当B节点比对ID场发现该远程帧是向它请求时,B节点发送该远程帧请求的帧,A通过第一点中的方法接受收

PS:CAN总线报文的CRC校验场后面会有一个ACK应答场,发送报文的节点发出的ACK(1Bit)为“1”,正确应答的节点(报文数据校验通过正确)会将总线上的这个ACK位电平拉成“0”,表示正确应答。
若A节点广播报文后,发现该报文的ACK始终为“1”,则其收发器将从缓存中自动重发该帧,直到有节点正确接受ACK为“0”或者A节点离线

希望对你有帮助,还有不完整或不理解的可以追加提问或者M我

首先的搞清楚一个“线与”概念,也就是说如果一个设备单元向总线发出了0(即显性),则总线上的就呈现0(显性),总线是不受隐形控制的。
所以问题1错误帧出现时总线是由主动错误状态的那个设备单元控制的,其他只能监听或者处于“发送”显性状态(这个显性状态不会影响到总线)。
8位隐形位这个概念可能只对这个被动错误的这个单元设备有意义,规范上不是有这么一句话嘛,“如果与此同时另一站开始发送报文(由另一站引起),则此站就作为这个报文的接收器。”可见这8位是可被打断的。

问题2. 规范里面有这么一句话 “如果在使用位填充法进行编码的信息中,出现了第 6 个连续相同的位电平时,将检测到一个填充错误”。(如果连位填充的概念都不清楚,那我建议你先去贴吧看看)这个概念先放到这儿,待会儿会用到。
假设一个设备单元检测到了错误,并他的Error counter小于127,则他处于主动错误状态,这个时候总线由他控制,所以他会发送6个显性位,根据鉴定符的动作“错误标志传送了以后,每一站就发送“隐性”的位并一直监视总线直到检测出一个“隐性”的位为止。然后就开始发送其余7 个“隐性”位。”,这个时候总线就不由该主动错误设备控制了。但是6个“显性”位本身就构成了一个填充错误,所以这个时候还会触发其他设备的主动错误,其他主动错误的设备也会发送6个显性位,所以显性位序列最大就是12位了,由于前面数据位传输位就有可能是“显性”,这个数字也可以是比12小比6大的任何数字。

问题3. 根据错误检测定义,有5种错误类型,具体参见协议。所以错误检测本身就是某个设备的主动操作,只要满足错误出现的条件,就会被检测到。

这些东西都在规范里面有说,细细体会都能迎刃而解。有问题可以加我QQ 568727801

这个问题原本可以回答你的,可惜前不久看的。忘得差不多了。
1对于错误认可和错误主动这两个家伙,你最好看看英文是怎么写的。这样有利于你理解。
2从你问的问题,可以看出你是个搞学问的人,认真啊。其实老大,你问的这些个问题只有设计can芯片的人才需要深刻理解。如果你是搞应用的,大可不必追的太认真。
3这个按我的理解是不知道的。应该是这个节点自己知道,然后把自己关闭了。以免影响其他的节点。因为can的节点都是平等,发出信息采用广播的方式。也就是一广播大家都知道了,大家根据收到的信息作出反应(这个节点的程序里可以操作)。发送的信息根据优先级,由总线进行仲裁不至于大家冲突。

问题2:一个检测到出错状态的“错误激活”节点通过发出一个活动错误标志来对出错结果进行通报。这种出错标志的形式违反了位填充规则,也破坏了固定的位场形式。结果,所有其他节点也检测到一个出错状态,都各自送出一个人出错标志,所以在总线上实际检测到的显性位序列是由多个节点各自发出的不同出错标志叠加而成的。该序列的总长度最少为六位,最多为12位。

1.等待下一次总线空闲
2.因为每个节点都要发,可能有一定延迟
3.每个节点都会检测到,并且跟着发送错误标志




错误帧软件问题
您是想问错误帧是软件问题引起的吗?这些错误软件问题是引起原因之一,其他原因如下:1、总线上出现了错误的信息帧,导致其他节点无法解析数据。2、由于总线抗干扰能力较差,当总线上受到干扰时,可能会产生一些错误的数据帧。3、节点之间通讯时,由于信号传输延迟或其他原因,可能会产生误码,导致数据传输...

CAN总线出现错误帧时,为什么要区分“错误主动”节点和“错误认可”节点...
1、主动错误状态——(通常说的正常状态也应该包含在内)处于该状态的节点可以不受任何限制地发送报文和主动错误帧(由显性位构成)。2、被动错误状态——处于被动错误状态的节点可以发送报文和被动错误帧(由隐性位构成)。3、总线关闭状态——处于总线关闭状态的节点暂时不能参与总线通讯。4、这一状态下...

CAN总线出现错误帧时,为什么要区分“错误主动”节点和“错误认可”节点...
所以问题1错误帧出现时总线是由主动错误状态的那个设备单元控制的,其他只能监听或者处于“发送”显性状态(这个显性状态不会影响到总线)。8位隐形位这个概念可能只对这个被动错误的这个单元设备有意义,规范上不是有这么一句话嘛,“如果与此同时另一站开始发送报文(由另一站引起),则此站就作为这个报...

华大芯片can错误帧
总线上的节点出了错误。总线上的节点如果检测出了错误,那么该节点就会发送错误帧,通知总线上的节点,自己出错了。错误帧由错误标志和错误界定符两个部分组成。

can总线协议当中的错误(错误主动)帧和过载帧怎么区别
有相关详细讲解。错误主动就是自己检测到错误了,发到总线上告知总线错误,一般是总线硬件原因产生的。而过载帧一般是由于没及时的收取数据产生的,是软件问题。参考资料:来源于pfautocan.com

can总线所传输的数据类型有哪些?
例如,在汽车中,发动机控制单元可以通过CAN总线发送数据帧,将发动机转速和温度等信息传输到仪表盘控制单元,后者再将这些信息显示在仪表盘上。如果仪表盘控制单元需要请求更多的数据,它可以发送一个远程帧到发动机控制单元。如果在通信过程中发生了错误,任何检测到错误的节点都会发送一个错误帧来通知其他节...

stm32单片机的CAN总线发送和接收错误怎么清零啊?
在STM32单片机的CAN总线出现发送和接收错误帧时,可以通过软件清除CAN控制器中的REC\/TEC寄存器值,而无需重启整个芯片。以下是一些可能会导致你的方法无法成功的原因以及可以尝试的其他方法:初始化模式:在初始化模式下,CAN控制器的所有寄存器都将被清零,并且需要重新配置。这意味着,当你进入初始化模式...

can整车上总线错误帧产生原因有哪些
错误帧产生的原因可能有:外界干扰信号,内部干扰信号,处理器硬件错误,处理器软件错误!如果你认为这个回答对你有一点儿儿启发, 请点击回答内容右下方的“…”,再点击“采纳”。

can总线的数据结构分那几部分各部分名称是什么各含几位
3. 错误帧:当出现错误时,节点会发送错误帧,通常包括错误代码和原因等。4. 确认帧:用于响应其他节点的请求,确认已收到数据。长度为零。5. 填充帧:用于满足协议规定的最小帧长度,通常为零。每个部分的具体名称和位数可能会因CAN总线标准的不同而有所变化,但上述内容是一般情况下的常见结构。

流控制帧有错误帧
3.错误帧:任何单元检测到一总线错误时就发送错误帧。4.超载帧:用来在先行的和后续的数据帧(或远程帧)之间提供附加的延时。流控帧是以太网控制帧的一种,在流控帧中携带了时间参数,收到流控帧的设备通过简单的解析,就可以确定停止发送的时长。当对端设备出现拥塞的情况下,本端端口通常会连续收到...

镇海区18762486229: CAN总线上错误帧很多怎么办? -
谏婷锋达: 首先要定位错误帧是哪个节点产生的,看一下波形,观察是如何产生的错误帧.最好是用专门的仪器,我们用ZLG致远电子的CANScope,可以定位和观察错误帧波形,并带有一系列的测试功能来分析故障问题,排除干扰.

镇海区18762486229: USBCAN卡为什么无法获取到CAN总线上的错误帧? -
谏婷锋达: 对于CAN总线上的错误帧,是直接体现在物理信号上,已无法满足CAN帧的规范,所以普通的CAN设备(例如USBCAN)是无法解析其数据的,所以肯定获取不到,必须使用专用的CAN总线分析仪才能获取到,然后才能做分析.我手头上有一台叫CANScope的CAN总线分析仪可以直接获取到CAN总线上的错误帧数据和波形.

镇海区18762486229: 动力can数据总线can - l断路,系统怎么处理 -
谏婷锋达: 其实你这个问题比较笼统,CAN总线错误帧多可能由很多问题引起,比如位定时不准确,总线负载过重,干扰较大导致异常等都有可能.建议您从物理层开始逐步排查.若是总线受干扰厉害导致的错误帧增多问题,需给CAN节点做信号和电源供电的全隔离措施,可用分立方案自己搭,或用类似于ZLG的CTM1051KT这样的隔离模块实现,把共模干扰、短时瞬态干扰隔离掉.不过要适合你才行呢!

镇海区18762486229: can通讯总线故障,接受错误 -
谏婷锋达: 你好,一般出现can通讯总线的故障出现这种的话,首先我们主要检查的是can总线是否有出现短路和断路的情况可以通过测量电阻进行来判断.然后就是通讯通过我们的接口比如说网关,对他有一个检查,希望对你有什么帮助.

镇海区18762486229: Can总线 格式错误与位错误的区别 -
谏婷锋达: 在CAN总线中存在5种错误类型,它们互相并不排斥,下面简单介绍一下它们的区别、产生的原因及处理方法.位错误:向总线送出一位的某个节点同时也在监视总线,当监视到总线位的电平和送出的电平不同时,则在该位时刻检测到一个位错...

镇海区18762486229: can总线问题 -
谏婷锋达: 1.标准格式数据帧包括:1位帧起始位,11位ID位+1IRQ位,8个控制位,8字节的数据位,2字节的CRC校验位,7个终止位(记得不一定全面) 同时有码流控制功能,即位填充功能.当出现4个相同电平的位时,会在中间插入1个不同的位.码流...

镇海区18762486229: 引起can总线故障的原因有哪些 -
谏婷锋达: 用一个标准一些的PC-CAN接口卡测试一下总线的数据,如PFautoCAN之类的CAN总线开发工具,对比PC-CAN接收到的和你现在节点接收的.估计是硬件可能不可靠,认为发送不成功导致重复发送,看发送速度和距离,先加终端电阻试试看.

镇海区18762486229: CAN总线上的错误帧可以获取到吗? -
谏婷锋达: 误帧可以获

镇海区18762486229: can总线发了几帧就停了 -
谏婷锋达: CAN总线发多帧数据?是说不间断的发送多帧数据吗?这个不科学,给你举个例子.A的缓冲三帧连续发的CAN数据,ID是0x000005,在A发送第一帧的同时,B准备发送CAN数据,B的数据帧ID是0x000001,等A发完第一帧后,A的第二帧肯定是和B的数据一起仲裁,结果是A仲裁失利,等B发完才能继续发送.你要发多帧数据,可以看看ISO15765-2,里边就有CAN数据传输协议.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网