Notes - Department of Electrical Engineering and Computing Systems

advertisement

Embedded Systems

(Cyber-Physical Systems):

Introduction

Course goals: understand the major issues in embedded systems development and learn about some commonly available tools to quickly and efficiently produce embedded systems for specific applicataion

Course overview:

Syllabus: text, references, grading, etc.

Schedule: will be updated regularly; lectures, assignments, labs

Project / Team formation

Student survey

Q: What is an “embedded” system?

A: a special-purpose processor, with associated software, for a specific application or set of applications; has ONLY the hardware / software resources needed for the application.Architecture:

(Peckol, ch 11):

“SAFER”:

(virtual) machine model: clearly separated

“MORE EFFICIENT”: common implementation: layers upper layers may have access to some lower-level functions:

Some common embedded system implementations

--specific processor architectures: Intel

8051, ARM, PIC, PowerPC, …

--FPGA prototypes and implementations:

Altera, Xilinx, …

--ASICs

“Harvard architecture”:

--PIC processor family

Processor Examples

Control

Instruc.

I/O Data ALU

“von Neumann architecture”:

--simple processor

-m

P 3 processor

I/O

--MIPS processor

-NIOS II processor core (Altera “soft core” processor)

Control

Memory

Data +

Instruc.

ALU

5

PIC processor family: processor is fixed, developer programs it

Reference: http://en.wikipedia.org/wiki/PIC_microcontroller

• PIC: peripheral interface controller

• Originally (~1975) for offloading I/O functions from a CPU

• Harvard architecture: data and instructions (“code”) are stored separately—thus a data item and an instruction do not need to be the same length

• Newer versions have a stack

• One accumulator (referred to as W), but memory is usually referred to as a

“register file”

• Some versions allow a type of indirect addressing

• Usually referred to as a RISC machine; may have up to 70 instructions

• May be able to access external memory (newer versions)

• Many development tools & languages available

Data

“Code”

(Instructions)

6

Hardware basis in this course: Altera FPGAs (PLAs)

CARRY IN

IN OUT

BUS BUS

(LOOK-UP

TABLE or

LUT)

CLOCK

RESET

MEM IN

MEMORY

(1-BIT)

MEM OUT

FPGA

(EXAMPLE)

GLOBAL BUS

RAM BLOCK

LOCAL BUS

CARRY OUT

SINGLE FPGA CELL

DESIGNING AN FPGA-BASED CIRCUIT /

PROCESSOR:

• USE HIGH-LEVEL ABSTRACTION,

LIBRARIES, IP

• USE HARDWARE DESCRIPTION

LANGUAGES (Verilog, VHDL)

• USE AUTOMATED TOOLS TO PRODUCE

LAYOUT

• MAY FINE-TUNE DESIGN DETAILS

• DESIGN APPLICATION-SPECIFIC

PROCESSOR / SOFTWARE

• or USE / MODIFY PROCESSOR

ARCHITECTURE PROVIDED BY FPGA

MANUFACTORER (ALTERA: NIOS II)

Final product: “embedded system”

Reference: http://en.wikipedia.org/wiki/Embedded_system

Typical embedded system (implemented in FPGA):

• Special-purpose “computer” designed for device it controls

• user is provided with a processor with basic functionality

• processor can be programmed in software

• Additional features can be added using the FPGA resources to customize the design for a specific intended use

• Processor core may be “hard” (built-in as part of the chip) or

“soft” (using some of available FPGA resources. Ex: Altera

Nios II processor)

• Processor may have options—e.g., number of registers, floating point units

• Specialized CAD tools allow inclusion of additional functionality

• Hardware / software codesign now becomes a possibility

Codesign:

Strengths:

Performance,

Resource Usage

Weaknesses:

Flexibility, Design

Productivity;

Strengths:

Flexibility, Design

Productivity;

The basic codesign process:

Weaknesses:

Performance,

Resource Usage

(diagram: course on codesign by Niemann, Univ. of Dortmund, Winter 2008)

Reference: http://www.ece.cmu.edu/~koopman/iccd96/iccd96.html#introduction

Much of the following information is taken from this site

Typical embedded system properties:

• Processor: application–specific, not general-purpose

• Human interface: may be as simple as a flashing light or as complicated as real-time robotic vision.

• I/O: analog I/O is typical

Diagnostic port: may be used for diagnosing the system that is being controlled -- not just for diagnosing the computer.

• Special-purpose hardware: [field programmable (FPGA), application specific (ASIC), or even non-digital] may be used to increase performance or safety.

• Operating system: typically must handle real-time processing (Note:

“real-time” is NOT necessarily the same as “fast”)

• Software: often has fixed function; specific to application.

Business considerations: often play a big role in design choices.

Examples (Koopman):

*

*

Design change with cost above this magnitude can affect profitability, so typically needs management okay.

Design issues:

• System may need to be real-time / reactive

(does not mean “fast” necessarily)

• Usually must be small and not weigh much

• Must be safe and reliable

• Must meet budget constraints (cost)

• May need to work in harsh environmental conditions (e.g., in an automobile)

• May need to deal with security issues

System requirements:

• Focus is on end-use capability, not on CPU performance, memory size, etc.

• System software must be safe and reliable

• Power usage should be low, depending on applications

• System typically controls a physical system— sensors / actuators

Embedded system lifecycle / requirements:

• Components—same component may work in several different systems—this can lower cost

• Safety certification—must often meet rigorous requirements (e.g., medical, aviation, automotive, military)

• Recertification—if system is modified

• Logistics / repair—accessibility is important

• Upgrades—need to be handled efficiently

• Component availability—may be long-term needs

“business model”:

What are design / production costs?

What is the life-cycle?

Are there “product families”?

Design culture:

Computer/ VLSI—simulate, simulate, simulate

Mechanical/sensors—build, build, build

Differing world views need to be reconciled

Skills an embedded systems designer needs

(*this course ; [not covered] ):

*C programming / programming

• HDL:

*Verilog / [VHDL]

• Hardware design:

*Altera FPGAs / [Xilinx ….]

• Computer architecture

• * ?

A/D & D/A conversion (I/O)

• Operating systems

• *Real-time programming, operating systems

• (*) Project skills: Writing/documentation;

Engineering design; Teamwork; Managing

[Business training] i.e., thorough knowledge of hardware and software design, implementation, and test + understanding of consumer/business issues

Lab 1: tonight, 825 Old Chem

-student survey

--ideally each student will have a laptop running windows

(or possibly linux)

--tools can be downloaded from the Altera site: http://www.altera.com/education/univ/unv-index.html

--boards: we would like to use the Altera DE-1 board, ideally each team will acquire one; to start we can do design and simulation

--work on understanding how to implement simple circuits in

Verilog and how to simulate them and get timing information (2week assignment, due September 10)

Download