CAN总线系列讲座第五讲——CAN总线硬件电路设计
一  实战学习背景 
CAN总线节点的硬件构成方案有两种,其中的方案:
(1)、MCU控制器+独立CAN控制器+CAN收发器。独立CAN控制器如SJA10000、MCP2515,其中MCP2515通过SPI总线和MCU连接,SJA1000通过数据总线和MCU连接。
该方案编写的CAN程序是针对独立CAN控制器的,程序可移植性好,编写好的程序可以方便的移植到任意的MCU。但是,由于采用了独立的CAN控制器,占用了MCU的I/O资源,并且电路变得复杂。
为了增强针对性,选择”51系列单片机+ SJA1000”的CAN总线节点的硬件构成方案,做入门介绍.
二  51系列单片机CAN总线学习板硬件电路设计 

 
51系列单片机CAN总线学习板采用STC89C52RC作为节点的微处理器。在 CAN 总线通信接口中采用PHILIPS 公司的“独立CAN总线通信控制器SJA1000” 和“高性能CAN总线收发器TJA1040”芯片。图1为51系列单片机CAN总线学习板硬件电路原理图。从图中可以看出,电路主要由七部分构成:微控制器STC89C52RC、独立 CAN 通信控制器 SJA1000、 CAN 总线收发器TJA1040、DC/DC电源隔离模块、高速光电耦合器 6N137、串口芯片MAX232电路、按键及LED灯显示电路。
STC89C52RC初始化SJA1000后,通过控制 SJA1000 实现数据的接收和发送等通信任务。SJA1000 的 AD0~AD7 连接到STC89C52RC的 P0 口,其CS引脚连接到STC89C52RC的 P2.7, P2.7为低电平“0”时,单片机可选中SJA1000,单片机通过地址可控制SJA1000执行相应的读写操作。SJA1000 的 RD、 WR、 ALE 分别与STC89C52RC的对应引脚相连。SJA1000 的INT引脚接STC89C52RC的 INT0,STC89C52RC可通过中断方式访问SJA1000。
为了增强CAN总线的抗干扰能力,SJA1000的TX0和RX0引脚通过高速光耦 6N137与TJA1040的引脚TXD和RXD 相连,这样能够实现总线上各CAN节点间的电气隔离。需要特别注意一点:光耦部分电路所采用的两个电源VCC和CAN_V 必须完全隔离,否则采用光耦也就失去了意义。电源的完全隔离可采用小功率电源隔离模块,51系列单片机CAN总线学习板选用B0505D-1W电源隔离模块。这些电路虽然增加了CAN节点的复杂程度,但是提高了CAN节点的稳定性和安全性。
TJA1040与CAN总线的接口部分采用了一定的安全和抗干扰措施:TJA1040的CANH 和CANL 引脚各自通过一个5欧姆的电阻与 CAN 总线相连,电阻可起到一定的限流作用,保护TJA1040 免受过流的冲击。CANH和CANL与地之间分别并联了一个30P的电容,可以起到滤除总线上的高频干扰的作用,也具有一定的防电磁辐射的能力。另外,在两根CAN总线接入端与地之间分别反接了一个保护二极管IN4148,当 CAN 总线有较高的负电压时,通过二极管的短路可起到一定的过压保护作用。
串口芯片MAX232电路用于“51系列单片机CAN总线学习板”下载程序,也可以实现CAN总线转232串口数据转换功能。

CAN总线系列讲座第五讲——CAN总线硬件电路设计的更多相关文章

  1. CAN总线系列讲座第六讲——SJA1000的滤波器设置

    CAN总线的滤波器设置就像给总线上的节点设置了一层过滤网,只有符合要求的CAN信息帧才可以通过,其余的一概滤除. 在验收滤波器的帮助下,只有当接收信息中的识别位和验收滤波器预定义的值相等时,CAN 控 ...

  2. 存储系列之 硬盘接口与SCSI总线协议

    本文主要介绍硬盘的接口.总线和协议,SSD与SATA硬盘一般是兼容的,NVmeSSD除外. 一.磁盘控制器 上一章介绍了存储系统的主要介质硬盘,而硬盘的读写通过磁头臂,磁头臂是由磁盘驱动器来控制的.磁 ...

  3. 【ArcGIS Server 开发系列】Flyingis六大系列讲座精品PDF奉献

    转自:http://www.cnblogs.com/gispeng/archive/2008/07/24/1250116.html [ArcGIS Server 开发系列]Flyingis六大系列讲座 ...

  4. 【转】PC架构系列:CPU/RAM/IO总线的发展历史!

    原文地址:http://blog.csdn.net/xport/article/details/1387928 1. 从 IBM PC XT 架构开始...一开始PC的设计中,CPU/RAM/IO都是 ...

  5. C#总结(六)EventBus事件总线的使用-自己实现事件总线

    在C#中,我们可以在一个类中定义自己的事件,而其他的类可以订阅该事件,当某些事情发生时,可以通知到该类.这对于桌面应用或者独立的windows服务来说是非常有用的.但对于一个web应用来说是有点问题的 ...

  6. 亚马逊AWS在线系列讲座——基于AWS云平台的高可用应用设计

    设计高可用的应用是架构师的一个重要目标,可是基于云计算平台设计高可用应用与基于传统平台的设计有很多不同.云计算在给架构师带来了很多新的设计挑战的时候,也给带来了很多新的设计理念和可用的服务.怎样在设计 ...

  7. A亚马逊WS网上系列讲座——怎么样AWS云平台上千万用户的应用建设

    用户选择云计算平台构建应用程序的一个重要原因是高弹性的云平台和可扩展性. 面向Internet应用程序通常需要支持用户使用大量,但要建立一个高度可扩展.具有一定的挑战,高度可用的应用程序,只有立足AW ...

  8. unity3D实际的原始视频游戏开发系列讲座10它《战斗:外来入侵》在第一季度游戏开发

    解说文件夹 <保卫战:异形入侵>游戏开发 第一讲   游戏演示和资源的介绍 第二讲  "异形"怪物的实现 第三讲  "异形"怪物生命值的体现 第四讲 ...

  9. 转:C#线程系列讲座(1) BeginInvoke和EndInvoke方法

    转载自:http://www.cnblogs.com/levin9/articles/2319248.html 开发语言:C#3.0IDE:Visual Studio 2008本系列教程主要包括如下内 ...

随机推荐

  1. AHUACM寒假集训II(线段树)

    B.Mayor's posters POJ2528 题目大意: D.Count Color POJ2777 题目大意:长为 L ( L ≤ 1 0 5 ) L( L\leq10^5) L(L≤105) ...

  2. nodejs调用jar

    目前nodejs调用jar主要有两种方式: 通过创建子进程运行java -jar命令调用包含main方法的jar 使用node-java通过c++桥接调用jar 方法一(子进程运行): const { ...

  3. 在用Scrapy进行爬虫时碰到的错误

    1.module() takes at most 2 arguments (3 given) 解决方法:导入Spider类时,是from scrapy import Spider而不是from scr ...

  4. c# 读取对象的[公有属性]的名称,类型,值

    /// <summary> /// 获取某个对象的[公有属性]的名称,类型,值 /// </summary> /// <typeparam name="T&qu ...

  5. GBDT 梯度提升决策树简述

    首先明确一点,gbdt 无论用于分类还是回归一直都是使用的CART 回归树.不会因为我们所选择的任务是分类任务就选用分类树,这里面的核心是因为gbdt 每轮的训练是在上一轮的训练的残差基础之上进行训练 ...

  6. Java递归与基础复习

    Day01-基础复习,递归 1.递归 定义:指在当前方法内调用自己,即函数内部调用本函数 分类: 直接递归和间接递归 直接递归成为方法自身调用自己 间接递归可以A方法调用B方法,B方法调用C方法,C方 ...

  7. tp 实现定时任务

    这里我是用tp6进行测试的:适合做本地项目 博客参考:: https://www.thinkphp.cn/topic/64455.html 1:composer  安装workman插件 compos ...

  8. nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

    问题场景 服务器重启后,重启nginx时报错nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: N ...

  9. CentOS7安装MYSQL8.X详细教程

    1-首先查看系统是否存在mysql,无则不返回 # rpm -qa|grep mysql 2-安装wget # yum -y install wget 3-抓取mariadb并删除包,无则不返回 # ...

  10. 2.3 C++STL vector容器详解

    文章目录 2.3.1 引入 2.3.2 代码实例 2.3.3 运行结果 总结 2.3.1 引入 vector 容器 动态数组 可变数组 vector容器 单口容器(尾部操作效率高) vector动态增 ...