7/23 CSE 325 Embedded Microprocessor System Design Fall 2010 Computer Science & Engineering Department Arizona State University Tempe, AZ Dr. Yann-Hang Lee Brickyard 552 (480)
set Course Syllabus (1) To focus in the integration of hardware modules to construct embedded systems, the programming models and characteristics of various input/out interfaces. Use either assembly language or any high-level languages Course Goals: Develop an understanding for using a CPU core as a component in system-level design. Ability to integrate CPU core with various interface units in embedded controllers. Skills for programming and debugging I/O operations to manage peripherals for embedded applications. Pre-requisites: Assembly language, microprocessor organization, and experience of C programming language
set Course Syllabus (2) Major topics covered: Introduction and review of instruction set and assembly language programming (3 lectures) Interfacing between C and assembly languages (2 lectures) Coldfire processor and IO multiplexing (2 lecture) Interrupt and exception (2 lectures) Timers and counters (2 lectures) Serial communication: UART, SPI, and I2C (5 lectures) Parallel I/O interface and signal handshaking (2 lectures) Keyboards and LCD (3 lectures) A/D-D/A converters (2 lectures) Memory devices, SRAM, DRAM, flash memory, and SDRAM controller (4 lectures)
set Course Syllabus (3) Office hours: 3:45pm – 5:30pm, Monday and Wednesday Evaluation Midterm exams (20%) (during the class periods on March 10) Lab assignments (50%) Final exam (30%) (during the final exam period scheduled by the University, i.e. 9:50-11:40am, Dec. 15) You can bring in a set of manuals (to be specified), calculator, and a 3x5 note card to the exams.
set Target Environment Freescale Project Board Student Learning Kit and Coldfire 5211SLK Development Software CodeWarrior IDE (editor, compiler, assembler, debugger, etc.)
set Embedded Systems Computer (general) PC on desk top Windows, , instant message, Microsoft word, power point, games computation and communication Embedded system the software and hardware component that is an essential part of an application system Plantsensoractuator Control and computation Reference input Embedded Controller
Embedded Systems -- Examples
set Applications of Embedded Systems They are everywhere How many CPUs in your PC The average new car has a dozen microprocessors in it. The Mercedes S-class has 65. How many microprocessors in average household microwave oven washer, dryer, dishwasher garage opener HDTV
set Hardware Platform Organization buses to connect components – PCI, ISA, PC104+ Package standard chips on PC processor + ASIC SOC CPU (micro- processor) I/O Timer memory
set Embedded Processors Must be optimized for applications performance, speed power I/O peripherals Processor cores + peripheral interfaces x86 processor + PCI bus SoC (system on a chip) architecture integrate CPU core and peripheral interfaces on one chip with some internal RAM and external boot memory extendable with an external bus HC11 micro-controller SoC platforms configurable IP blocks and software support Applications: handheld computing, cellular phone, infotainment, automobile, etc.
set Simple SW Structure for Embedded Systems To write the control software (program) for a smart washer initialize read keypad or control knob read sensors take an action System current state state transition diagram external triggers via polling or ISR Threads for concurrent operations initialization external trigger? Take actions Change system state ISR: to set/clear events
set Software Structure of Periodic Tasks Invoke computation periodically Adjust pressure valves at a 20 Hz rate wait for the interrupt event Task initialization (set up periodic timer interrupts) computation start_time=time( ) Task initialization computation Sleep(period - ( time( ) -start_time) )
set Embedded System Development Development process integrate HW components develop programs Test Development environment Requirements Test/verification Implementation (HW and SW) Ethernet Simulated signal source (Workstation, embedded system development tools) (workstation, interface cards, & test harness) Development workstationEmbedded systems
set Development Environment Use the host to edit, compile, and build application programs configure the target At the target embedded system, use tools to load, execute, debug, and monitor (performance and timing) Target X.c X.cpp X.s Makefile GNU X.o X.out vxWorks CrossWind WindSh Browser WindView Tornado Tools VxWorks RTOS & Target agent WDB Agent Target Server Applications (text, data) Host Target