在CAN通信中,使用某个固定波特率的情况下,总线的通信流量就将是一个固定值,比如使用1Mbps的波特率,则该总线上100%负载率就是1秒的时间内可传输1Mbit的数据。当总线的平均利用率达到70%以上时,总线的通信将有可能出现拥堵的现象,极端情况下将有可能造成错误帧的出现,所以对于CAN通信需要严格控制好通信的负载率。
如下方图片若是就是我平时做程序开发时使用USBCAN-II这款CAN卡配合其专用的CANTEST软件做的一个测试截图,可以直接通过曲线的变化来实时监控我总线上的实际通信流量,以使我可以很方便的处理好程序中数据发送的时序问题。
CAN总线的测试工具
CAN总线多用于工控和汽车领域,在CAN总线的开发测试阶段,需要对其拓扑结构,节点功能,网路整合等进行开发测试,需要虚拟、半虚拟、全实物仿真测试平台,并且必须测试各节点是否符合ISO11898中规定的错误响应机制等,所以CAN总线的开发需要专业的开发测试工具,并且在生产阶段也需要一批简单易用的生产线测试工具。CAN总线开发测试工具的主要供应商有ZLG、Passion IXXAT、IHR、Vector、Intrepidcs、Passion Warwick、LAIKE等。常用的开发测试工具如CANScope、CANalyst-II、Passiontech DiagRA、canAnalyser、X-Analyser、AutoCAN、CANspider,LAIKE CANTest等。
CAN通信发送方未检测到接收方应答
设一个Time out时间,如再这段时间未收到应答讯号就重送,再启动Time out机制.
我是用VC6的MFC编写的软件,不知道怎么判断有没有接收到下位机传上来的报文,在程序里怎么判断?分会给你的,感激不尽啊!
如何利用usb转can通讯转换模块测试can总线通讯
按照说明配置好USB转CAN工具,并将总线与目标设备连接,使用配套上位机软件进行通讯测试。
CAN总线 节点之间通信 如何确认接收信息 +20
首先,要明确你要的应答是什么,是正确接收某个报文,还是某个节点向另一节点请求报文
一、正确接收报文:
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总线通信为什么不能在高负载率下运行?
在CAN通信中,使用某个固定波特率的情况下,总线的通信流量就将是一个固定值,比如使用1Mbps的波特率,则该总线上100%负载率就是1秒的时间内可传输1Mbit的数据。当总线的平均利用率达到70%以上时,总线的通信将有可能出现拥堵的现象,极端情况下将有可能造成错误帧的出现,所以对于CAN通信需要严格控制好通信的负载率。
我平时做程序开发时使用USBCAN-2E-U这款CAN卡配合其专用的CANTEST软件做的一个测试截图,可以直接通过曲线的变化来实时监控我总线上的实际通信流量,以使我可以很方便的处理好程序中数据发送的时序问题。
做过CAN总线编程的单片机师傅请进
首先 俩个星期学会CAN总线是不可能的 。呵呵。但是要是在别人的基础上做自己简单的应用是完全没问题的了。
最快的方法是买一个带CAN的开发板,他里面有CAN 的例程,我原来做过CAN 总线,像你说的只是控制几个灯亮就非常简单了。
还要跟你说下的是,你的CAN模块如是单片机自带的外设,那你最好买同一系列的单片机开发板那就更快了。(即使不买,那你也可以下相关开发板的资料了,呵呵) 如果不是可能时间要多些。等你做完这个项目在回过头去看看CAN 是非常有助你理解的。
希望我的回答能帮助你了。CAN总线在工业控制上还是非常好的总线。祝你研发成功。
转载请注明出处51数据库 » can通信测试软件 如何测试CAN总线的通信负载率?