CAN总线特点:基于报文编码而非对节点编码,增删节点对系统没有影响,靠干扰稳定性好,速率高。

小工具:CANtool

收发器:CAN总线收发器CTM1050,通信速率1Mbps,至少可连接110个节点。内部集成的电气输入级隔离电路,可隔离高达2 500V的直流电压。输入级兼容3.3V和5V的CAN控制器,输出级驱动具有温度保护,内部TVS管可防止总线过压功能(无需外部光耦)。

CAN中断服务程序   C8051F550的CAN支持的中断方式有状态中断和模块中断。状态中断方式是在报文成功传输或检测到CAN总线出错时发生的。模块中断也称消息中断。CAN控制器允许用户按需求配置消息对象成为中断源。通过设置消息控制寄存器的中断悬挂位可实现此功能。在CAN中断寄存器中以最高优先级来指向这些挂起的中断,而不考虑时序。状态中断有最高优先级,读取状态寄存器会自动清除状态中断值(8000h)。消息中断优先级是随消息编号的增加而减小。消息中断是由清除消息对象的INTPND位来清除的   http://www.elecfans.com/emb/danpianji/C8051F550.html

https://max.book118.com/html/2017/0524/108876618.shtm

主机:发送采用定时,接收采用中断。https://wenku.baidu.com/view/b1a4b7a527284b73f3425063.html

从机:发送接收都用中断(区分状态中断,收中断和发中断)

每个报文8字节:首字节的高2位优先级,低6位为地址编号(主机为0),第二字节为命令字;其它字节为发送内容

https://wenku.baidu.com/view/69569a3b5a8102d276a22f3d.html

http://www.go-gddq.com/html/QiTaDanPianJi/2013-06/1133351.htm

can长报文的发送方法:

初始化:

发送:

接收:

C8051F_CAN的更多相关文章

随机推荐

  1. 数据表示Numpy

    1 基本 1.1 基本介绍 掌握表示, 清洗, 统计和展示数据的能力 Numpy, Matplotlib, Pandas, Projects 摘要: 有损的提取数据特征的过程 可以将一组数据, 摘要出 ...

  2. Linux下监控网卡流量的软件iftop

    官网上说使用iftop需要libpcap和libcurses这两个包. 用命令查找了一下 #  rpm -qa | grep libpcap libpcap-0.9.4-15.el5 只找到了这个,缺 ...

  3. oracle 导入imp 命令

    最常用的      imp  name/password@IP:1521/orcl[库] file="c:\123.dmp" full=y ignore=y. 例:imp abc/ ...

  4. 「LOJ#10043」「一本通 2.2 例 1」剪花布条 (KMP

    题目描述 原题来自:HDU 2087 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? 输入格式 输入数据 ...

  5. darknet源码学习

    darknet是一个较为轻型的完全基于C与CUDA的开源深度学习框架,其主要特点就是容易安装,没有任何依赖项(OpenCV都可以不用),移植性非常好,支持CPU与GPU两种计算方式.1.test源码( ...

  6. OA系统

    当用户登录时,根据用户名让他去查找用户的ID,编号,角色,权限,部门信息,等信息查找出来,用户表和角色表是一个一对多的关系,角色和权限也是一个一对多的关系,所以总共加起来有五张表,获取权限是通过用户名 ...

  7. Java创建对象解释

    创建对象包括两个步骤,首先为对象声明,然后为对象分配内存. (1)对象声明 格式:类名 对象名: 这里只是声明了对象,但该对象并不能够使用,原因为未分配内存空间. (2)为对象分配内存 格式:new ...

  8. mongodb "$"的作用

    { "_id": ObjectId("58e48e32830f398e8f401a95"), "_class": "com.ydd ...

  9. 3.15-3.21 hive项目实战

    一.创建表并导入日志数据,引出问题 ##建表 hive (default)> create table IF NOT EXISTS default.bf_log_src( > remote ...

  10. c++中编译链接总结

    1 编译链接过程分为 预处理--->编译---->汇编---->链接.如下图所示 2 预处理都做了什么 (1)将所有的#define删除并展开所有的宏 (2)处理所有的条件预编译指令 ...