1 唤醒(Wake Up)
分为主节点的唤醒和从节点的唤醒。处于睡眠状态时,任何一个节点都可以发送唤醒信号。唤醒信号一般是在总线上发送一个持续250us~5ms显性电平。
(1)从节点的唤醒
从节点会检测到一个显性电平多于150us的唤醒信号,然后在100ms内完成初始化以响应总线上的命令。如果发送唤醒信号的是一个从节点,被唤醒的节点会准备好接收或者发送报文。此时主节点也会被唤醒,当从节点准备好以后,主节点开始发送头部报文(Header)来寻找唤醒源。
图1 从节点接收到唤醒信号
(2)主节点的唤醒
主节点也会检测持续时间长于150us的唤醒信号,如果这时候主节点没有发送间隔段(一帧报文的开始)或者发送唤醒信号的节点在150ms~250ms内没有收到其他节点的唤醒信号,那么这个最初开始发送唤醒信号的节点会重新发送一个唤醒信号。
图2 唤醒信号多次发送示意
发送唤醒信号的节点会持续上述发送方式3次,然后会等待1.5s,之后再次发送3次唤醒信号。
图3 唤醒信号持续发送示意
2
睡眠(Go To Sleep)
(1)如果准备让ECU睡下去的话,主节点会发送一个Go To Sleep的命令,这个命令报文格式如下:
图4 主节点发送的Go To Sleep报文定义
(2)在总线空闲的时候,如果4s~10s总线上没有信号的话,ECU也会睡眠。
3
从节点通信状态转换
图5 从节点通信状态转换示意
(1)初始化将在100ms内完成,之后进入工作状态;
(2)由工作状态进入睡眠状态有两种方式:
(3)由睡眠状态再回到初始化状态
以上就是本期内容,如有问题欢迎私信。