금요일, 1월 13, 2012

[독서광] CAN, LIN, FlexRay를 활용한 차량용 네트워크

MOST: 자동차 멀티미디어 네트워크를 번역한지도 2년 반이 흘렀는데, 세상 만사 아무도 모르는 게 어쩌다보니 다시 기회가 닿아 자동차 쪽으로 뭔가(?)를 해보려는 시점이다(개봉 박두!). 그래서 출판사에 가서 CAN, LIN, FlexRay를 활용한 차량용 네트워크를 한 권 얻어와서 아주 열심히 다 읽었다. 오늘은 CAN에 대해 이야기를 좀 늘어놓으려고 한다.

주변 사람들 중에 요즘 자동차는 전선(?)에 의해 움직인다는 사실을 듣고 화들짝 놀라는 분들을 많이 봤다. 유압, 기구 구동이 아니라 전기적인 신호에 의해 자동차의 각 부품에 지령을 내리고 상태를 파악하는 방식은 이미 일상화되었다(비행기에 성공적으로 적용이 끝난 Fly by wire를 본떴다고 보면 틀림없다). 따라서 차량 내부에는 통신을 위한 네트워크가 깔려있다. 자동차 세상에서는 여러 가지 표준이 경합을 벌이고 있는데, 가장 널리 알려진 표준이 바로 CAN (버스)다. 자동차 전장 장비에 관심이 많은 분들이라면 한번씩 들어본 용어가 아닐까 싶기도 하다. 컴퓨터 분야에 속한 전문가들 관점에서 바라보면 비행기, 고속철도, 자동차 쪽은 기술 발전 속력은 굼벵이 그 자체인데, 그도 그럴 것이 비행기는 보통 개발기간이 30년(요즘은 컴퓨터의 도움으로 많이 단축되었다), 고속철도는 15년~20년(물론 컴퓨터의 도움으로 많이 단축되고 있다), 자동차는 7년 정도가 걸리기 때문에 엄청나게 보수적이다. 칩셋은 양산 3~5년 전에 모든 스펙이 결정되어 고객사에 전달되며, 그 이후에도 버그 수정을 제외한 나머지 기능 추가는 엄청나게 느리게 전개된다. CAN의 경우에도 1983년부터 개발에 들어가서 1986년에 첫 표준안이 나왔고, 2000년도에 들어와서야 본격적으로 퍼지기 시작했다고 보면 틀림없다. 자동차에 얼마나 많은 전자장비들이 있고, 복잡하게 연결되어 있는지는 다음 그림을 살펴보기 바란다(아, 물론 제조사별 최상위 차량에 해당하는 내용이다).

(그림은 Controller Area Network (CAN) Diagnostics 페이지에서 가져옴)

CAN은 멀티마스터 버스 접근, 충돌 회피가 가능한 임의 접근(CSMA/CD), 최대 1MBPS에 이르는 속력, 최대 8바이트인 짧은 메시지 길이, 자체 동기화된 비트 코딩 기법, 물리적으로 결함이 생긴 노드 차단과 결함 메시지 재전송으로 대표되는 결함 포용 특성과 같은 여러 가지 좋은 특성이 있으며, 프리스케일, ATMEL 등등 여러 회사에서 검증된 칩셋을 제공하므로 개발/구현도 용이한 장점이 있다. 물론 실시간성, 속도, 장비 중복성과 같은 더 좋은 특성을 위해 FlexRay와 같은 프로토콜이 등장하긴 했지만, 당분간은 CAN이 자동차 업계를 호령하리라는 생각이다. CAN이 자동차 전용 네트워크로 알고 계신 분들도 있을텐데, 반드시 그렇지만은 않다. 오랜 시간이 지났음에도 불구하고 여러 가지 좋은 특성으로 인해 산업용 네트워크, 철도/선박용 네트워크, 의료 기기용 네트워크(실제 상용 안과용 진단 기기에 CAN 네트워크를 적용해 개발한 경험이 있다)는 물론이고 CAN 확장 규약인 ARNIC_825를 제정해 비행기에도 CAN 기술을 사용하고 있다. 예를 들어, 최신 에어버스 380이나 보잉 787 기종에는 CAN 네트워크가 조종석과 항법 장비에 쓰이고 있다는 사실을 기억하기 바란다. 따라서 혹시 열악한 운영 환경에서 안정성을 담보로하는 통신 네트워크가 필요하다면 CAN도 한번 고려하기 바란다.

일반적인 기술 설명이 끝났으므로, 책 내용과 구성을 한번 보자. 이 책은 이렇게 복잡한 차량 네트워크에 사용되는 핵심 기술인 CAN을 필두로 저가형 로컬 네트워크를 구성하는 LIN, CAN을 대체할 수 있는 차세대 표준인(물론 그냥 사라질 수도 있다) FlexRay, 차량용 멀티미디어 네트워크인 D2B와 MOST를 설명하고 있다. 이미 짐작하셨겠지만 네트워크 표준을 중심으로 서술되다보니까 전기적인 특성, 물리적인 특성(전달 매체에 따라), 프로토콜 자체 특성(인코딩 방법을 비롯해 무결성 보장, 충돌 감지, 오류 처리 등등)이 프로토콜 별로 줄줄이 등장한다. 순수 소프트웨어 개발자가 읽기에는 아주 힘들지 않을까(물론 네트워크를 전공했거나 전자쪽 감이 있는 분이라면 또 다를지도) 살짝 걱정이 앞서며, 전자 쪽 개발자가 읽기에는 큰 무리가 없어 보인다. 목차를 보면 알겠지만, 아무래도 CAN이 가장 널리 쓰이기 때문에 책의 절반 이상이 CAN에 집중되어 있다. CAN 버스 개요, 프로토콜 소개, 물리 계층, 매체, 부품, 실시간 확장에 대해 단계별로 차근차근 설명하므로 이 책 한 권만 읽으면 일단 CAN에 대해 기초적인 지식 습득이 가능하다. 책 후반은 Lin, FlexRay, Safe by Wire, D2B, MOST와 같은 전반적인 자동차 네트워크 기술을 다루고 있으므로(물론 CAN과는 달리 개괄적인 설명에 치우치는 느낌이 들긴 했다), 자동차 네트워크의 큰 그림을 그리는 과정에 도움이 될 것 같다. 어차피 국내 유일(?)의 본격적인 CAN 서적이므로 다른 대안이 없다는 사실도 기억하자.

하지만 이런 부류의 기술서적에 늘 따라다니는 문제점이 하나 있는데, 바로 용어 번역이다. 나보구 번역하라고 해도 사실상 대책이 없긴 하지만(전자쪽 책 용어 선정 잘못했다가 평생 먹을 욕을 다 먹어본 경험이 있다고 고백을 늘어놓으며 시작하자), 이 책에서 쓰이는 용어를 읽다보면 엄청난 상상력이 필요할지도 모른다. 따라서 시간이 충분하고 영어 독해에 문제가 없는 분들께는 원서를 강력하게 추천하고, 시간이 부족하고 영어책만 읽으면 졸리는 분들께는 번역서를 추천한다.

EOB

댓글 3개:

  1. 저도 이 책보면서 조금 아쉬운 점이 용어의 번역이었습니다. 제 생각에는 좀더 독자층을 넓히려고 쉬운 단어를 고른 것이 아닌가 합니다.
    하지만 국내에서 보기드문 산업용 네트워크 관련, 특히 자동차 네트워크에 한정된 책, 기본 원서가 좋은(단순히 스펙 번역이 아니고 저자의 경험이 묻어나는)책이라 1권사서 봤습니다.
    결국 어둠의 세계로 영문판을 그래서 같이 보기는 했지만 좋은 책이라고 생각합니다
    박재호님이 이 책을 같이 봤다고 하니 신나서 막 적어버렸네요 ㅎ

    답글삭제
  2. foboys님, 자동차 + IT 관련해서 독자층이 아주 얇은데 같은 책을 읽으셨다니 정말 반갑습니다. 앞으로도 좋은 정보 많이 공유하도록 노력하겠습니다. ;)

    - jrogue

    답글삭제
  3. 몇일전에 이 기사를 보다가 님이 버역하신 책이 생각 나더군요 ^^

    Leverage Ethernet to improve passenger safety, comfort, and convenience :
    http://www.eetimes.com/design/automotive-design/4234869/Leverage-Ethernet-to-improve-passenger-safety--comfort--and-convenience?cid=NL_EmbeddedInternet&Ecosystem=embedded-internet-design

    In-vehicle networking today and tomorrow :
    http://www.eetimes.com/design/embedded-internet-design/4235477/In-vehicle-networking-today-and-tomorrow?pageNumber=0&Ecosystem=embedded-internet-design

    답글삭제