四、帧的类型
根据帧ID的不同将帧分为以下几种类型:
帧的类型 | 帧ID | |
信号携带帧 | 无条件帧 | 0x00~0x3B |
事件触发帧 | ||
偶发帧 | ||
诊断帧 | 主机请求帧 | 0x3C |
从机应答帧 | 0x3D | |
保留帧 | 0x3E,0x3F |
1.信号携带帧
(1)无条件帧
LIN协议中的无条件帧(Unconditional Frame)是指主节点在每个调度表中周期性发送的一种帧,不论从节点的状态如何,主节点都会发送这种帧。无条件帧通常用于发送周期性数据或者控制命令。无条件帧是一种基本的报文类型,用于在车辆的不同部件之间传输数据。
无条件帧的特点是,无论信号是否发生变化,该帧都会在预定的时隙中被发送。这种类型的帧主要用于那些需要定期更新或同步的信号,其传输是按照固定的周期进行的。
特点:
①单一发布节点:无条件帧具有唯一的发布节点,该节点在指定的帧时隙中发送数据。
②固定帧时隙:无条件帧在固定的时间槽内传输,确保了通信的同步性和可预测性。
③必须应答:一旦帧头被发送出去,总线上所有的从机节点都必须作出应答。这意味着,即使数据没有变化,从机节点也需要响应,以保证网络的可靠性。
④帧ID:无条件帧使用特定的帧ID进行标识,使得接收节点能够识别该帧的内容和用途。
- 例如,帧ID 0x30 通常用于从机节点1向主机节点报告状态。
- 帧ID 0x31 可用于主机节点向一个或多个从机节点发布信息。
- 帧ID 0x32 可能用于从机节点之间的通信
(2)事件触发帧
事件触发帧(Event Triggered Frame)它不同于无条件帧(Unconditional Frame),它的发送不是基于固定的时间周期,而是由特定的事件或条件触发的。
无条件帧不论信号是否发生变化必定有从机任务应答不同,事件触发帧只有信号发生变化才需要应答,所以事件触发帧允许无节点应答(只有帧头无应答),也允许两个以上的节点对帧头作应答。
特点:
①事件驱动:事件触发帧的发送是由节点检测到特定信号或事件的变化而触发的
②非周期性:与无条件帧不同,事件触发帧不遵循固定的发送周期。它们仅在需要时发送,这样可以减少总线上的通信量,提高网络的效率。
③响应时间:由于事件触发帧是基于即时事件触发的,它们通常要求较快的响应时间,以便及时通知网络上的其他节点发生了什么。
④帧ID:事件触发帧也有自己的帧ID,用于标识帧的类型和内容。这些帧ID通常不同于无条件帧的帧ID。
⑤冲突解决:如果有多个节点几乎同时触发事件触发帧,LIN总线协议包含冲突解决机制来决定哪个节点的帧优先发送。
⑥从机节点发起:事件触发帧通常由从机节点发起,通知主机节点或其他从机节点发生了特定的事件。
(3)偶发帧
偶发帧(Spontaneous Frame),它用于在特定条件下传输数据,这些条件通常是由某个节点上的特定事件或状态变化触发的。偶发帧的主要特点是它们不是按照固定的时间表发送的,而是在满足一定条件时才发送。
特点:
①条件触发:偶发帧的发送是由特定的条件或事件触发的,这些条件可能包括硬件故障、软件错误、外部信号输入等。
②非周期性:与无条件帧和事件触发帧不同,偶发帧不遵循固定的发送周期。它们仅在特定条件满足时发送。
③优先级:偶发帧通常具有较高的优先级,因为它们传输的数据通常是关键信息,如故障诊断或安全相关的数据。
④帧ID:偶发帧也有自己的帧ID,用于标识帧的类型和内容。这些帧ID通常不同于无条件帧和事件触发帧的帧ID。
⑤冲突解决:如果有多个节点几乎同时触发偶发帧,LIN总线协议包含冲突解决机制来决定哪个节点的帧优先发送。
2.诊断帧
(1)主机请求帧
主机请求帧(Master Request Frame)是LIN总线通信协议中的一种通信机制,它允许主机节点(通常是控制单元)向从机节点(通常是传感器或执行器)请求特定数据。这种类型的帧用于实现主从通信模式,其中主机控制数据交换的流程。
以下是主机请求帧的主要特点:
①由主机发起:主机请求帧由主机节点发起,用于向从机节点请求数据。
②请求特定数据:通过帧ID,主机可以指定它想要从哪个从机节点获取哪些数据。
③响应:从机节点在接收到主机请求帧后,会发送一个响应帧(Slave Response Frame),其中包含所请求的数据。
④非周期性:主机请求帧不是周期性发送的,而是在主机需要特定信息时发送。
⑤帧ID:主机请求帧使用特定的帧ID,该帧ID指示了请求的数据类型和目标从机节点。
⑥同步和异步请求:主机请求帧可以是同步的,也可以是异步的。同步请求通常在预定义的时间槽内发生,而异步请求则可以在任何时间发生。
⑦冲突解决:如果有多个主机尝试同时发送请求帧,LIN总线协议包含机制来解决这种冲突。
主机请求帧的通信过程通常如下:
①发送请求:主机发送一个包含特定帧ID的主机请求帧,以请求特定从机节点的数据。
②从机响应:目标从机节点在接收到请求后,将发送一个响应帧,其中包含所请求的数据。
③数据确认:主机接收从机发送的数据,并可能发送一个确认帧以表明数据已正确接收。
(2)从机应答帧
从机应答帧,它是由从机节点(通常是传感器或执行器)发送给主机节点(通常是控制单元)的响应帧。当主机节点通过发送主机请求帧(Master Request Frame)来请求数据时,从机节点会发送一个从机应答帧作为响应。
特点:
①响应请求:从机应答帧是作为对主机请求帧的直接响应而发送的,它包含了主机请求的数据。
②数据内容:从机应答帧包含从机节点收集的数据或状态信息,这些数据可能是传感器读数、执行器状态或其他相关信息。
③帧ID:从机应答帧使用与主机请求帧相对应的帧ID,以便主机可以识别哪个从机节点正在响应。
④时序:从机应答帧通常在主机请求帧之后的一个预定义的时间窗口内发送,以确保通信的同步性。
⑤错误检测:从机应答帧通常包含校验和或类似机制,用于检测传输过程中可能出现的错误。
⑥单播或广播:从机应答帧可以是单播(仅发送给请求的主机)或广播(发送给总线上的所有节点)。
从机应答帧的通信过程通常如下:
①主机请求:主机发送一个包含特定帧ID的主机请求帧,请求特定从机节点的数据。
②从机准备响应:目标从机节点在接收到请求后,准备所需的数据。
③从机发送响应:从机节点在预定的时隙内发送从机应答帧,包含所请求的数据。
④主机确认:主机接收从机应答帧,并可能发送一个确认帧以表明响应已接收。
3.保留帧
在LIN总线通信协议中,保留帧(Reserved Frame)是指那些在标准规范中尚未定义用途的帧。这些帧的ID(0x3E和0x3F)被保留下来,以便将来标准的扩展或特定制造商的实现。保留帧的使用通常是为了未来的兼容性考虑,或者是为了特定应用的需要。
特点:
①未定义用途:保留帧的ID在LIN规范中是预留的,但目前没有定义其具体用途。
②扩展性:随着技术的发展和新的应用需求的出现,这些帧可以用来扩展LIN总线的能力,例如引入新的通信功能或支持新的设备。
③制造商特定:在某些情况下,制造商可能会使用保留帧来实现特定的功能,这些功能可能不符合标准LIN规范,但适用于制造商的产品线。
④避免冲突:使用保留帧可以避免与现有标准帧的冲突,确保新功能或设备的集成不会破坏现有系统的兼容性。
⑤谨慎使用:由于保留帧的用途未定义,因此在使用时应谨慎,以避免与未来标准更新或不同制造商的实现发生冲突。
五、帧传输时间的计算
LIN帧的传输时间依赖于以下几个因素:
波特率:LIN网络的波特率通常为9600到20000 bps之间。
帧类型:LIN帧包括同步帧、头部帧和响应帧。
帧格式:每个帧的格式,包括起始位、数据位、停止位等。
例子:
假设波特率为19200 bps,一个包含4个数据字节的LIN帧,计算传输时间?
同步间隔(Break):13位
同步字段(Sync Field):8位
标识符字段(Identifier Field):8位
数据字段(Data Field):4字节 * 8位 = 32位
校验字段(Checksum Field):8位
总位数 = 13 + 8 + 8 + 32 + 8 = 69位
波特率 = 19200 bps
传输时间 = 总位数 / 波特率
传输时间 = 69 / 19200 秒 ≈ 0.00359 秒
通用公式
总传输时间(秒) = (同步间隔位 + 同步字段位 + 标识符字段位 + 数据字段位 + 校验字段位) / 波特率
对于一个包含 NNN 个数据字节的LIN帧,公式如下:
T=13+8+8+(8×N)+8波特率T = \frac{13 + 8 + 8 + (8 \times N) + 8}{波特率}T=波特率13+8+8+(8×N)+8
其中:
- 131313 是同步间隔位数
- 888 是同步字段位数
- 888 是标识符字段位数
- 8×N8 \times N8×N 是数据字段位数(NNN 为数据字节数)
- 888 是校验字段位数
六、LIN和CAN的对比
CAN | LIN | |
设计目的 | 用于高速、高可靠性的车辆内部通信,适用于需要快速数据交换的关键系统,如发动机管理、动力总成、底盘控制等 | 用于低成本、低速率的车辆内部通信,通常用于连接车身电子部件,如车窗、后视镜、座椅调节等 |
传输速率 | 标准CAN的传输速率为125 Kbps或250 Kbps,而高速CAN(CAN-FD)可以达到更高的速率,例如5 Mbps | 最高传输速率为20 Kbps,通常使用9600 bps或19200 bps |
网络结构 | 是多主网络,任何节点都可以主动发送数据,不需要主机节点的控制 | 采用单主机多从机的结构,每个子网络有一个主机节点控制多个从机节点 |
错误检测和处理 | 具有更复杂的错误检测和处理机制,包括帧检查、循环冗余检查(CRC)、错误计数和自动重传等 | 具有简单的错误检测机制,如校验和 |
成本和复杂性 | 设计复杂,成本较高,但提供了更高的通信速率和可靠性 | 设计简单,成本较低,适合对通信速率要求不高的场合 |
应用场景 | 适用于需要高速通信的关键系统,如发动机管理、ABS、EPS等 | 适用于车身电子系统,如车窗升降、座椅调节、车灯控制等 |
通信距离和节点数量 | 通信距离较长,节点数量较多,理论上可以支持更多节点,但实际应用中受限于网络负荷和延迟要求 | 通信距离较短,节点数量较少,通常每个子网络不超过16个节点 |