·汽车can总线是有两条总线组成的,can_h和can_l,一般的汽车通讯都是基于这两条线的电位差进行数据的传递。下面我们就来说一说CAN的电位差是怎样形成的。
总所周知,CAN总线会形成俩种状态:显性状态和隐性状态。那对于这两种状态的定义是什么勒,显性就是当总线在传递数据时,CAN_H和CAN_L的电压会发生变化,大概电位差在3.5v左右,常常会使用逻辑0来表示。
隐性就是总线处于静止状态,电位差在2.5v左右,使用逻辑1来表示
这里我们就要来聊一聊CAN的发送原理啦
CAN的通信方式知道之后,我们来说一说CAN报文吧。
CAN报文:总线上传递的数据报
报文的格式分为标准帧和扩展帧,而对于我们的帧类型而言,分为四种,分别是:数据帧、远程帧、错误帧、过载帧
1、数据帧
数据帧分为帧起始、帧仲裁、帧控制、帧数据、CRC以及帧应答
帧起始:只有1位(一般情况下为0),目的在于告诉我们有数据的传输
帧仲裁:用于多个报文信号同时发送,对于信号而言,存在标识位,用于优先等级的识别,例如总线上有多个信号同时发送,对于我们节点而言,就会通过标识位的识别,判断信号的优先等级,一般的标准帧的标识位为11位,扩展帧为29位。
帧控制:由6位组成,标准帧和扩展帧不一,数据长度代码指示了数据场中的数据字节数量
帧数据:发送数据,最多有8位字节,也就是我们使用can工具出现的字节数。
CRC:循环冗余校验码,是数据领域中常见的差错校验码,用于校验信息是否正确
帧应答(ACK):包括应答间隙和应答界定符,在 ACK 场里,发 送站发送两个隐性位。当接收器正确接收到有效地报文,接收器就会在应答间隙 期间(发送 ACK 信号)向发送器发送一显性位以示应答。
2、远程帧
和数据帧相比,没有数据场,总线节点发送远程帧 。
3、错误帧
包括错误界定符和错误标志位,标志位分为主动和被动的,主动为显性,被动发送的为隐性。
4、过载帧
包括过载标志和过载界定符,过载标志位6个显性位,过载界定符为8个显性位。
最后补充一点