관리 메뉴

Leo's Garage

AUTOSAR CAN 통신 구현을 위한 정보 본문

자동차 및 자동차 SW/AUTOSAR

AUTOSAR CAN 통신 구현을 위한 정보

LeoBehindK 2023. 6. 25. 22:07
728x90
반응형

AUTOSAR CAN 통신 스택을 이용해서 CAN 통신을 구현하기 위해 필요한 정보를 정리해보고자 한다. 

AUTOSAR는 기본적으로 하드웨어 독립적으로 구축하는 것을 목표로 하기 때문에 하위 레이어에  HW 종속적인 모듈이 위치하고, 상위로 갈수록 HW에 독립적인 모듈이 위치하게 된다. BSW를 개발하는 입장에서는 이러한 계층 구조와 각 모듈간의 서로 필요한 정보가 무엇인지 아는 것이 중요하다.

개인적으로 어떤 AUTOSAR Tool을 사용하여 BSW를 Configuration한다고 하더라도 가장 중요한 것은 역시 Communication DB(DataBase)일 것이다. 일반적으로 차량용 제어기는 통신 네트워크 구조를 기반으로 설계가 되어진다. 따라서 어떤 제어기든 개발에 앞서서 가장 중요한 건 바로 이 통신 DB인 것이다. 그 중에서도 가장 많이 쓰이는 것은 CAN DB이며, AUTOSAR Configuration  시에 가장 먼저 CAN DB를 Import하는게 중요하다. 이 CAN DB에 대해서는 다른 포스팅에서 자세히 다뤄보도록 하자.

 

대부분은 AUTOSAR tool에는 CAN DB를 Import만 하더라도 해당 데이터에 들어 있는 내용을 ARXML로 변환하여 각종 설정에 도움을 준다. 다만 CAN DB가 적절하게 설정되어 있다는 가정 하에 말이다. 

현대오토에버(구 오트론)의 mobilgene의 CAN DB import 및 설정 예시

 

CAN 통신 스택은 아래와 같이 크게 3가지 기능으로 구분할 수 있다. 

 

COM 모듈을 기점으로 상위 Layer는 Signal을 사용하고, 하위 Layer는 PDU를 사용하다. Signal은 실제 주고 받을 데이터, PDU는 Layer 간에 전달하는 추상화된 정보로 가정할 수 있다.  application에서 전달된 Signal은 COM의 I-PDU buffer에 저장되고, PduR_ComTransmit 함수에 의해서 I-PDU 형태로 PduR에 전달된다. 반대로 PDU를 수신 받을 때는 PduR에서 Com_RxIndication 함수를 통해서 수신된 PDU가 있음을 전달 받고, COM에서는 I-PDU 내에  signal을 분석해서 해당 Signal의 Callback함수를 호출하여 RTE를 통해 Signal이 application으로 전달된다. 

 

통신 메시지는 정보 전달 편의를 위해 PDU로 변경되는데 이전 포스팅에서 언급했다시피 SDU(Service Data Unit)과 PCI(Protocol Control Information)으로 구성된다. 각 Layer 별로 앞에 prefix가 붙는데 그 조건도 이전 포스팅을 참조하기 바란다. 

 

PduR에 전달된 PDU는 Routing Table을 참조하여 해당 PDU의 목적지를 설정하는 방식으로 전송된다. PduR 모듈은 Routing table과 engine으로 구성되어 있는데, Routing Table은 각 PDU들의 path 정보를 가지고 있고, 여기에 없는 PDU는 정상적으로 전송되지 않는다. Engine은 Routing Table을 이용하여 PDU가 올바른 곳으로 가도록 하는데, PDU가 상위 혹은 하위 레이어로 가는 것에 따라서 PDU ID와 API를 연결하여 호출하는 기능을 가지고 있다. 

 

 

 

CanIf 모듈은 PDU ID를 확인 후, 내부 Channel을 선택한다. 각 Channel에 연결된 HOH(Hardware Object Handle)에 PDU를 전달하면, CAN controller의 Hardware Object에 해당 PDU를 write하고, object flag를 1로 설정 시, Transceiver에 의해서 Can frame으로 전달된다. 

HTH: Hardware Transmission Handle

HRH: Hardware Reception Handle

CAN msg 송신 시 모듈 간 호출되는 API 및 Callback

 

 

참조 : https://m.blog.naver.com/mdstec_auto/222070210412

 

AUTOSAR CAN 통신 스택 : AUTOSAR 개발을 위해 반드시 알아야하는 계층형 구조

AUTOSAR CAN 통신 스택: BSW 개발을 위해 반드시 알아야하는 계층형 구조 하드웨어에 독립적(...

blog.naver.com

 

728x90
반응형

'자동차 및 자동차 SW > AUTOSAR' 카테고리의 다른 글

AUTOSAR COM module  (0) 2023.06.26
CAN DBC attribute와 MICROSAR  (0) 2023.06.25
PDU 또는 Message  (0) 2023.06.25
AUTOSAR CAN 통신 Stack 개요  (0) 2023.06.25
OSEK / VDX OS  (0) 2023.03.04
Comments