2011-12-02 21:59:23

流程图:

CAN自收自发问题小结

1,地址如何确定? 
答:51的片外扩展地址,R/W脚的电平会根据代码自动更改,不需要设置。   
参考 单片机的外部存储器的扩展.doc

2, CAN总线模式 Intel和Motorla总线区别  
答:Motorla是R/W共用一个引脚,Inter是R和W引脚分开使用。           

参考  intel总线与motorola总线.doc

3,CAN总线模式如何设置?
答:CAN总线模式是通过硬件引脚Mode来设置的,上电后就固定了。上电后可以通过CDC寄存器读取。

4,如何设置成自发自收?
CMR.4(SRR)置位。设置信息可被同时发送和接收。等于设置了可以自发自收。

5,单滤波与双滤波区别,如何组合?
参考文件:CAN 控制器 SJA1000 验收滤波器原理与应用.pdf

6,频率设置方法。
参考  STJ1000总线定时寄存器计算.doc

7,网络上起码要有两个节点,才能发送成功,否则一直重发到总线关闭,而程序却一直在等待发送成功。(有待验证)

8,再说一下错误状态:
1,当TX错误计数寄存器和RX错误计数寄存器中有一个计数大于127时,则就进入错误被动状态(Error Passive)
2, 当TX错误计数寄存器和RX错误计数寄存器两个计数都小于127时,则就进入错误主动状态(Error Active)
2, 总线关闭状态,当TX错误计数寄存器超过限制255 总线状态位被置为1 总线关闭;

9,调试记录(这次调试主要是在自发自收代码中设置MOD和CMR的一些标志位)
1)
   Write_SJA1000(REG_CAN_MOD,0x05);    //自测。
   Write_SJA1000(REG_CAN_CMR,0x010);//使能自发自收请求。
放在while循环外,已发送一次。

2)
   Write_SJA1000(REG_CAN_MOD,0x01);      //正常发送接收。
   Write_SJA1000(REG_CAN_CMR,0x010);//自收发请求
放在while循环外,已发送一次。

ecc显示0xD9,自动重复发送,发送完毕一直是为完毕。状态为0x60

3)
   Write_SJA1000(REG_CAN_MOD,0x05);      //自测。
   Write_SJA1000(REG_CAN_CMR,0x01);//正常发送请求
从状态来看显,示0xC,就是说数据已经正常发送出去了。但是没有响应接收中断。我把canl和canh相连也不报错。
后来用示波器查看,发现这样的设置信息根本没发送出去。

所以总结下:
1,希望单机硬件自测的话,CMR要设置为自收发,MOD要设置为自检测。
2,要实现正常的收发,至少需要2台CAN机在网络上。

CAN自收自发问题小结的更多相关文章

  1. AD9361寄存器配置顺序,循环模式,自收自发

    :] cmd_data; :] index; begin case(index) 'h000,8'h00};//set spi -- 'h3df,8'h01};//set init -- 'h037, ...

  2. CAN双机通讯调试小结(SJA1000与MCP2515通讯)

    2011-12-07 21:36:02. 效果图: 1,51的SJA1000自收自发测试完成,见上一篇小结. 2,SJA1000自测完成后,再自测MCP2515就非常容易.主要是设置工作模式为回环模式 ...

  3. 嵌入式linux串口通信自发自收测试程序

     /*串口自收自发程序主函数*/#include"uart_api.h"int main(){ int fd; char buff[BUFFER_SIZE]; char buff2 ...

  4. LPC1769 CAN的自测试模式

    一.背景 客户要了一块单路CAN的板子,他希望在没有其他板子的情况下进行自行测试,然后按照我写的 APP选择自收发测试选项,却无法接收到发送的信息,但是外接了一块板子就可以接收到自己发送的 信息:由于 ...

  5. CAN总线(一)

    原文出处:http://www.cnblogs.com/jacklu/p/4729638.html 嵌入式的工程师一般都知道CAN总线广泛应用到汽车中,其实船舰电子设备通信也广泛使用CAN,随着国家对 ...

  6. 【Arduino】开发入门【十】Arduino蓝牙模块与Android实现通信

    [Arduino]开发入门[十]蓝牙模块 首先show一下新入手的蓝牙模块 蓝牙参数特点 1.蓝牙核心模块使用HC-06从模块,引出接口包括VCC,GND,TXD,RXD,预留LED状态输出脚,单片机 ...

  7. usb gadge驱动设计之我是zero

    此处将以zero.c为例进行讲解. 第一次接触zero.c驱动的时候,是因为某项目需要,提供一种usb字符设备,希望能够通过字符设备打开,读取和发送文件.当时能想到的就是zero.c文件,本打算按照z ...

  8. GPRS DTU设备常见的问题分析

    在GPRS DTU设备使用的过程中,经常会遇到各种各样的问题,今天就为大家来分析一下在GPRS DTU设备使用时会遇到的一些问题. 1.GPRS模块设置 a.检查串口参数是否与GPRS模块的工作参数一 ...

  9. 树莓派4B学习札记

    防静电 树莓派比较容易被静电损坏,要做好以下预防措施 使用的时候不要用手去触摸PCB和针脚!特别是上电之后! 拿板卡的时候,要习惯性拿板卡的边缘 勤洗手,勤摸墙壁,释放身上的静电 系统安装 8GB以上 ...

随机推荐

  1. Go语言基础之切片

    Go语言基础之切片 本文主要介绍Go语言中切片(slice)及它的基本使用. 引子 因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性. 例如: func arraySum(x ...

  2. WebService的两种方式SOAP和REST有什么不同?

    REST API 优点: 1. 轻量级的解决方案,不必向SOAP那样要构建一个标准的SOAP XML. 2. 可读性比较好:可以把URL的名字取得有实际意义. 3. 不需要SDK支持:直接一个Http ...

  3. makefile编写

    概述 什么是makefile?或许非常多Winodws的程序猿都不知道这个东西,由于那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序猿,makefil ...

  4. python 中的类

    1.1 类里面包括:类的属性.方法 OO的特征(Object Oriented) 封装:信息隐蔽技术 继承:继承是子类自动共享父类之间数据和方法的机制 >>> class MyCla ...

  5. Linux服务器tomcat无法通过ip加端口访问

    Linux服务器tomcat无法通过ip加端口访问 防火墙开放端口 # Firewall configuration written by system-config-firewall# Manual ...

  6. Python全栈-magedu-2018-笔记6

    第三章 - Python 内置数据结构 bytes.bytearray Python3引入两个新类型 bytes 不可变字节序列 bytearray 字节数组 可变 bytes.bytearray 字 ...

  7. java_基础_abstract抽象关键字

    java中,当父类中的某些东西不确定时,可以用abstract关键字将此类变成抽象类(也就是说类并不完整,有些东西要等待子类去实现) 注意事项: 1.抽象类中的抽象方法不能有实体,格式如下 publi ...

  8. MySQL入门,了解下、

    本人菜鸡一个,一份简单MySQL笔记送给大家,希望大家喜欢.(●'◡'●) Ⅰ. 数据备份与导入导出 1.1.备份基本概念介绍 1.2.mysqldump详解 1.3.mydumper浅析 1.4.M ...

  9. 关于HTTP协议学习(二)

    一,目录结构 HTTP Cookie & Session HTTP Cache (缓存) 二,HTTP Cookie & Session 1. 我们看到的 cookie 我们通过浏览器 ...

  10. RxSwift 介绍

    RxSwift 介绍 中文文档 https://beeth0ven.github.io/RxSwift-Chinese-Documentation/ https://medium.com/@DianQ ...