분산전자시스템을 위한 저속 시리얼 버스 `LIN`
In-Vehicle Networking
2007년 04월호 지면기사  / 정리 | 편집부

LIN 컨소시엄은 1998년 12월에 아우디, BMW, 다임러크라이슬러, 볼보, 폭스바겐 등 다섯 개 자동차 메이커와 툴 제조회사인 VCT, 반도체 제조사인 프리스케일반도체(구 모토로라)가 주축이 되어 워크그룹으로 출발했다. 이 워크그룹의 목적은 자동차에서 저렴한 네트워크 통신을 실현하기 위한 공개 표준을 만드는 것이다.
최초의 LIN 사양은 1999년 7월에 발표되었다. LIN 설계는 여러 자동차 메이커가 채택하고 있는 Vlite(Volcano Lite) 버스의 영향을 받았다. LIN 표준은 2000년에 두 번의 업데이트 과정을 걸쳐 LIN 2.0 버전이 되었다. 그리고 2002년 11월에 주로 물리층에 변화를 주어 노드 간 호환성을 향상시킨 LIN 1.3 버전이 공개되었다. 현재 표준인 LIN 2.0은 2003년 9월에 발표되었다.
한편, 북미에서는 미국 SAE(Society of Automotive Engineers)가 포드와 GM 등 주요 자동차 메이커 대표들과 함께 J2602 사양의 권장안인 ‘자동차 애플리케이션용 LIN 네트워크’를 발표했다. LIN 2.0과 J2602의 큰 차이는, J2602는 통신 속도가 10.4Kbps로 제한되어 있으며 에러 핸들링과 같은 프로토콜이 일부 수정되어 있다는 점이다. LIN은 CAN이나 미국 규격인 J1850보다도 저렴하다.
LIN 표준은 데이터 전송뿐만 아니라 고도로 자동화된 툴 체인을 포함하고 있다. 이것은 분산된 시스템에서 증가하고 있는 복잡성, 구현, 소프트웨어의 유지관리에 대한 문제를 해결해준다. 이러한 이유로 LIN 사양은 그림 1과 같이 프로토콜과 전송매체의 정의는 물론 개발 툴과 네트워크-독립적인 애플리케이션 소프트웨어를 위한 인터페이스도 포함하고 있다.
LIN은 공용 UART/SCI 인터페이스를 사용하며 전송 속도 최고 20Kbps의 확정적 데이터 전송을 보장한다.
LIN 버스의 대표적인 애플리케이션으로는 그림 2와 같이 도어, 스티어링 휠을 비롯한 다양한 조립 장치가 포함된다. LIN 프로토콜의 특징 중 하나는 슬레이브 노드에 크리스털 또는 세라믹 공진기를 사용하지 않아도 자체적으로 동기화 가능하다는 것이다. 이러한 자체 동기화 기능은 SCI 기반 통신 방식의 간편성과 더불어 LIN 구현의 비용 효율성에 크게 기여하는 요소이다. 물리층은 단선 12V 버스 인터페이스로 차량 운행시 EMC와 ESD, 소음으로 인한 특별한 조건에 적합한 자동차 진단용 ISO9141 표준에서 비롯되었다.
LIN 구성 언어는 노드와 인터페이스, 대기시간 등과 같은 네트워크 토폴로지와 대상을 기술하는데 사용된다. 이것은 벤더가 다른 데이터베이스 매니저, 네트워크 구성 매니저 또는 네트워크 애널라이저/에뮬레이터 같은 개발 툴의 통합을 가능하게 한다.
마지막으로 애플리케이션 프로그래머의 인터페이스는 하나의 ECU에서 애플리케이션과 통신 소프트웨어 간에 공통된 호출을 정의한다. API의 정의는 간단하면서 아주 강력하여 자동 코드 생성 기능을 제공한다.

작동 원리
LIN의 작동 개념은 단일 마스터/다중 슬레이브 토폴로지에 기초한다. 이러한 개념에서 LIN 클러스터는 하나의 마스터 노드와 여러 개(최대 15개)의 슬레이브 노드로 구성되어 있다. 그림 3은 LIN 노드를 2개의 독립적인 부분으로 가상 분할하는 방법을 보여주는 것으로, ‘마스터 작업’은 전송 시기와 전송할 프레임을 결정하며, ‘슬레이브 작업’은 LIN 버스 상에서 전송할 데이터를 제공한다.
일반적인 마스터 노드는 마스터 작업과 슬레이브 작업 둘 다로 구성되지만 슬레이브 노드는 슬레이브 작업만 포함한다.

프레임 구성
LIN 버스를 통해 전송되는 데이터 단위를 프레임이라고 한다. 각 프레임은 마스터 작업에서 제공하는 헤더와 슬레이브 작업에서 처리되는 응답으로 구성된다.
헤더에는 마스터 작업에서 생성되는 최소 13비트 이상 길이인 LIN 버스의 우세한 상태가 유지되는 브레이크, 데이터 값 0×55의 비트 필드로 슬레이브 작업이 마스터 클록에 동기화할 수 있도록 하는 동기화 필드, 수신자의 주소를 제외하고 메시지 내용을 고유하게 정의하는 보호된 식별자(PID)가 포함된다. PID는 6비트 길이의 식별자(ID) 및 그 뒤에 오는 패리티 비트 2개로 구성되어 있다.
LIN 프레임의 응답 부분은 슬레이브 작업에서 제공하며 1~8바이트의 데이터를 전달하는 데이터 필드, 반전된 8비트 합(inverted 8bit sum)과 자리올림(carry-over) 데이터 바이트가 포함된 체크섬 필드로 나눌 수 있다. LIN 프레임의 구조는 그림 4에서 확인할 수 있다.
LIN 프레임의 응답 부분에서 전송되는 데이터 내용에는 3가지 유형이 있다.
우선, 응답의 데이터 필드에 포함된 스칼라 값 또는 바이트 어레이 신호가 있다. 이 경우 프레임의 ID는 0×00에서 0×3B 사이이어야 한다. 유의할 점은 데이터 필드에서의 신호의 위치가 동일한 PID를 가진 프레임에 대해서는 고정된다는 것이다.
두 번째 유형으로 진단 또는 구성 데이터를 전송하기 위해 사용되는 진단 메시지가 있다. 이 메시지는 항상 8비트 길이이며 예약된 ID를 사용한다. 즉, 마스터 요청에는 0×3C ID가 사용되며 슬레이브 응답에는 0×3D가 사용된다.
세 번째 유형으로는 예약된 메시지가 있다. 이것은 사용자 정의 확장을 위해 사용되거나(이 경우 ID는 0×3E와 같음), 미래의 프로토콜 향상을 위해 예약될 수 있다(ID는 0×3F로 설정).
마스터 작업에 의한 헤더의 전송은 클러스터의 스케줄 테이블을 바탕으로 수행된다. 스케줄 테이블이란 개념은 네트워크의 과부하를 예방하고 확정적 데이터 전송을 보장하기 위한 메커니즘이다.

네트워크 관리
LIN 사양의 네트워크 관리는 클러스터 켜기 및 끄기 프로세스만을 의미한다. 구성 감지 또는 림프 홈 관리 등 다른 모든 네트워크 관리 기능은 애플리케이션에서 처리한다.
마스터 노드는 모든 슬레이브 노드를 저전력 모드로 시작하기 위해 0과 동등한 첫 번째 데이터 바이트를 사용하여 마스터 요청 프레임을 내보낸다. 이 프레임은 끄기 명령으로 해석되며 슬레이브 노드 소프트웨어가 저전력 모드로 정확하게 진입하는데 필요한 모든 단계를 처리하도록 한다. 또한 슬레이브 노드는 LIN 버스가 25,000비트 이상(또는 LIN 2.0 사양이 사용되는 경우 4초 이상)의 시간 동안 비활성 상태인 경우 자동으로 저전력 모드로 들어가야 한다.
모든 노드는 절전 모드에 있는 LIN 클러스터를 켜기 위해 켜기 명령을 내보낼 수 있다. 켜기 요청은 버스를 250μs에서 5ms 사이의 시간 동안 강제로 지배적 상태로 만들면 제기된다. 모든 슬레이브 노드는 켜기 요청을 감지하고 100ms 이내의 버스 명령을 수신할 준비가 되어 있다.
LIN 노드의 전원 관리 상태 도표는 그림 5와 같다.

LIN 2.0 사양 패키지
LIN 2.0 버전은 LIN 컨소시엄에 의해 확인된 경향을 반영했으며, 특히 기존 슬레이브 노드를 사용하는 경우 SAE J2602 태스크포스가 제공한 의견도 포함하고 있다. LIN 2.0 사양 패키지는 다음과 같은 부분으로 구성된다.

- LIN 물리층 사양은 전송률, 클록 허용오차 등을 포함하는 물리층을 설명한다.
- LIN 프로토콜 사양은 LIN의 데이터 링크 계층을 설명한다.
- LIN API 사양은 구성 및 진단 계층을 포함하여 네트워크와 애플리케이션 프로그램 간 인터페이스를 설명한다.
- LIN 구성 언어 사양은 LIN 설명 파일(*.ldf)의 구문론 및 의미론을 설명한다.
- LIN 진단 및 구성 사양은 진단 메시징 및 노드 구성을 위한 정보를 제공하도록 데이터 링크 계층의 상단에 쌓을 수 있는 서비스를 설명한다.
- LIN 노드 기능 언어 사양은 플러그-앤-플레이 도구와 함께 사용하여 LIN 설명 파일을 자동으로 만들 수 있는 재고 슬레이브 노드(*.ncf)를 설명하기 위해 사용되는 형식(*.ncf)을 정의한다.

LIN 2.0 사양 패키지의 모든 부분이 어떻게 조화되는 지 그림 6의 LIN 개발 워크플로를 참고하기 바란다.
LIN 1.3 사양 패키지와 함께 LIN 2.0은 http://www.lin-subbus.org에서 무료 주문할 수 있다(등록 후).
LIN 1.3과 LIN 2.0 사양 패키지를 비교하여 발견되는 2가지 가장 중요한 변화는 구성 및 진단을 위한 표준화된 지원과 지정된 노드 기능 파일이며, 이 둘은 모두 재고 노드의 사용을 간편화하기 위한 것이다.
기타 중요한 변화에는 다음과 같은 것들이 있다.



<저작권자 © AEM. 무단전재 및 재배포, AI학습 이용 금지>


  • 100자평 쓰기
  • 로그인


  • 세미나/교육/전시

TOP