声明:摘录自《LIN 入门 RENESAS》
3.5 网络管理
网络管理主要指的是网络的休眠和唤醒管理,如图3.17 所示。
3.5.1 唤醒
当总线处于休眠状态时,主/从机节点都可以向总线上发送唤醒信号,唤醒信号持续250μs~5ms。其余节点(除发送唤醒信号以外的节点)以大于150μs 为阈值判定唤醒信号。每个从机节点必须在唤醒信号显性脉冲的结束处算起100ms 以内准备接收来自主机的命令(帧头);主机节点也必须被唤醒,100ms 之内主机节点发送帧头开始通信。主机节点的同步间隔段也可以充当唤醒信号,由于从机节点需要作初始化处理,因此主机节点所发的这个帧有可能不会被正常接收。
如果节点发送出唤醒信号后,在150ms~250ms 之内没有接收到总线上的任何命令(帧头),则可以重新发送一次唤醒信号。唤醒信号最多可以发送3 次,3 次之后,必须等待至少1.5s 之后才可以再次发送唤醒信号,如图3.18 所示。
3.5.2 休眠
总线可以在两种情况下进入休眠:
(1) 利用诊断帧中的主机请求帧0x3C 作休眠命令,要求数据段的第一个字节为0x00,其余字节为0xFF。休眠命令由主机节点发出,总线上的从机节点只判断数据段的第一个字节,其余字节忽略。从机节点在接收到休眠命令后,不一定要进入低功耗模式,根据应用层需要设置,如图3.19 所示。
(2) 当总线静默(没有显性和隐性电平之间的切换)4s~10s 时,节点自动进入休眠状态。
3.6 状态管理
状态管理是为了检测运行中的错误。错误一旦被发现,根据设计需要采取不同的措施进行排除,一种方法是简单替换掉错误节点,另一种方法是让发生问题的节点进入到自我保护/安全模式(Limp Home Mode)。
3.6.1 网络报告
协议强制规定,每个从机节点都要在它发布的某个无条件帧中包含一个长度为一位的标量信号response_error,向主机节点报告自身状态。主机节点负责接收这个信号并且执行分析,如表3.6 所示。
事件触发帧由于允许总线冲突,需特殊处理。
LIN 协议并没有标准化错误类型,用户可根据需要自行制定。表3.7 列出了可能出现的一些错误类型供参考。
3.6.2 节点内部报告
节点自身需要设定两个状态位:Error_in_response 和Successful_transfer。当发送或接收应答的时候发现错误,将置位Error_in_response;成功传输则置位Successful_transfer。节点需要将这两个状态位报告给应用层。