CAN 监听模式与正常模式的区别?

[复制链接]
13625|23
 楼主| fastolf 发表于 2013-6-4 19:34 | 显示全部楼层 |阅读模式
本帖最后由 fastolf 于 2013-6-24 09:55 编辑

做车载导航,CAN监听(silent)模式与正常(normal)模式对车身CAN网络会造成影响,做过CAN的大侠你们一般如何使用CAN的呀~~?另外CAN 监听模式与正常模式区别在哪里?
其实,我是想以normal模式加入CAN网络形成一个新的节点正常发送报文。但是目前normal存在异常,而silent正常。
2013.6.9有点小进展,发现车上如果想挂载某个CAN节点,必须满足特定规范的挂载才可以,否则CAN网关就会报错。
2013.6.20另外一个进展:发现MCU发送数据时候,由于中断干扰,会出现异常一帧数据(该数据是汽车被碰撞信号),如果这个数据在汽车驱动CAN 上面就会出现车门落锁,以及双闪等问题。现在只要避免发出这样一帧异常数据即可。
airwill 发表于 2013-6-4 20:05 | 显示全部楼层
CAN 监听模式与正常模式区别在哪里? 监听模式不会发送数据, 不会对总线的数据有影响.
xlsbz 发表于 2013-6-4 20:54 | 显示全部楼层
我的理解是 硬件层次silent是接收后不会发ack帧。所以若你的板子设置可能会认为发送不成功,若没有人ack认可的话。
huangxz 发表于 2013-6-4 22:23 | 显示全部楼层
是的,只接收总线的数据,不会发送任何信号在总线上线,说白了,就像一个CAN总线专用逻辑分析仪的功能 一样
 楼主| fastolf 发表于 2013-6-5 10:07 | 显示全部楼层
airwill 发表于 2013-6-4 20:05
CAN 监听模式与正常模式区别在哪里? 监听模式不会发送数据, 不会对总线的数据有影响. ...

嗯,这个你说的很对,我就是不太清楚物理链路层具体的区别,以及一个新的节点加入(normal模式)进去为什么会存在异常?
 楼主| fastolf 发表于 2013-6-5 10:09 | 显示全部楼层
huangxz 发表于 2013-6-4 22:23
是的,只接收总线的数据,不会发送任何信号在总线上线,说白了,就像一个CAN总线专用逻辑分析仪的功能 一样 ...

如果想以normal形式加入CAN网络,并发送某些发送CAN信号,会存在异常么?
 楼主| fastolf 发表于 2013-6-5 10:10 | 显示全部楼层
xlsbz 发表于 2013-6-4 20:54
我的理解是 硬件层次silent是接收后不会发ack帧。所以若你的板子设置可能会认为发送不成功,若没有人ack认 ...

嗯,目前我主要是想运用normal模式加入进CAN网络节点,然后发送CAN报文,不至于引起整个网络的异常。
huangxz 发表于 2013-6-5 10:32 | 显示全部楼层
fastolf 发表于 2013-6-5 10:09
如果想以normal形式加入CAN网络,并发送某些发送CAN信号,会存在异常么?

如果以正常模式接入总线,那么只要网络上面有节点发消息,你都会有ack信号出现(当然,这个信号是CAN控制器发出的,跟你程序没关系),那个节点会认为已经发出数据了( 但是one-shot模式除外,这里不讨论one-shot),如果以监听模式接入总线,那么如果CAN总线上只有一个normal模式的节点发消息出来,就会发送失败,

说的有点乱,呵呵

评论

哪里来的名词 one-shot模式  发表于 2013-6-7 19:14
 楼主| fastolf 发表于 2013-6-5 18:18 | 显示全部楼层
huangxz 发表于 2013-6-5 10:32
如果以正常模式接入总线,那么只要网络上面有节点发消息,你都会有ack信号出现(当然,这个信号是CAN控制器发 ...

嗯 ,呵呵。如果总线上面只有一个normal节点,确实会有很多error,normal至少得有两个节点。
huangxz 发表于 2013-6-5 18:37 | 显示全部楼层
fastolf 发表于 2013-6-5 18:18
嗯 ,呵呵。如果总线上面只有一个normal节点,确实会有很多error,normal至少得有两个节点。 ...

你做车载导航如果接入CAN到OBD接口,那么要很熟悉OBD的诊断协议才可以,:lol
 楼主| fastolf 发表于 2013-6-6 11:35 | 显示全部楼层
huangxz 发表于 2013-6-5 18:37
你做车载导航如果接入CAN到OBD接口,那么要很熟悉OBD的诊断协议才可以,

OBD诊断协议根据实际采集的数据和网上搜到的信息可以了解一些,新节点的挂载必须遵循某些特定的规则,这位大哥是否做过类似的工作捏,对于这些节点挂载的规则了解不?
huangxz 发表于 2013-6-6 11:47 | 显示全部楼层
fastolf 发表于 2013-6-6 11:35
OBD诊断协议根据实际采集的数据和网上搜到的信息可以了解一些,新节点的挂载必须遵循某些特定的规则,这 ...

去4s店的时候也问过,不过自己没了解过,我看都是直接诊断设备都是直接插在obd上面,CAN的ID应该不跟车内CAN网络的ID冲突就可以了
 楼主| fastolf 发表于 2013-6-6 14:12 | 显示全部楼层
huangxz 发表于 2013-6-6 11:47
去4s店的时候也问过,不过自己没了解过,我看都是直接诊断设备都是直接插在obd上面,CAN的ID应该不跟车内CAN ...

哦,ID是没有冲突的,但是如果没有成功挂载在网关上面还是会有错误。
huangxz 发表于 2013-6-6 14:17 | 显示全部楼层
fastolf 发表于 2013-6-6 14:12
哦,ID是没有冲突的,但是如果没有成功挂载在网关上面还是会有错误。

何谓挂载错误?你的网关有错误指的是车里面的网关么
 楼主| fastolf 发表于 2013-6-6 14:26 | 显示全部楼层
huangxz 发表于 2013-6-6 14:17
何谓挂载错误?你的网关有错误指的是车里面的网关么

网关错误就是你所说的OBD诊断发现的错误,要挂载一个新节点上面,必须满足车身网络的相关规则,否则OBD诊断就会发现错误。
huangxz 发表于 2013-6-6 14:31 | 显示全部楼层
fastolf 发表于 2013-6-6 14:26
网关错误就是你所说的OBD诊断发现的错误,要挂载一个新节点上面,必须满足车身网络的相关规则,否则OBD诊 ...

那当然啊,不过楼主只要采集一下4s店的诊断工具与汽车的通信,然后自己照诊断工具那种方式跟汽车通信应该就可以。
xlsbz 发表于 2013-6-7 18:56 | 显示全部楼层
fastolf 发表于 2013-6-5 10:10
嗯,目前我主要是想运用normal模式加入进CAN网络节点,然后发送CAN报文,不至于引起整个网络的异常。 ...

你发报文干嘛?
不要和别的ID一样就OK,不要发的太猛,另外ID号弄大点。
CAN会自动仲裁 很难出问题,很难异常
xlsbz 发表于 2013-6-7 18:58 | 显示全部楼层
fastolf 发表于 2013-6-5 18:18
嗯 ,呵呵。如果总线上面只有一个normal节点,确实会有很多error,normal至少得有两个节点。 ...

这种error对别人没有影响,不要紧。最要命的而是对别人有影响的error
xlsbz 发表于 2013-6-7 18:59 | 显示全部楼层
xlsbz 发表于 2013-6-7 18:58
这种error对别人没有影响,不要紧。最要命的而是对别人有影响的error

好像有个主动犯错和 被动错误 这个说法 楼主可以看看
xlsbz 发表于 2013-6-7 19:05 | 显示全部楼层
你normal有人收么?
没人收当然异常了,节点可以设置过滤的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:要怎么收获,先那么栽。

17

主题

452

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部