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. CSS3_过渡_2D 变换_瓶体旋转_动态时钟

    1. 过渡 transition 允许 CSS 的属性值在一定时间内平滑的过渡, 在鼠标点击,鼠标滑过或对属性改变中触发,并圆滑的改变 CSS 的属性值 简写属性: #box { width: 300 ...

  2. CentOS裸机环境下安装php-7.3.1

    安装步骤如下 安装必要的软件 获取源码 编译安装 安装过程可能遇到的一些问题 编译参数详解 安装步骤如下 安装必要的软件 yum install -y autoconf automake libtoo ...

  3. Java课程寒假之《人月神话》有感之三

    一.未雨绸缪 作者开始谈论实验室代码如何向开发出来的产品转变,化学工程师通过“实验性工厂”的中间步骤做测试来得到经验.而软件系统的构建人员却是按照时间进度将第一次开发的产品发布给顾客.对于我这只没有实 ...

  4. 壁虎书1 The Machine Learning Landscape

    属性与特征: attribute: e.g., 'Mileage' feature: an attribute plus its value, e.g., 'Mileage = 15000' Note ...

  5. LocalDate

    java中做时间处理时一般会采用java.util.Date,但是相比于Date来说,还有更好的选择 -- java.time.LocalDate. 这是jdk8中新增的日期处理类,同时新增的还有ja ...

  6. box-shodow的使用

    text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果.随着HTML5和CSS3的普及,这一特殊效果使用越来越普遍. 基本语法是{box-shadow:[inset ...

  7. 关于Android的fragment的使用

    fragment的静态使用 首先创建两个fragment,就把fragment当成activity去写布局,第一个是fragment_title: <LinearLayout xmlns:and ...

  8. SQL两表之间:根据一个表的字段更新另一个表的字段

    update table1 set field1=table2.field1,field2=table2.field2from table2where table1.id=table2.id

  9. node js 爬虫爬取静态页面,

    先打一个简单的通用框子 //根据爬取网页的协议 引入对应的协议, http||https var http = require('https'); //引入cheerio 简单点讲就是node中的jq ...

  10. 深入剖析虚拟DOM提升性能(Vue,React);

    I.原始渲染方式(直接操作DOM): 1.state数据: 2.JSX模板: 3.数据 + 模板 相结合,生成真实的DOM来显示: 4.state发生改变: 5.数据 + 模板结合,生成真实的DOM来 ...