37
NXP and the NXP logo are trademarks of NXP B.V. All other product or service names are the property of their respective owners. © 2017 NXP B.V. PUBLIC STEFAN MALINICI VALENTIN CIOCOI CATALIN UDMA ABSTRACTING INTER- PLATFORM COMMUNICATION IN AUTOMOTIVE AMF-AUT-T2714 | JUNE 2017

ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

NXP and the NXP logo are trademarks of NXP B.V. All other product or service names are the property

of their respective owners. © 2017 NXP B.V.

PUBLIC

STEFAN MALINICI

VALENTIN CIOCOI

CATALIN UDMA

ABSTRACTING INTER-

PLATFORM COMMUNICATION IN

AUTOMOTIVE

AMF-AUT-T2714 | JUNE 2017

Page 2: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 1

Agenda

• AMP Software Portfolio

• Motivation

• Solution

• Features

• Conclusions

Page 3: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 2

NXP AMP Software

VDS(Vehicle Dynamics & Safety)

Chassis & Safety

Powertrain & Hybrid/EV

• Autosar MCAL Drivers

• Autosar OS

• Configuration and Initialization

Tools

C&S(Connectivity & Security)

Gateway

• Linux BSP

• FreeRTOS

• QNX SDK

• Autosar MCAL Drivers

• Autosar OS

• LLCE

• Software Stacks

• S32 SDK Drivers and

Middleware

• IPCF

GPIS(General Purpose & Integrated Solutions)

Body Electronics

Edge Nodes

• S32 SDK Drivers and

Middleware

• Software Stacks

• System Tools

• FreeRTOS

• Autosar MCAL Drivers

• Autosar OS

• Security

ADAS(Advanced Driver Assistance Systems)

Radar, LIDAR

Vision

Sensor Fusion

• Linux BSP

• QNX SDK

• Vision, Radar and Fusion

Software

• ADAS System Tools

• OpenCL compiler

• Autosar MCAL Drivers

• Autosar OS

• S32 SDK Drivers and

Middleware

• IPCF

Page 4: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 3

Motivation

Page 5: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 4

The need for inter-platform communication

• Multiple homogeneous or

heterogeneous processing coresProcessor

2 x

Cortex-M4

4 x

Cortex-A53

Page 6: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 5

The need for inter-platform communication

• Multiple homogeneous or

heterogeneous processing cores

• Located on a single chip or on

multiple chips in a circuit board

Processor 1 Processor 2

2 x

Cortex-A532 x

Cortex-M4

4 x

Cortex-A53

Processor 3

2 x

Cortex-R5

Page 7: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 6

The need for inter-platform communication

• Multiple homogeneous or

heterogeneous processing cores

• Located on a single chip or on multiple

chips in a circuit board

• Running multiple OSes

− AutosarOS, FreeRTOS, RTEMS

− QNX, Integrity

− Linux

Processor 1 Processor 2

2 x

Cortex-A53

QNX

2 x

Cortex-M4

AutosarOS

4 x

Cortex-A53

Linux

Processor 3

2 x

Cortex-R5

Other OS

Page 8: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 7

The need for inter-platform communication

• Multiple homogeneous or heterogeneous processing cores

• Located on a single chip or on multiple chips in a circuit board

• Running multiple OSes

• Communicating over various interfaces:

− Ethernet

− PCIe

− USB

− UART, SPI

− Shared memory

Processor 1

Shared Memory

Processor 2

2 x

Cortex-A53

QNX

2 x

Cortex-M4

AutosarOS

4 x

Cortex-A53

Linux

Processor 3

2 x

Cortex-R5

Other OS

Ethernet

PCIe

Page 9: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 8

Concrete Example - Gateway

Processing CPUComm CPULIN

CAN

CAN

CAN

SPI

LIN

CAN

SPI

SPI

ETHEth1

ETH

Application

Application

MC

AP

I

MC

AP

I

Ethernet

USB

SPI, UART

Eth0

USB

SPI

UART

CAN IPC

SPI IPC

ETH IPC

Other data IPC

LIN IPC

Data

Processing

Data IPC

forwardingEth0

USB

SPI

UART

Eth1

Drivers, StacksDrivers, Stacks

RTOS High Level OS

Secure

Page 10: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 9

Concrete Example: Highway Autopilot on Blue Box Mini

Single

Camera MIPI

(replacing

MobileEye

NovaTel

ProPak 6

USB HubKvaser USB

to CAN

BlueBox Mini

LS2084A

S32V

PCIe RC

PCIe EP

US

BE

TH

MIP

I

AutonomousStuff ARMv8-based sensor fusion nodes (Highway SW)

ROS Kinetic

SMP Linux + Ubuntu root file system +

HAL support packages Virtual Ethernet

AutonomousStuff ARMv8-based camera node (Highway SW)

ROS Kinetic

Virtual EthernetUbuntu Linux Neusoft ADAS

PC

IeB

ackp

lane

ROS multi-machine messaging is used

to share camera node results

Drive by

wireRADAR

Page 11: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 10

Existing solutions

• MPI (Message Passing Interface)

− communication protocol for programming parallel

computers

− dominant model in high performance computing

− Implementations: openMPI, MPICH

• RemoteDMA

− useful in massively parallel computer clusters

− need to install a different networking infrastructure

− implementations: InfiniBand, iWARP, RoCE

• RPC/RMI (Remote Procedure/Method Call)

− used in distributed computing programming

− multilanguage support: C/C++, Java, Python, Ruby

− implementations: D-Bus, CORBA, Java-RMI, DCOM,

Protocol Buffers

• DDS (Data Distribution Service)

− publish-subscribe middleware

− simplifies complex network programming for

distributed applications

− implementations: OpenDDS, Connext DDS, Vortex

OpenSplice

Page 12: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 11

Inter Platform Communication Framework

Page 13: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 12

Architecture

API

Data-link

Abstraction

Layer

ARM/

PowerPC

Communication Interface Abstraction Layer

PCIe USB SPIUARTShared

memETH

SoC Abstraction Layer

OS Abstraction Layer

CORE IPCF

MCAPI

ISO26262

Virtual Ethernet

EncryptionFIFO

FIFOFIFO Endpoints

ChannelsThread

Safe

Page 14: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 13

System Software Overview

IPCF

ARM/

PowerPC

Abstraction Layer

PCIe USB SPIUARTShared

mem

MCAPIVirtual ETH

TCP/IP stack

ETH

vSomeIP/ OpenSSL

Applications

Page 15: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 14

Features

Page 16: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 15

API: MCAPI

• What is MCAPI?

− Standardized API for communication between

closely distributed embedded systems

• Why MCAPI?

− Multicore and Multichip

− Connection-oriented and Connectionless

− Simple and efficient

− Designed for low-latency, high performance

and tiny footprint

− Portability

− Standardized programming model

http://www.multicore-association.org/member/memberlist.php

Page 17: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 16

MCAPI™ Overview

• Domains: multiple nodes/routing

purposes

• Nodes: independent thread/process

or OS instance

• Endpoints: socket-like

communication ports

• Communication

- Connectionless messages

- Connection-oriented packet channels

- Connection-oriented scalar channels

Domains

Node 1 Node 2

Endpoint 1

Endpoint 2

Endpoint 3

Endpoint 4

Connection-oriented

- Established using explicit

handshake mechanism

between endpoints

Connectionless

- Send or receive messages

with one ore more

endpoints elsewhere

Endpoint Attributes:

- Quality of Service

- Buffers

- Timeouts

Page 18: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 17

Virtual Ethernet

• Standard API: Virtual

Ethernet

• Simplify the inter-

communication specification

• Ease of use using standard

network socket

• No difference than standard

ETH interface

IPCF

ARM/

PowerPC

Data-link abstraction layer

PCIe USB SPIUARTShare

d mem

MCAPIVirtual ETH

TCP/IP stack

ETH

vSomeIP/ OpenSSL

Applications

Page 19: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 18

Virtual Ethernet - Deep Dive

LS2 S32V

PCIe Driver (RC)

S32V

Interfaces in LS2 Linux

pcie0

veth

Virtual Eth Instances

$ ifconfig pcie0 192.168.1.1

PCIe Driver (EP)

RC

Interfaces in S32V Linux

pcie0

veth

Virtual Eth Instances

$ ifconfig pcie0 192.168.1.2

BlueBox

PCIe

Communication

Standard Ethernet Linux interface

Implementation:

- Virtual Ethernet Network Device

- PCIe driver

BlueBox

$ ping 192.168.1.2

PING 192.168.1.2 56(84) bytes of data.

64 bytes from 192.168.1.2: time=0.34 ms

64 bytes from 192.168.1.2: time=0.35 ms

Page 20: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 19

Security

1. SW encryption & authentication

− OpenSSL over Virtual ETH

− Reuse existing user applications

SoC

IPCF

Virtual ETH

TCP/IP

OpenSSL

Applications

Plain data

Crypto

EngineCommunication

Interfaces

Encrypted data

Time critical

application

Generic

application

2. HW accelerated encryption &

authentication

− for time critical applications

2

2 2

1

12

Page 21: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 20

Defaults vs Flexibility

Default Platforms

• Cortex A

• Cortex M

• PowerPC Cortex e200

Default OSes

• Linux

• QNX

• NXP AutosarOS

• freeRTOS

• Integrity

Default Communication

• PCIe

• Ethernet

• SharedMem

• USB

• SPI

ETH

Power

OS1

OS2

PCIe

ARM

IPCF

Page 22: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 21

Deployment

Default installation through already existing products

If required, can be delivered as a separate installation package

Linux BSP

• kernel module + user space library

• deployed by: Makefiles + Yocto

QNX/Integrity

• Resource manager + shared library

• deployed by: Makefiles + QNX mkifs

AutosarOS

• Autosar CDD

• deployed by: Makefiles

S32 SDK

• Library

• deployed by: Makefiles/Design Studio

Page 23: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 22

Ease of Use

Socket like API Portability & Flexibility

PluggableSamples & Tutorials

Ease of Use

Page 24: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 23

Conclusions

Page 25: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 24

Conclusions

IPCF

OS/HW Agnostic

Communication Agnostic

Low latency

Tiny footprint

Flexible & pluggable

Portability

Page 26: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 25

Availability

Q3

2017

Q4

2017

Q1

2018

Q2

2018

Q3

2018

Q4

2018

2019

NG Vision

NG Radar

NG

Gateway

BlueBox

preEAR preEARRTM

RTM

RTM

BETA

BETA

EARpreEAR

BETA RTM

BETA

EAR

EARpreEAR preEAR preEAR

preEAR preEAR preEAR EAR

EAR EAR EAREAR

Page 27: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

NXP and the NXP logo are trademarks of NXP B.V. All other product or service names are the property of their respective owners. © 2017 NXP B.V.

Page 28: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 27

BACKUP SLIDES

Page 29: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 28

HeartBeat

Page 30: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 29

MCAPI™ overview

• MCAPI™ components

• Domains: multiple nodes/routing

purposes

• Node: independent thread/process

or OS instance

Domains

Node 1 Node 2

mcapi_initialize ()

mcapi_finalize ()

Page 31: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 30

MCAPI™ overview

Endpoints

• socket-like communication-

terminations points

• Identified by

<domain_id, node_id, port_id>

Domains

Node 1 Node 2

mcapi_endpoint_create ()

Endpoint 1

Endpoint 2

Endpoint 3

Endpoint Attributes:

- Quality of Service

- Buffers

- Timeouts

Error to connect endpoints with

incompatible attributes

mcapi_endpoint_delete ()

mcapi_endpoint_get/set_attribute ()

Page 32: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 31

MCAPI™ overview

Communication

- Connectionless messages

- Connection-oriented packet

channels

- Connection-oriented scalar

channels

Point-to-Point between send and receive

endpoints

Domains

Node 1 Node 2

Endpoint 1

Endpoint 2

Endpoint 3

Endpoint 4

Connection-oriented

- Established using explicit

handshake mechanism

between endpoints

Connectionless

- Send or receive messages

with one ore more

endpoints elsewhere

Page 33: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 32

MCAPI™ overview

Messages

Domains

Node 1 Node 2

Endpoint 1

Endpoint 2

Endpoint 3

Endpoint 4

mcapi_msg_send_i ()

mcapi_msg_send ()

mcapi_msg_recv_i ()

mcapi_msg_recv()

“_i” -> non-blocking

Page 34: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 33

MCAPI™ overview

Packet channels

Domains

Node 1 Node 2

Endpoint 1

Endpoint 2

Endpoint 3

Endpoint 4

mcapi_pktchan_connect_i ()

mcapi_pktchan_recv_open_i ()

mcapi_pktchan_send_open_i ()

mcapi_pktchan_available ()

mcapi_pktchan_recv_close_i ()

mcapi_pktchan_send_close_i ()

mcapi_pktchan_send () send_i ()

mcapi_pktchan_recv () recv_i ()

mcapi_pktchan_release ()

Con

ne

ction

se

tup

Con

ne

ction

tea

r-d

ow

nS

en

d / R

ece

ive

Bu

ffe

rs m

an

agem

ent

Page 35: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 34

MCAPI™ overview

Scalar channels

- Same as packet channels, use two-

phase setup mechanism

- Used to transfer 8-, 16-, 32-, 64-bit

scalars

- Provides only blocking send and

receive metods

Domains

Node 1 Node 2

Endpoint 1

Endpoint 2

Endpoint 3

Endpoint 4

mcapi_sclchan_send_uint8 () … uint64 ()

mcapi_sclchan_recv_uint8 () … uint64 ()

Page 36: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

PUBLIC 35

IPCF Safety

• Automotive SPICE development process

• + Functional Safety ISO26262

• IPFC provided as Safety Element out of Context (ISO 26262 – 10 Clause 8)

− developed for different applications and different customers

− Hazard analysis and risk assessment

FMEA - Failure Modes and Effects Analysis

Assume safety requirements for ASIL-D

− Testing

Fault injection

Error guessing

Page 37: ABSTRACTING INTER- PLATFORM COMMUNICATION IN …

NXP and the NXP logo are trademarks of NXP B.V. All other product or service names are the property of their respective owners. © 2017 NXP B.V.