system architecture of infotainment products · infotainment system architecture definition purpose...
TRANSCRIPT
C3 13-Oct-2018
System Architecture of infotainment products
Lupu Alexandru
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
Index
System
System Introduction
Infotainment Systems
Infotainment System Architecture
Definition
Purpose
Scope & Boundary
Inputs / Outputs
Documentation
Android Auto Architecture – case study
2 / Alexandru Lupu / 06-03-2018 © Continental AG
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
Introduction
3 / Alexandru Lupu / 06-03-2018 © Continental AG
Building Architecture vs Software Architecture
They both attempt do describe in a formal model how the final
product will look like and what it will do.
Results are often different and this is due to the fact that when you
create an abstract model of the reality you filter some parts of
environment out but when you create the actual product reality
strikes.
Software Architecture vs Weather prediction
They both attempt to predict how the future will look like.
A safe prediction is that they will both eventually change!
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
Infotainment features - 1
4 / Alexandru Lupu / 06-03-2018 © Continental AG
1946/50 1953/54 1961 – 1971 199519941976 – 1979 1997/19981930
The first
commerciall
y
successful
car radio by
Motorola.
The first
record
player
for in-car
operation is
developed.
-FM
reception
and station
keys.
Cassese
drives
Stereo
DAB
Audio CD
-Navigation- digital
display and
microproces
sor are
produced.
First car
radio with
Telematics
2000/2001 2004 2006 2007 2009 2010 2012
DVD navigation
voice
recognition
- large touch screen
- HDD
- Smartphone
integration
- SD card / USB
- MP3 player
iRadio Bluetooth for
handsfree
telephony.
phase diversity
satellite radio
for Sirius/XM
- voice
recognition for
destination
input and online
Google Maps.
“eHorizon”
technology for
anticipatory
driving
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
5 / Alexandru Lupu / 06-03-2018 © Continental AG
2015 2016 2016
• Carlife
• Mirrorlink• -touch screen with
optical bonding and
multi gesture control.
• Full HD Display
• Carplay
• Android Auto
2015 2016 2016
• Infotainment
• Cluster
• Even more domains
2018
Infotainment features - 2
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
6 / Alexandru Lupu / 06-03-2018 © Continental AG
System Introduction
Everything can be considered a system, if we look to it as a to a system
Example: An atom, the earth, the solar system
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
7 / Alexandru Lupu / 06-03-2018 © Continental AG
System Specification
We have three sound systems what makes them different?
What they have in common?
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
8 / Alexandru Lupu / 06-03-2018 © Continental AG
System Specification
• Input / Output
• Boundary and Interfaces
• Internal Processing (control, feedback)
• Environment
InputsOutputsSystem
(Internal Processing )
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
9 / Alexandru Lupu / 06-03-2018 © Continental AG
System definition (1)
Functional definition of a System:
“A set of principles or procedures according to which something is done; an
organized scheme or method.”(Oxford dictionary)
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System definition (2)
Compositional definition of a System:
“A set of things working together as parts of a mechanism or an interconnecting
network; a complex whole.”(Oxford dictionary)
10 / Alexandru Lupu / 06-03-2018 © Continental AG
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
11 / Alexandru Lupu / 06-03-2018 © Continental AG
System definition (3)
A mix between those two points of view over a system is proposed by
Rechtin and Maier in “The Art of System Architecting”:
“A set of different elements so connected or related as to
perform a unique function not performable by the elements
alone”.
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
12 / Alexandru Lupu / 06-03-2018 © Continental AG
System point of view
Exercise: Place a taxi car in the town, in the desert , and on Mars.
What will see the Citizen, the Bedouin, and the Martian?
A box
A car
My Taxi
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
13 / Alexandru Lupu / 06-03-2018 © Continental AG
Subsystem
Subsystem it’s a role for a system inside a bigger system, think
about the relation between the engine and the Car.
Relation between the Subsystem and the System is composition,
this implies that when the system is destroyed the subsystem is also
destroyed.
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
Exercise - Subsystems
What will be the Subsystems of an Infotainment System?
14BU Infotainment & Connectivity / CAP0500050FB7 / Version 04f / Jürgen Castan / I IC RD G SEI SE © Continental Automotive GmbH
Media Player
Audio
NAV
Map
RADIO
Module
?
HMI
OS
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
Clarification about subsystems
For the entertainment system from above we identified several subsystems with different levels of abstraction, always we need to distinguish about their level:
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
Conceptual System
• Conceptual - high level design which includes only the most important components and entities. (Broadcast, Infrastructure, etc..)
• Real System Actual Software and Hardware entities and interfaces.
Real SystemSoftware Hardware
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
Interfaces
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
bdd [Package] FunctionalAnalysis [System Context]
AMFM
«Actor»
AMFM
«Actor»
AMFM
«Actor»
DAB
1 «Actor»
FM
«Actor»
FM
«Actor»
FM
«Actor»
GPS
1 «Actor»
Speaker
«Actor»
Speaker
«Actor»
Speaker
«Actor»
Microphone
«Actor»
Microphone
«Actor»
Microphone
«Actor»
VehicleBattery
«Actor»
VehicleBattery
«Actor»
VehicleBattery
«Actor»
WifiAntenna
«Actor»
WifiAntenna
«Actor»
WifiAntenna
«Actor»
AudioAuxDevice
«Actor»
AudioAuxDevice
«Actor»
AudioAuxDevice
«Actor»
DVDPlayer
«Actor»
DVDPlayer
«Actor»
DVDPlayer
«Actor»
BTAev
1 «Actor»
USBDevice
«Actor»
USBDevice
«Actor»
USBDevice
«Actor»itsMassStorage
«Actor»
itsMassStorage
«Actor»
itsMassStorage
«Actor»
itsUSBHub
«Actor»
itsUSBHub
«Actor»
itsUSBHub
«Actor»itsIOS
«Actor»
itsIOS
«Actor»
itsIOS
«Actor»
itsAuxVideoIn
«Actor»
itsAuxVideoIn
«Actor»
itsAuxVideoIn
«Actor»
OVIP Head Unit1
pLVDS1
pBTAAudio
pUSBHOST2
pWifiInternalAntenna
pAuxVideo2
pAuxVideo1
pSpeaker
pMIC
pGPSpFM2
pUART1
pLVDS
pETH
pDABantenna
pBTinternalAntenna
pUSBOTG
pUSBHOST4
pUSBHOST1
pCAN
pAuxVideo
pAuxAudio
pAMFM1
pBattery
Display
1 «Actor»
Interface is the system boundary
that is presented by a system for
interaction with other systems.
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
Exercise – Infotainment System Input/Output
17BU Infotainment & Connectivity / CAP0500050FB7 / Version 04f / Jürgen Castan / I IC RD G SEI SE © Continental Automotive GmbH
• What Input / Output has an Infotainment System?
CAN
MOST
FM
DAB
HMI
SDARS
BT
Power
USB
CD/DVD
CAN
Audio
Video
Serial
Most
……
Aux in
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture – Process
From process point of view the System Architecture starts where the
Requirements Engineering ends and stops when the Design starts, of course
overlapping in some aspects.
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
Requirements for
an audio SystemArchitecture
Requirements-Eng.
Design
Implementation
Integration
Verification
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture – Scope & Purpose
System Architecture purpose is to produce a Conceptual System based on the system requirements, to depict how the Conceptual Systems is mapping to a Physical System and allocate responsibilities for HW and SW.
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
Requirements
System Architecture Documentation
Conceptual System Composition
Conceptual System Analysis
Physical System Composition
Mapping of processes Conceptual to Real
Conceptual System
Physical System
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture – Conceptual System (1)
First phase of building the Conceptual System is
Requirement Analysis. It aims to allocate requirements to Subsystems
and to create a collection of System Use cases.
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
How did we got the Media Player block?
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture – Conceptual System (2)
Static decomposition
Before starting to allocate the requirements to the elements of the
system, we need to have these elements in place so we create a Static
decomposition of the System into its building blocks: subsystems,
interfaces/ports.
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
Exercise: For already identified Subsystems of an Infotainment System
decide if they are conceptual or real.
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Decomposition: System internal block definition diagram
One of the most important outputs of the
System Architecture is the collection of
the Subsystems. They make part of the
conceptual system and they shall be
conceptual subsystems also.
22BU Infotainment & Connectivity / CAP0500050FB7 / Version 04f / Alexandru Lupu/ I IC RD G SEI SE © Continental Automotive GmbH
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Decomposition: System Overview
Due to large of Subsystems only a high level picture of all subsystems is
presented, without all connections and ports, in order to be readable.
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture – System Use Case
A use case defines an interactions between a role ("actor") and a system, to
achieve a goal. The actor can be a human, an external system, or time.
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture – System Use Case
Identify a brief list of System Use cases for an Infotainment product.
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture – Dynamic interaction of the subsystems
Static Requirement allocation is requested but this is not enough.
Usually requirements realization involve collaboration of two or more
subsystems so it’s needed a depiction of Dynamic interaction of the
subsystems via interfaces/ports.
Dynamic interaction of the subsystems is done for a collection of use
cases.
The result of this operation is called Use Case Realization and it’s one
or more activity/sequence diagrams.
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
System Architecture – Dynamic interaction of the subsystems
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture - Real System Specification
Creation of the real system specification suppose to assign to each
Conceptual component one or more real SW/HW components. This is
achieved by :
✓Allocation of SW components to HW modules.
✓Allocation of related logical public interfaces / ports to the inter process
communication infrastructure.
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
29
Graphic Controller
Hypervisor
Core Partition
Automotive Controller
JCP Cluster Platform
Cluster (HMI) Application
Autosar OS
Trusted Partition Open Partition
Safe OS,
Integrity
or QNX
Hypervisor
Extensions
JGP SW Platform
Cluster HMI Application
LinuxHypervisor
Extensions
Open Infotainment Platform
IVI HMI Application
LinuxHypervisor
Extensions
Android & Internet Browser
3rd Party HMI / APPs
Connected FPC
FPC
Regular Cluster
IIP System
System Architecture - Deployment
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture – Real System Specification
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
✓Resource allocation:
➢Processes
➢Memory
➢CPU core ( and CPU time)
✓Quality attribute:
➢System-Performance (as experienced by end-user)
➢Startup-time
❖System architecture decisions:
➢Used middleware
➢Make-or-buy decisions
➢Reuse of existing solutions
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
Memory Measurements statistics
31 / Alexandru Lupu / 06-03-2018 © Continental AG
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture – Tests Against System Architecture
Tests Against System Architecture verify that the final product is implemented
according to the System architecture. This means that tests can be created
against all major System Architecture components:
- Statically Decomposition into HW & SW
- Dynamic Interaction, Use Case realizations
- Interfaces
- Resource Allocation
- Performance
- System Architecture Decisions
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture - Purpose
The purpose of the system “System Architecture” is to process all the
inputs and produce the desired outputs.
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
Inputs OutputsSystem
Architecture(Processing )
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture – Inputs
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
System requirements, in whatever form, from whatever stakeholder
Older System Architecture
Reusable Architectural artifacts.
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture – Outputs
Decomposition of System in Subsystems
Responsibility definition to Subsystems
SW/HW requirements allocation / derivation for Subsystems
Resource allocation to Subsystems
Interfaces (for System and for Subsystems)
Use Cases and Realizations (for System Use Cases)
Architecture Tests requirements
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture – Outputs vs consumer exercise
Each participant shall identify what Inputs/ outputs of System architecture are
in his responsibility
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
System Architecture – Documentation
What means are used to document system architecture?
Development Tool: Telelogic Rhapsody – creates Sysml documents
Modeling Language: SysML (Systems Modeling Language based on UML )
DOORS derived requirements
Requirements import DOORS to Rhapsody: Telelogic Rhapsody Gateway
System Architecture Introduction – Lupu Alexandru/ I IC RD SEI SE © Continental Automotive GmbH
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
Case study – Android Auto
38 / Alexandru Lupu / 06-03-2018 © Continental AG
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
39 / Alexandru Lupu / 06-03-2018 © Continental AG
Architecture and Channels
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
Signals
40 / Alexandru Lupu / 06-03-2018 © Continental AG
Video Output. Sends H.264 video from the mobile device to the vehicle for display on the main console display.
Audio Output. Carries audio from the mobile device to the vehicle for output through the vehicle speakers (AAC with 48k, AAC or PCM for 16k).
Control Channels. Manages link initialization and setup of channels for media, input, etc.
Bluetooth, Navigation Status (device-to-vehicle), Media Browse (device-to-vehicle). Used for communication of Bluetooth data, Navigation status and information, and Media browsing information, respectively.
Vehicle Data. Carries vehicle-associated (GPS, wheel speed, etc.) data from the vehicle to the mobile device.
Input Events. Sends input events to the mobile device from input devices on the vehicle, such as touchscreens, buttons, controllers, etc.
Microphone Audio. Used by the mobile device to receive audio captured by the vehicle microphone.
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
Main SW blocks for AAP
41 / Alexandru Lupu / 06-03-2018 © Continental AG
GAL Service
Device Control / User Actions
Audio De/Encoding Video Decoding
Resource Sync
Sensor Data Provider
Device Discovery
USB
Network
Bluetooth
Android Device
Head Unit
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
Android Auto – Voice Recognition
42 / Alexandru Lupu / 06-03-2018 © Continental AG
sd AndroidAutoVoiceRecognition
HMI
(from CarPlaySessionEstablishment)
IcvtoProjection
(from CarPlaySessionEstablishment)
User
(from CarPlaySessionEstablishment)
opt Activ ate VR on Long press
* Need clarification from Google, this is tentative
In case of long press (>600ms)
after 600ms VR Button Down, call
androidAutoVRButtonEventOccured
(AA_VR_BUTTON_DOWN)
On VR button release, call
androidAutoVRButtonEventOccured
(AA_VR_BUTTON_DOWN)
Cannot start device VR when native VR is in
session. Cannot start VR during a call.
opt Deactiv ate VR on short press
It is not clear from spec how Android
VR is deactivated
long press
short press
Activate and Deactivate VR on Android Auto Phone
VR Button Down()androidAutoVRButtonEventOccured(timestamp,
AA_VR_BUTTON_DOWN)
VR Button Up()androidAutoVRButtonEventOccured(timestamp,
AA_VR_BUTTON_UP)
VR Button Down()
TBD()
VR Button Down()TBD()
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
Android Auto – BT Setup
43 / Alexandru Lupu / 06-03-2018 © Continental AG
sd AndroidAutoBletoothHFPSetup
Projection device pairing and HFP connection
Bleutooth setup complete
BT pairing setup
Initialization
cvtoProjection IcvtoBluetoothGAL HU Native
Bluetooth/HMI
Projection Phone
Driver
report if already paired or not
inform GAL HU BT address and pairing method
alt
[HU not ready for pairing in 1s]
Android Auto Bluetooth setup during session establishment (RED
marked are APIs required from icvtoBluetooth.h)
now ready for pair, phone initiate
pairing and hfp connection
device name
pair method = SSP
pin = <XXXX>
registerListener(this, BTLT_UNKNOWN) :EBTResult
getLocalBTAddress(uint64_t& btAddress )
registerCarBluetoothAddress(btAddress)
getLocalPairingMethods(uint16_t & pairingMethods)
registerPairingMethod(pairingMethods)
onPairingRequest(const string& phoneAddr, sint_t pairingMethod)
activeProjectionMode(EBTProjectMode projMode = BTPS_ANDROID_AUTO,
phoneAddr)
activated(OK/NOK)
requestDelayedPairing()
getServiceConnectionStatus(CONNECTED) :
EBTResult
onReadyForPairing(alreadypaired = true/false)
Pair(newDevice)
handleBTNotif(N_NEW_PAIRING_REQUEST)
getPairingRequest()
prompt user for
accept/reject()Accept()
acceptPairing()
handleBTNotif(N_PAIRING_STATUS)
Connect(HFP)
handleBTNotif(N_SERVICE_CONNECTION_STATUS_CHANGED)
handleBTNotif(N_HFP_DEVICE_CONNECTION_STATUS)
handleBTNotif(notification = N_HFP_DEVICE_CONNECTION_STATUS)
getServiceConnectionStatus(SCS_CONNECTED)
getServiceConnectionStatus(SCS_CONNECTED)
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
44 / Alexandru Lupu / 06-03-2018 © Continental AG
sd AndroidAutoSessionEstablishment
ssw_IProdInfrastructureController IcvtoProjection HMI
User
ENV
deviceID =id ; <id assigned by projection app>
eDeviceType = DEVICE_GOOGLE
eState = PROJ_DEVICE_ATTACHED
portNo = <usb port number>
szDeviceName = <device name>
Note <dev ice name should be prov ided by
Infra
Android Auto dev ice plugged in
Role switch
Android Auto device plugged in notification
opt
[!FirstDevice]
[FirstDevice & & AutoShow = true]
Get device node from GUID
Activate automatically if "AutoShow" is set
In sequence diagram provided by
CONTI, the signal name are
CONNECTING and CONNECTED,
instead we have used the name and
PROJ_SESSION_ESTABLISHING
PROJ_SESSION_ESTABLISHED.
Is it OK?
Android Auto Session establishment with plugin (HMI up and running) [[ [HMI dev eloper consider Icv toProjection and HMI lifeline in blue]]
infctrlRegisterForNotifications()
RequestDeviceNotifications(AAP_TRANSPORT_GUID)
infctrlOnDeviceStatusChange_f(sDeviceStatus->eDeviceState = eStateAttached,
sDeviceStatus->eDeviceActiveTypes = eTypeMediaTransferProtocol)
Update Device Info (SProjectionDeviceInfo*)
OnProjectionDeviceInfoChanged(const uint32_t projectionDeviceInfoMask, const
SProjectionDeviceInfo& projectionDeviceInfo)
Show updated Device List()
Select a device to connect from device list()
ActivateProjectionMode(projectionDeviceInfo.deviceID)
ActivateProjectionMode(projectionDeviceInfo.deviceID)
OnProjectionDeviceInfoChanged(eState = PROJ_SESSION_ESTABLISHING)
infctrlRequestChangeActiveDeviceType(a_idPort,
eTypeAndroidAuto)
AdvertiseInterface(AAP_TRANSPORT_GUID)
Android Auto session
establishment()
OnProjectionDeviceInfoChanged(eState = PROJ_SESSION_ESTABLISHED)
Android Auto – Session Establishment
Bitte Absenderangaben auf dem Folienmaster ändern
ein- oder zweizeilig
Questions?
45 / Alexandru Lupu / 06-03-2018 © Continental AG