OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4321|回复: 5

F4/F7多机CAN通信如何进行调度?

[复制链接]

2

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
475
金钱
475
注册时间
2017-4-1
在线时间
57 小时
发表于 2018-5-21 11:45:47 | 显示全部楼层 |阅读模式
5金钱
一、问题背景:      使用F7作为CAN的主机(主要功能为接收,也有发的需求),5个F103(例如:A\B\C\D\E)作为CAN的从机(多数为发,少数同时需要接收)。目前,F7使用的是轮询的方式对总线上的报文进行读取。通信速率为500K。目前使用的通信方式有点类似I2C,对每个103设为一个ID,比如:A:0x103,B:0x104,......,E:0x107,F7的ID设为0x101。每个103的上发消息的频率一致。

      看过CAN的协议,明白CAN的报文是以ID的优先级进行仲裁。

二、疑问:
      1、F7的过滤器应该如何设置?
       比如在准备接收A的消息的时候,过滤器设为屏蔽其他的消息?针对每一个从机,都进行相应的过滤设置?
      2、如果用上述的通信方式,那么是否会导致永远只收到优先级最高的报文,如上述,只收到A的报文?
      3、是否有更合理的方式,F7既可以接收到各个从机的报文,又能在必要的时候对各从机发送报文?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-5-22 01:59:47 | 显示全部楼层
回复

使用道具 举报

33

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-11-20
在线时间
76 小时
发表于 2018-6-16 15:05:15 | 显示全部楼层
1、可以 设置成  CAN_FilterMode_IdMask 或CAN_FilterMode_IdList。应该是对每个从机都过滤
2、不会。使用5个过滤器,关联到FIFO中,读出每次接受的值。(针对主机)
3、感觉这就已经很合理了

鄙人拙见。
回复

使用道具 举报

2

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
475
金钱
475
注册时间
2017-4-1
在线时间
57 小时
 楼主| 发表于 2018-6-17 14:01:00 | 显示全部楼层
图南 发表于 2018-6-16 15:05
1、可以 设置成  CAN_FilterMode_IdMask 或CAN_FilterMode_IdList。应该是对每个从机都过滤
2、不会。使用 ...

谢谢!
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2018-9-12
在线时间
2 小时
发表于 2018-9-12 20:57:09 | 显示全部楼层
请问楼主这个问题解决了吗?如果解决了,可以分享代码吗?谢谢。
回复

使用道具 举报

2

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
475
金钱
475
注册时间
2017-4-1
在线时间
57 小时
 楼主| 发表于 2018-9-21 17:45:17 | 显示全部楼层
husteryu 发表于 2018-9-12 20:57
请问楼主这个问题解决了吗?如果解决了,可以分享代码吗?谢谢。

代码不太方便分享,思路可以分享。
用时间换取对单一器件操作。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-14 06:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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