CAN 帧有哪些类型
简介:
CAN帧主要有五种类型:数据帧,用于传输数据;远程帧,用于请求数据;错误帧,表示检测到错误;过载帧,表示接收器需要延时;帧间隔,用于分隔不同的帧。
- 数据帧(Data Frame)
- 定义与用途:数据帧是CAN总线上最常见的帧类型,主要用于在节点之间传输数据。例如,在汽车的电子控制系统中,发动机控制单元(ECU)可以通过数据帧将发动机的转速、温度等实时数据发送给仪表盘控制单元,以便在仪表盘上显示这些信息。
- 结构特点:数据帧由仲裁场、控制场、数据场、CRC场、ACK场和帧结束场组成。其中,仲裁场用于确定消息的优先级,当多个节点同时向总线发送数据时,优先级高的消息先发送;数据场是数据帧的核心部分,其长度可以为0 - 8字节,用于存放实际要传输的数据,如传感器采集到的值、控制指令等。
- 远程帧(Remote Frame)
- 定义与用途:远程帧用于请求其他节点发送数据。例如,一个节点需要获取某个特定传感器的数据,但不知道该数据是否已经更新或者是否可用,就可以发送一个远程帧来请求拥有该传感器数据的节点发送最新的数据。
- 结构特点:远程帧的结构与数据帧类似,但没有数据场。它的仲裁场和控制场的设置与数据帧有一定的对应关系,通过仲裁场来确定请求的优先级,控制场中的相关位用于表示这是一个远程帧请求。
- 错误帧(Error Frame)
- 定义与用途:当节点检测到总线上的错误时,会发送错误帧。错误帧用于通知其他节点总线上出现了错误情况,使得其他节点可以采取相应的措施,如停止当前的发送操作、重新发送数据等。例如,在数据传输过程中,如果接收节点检测到数据的CRC校验错误,就会发送错误帧。
- 结构特点:错误帧由错误标志和错误界定符组成。错误标志分为主动错误标志和被动错误标志,主动错误标志用于当节点处于主动错误状态(正常工作状态下的错误处理状态)时发送错误通知,被动错误标志用于节点处于被动错误状态(已经多次出现错误后的更严格的错误处理状态)时发送错误通知。错误界定符用于界定错误帧的结束。
- 过载帧(Overload Frame)
- 定义与用途:过载帧用于在接收节点或者发送节点内部出现暂时的过载情况时,通知其他节点。例如,当接收节点的接收缓冲区快要满了,无法及时处理更多的数据时,就可以发送过载帧,请求其他节点暂时减缓发送数据的速度。
- 结构特点:过载帧由过载标志和过载界定符组成。过载标志可以有多个,用于表示过载的程度或者持续时间(在一定范围内),过载界定符用于结束过载帧的发送。
- 帧间隔(Inter - Frame Space)
- 定义与用途:帧间隔并不是一种真正的帧类型,而是用于分隔不同类型的帧,为总线提供一个短暂的空闲时间,使得节点有时间进行一些内部处理,如准备下一次的数据发送或者接收。例如,在连续发送数据帧或者在错误帧、过载帧之后,都需要有一定的帧间隔。
- 分类与特点:帧间隔分为间歇场、总线空闲场和延迟传输场。间歇场是一个强制的3个位的间隔,用于将前面的帧与后面的帧分开;总线空闲场用于表示总线处于空闲状态,此时没有节点在发送数据,其他节点可以在这个时候开始发送数据;延迟传输场是一个可选的部分,用于在一些特殊情况下(如错误恢复后)延迟下一个帧的发送。