新手关于Can的一点疑问 点击:1046 | 回复:7



pump

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 4回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2003年4月28日
发表于:2003-05-05 14:40:00
楼主
一直不明白can的多主多从有什么好处,在什么地方有用? 而且在can的帧结构中只有1个标志位区别不同的帧,那我怎么知道哪个数据是从网络上哪个设备发过来的呢?还是要自己在加标志做区分? 真的是新新手,让大家见笑了,哪位前辈指点一下啊?:)



远 方

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 401回
  • 年度积分:0
  • 历史总积分:561
  • 注册:2002年1月29日
发表于:2003-04-28 13:00:00
1楼
“只有一个标志位区别不同的帧”是什么意思?? 如果用标识区的数据来表示不同的节点,是取决于你如何定义节点的地址,比如,你把5-0位作为发送者的节点地址,可以表示0-63个节点,收到数据后取这六bit出来比对,就知道是哪个节点发来的数据了。都是自己定义的。

pump

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 4回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2003年4月28日
发表于:2003-04-29 10:06:00
2楼
不好意思没说清楚,我是指从数据帧里面的仲裁区中的标识符是不是不能区分该帧是网络上的那个设备发送的,如果要知道的话需要在数据区里用几位来给设备编址? 另外我对can的发送和接受还是不太明白,具体是怎么个过程啊?协议里写得我的不太理解:) 我在实际使用的时候最简单的方法是不是只要通过传口向can控制器里写和收就行了?别的不用管? 请教一下,谢谢了:)

远 方

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 401回
  • 年度积分:0
  • 历史总积分:561
  • 注册:2002年1月29日
发表于:2003-04-29 14:43:00
3楼
在数据区编址或是在标识区编址都由你来定,反正CAN是不会给你进行编址的,你要用标识区或用数据区都可以,你认得就好。 CAN的收发都由CAN芯片完成了,你只需要对特定的寄存器进行数据装入,置起发送位;侦测数据到达(中断或扫描),从寄存器取数据,就OK了

pump

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 4回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2003年4月28日
发表于:2003-04-30 10:54:00
4楼
哦,明白了,多谢了:0

pump

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 4回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2003年4月28日
发表于:2003-04-30 11:20:00
5楼
不好意思在请教一下 他是广播的吗?网络上每个设备察看一下地址是不是发给自己的,是的话接收?在哪儿我能找到一些can通讯程序代码学习一下呢?

远 方

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 401回
  • 年度积分:0
  • 历史总积分:561
  • 注册:2002年1月29日
发表于:2003-04-30 13:15:00
6楼
每个节点都可以收到数据,但为了节约CPU资源,一般的CAN控制器都提供MASK&FILTER,可以滤掉不相关的数据 这样只有发给自己的数据才可以产生中断或进入处理流程

pump

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 4回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2003年4月28日
发表于:2003-05-05 14:40:00
7楼
哦,太谢谢了:)

热门招聘
相关主题

官方公众号

智造工程师