Automotive Software

오토사 캔(CAN) - 기초 본문

클래식 오토사 (Classic AUTOSAR)/CAN Communication

오토사 캔(CAN) - 기초

AutoSW 2021. 3. 25. 18:55

지금이야 고속의 이더넷이 차량 네트워크에 적용되고 있지만 10여 년 전만 해도 캔 통신이 차량 내 신호 교환, 진단 그리고 리프로그래밍등의 서비스를 제공할 수 있는 가장 대표적인 수단이었다. 현재는 자율주행 그리고 운전자 보조 시스템을 지원하기 위해 대용량의 데이터를 신속하게 처리할 수 있는 이더넷의 사용이 확산되는 추세이지만 여전히 캔 통신은 대부분의 차량 내 제어기에서 사용되는 기본적이고 효과적인 통신 수단이다.

상기 블록 다이어그램은 캔 통신에 필요한 기본적인 오토사 모듈을 나타내고 있다. 사실 캔 통신을 위해서는 하위 계층의 캔 드라이버와 캔 트랜시버 모듈만으로도 물리적인 통신을 수행하기에는 문제가 없다. 하지만, 제어기의 상태, 모드 등을 고려하여 논리적인 통신절차를 수립하고자 한다면 다이어그램상에 표시된 모듈들이 기본적으로 필요할 것이다. 물론, 표시된 모듈 외에도 통신과 관련된 모듈이 오토사에 존재하지만 여기서는 캔 통신에만 한정하여 간단히 소개하고자 한다.

오토사에서의 모든 통신은 크게 두 부분으로 나눌 수 있는데, 통신 모드와 통신 경로(방식)가 바로 그것이다.

통신 모드의 경우 통신을 개시하기 위해 제어기내 통신장치들의 상태를 점검하고 요구되는 상태로의 천이를 담당하며, 통신 경로(방식)의 경우 통신에 필요한 프로토콜의 선택 및 요구되는 통신 방식(예, 주기적/산발적인 신호의 송수신)을 제어하는 역할을 담당한다.

상기 다이어그램 왼쪽에 나타낸 것 과 같이 모드 제어를 위해서는 시스템 서비스 모듈인 ComM, BswM 그리고 EcuM 등의 서비스를 통해 하위 통신 모듈의 모드 및 상태를 제어할 수 있는데, 사용자는 단지 이 모듈들에 접근하여 제어기의 상태 변경(EcuM_RequestRUN()) 및 통신의 개시(ComM_CommunicationAllowed(), ComM_RequestComMode(COMM_FULL_COMMUNICATION))를 요청하면 된다. 하위 모듈들은 시스템 모듈들에 의해 관리된다.

통신 경로(방식)를 위해서는 다이어그램의 오른쪽에 나타낸것 과 같은 모듈들이 주로 사용되는데, 통신이 개시되었다면, 사용자는 간단히 Com 모듈을 통해 송수신 코저 하는 신호를 접근(Com_SendSignal(), Com_ReceiveSignal())하게 된다. 신호의 통신 방식 및 요구되는 프로토콜은 이미 설정 단계(Configuration phase)에서 Com 모듈과 PduR상에 기록되어있어 동작중 추가적인 제어가 필요하지 않다.

다시 한번 기억해야 할 것은 오토사는 계층구조를 가진다는 것이다. 다이어그램에 표시된 바와 같이 통신을 위해 많은 모듈이 필요로 하지만, 사용자가 각각의 모듈을 제어할 필요가 없다. 단지 상위에 위치한 서비스 모듈들에 모드의 변경, 통신의 개시 그리고 신호의 접근을 요청하기만 하면 된다.