社区导航

 
查看: 2152|回复: 7

[讨论] 车上的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)不可以,对么?
此帖出自汽车电子论坛

回复

使用道具 举报

13

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?

回复 支持 反对

使用道具 举报

4

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 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这样?

回复 支持 反对

使用道具 举报

8

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

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

回复 支持 反对

使用道具 举报

4

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

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

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

回复 支持 反对

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

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

GMT+8, 2017-7-22 02:54 , Processed in 0.317334 second(s), 15 queries , Redis On.

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