CAN总线
文章平均质量分 57
做一道光
互联网软件开发,已转汽车嵌入式软件开发
展开
-
CAN报文中的信号解析
ECU发送的一帧CAN报文中是有多个信号的。信号在报文的数据域中,数据域中可以有多个信号。协议规范一帧CAN报文数据域最多有8个字节,企业中一般都设计为所有的CAN报文都是8字节。8个字节(B)换算成比特(bit)就是64个比特。从起始位40开始,从右向左开始填充数据,当本行填充完成,继续向上填充。把填充的数据转变成原始的二进制,msb代表最高位,lsb代表最低位。主机厂制定信号在CAN报文数据域中的分布、信号值得换算等。每个字节有8bit:从右向左,由低到高。CAN报文数据域8字节的二维布局。原创 2024-05-08 09:38:51 · 120 阅读 · 0 评论 -
CAN报文的用途
CAN报文主要有四个用途,分别是应用报文,诊断报文,网络管理报文,标定报文。网络管理报文:让整个CAN总线上的ECU能够更省电的进入休眠或者唤醒状态。应用报文:ECU发送各自应用场景的报文。诊断报文:查看ECU的故障信息。标定报文:校准调整参数系数。原创 2024-05-08 09:36:19 · 196 阅读 · 0 评论 -
CAN报文总线仲裁机制
多个节点同时发送报文,可以同时发送,但是在发的过程中,每个节点在发送每一个比特的同时也在回读总线上的每一个比特的实际电平。这种巧妙的设计,不需要在仲裁过程中,额外的再发送一些别的报文,即不浪费时间,也不破坏报文的这种数据。其中非常根本的底层机制,就是显性的电平一旦某一个节点发出去,那么总线的电平就呈现显性低电平,因此显性低电平0的优先级就更高。如果有两个以上的ECU同时发送CAN报文,ID值小的报文可以发送成功。每个ECU在发送报文的同时,它也在不断的回读总线上的电平,发送报文就是传输发送电平。原创 2024-05-08 09:34:35 · 304 阅读 · 0 评论 -
ECU和CAN总线
CAN控制器和CPU集成在一起形成一个单独的电子元件MCU。MCU和CAN收发器进行连接,MCU根据应用的逻辑信号0、 1转变成普通的低电平、高电平。CAN收发器把普通的电平变成两根导线的差分电平,通过CAN H和CAN L发送出去。汽车内部有大量的ECU(电控单元),ECU和ECU是要通信的,这就需要用到CAN总线。一旦受到影响CAN高和CAN低的电压就都发生同样的变化,电压差还是保持不变的,因此不影响CAN信号的解析。使用CAN高和CAN低两根线来发送信号,不易受外界电磁等原因的干扰,原创 2024-05-08 09:31:19 · 203 阅读 · 0 评论 -
CAN相关HAL库驱动
HAL_RCC_CANx_CLK_ENABLE(…Uint32 t SlaveStartFilterBank /*从CAN选择启动过过滤器,单CAN没有意义*/uint32_t FilterFIFOAssignment /*过滤器关联FIFO*/uint32_t TransmitGlobalTime /*发送时间标记(时间戳)*/uint32_t AutoRetransmission /*自动重传*/uint32_t TimeSegl /*时间段1(BS1)长度*/原创 2024-01-28 10:00:00 · 420 阅读 · 0 评论 -
CAN协议层介绍
所以,节点会使用硬件同步方式调整,把自己的SS段平移到检测到边沿的地方,获得同步,同步情况下,采样点获得的电平状态才是正确的。CAN协议定义了5种类型的帧:数据帧、遥控帧、错误帧、过载帧、间隔帧,其中数据帧最为常用。注意:节点监测到总线上信号的跳变在SS范围内,表示节点与总线的时序是同步的,此时采样点的电平即该位的电平。间隔帧(Inter Frame Space):用于将数据帧及遥控帧与前面的帧分离开来的帧。遥控帧(Remote Frame):用于接收单元向具有相同ID的发送单元请求数据的帧。原创 2024-01-26 10:42:34 · 335 阅读 · 0 评论 -
CAN控制器介绍
根据过滤器组的工作模式不同,寄存器的作用不尽相同。在使能过滤器情况下,总线上广播的报文ID与过滤器的配置都不匹配,CAN控制器会丢弃该报文,不会进入到接收FIFO中。选择模式可设置屏蔽位模式或标识符列表模式,寄存器内容的功能就有所区别。睡眠模式:复位后进入睡眠模式,can总线处于睡眠状态,可以降低功耗。CAN控制器的测试模式分为三种:静默模式、环回模式、环回静默模式。CAN控制器工作模式分为三种:初始化模式、正常模式、睡眠模式。这三种测试模式的配置,都是在初始化工作模式下进行配置的。原创 2024-01-26 10:45:47 · 626 阅读 · 0 评论 -
CAN相关寄存器
CAN_(T/R)DLxR:低位数据寄存器。存放(待发送/接收)报文数据段的Data0-Data3的内容。CAN_(T/R)DHxR:高位数据寄存器。存放(待发送/接收)报文数据段的Data4-Data7的内容。CAN_(T/R)IxR:标识符寄存器。在CAN过滤器激活寄存器中,使用哪个过滤器组,就在对应位置1即可。CAN_F×R(1/2):过滤器组×寄存器。CAN_(T/R)DTxR:数据长度和时间戳寄存器。CAN_ MCR:CAN主控制寄存器。CAN FM1R:过滤器模式寄存器。原创 2024-01-27 08:30:00 · 197 阅读 · 0 评论 -
CAN基础知识介绍
CAN使用差分信号进行数据传输,根据CAN_H和CAN_L上的电位差来判断总线电平。1986年,博世公司开发出CAN通信协议,1993年,ISO发布CAN标准,ISO11898(高速CAN)及ISO11519(低速CAN)。综上所述,虽然CAN总线本身并不是严格意义上的差分信号,但它利用了两根信号线(CAN_H和CAN_L)之间电压差的差分信号传输方式来实现其功能。示例:在CAN总线上,差分信号的概念得到了体现,其中CAN_H和CAN_L信号线的电压差称为差分电压,用于表示数据的逻辑状态。原创 2024-01-26 10:40:27 · 489 阅读 · 0 评论