Presentation is loading. Please wait.

Presentation is loading. Please wait.

Giotto Embedded Control Systems Development with Thomas A. Henzinger Ben Horowitz Christoph M. Kirsch University of California, Berkeley www.eecs.berkeley.edu/~fresco/giotto.

Similar presentations


Presentation on theme: "Giotto Embedded Control Systems Development with Thomas A. Henzinger Ben Horowitz Christoph M. Kirsch University of California, Berkeley www.eecs.berkeley.edu/~fresco/giotto."— Presentation transcript:

1 Giotto Embedded Control Systems Development with Thomas A. Henzinger Ben Horowitz Christoph M. Kirsch University of California, Berkeley www.eecs.berkeley.edu/~fresco/giotto (presented by Marius Minea)

2 Embedded Systems Development Control Engineer Control Design Application models derives simulates Software Engineer Distributed Platform Giotto Program decomposes implements tests Functionality & Timing Matlab Giotto!

3 The Time-Triggered Paradigm [Kopetz]: -all communication activities triggered by clock -predictability (i.e., verifiability) -safety-critical applications (e.g., automotive) TTA: hardware & protocol realization Giotto: programming language realization Our Approach

4 Motivating Example: Flight Control (DARPA SEC Program)

5 Periodic Tasks INU task GPS task air data task pilot task pitch control roll control throttle controlaileron 1 taskaileron 2 tasktailplane taskrudder taskthrust task Sensor tasksControl tasksActuator tasks

6 200 Hz 1 kHz 200 Hz1 kHz

7 Modes Control system of airplane is designed to operate in different modes. In each mode a particular set of controllers is deployed. There are switches between modes. For example: –Navigational modes (taxi, takeoff, cruise). –Maneuver modes (dive, roll). –Fault tolerance modes (track which hardware is working).

8 Giotto Giotto is a tool-supported methodology for embedded control systems design Giotto consists of –a time-triggered and platform-independent programming language –a compiler –a runtime library Giotto provides an abstract programmer’s model

9 The Giotto Methodology Giotto Executable Giotto Program Compilation Giotto Runtime Library Distributed Platform Functionality & Timing Scheduling & Communication RTOS, e.g., VxWorks

10 Task Definition: Abstract Syntax fInput ports State Output ports Period

11 Task Invocation: Time-Deterministic Semantics fInput ports State Output ports Time Task Read @ time t Period 10ms Write @ time t+10ms

12 fInput portsOutput ports Time Task Read @ time t Period 10ms Write @ time t+10ms Don’t care Task Invocation: Time-Deterministic Semantics State Actual time the task uses the CPU (may be preempted)

13 Input/Output: Sensors-Control Law-Actuators f State SensorsActuators

14 Inter-task Communication: Connections P Q

15 Different Periods Time Task QQ tt+10mstt+5ms P

16 Q-to-Q Connection P Q

17 Zero-Delay Semantics Time Task QQ tt P

18 P-to-Q Connection P Q

19 Zero-Delay Semantics Time Task QQ tt P

20 Time-Deterministic Semantics Time Task QQ t+5ms P t Don’t care Perhaps on same CPU

21 Time-Deterministic Semantics Time Task QQ t+5ms P t

22 Time-Deterministic Semantics Time Task QQ t+5ms P t Most recent value guaranteed to be available (may have to be buffered)

23 Time-Deterministic Semantics Task QQ t+5ms P tt+10ms

24 An Abstract Programmer’s Model Input/Output PortsFunctionality Time-Determ. Computation Zero-Delay Communication Timing High-Level Programming Giotto

25 Giotto Modes Multi-modal control Fault tolerance Event modeling Resource sharing Uncertain environments Some Motivations:

26 Giotto Modes A mode is a parameterized set of tasks. A Giotto program consists of a set of modes and mode switches. A Giotto system is in a single mode at any given time.

27 Abstract Syntax of a Mode P Q Entry Port Period 10ms 1 2 Frequencies

28 MM’ Trigger predicate Abstract Syntax of a Mode Switch Connection Frequency 2: evaluation of trigger predicate every 5ms

29 Mode M P Q Period 10ms 1 2 Connection

30 Mode M’ P R 1 4 Connection Period 10ms

31 Concrete Syntax start m ( ) { mode m ( ) period 10 ms { taskfreq 1 do P ( ) ; taskfreq 2 do Q ( x, y ) ; exitfreq 2 if y = 5 then m’ ( y ) ; } mode m’ ( int z ) period 10 ms { taskfreq 1 do P ( ) ; taskfreq 4 do R ( x, z ) ; } Tasks are C procedures

32 Semantics of the Mode Switch Task QQ Mode Switch @ t+10mst+10ms PP R Easy Case:

33 Semantics of the Mode Switch Task Q Time Mode Switch @ t+5ms P Interesting Case:

34 Semantics of the Mode Switch Task Q t+5ms RR t+7.5mst+10ms PP R

35 Mode M P Q 1 2 Connection

36 Semantics of the Mode Switch Task Q t+5ms RR Time P Mode switch already finished!

37 Mode M’ P R 1 4 Connection

38 Semantics of the Mode Switch Task Q t+5ms RR Time P

39 Mode M’ P R 1 4 Connection

40 Semantics of the Mode Switch Task Q t+5ms RR Time P

41 Mode M’ P R 1 4 Connection

42 Semantics of the Mode Switch Task Q t+5ms RR Time P Initial value

43 Semantics of the Mode Switch Task QRR Time P

44 Input/Output PortsFunctionality Time-Determ. Computation Zero-Delay Communication Timing High-Level Programming Giotto ModesDecomposition The Abstract Programmer’s Model

45 The Giotto Compiler Automatic code generation Compilation directives in the form of Giotto annotations for distributed platforms

46 The Giotto Compiler Giotto Compiler Giotto Program Giotto Executable Two possible answers: Giotto executable “Not schedulable” (either because program overconstrained, or because compiler not smart enough)

47 Closing the Gap: Giotto-Architecture Annotations Giotto Compiler Hosts (CPUs), Nets, Worst-case execution / transmission times Giotto Program Giotto-A Program Distributed Platform

48 Closing the Gap: Giotto-Mapping Annotations Giotto Compiler Tasks to Hosts, Connections to Nets Hosts, Nets, Performance Giotto Program Giotto-A Program Giotto-AM Program Distributed Platform

49 Closing the Gap: Giotto-Schedule Annotations Giotto Program Giotto Compiler Giotto-A Program Distributed Platform Giotto-AM Program Giotto-AMS Program Hosts, Nets, Performance Tasks to Priorities (say), Connections to TDMA (say) Tasks to Hosts, Connections to Nets

50 P Platform Dependency Task QQ Time Computation

51 P Giotto-AM Task QQ Time Host A

52 P Giotto-AMS Task QQ Time Host A 2. 1. Priority

53 Platform Dependency Task QRR Time Communication P

54 Giotto-AMS Task QRR Time Host BBB Network C P Host A t+10ms Real deadline for P! Time slot for connection

55 The Giotto Runtime Library Giotto Executable Giotto Program Compilation Giotto Runtime Library Distributed Platform Functionality & Timing Scheduling & Communication RTOS, e.g., VxWorks

56 The Giotto Runtime Library Giotto Runtime Library Distributed Platform RTOS, e.g., VxWorks Timer service Scheduling service TCP/IP stack Scheduling & Communication Abstraction Task, connection mapping Task priorities Connection TDMA slots Real-Time OS Services

57 Pure Lego Demo

58 Heterogeneous Lego-VxWorks Demo VxWorks Lego Wireless Ethernet – Infrared bridge

59 Behavior of each Robot Lead FollowEvade My sensor pushed Someone else’s sensor pushed My sensor pushed Stop Evading finished Someone else’s evading finished

60 Soon to Fly Giotto: ETH Zurich Helicopter


Download ppt "Giotto Embedded Control Systems Development with Thomas A. Henzinger Ben Horowitz Christoph M. Kirsch University of California, Berkeley www.eecs.berkeley.edu/~fresco/giotto."

Similar presentations


Ads by Google