当前位置:网站首页>CAN协议初介绍
CAN协议初介绍
2022-07-15 16:38:00 【DingUXiu】
CAN协议介绍
CAN 是控制器局域网 Controller Area Network 的缩写(简称 CAN),由研发和生产汽车电子产品著称的德国BOSCH公司开发,是ISO国际标准化的串行通信协议。
CAN通讯不是以时钟信号来进行同步的,它是一种半双工异步通讯,只具有CAN_High和CAN_Low两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯
CAN 控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方
CAN协议特点
多主控制
在总线空闲时,所有单元都可以发送消息(多主控制),而两个以上的单元同时开始发送消息时,根据消息标识符( Identifier )决定优先级。 ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息 ID 的每个位进行逐个仲裁比较。仲裁获胜的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。
系统的柔软性
与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。
通信速度较快,通信距离远
最高 1Mbps(距离小于 40M),最远可达 10KM(速率低于 5Kbps)。
具有错误检测、错误通知功能、错误恢复功能
所有单元都可以检测错误(错误检测功能)
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)
正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)故障封闭功能
CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。
连接节点多
CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。
OSI模型
CAN协议涵盖了ISO规定的OSI基本参照模型中的传输层、数据链路层及物理层。
数据链路层分为MAC子层和LLC子层,MAC子层是CAN 协议的核心部分。
数据链路层的功能是将物理层收到的信号组织成有意义的消息,并提供传送错误控制等传输控制的流程
具体地说,就是消息的帧化、仲裁、应答、错误的检测或报告。
数据链路层的功能在CAN 控制器的硬件中执行,无需用户软件代码参与。
在物理层定义了信号实际的发送方式、位时序、位的编码方式及同步的步骤。但具体地信号电平、通信速度、采样点、驱动器和总线的电气特性、连接器的形态等均未定义。这些必须由用户根据系统需求自行确定。
说明:该系列文章以CAN介绍为开篇,后续会逐步深入分享CAN、FDCAN、CANOpen等相关知识
边栏推荐
- Redis(二)Redis的三种特殊类型
- Empowering new industries and creating a new future | Tupo software was invited to participate in the Xiamen Industrial Expo
- MySQL数据库安装&问题
- Comment définir Notepad + + comme mode d'ouverture par défaut
- [CQOI2012]局部极小值 & Mike and Foam
- R language dplyr package summary_ The all function calculates the mean and median of all numerical data columns in the dataframe data, and filters the numerical data columns with happy (summarize all
- 数组模拟链表
- 卖的越多,挣得越少?利润增长率低于销售增长率的财务分析思路
- resnet50结构图
- 读书笔记:《过程咨询 I II III》 回顾
猜你喜欢

scala Object关键字声明的类直接调用方法、伴生对象

Functions and arrow functions

2pc and 3pc of consistency agreement

Mysql database installation & Problems

Gurobi——GRBLinExpr

How to apply knowledge management in enterprise work to solve enterprise problems?

Matlab-mex

赋能新工业,制造新未来 | 图扑软件受邀参加厦门工业博览会

生命游戏,25号宇宙与奋斗者

leetcode:330. 按要求补齐数组
随机推荐
Canal realizes real-time synchronization of data from Mysql to es
Explore ZGC
CVXPY——最新版问题
Ffmpeg audio and video transfer package (MP4 and flv are transferred to each other, and streaming data is transferred to FLV and MP4)
YOLACT结构图
MPC_ORCA
After reading these five reasons, I finally know the reason why FTP was replaced
External interrupt of stm32f4
centernet(objects as points)的尝试[基于tf.slim]
Redis(二)Redis的三种特殊类型
数组模拟链表
R语言使用lm函数构建回归模型、使用MASS包的boxcox函数寻找最佳幂变换提高模型拟合度、可视化boxcox曲线并获取最佳lambda值
What is the difference between reject and catch processing in promise
业务发展陷入停滞,决策没有信息支撑,数据分析才是解决方案
MySQL - File /var/log/mysql/mysql-bin.index not found (Errcode 13 - Permission denied)
scala Object关键字声明的类直接调用方法、伴生对象
Introduction to ffmpeg
Ffmpeg audio and video unpacking
R语言使用epiDisplay包的roc.from.table函数可视化临床诊断表格数据对应的ROC曲线并输出新的诊断表(diagnostic table)、输出灵敏度、1-特异度、AUC值等
图扑 Web 可视化引擎在仿真分析领域的应用