会员
周边
捐助
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
Pejoicen
博客园
首页
新随笔
联系
管理
订阅
龙芯CAN测试(sja1000)
测试方案
CAN0和CAN1相连,互相收发数据。连接方式如下图:
使用扩展模式CAN1发送数据CAN0接收数据。
使用标准模式CAN1发送数据CAN0接收数据。
使用EJTAG中bin文件夹内的can.c代码,使用callbin的方式测试CAN的收发。Can.c中CAN默认工作在扩展模式。当测试CAN的标准模式时需要对代码进行如下修改。
软件流程
设置控制器进入复位模式
检测到有复位请求后将中止当前接收/发送的信息而进入复位模式,一旦向复位位传送了 1-0 的下降沿 CAN 控制器将返回工作模式
设置总线定时。
总线定时0寄存器对应BTR0
总线定时1寄存器对应BTR1
设置标准模式还是扩展模式
向偏移地址为1的寄存器写0x81则为扩展模式
向偏移地址为1的寄存器写0x1则为标准模式
设置过滤,当消息的ID与上验收屏蔽值等于验收代码与上验收屏蔽值时,控制器接收消息。
扩展模式,设置寄存器偏移地址为16~23的寄存器,下图红色方框中。
标准模式,设置寄存器偏移地址为4、5的寄存器
向控制寄存器的RRbit写0,进入正常工作模式。
使能中断
扩展模式:向偏移地址为4的寄存器写入0xff。
标准模式:向控制寄存器写入0x1e打开中断。
发送数据
扩展模式:将发送的数据写入如下图所示寄存器。
标准模式:将发送的数据写入如下图所示寄存器。
需要保证发送的帧不被接受端所过滤掉。
发送数据:数据写入后,将命令寄存器的TR置1。
两种模式操作相同。
接收数据:查询中断寄存器的RI接收中断是否为1。为1则说明接收到数据。
两种模式操作相同。
读取接收的数据
扩展模式
标准模式
注意
CAN在每次发送/接收数据后需要复位。
CAN的两种帧格式
posted @
2015-07-01 21:46
Pejoicen
阅读(
1682
) 评论(
0
)
编辑
收藏
举报
刷新页面
返回顶部
公告