MotoHawk_Training

advertisement

1

MotoHawk Training

Model-Based Design of Embedded Systems

2

Course Outline

Why Model-Based Design?

The MotoHawk ™ System w/ Demonstration

The Simulink ® Model

The MotoHawk ™ Way

Advanced Software & Hardware Issues

Real Application Challenge

3

Why Model-Based Design?

Specification

Modeling

S/W Design

S/W Implementation

Model-

Based

Design

Extra

Time &

Money

Hand-

Coding

H/W Verification against Specification

H/W Verification against Model

S/W Verification

S/W Debugging

Time

Development Process Comparison

Models

Traditional Application Development

4

Application Engineers

Specification

Software Engineers source code

Compiler

Linker

Application

File

Loader

Application Engineers

Models

Interfaces

Code

Gen

Model Based Application Development

Compiler

Linker

Application

File

Loader

MotoHawk ™ ECU-based Rapid Prototyping

Key Benefits

• Better testing using real ECU hardware

• Faster cycle time for adding new features and enhancing existing features

• Improved documentation of system design via working models of the system

• Better ability to control IP development

Key Features

• ControlCore enabled

• Development is completed on the production capable

ECU and related software

• Calibration using MotoTune

• Optional HUD

• ECU’s available for development, pilot, or production

HUD

5

Control Design

PCM

MotoTune

Working Closer to Production

6

Custom

HW Prototype

Define Requirements

& Architecture

Define Algorithms

Production Code

Generation

Environment In Loop

Testing

MotoHawk TM

Prototype

Hardware In Loop

Testing

HUD

Control Design

PCM

MotoTune

7

MotoHawk

Block

Libraries

(mdl)

MotoHawk

Block

Code Gen

Scripts

(tlc)

MotoHawk

Master

Code Gen

Script

(tlc)

MotoHawk

Template

Makefile

(tmf)

Code Generation Process Flow

Simulink

Block

Library

(mdl)

Custom

Block

Libraries

(mdl)

Application

Engineers

Mathworks Tools

Matlab, Simulink, Stateflow, Realtime Workshop, Embedded Coder model

(mdl)

Realtime

Workshop

Code Gen makefile

(mk) source code

(c,h)

Matlab

Library

Source

(.c,.h) make Toolchain

Compiler, Linker, Loader, Calibration

Compiler

Linker

Application

File

(srec,elf)

Loader

Operating System and

Board Support

OS

Source

(.c,.h)

Board

Support

Source

(.c,.h)

MotoHawk tm

8

Modeling with MotoHawk ™

9

Blinking LED: MotoHawk ™

10

MotoHawk ™ Demonstration

Open the model in Simulink

Generate Code

Compile and Link

Download to ECU

Run!

11

The Standard Simulink

®

Model

Trigger

Subsystem

Block

Signal

Port

System

12

Modeling Software with Simulink

®

Simulink Elements

Systems, Blocks

Port

Signal

Trigger

Software Elements

Functions,

Encapsulation

Interfaces

Values, Variables

Function-calls, Events

13

Modeling Software with Simulink

®

Native Simulink block diagrams can represent signal processing very well

Blocks can represent H/W Input & Output

Function-call triggers can represent events

Library links can represent references and provide model reuse

14

The MotoHawk ™ Way

“Model the elements of the whole system, including the processor, build environment, memory, and operating system.”

Elements of Simulink

®

:

Modeling & Simulation Environment

Code Generation

Elements of MotoHawk ™:

Input & Output Model

Operating System Model

Integrated Build Environment

15

MotoHawk ™ Input & Output Model:

Model blocks for ECU I/O and engine-specific peripherals

Examples:

 Digital Inputs & Outputs

 Analog-to-Digital Inputs

 PWM Outputs

 Serial Inputs & Outputs

 CAN Inputs & Outputs

Engine-specific peripherals

 Electronic Spark Timing Outputs

 Engine Knock Inputs

 Fuel Injector Control Outputs

16

MotoHawk™ Input & Output Model:

17

MotoHawk ™ Operating System Model

Model blocks for program flow and triggering

Examples:

 Periodic Tasks

 Interrupts

 Operating System Events

18

MotoHawk™ Input & Output Model:

19

MotoHawk ™ Build Environment

Whole process, from pictures to working machine, in one environment

 Simulation

 System Verification

 Code Generation

 Makefile Generation

 Compile, Link, Locate, and Program

 Integration with Calibration Tools

 Documentation

20

MotoHawk ™ and Simulink ®

Together

Simulink

® is excellent for modeling control laws

Native Simulink

® is not very expressive for modeling general software systems

MotoHawk ™ adds real-time software elements to the

Simulink

® environment

21

Control System Example

Control Law

Design system simulation model

Design MotoHawk ™ software model

Reuse control law

22

Control Law Example

23

Simulation with the Control Law

24

Problems with the diagram

The control law should be designed using discrete elements

We would like to allow a continuous plant model

We would like to take advantage of Variable-Step simulation

We need to simulate discrete sampling of the control law

25

Improved System Simulation

26

Designing a Control System

 The control law example specifies ‘what’ to do in the controller, the ‘logic’

 To design a system, we need to also specify ‘when’ to execute the control logic

To test the control logic, we would like to simulate the controller with a continuous plant model

MotoHawk ™ Software Model

27

Sample Inputs

Passive Control Law

Update Outputs

28

Sampling Inputs from the Hardware

29

Updating Outputs to the Hardware

30

Reuse & Abstraction

We reused the control law block, which we place into a library

We convert H/W input values to standard units used by the control law

We convert from standard units used by the control law to H/W output values

31

Hardware and Software Issues

We try to separate the controller design from the H/W and S/W issues

Some systems are more complex

 Probes, calibrations, overriding signals

 Distributed systems, with multiple controllers

 Multi-rate and asynchronous systems

 Task preemption and long calculations

32

Probes, Calibrations, and Overrides

33

Probes, Calibrations, and Overrides

MotoHawk ™ seamlessly integrates with MotoTune™, a calibration tool allowing real-time observation and control.

Probes allow monitoring of values

Calibrations allow adjustment of constants

Overrides allow signal modification for testing

This typical S/W issue has been abstracted into the model

34

Calibratable Lookup Tables

35

MotoTune

®

Development Tool

Used to program the MotoTron ECU(s).

Used to interact with the application running on the

ECU.

 Capable of modifying calibration parameters realtime.

 Capable of monitoring and overriding values throughout the application software.

 Capable of real-time charting of development data.

36

The MotoTune

®

Display

37

Distributed Systems, Multiple Controllers

38

Distributed Systems, Multiple Controllers

The system simulation model may use more than one controller, but still use one plant model

Each controller has its own sampling trigger, possibly at different rates

Each controller will have its own MotoHawk ™ software model, for code generation

The controllers may use different target hardware

39

Multi-Rate Controllers

40

Multi-Rate Controllers

System simulation uses same picture as the distributed system

Multiple tasks, each modeled as a unique controller

Only one MotoHawk ™ software model, using multiple triggers, one for each task

The processor only runs one task at a time, so we must be aware of task priority and data coherency between tasks

41

Task Preemption

If we want to use multiple tasks, we must be very careful about the priority of tasks, and nesting of interrupts

 MotoHawk uses ControlCore, MotoTron’s ECU-Based

RTOS, with a foreground / background scheduler, and queued interrupt handlers.

Task Preemption

42

Hardware

Interrupts

Top-half Parsing

BGND

BGND

Foreground

Tasks

Background

Tasks

Process BGND

TDC

TDC

CAN Rx

Interrupt

Process TDC

CAN

TDC Process CAN

Finish BGND

Time

Background Queue

FIFO

Foreground Queue

FIFO

43

Task Preemption

Lower priority tasks may be delayed by higher priority tasks

The system must be designed to allow for these delays

When a task interruption occurs, all data movement between tasks must be coherent

MotoHawk ™ provides Critical Region blocks to handle atomic data transfer between asynchronous tasks

44

MotoHawk ™ Application Challenge

1.

Using Slider 1 as a throttle command, read the analog voltage and convert the output value (0-

1023) to a 0-5V signal.

2.

Read the throttle position from analog input AN4 and convert the output value (0-1023) to a 0-5V signal.

3.

Determine the error and use a basic PI controller to provide PWM ETC A with a duty cycle command.

45

Conclusion

Why do model-based rapid-prototyping using

MotoHawk ™

• Better testing using real ECU hardware

• Faster cycle time

• Improved documentation of system design

• Better ability to control IP development

• Calibration using MotoTune

• ECU’s available for development, pilot, or production

MotoTron Control Solutions

Production Controls in a Flash

Download