본문 바로가기
책속에서 얻은 정보

스마트카가 움직이는 원리

by ʡ 2018. 5. 12.
반응형

자동차 동작 제어의 핵심은 ECU[각주:1]입니다. 각 ECU간에는 명령어를 서로 전달 받을 수 있습니다.

 

 

 

 기능

 운전자 행동

ECU 제어 

   핸들

 핸들을 왼쪽으로 방향을 바꾸고 있다 

 바퀴를 왼쪽 방향으로 돌려라 

   페달

 가속하고 있다/감속하고 있다 

 엔진의 회전 속도를 높여라/낮춰라 

   라이트

 자동모드

 어둡다→라이트를 켜라 

 

 

메인 ECU는 각 기능들에 대한 상태를 항상 보고받고 있다. 운전자가 핸들을 어떻게 조작하는지, 페달을 어떻게 밟고 있는지 그리고 밖은 어두운지 밝은지 등을 계속 체크한다. 그리고 메인 ECU가 최종적으로 판단하여 다른 장치들을 작동시켜 라이트를 켜거나 바퀴의 방향을 바꾼다.


여기서 중요한 한 가지가 있는데, 운전자들을 돕기 위해 장착된 스마트 기능들 즉, 자동 주차 기능, 긴급 브레이크 기능은 모두 ECU에 의해 제어된다는 것이다.


BMW 시리즈 중에는 능동형 브레이크 어시스트 즉, ABA(Adapuve Brme Assistarf)라는 기능이 있다. 운전자의 부주의나 긴급상황으로인해 사고 발생이 예상되면 긴급하게 브레이크가 작동되는 것인데 ABA가 작동하는 상황은 ECU가 결정하게 된다.

 

만약에 메인 ECU가 센서들의 정보를 확인하면서 위험을 감지하게 되면 운전자에게 알림을 주거나 운전자가 브레이크 페달을 밟지 않아도 브레이크 ECU에 명령을 전달하여 브레이크를 작동시키는 것이다. 즉, 모든 장치에서 정보를 습득하고 그에 맞는 결론을 내리는 ECU가 또 있는 것이라 할 수 있다.


이것을 반대로 해석하면, 우리가 각 ECU에 명령을 보낼 수 있을 때, 자동차는 스스로 브레이크(자동 긴급 제동 기능)를 작동시킬 수 있을 것 같다. 나아가서 핸들(자동 주차 가능)의 방향을 바꿀 수도 있으며 가속 페달(크루즈 기능)을 작동할 수도 있다.

 

스스로 운전하고 가속할 수 있는 스마트 카가 되려면, ECU를 제어하거나 직접 메인 ECU가 되면 되는 것이다. 

 

   ECU의 CAN 통신

 

브레이크나 가속 페달 및 핸들 등은 메인 ECU에 보고하고 지시를 받는다고 했다.

 

예를 들어 운전자가 핸들을 왼쪽으로 돌리고 있다. 운전자가 브레이크를 밟는다'와 같은 메시지를 누군가가 메인 ECU에 보내야 한다. 그리고 앞차와의 거리가 너무 가까워지고 있어도 마찬가지로 누군가가 메인 ECU쪽으로 메시지를 보내야 한다.


그래서 자동차 내부에는 메인 ECU와 각 장치들이 메시지를 주고 받기 위해 통신 라인으로 연결되어 있는데요. 이 통신 라인은 CAN통신[각주:2]방식이라고 부르는 규약을 따르고 있다.


CAN 통신을 간단히 설명하면, 많은 산업 현장에서 사용되고 있는 통신 규약 중 한 가지다. 특히, 자동차 산업에서는 거의 필수라 하겠다. 왜냐하면, 자동차에는 엔진이나 모터와 같은 장치들이 사용되는데 이들이 일반적인 통신 방식을 사용하면 많은 문제를 일으킨다.


예를 들어, 모터는 전기적으로 많은 노이즈를 발생시키는 장치 중에 하나다. 이 노이즈는 통신에 영향을 주기도 한다. 일반적인 통신 방식은 노이즈에 취약하기 때문에 통신에 방해를 받게 되는 것이다. 그러다 보면, 각 ECU 간에 정보를 주고 받지 못하는 경우도 발생하는 것이다.

 

일반적인 통신 방식은 대부분이 1:1을 위한 통신이다. 그런데 자동차에는 많은 ECU들이 서로 정보를 주고 받아야 하기 때문에 복잡한 통신 라인 구조를 가지게 된다. 그래서 통신 라인을 공유하여 사용하는 CAN 통신 방식으로 그 구조를 간략화하려는 것이다.

 

그래서 CAN 통신의 특징이라고 하면, 노이즈에 강하고 두 가닥의 선으로 통신이 가능하고 다른 장치들과 이 통신 라인을 공유할 수 있다는 것이다. 보통은 이렇게 공유해서 사용하는 통신 라인을 '버스(BUS)' 라고 부른다.

 

CAN 통신에서 사용하는 버스 방식은 여러 ECU들과 센서들이 선을 공유하고 있다. 그리고 통신 라인은 2가닥이다.

 

버스 방식의 특징은 언제든지 장치가 추가될 수 있다는 것이다. 그래서 CAN 통신은 센서나 다른 장치들이 추가로 연결될 수 있다.

 

▲버스 방식과 개별 방식: 버스 방식은 각 장치가 공용의 선을 사용한다.

개별방식은 각 장치들의 개별의 선으로 연결되어야 한다.

 

▲버스 방식에서의 연결도, 각 장치들은 2가닥의 라인을 사용하여 통신한다.

 

이렇게 연결되면 가장 큰 장점이 한 가지 있는데, 바로 공간을 절약할 수 있고 설치가 쉽다는 것이다. 만약에 CAN 통신이 버스 방식을 사용하지 않는다면, 각 장치들이 ECU와 메시지를 주고 받기 위해 개별적으로 통신 라인을 사용해야 할 것이다. 핸들, 가속 페달, 브레이크 페달, 엔진, 대사보드, 센서들 이렇게 많은 장치들이 ECU와 개별적으로 연결되려면 엄청나게 많은 통신 라인이 사용되어야 한다. 그렇게 되면 그만큼의 공간이 많이 필요하고 유지보수를 하기도 어렵게 된다.

 

스타벅스에서 10명의 손님이 주문을 한 상태라고 가정한다. 각 손님들은 주문을 한 순서대로 음료가 나오기만을 기다리고 있다. 기다리다 보면, 매장직원이 "OOO 고객님” 내지는 “OOO번 고객님”, “음료 나왔습니다”라고 큰 소리로 부른다. 그러면 손님들은 주문 시에 받은 영수증의 번호와 매장직원이 부르는 번호를
확인하고 자신의 주문이 맞다면 준비된 음료를 가져가게 된다.


만약에 매장직원이 부르는 번호가 자기의 번호가 아니라면 그냥 계속 기다리면 된다.

 

버스방식은 모든 사람이 들을 수 있다. 스타벅스 점원이 모든 손님들이 듣도록

"OOO고객님~!!" 하고 외치는 것과 같다.

 

버스 방식을 사용하는 CAN 통신도 이와 비슷하게 모든 장치가 하나의 통신 라인을 사용하기 때문에 다른 장치와 주고 받는 메시지도 들을 수 있다. 그런데 자기의 것이 아니라면 그냥 무시하면 된다.


이렇게 메시지가 자기의 것인지 다른 장치를 위한 것인지 구분하기 위해서는 어떤 방법이 있어야 할 것이다. 그래서 CAN 통신에서 사용하는 메시지에는 ID라고 부르는 번호를 포함하고 있다. 이 번호를 장치들 간에 미리 약속해 두었다가 사용하는 것이다.


예를 들어, '1번은 ECU에서 핸들의 데이터를 요구하는 것이다. '2번은 핸들의 데이터를 ECU로 보내는 것이다' 등과 같다.


이 메시지의 형태를 단순화하면 아래의 그림과 같이 생겼다고 할 수 있다.

 

통신시작 

데이터 번호(ID) 

데이터 

데이터 검증 

통신 마지막 

 CAN 통신 메시지의 단순화된 형태

 

통신 시작: 공통적으로 사용되는 것인데 '이제부터 메시지 시작이다'라고 알리는 것

데이터 번호(ID): 각 에시지가 누구로부터 발생되었으며 어떤 데이터인지를 구분하기 위한 번호

데이터: 각 ID별로 사용될 데이터, 센서의 값이나 자동차 속도 등의 데이터

▶데이터 검증: 데이터에 있는 내용이 통신 중에 사고로 인해 잘못된 데이터가 되는 것을 방지하기 위해 사용된다.

▶통신 마지막: '여기까지가 메시지였다' 임을 뜻하고 공통적으로 사용되는 것

 

자동차 정비소에는 특수한 장비를15 자동차에 연결해서 무엇이 있는지 분석할 수 있다. 자동사의 주행거리가 얼마나 되는지, 이상은 없는지 정보를 받아와서 고장 진단을 하고 있다.

이 장비는 자동차와 연결해서 사용해야 한다. 이때, 연되는 곳[각주:3]이 바로 CAN 통신 라인이다. 장비가 하는 일은 CAN 통신 라인에 연결되어 흘러 다니는 메시지를 감시하거나 ECU로부터 정보를 요청하는 것이다.

그렇다면 우리도 그 장비와 같이 CAN 통신 라인에 연결할 수 있다면 ECU로부터 정보를 얻어와서 자동차의 상태를 파악할 수 있지 않을까?  뿐만 아니라 다른 장치들도 같은 CAN 통신 라인에 연결되어 있으므로 ECU를 대신해서 메시지를 보낼 수도 있을 것이다.

 

그렇게 되면 임의로 핸들의 방향을 거나 가속 및 감속 메달을 작동시킬 수도 있죠. 이렇듯 CAN 통신 라인에 연결된 각 장치들은 메시지에 따라서 행동하고 보고하기 때문에 이를 잘 이용한다면 자동차를 내 마음대로 움직일 수 있다. 즉, 주행 자동차가 될 수 있다.

자동차 제어에 필요한 메시지 ID를 알지는 못하지만 어떠한 월리로 움직일 수 있는지 조금 이해가 되었을  것이라 생각한다. 정리하면, 자동차는 CAN 통신이라고 불리는 방식을 따르고 있으며 센서나 장치들과 서로 연결되어 있어서 명령을 주고 받을 수 있다고 했다. 그리고 각 장치들을 통제하는 메인 ECI가 있다고도 했다. 그래서 자동차를 내 마음대로 움직이고 ECU가 되거나 각 장치들을 CAN 통신을 이용하여 직접 제어해야 한다.

 

자율 주행 자동차나 무인 자동차가 되기 위해서는 지금까지의 자동차에는 없었던 장치들이 추가로 필요하다.

 

출처: IT 과학 이야기-인공지능, 로봇공학, 스마트카, 스프트웨어

 


 

 

  1. ECU: Electronic Control Unit, 전자 제어 장치 [본문으로]
  2. CAN(Controller Area Network)통신: 여러 가지 ECU들을 병렬로 연결하여 각각의 ECU들과 서로 정보 교환이 원활히 이루어져 우선순위대로 처리하는 방식을 말한다. [본문으로]
  3. 자동차마다 OBD를 연결할 수 있는 커넥터가 있다. [본문으로]
반응형

댓글