CAN总线中隐性与显性问题

初学CAN总线时,对于CAN总线中的隐性为逻辑“1”,显性为逻辑“0”的疑惑一直令人困扰。在工控应用中,我们通常将有电压信号称为逻辑“1”,没有电压信号称为逻辑“0”,这与CAN总线的定义看起来不太一致。下面对这个问题进行详细解答。

CAN总线采用双绞线结构,利用差分传输方式进行数据传输,也称为差分传输。通过双绞线的电压差来实现数据传输,有效抑制共模干扰。然而,这也带来了一个问题,即在没有数据传输时,两根线的电压相同,形成隐性信号,逻辑信号为1。一旦有数据传输发生,电压差异出现,此时CAN总线表现为显性信号,逻辑信号为0。

那么为什么隐性为逻辑1,显性为逻辑0呢?

首先,我们可以暂时忘记逻辑1和0的定义,只需理解隐性电平表示无数据传输,显性信号表示有数据传输。

考虑CAN总线上存在多个节点,每个节点通过收发器与总线相连。每个节点都能主动发送报文。在同一时刻,如果多个节点同时发送报文,可能会发生数据干扰。为了解决这个问题,我们来看一个单个CAN节点的收发器信号示意图:

在这里插入图片描述

在这个示意图中,单个节点输出隐性电平时,开关断开,由于存在上拉电阻,输出电平为高。输出显性电平时,开关闭合,输出对地短路变成低电平。当多个节点存在时,某个节点的开关闭合(输出显性电平)将总线电平拉低,即使其他节点断开,总线电平仍然保持低电平。因为所有节点都是并联的,只要一个或多个节点的开关闭合,总线就会输出低电平。这种逻辑与逻辑“与”相同,也就是“线与”。因此,当多个节点发送报文时,隐性电平会被显性电平覆盖,此时不管谁是1谁是0,显性&隐性=显性。

因此,我们可以将1定义为显性,0定义为隐性。

接下来,我们再来看第二个概念:仲裁段。

每个节点通过数据帧的形式发送报文,每个数据帧都有一个标识符(ID),表示其优先级。当多个节点同时发送数据帧时,优先级较高的数据帧先发送,低优先级的数据帧等待空闲后发送。规定优先级数值越小,优先级越高。此时,先发送数据的节点使总线电平信号为显性。因此,我们称0为显性,1为隐性。

在逻辑世界中,1和0代表两个相反的概念,并不代表实际电压。因此,“1”和“0”是逻辑关系的两种可能取值,不表示具体电压的理解才是正确的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/512882.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第1章:绪论 1.1数据库系统概述

文章目录 1.1 数据库系统概述1.1.1 数据库的4个基本概念1.1.2 数据管理技术的产生和发展1.1.3 数据库系统的特点 1.1 数据库系统概述 1.1.1 数据库的4个基本概念 数据(Data) 是数据库中存储的基本对象 数据的定义:描述事物的符号记录 数据的种类:文本、…

RabbitMQ(控制台模拟收发消息与数据隔离)

1.RabbitMQ架构图 publisher:生产者,也就是发送消息的一方 consumer:消费者,也就是消费消息的一方 queue:队列,存储消息。生产者投递的消息会暂存在消息队列中,等待消费者处理 exchange&…

基于java的宠物常规护理知识管理系统

项目源码:https://gitee.com/oklongmm/biye2 在设计一个宠物常规护理知识管理系统时,我们需要考虑系统的可扩展性,易用性和稳定性。以下是系统设计的功能模块: 一、用户模块: 1. 注册与登录:用户可以通过…

【面试题】webpack的五大核心、构建流程、性能优化

【面试题】webpack的五大核心、webpack的构建流程、webpack的性能优化 webpack是什么?webpack的五大核心webpack的构建流程webpack性能优化 webpack是什么? js静态模块打包工具。 功能 将多个文件打包成更小的文件,(压缩)翻译 babal-loader es6进行降级兼容。 …

HarmonyOS—开启AOT编译模式

AOT(Ahead Of Time)即提前编译,能够在Host端(即运行DevEco Studio的电脑)将字节码提前编译成Target端(即运行应用的设备)可运行的机器码,这样字节码可以获得充分编译优化&#xff0c…

Geeker Admin添加若以分离版本的后台作为后台

添加验证码 下载若依赖前后端分离版本,配置好自己数据库,redis连接地址 登录添加验证码 配置自己的若依后端连接地址 添加验证码请求方法 登录页面登录输入框添加验证码,uuid,调用的验证码刷新方法 注意:这里要用响应式定义验证…

CTP-API开发系列之各版本更新说明(持续更新)(值得收藏)

CTP-API开发系列之各版本更新说明(持续更新)(值得收藏) CTP-API开发系列之各版本更新说明(持续更新)(值得收藏)v6.7.2v6.7.1v6.7.0(推荐,主用)v6.…

Crossover24版现已上线!附免费升级攻略 Crossover软件下载使用方法

好久不见啦,最近一直在忙着研究Mac玩游戏,什么幻兽帕鲁、女神异闻录之类的,有些沉迷了,实在对不住大家… 不过今天还是给大家带来了好消息!那就是让Mac玩游戏不再是笑话的神器,CodeWeavers公司正式发布了C…

禅道:提bug、管理case 7.0

一、禅道的介绍 (1)定义禅道是一个项目管理工具,也是一个bug管理工具,还是一个用例管理工具。 (2)作用:为了解决众多企业在管理中出现混乱,无序的现象,开发出来 &…

QPainter::translate: Painter not active

画笔关联画布 就是这里少写了this指针

Android开发教程入门,揭秘ARouter路由机制

为什么说 Flutter 将是未来的主流跨平台开发框架? Google 的 Flutter 开发应用的体验和流畅度基本和原生体验一致,感觉不到不流畅和卡顿。 我们知道在移动平台上,原生应用的体验最好、流畅度最高、性能也最好。而目前的跨平台技术和框架的流…