yoncho`s blog

LIN, 자동차 통신 프로토콜 Local Interconnect Network 본문

기술, 나의 공부를 공유합니다./[Vehicle] Etc

LIN, 자동차 통신 프로토콜 Local Interconnect Network

욘초 2024. 9. 28. 14:06

1.0 LIN [Local Interconnect Network]

LIN이란, 자동차 네트워크 컴포넌트 사이의 통신을 위한 직렬 통신 시스템이다.
CAN과 같이 네트워크 보완하기 위해 고안된 저가형 임베디드 네트워킹 표준이다.
저가형 8bit MCU에 내장된 표준 시리얼 유니버셜 비동기 송수신기(UART)를
사용하면 LIN통신을 구현할 수 있다고 한다..
LIN은 CAN의 고대역폭과 다기능을 필요로 하지 않는 장치들의 통신에 사용된다.
즉, 고기능을 요구하지 않는 간단한 동작을 위한 장치들에서 사용된다.

1.1 LIN 사용 애플리케이션

ROOF : Sensor, Light Control, Sun Roof
Steering Wheel : Cruise Control, Wiper, radio, Climate Control
Seat : Position Motors, Control Panel, Occupant Sensors
Engine : Sensors, Small Motors, Cooling Fan Motors
Door : Mirror, Central ECU, Window Lift, Door Lock
이 외에도 장애물 감지해주는 전후방 주차보조시스템(PAS, Parking Assist System),
주변 상황을 위에서 보는 듯한 어라운드 뷰 시스템(AVM, Around View Monitor),
주자 조향 보조 시스템(SPAS, Smart Parking Assist System)등
운전자 보조시스템들에 적용된다.

1.2 LIN 특징

  1. 단일 마스터-다중 슬레이브 구조하나의 마스터 노드가 LIN 버스 내 모든 통신을 제어, 마스터 노드로 인해 LIN통신 시작, 모든 슬레이브 노드는 마스터의 허락하에 통신 가능
  2. 멀티캐스트 수신마스터or슬레이브 태스크에서 메시지 전송이 될때, 네트워크상 연결된 모든 노드가 메시지를 읽을 수 있다.
  3. 클럭 동기화 방식마스터가 전송한 Synch Field를 읽어 모든 슬레이브는 마스터 클럭에 동기를 맞춘다.
  4. 가변 데이터 프레임ID필드에서 ID4와ID5영역은 메시지 필드 길이를 나타내는데, 이 비트를 이용해 데이터 길이를 조절, 송수신 데이터 양 제한 시 데이터 오버헤드를 줄여준다.
  5. 데이터 체크섬과 에러 검출메시지 프레임에 포함된 데이터는 Inverted module256-checksum으로, ID는 XOR알고리즘으로 에러검출
  6. 네트워크 내 손상 노드 검출마스터 노드가 모든 노드들이 정상적으로 동작하는지 점검한다.

1.3 LIN BUS 동작 원리

LIN은 마스터-슬레이브구조로 되어있다.
이 구조는 하나의 마스터가 네트워크 내 통신을 제어한다.
LIN버스에서 마스터는 데이터를 요청, 제어 명령을 전송하고
슬레이브는 마스터로 받은 데이터 요청에 데이터를 수집해 응답하고,
제어 명령을 수행한다.

  • 마스터 노드 : 통신 속도 정의, 동기 신호 전송, 데이터 모니터링, sleep/wake up 모드 전환
  • 슬레이브 노드 : 동기 신호 대기, 신호 이용해 동기화, 메시지 식별자 이해

LIN 버스는 하나의 마스터 노드와 최대 16개까지의 슬레이브 노드로 구성되어있다.

1.4 LIN 메시지 프레임

LIN버스 전송 기본 단위는 프레임이다.
메시지 프레임은 헤더(Header)와 응답(Response)로 나뉜다.
헤더는 항상 마스터 노드의 마스터 태스크가 전송하며,
3개의 필드(sync break, sync, id)로 구성된다.
응답은 슬레이브 태스크가 전송하며,
데이터페이로드(Data 1 ~ n)와 체크섬(Checksum)으로 구성된다.

  1. SYNC Break Field : 메시지 프레임의 시작을 나타내는 필드, 마스터 태스크가 전송가능하며 슬레이브 태스크가 동기필드를 준비할 수 있게 한다.
  2. SYNC Field : 슬레이브가 마스터 클럭과 동기화하는데 필요한 신호 포함, 슬레이브가 이 신호로 현재 bit time을 측정, 내부 baud rate를 재계산해 동기화한다.
  3. ID Field : 메시지 프레임의 내용을 설명, LIN 네트워크에서 어떤 노드가 이 메시지에 어떻게 반응하는지 결정한다.
  4. Data Field : 헤더 ID에 응답하는 슬레이브 태스크에 의해 작성된다. 단 하나의 슬레이브가 식별자에 대응될 수 있다.
  5. Checksum Field : 메시지의 유효성을 판단, ID를 제외한 데이터 프레임 모든 바이트의 module-256합을 포함


여기서 특히 ID Field를 보면 ID4,ID5필드는 길이를 조절할 수 있다.
즉, 전송 데이터의 길이를 조절할 수 있는 필드이다.

헤더를 수신하면 모든 슬레이브 태스크는 메시지 ID를 확인해 검증하고, 수신할지 결정한다.
메시지에 응답해야된다면 슬레이브 태스크가 데이터 페이로드와 체크섬을
LIN메시지 프레임의 응답부분에 채우고 버스로 전송한다.

1.5 마스터-슬레이브 동작 과정

1.6 LIN 버스 2가지 상태

Active(활성), Sleep(저전력)
데이터가 버스에 있는 동안, 모든 노드는 활성화 상태가 된다.
그러나 특정 시간동안 버스가 유휴(비어진, 사용가능한) 상태이면
저전력모드(Sleep)로 마스터에의해 전환된다.
이런 진단을 go-to-sleep-command라 한다.
이후 데이터가 감지되면 wakeup프레임(sleep모드를 종료시키고 active시키기위한 프레임)
이 Sleep모드를 종료시키고, Active(활성)모드로 전환된다.


참고
[CAN, LIN, FLEXRAY] fescaro_blog

Comments