AUTOSAR는 애플리케이션과 하드웨어를 분리하는 계층화된 BSW(Basic Software) 구조를 통신 매체마다 구체화하는데, 이더넷 위에서는 이 구조가 AUTOSAR 내부의 PDU(Protocol Data Unit) 기반 통신과 TCP/IP 스택의 소켓 기반 통신을 잇는 형태로 나타난다[1].

계층 구조

Application SWC RTE PDU Communication Services AUTOSAR COM PDU Router Ethernet State Manager UDP NM I-PDU TCP/IP Communication Services Socket Adaptor TCP · UDP · IPv4 · IPv6 · ARP · ICMP · DHCP Communication Hardware Abstraction Ethernet Interface Communication Drivers Ethernet Driver

애플리케이션(SWC)이 RTE에 넘긴 시그널은 AUTOSAR COM이 PDU로 묶어 PDU Router에 전달하고, PDU Router는 목적지에 따라 이 PDU를 이더넷 쪽 Socket Adaptor나 다른 버스 인터페이스로 라우팅한다. Communication Services 계층에는 이 밖에도 이더넷 통신의 시작·종료를 관리하는 Ethernet State Manager, 버스 독립적인 Network Management 인터페이스(Nm)를 이더넷 위에 구현한 UDP NM이 자리한다[1].

TcpIp 모듈은 TCP·UDP·IPv4·IPv6·ARP·ICMP·DHCP 프로토콜 패밀리를 구현해 이더넷을 통한 동적 소켓 기반 통신을 제공하고, Socket Adaptor(SoAd)는 이 TcpIp 모듈의 유일한 상위 계층 모듈이다[1].

Socket Adaptor

Socket Adaptor는 PDU 기반으로 동작하는 AUTOSAR 통신 서비스 모듈(PDU Router)과 소켓 기반 TCP/IP 스택 사이를 잇는 인터페이스로, I-PDU(AUTOSAR 내부 PDU) ID를 소켓 연결에 매핑하고 그 반대도 수행한다 — Socket Adaptor와 이더넷 통신 스택 자체는 AUTOSAR R4.0.1에서 처음 도입됐다[2].

이더넷을 통한 TCP/IP 전송은 헤더만으로 약 60바이트의 오버헤드가 발생하므로, 크기가 작은 PDU 여러 개를 소켓 연결 하나당 하나씩 나눠 보내면 비효율이 커진다. Socket Adaptor는 이를 절충하는 두 캡슐화 방식을 제공한다[2]:

PDU Header 비활성화 PDU Data PDU Header 활성화 PDU ID 4B PDU Len 4B PDU Data PDU ID 4B PDU Len 4B PDU Data

PDU Header 비활성화 모드는 소켓 연결 하나가 PDU 하나만 나른다고 가정한다. PDU Header 활성화 모드는 4바이트 ID와 4바이트 Length로 구성된 PDU Header를 각 PDU 앞에 붙여, 하나의 소켓 연결로 여러 PDU를 다중화해 전송한다.

이 스택 위에서 노드들의 절전·기동 상태 전환을 조정하는 모듈은 UDP NM에서, PDU에 실려 오가는 데이터가 서비스 지향 RPC·이벤트 통지라면 그 미들웨어는 SOME/IP에서 각각 별도로 다룬다.

참고문헌

[1]
AUTOSAR, “AUTOSAR Layered Software Architecture, AUTOSAR CP, Release R23-11”, 2023.
[2]
AUTOSAR, “Specification of Socket Adaptor, AUTOSAR CP, Release R23-11”, 2023.