CAN总线仲裁,CAN总线仲裁 5

2020-11-29 11:54:54 字数 2990 阅读 3278

1楼:匿名用户

首先,你要明确

一个概念,can总线上的节点都是自顾自的发送报文,抢夺总线资源的;

然后,一个can节点在发送报文的同时也在接收总线上的信息,每个报文都是从id先开始发送,并且通过id判断优先级(显性覆盖隐性),当它发现接收到的数据(id)与它发送的不一致时就退出发送,等待一会;

再然后,为什么数据(id)不一致就退出呢,因为只有优先级比它高的报文才能覆盖它的id场,既然

最后,回答你第一个问题,几个报文在抢,优先级最高的就抢到了总线,其实它并不知道有人跟它抢(因为它优先级高),她认为总线对它来说是空闲的。

我觉得我解释得很通俗易懂!

2楼:匿名用户

而can总线是使用的无损仲裁方式(即你所指的非破坏性仲裁):就是当两个或者以上的不同id节点“同时”向总线发送数据时候,优先级最高的就能直接发送,

can总线的仲裁方式具体是什么?

3楼:云纹抹额小忘机

总线的仲裁方式:抢夺,高级的比低级优先接受。

首先,你要明确一个概念,can总线上的节点都是自顾自的发送报文,抢夺总线资源的。

一个can节点在发送报文的同时也在接收总线上的信息,每个报文都是从id先开始发送,并且通过id判断优先级,当它发现接收到的数据与它发送的不一致时就退出发送,等待一会。

再然后,数据不一致就退出呢,因为只有优先级比它高的报文才能覆盖它的id场,最后,几个报文在抢,优先级最高的就抢到了总线,其实它并不知道有人跟它抢,认为总线是空闲的。

4楼:_____良人未归

can总线是使用的无损仲裁方式。

在总线空闲态,最先开始发送消息的单元获得发送权。多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送。

即逐位地对比各个结点发出的报文id。由于线与的关系,显示位“0”可以覆盖隐性位“1”,因此id最小的节点赢得仲裁,总线上表现为该结点的报文,其他结点失去仲裁,退出发送,转为接收状态。

标准格式id与具有相同id的远程帧或者扩展格式的数据帧在总线上竞争时,标准格式的rtr位为显性位的具有优先权,可继续发送。

而can总线是使用的无损仲裁方式(即你所指的非破坏性仲裁):就是当两个或者以上的不同id节点“同时”向总线发送数据时候,优先级最高的就能直接发送。

5楼:匿名用户

can本身通过标识符来确定每个can节点,总线上标识符不能有相同的。

can是多主机的方式,所有节点都可以发送数据,发送时,标识符是本机的标识符,发送数据为**方式,广播方式,具体数据,所有can节点都可以同时得到,但可以每个can节点可以设置can标识符滤波,可设置只接收需要的节点的数据,设置后由硬件完成筛选,这样优于485单主机的主从传输总线传输方式,物理上采用差分信号传输。

如果项目不是像你说的优先级高占用带宽那么严重,就采用(非实时信息空闲时候)轮询+(实时信息)主动发送的方式管理网络。

初学can总线关于仲裁不是很理解

6楼:匿名用户

仲裁是在各个节点的can控制器的位流处理器中进行的.位流控制器根据报文缓存中的报文对象,由位流处理器产生通过can总线的数据帧和远程帧。该的控制器控制crc产生器,且给新的远程帧和数据帧加上校验和信息。

在加入‘帧起始位’和‘帧结束域’之后,位流处理器开始can总线仲裁过程,且当发现总线空闲时连续进行帧发送。(具体的仲裁电路不清楚,所以没法详细解释)。

ps(can是差分传输的,canhigh和canlow即为can传输数据流的两条信号线,传1时,high和low都在2.5v附近,传0时,high被上拉至3.5v,low被下拉至1.5v。

有关can总线仲裁

7楼:胜利之

1、如果这个节点发得足够快,就是一帧和一帧之间几乎不留空隙那么有可能。不过能否完全达到效果不好说。

2、通过应用层的管理来实现,用定时的办法发送之类的。硬件层基本无法去完全的做到,即使有优先级的区分。

3、如果总线数据负载不是很大的情况,可以不考虑被第二个节点岔开的影响,因为两个点的id毕竟不同,所以接收节点的软件自然能够以此为依据分开两个节点的数据。广州研煌——can系统

怎样理解can总线的非破坏性总线仲裁技术

8楼:24我可以

c**a/cd是带有冲突检测的c**a,其基本思想是:当一个节点要发送数据时,首先监听信道;如果信道空闲就发送数据,并继续监听;如果在数据发送过程中监听到了冲突,则立刻停止数据发送,等待一段随机的时间后,重新开始尝试发送数据。

各位大神,关于can总线优先级和仲裁权的问题。

9楼:匿名用户

1、如果这个节点发得足够快,就是一帧和一帧之间几乎不留空隙那么有可能。不过能否完全达到效果不好说。

2、通过应用层的管理来实现,用定时的办法发送之类的。硬件层基本无法去完全的做到,即使有优先级的区分。

3、如果总线数据负载不是很大的情况,可以不考虑被第二个节点岔开的影响,因为两个点的id毕竟不同,所以接收节点的软件自然能够以此为依据分开两个节点的数据。广州研煌——can系统

can总线仲裁时的电压变化 30

10楼:匿名用户

1、如果这个节点发得足够快,就是一帧和一帧之间几乎不留空隙那么有可能。不过能否完全达到效果不好说。

2、通过应用层的管理来实现,用定时的办法发送之类的。硬件层基本无法去完全的做到,即使有优先级的区分。

3、如果总线数据负载不是很大的情况,可以不考虑被第二个节点岔开的影响,因为两个点的id毕竟不同,所以接收节点的软件自然能够以此为依据分开两个节点的数据。广州研煌——can系统

can总线仲裁中,仲裁失败的对象的数据会不会被丢失

11楼:宏一点

同时发送报文优先级高的先发出来,通常报文id小的先发出来。