【往期回顾】工业通讯 | CAN基础内容详解(一)

物理层主要完成设备间的信号传送,把各种信号转换成物理信号,并将这些信号传输到其他目标设备。在这一层中,CAN-bus对信号电平、通信时使用的电缆及连接器等进行了详细规定。

CAN-bus由ISO标准化后发布了两个标准,分别是ISO11898(125kpbs~1Mbps的高速通信标准)和ISO11519(小于125kpbs的低速通信标准)。这两个标准仅在物理层不同,在数据链路层是相同的。

1 CAN收发器与信号电平

位于CAN-bus物理层的器件要完成逻辑信号与电缆上物理信号的转换,该器件称为收发器。

如下图所示为CAN收发器的引脚图。

1、发送时将逻辑信号转换成物理信号,此收发器转换得到的信号为差分电平信号。
2、接收时将物理信号转换成逻辑信号,此收发器将差分电平信号转换为逻辑信号。

CAN-bus使用两根电缆进行信号传输,分别为CAN_High和CAN-Low(简称CAN_H和CAN_L)。CAN收发器根据两根电缆之间的电压差来判断总线电平,这种传输方式称为“差分传输”。电缆上的电平信号只有两种可能,分别为显性电平(代表逻辑0)和隐形电平(代表逻辑1)。如下图所示是ISO11898和ISO11519信号电平的对比。

信号使用双绞线进行传输,是因为双绞线上传输差分信号可以抑制共模干扰,能够提高通讯的稳定性、可靠性和抗干扰的能力。

2 线与原理

如下左图为CAN收发器的引脚图,其中CAN_H引脚在芯片里面等效电路为如下右图所示。

CAN收发器开路集电极和总线相连通过切换开关状态输出高低电平。

状态1:截止状态,晶体管截止(开关未接合)
源:总线电平=1,电阻高
状态0:接通状态,晶体管导通(开关已接合)
有源:总线电平=0,电阻低

因为所有的收发器的输出开关都是并联的,所以在总线上显性电平具有优先权,只要有一个单元输出显性电平(低电平),总线上即为显性电平(低电平)。而隐形电平(高电平)则具有包容的意味,只有所有的单元都输出隐性电平(高电平),总线上才为隐性电平(显性电平比隐性电平更强)。CAN控制器在发送的同时,会监听总线的当前电平是否与自己发送的电平一致,如果不一致则会进行相应的处理。如果不一致发生在仲裁域,就会迫使输出隐形电平的节点退出发送;如果发生在其他区域,则会出现触发错误。

3  同步与填充位

通信方式分为两种,同步串行通信与异步串行通信。CAN-bus属于异步串行通信的方式。

异步串行通信的优点是减少了一根时钟线,缺点是各接收器的时钟不可能完全一致,总是会有偏差,有些偏快,有些偏慢,这些误差会累积直到通信出错。
如下图所示为标准波特率时采集的数据。

如下两幅图分别为波特率偏大20%和波特率偏小20%时采样的数据。

由上述几幅图可以看出,由于各接收器的时钟可能会存在偏差,这就导致传输一两个位时,误差可能看不出来,但是传输的位数变多了之后,这些误差会累积直到通信出错。

那么如何解决这个问题呢?同步!同步串行通信和异步串行通信的波形图如下图所示。同步就像给钟表校时一样,隔一段时间所有节点的时钟就同步一次。这样尽管大家的时钟仍有误差,但是可以消除累积误差。

CAN-bus规定信号的跳变沿时刻进行同步,因此只要信号发生变化,节点时钟就会被同步。如下图所示,累积的误差可以限制在两个跳变沿之间,减少错误的发生。

然而这种同步方式又会带来新的问题,比如说发送多个相同位时,并无跳变沿可用于同步,这样就会导致误差不断累积,最后导致通信出错。

接下来先让我们了解一下位时间这个概念。

一个标称的位时间=1/波特率

  • 同步段用于同步各节点,正常情况下跳变沿落在此段内。
  • 传播段用于补偿网络内的传输延时。
  • 相位缓冲段用来补偿跳变沿的相位误差,可以被再同步处理延长或缩短。
  • 采样点时刻读取的电平代表这个位的电平,一般位于相位缓冲段1的结尾
  • 信息处理时间是从采样点开始留出的一段用于计算后续位电平的时间。

只有采样点设置正确了,我们才能进行正确的采样,获得正确的数据。不同的波特率下,1位时间的时间份额不相同,采样点也不相同,如下图为不同波特率下的采样点设置。

不同波特率下的时间份额设置可参考下表。

关于虹科工业通讯

虹科是一家在工业自动化领域,特别是工业总线通讯行业经验超过10年的高科技公司。虹科工业通讯事业部与世界知名的工业通讯专家【PEAK-System,Hilscher,Kunbus,SYS TEC,Koenig-Pa,Port,Copa-data,TenAsys,SoC-e、RELYUM】等深度合作,提供业内顶尖水平的工业总线协议软硬件解决方案,协议类型包含【CAN、CANopen、EtherCAT、PROFIBUS、PROFINET、EtherNET/IP、TSN】等,产品类型包含代码、软件、芯片、板卡、模块等。虹科工业通讯以客户需求为导向,以技术能力为基础,为国内企业提供最适合的产品和最满意的服务。特别是在工业4.0的大环境下,虹科工业通讯与时俱进,推出了TSN(时间敏感网络)的解决方案,后者将在推动万物互联的潮流中扮演着如高速公路般的连接作用。

工业通讯 | CAN基础内容详解(二)——物理层相关推荐

  1. 【工业通讯】CAN基础内容详解(二)——物理层

    物理层主要完成设备间的信号传送,把各种信号转换成物理信号,并将这些信号传输到其他目标设备.在这一层中,CAN-bus对信号电平.通信时使用的电缆及连接器等进行了详细规定. CAN-bus由ISO标准化 ...

  2. 数据库 之 基础内容详解

    文章目录 一.数据库基础概念 (一)字符集: (二)字符集/序: (三)mysql客户端连接数据库常用选项: 二.SQL语句 (一)规范: (二)分类: (三)数据库的组件(对象): (四)关系运算 ...

  3. socket层内容详解二

    tcp协议三次握手和四次挥手 所有的断开都是单方面的 粘包现象 为什么会出现粘包现象: 本质:接收端不知道发送端发送的数据长度是多少 tcp协议本身的特点导致: 流式传输.无边界 合包机制 缓存机制 ...

  4. Android基础入门教程——8.3.5 Paint API之—— Xfermode与PorterDuff详解(二)

    Android基础入门教程--8.3.5 Paint API之-- Xfermode与PorterDuff详解(二) 标签(空格分隔): Android基础入门教程 本节引言: 上一节,我们学习了Xf ...

  5. 网络管理之基础知识详解

    网络管理之基础知识详解 目录 3.1 网络的特征 3.2 拓扑结构 4.1 OSI简介 4.2 数据传输过程 4.3 分层作用 4.4 PDU 5.1 单播 5.2 多播 5.3 广播 5.4 三种通 ...

  6. Unicode编码详解(二):编码预备知识

    Unicode编码详解(二):编码预备知识 本文为原创文章,转载请注明出处,或注明转载自"黄邦勇帅(原名:黄勇) 本文是对<C++语法详解>一书相关章节的增补,以增强读者对字符的 ...

  7. 小白入门!网络安全基础知识详解(附知识问答)

    小白入门!网络安全基础知识详解(附知识问答) 一.引论 提到网络安全,一般人们将它看作是信息安全的一个分支,信息安全是更加广义的一个概念:防止对知识.事实.数据或能力非授权使用.误用.篡改或拒绝使用所 ...

  8. python命名空间和闭包_Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】...

    本文实例讲述了Python函数基础用法.分享给大家供大家参考,具体如下: 一.什么是命名关键字参数? 格式: 在*后面参数都是命名关键字参数. 特点: 1.约束函数的调用者必须按照Kye=value的 ...

  9. python编程语法大全-Python编程入门——基础语法详解

    今天小编给大家带来Python编程入门--基础语法详解. 关于怎么快速学python,可以加下小编的python学习群:611+530+101,不管你是小白还是大牛,小编我都欢迎,不定期分享干货 每天 ...

最新文章

  1. spss分析qpcr数据_SPSS 数据分析,掌握这 6 大模块就够了!
  2. Java获取List泛型的真实类型
  3. 零起点学算法 3个数比较大小
  4. springboot项目中使用日志
  5. magento tab(easy tables)标签应用
  6. 2017.9.17 function 思考记录
  7. 写一个自动阅读的方法(需要运用html和css和JavaScript)
  8. SketchUpPro 草图大师(2015-2020合集)
  9. 云网资源如何搭乘「数字孪生」的快车道?
  10. 双屏计算机主机是什么,电脑双屏显示有人知道关于一个主机两个显示器的问题吗 爱问知识人...
  11. 出现这些情况,裸辞不是找虐,是解脱!
  12. IDEA自定义模板:快速指定一个数据库映射字段(驼峰生成下划线命名)
  13. 快应用上架时,你最关心的问题都在这里!
  14. 使用ffmpeg将视频切片并加密
  15. SharePoint Designer 2013 和 Visio 2013 中的工作流开发
  16. 长安链ChainMaker的多链隔离设计
  17. 卷积神经网络 CNN 简述
  18. Uber 背后的 PB 级数据治理之路
  19. Happens-Before原则
  20. 每节课都是一个项目 手把手用STM32打造联网气象站-4-STM32基础三件套-TIM定时器和SYSTICK初始化

热门文章

  1. 《我的第一本算法书》阅读笔记 1-8 二叉查找树
  2. 使用 Audacity 录制声卡声音
  3. Qt扫盲-QNetworkAccessManager理论总结
  4. 《杜拉拉升职记3》读书笔记
  5. verilog 串口收发数据 UART
  6. 【人工智能】自动化编程的历史,现状,发展与未来
  7. mysql(1)关于into outfile 导出数据解决权限问题
  8. linux一切皆是文件_Linux中“一切皆文件”是什么意思?
  9. SQL:检索没有选修某课程且选修课程数为两门的学生的姓名和平均成绩,并按平均成绩降序排列
  10. 居民小区二次供水需求预测[奖金¥51000]