Automotive Software

오토사 BSW - 통신 서비스 본문

클래식 오토사 (Classic AUTOSAR)

오토사 BSW - 통신 서비스

AutoSW 2020. 10. 4. 20:10

차량 제어기 기능 중 가장 중요한 기본 기능을 하나 꼽으라면 단연 통신 기능일 것이다. 차량 통신은 진단 서비스를 제공하기 위해 차량에 적용되기 시작한 이후 현재까지, 지원되는 통신 프로토콜 (Communication Protocol) 이 증가하는 추세이다. 개인적으로는 케이라인(K-Line)이라는 단일 통신선을 사용하는 진단용 통신 프로토콜부터 개발 경험을 하였는데, 어느 순간엔가 국내에도 캔(CAN)이라는 차량통신 프로토콜이 린(LIN)과 함께 차량에 광범위하게 사용되고, 플랙스래이(Flexray)를 거쳐 현재는 일반 PC통신에 사용되는 이더넷(Ethernet)이 차량 통신의 중요한 부분을 차지하고 있다. 이는 차량에서 교환되는 데이터 양에 맞추어 통신기술도 변화하고 있음을 보여주는 것으로, 테스터기 요청 시에만 진단 데이터를 전송하던 예전과 달리 현재는 차량의 제어(센서) 상태 신호를 주기적으로 전송하고 이에 추가적으로 자율주행 및 운전자 보조 시스템을 위해 카메라 또는 레이더 이미지 등을 전송하기 위해 고성능의 이더넷 프로토콜까지 차량에 필요하게 된 것이다.

오토사에서는 이러한 통신 프로토콜의 변화 요구를 받아들이기 위해 계층별 모듈의 기능을 명세하고 있는데, 크게 통신 모드(Mode)를 관리하는 부분과 통신 신호처리(Singal hanlding)하는 부분으로 나눌 수 있겠다. 통신의 개시는 다른 포스트에서 언급한 바와 같이 매니저 모듈인 ComM이 다른 외부 컴포넌트의 요청을 받아들여 진행되는데, 하위 그림의 왼쪽에 묘사된 모듈들에 의해 구체적인 개시 동작이 수행되며, 신호처리는 하위 그림의 오른쪽에 묘사된 모듈들에 의해 필요한 동작이 주로 수행된다. 하위 그림은 이해를 돕기 위한 것으로 실제 사용되는 모듈 대비 누락된 모듈이 있다.

통신의 개시 및 종료는 주로 SWC(Software Component) 또는 BSWM(Basic Software Manager)을 통해서 요청되는데, 통신 개시를 요청받은 ComM 모듈은 하위의 버스 상태 매니저(Bus State Manager)와 버스 네트워크 매니저(Bus Network Manager) 모듈에 알려, 내부 통신 상태, 관련 하드웨어의 초기화 및 네트워크 매니지먼트 서비스를 위한 준비를 진행하게 된다.

버스 상태 매니저로부터 통신 하드웨어 초기화의 요청을 받은 통신 인터페이스 (Bus Interface) 모듈은 통신에 필요한 트랜시버 및 버스 장치의 초기화를 수행하고 그 상태를 관리한다. 이때, 통신 하드웨어는 제어기 설계에 따라 마이크로 컨트롤러 내부의 장치가 될 수도 있고 외부의 장치가 될 수도 있는데, 통신 인터페이스 모듈이 내부적으로 이러한 부분을 관리하고 버스 상태 매니저에게는 단일화된 인터페이스를 제공함으로써, 구조의 복잡도를 줄이고 일관된 서비스를 제공할 수 있도록 해준다.

애플리케이션 또는 소프트웨어 컴포넌트(SWC)에서 신호를 주고받기 위해서는 통신 모듈(Com, Communication)에 접근하면 되는데, 필요한 신호는 차량의 플랫폼 그리고 제어기 종류에 따라 상이하므로 제어기 설정 단계(Configuration Phase)에서 제조사에서 제공한 ECU Extract 파일에 의해 결정되고, 사용 가능한 인터페이스는 제어기 코드 발생 단계(Code Generation Phase)에서 동적으로 구현된다. (이 단계의 개념이 좀 어색하겠지만, 일단 간단히 Com모듈이 SWC가 사용할 수 있는 기본 인터페이스를 제공한다고 생각하자.) 

오토사에서 신호를 보내기 위해서는, 전술한 바와 같이 먼저 Com에 신호 전송 요청을 하게 되는데 Com은 전송 요청받은 신호를 PDU(Protocol Data Unit)의 형태로 PduR(PDU Router)에 보내어 전송 프로토콜(TP; Transport Protocol)의 필요 여부에 따라 버스 인터페이스(BusIf) 또는 버스 전송 프로토콜(BusTp) 모듈에 전달되도록 한다. 버스 전송 프로토콜은 대용량의 데이터를 나누어 전송할 수 있는 방법을 제공하는데 버스에서 허용하는 최대 크기로 PDU를 나누어 버스 인터페이스에 전달한다. 버스 인터페이스는 버스 트랜시버와 드라이버의 상태를 확인한 후, 전송 가능한 상태일 경우 해당 PDU를 버스상으로 내보내도록 드라이버에 명령을 주고, 아닐 경우 모듈 내부에 저장한 후 가능한 상태 일 때 재전송한다. 신호 수신의 경우 전술된 절차를 역방향을 생각하면 되겠다.

사실 오토사 또는 차량 제어기 소프트웨어에서 통신에 관련된 부분은 그 범위가 워낙 크고 다양한 모듈이 연관되어 있어 전체 내용을 간단히 설명하기가 쉽지 않다. 상기 기술된 내용은 오토사에서의 통신 절차 중 아주 기초적인 부분만을 설명한 것으로 실제 양산에 적용되는 제어기는 다양한 추가 모듈의 기능 지원으로 이루어진다.

autosw.tistory.com/notice/11

 

오토사 클래식 기초

클래식 오토사 기초 포스트 합니다. 포스트 내용은 수시로 업데이트하므로 내용이 변경될 수 있습니다. 오토사 구조 계층 관점 기능 관점 오토사 BSW (AUTOSAR Basic Software) 시스템 서비스 (System Servic

autosw.tistory.com