本文说的CAN即是一种总线,也是一种协议。因此,我们常听见CAN总线,也常听见CAN协议。
CAN协议和CANOpen协议是两套不同的协议。从软硬件层次来划分,CAN协议属于硬件协议,而CANOpen属于软件协议。
本文将概述CAN网络,让大家对CAN总线协议有一个全局的概念,再到底层的CAN总线协议知识。
CAN网络可以理解为多台CAN设备连接在同一条CAN总线上组合成的网络,其中的CAN设备我们称之为节点。CAN网络拓扑结构如下图:
写这一章节的主要目的就是想让大家了解CAN总线位于OSI所在层次。
1.ISO/OSI基本参照模型
【注】
ISO:International Standardization Organization国际标准化组织;
OSI:Open Systems Interconnection开放式系统间互联;
2.CAN在OSI模型中的定义
【注】
LLC:Logical Link Control逻辑链路控制;
MAC:Medium Access Control媒介访问控制;
从上图可以知道CAN总线底层硬件的内容(CAN控制器、收发器)主要位于OSI的第1层和第2层。
CAN总线协议:就是为了保证通信(收发)数据在CAN总线上能稳定传输而制订的一套协议。
CAN总线协议的内容很多,为方便初学者理解,本文先大概描述一下CAN总线协议,后续文章详细讲述CAN总线协议的内容。
2.优先级
假如某一时刻,一个设备(节点)往总线发0,一个设备往总线发1。那么总线会呈现什么现象?
答案:最后总线呈现为显性,也就是0。
3.位时序
位时序逻辑将监视串行总线,执行采样并调整采样点,在调整采样点时,需要在起始位边沿进行同步并后续的边沿进行再同步。
简单的说就是对一个bit位分几段进行采样,目的就是提高数据传输稳定性。在STM32中底层驱动代码就需要进行位时序编程,在STM32参考手册中也会发现如下位时序图:
6.错误的种类
电子技术干货,第一时间送达
电视机的按键功能是用什么电路实现的?经典ADC按键电路
小小的电蚊拍居然有这么多个基础电路,你能看懂几个?
220V灯串电路原理原来是这样的!
别小看不起眼的电阻,里面大有学问!
通俗易懂讲解MOS管
图解车规级芯片