打印

can通讯问题

[复制链接]
1818|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sddds|  楼主 | 2012-8-16 17:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果 A B C D  4台设备 通过CAN通讯
A收到数据了 怎么才能知道 是B C D 谁发的呢
沙发
IJK| | 2012-8-16 17:55 | 只看该作者
CAN协议里,报文ID一般跟消息相对应,而不是跟设备地址对应。
当然,用户可以使用报文ID 的其中几位,来对设备地址进行编码。这样就可以接近LZ的困惑了。

使用特权

评论回复
板凳
sddds|  楼主 | 2012-8-16 18:13 | 只看该作者
哦 明白了 谢谢 一直钻牛角尖  想迷糊了 谢谢提醒

使用特权

评论回复
地板
sddds|  楼主 | 2012-8-16 19:00 | 只看该作者
实验了一下 不成功
您说的 使用报文ID 是指的修改 TxMessage.StdId 的值吗  我用的扩展标示符
修改发送端TxMessage.StdId 值为 0、1、2
收到StdId都一样没变化呀

使用特权

评论回复
5
捡漏王子| | 2012-8-16 20:39 | 只看该作者
如果是扩展帧,那么应该修改TxMessage.ExtId

使用特权

评论回复
6
捡漏王子| | 2012-8-16 20:40 | 只看该作者
并且注意这个配置要对  TxMessage.IDE = CAN_ID_EXT;

使用特权

评论回复
7
sddds|  楼主 | 2012-8-16 20:57 | 只看该作者
我的意思是比如
A设备 地址是1
B设备 地址是2
C设备 地址是3
D设备 地址是4
B C D 都向 A设备发送数据   TxMessage.ExtId=1;       
A收到数据后怎么能知道是B、C、D哪个设备发的数据呢

使用特权

评论回复
8
捡漏王子| | 2012-8-16 21:10 | 只看该作者
你可以区分B,C,D的EXTID,这个每一个的不一样才对 7# sddds

使用特权

评论回复
9
sddds|  楼主 | 2012-8-16 21:19 | 只看该作者
A收到的只有B、C、D发给A的地址1呀 不会有B、C、D的地址呀

使用特权

评论回复
10
wangdapeng718| | 2012-8-17 08:25 | 只看该作者
LZ可以这样试一下:B C D每个设备发送的有效数据中,比如取出DATA[0],作为自己的身份ID。A收到有效的报文后,check一下DATA[0],就知道谁发的了。

使用特权

评论回复
11
sddds|  楼主 | 2012-8-17 09:35 | 只看该作者
我也想到这个了 可是正好要发8个字节的数据
如果DATA[0]占用了 就要多发一条了

使用特权

评论回复
12
IJK| | 2012-8-17 09:52 | 只看该作者
10L的方法也可以考虑,其实是同样的道理,当然只是比较浪费。

如果用标准ID,应该修改发送端TxMessage.StdId ,且TxMessage.IDE = CAN_ID_STD;如果用扩展ID,应该修改发送端TxMessage.ExtId,且TxMessage.IDE = CAN_ID_EXT。

如果用ID的低2位/3位/4位 对4台/8台/16台设备 进行地址编码,那么
TxMessage.StdId = (Message_Id << N) | DEVICE_N;
或者
TxMessage.ExtId = (Message_Id << N)  | DEVICE_N;
N = 2、3或者4 (对应4台/8台/16台 设备)
DEVICE_N 编码为 0、1、2 ... 对应于设备 A、B、C ...
Message_Id 根据不同的消息,可以编码为 0~127/255/511,取决于ID剩余的位数 和实际需要。

使用特权

评论回复
13
IJK| | 2012-8-17 09:55 | 只看该作者
针对LS的ID编码,接收时Filter 可以只过滤 Message_Id ,从而不管哪台设备发送,需要的消息都可以收到,然后根据ID的低 2位/3位/4位 可以知道是哪台设备发送的消息。

使用特权

评论回复
14
wangdapeng718| | 2012-8-17 10:58 | 只看该作者
12L的方法更优

使用特权

评论回复
15
mochou| | 2012-8-17 12:20 | 只看该作者
学习

使用特权

评论回复
16
sddds|  楼主 | 2012-8-17 14:29 | 只看该作者
呵呵 谢谢各位 学习了

使用特权

评论回复
17
hemporer| | 2012-9-28 16:21 | 只看该作者
用CAN分析仪
截取标识符ID

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

21

帖子

1

粉丝