1、CAN总线的传输:
CAN总线上某个节点,发送报文在总线上,这时报文以广播的方式在总线上传输,如果当中有两个节点,它们拥有与报文标示符一样的接受代码,经过验收滤波后,报文就会存入RXFIFO中。
在CAN通讯中,要注意:报文发送时必须先申请发送请求,然后报文才可能会发在总线上。
2、CAN的自检模式
CAN的自检模式就是节点自己来测试自己。在自检模式中要在发送报文的时候设置“自接受请求-self reception request”否则自检模式将失败。
在自检模式中节点的特性:
1) 可以孤立的一个节点存在
2) 必须要设置自接受请求命令发送报文
3) 验收滤波无视,也就是说无视ACR,AMR的设置
4) 报文提示符无视
5) 节点依然参与总线
自检测模式需要对SJA1000_Init()函数和CAN_TXD()函数进行修改。 在初始化函数中要注意最后设置确保进入自检测的模式,即将MODR设置为0X04;
do
{
//确保进入自接收模式
SJA_MODE = 0x04;
Judge = SJA_MODE;
}
while(!(Judge & 0x04));
在发送函数中最后是要设置为自动接收请求,而不是之前的发送请求。
SJA_CMR = 0x10;//置位自发送请求位
参考:
1、akuei2_CAN学习笔记
文章评论(0条评论)
登录后参与讨论