A节点pelican协议下,扩展帧 单滤波方式

A节点的接收滤波器 ID号 设置为 0x19881205

设置过程 (1) pelican模式设置

设置时钟分频寄存器CDR.7 =1 使SJA1000工作在pelican模式

(2) 是单滤波模式

单滤波模式 设置 模式寄存器的第3位 MOD.3 为 1 表示是 单滤波方式

(3) 接收器的接收的是扩展帧 实际上选择了pelican 模式 接收缓冲器就变为了13个字节。 就是接收的扩展帧的格式。

(4) 验收代码寄存器 和验收屏蔽寄存器的设置

ACR0

 

ACR1

 

ACR2

 

ACR3

 
                                                                   

ACR0

 

ACR1

 

ACR2

 

ACR3

 
                                                                   

我制作的pelican协议, 扩展帧格式 单滤波方式

程序调试的时候,相比于以前的 pelican 协议 标准帧模式 单滤波方式

之前在标准帧的方式下, 是从第4个字节 开始读数据

标准帧数据存放格式如下图:

对应从第四帧读数据如下图

现在我用的是 pelican协议 扩展帧格式 单滤波方式

对应的程序修改:

试验过程:

主机发送帧的ID号为 0X19881205

从机接收的帧的单滤波器 为 0X 19881205

则主机发送的数据 从机 均可以正常接收 。

(2) 若更改从机的ID号 为 0x19900424

更改从机的程序以后,刷写程序, 发现主机按下按键发送数据,从机不接收

总结:

对最终的程序总结以及调试方式进行总结:

可以把这个程序上传到淘宝或者咸鱼上卖出去,我觉得是可以的。一方面也是给自己积累经验。也是把经验换成钱。

我最终把文件 存放的路径C:\can_prictise\20180218

分为 主机 和从机 文件夹

首先主机 和 从机 均采用pelican协议 扩展帧格式 单滤波方式

主机发送一个字节的ID 是0X19881205

主机接收器单滤波 接收器的ID号 是0x19900424

从机发送一个字节的ID是0X19900424

从机接收器单滤波 接收器的ID号 是 0X19881205

主机程序设置的相关部分

  1. 在置位复位请求的时候 顺便使能了 单滤波方式

    (2)在复位模式下,是SJA1000工作在pelican模式

    (3)由于采用了pelican模式,所以接收器 和 发送器都是扩展帧格式

    (4) 设置主机单滤波器的验收代码寄存器ACR(4个) 和接收屏蔽寄存器AMR(4个)

    使主机的接收邮箱是0x19900424

    (5) 由于是扩展帧 所以在SJA1000的接收中断里做如下处理。

(6) 按键触发 主机发送的时候, 发送的ID号 是 0x19881205

从机设置的相关部分:

  1. 在置位复位请求的时候 顺便设置了单滤波方式

  1. 在复位模式下 是SJA1000控制器工作了pelican模式下

    (3)由于是pelican模式,所以接收器和发送器都是扩展帧的格式

    (4)设置从机单滤波器的 验收代码寄存器和接收屏蔽代码寄存器

    (5) 设置了从机的接收ID号为0x19881205

    相应的在SJA1000接收中断的函数里

从机的发送邮箱ID 号码是 0x19900424

程序 运行的现象:

当主机按下按键 的时候 会触发 发送 从机会正常接收,数码管正常显示

当从机按下按键的时候 会触发从机 发送, 主机会正常 接收, 主机的数码管正常显示

用户kvaser 监控

我储存的log如下:

程序百度 网盘 的地址

最新文章

  1. (转)EClipse插件推荐
  2. STAF no JSTAF in java.library.path 的终极解决办法
  3. shell脚本学习心得
  4. hdu3555 Bomb (记忆化搜索 数位DP)
  5. Ubuntu中如何打开终端terminal
  6. 动态获取项加入到SQL中去统计
  7. GCD中的dispatch_apply的用法及作用
  8. 【转】C#之继承
  9. js关闭窗口
  10. c语言实现灰度图转换为二值图
  11. MySQL/MariaDB触发器
  12. markdown小知识总结
  13. 读C#开发实战1200例子记录-2017年8月14日10:03:55
  14. codeoforces 975B Mancala
  15. unigui1404在delphi10.2.2安装
  16. Win10取消密码
  17. mysql 数据操作 多表查询 子查询 带比较运算符的子查询
  18. mysql流程控制语句
  19. NANDflash和NORflash的区别(设计师在使用闪存时需要慎重选择)
  20. codeforces246E Blood Cousins Return

热门文章

  1. QT5静态编译工程(arm交叉编译)
  2. Vue源码(上篇)
  3. Python 基础之面向对象之常用魔术方法
  4. JAVA 内部类 总结
  5. python中if语句和循环语句
  6. redis学习笔记-01:redis简介
  7. luogu P3357 最长k可重线段集问题
  8. 刷题20. Valid Parentheses
  9. Vue和React之间关于注册组件和组件间传值的区别
  10. 非阻塞多路IO