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. 4、初识python

    今天开始进行python的系统学习开始写随笔希望对看到的人有所帮助,写的不对的地方可以指出来大家共同进步. 预习: 1.安装python2和python3,实现多版本共存 2.用python语言编写代 ...

  2. __x__(7)0905第二天__HTML的发展

    HTML的发展 浏览器各个厂商有不同的标准,一个网页的兼容性非常差. 于是,W3C出来了,作为公益组织定义了HTML标准. 在 1993.6 实现并发布了第一个 HTML. 在 1995.11 开始创 ...

  3. __x__(35)0908第五天__ 层级 z-index

    如果三个 div 全部设置 position: absolute; 绝对定位,且未设置 z-index,  则从代码结构上    下面的元素 会盖住 上面的元素. z-index 层级: 通过 z-i ...

  4. React组件传值

    React的单向数据流与组件间的沟通. 首先,我认为使用React的最大好处在于:功能组件化,遵守前端可维护的原则. 先介绍单向数据流吧. React单向数据流: React是单向数据流,数据主要从父 ...

  5. 小程序上拉加载更多数据(onReachBottom)

    <!--pages/test/test.wxml--> <block wx:for="{{list}}" wx:key="item.id"&g ...

  6. js高级4

    1.Date  类 getDate()返回一个月中的某一天 1-31 getDay() 返回一周中的某一天0-6 getFullyear()返回四位数的年份 getMonth()返回月份 比实际情况小 ...

  7. centos6.8 编译安装lnmp php7.2 mysql5.6 nginx1.1.4

    编译操作参考版,没有每一步详细操作,慎入 关闭selinux和防火墙 service iptables stop chkconfig iptables off vi /etc/selinux/conf ...

  8. python3 参数*args 、 **args 在函数定义和调用中的应用

    一.函数调用时 说明:*args 表示解包(解包 列表.元组.字符串类型) #定义函数cn_musql def cn_musql(host,port,user,pwd,db): print(host) ...

  9. TypeScript初探

    TypeScript初探 TypeScript什么? 官方给的定义:TypeScript是一种由微软开发的自由和开源的编程语言,它是JavaScript类型的超集,可以编译成纯JavaScript,本 ...

  10. js自定义格式化时间戳的格式

    题目为 : 写一个模块,外部调用这个模块,请求参数是时间戳,模块要求 今天的时间,统一用24小时写作 03:00.15:04 昨天的时间,统一写昨天 昨天之前的时间,但在本周之内的时间,统一用周一.周 ...