can总线可以发送多少数据,CAN总线为什么能在1Mbps上传输超过50M
来源:整理 编辑:亚灵电子网 2023-01-23 12:06:17
1,CAN总线为什么能在1Mbps上传输超过50M
标准的CAN总线在1Mbps时,传输距离不大于40米。 如果线缆阻抗均匀性好、衰减低,且总线传输为点到点,中间没有节点,传输距离超过50米也不是没有可能。
2,can总线发送数据的问题
如果CAN发送节点处于“正常发送”模式,发送数据但是没有任何节点接收那么一定会发送失败。
一次发送失败不会产生错误中断,只是发送错误计数器值增加,can控制器重发还发不出去,发送错误计数器累加达到一定的值后才会产生相应的中断。
检测是否发送成功要么是通过发送中断或者发送状态位来的,不是检测是否有错误中断,所以关掉对于发送成功与否不起任何作用。
另:单节点检测can驱动和硬件是否正常,其实是可以通过设置“自检测模式”(自发收发模式)完成的,这样能发送成功,并能收到数据。
3,请问工业上用的can总线传输距离为多少
感谢您的邀请,我来说说这个问题。CAN总线是一种经常被用在汽车控制2113和自动化生产线控制的总线系统。它的最远数据5261传输距离为十千米,注意,是最远数据传输距离,不是有效数据传输距离。因为在超过四十米之后,它的数据传输速度是4102会逐步衰减的,十千米距离上的波特率数值已经下降到5Kbps,这么低的传输速度能不能满足实际需求还是让人有所疑问的。所以,如1653果你说的是最大数据传输距离版,那么CAN总线远超1公里。如果是有效的最远数据传输距离,那就得看实际情况了。那权时候你就得用诸如GCGD中继器等来中继一下了。希望我的回答令您满意。
4,CAN总线上一个主站点同时能发很多少个数据另外一个从站点接收数
首先,要纠正你一下,CAN总线不是主从结构,部分主从节点或主从站。这是根本,如果你这理解错了,后面会绕很多弯路的。CAN总线的数据发送是以广播的形式的,如A节点将数据发送到总线上,通过仲裁,优先级高的报文被发送,所有节点解码ID场,只有ID场对应的节点完成全部的数据接收。你的问题是1、请确认你所谓的丢失“数据”,确实是发给你称的“从节点”吗?这些数据的ID都是指向“从节点”?2、如果1点确认无误,请检查ECU的设计和驱动,最好做一个一致性测试,因为理想状态下依然丢失帧,那是很底层的通讯错误,主题体现在物理层、数据链路层,需做一致性测试。你好!坏Pī气づ帅???仅代表个人观点,不喜勿喷,谢谢。
5,can总线中总结点发送数据在什么情况下才能把数据发出去如
只讨论这点含义不大“正常发送”模式下,两个以上节点,线路正常,波特率相同,就能相互把数据发出去。如果情况异常,没其他任何一个节点接收到,硬件会自动多次重发,最终还发布出去,那么会报告“发送失败”。可以多看一下CAN总线还有哪些参数。如果can发送节点处于“正常发送”模式,发送数据但是没有任何节点接收那么一定会发送失败。一次发送失败不会产生错误中断,只是发送错误计数器值增加,can控制器重发还发不出去,发送错误计数器累加达到一定的值后才会产生相应的中断。检测是否发送成功要么是通过发送中断或者发送状态位来的,不是检测是否有错误中断,所以关掉对于发送成功与否不起任何作用。另:单节点检测can驱动和硬件是否正常,其实是可以通过设置“自检测模式”(自发收发模式)完成的,这样能发送成功,并能收到数据。
6,can总线如何发送AD采集的数据是把数据每一位分别提取出来用字
你的那个b是十六进制中的b吗?不管这些,直接发送数据就行,假设你的A/D结果是16位的(两个字节)并且发在变量ad_result变量里面,发送的时候你需要把数据转换成字节数组(两个字节长度),假设字节数组的名称为ad_byte。发送是这样子:unsigned char ad_byte[2]; // 用来保存要发送的字节数据ad_byte[0] = (unsigned char)(ad_result & 0xff); // 低八位ad_byte[1] = (unsigned char)((ad_result>>8) & 0xff); // 高八位// 把ad_byte发送出去// ...接收到的数据也是数组,假设放在变量ad_res_byte里面,接收的时候这样:unsigned short ad_res_result; // 保存接收到的AD值,16bitsad_res_result = (unsigned short)(((unsigned short)ad_res_byte[1])<<8 || ad_res_byte[0]);//ad_res_result就是你需要的值了
7,能不能将数组中的数据通过can总线发送
一、可以。can总线波特率获取总线的波特率,然后依据波特率和波形读出具体的数据。二、简介CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,在欧洲已是汽车网络的标准协议。首先,你要明确一个概念,can总线上的节点都是自顾自的发送报文,抢夺总线资源的;然后,一个can节点在发送报文的同时也在接收总线上的信息,每个报文都是从id先开始发送,并且通过id判断优先级(显性覆盖隐性),当它发现接收到的数据(id)与它发送的不一致时就退出发送,等待一会;再然后,为什么数据(id)不一致就退出呢,因为只有优先级比它高的报文才能覆盖它的id场,既然最后,回答你第一个问题,几个报文在抢,优先级最高的就抢到了总线,其实它并不知道有人跟它抢(因为它优先级高),她认为总线对它来说是空闲的。我觉得我解释得很通俗易懂!
文章TAG:
can总线可以发送多少数据can总线 可以 发送