野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10228|回复: 3

CAN的节点是怎么知道广播出来的ID是自己想要的??

[复制链接]
发表于 2018-11-15 23:30:53 | 显示全部楼层 |阅读模式
火哥说ID表示的不是节点的地址,而是温度,湿度等数据类型,,那么是不是CAN网络中的每个CAN节点都有个过滤器???不然他怎么知道这个广播的ID是不是自己需要的??
回复

使用道具 举报

发表于 2018-11-16 08:43:59 | 显示全部楼层
有过滤器的就过滤id,没过滤器的就整个接收然后判断id再处理
回复 支持 反对

使用道具 举报

发表于 2018-11-16 08:45:28 | 显示全部楼层
节点ID设置可以属于CAN应用层协议内容,而应用协议可以自行定义。
一、从节点的ID如果要和MCU“不相关”,可以又多种方式实现,ID事先装入EEPROM,或者用硬件的拨码开关来指示。
如果逻辑上复杂一些,可以做到ID自动分配,自动识别。
二、“如从主节点向从节点下载程序”——可以主节点同时向多个从节点发送数据(广播),也可以指向特定的ID发送(单个问答式)。
实际上主节点的数据发到总线上了,所有从节点都可以接收到的,至于如何接收可以两种方式:
1、每个节点都把数据收入缓冲区,软件判断不属于自己节点的就丢弃不处理。
2、硬件设置CAN滤波,不属于自己节点的数据就不会收入缓冲区,节点处于空闲状态,只有属于自己的特定ID才会收进来。
回复 支持 反对

使用道具 举报

发表于 2019-2-21 11:25:11 | 显示全部楼层
flyleaf 发表于 2018-11-16 08:43
有过滤器的就过滤id,没过滤器的就整个接收然后判断id再处理

如果没有使能过滤器  那么是从哪个接收fifo读取数据呢
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-6-3 23:14 , Processed in 0.027889 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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