simulating service-oriented architectures with canoe’s ...€¦ · simulating service- oriented...
Post on 18-Oct-2020
6 Views
Preview:
TRANSCRIPT
V1.1 | 2016-11-28
Automotive Ethernet Symposium 2017
Simulating Service-Oriented Architectures with CANoe’s Function Bus
2
Automotive Industry Trends
SoA Middleware Requirements
The CANoe Function Bus
Test Concepts
Summary
Agenda
3
Mega Trends Automotive Industry Trends
Major Changes in E/E Architecture
Automated Driving
Different sensor types On/off-board
information fusion Complex algorithms
security is a must fail operational needed
Electrification
Efficiency Start-stop, sailing, ... Hybrid Battery Electric Vehicle Multi voltage
broad range of solutions standards needed
Connectivity (IoT)
Infotainment V2X Cloud services OTA update & diagnostics
always on new business models
4
Embedded Software becomes Software Automotive Industry Trends
ADAS Autonomous Driving
Connected Car Car-to-X
Technology Drivers
Implications
Service
Service
Service
Service
Platform
Communication
Topology
Test focus
AUTOSAR/OSEK
Signal flow
Static
Device
AUTOSAR Adaptive, Linux et al.
SoA, complex data
Dynamic
Function
5
It‘s all about middleware Automotive Industry Trends
AUTOSAR Basic Approach
© AUTOSAR.org
AUTOSAR the Next Generation – The Adaptive Platform, Simon Fürst, ARS@EDCC 2015
viwi https://www.w3.org/Submission/2016/01/
http://open-services.net/specifications/
6
Automotive Industry Trends
SoA Middleware Requirements
The CANoe Function Bus
Test Concepts
Summary
Agenda
7
Asynchronous Remote Procedure Calls SoA Middleware Requirements
Client
GetItem(12)
Middleware Middleware Server
GetItem(12)
Return(42)
ECU ECU
Ethernet cable
8
Services are a composition of Methods (RPCs) Events (Notifications) Fields (Events with getter/setter methods)
Announce availability and location of services
Publish/subscribe model for events
Dynamic approach to communication Service discovery Activate/deactivate communication paths Intelligent usage of uni-, multi-, broadcast Service content is statically defined
Save bandwidth and computing resources
Easy relocation of services
SOME/IP SoA Middleware Requirements
Offer service
Subscribe eventgroup
Notifications
Call method
Method result
Client Server
9
Web Services Higher layer than SOME/IP: Built on top of HTTP Representational State Transfer (REST) paradigm Example: Volkswagen Infotainment Web Interface (viwi)
CAN FD: CAN with Flexible Data Rate Bigger datagrams Higher data rate Dynamic payload
Beyond SOME/IP SoA Middleware Requirements
GET /car/doors/ HTTP/1.1 … HTTP/1.1 200 OK … { "status": "ok", "data": [ { "name": "FrontLeft", "uri": "/car/doors/3901a278-ba17-44d6-9aef" }, { "name": "FrontRight", "uri": "/car/doors/8901870-b526-11e3-a5e2" } ] }
12
Prototyping and Integration SoA Middleware Requirements
Real ECU
Virtual ECU
Simulation node
CANoe
13
Prototyping and Integration SoA Middleware Requirements
Real ECU
Virtual ECU
Simulation node
CANoe
14
Prototyping and Integration SoA Middleware Requirements
Real ECU
Virtual ECU
Simulation node
CANoe
15
Prototyping and Integration SoA Middleware Requirements
Real ECU
Virtual ECU
Simulation node
CANoe
17
Converging point: Function Bus The CANoe Function Bus
Abstraction
client/server communication
Support services and their discovery
Address dynamic topologies
Easy switching between real and simulated components
SOME/IP <SoA>
AUTOSAR Adaptive
Virtual prototyping
AUTOSAR VFB
CANoe Function Bus
18
Function Bus Molecules: Communication Objects The CANoe Function Bus
F5 F4
F2
F1
F3
F6
F7
Logical participant / Function
Endpoint
Any pair of endpoints may
…connect distinct physical devices, or
…share a MAC address on the same PHY, or
…share an IP address, or
…connect abstract simulation code.
Communication Object
Signal
PDU
RPC
Service Methods, Events,
Fields
(like SOME/IP)
Asynchronous remote procedure
call
Protocol Data Unit
19
Communication Objects: Configuration The CANoe Function Bus
FrontLeftCAM
FrontRightCAM
RearCAM
HeadUnit
ParkAssist
M
Dyn. Clients * Dyn. Servers * System.arxml
Intelligent AUTOSAR (adaptive) import
vVIRTUALtarget
Interface Camera {
Operations:
GetCamStatus()
SetVideoFormat()
Events:
imageT NewFrame
}
Interface Definition Language / Editor
HeadUnit Virtual Target
ParkAssist Real
Simulated
Simulated
Real
FrontLeftCAM
FrontRightCAM
RearCAM
20
Communication Object: Layers The CANoe Function Bus
App. API App. API
Binding block
21
Communication Object: Layers The CANoe Function Bus
SOME/IP
TCP/UDP/IP
Ethernet
SOME/IP
TCP/UDP/IP
Ethernet
App. API App. API
Binding block
22
Communication Object: Layers The CANoe Function Bus
Web Service
HTTP/TCP/IP
Ethernet
Web Service
HTTP/TCP/IP
Ethernet
App. API App. API
Binding block
23
Communication Object in Real Environment I The CANoe Function Bus
SOME/IP
TCP/UDP/IP
Ethernet
SOME/IP
TCP/UDP/IP
Ethernet
App. API App. API
Sim. node
Binding block configured
ECU
24
Communication Object in Real Environment II The CANoe Function Bus
SOME/IP
TCP/UDP/IP
Ethernet
SOME/IP
TCP/UDP/IP
Ethernet
App. API App. API
Measurement
ECU ECU VN56xx
25
Communication Object in Simulated Environment The CANoe Function Bus
SOME/IP
TCP/UDP/IP
Ethernet
SOME/IP
TCP/UDP/IP
Ethernet
App. API App. API
Sim. node A
Abstract transmission
No need to configure those
layers
Abstract timing behaviour by transmission
models
Virtual ECU
26
Automotive Industry Trends
SoA Middleware Requirements
The CANoe Function Bus
Test Concepts
Summary
Agenda
27
CANoe
Function Bus
IL SD
SOME/IP
TCP/UDP/IP
Testing: Choosing the right layer Test Concepts
Bus
send(msg1)
on msg2 {
…
}
Test
Bus
Application
IL NM
TP
SUT (real or virtual)
Test
$sig1 = 1;
On sig2 {…}
IL NM
TP
Eth
Application
SUT (real or virtual)
Test
SetStatus(42)
IL SD
TCP/UDP/IP
SOME/IP
Classic domain: PDUs and signals Service-oriented Architecture domain
Application
SUT (virtual only)
Test
@sig1 = 1;
On sig2 {…}
CANoe System variables
Application
SUT (virtual only)
Test
SetStatus(42) Re-use
SUT (real or virtual)
Abstract
28
Test Side: Programming Examples Test Concepts
on key 'f' { CAM[HeadUnit,FrontLeftCam] .GetCamStatus.CallAsync(); } on called CAM[HeadUnit,FrontLeftCam] .GetCamStatus { this.status = CAM_RECORDING; this.return = 1; } on returned CAM[HeadUnit,FrontLeftCam].GetCamStatus { //… } testcase X { TestWaitForCall(…); …LatestCall.Result = 1; …LatestCall.Return(); TestWaitForReply(…); }
CAPL C# Answering Machine
public override void Start()
{
var cam = new CAM();
cam.SetConsumer(HeadUnit);
cam.SetProvider(FrontLeftCAM);
cam.CallAsync((result) => {
Output.WriteLine(“returned”);
});
}
[OnCall(typeof(CAM.GetStatus))]
void OnGetStatus(CAM.GetStatus.CC cc)
{
Execution.Wait(100);
cc.Return(1);
}
29
APIs for Testing SoA Applications Test Concepts
Service Discovery Abstraction of SOME/IP SD
Configurable automatic offers
Observable discovery states
New wait functions Await service being discovered
Await function call on server side
Await function return on client side
Await event subscription
Service Mockup Answering Machine
Configurable automatic answers
Dynamic endpoints
New handlers On service discovered
On function called
On function returned
On event subscribed
30
Core functionality for vVIRTUALtarget integration and SOME/IP simulation/modeling
available starting with CANoe 10.0 (Mid 2017)
Conclusion Summary
E/E architectures keep on changing
All major OEMs design service-oriented architectures
CANoe function bus key concepts: Providing a simulation backbone for all relevant communication paradigms Supporting virtual and real integration of SoA Prototyping and integration of classic (signal-based) systems Simplifying test cases by providing the right level of abstraction
31 © 2016. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V0.1 | 2016-11-17
For more information about Vector and our products please visit www.vector.com
Author: Köllner, Christian Vector Germany
top related