打印
[CAN-bus/DeviceNet]

CAN总线系列讲座第七讲——CAN总线地址设置详解

[复制链接]
3317|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xsfh365|  楼主 | 2014-11-23 11:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在CAN总线通讯程序中,发送子程序中需要设置“目的CAN节点地址”。例如描述符的前两个字节为:
send_data[0]=0xAA;                                                
send_data[1]=0x08;              //填写发送can数据帧的描述符
表示向地址为550的CAN节点发送8个字节的数据。
CAN转232串口程序中的SJA1000初始化程序中需要设置“自己的CAN节点地址”,也是允许接收其他通讯节点发送过来的CAN总线数据信息。例如:
if(set_ACR_AMR(0xaa,0x00))    //设置自己的地址ID:550
相互通讯的两个CAN节点之间的地址必须对应,否则通讯不成功。
  BasicanPelican两种协议CAN地址的设置方法不同,下面具体进行介绍。
1、Basican的id设置方法:
由ACR和AMR两个8位寄存器决定:
ACR:ID10  ID9  ID8   ID7      ID6   ID5  ID4  ID3       ID2  ID1  ID0
二进制:  1    0    1     0       1     0    1   0
十六进制:                     0xaaH
AMR:  0    0    0     0      0      0    0   0
十六进制:                     0x00H
最后三位“ID2  ID1  ID0”跟ACR无关。AMR对应ACR各位,AMR位为“0”,表示can接收滤波器接收数据时,地址必须和ACR各位设置的数字相等。AMR位为“1”,则表明滤波器设置无效。
但是,计算CAN的id地址的时候,需要把“ID2ID1 ID0”这3个跟ACR无关的位计算在内,例如:
ID10  ID9  ID8     ID7  ID6  ID5 ID4      ID3  ID2 ID1  ID0
1    0   1        0    1    0    1        0   0    0    0  CAN地址为:550
1    0   1        0    1    0    1        0   1    1    1   CAN地址为 :557
根据后三位的不同值,有不同的id地址。
2、Pelican的id设置方法:
Can的id设置由ACR0~ACR3和AMR0~ AMR3八个寄存器设置决定,AMR的功能和Basican的
id设置方法中介绍的相同,下面着重介绍ACR0~ ACR3的设置。对于pelican而言:
ID28   ID27   ID26   ID25         ID24   ID23   ID22   ID21
二进制: 0      0      0       0            0     0      0      0
十六进制:                           0x00H
ID20  ID19   ID18   ID17         ID16   ID15   ID14   ID13
二进制:0      0      0       0            0      0      0      0
十六进制:                           0x00H
ID12   ID11   ID10   ID9          ID8    ID7    ID6    ID5
二进制:0      0      1      0            1      0       1      0
十六进制:                           0x2AH
ID4    ID3     ID2    ID1          ID0     X       X      X
二进制:0      0      0      0            0     0       0      0
十六进制:                           0x00H
其中X表示任意值,和can的ID无关。计算Can的ID的时候,需要计算ID0~ID28的值,也就是从ID0算起,因此:
ID28          ID27   ID26   ID25   ID24          ID23   ID22   ID21   ID20
0             0       0      0       0             0      0      0      0
0                        0                                    0
ID19   ID18   ID17    ID16          ID15  ID14   ID13   ID12
                    0      0      0       0              0      0      0      0
                               0                                    0
ID11  ID10   ID9     ID8          ID7    ID6     ID5    ID4      
                   0     1      0       1              0      1      0      0      
                               5                                    4                                  ID3    ID2    ID1     ID0
                   0     0      0       0
                               0
CAN地址为 :00000540
推荐CAN总线学习书籍及学习板:
1、《CAN总线嵌入式开发——从入门到实战》, 牛跃听 周立功等编著,
北京航空航天大学出版社,2012-1-1,ISBN9787512406919
该书的当当网网址:
2、《CAN总线应用层协议实例解析》, 牛跃听 周立功等编著,北京航空航天大学出版社,2014,ISBN9787512415652
该书的当当网网址:

相关帖子

沙发
xsfh365|  楼主 | 2014-11-27 21:12 | 只看该作者

使用特权

评论回复
板凳
thgbmx| | 2016-9-20 22:05 | 只看该作者
怎么不更新了?

使用特权

评论回复
地板
max_v| | 2017-8-20 21:43 | 只看该作者
我觉得写的还是不错的

使用特权

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

本版积分规则

11

主题

58

帖子

3

粉丝