본문 바로가기
IT 톺아보기/이런저런 공부

LIN이란?

by 파초우 2023. 5. 8.
반응형

목차

 

LIN이란?

차량에 전자장치가 증가하는 과정에서 많은 부분에 있어 CAN bus를 사용하기에는 많은 비용이 발생했다. 단가를 낮추려고 하는 필요성이 발생하면서 유럽 완성차 업체들이 다른 serial 통신 기술들을 사용하기 시작했고 호환성과 관련한 문제를 해결해야 했다. 이를 위해 1990년 후반, LIN 컨소시엄이 5개의 완성차 업체에 의해(기술을 제공하는 Volcano Automotive Group and Motorola 포함) 설립하게 되었습니다. 현재 사용되는 LTS 버전인 1.3이 2002년에 출시되었고, 다음 해에 2.0버전이 출시되었습니다.

  • Local Interconnect Network의 약자로, CAN bus의 보완적인 요소
  • 적은 비용으로 선택 가능. but, 속도나 실패에 대한 내성이(신뢰성 문제) 있어 창문이나 와이퍼, 에어컨디셔너 등에 사용됨(기능 동작 중 에러로 인해 인명에 큰 피해를 주지 않는 부분에 사용)
  • 1개의 Master에 최대 16개의 Slaves로 구성 가능
  • Single wire 통신은 19.2kbit/s @ 길이는 40m 까지 확장 가능. LIN 2.2 버전에서는 20kbit/s까지 빨라질 수 있음
  • LIN은 에러 검출, 체크섬 및 구성을 제공
  • 데이터 길이를 2, 4, 8 bytes로 다양하게 가져갈 수 있다.
  • 12V에서 작동
  • 레이턴시 타임에 대해 보장이 됨
  • ISO1941에 기초하여 물리계층을 구성하고 있다.
  • Sleep / wake-up mode 를 제공
  • 계층형 네트워크를 지원
  • 최근에 생산되는 차량은 대부분 10개 이상의 LIN nodes가 설치되어 있음

LIN bus vs CAN bus

  • LIN은 CAN 보다 저렴(적은 하네스, license 비용 X, 저렴한 nodes)
  • CAN은 5V 이중 차폐 연선 vs. LIN은 12V 단선
  • LIN Master는 전형적으로 CAN bus에서 게이트웨이로 제공된다.
  • LIN은 이벤트 구성 방식이 아닌(버스 조정이 없음) deterministic 방식
  • LIN cluster는 하나의 Master를 가짐(CAN의 경우 multiple Master를 가질 수 있다.)
  • CAN은 11 혹은 29 bits 식벌자를 사용하지만 LIN은 6 bits의 식별자를 사용한다.
  • CAN의 경우, 1Mbit/s까지 제공이 가능한 반면 LIN은 최대 20kbit/s까지만 제공이 가능

LIN bus는 어떻게 작동하는가?

  • LIN 통신은 상대적으로 간단하게 작동. Master node가 각 slave nodes를 돌면서 정보가 들어있는 요청을 보내고 해당되는 각 slave가 작동을 진행. date bytes는 LIN bus 신호(원시 형태로)를 포함
  • 각 사양이 업데이트 되면서 LIN에 해당 기능이 추가되면 복잡해질 수 있음

LIN frame format

  • 간단한 용어로ㅡ LIN bus message frame은 header와 response로 구성되어 있습니다.
  • 전형적으로, LIN master는 header를 LIN bus로 전송합니다. 이것을 slave를 트리거하게 만들고 response에 최대 8 bytes까지의 데이터 를 보내게 합니다. 아래 그림은 전체적인 LIN frame format입니다.

출처: CSS Electronics

LIN frame fields

Header

  • Break: 소위 Break로 불리는 Sync Break Field(SBF)최소 13 + 1 bits의 길이입니다.(실제로 18 + 2 bits의 길이가 전형적입니다.) Break field는 bus의 모든 LIN node에게 “start of frame”을 알려주는 역할을 합니다.
  • Sync: 8 bits Sync field는 0x55(0b01010101)로 사전에 정의된다. 해당 구조는 LIN nodes가 rising/falling edge사이의 시간을 결정할 수 있고 Master node에서 사용되는 baud rate(pulse/s or symbol/s)를 조절할 수 있다. 이를 통해 각각 동기화 상태를 유지할 수 있음
  • Identifier: 식별자는 6 bits, 뒤에 2 parity bits가 따라온다. ID(6 bits)는 전송된 LIN message와 header에 반응하는 식별자로 작동한다.
    1. 이후 데이터 전송을 무시
    2. 다른 node로부터 전송된 데이터를 수신
    3. header에 응답하여 데이터를 게시
  • 일반적으로, 한 번에 하나의 slave가 정보룰 얻기 위해 polling됩니다. 해당 의미는 slave 간 충돌이 방생하지 않는다는 의미
  • 6 bits는 64개의 ID가 허용되는데, ID60와 61은 diagnostics에 사용되고, ID62와 63은예약되어진다.

Response

  • Data: LIN slave는 master에 의해 polling되면 2, 4 혹은 8 bytes의 data로 전송되어 반응됨. data 길이는 커스터마이징 될 수 있지만, 일반적으로 사용되는 ID 길이가 있다. (ID 0-31: 2 bytes, 32-47: 4 bytes, 48-63: 8 bytes) data bytes는 LIN signals 형태로 통신할 수 있는 실질적인 정보를 포함하고 있음. LIN signals는 data bytes 내로 패킹되어 진다.
  • Chacksum: CAN에서 처럼, checksum field는 LIN frame의 유효성을 보장한다. “일반적인” 8 bit chacksumdata bytes의 합계만을 기반으로 하고(LIN 1.3), 반면에 “강화된” checksum 알고리즘식별자 field 또한 포함한다.(LIN 2.0)

Inter byte & response space

  • 저비용의 LIN slave들은 낮은 퍼포먼스로 종종 딜레이를 발생시키기도 한다. 이를 방지하기 위해, inter byte space는 아래의 그림처럼 선택적으로 추가될 수 있다. 더 나아가, header와 response 사이에는 slave node들이 master’s header에 반등할 수 있는 충분한 시간을 허용하는 “response space”가 있음

출처: CSS Electronics

Six LIN frame types

LIN frame에는 다양한 타입이 존재하는데, 실제로는 대다수의 통신이 “무조건적인 frame”을 통해 이루어진다. 또한, 각 항목은 기본 LIN frame 구조를 따르며 data bytes의 타이밍이나 내용에 따라 다름

출처: CSS Electronics

Unconditional Frames: master가 (특정 slave로부터 정보를 요청하는) header를 보내는 기본 형태의 통신, 관련된 slave는 header에 따라 반응한다.

 

Event Trigger Frames: master는 다양한 slave들을 polling 한다. 만약에 해당 (1st data type안에 보호된 ID와 함께)데이터가 업데이트 되면, slave가 반응한다. 만약 mutiple response이면, 충돌이 발생하고 master는 Unconditional Frames으로 기본 세팅 된다.

Sporadic Frames: 특정 slave가 업데이트된 data를 알고 있는 경우에만 master가 전송합니다. master는 ”slave로 작동하고” 자체 header에 대한 응답을 제공함. 즉, slave node에 “동적인” 정보를 제공

 

Diagnostic Frames: LIN 2.0부터, ID61과 62는 msater 혹은 slaves의 진단을 읽는데 사용이 되어진다. Frames는 항상 8 data bytes 를 포함하고 ID 60은 master 요청에 사용이 되고, ID 61은 slave 반응에 사용이 된다.

 

User Defined Frames: ID 62는 모든 유형의 정보를 포함할 수 있는 user defined frame이다.

 

 

Reserved Frames: Reserved Frames는 ID 63을 가지고 있으며 LIN 2.0을 준수하는 Network에서는 사용하면 안된다.

 

 

 

출처

https://www.csselectronics.com/pages/lin-bus-protocol-intro-basics

 

LIN Bus Explained - A Simple Intro [2023]

LIN bus tutorial: In this intro you'll learn the LIN protocol basics, master/slave LIN communication, LIN frames, LDF vs. DBC - and LIN signal data logging

www.csselectronics.com

 

반응형

'IT 톺아보기 > 이런저런 공부' 카테고리의 다른 글

Naver map API를 이용하여 네이버 지도를 화면에 띄우기  (2) 2024.01.08
UART protocol  (1) 2023.05.24
memmove 사용법  (0) 2023.04.21
memset 사용법  (0) 2023.04.20
CAN Message  (0) 2023.04.19