CAN自收自发问题小结
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自收自发问题小结的更多相关文章
- AD9361寄存器配置顺序,循环模式,自收自发
:] cmd_data; :] index; begin case(index) 'h000,8'h00};//set spi -- 'h3df,8'h01};//set init -- 'h037, ...
- CAN双机通讯调试小结(SJA1000与MCP2515通讯)
2011-12-07 21:36:02. 效果图: 1,51的SJA1000自收自发测试完成,见上一篇小结. 2,SJA1000自测完成后,再自测MCP2515就非常容易.主要是设置工作模式为回环模式 ...
- 嵌入式linux串口通信自发自收测试程序
/*串口自收自发程序主函数*/#include"uart_api.h"int main(){ int fd; char buff[BUFFER_SIZE]; char buff2 ...
- LPC1769 CAN的自测试模式
一.背景 客户要了一块单路CAN的板子,他希望在没有其他板子的情况下进行自行测试,然后按照我写的 APP选择自收发测试选项,却无法接收到发送的信息,但是外接了一块板子就可以接收到自己发送的 信息:由于 ...
- CAN总线(一)
原文出处:http://www.cnblogs.com/jacklu/p/4729638.html 嵌入式的工程师一般都知道CAN总线广泛应用到汽车中,其实船舰电子设备通信也广泛使用CAN,随着国家对 ...
- 【Arduino】开发入门【十】Arduino蓝牙模块与Android实现通信
[Arduino]开发入门[十]蓝牙模块 首先show一下新入手的蓝牙模块 蓝牙参数特点 1.蓝牙核心模块使用HC-06从模块,引出接口包括VCC,GND,TXD,RXD,预留LED状态输出脚,单片机 ...
- usb gadge驱动设计之我是zero
此处将以zero.c为例进行讲解. 第一次接触zero.c驱动的时候,是因为某项目需要,提供一种usb字符设备,希望能够通过字符设备打开,读取和发送文件.当时能想到的就是zero.c文件,本打算按照z ...
- GPRS DTU设备常见的问题分析
在GPRS DTU设备使用的过程中,经常会遇到各种各样的问题,今天就为大家来分析一下在GPRS DTU设备使用时会遇到的一些问题. 1.GPRS模块设置 a.检查串口参数是否与GPRS模块的工作参数一 ...
- 树莓派4B学习札记
防静电 树莓派比较容易被静电损坏,要做好以下预防措施 使用的时候不要用手去触摸PCB和针脚!特别是上电之后! 拿板卡的时候,要习惯性拿板卡的边缘 勤洗手,勤摸墙壁,释放身上的静电 系统安装 8GB以上 ...
随机推荐
- java判断通常的逻辑
package com.stylefeng.guns.core.common.constant.factory; import com.baomidou.mybatisplus.mapper.Enti ...
- Go语言基础之time包
Go语言基础之time包 时间和日期是我们编程中经常会用到的,本文主要介绍了Go语言内置的time包的基本用法. Go语言中导入包 Go语言中使用import关键字导入包,包的名字使用双引号(”)包裹 ...
- python +ps 三方面库整理
-------------------------------------------端口进程相关------------------------------------------------cp ...
- 白盒测试实践-day02
一.任务进展情况 小组分工完成后,了解findbugs的使用过程,以及junit的测试步骤. 二.存在的问题 由于对单元测试不是太了解,导致无法进行测试. 三.解决方法 看mooc上面的视频,了解测试 ...
- Mac OS Sierra安装源不能设置任何来源(anywhere)
执行命令 sudo spctl --master-disable 此时再打开 System Preferences -> Security&Privacy 即可看到Anywhere
- php java aes
class CryptAES{ protected $cipher = MCRYPT_RIJNDAEL_128; protected $mode = MCRYPT_MODE_ECB; protecte ...
- 2018-2019-2 网络对抗技术 20165236 Exp5 MSF基础应用
2018-2019-2 网络对抗技术 20165236 Exp5 MSF基础应用 一. 实践内容(3.5分) 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要 ...
- python基础之 迭代器回顾,生成器,推导式
1.迭代器回顾 可迭代对象:Iterable 可以直接作用于for循环的对象统称为可迭代对象:Iterable.因为可迭代对象里面存在可迭代协议,所以才会被迭代 可迭代对象包括: 列表(list) 元 ...
- keras笔记
函数式模型 函数式模型算是本文档比较原创的词汇了,所以这里要说一下 在Keras 0.x中,模型其实有两种,一种叫Sequential,称为序贯模型,也就是单输入单输出,一条路通到底,层与层之间只有相 ...
- 音乐类产品——“网易云音乐”app交互原型模板(免费使用)
网易云音乐虽是一款音乐app,但有人说它也是社交界的一股清流以及一匹黑马.音乐带给人的感染,激发着很多人在这里表达着他们的情绪和心声.网易云音乐上的真实用户点评,不仅被印在地铁的广告牌上,还在朋友圈频 ...