can总线如何发送多帧数据?按顺序连接即可

将CAN收发器按照CAN_H和CAN_L挂接到CANBUS上,CAN控制器控制数据的收发即可。can总线如何发送多帧数据.CAN总线发多帧数据?CAN设备连接在不同的硬件接口时,意味着CAN设备被挂载在Linux中不同的总线上,如USB总线、PCIE总线(直接通过PCIE与linux通讯),因此Linux采用不同的通讯协议与CAN设备进行通讯。

1、can通讯,两个ecu同一时间发两个报文,谁先发?

我们一下图为例,假设有A,D四个器件在总线上,A,C三个器件发送的信号起始位都是显性,但是D发送的是隐性,所以总线应该为显性,也就是说D直接退出竞争,处于监听状态,CAN总线会对A,C做进一步裁决,当数据发送到第5位时,A,C表现为显性,但是B表现为隐性,所以B会进入监听状态,退出竞争,A,C在做进一步比较,当到第2位时,A表现为隐性,而C表现为显性,所以C获得最终的优先发送权,所以最红的发送顺序为,C,

2、can总线是全双工还是半双工?CAN设备能不能同时收发数据?

CAN是半双工的。收发数据要分时进行。不管CAN网络上挂多少设备,在同一时刻只能有1个发送数据。如果有多个需要同时发送则只有优先级别高的先发送,其它等待。can总线半双工,能同时收数据,但是不能同时发数据。CAN采用的是非破坏性总线仲裁技术,按优先级发送,可以大大节省总线冲突仲裁时间,在重负荷下表现出良好的性能。所以不同同时发,有优先级。

共享传输介质的总线基本上没法实现全双工,因为都存在两个节点同时发送的冲突问题。CAN可以用光纤来做媒介,但CAN设计的本意不是用来传送大量的数据的,而是控制命令类的,用来实现语音并个好,都用上光纤了,完全可以用别的总线,最好实现ETH,为扩展做好基础。CAN协议也遵循ISO/OSI模型,采用了其中的物理层、数据链路层与应用层。

3、单片机Can通讯怎么用,

首先,CAN通信需要有接口的,在有接收的基础上,再加一片CAN总线驱动芯片PCA82C250才行。这是要看你是什么单片机了,有的单片机带有CAN接口的,就像带有串口UART一样。带有CAN接口的单片机,有专用的通信用寄存器来实现通信,与串口无关。没有CAN接口的单片机,如51系列的,就需要加一片CAN扩展接收芯片,如SJA1000,通信时,是按外部扩展接口来实现的,当然了,用SJA1000也同样需要PCA82C250芯片的。

4、ROS基于SocketCAN的通信方式

CAN1.0定义的CAN具有11位消息标识,提供可能的2048个消息标识符。2.0版允许有效的29位消息ID。为了使新的CAN设备与旧的实现兼容,CAN2.0规范分为两部分,2.0A和2.0B。在CAN2.0A中,消息格式与仅使用11位消息ID的旧版本CAN一致。CAN2.0B中,允允许有效的29位消息ID,然后可以在被动或主动模式下实现CAN2.0B。

CAN2.0B被称为“扩展CAN”,因为它使用扩展的29位消息ID可以通过串口、USB、网口、PCIE等接口与CAN设备间接进行通信。CAN设备连接在不同的硬件接口时,意味着CAN设备被挂载在Linux中不同的总线上,如USB总线、PCIE总线(直接通过PCIE与linux通讯),因此Linux采用不同的通讯协议与CAN设备进行通讯。

5、...发送数据,那么我这个设备怎样使用CAN总线实现接收数据?

将CAN收发器按照CAN_H和CAN_L挂接到CANBUS上,CAN控制器控制数据的收发即可。你现在连Can的基本原理都不知道呢。加油看看书吧。硬件方面,如果有两个节点:那么电源正极接在一起,电源负极接在一起,CANH接在一起,CANL接在一起。两个节点的话还要在CANH和CANL之间接个终端电阻。

6、谁能介绍下CAN通讯常见的几种机制

1.总线关闭,这个是一个CAN通讯的保护机制,一般出现在发送设备上,正常CAN发送数据,是发送方发送一条数据到总线,然后总线上的接收设备做一个应答,但是如果没有应答或者总线上出现错误,会导致,发送设备判断发送失败,增长总线的错误计数,造成主动错误,当错误过多时会进入总线关闭,这种状态下无法进行CAN通讯,CANH和CANL的电压值为0,必须重启,(202有自动复位功能其他没有)一般一个自动发送数据的设备如果没有设备接收(即线接错或者波特率设置错误,都有可能进入这个状态,所以建议用户先配置好我们的设备,在接线然后再启动待测设备)2.自动回发当CAN总线数据发送出现错误的时候,发送设备会自动重发,直到收到接收反馈为止(此时总线错误计数依然会增长,有可能进入总线错误的状态,这也就是CAN如果短路或者如波特率错误,线路不通的情况下回迅速进入总线关闭状态的原因,如果只是线路上有干扰,他只是错误计数增长。

7、CAN总线上多主机通信的实现方法

CAN本身就是不分主从的,任何节点想发就能发,如果碰撞就根据ID来仲裁优先级。但这样,如果发快了,或者节点很多,会导致拥堵。所以比较实用的是分时间片通讯的方式,具体CANOPEN协议中有很多叙述,就是由某个节点发出周期性同步报文,所有节点接收到了以后,按ID进行不同的延时,顺序开始发送数据。这样可以有序的进行通信。

8、请问can总线适配卡是如何让不同通讯速率的CAN线进行数据收发的呢?

感谢题主的邀请,我来说下我的看法:您所说的CAN线适配卡指的应该是能够实现不同波特率CAN总线相互沟通的CAN中继器。当然,这种设备有现成的,也有用USBCAN设备充当的。但无论是以上哪一种情况,我们都需要在设备使用之前给其配置相应的中继功能,输入两条CAN总线各自的通讯速率参数,剩下的工作就由设备自己完成吧!如果您连两条CAN线的波特率都不知道,那建议您先使用USBCAN设备的自动识别波特率功能识别一下,然后再应用设备的中继功能,以完成自己的目的。

9、can总线如何发送多帧数据.

CAN总线发多帧数据?是说不间断的发送多帧数据吗?这个不科学,给你举个例子。A的缓冲三帧连续发的CAN数据,ID是0x,在A发送第一帧的同时,B准备发送CAN数据,B的数据帧ID是0x,等A发完第一帧后,A的第二帧肯定是和B的数据一起仲裁,结果是A仲裁失利,等B发完才能继续发送,你要发多帧数据,可以看看ISO157652,里边就有CAN数据传输协议。