- Sleep
LIN 통신에서는 통신이 진행되지 않을 때(일반적으로 4초 이상 LIN 버스가 비활성 상태이면), 전력 소모를 줄이기 위해 절전모드인 Sleep 상태에 들어갑니다. 그리고 다시 통신이 시작될 때 wake up 신호를 통해 Sleep 상태를 해제시킬 수 있습니다.
Master는 Slave에 go to sleep 커맨드를 통해 sleep 상태로 전환시킬 수 있습니다(LIN 2.1). PID가 0x3C일 때, 첫 번째 데이터가 0이고 나머지 데이터가 0xFF면 slave는 sleep 상태로 전환됩니다.
![](https://blog.kakaocdn.net/dn/1bT9h/btsx1WRzscD/IBV4tsEK1Rh3vl4akdKis1/img.png)
정리하자면 LIN controller는 master가 요청하거나 일정시간 이상 LIN bus가 idle 상태이면 sleep 모드로 들어갑니다.
- Wake up
Sleep모드에 있는 장치가 통신을 시작하기 위해서는 wake up을 통해 절전모드를 해제해야 합니다. Wake up은 Master 뿐만 아니라 Slave도 시작할 수 있습니다. Wake up을 하기 위해서는 LIN 버스에 150us 이상의 시간 동안 신호를 보내줘야 합니다. 그리고 LIN 버스에 연결된 장치들은 100ms 안에 통신할 준비가 되어야 합니다.
![](https://blog.kakaocdn.net/dn/dq3AC4/btsxzXxEbcG/8SBHc3xdlzceqo3RU1mK91/img.png)
Slave에서 wake up을 요청할 경우 Master는 100~150ms 안에 통신을 시작해야 합니다. 그 말은 Frame header를 전송해야 한다는 건데요, 만약 slave의 wake up 요청 후 150ms 안에 Master가 Frame header를 보내지 않으면 Slave는 다시 wake up 요청을 합니다.
![](https://blog.kakaocdn.net/dn/xLGn9/btsx2MVxqpd/28uYqJ64sX8anDpd1kihB1/img.png)
Master가 계속해서 Frame header를 보내지 않으면 Slave는 무한하게 wake up 요청을 합니다. 이때, 3번씩 나누어 요청을 하고 3번 요청 이후에는 1.5s 이상의 간격이 있어야 합니다.
![](https://blog.kakaocdn.net/dn/KHA3e/btsxUcHzhr1/ypRSo1xynIlVJ8z1X5FQf0/img.png)
위의 상황들은 Slave가 Master에게 wakeup 신호를 보내는 상황입니다.
Master가 Slave에 wakeup 신호를 보낼 때는 Frame header의 break 신호를 통해 버스에 연결된 Slave들을 깨울 수 있습니다.
'Ch1 Seminar > IP' 카테고리의 다른 글
LIN overview (3) Schedule table - 2 (0) | 2023.10.30 |
---|---|
LIN overview (3) Schedule table - 1 (0) | 2023.10.16 |
LIN overview (1) Protocol (0) | 2023.10.04 |
UART 통신 overview (0) | 2023.07.26 |
Decimation filter (데시메이션 필터) (0) | 2023.06.10 |