1970년대 후반부터 1980년대에 걸쳐 등장한 자동차에 대한 배출가스 규제와 연비 규제는 기계적 메커니즘에 의존하던 제어에서 전자식 제어로 자동차의 엔진을 크게 변화시켰다. 즉 최적의 점화시기를 제어하고 공기와 연료의 혼합비를 정밀하게 제어하기 위해 ECU에 의한 엔진 제어가 도입된 것이다.
ECU에 의한 고기능, 고정도의 제어는 많은 정보를 필요로 했기 때문에 기존의 기구 정보와 새롭게 설치된 센서 정보를 전기신호로서 ECU에 전송하거나, 반대로 ECU의 제어 명령을 전기신호로 각 기기에 전송하기 위한 전선(와이어 하니스)이 다수 필요하게 되었다.
마이크로 컴퓨터의 발달과 보급은 엔진뿐 아니라 자동차의 전 부분의 제어를 고도화, 고기능화 하는 방향으로 가속화시켰으며 안전성과 쾌적성을 향상시키기 위해 ABS, 에어백, 오토 에어컨, 크루즈 컨트롤 등 다양한 장비의 도입을 가능케 했다. 이들 장비는 각각 ECU를 가지고 있어 다수의 와이어 하니스가 필요했고 다른 기존 전장품에 맞춰 전선의 증가, 중첩 증가, 비용 증대라는 결과를 초래했다.
이 문제를 해결하기 위해 자동차 업체들은 ECU를 버스 결합하여 정보를 공유하거나 집약하는 것과, 다른 전장품에도 적극적으로 ECU를 채용하여 버스 결합함으로써 배선 절약을 실현하는 동시에 협조 동작과 고장진단 같은 기능향상 및 신뢰성 향상을 도모할 수 있는 다중 통신에 의한 차내 네트워크를 채용하기 시작했다.
최근에는 카 내비게이션으로 대표되는 미디어 정보기기, VICS(Vehicle Information and Communication System), ETC (Electronic Toll Collection) 등 차외 정보기기가 크게 발달하고 있으며 이들 정보를 연계하여 안전성과 쾌적성을 높이는데 이용하려는 움직임이 활발하게 전개되고 있다. 이제는 통신 네트워크 없이는 대응이 불가능한 상황이다.
LIN의 응용
요즘 자동차에는 쾌적성과 안전성을 높이기 위해 많은 장비가 탑재된다. 예를 들면 운전석에서 모든 문을 잠그고 해제할 수 있는 중앙 집중 도어록, 취향에 따라 열고 닫을 수 있는 파워윈도, 운전자가 보기 쉽도록 스위치 하나로 최적의 방향으로 조절할 수 있는 연동 도어미러 등은 많은 자동차에 표준 장비로 자리를 잡았다.
이러한 바디 계통 장비의 제어는 어떻게 이루어지는 것인가? 앞서 언급했듯이 자동차에는 ECU라는 제어 장치가 탑재되어 있다. 이것들을 상호 연결함으로써 각 장치가 연동한 복잡한 동작이 가능해진다.
여기서는 전동 도어미러에 주목하여 ECU와 어떻게 연계 동작을 하는지 소개한다.
운전석의 주변에는 전동 도어미러나 파워윈도를 조작하는 다양한 스위치가 배열되어 있다. 이 스위치의 신호를 기초로 전동 도어미러 같은 각 장치를 제어하는 ECU가 있다. 또한 좌우의 도어미러 안에는 미러를 움직이는 모터가 있으며, 모터를 구동하는 ECU도 미러 안에 내장되어 있다. 그리고 2개의 ECU는 하나의 와이어로 연결되어 있다.
운전자가 좀더 외부가 잘 보이도록 왼쪽 도어미러를 움직인다고 가정해 보자. 조작 스위치를 누르면 그 정보는 각 장치를 제어하는 ECU로 전달된다. 또한 모터 구동용 ECU로 전달되어 ECU가 모터를 움직인다. 이렇게 해서 미러의 방향 제어가 이루어진다.
현재 도어미러의 기능은 단지 미러의 방향만 제어하는 게 아니다. 예전에는 방향만 제어했지만 자동차의 기능이 고도화되면서 도어미러도 쾌적성과 안전성을 높이는 방향으로 발전하고 있다. 그 일환으로 좌우의 도어미러를 스위치 하나로 처리하는 기능이 탑재되었다. 또 습기를 제거하는 전열선과 물방울을 제거하는 와이퍼, 방향지시기를 도어미러에 탑재한 차도 등장했다.
이 모든 기능에는 저마다 ECU가 필요하다. 와이어도 마찬가지다. 미러의 방향만 제어할 때는 ECU끼리 하나의 와이어로 접속되었다. 하지만 기능이 다양해지면서 와이어의 개수가 방대해져 공간 문제가 제기되었다. 이 문제를 해결하는 방법으로 차량용 네트워크가 사용된다. 다만 바디계로 분류되는 전동 도어미러나 파워윈도 같은 바디 장비는 고속의 세심한 제어까지는 필요 없고 그만큼 비용을 들이지 않아도 된다. 이러한 조건에 안성맞춤인 차량용 네트워크 방식이 바로 LIN이다.
LIN은 앞서 언급한 전동 도어미러, 파워윈도, 집중 도어록 이외에도 와이퍼, 백미러, 전동 시트 등 여러 곳에 사용된다(그림 1).
눈에 보이지 않는 곳에서는 안전성을 높이는 기능인 ‘탑승자 확인’에도 LIN이 사용되고 있다. 탑승자 확인이란 여러 가지 센서를 이용하여 탑승자가 탑승했는지 여부를 검출하는 기능이다.
LIN의 특징
LIN은 자동차 메이커와 반도체 메이커, 부품 메이커로 구성된 업계 단체인 LIN 컨소시엄에서 표준화한 통신 프로토콜이다(그림 2). 사양은 이 컨소시엄의 웹 사이트에 접속하여 이름과 메일 주소를 등록하면 무상으로 입수할 수 있다. 여기서는 사양에 기초하여 LIN의 5가지 특징을 소개한다. 좀더 깊이 있는 정보는 Part 3에서 보강하기로 한다.
특징 1:싱글 마스터 통신
LIN에는 두 종류의 통신 노드가 있다. 하나는 마스터(Master: 송신자)로, 모든 통신 개시를 관리한다. 또 하나는 슬레이브(Slave: 수신자)로, 마스터가 내리는 명령에 대해 응답한다. 앞서 예에서 전동 도어미러 같은 각 장치를 제어하는 ECU를 포함한 통신 노드가 마스터에 해당하며 전동 미러의 방향을 제어하는 모터 구동용 ECU가 슬레이브에 해당한다.
LIN 통신은 반드시 마스터에서 시작하며, 슬레이브에서 통신을 개시하는 경우는 없다. 그리고 LIN에서는 마스터가 되는 통신 노드가 결정되어 있다. 이 방식을 싱글 마스터 방식이라 한다. 이에 반해 CAN과 FlexRay는 어느 통신 노드에서든 자유롭게 통신을 개시할 수 있는 멀티 마스터 방식이다.
특징 2:최대 15노드의 슬레이브를 버스형 연결
LIN의 네트워크 구성(토폴로지)은 버스형이다. 싱글 마스터 방식의 LIN에서 슬레이브는 마스터의 명령이 있을 때만 통신을 하기 때문에 버스 상에서 신호가 충돌하지 않는다. 하나의 마스터에 대해 최대 15노드까지 슬레이브를 접속할 수 있다.
특징 3:배선은 싱글 와이어
차내의 각 ECU는 트랜시버 IC(데이터의 송수신을 수행하는 부품)를 거쳐서 LIN 네트워크에 접속하며 마스터에서 슬레이브까지 각 ECU는 버스 접속된다. 버스 케이블로는 보통의 메탈선 한 개가 사용된다. CAN은 메탈선 두 개를 맞대어 한 쌍으로 한 트위스트선을 사용한다. FlexRay는 두 개의 트위스트선을 이용한다. 이 때문에 LIN에서는 트위스트선을 사용하는 CAN이나 FlexRay에 비해 한 개의 네트워크 배선만 있으면 된다.
통신거리는 최대 40 m이다. LIN은 CAN과 함께 사용하기도 하지만, 이 경우 CAN은 백본 네트워크로서, LIN은 CAN을 지원하는 네트워크로서 사용되는 경우가 대부분이다.
특징 4 : 통신속도 최대 20 kbps
LIN 사양에서 통신속도는 1~20 kbps의 범위 내에서 규정되어 있다. 실제로 차량용 네트워크로 사용하는 LIN의 통신속도는 각 자동차 메이커의 시스템 사양에 따라 다르지만 2,400비트/초, 9,600비트/초, 19,200비트/초 중 하나를 사용하는 것이 일반적이다.
특징 5:통신 에러는 검출만, 후처리는 애플리케이션에 의존
LIN에서는 송수신이 정상으로 수행되었는지 아닌지의 정보를 기초로 통신 에러를 검출한다. 다만 에러 검출 후의 처리에 대해서는 규정이 없다. 그래서 LIN에서는 애플리케이션에 맞춰서 에러 처리를 임의로 설계한다.
반면, CAN과 FlexRay는 에러 카운터가 있다. 이 에러 카운터 값은 에러가 발생했을 때에는 증가, 에러로부터 복귀했을 때에는 감소한다. CAN과 FlexRay에서는 에러 카운터 값에 따라서 통신 상태를 관리하는 것이 사양에 의해 규정되어 있다. LIN은 이러한 에러 카운터 자체가 없다. 그래서 LIN에서는 에러가 발생했을 경우에 단지 다음 명령을 기다리는 단순한 에러 처리로 하는 것도 가능하다.
LIN의 프레임 구성
LIN의 기본을 이해하기 위해서 먼저 버스 상에서 교환되는 기본적인 통신 단위인 프레임에 대해 살펴보자. LIN 프레임은 헤더(header)와 리스펀스(response)로 구성되어 있다. 마스터가 슬레이브에 헤더를 송신하고, 그 헤더의 내용에 따라서 슬레이브가 마스터에 리스펀스를 보내는 절차이다.
그러면 헤더를 좀 더 자세히 살펴보자. 브레이크(break), 동기 바이트(sync byte), 식별자(ID)라는 3개의 필드가 있으며 각각의 역할에 대해 설명한다.
헤더의 선두 영역에 있는 브레이크는 새로운 프레임의 시작을 나타내는 가변길이의 필드이다. 최소 13비트, 최대 16비트의 “0”(고정값 제로)으로 구성된다. 일반적으로 브레이크 길이는 13비트이다.
브레이크에 이어지는 동기 바이트는 슬레이브가 마스터와 동기를 취해 통신을 수행하기 위한 10비트 고정길이의 필드이다. 동기 바이트의 구성은 1비트의 스타트 비트, 8비트의 데이터 비트, 1비트의 스톱 비트가 된다. 8비트의 데이터 비트는 고정값 “0×55”(2진수 표현으로는 “01010101”)이다. 마스터가 보낸 동기 바이트 중 “0×55”를 슬레이브가 정상적으로 수신하면 동기를 취할 수 있다.
동기 바이트에 이어서 헤더의 최종 영역에 있는 식별자는 프레임의 종류를 지정하는 10비트 고정길이의 필드이다. 식별자는 “0”~“63”(6비트)의 값을 취한다. 또한 이 식별자는 마스터가 각각의 슬레이브를 지정하기 위해서도 사용된다. 슬레이브는 마스터에서 보내온 식별자의 값에 의해서 어느 타입의 프레임이 보낸 것인지, 그것이 자신 앞으로 온 것인지 아닌지를 판단하고 그에 따른 리스펀스를 마스터에 보낸다. 한편 식별자의 필드는 “0”~“63”(6비트)에 이어서 2비트의 패리티 비트(parity bit)가 있다. 그 전후에 동기 바이트와 마찬가지로 1비트의 스타트 비트와 1비트의 스톱 비트가 있기 때문에 전체 10비트 길이가 된다.
다음으로 헤더를 받아들인 슬레이브가 마스터에 돌려주는 리스펀스의 구성을 설명한다. 리스펀스는 데이터와 체크섬(checksum)이라는 2가지 필드가 있다.
리스펀스의 선두에 있는 데이터는 문자 그대로 데이터를 전송하는 가변길이의 필드이다. 미리 결정된 바이트 수(1~8바이트)의 데이터를 전달한다. 헤더 부분에서 설명한 동기 바이트와 마찬가지로 1비트의 스타트 비트와 1비트의 스톱 비트를 1바이트의 데이터에 추가해서 10비트가 된다. 이 때문에 데이터의 필드 길이는 바이트 수×10비트가 된다.
데이터 다음에 오는 체크섬은 데이터를 확인하는 10비트 고정길이의 필드이다. 데이터를 수신하는 측은 전송된 데이터와 체크섬을 비교하여 데이터에 오류가 없는지 확인한다. 체크섬의 필드 길이 역시 동기 바이트와 마찬가지로 8비트의 체크섬 전후에 1비트의 스타트 비트와 1비트의 스톱 비트가 더해져 10비트가 된다.
<저작권자 © AEM. 무단전재 및 재배포, AI학습 이용 금지>