CAN总线实现方案

CAN总线节点框架主要由三部分组成:

MCU,应用控制器;

CAN控制器,总线控制器,往往通过SPI总线暴露寄存器,实现CAN协议;

CAN收发器,物理层收发器,可以初略理解为RS485/RS232的接口芯片,但是却也有部分定时适配任务。

目前把CAN控制器作为片内外设集成到MCU中,渐成趋势。但是CAN收发器大多数5V的,需要留意三类芯片连接时所需的电平匹配问题。如果是兼容3/5V设计,就问题不大,否则需要使用电平转换或者高速光耦。

Arduino

Arduino上有过一款SeeedStudio的CAN Shield,使用MCP2515控制器和TJA1050。于是我在5V版本的Arduino Nano,和泥人版的简化CAN Shield上做了测试。

连线部分需要注意两点:

SPI_CS连接到D9,旧版本的Demo缺省连接到D10,也可以自定义。

INT连接到D2,即INT.0,不是D0,当然也可以自定义。由于接收端大多数采用中断方式,所以这个脚还必须连接。

Enter setting mode success

set rate success!!

Enter Normal Mode Success!!

CAN BUS Shield init ok!

Enter setting mode success

set rate success!!

Enter Normal Mode Success!!

CAN BUS Shield init ok!

发射端终端截屏

Get Data From id: 7

0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7

------------------------------------------------------------------

Get Data From id: 8

0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8

------------------------------------------------------------------

Get Data From id: 9

0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9

------------------------------------------------------------------

Get Data From id: 4

0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4

------------------------------------------------------------------

Get Data From id: 5

0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5

------------------------------------------------------------------

Get Data From id: 6

0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6

------------------------------------------------------------------

Get Data From id: 7

0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7

------------------------------------------------------------------

Get Data From id: 8

0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8

------------------------------------------------------------------

Get Data From id: 9

0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9

接收端终端截屏

下一步:STM32F103/F407/F072

做Arduino实验之前,基于MicroPython的F407的CAN例程环回自测也通过了。但是CAN节点是孤立的,则总线会被断开,用示波器和逻辑分析仪是看不到波形的。现在则问题不大了,因为两组 Arduino+MCP+TJA 组合可以构成了一对完整的总线节点,剩下的只是把新节点挂上去测试罢了。

接下来,我可能会基于STM32F103C8做些试验,可能会对接3.3V CAN收发器,或者3/5V兼容收发器。此外,F407/F072可以分别针对USB/CAN转换进行收发,同样需要兼容收发器。最后,LPC11C24和STM8S也可能。LPC11C24因为是三合一,把收发器也集成的芯片,而STM8S则可能是比较便宜的选择,配合CH340既可以用了。

3V 收发器

NXP TJA1040

TI SN65HVD230

因为STM32F103/F407/F072的CANH/CANL引脚都是5V容错的,所以TJA105X直接接上问题也不大。

应用场景

ROS,机械臂、机器人场景

电机驱动:多路伺服、步进、无刷电机

智能农业:区域自动化

交通工具:船舶

交通工具:车用ODB

物流工具:UAV

其他:大型家电、服务器背板、智能电网、电池管理系统

参考

python can总线_Arduino CAN总线实验结果相关推荐

  1. 微型计算机常用的总线类型,常见总线有哪些类型

    1.总线定义 计算机和设备之间传输信息的公共数据通道,是连接计算机硬件内多种设备的通信线路.它实现了总线上所有设备共享. 2.总线的分类 2.1数据总线(DB) 用来传递数据信息,双向的.数据总线的宽 ...

  2. 10 计算机组成原理第六章 总线 总线的概念与分类 总线性能指标 总线仲裁 总线操作和定时 总线标准

    文章目录 1 总线的概念与分类 1.1总线的定义 1.2 总线的特点 1.3 总线的特性 1.4 总线的分类 1.4.1 串行总线与并行总线 1.4.2 按总线功能分类 1.5 系统总线的结构 1.6 ...

  3. 计算机内部总线和外部总线,科学网-怎样将计算机内部总线扩展为外部网络?-姜咏江的博文...

    怎样将计算机内部总线扩展为外部网络? 姜咏江 透明计算公示成果的第一条就是"将原来计算机的内部总线扩展为外部网络".现在我们来谈谈能不能将计算机内部总线扩展成外部网络. 1.什么是 ...

  4. Cortex-M3 I-Code,D-Code,系统总线及其他总线接口

    Cortex-M3 的总线接口 下图是Cortex-M3的连接方式样板图,大家可以根据需求自行更改, CM3 处理器的总线接口是基于 AHB-Lite 和 APB 协议.下图中总线复用器的作用是,让指 ...

  5. 微型计算机没什么总线,微型计算机系统总线包括什么?

    2014-01-02 计算机系统总线分为哪几类? 一.什么是冯诺依曼体系结构?它的主要内容是什么? 20世纪30年代中期,德国科学家冯诺依曼提出,抛弃十进制,采用二进制作为数字计算机的数制基础.同时, ...

  6. SOC上的总线真的是总线?

    上学时学点电的专业的都应该有学过总线这个东西,我提一个最简单的:两根线广播线,凡是挂入这两根广播线的设备都可以收.发电平信号,信号的规则就是这个总线的协议.比如MODBUS.CANBUS之类.类似我画 ...

  7. [工业互联-2]:工业有线互联总线之CAN总线

    目录 第1章 CAN总线概述 1.1 概述 1.2 CAN总线的优点 1.3 应用广泛 1.4 CAN总线的发展历史 1.5 传输距离与传输速度的关系 第2章 CAN总线的网络拓扑 2.1 总线拓扑 ...

  8. 详解CAN总线:CAN总线通信优先级机制

    目录 1.数据帧和遥控帧的优先级 2.标准格式和扩展格式的优先级 在详解CAN总线:CAN总线报文格式-数据帧文章中,讲解到仲裁段.仲裁段用于写明需要发送到目的CAN节点的地址.确定发送的帧类型(当前 ...

  9. AB计算机总线,什么是总线?简要说明AB、DB、CB的含义及其性能?

    总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线.地址总线和控制总线,分别用来传输数据.数据地址和控 ...

最新文章

  1. 2022-2028年中国数字内容行业深度调研及投资前景预测报告(全卷)
  2. 菜单样式1:鼠标悬停向下弹出列表
  3. 互联网之父公开拍卖万维网源代码,3400万买下后发现居然有bug
  4. echarts geo地图示例_干货|Pyecharts绘制好看的交互式地图教程
  5. [原]iBatis.Net(C#)系列一:简介及运行环境
  6. 超详细的HTTP面试题
  7. ABAP SAPGUI 里使用 F4 value help 选择时间
  8. python爬虫淘宝手机_【Python3 爬虫】14_爬取淘宝上的手机图片
  9. AnalyticDB for MySQL技术架构解析
  10. 进程/线程间的同步方式
  11. python 特殊方法(dunder-getitem)
  12. 杭电2122Ice_cream’s world III
  13. 在vb中实现真正锁定的带自定义菜单的文本控件
  14. windows服务器上安装的有mysql环境怎么创建数据库_Windows环境MySQL数据库安装方法...
  15. php如何不输出科学计数法,php怎么设置不用科学计数法?
  16. 博客园博客转至个人网站博客声明
  17. 2-思科防火墙:思科ASDM
  18. 74cms 5.0.1 版本命令执行漏洞复现
  19. Ubuntu20.04安装Qemu-SGX
  20. Edison:FL Studio中的常用音频录制与剪辑插件

热门文章

  1. 利用Python对文件夹下的TXT文件批量改名、改内容操作
  2. 说到修图这件事,你还真是比不上AI
  3. OpenWrt分区扩容
  4. 【免费压缩图片的在线地址】
  5. python视频行人检测_python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
  6. PS 画哆啦A梦
  7. 家里宽带几百MB,下载速度却特别慢,怎么解决
  8. android 9.0 系统铃声加载过程及添加卡二默认铃声
  9. 笔记本电脑 台式计算机类比推理,2020年广西公务员考试类比推理专项练习(47)...
  10. 用Castor处理XML文档