CAN总线上错误帧很多怎么办,CAN总线检测到错误(收到错误帧),恢复时间要多长?

2021-01-17 08:23:32 字数 2874 阅读 1444

1楼:琼彭

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

can总线协议当中的错误(错误主动)帧和过载帧怎么区别

2楼:匿名用户

有相关详细讲解。错误主动就是自己检测到错误了,发到总线上告知总线错误,一般是总线硬件原因产生的。而过载帧一般是由于没及时的收取数据产生的,是软件问题。

can总线检测到错误(收到错误帧),恢复时间要多长?

3楼:

首先,要明确你要的应答是什么,是正确接收某个报文,还是某个节点向另一节点请求报文

一、正确接收报文:

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我

can总线500kb速率,总线上最多可以承受多少帧报文

4楼:匿名用户

4.5.5 can总线的报文结构

can总线上的报文传输由以下4 个不同的帧类型表示和控制。

1. 数据帧

数据帧携带数据从发送器至接收器。总线上传输的大多是这种帧。从标识符长度上,又可以把数据帧分为标准帧(11位标识符)和扩展帧(29位标识符)。

数据帧由7个不同的位场组成:帧起始、仲裁场、控制场、数据场、crc 场、应答场、帧结束。其中,数据场的长度为0~8个字节。

标识符位于仲裁场中,报文接收节点通过标识符进行报文滤波。帧结构如图4-20所示。

2. 远程帧

由总线上的节点发出,用于请求其他节点发送具有同一标识符的数据帧。当某个节点需要数据时,可以发送远程帧请求另一节点发送相应数据帧。与数据帧相比,远程帧没有数据场,结构如图4-21所示。

3. 错误帧

任何单元,一旦检测到总线错误就发出错误帧。错误帧由两个不同的场组成,第一个场是由不同站提供的错误标志的叠加(错误标志),第二个场是错误界定符。帧结构如图4-22所示。

4. 过载帧

过载帧用于在先行的和后续的数据帧(或远程帧)之间提供附加延时。过载帧包括两个场:过载标志和过载界定符。帧结构如图4-23所示。

usbcan卡为什么无法获取到can总线上的错误帧?

5楼:古墓天成

对于can总线上的错误帧,

是直接体现在物理信号上,已无法满足can帧的规范,所以普通的can设备(例如usbcan)是无法解析其数据的,所以肯定获取不到,必须使用专用的can总线分析仪才能获取到,然后才能做分析。我手头上有一台叫canscope的can总线分析仪可以直接获取到can总线上的错误帧数据和波形。

为什么usbcan卡无法获can总线上的错误帧?

6楼:匿名用户

感谢题主的邀请,我来回答这个问题

usbcan卡是应用在工业总线can上的一种总线分析仪设备,它的一个特别重要的功能便是通过具体设置来进行错误帧数据的过滤,错误帧既然都被过滤拦截掉了,自然就无法被收到了,如果您想受到其数据,请使用ecantools软件进行具体设置。如图:

can总线怎么实现一各节点发送多各节点接收,应答机制,向大神求解额!!!!!

7楼:匿名用户

ack slot只有一个bit,而接下去的ack delimiter始终为隐性(我们可认为是1),当数据到达ack slot的时候,所有的节点都会发送显性位(我们可以认为是0),而发送者在ack这个时间里保持隐性位(即发送者在发送的时候ack slot 为1),这时发送者会检测总线上的ack时间内的信号,如果是0,则表示正确,如果是1,表示有错误。如果当中有某一个节点在ack slot填入隐性位,则总线上同样还是显性位电平,故只要总线上有一个节点正确接收到数据,则ack slot就会被填入显性电平;那么,接收错误的节点如何来告知发送者此次发送不成功呢?这时候就要用到can的错误帧,当一个接收者收到错误的数据的时候,它立即开始发送一个错误帧,则接下去总线上的信号就是这个错误帧,其它的节点和发送者也都会收到这个错误帧,那所有的节点都知道出错了,接收者会丢掉此次消息,而发送者会试图重发此次消息。

这才是ack slot真正的含义。

8楼:胜利之

can总线发送,就是已广播的形式发出的(多节点接收)。

1、当接收器正确地接收到有效的报文,接收器就会在应答间隙(ack slot )

期间(发送ack信号)向发送器发送一“显性”的位以示应答。

2、结束

3、总线仲裁

9楼:系叡隽运乾

首先你得保证你的时序正确,其它18b20是否能可靠读写,时序没问题,检查连线,连线没问题,那就是它o了。

10楼:匿名用户

楼主解决了么?我也很困惑啊