Ch1 Seminar/IP

LIN overview (1) Protocol

베린이 2023. 10. 4. 09:22
반응형

오늘날의 자동차는 단순히 이동 수단이 아니라 여러 가지 기능이 있습니다. 이를 구현하기 위해서 자동차에는 내부 통신 규격이 필요한데요, 대표적으로 CAN과 LIN이 있습니다. 이 글에서는 LIN에 대해 정리해 보도록 하겠습니다.
 

- LIN의 특징

LIN(Local Interconnect Network)은 자동차의 단순한 기능을 위한 통신 규격입니다. 그러니까 고성능을 위한 통신은 CAN, 저성능을 위한 기능은 LIN이라고 보시면 되겠습니다.

  • 저비용
  • 1 Master - multi Slave (최대 15개의 Slave 연결 가능)
  • 주로 조명, 창문 컨트롤, 좌석 조절기 등의 낮은 성능 지원 (CAN은 엔진 제어, 브레이크 시스템 등의 주요 시스템)
  • 1-wire의 단순 구조 통신 (CAN은 2-wire)

 

차량용 통신 비교 < 출처: 바이너리 임베디드 >

 

Application Specific LIN application examples
RoofSensor, light sensor, light control, sun roof
Steering WheelCruise control, wiper, turning light, climate control, radio
SeatSeat position motors, occupant sensors, control panel
GrilleGrille shutter
ClimateSmall motors, control panel
DoorMirror, central ECU, mirror switch, window lift, seat control switch, door lock

 

- LIN protocol

LIN 통신은 크게 두 가지 Frame으로 구성되어 있습니다. 먼저 Master에서 Frame header를 통해 통신을 시작하면, Slave에서 Frame response를 통해 응답하는 형식입니다. Frame response는 Master에서도 나올 수 있습니다.
 

 
Frame Header의 break field를 제외하고, Frame을 이루고 있는 모든 byte field는 Start bit와 Stop bit를 포함해 10bit로 이루어져 있습니다. 그리고 LSB first, MSB last입니다.
 

 

1. Frame Header (Master)

 

Frame Header < 출처 : TI, LIN Protocol and Physical Layer Requirements >

 
Frame Header는 크게 3가지 파트로 구분됩니다.

  • Sync break: 통신이 시작됨

Master는 LIN 버스에 sync break를 보냄으로써 통신이 시작됨을 알립니다. Slave들은 sync break를 받고 통신이 가능하도록 준비해야 하기 때문에 13bit 이상의 긴 시간 동안 LOW 상태를 유지해야 합니다.
 

  • Sync field: Slave들이 Master에 동기화될 수 있도록 싱크 정보 전달

LIN통신은 1-wire 통신이기 때문에 클럭이 따로 없습니다. 그래서 Master - Slave 간의 통신이 가능하려면 당연히 통신속도를 맞춰야 합니다. Master에 연결된 Slave들은 Sync field signal(0x55 고정)의 falling edge를 통해 통신속도를 맞춥니다.
 

 

  • PID filed: 통신 정보 전달

LIN은 I2C의 address phase나 SPI의 CS(chip select) signal 같이 특정 slave를 지정하는 신호를 사용하는 것이 아니라 PID를 통해 어느 slave가 통신에 참여하는지 지정됩니다. 이러한 설정은 LDF 파일을 통해 정해지는데 자세한 이야기는 추후에 다시 하도록 하겠습니다.
 

PID field

 
PID field는 6-bit의 ID와 2-bit의 parity로 이루어져 있습니다. 즉, 사용가능한 ID는 0x0부터 0x3F입니다.
이중 0x0~0x3B는 일반적인 통신으로 사용되고, 0x3C는 Master Request Frame, 0x3D는 Slave Response Frame으로 사용됩니다.
Parity 계산 방법은 다음과 같습니다.

Parity 계산법

 

2. Frame Response (Master or Slave)

 

Frame Response < 출처 : TI, LIN Protocol and Physical Layer Requirements >

 
Frame Response은 크게 2가지로 구분됩니다.
Data field: 데이터 전달, 1번의 Frame에서 최대 8 byte 전송 가능. PID에 따라 1,2,4,8 byte 전송
Checksum: 오류 확인
Checksum의 오류확인 방법은 받은 Data들을 모두 더하고 carry를 빼는 방식으로 계산합니다.
 

Checksum 계산법 예시

 
Checksum은 두 가지가 있는데 classic checksum과 enhanced checksum이 있습니다. Classic checksum은 Data만으로 계산하고 enhanced checksum은 Data와 PID로 checksum 계산을 합니다.
 

Classic checksum VS Enhanced checksum

 
어떤 checksum을 사용할지는 사용자가 정하는 거지만, PID가 0x3C거나 0x3D일 때는 항상 classic checksum을 사용해야 합니다.

'Ch1 Seminar > IP' 카테고리의 다른 글

LIN overview (3) Schedule table - 1  (0) 2023.10.16
LIN overview (2) Sleep, Wake up  (0) 2023.10.11
UART 통신 overview  (0) 2023.07.26
Decimation filter (데시메이션 필터)  (0) 2023.06.10
I2C 통신 overview  (5) 2023.05.24