CAN软-硬件要则

      在编写CAN总线通讯程序时,主要编写函数由初始化函数,发送函数和接收函数组成。 其中发送函数一般写为主动发送函数,接收函数一般采用中断接收。下面就简单介绍一下三个函数的编写。

 1 SJA1000寄存器初始化配置顺序

(1)进入复位模式,进行配置 (2)配置时钟分频寄存器,决定Peil模式还是Basic模式。 (3)配置总线定时寄存器,确定波特率。 (4)配置中断使能寄存器,决定使用那几个中断 (5)配置输出控制寄存器 (6)配置验收码和屏蔽码,决定接收哪一类节点的数据 (7)退出复位模式,进入正常工作模式。

 2 发送数据顺序 (1)查询状态寄存器,判断是否正在接收,是否正在发送,是否数据缓冲区被锁。 (2)配置发送缓冲区。 (3)配置命令寄存器,启动发送。

 3 接收数据顺序 (1)采用中断接收,关CPU中断。 (2)判断是不是接收中断。 (3)判断是远程帧还是数据帧 (4)读取数据 (5)开中断

 

    硬件正常是整个调试工作的基础,在进行软件调试之前首先需要仔细检查硬件连接。保证每一个连接是正确的,没有虚焊。而在所有连接中CPUCAN控制器的连接又是最重要的。所以我们采用软件方法对CAN控制器与CPU的连接接口进行了检测测试。检测步骤如下:

(1)CAN节点上电复位后,检测SJA1000的复位管脚电平应为高电平,反之说明SJA1000的复位电路不正常。

(2)SJA1000的测试寄存器写入AAH,再读SJA1000的测试寄存器,结果应该是AAH,如果不是,说明数据线,地址线,控制线的连接有问题。

(3)SJA1000的测试寄存器写入55H,再读SJA1000的测试寄存器,结果应该是55H,如果不是,说明数据线,地址线,控制线的连接有问题。

(4)CAN总线驱动器的总线端接上负载电阻120欧姆,软件强制SAJ1000进入工作模式,看其是否真正进入工作模式。若已进入工作模式,说明CAN控制器与CPU连接正常。

    CAN总线相对于其他总线显著的特点就是信息标识符了。在应用层协议设计的过程中,要充分考虑信息标识符的制定,这与系统的性能有直接关系。  

    信息标识符的分配原则:

(1)在同一系统中,每条信息必须标以唯一的信息标识符。

(2)具有相同标识符且数据长度码不为0的数据帧仅可由一个节点启动,防止仲裁失效。

(3)相同标识符的远程帧不能同时发送。

(4) 规划信息标识符,规定每一部分的功能。

    优先权的分配原则:

(1)实时性要求高的优先级分配要求高。

(2)具有相同标识符的帧,数据帧优先权高于远程帧。

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值