43-CAN通讯

1.CAN 协议简介

CAN是控制器局域网络(Controller Area Network)的简称,它是由研发和生产汽车电子

产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519),是国际上应用

最广泛的现场总线之一。

它具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境

温度恶劣、电磁辐射强及振动大的工业环境。

2.CAN物理层

与 I2C、SPI等具有时钟信号的同步通讯方式不同,CAN通讯并不是以时钟信号来进

行同步的,它是一种异步通讯,只具有 CAN_High和 CAN_Low两条信号线,共同构成一

组差分信号线,以差分信号的形式进行通讯。

3.两种差分结构:

(1).闭环总线网络

CAN物理层的形式主要有两种,图 中的 CAN 通讯网络是一种遵循 ISO11898标准的高速、

短距离“闭环网络”,它的总线最大长度为 40m,通信速度最高为 1Mbps,总线的两端各

要求有一个“120 欧”的电阻。



(2).开环总线网络

图 中的是遵循 ISO11519-2 标准的低速、远距离“开环网络”,它的最大传输距离为 1km,

最高通讯速率为 125kbps,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个

“2.2 千欧”的电阻。



3. 通讯节点

    从 CAN通讯网络图可了解到,CAN总线上可以挂载多个通讯节点,节点之间的信号经过总线传输,

网络中的节点个数理论上不受限制,只要总线的负载足够即可,可以通过中继器增强负载。

CAN通讯节点由一个 CAN控制器及 CAN收发器组成,控制器与收发器之间通过AN_Tx 及 CAN_Rx

CAN_Rx使用普通的类似 TTL逻辑信号,而 CAN_High及CAN_Low 是一对差分信号线,使用比较特别的

_Tx 线发送到收发器,然后由收发器把这个普通的逻辑电平信号转化成差分信号,通过差分线CAN_High和

CAN_Low 线输出到 CAN 总线网络。而通过收发器接收总线上的数据到控制器时,则是相反的过程,收发器

把总线上收到的 CAN_High及 CAN_Low信号转化成普通的逻辑电平信号,通过 CAN_Rx输出到控制器中。

在我们实验板中使用型号为 TJA1050的芯片作为 CAN收发器。CAN控制器与 CAN收发器的关系如同 TTL串口

与 MAX3232电平转换芯片的关系,MAX3232芯片把 TTL电平的串口信号转换成 RS-232 电平的串口信号,

CAN收发器的作用则是把 CAN 控制器的 TTL电平信号转换成差分信号(或者相反)。

4. 差分信号

  差分信号又称差模信号,与传统使用单根信号线电压表示逻辑的方式有区别,使用差分信号传输时,

和逻辑 1。见图 43-3,它使用了 V+与 V-信号的差值表达出了图下方的信号。



相对于单信号线传输的方式,使用差分信号传输具有如下优点:

 抗干扰能力强,当外界存在噪声干扰时,几乎会同时耦合到两条信号线上,而接

收端只关心两个信号的差值,所以外界的共模噪声可以被完全抵消。

 能有效抑制它对外部的电磁干扰,同样的道理,由于两根信号的极性相反,他们

对外辐射的电磁场可以相互抵消,耦合的越紧密,泄放到外界的电磁能量越少。

 时序定位精确,由于差分信号的开关变化是位于两个信号的交点,而不像普通单

端信号依靠高低两个阈值电压判断,因而受工艺,温度的影响小,能降低时序上

的误差,同时也更适合于低幅度信号的电路。

由于差分信号线具有这些优点,所以在 USB协议、485协议、以太网协议及 CAN 协

议的物理层中,都使用了差分信号传输。

43.1-CAN通讯的更多相关文章

  1. 《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  2. STM32F412应用开发笔记之三:SPI总线通讯与AD采集

    本次我们在NUCLEO-F412ZG试验模拟量输入采集.我们的模拟量输入采用ADI公司的AD7705,是一片16位两路差分输入的AD采集芯片.具有SPI接口,我们将采用SPI接口与AD7705通讯.两 ...

  3. ActiveMQ 即时通讯服务 浅析

      一. 概述与介绍 ActiveMQ 是Apache出品,最流行的.功能强大的即时通讯和集成模式的开源服务器.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provi ...

  4. 基于dubbo框架下的RPC通讯协议性能测试

    一.前言 Dubbo RPC服务框架支持丰富的传输协议.序列化方式等通讯相关的配置和扩展.dubbo执行一次RPC请求的过程大致如下:消费者(Consumer)向注册中心(Registry)执行RPC ...

  5. 新手入门:史上最全Web端即时通讯技术原理详解

    前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为 ...

  6. Web端即时通讯技术原理详解

    前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为 ...

  7. 浅谈WCF的三种通信模式:请求响应模式、数据报模式和双工通讯模式

    一: WCF的服务端与客户端在通信时有三种模式:请求响应模式.数据报模式和双工通讯模式. 说一下基本知识,  1.如果想要将当前接口作为wcf服务器,则一定要加上[ServiceContract] 契 ...

  8. ActiveMQ 即时通讯服务——浅析

    一. 概述与介绍 ActiveMQ 是Apache出品,最流行的.功能强大的即时通讯和集成模式的开源服务器.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provide ...

  9. 利用WCF的双工通讯实现一个简单的心跳监控系统 z

    利用WCF的双工通讯实现一个简单的心跳监控系统 http://www.cnblogs.com/zuowj/p/5761011.html 何为心跳监控系统? 故名思义,就是监控某个或某些个程序的运行状态 ...

随机推荐

  1. json 字符串包含数组转换为object对象是报异常java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to

    前台传到后台的json字符串 前台实现这种格式json字符串方式: function contentFun(){ respType = respTypeFun(); return "{\&q ...

  2. springmvc上传,下载

    参考: 上传: 如下代码,可将上传内容复制到上传地址 file.transferTo(new File(realPath + File.separator + realName)); http://b ...

  3. JS 如何将“在线图片资源”转换成“base64”

    在实现html2canvas截图的功能时,会报下面的错误: Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasEle ...

  4. 【本周面试题】第2周 - js单线程和异步相关问题

    硬性知识点考察: 为什么js是单线程的? 因为js设计最初是为了操作dom而生,如果是多线程的,当多个线程同时修改一个dom时就会产生冲突,所以设计成单线程,一次只能做一件事. 既然是单线程为什么要有 ...

  5. android rom开发

    How to Build Android ROMs on Ubuntu 16.04https://www.digitalocean.com/community/tutorials/how-to-bui ...

  6. 理解xwindows

    大名鼎鼎的 X Window 大家肯定不陌生.都知道它是 Unix/Linux 下面的窗口系统,也都知道它基于 Server/Clinet 架构.在网上随便搜一搜,也可以找到不少 X Window 的 ...

  7. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二:按键模块① - 消抖

    实验二:按键模块① - 消抖 按键消抖实验可谓是经典中的经典,按键消抖实验虽曾在<建模篇>出现过,而且还惹来一堆麻烦.事实上,笔者这是在刁难各位同学,好让对方的惯性思维短路一下,但是惨遭口 ...

  8. modbus ASCII和MODBUS RTU区别

    下表是MODBUS ASCII协议和RTU协议的比较: 协议 开始标记 结束标记 校验 传输效率 程序处理 ASCII :(冒号) CR,LF LRC 低 直观,简单,易调试 RTU 无 无 CRC ...

  9. [转]获取app的内部储存路径

    首先内部存储路径为/data/data/youPackageName/,下面讲解的各路径都是基于你自己的应用的内部存储路径下.所有内部存储中保存的文件在用户卸载应用的时候会被删除. 一. files1 ...

  10. Spark RDD Transformation 简单用例(二)

    aggregateByKey(zeroValue)(seqOp, combOp, [numTasks]) aggregateByKey(zeroValue)(seqOp, combOp, [numTa ...