当前位置: 首页 > news >正文

CAN的简介

一, can的简介

        CAN协议,全称为Controller Area Network(控制器局域网络),是一种广泛应用的串行通信协议,最初由德国BOSCH公司开发,并已成为国际标准。

        低速CAN(ISO11519)通信速率 10~125Kbps,总线长度可达 1000 米。

        高速CAN(ISO11898)通信速率 125Kbps~1Mbps,总线长度 ≤40 米。

·定义:CAN协议是一种基于差分信号的异步串行通信协议,采用双绞线作为传输介质,具有高性能、高可靠性和独特的设计特点。

·特点:

        多主控制:支持多主方式,即任何一个节点都可以在总线上发送数据,其他节点根据需要进行接收。当两个以上的节点同时开始发送数据时,会根据标识符(ID)决定优先级。

        系统柔软性:与总线相连的单元没有类似于“地址”的信息,因此在总线上增加单元时,连接在总线上的其他单元的软硬件及应用层都不需要改变。

        通信速度快、距离远:数据传输速率较高,标准速率为125kbps,扩展速率可达1Mbps,且通信距离远,最远可达10KM(速率低于5Kbps)。

        错误检测与恢复:具有错误检测、错误通知和错误恢复功能,能够确保数据传输的可靠性。

        故障封闭功能:能够判断出错误的类型,并将引起故障的单元从总线上隔离出去。

CAN协议因其高效、可靠的特点,被广泛应用于多个领域:
        汽车领域:用于实现车辆中各个控制单元(ECU)之间的通信,如发动机控制、车身控制、传动系统控制等。

        工业自动化:用于机器人、物流设备、生产线等各种设备之间的通信与控制。

二,CAN物理层介绍

        CAN网络通常由CAN控制器、CAN收发器和双绞线组成。

        CAN控制器:负责处理数据的收发和协议转换。

        CAN收发器:负责将控制器的数字信号转换为差分信号进行传输,同时也负责将总线上的差分信号转换为数字信号供控制器处理。

终端电阻

        在高速CAN总线的两端分别连接一个电阻,称为终端电阻。终端电阻的主要作用是匹配总线阻抗,提高信号质量减少回波反射。一般来说,终端电阻的阻值为120Ω。

        2.1 总线拓扑图        

        高速CAN闭环总线

        

        低速CAN开环总线

                

        2.2 电平标准

        CAN使用差分信号进行数据传输,根据CAN_H和CAN_L上的电位差来判断总线电平。

        显性电平表示逻辑 0 ,通常 CAN_H 和 CAN_L 有 2V 的压差;

        隐性电平表示逻辑 1 ,通常 CAN_H 和 CAN_L 有 0V 的压差。

        显性电平在通信中具有优先权,能够覆盖隐性电平,确保数据的正确传输。隐性电平则作为总线的空闲或监听状态存在,等待有节点发送数据

        

2.3 CAN的控制器和收发器

        

        

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 微服务的负载均衡不同的场景应用
  • Is it possible to modify OpenAI environments?
  • 进程的创建、终止
  • 【安全靶场】-DC-7
  • UE赋予某个C++类tick的能力
  • git错误fatal: Unpack error, check server log
  • 正则表达式备查
  • ubuntu VCS+verdi安装遇到的一些问题
  • 【网络安全】学过编程就是黑客?
  • 持久化SSE对象
  • unity Android + WebGL 浏览器打开
  • 【开源社区】Elasticsearch(ES)中 exists 查询空值字段的坑
  • 【前端】vue监视属性和计算属性对比
  • mp4怎么转换成mp3?看了就会的8种mp4转mp3方法!
  • 快速查找数组中出现奇数次的数字
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 345-反转字符串中的元音字母
  • angular2 简述
  • docker容器内的网络抓包
  • iOS 系统授权开发
  • Java 最常见的 200+ 面试题:面试必备
  • JS题目及答案整理
  • python学习笔记 - ThreadLocal
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • SpiderData 2019年2月16日 DApp数据排行榜
  • 动态规划入门(以爬楼梯为例)
  • - 概述 - 《设计模式(极简c++版)》
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 使用 @font-face
  • 用mpvue开发微信小程序
  • 主流的CSS水平和垂直居中技术大全
  • Spring Batch JSON 支持
  • ​批处理文件中的errorlevel用法
  • ​如何在iOS手机上查看应用日志
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (k8s)Kubernetes本地存储接入
  • (安卓)跳转应用市场APP详情页的方式
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转)重识new
  • (转载)OpenStack Hacker养成指南
  • .gitignore文件—git忽略文件
  • .Net 4.0并行库实用性演练
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .net 设置默认首页
  • .net 微服务 服务保护 自动重试 Polly
  • .net6+aspose.words导出word并转pdf
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .NET中使用Protobuffer 实现序列化和反序列化
  • .NET中统一的存储过程调用方法(收藏)