编程技术分享平台

网站首页 > 技术教程 正文

CAN:看你知多少(你知道看看)

xnh888 2024-11-14 18:47:17 技术教程 14 ℃ 0 评论

感谢您关注电气电子工程师摇篮!如果您尚未关注,请点击标题上方的“电气电子工程师摇篮”关注我们

这里说明一下,前段时间有个妹子向我寻求帮助,提出的一个CAN通讯的问题!由于是个妹子,并且那么美那么让我澎湃!我就小辛苦一下啦,为她也是为大家整理一下CAN的问题。

先讲一下什么叫CAN?(网上小抄一段)

CAN“Controller Area Network” 控制局域网总线,是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一;CAN总线的特点使得它的通讯可靠性得到了更加完美的诠释!也使得它出现在要求很高的应用场合!如汽车电控系统、电梯控制系统、机器人控制板卡通讯系统等各领域!

CAN总线也是一种串行数据传输的方式,线缆通常会选用双绞线,也可以是同轴线缆或光纤!CAN通讯也是以差分信号来传输的,要知道差分信号的优点就是对外部电磁干扰是高度免疫,且有利于识别微小信号!CAN总线上的每一个节点是以报文形式广播发送数据,这样总线上的其他节点就都能接收到,当然包括自己!报文格式的话在这里就不在叙述了,网上有很多更加详细的讲解,小编在这里就不在详细阐述了!

今天的关键来了!!!

CAN总线中存在几种错误类型:

1、位错误:

按我的初浅理解就是你在向CAN总线发送数据的同时,也在检测总线上数据,如果检测到与发送位电平不同,那就为一个位错误。(其实就是归纳的直白一点)。但是在仲裁区的填充位流期间或应答间隙送出隐性位而检测到显性位时,不认为是错误位。送出认可错误标注的发送器,在检测到显性位时也不认为是错误位。

?2、填充错误:

在使用位填充方法进行编码的报文中,出现了第6个连续相同的位电平时,将检 测出一个填充错误。

3、CRC错误:

CRC序列是由发送器CRC计算的结果组成的。接收器以与发送器相同的方法计算CRC。如果计算的结果与接收到的CRC序列不同,则检测出一个CRC错误。

4、形式错误:

当固定形式的位区中出现一个或多个非法位时,则检测到一个形式错误。5、应答错误:

在应答间隙,发送器未检测到显性位时,则由它检测出一个应答错误。

? 检测到出错条件的节点通过发送错误标志进行标定。当任何节点检测出位错误、填充错误、形式错误或应答错误时,由该节点在下一位开始发送出错误标志。

一问一答:

问:请问CAN总线在想传输1000m的情况下,最快的速度能到多少呢?

答:50kbps = 1300m

问:如果一个网络中只有2个节点,其中一个处于监听模式,另一个节 点发送报文会使处于监听模式的节点进入中断吗?

答:能进入接收中断,你自己的试验也可以证明。

问:想组建一个简单的CAN网络,已经有两个节点,我想问CAN总线如何组建,终端电阻安装在哪里?

答1:直接将节点CANH和CANL连到总线上,终端电阻接在总线两端,大约120欧。

答2:推荐北航出版《现场总线CAN原理与应用技术》,研读一下

问:请问各位老师:我是一名can总线的新手,我正在做can总线的开发,控制器用sja1000t(我自己两个控制板互通),但我在发送数据后将出现总线关闭,我看到发送错误计数器在不断增加,直到0xff,最后恢复到0x7f,谢谢各位老师帮我解答这个问题。或者对我给与启

答1:首先调通单个节点。

答2:这是单节点发送没有成功(或者由于网络中其他节点没有收到帧并在响应场响应);建议参考网站CAN应用方案。

问:我想请教各位can远程贞有何作用?如何应用?在什么情况下才需要用到远程贞?

答:远程幀的用与不用完全取决你自己的协议,can有远程幀的功能,是可用可不用的!

问:请专家帮估计ARM CPU 的CAN口处理能力! 在不处理复杂协议的情况下,一个CAN口吞吐达最高负荷5000帧/秒时,CPU的负荷是多少?多个CAN口呢(如LPC2294)

答:即使用于严格的速度测试,LPC2000的速度完全能够胜任2-4个CAN通道

问:为什么MiniCAN总提示发送失败? 我在使用MiniCAN在自发自收模式下进行循环发送数据时,会经常提示发送失败,但是却已经接收到了数据。这是什么原因?怎样能避免呢?

答:是不是总线上连接有其他CAN节点?检查一下对方的速率。

问:为一为大虾能给予帮助,在此先谢了.问题是这样的:如果一个SJA1000的节点(节点1)接收到了一个远程帧,节点1怎样知道,这一远程帧是那一个节点发来的?如果节点1要给该节点以应答,识别码应该怎样写?

答:需要有应用层协议才能区分网络的源节点、目的节点。

问:为请教关于2119 c?an验收过滤器的问题在canstarter-ii应用指南第42页中提到的“fullcan标准地址”与“标准单个地址”有何区别?

答:fullcan标准地址放置的是需要自动执行接收存储的id索引表格(fullCAN功能,查看相关的介绍);标准单个地址仅仅是AF接收/屏蔽标准id的索引表格,即和一般的接收过滤理解一致。

问:为什么在分析仪发出第三侦后,2119才产生接收中断,而且收到的是第一侦的数据,WritePoint2 = 1。

如果分析仪只发出一侦数据,不能产生中断,怎么回事?

答:第三帧才产生中断可能是溢出中断,因为接收中断和溢出中断的额中断号是不同的,菲利普的早期资料中CAN的中断号有错,请下载最新资料!

问:SJ1000T中基本模式下只能检测8位的ID,但发送时确有11位ID,请问ID2-0有什么用?

答:你指的是BasicCAN模式下的"验收过滤";其实,两种模式的所有11位或29位都有效。

问:再用USBCAN-I时,ZLGCANTest为什么不能设置波特率?那时钟频率是多少啊?说明书上也没有说明啊 ?

答:打开设备时定时器0、定时器1就是用于设置波特率的。详细请看相关的用户手册。16MHz,在编程接口文档中应该也有说明。

问:我现在正在用sja1000做CAN接口的硬件部分,请问书上CAN_H和CAN_L部分间的两个二极管起什么作用啊?是不是必须接啊,应该选什么型号的呢?

答:这两个二极管叫做瞬态抑制二极管,主要是总线过压保护,具体可以查找瞬态抑制二极管资料。

欢迎关注微信公众号:morigen-Studio,更多内容等你!!!

【好文分享】送人玫瑰 手留余香

如果在你的生活、工作、学习中读到了有价值的好文章,请记得随手发给莫日根。我们将会帮您一起与大家分享!请提供文章原作者及文章出处。

投稿邮箱:404382399@qq.com

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表