社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 3205|回复: 10

[讨论] 车上的ECU怎么向总线上发送CAN数据?

[复制链接]

12

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-6-19 21:02:21 | 显示全部楼层 |阅读模式
车上的ECU怎么向总线上发送CAN数据?
1) 周期性地主动向总线上发送CAN message
2) 某个事件发生后,发送数据到CAN bus
3) 其他节点如BCM,发一个CAN Request ID message,该ECU反馈一阵CAN ID message
个人觉得3)不可以,对么?
此帖出自汽车电子论坛


回复

使用道具 举报

17

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-6-19 21:40:44 | 显示全部楼层
3用法极少,远程祯用法。不过在上汽网络管理里,是有这个用法的。


回复

使用道具 举报

14

TA的帖子

2

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2017-6-20 11:50:51 | 显示全部楼层
一般都是周期性的


回复

使用道具 举报

12

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-6-20 16:22:00 | 显示全部楼层
如果各ECU都周期性地发送CAN message, 如何保证互相不冲突呢?
a)靠CAN ID 自己的优先级去自我仲裁? 这样实时性不好吧
b) 还是说有一个网络时钟,去同步各个ECU?


回复

使用道具 举报

22

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-6-27 17:25:43 | 显示全部楼层
CAN协议就是根据ID仲裁来发送报文的,网络设计的好负载率不高,报文周期满足功能需求不会有实时性不好的问题

点评

比如有三个节点,每个节点都是10ms发送数据,如何避免冲突?还是说有网络时钟让三个节点之间间隔为1ms这样?  详情 回复 发表于 2017-6-29 09:53


回复

使用道具 举报

12

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-6-29 09:53:16 | 显示全部楼层
yzhen5 发表于 2017-6-27 17:25
CAN协议就是根据ID仲裁来发送报文的,网络设计的好负载率不高,报文周期满足功能需求不会有实时性不好的问 ...

比如有三个节点,每个节点都是10ms发送数据,如何避免冲突?还是说有网络时钟让三个节点之间间隔为1ms这样?

点评

网络室友同步时钟的,假如有三个节点A,发0x100,B发0x200,C发0x300,假如三个节点同时要发报文,那么根据仲裁机制,ID越小优先级越高,那就是A发,B和C等A发完后再仲裁,B发,C最后发。理论上网络负载率设计合理,  详情 回复 发表于 2017-10-23 10:05


回复

使用道具 举报

9

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-7-3 19:41:44 | 显示全部楼层
周期性的广播,报文请求、事件触发


回复

使用道具 举报

22

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-7-11 16:19:39 | 显示全部楼层
sandiage 发表于 2017-6-29 09:53
比如有三个节点,每个节点都是10ms发送数据,如何避免冲突?还是说有网络时钟让三个节点之间间隔为1ms这 ...

从总线负载率上来说,一般总线上一半多的时间都是空闲的(也就是没有节点在发信号)。总线上有报文在传输的时候其他节点只能监听不能发报文。就算极小概率几个节点同时开始发起始位,那就根据ID场进行仲裁,ID小的先发。其他节点等总线空闲后再发。没有时间间隔设置。每个信号位包含一个同步段,来实现时钟同步,位采样点在同步段后面。


回复

使用道具 举报

22

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-10-23 10:05:07 | 显示全部楼层
sandiage 发表于 2017-6-29 09:53
比如有三个节点,每个节点都是10ms发送数据,如何避免冲突?还是说有网络时钟让三个节点之间间隔为1ms这 ...

网络室友同步时钟的,假如有三个节点A,发0x100,B发0x200,C发0x300,假如三个节点同时要发报文,那么根据仲裁机制,ID越小优先级越高,那就是A发,B和C等A发完后再仲裁,B发,C最后发。理论上网络负载率设计合理,出现这种情况概率很小,因为网络上一大半的时间都是空闲的,出现同时要发报文的概率很小的。


回复

使用道具 举报

2353

TA的帖子

8

TA的资源

版主

Rank: 6Rank: 6

爱助人

发表于 2017-10-23 10:25:09 | 显示全部楼层
个人猜测,毕竟每家的都不是公开,所以各种可能性都有,按理吧,肯定是有周期性的发送信息,用来确认节点工作正常,同时在也在有事件发生时发送信息,确保事件得到最实时的反馈。至于3嘛,应该是和寄信一样,发一个远程帧后,就慢慢的等回应,总线是释放状态。并不是由对方节点一直占着总线,所以仲裁相同的ID的时候远程帧优先度低于对应ID的数据帧,因为对方节点都把信息送过来了,意思你就别要了。


回复

使用道具 举报

10

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2017-10-27 11:35:33 | 显示全部楼层
怎么下载呀,还是你发过来吗?


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-11-22 03:10 , Processed in 0.497289 second(s), 16 queries , Redis On.

快速回复 返回顶部 返回列表