CAN 协议
控制器局域网 (CAN) 协议是一种专为汽车行业开发的通信协议,但也已应用于工业自动化和医疗设备等其他行业。它是一种串行通信协议,采用多主节点分布式控制系统。这意味着网络上的任何设备(称为节点)都可以发起通信,并且网络上的所有其他节点都可以参与通信。该协议为设备提供了一种共享信息和同步操作的方法,无需中央控制器。该协议使用冲突检测和仲裁方法来防止多个节点同时传输数据,并确保一次只有一个节点可以传输数据。
为什么选择 CAN?
CAN 协议是为汽车行业开发的,旨在解决随着汽车变得越来越复杂并集成越来越多的电子系统而出现的诸多挑战。开发 CAN 协议的一些主要原因包括:-
高可靠性 - CAN 协议设计坚固耐用且具有容错能力,非常适合用于汽车发动机控制和制动系统等关键系统。
低成本 - CAN 协议采用简单高效的信号传输方法,可实现低成本实施,这在成本是主要关注点的汽车行业尤为重要。
重量轻,布线最少 - CAN 协议使用双线总线,减少了汽车所需的布线量,减轻了车辆重量,从而提高了燃油效率。
可扩展性 - CAN 协议旨在支持网络上的大量设备,因此可以轻松添加新设备或删除现有设备。
多主站功能 − 任何设备(节点)都能够在网络中发起通信,这使得不同的系统能够根据各自的需求进行通信和操作,同时也支持分布式控制,这是该协议的主要特性。
CAN 协议的应用
控制器局域网 (CAN) 协议广泛应用于各种应用,包括 −
汽车 − CAN 协议最初是为汽车工业开发的,并广泛应用于现代汽车的各种系统中,包括发动机控制、变速箱控制、防抱死制动系统和车身电子系统。
工业自动化 − CAN 协议用于工业自动化系统,允许设备进行通信并协调其操作,例如控制电机、传感器和其他设备。
医疗设备 − CAN 协议用于医疗设备的各种功能控制以及设备间的数据传输。例如,病人监护系统使用该协议在设备间传输病人的生命体征数据。
航空电子设备− 该协议用于航空电子设备,以控制和监控各种系统,例如发动机、导航和飞行控制系统。
楼宇自动化 − 该协议用于楼宇自动化系统,以控制和监控各种系统,例如供暖、通风、空调 (HVAC)、照明和安防系统。
机器人技术− 该协议用于机器人技术,以控制和监控各种系统,例如电机、传感器和其他设备,从而使机器人能够通信并协调其动作。
CAN 帧
在控制器局域网 (CAN) 协议中,消息使用一种称为帧的特定格式进行传输。帧由多个字段组成,这些字段包含有关消息的信息,例如源地址、目标地址和数据有效载荷。
CAN 帧的基本格式包括:-
帧起始 (SOF)- 标识帧的起始。
标识符 (ID)- 用于标识消息的唯一 11 位或 29 位数字。
远程传输请求 (RTR) - 指示该帧是数据帧 (0) 还是请求数据的远程帧 (1)。
标识符扩展 (IDE) - 指示 ID 字段是 11 位 (0) 还是 29 位 (1)
数据长度代码(DLC) − 指示数据有效载荷的长度(以字节为单位)。
数据− 消息的有效载荷,最多可达 8 个字节。
循环冗余校验 (CRC) − 用于检测帧中错误的校验和。
确认槽 (ACK) − 接收节点对消息传输的确认。
帧结束 (EOF) − 标识帧的结束。
消息在总线上以一系列位的形式传输,最高有效位 (MSB) 首先传输。消息发送后,网络上的所有节点都会收到该消息,但只有具有匹配标识符的节点才会处理该消息。
CAN 分层架构
控制器局域网 (CAN) 协议采用分层架构,旨在分离协议的不同职责。CAN 协议通常分为五层 -
物理层 - 该层负责通过通信介质(例如有线或无线链路)进行位的物理传输。它定义了节点与通信介质之间接口的电气、机械和操作规范。
数据链路层 - 该层负责在节点之间提供可靠的数据传输。它包括错误检测和纠正机制,例如位填充和循环冗余校验 (CRC)。它还管理仲裁过程,以确保一次只有一个节点可以传输,并管理消息的确认。
网络层 − 该层负责为网络上的所有节点提供通用的通信格式和寻址方案。它定义了消息的格式,包括标识符、数据有效负载和优先级。
传输层 − 该层定义了消息传输和接收的规则,例如消息分段和重传、流量控制和错误处理。
应用层 − 该层定义了应用程序可用的服务和接口,例如发送和接收消息以及监视网络状态。它还为应用层提供了接口。
该架构的每一层都设计为独立于其他层,因此可以对某一层进行更改或改进而不会影响其他层。这种设计赋予了协议灵活性和可扩展性,使其非常适合不同行业的各种应用。
结论
总而言之,控制器局域网 (CAN) 协议是一种广泛使用的通信协议,最初是为汽车行业开发的。它是一种串行通信协议,采用多主分布式控制系统,允许网络上的任何设备(称为节点)发起通信,并允许网络上的所有其他节点参与通信。该协议为设备提供了一种无需中央控制器即可共享信息和同步操作的方法。

