Course Perspective #1: Today Mostly About Software � The purpose of an advanced class is to Course perspective and logistics � tackle an area in depth � Embedded systems introduction � This course is primarily about embedded software � SW is primary focus on labs, exams, etc. In contrast 5780 is a basic course and tries � to give a broad overview of microcontroller system issues Course Perspective #2: Holistic Q: Why focus on a holistic view of � embedded software? Can’t just look at an embedded system as a � collection of parts A: You are extremely valuable if you: � Many important issues involve the whole Have a deep understanding of both the HW and � 1. SW sides of embedded system design, and how system they interact � Debugging Can see the big picture about a software design 2. � Security in order to spot potential problems and � Timeliness opportunities � Power and energy use � What does “extremely valuable” mean? Prereqs and Expectations Course Components � Everyone should already: Lecture � � Be able to write and debug C programs � I expect good attendance � Understand basic systems concepts – interrupts, � If attendance is too bad I start giving pop quizzes device interfacing, etc. Labs � � From CS/ECE 5780, CS 4400, CS 5460, … � Embedded programming projects CS folks need to be willing to learn: � � Bulk of your time will be spent on these � Breadboarding Homework � � Logic analyzer use � Pretty minimal – handful of assignments � How to read vendor reference manuals Exams � � ECE folks need to be willing to learn: � 1 midterm, 1 final � Software engineering material � System-level software thinking � A bit of programming language and compiler material Page 1
Textbook Labs Tuesdays, 3:40-5:00 in the ECE Digital Lab � � MEB 2265 Better Embedded System � Programming environment is CodeWarrior � Software, by Phillip IDE which runs on Windows Koopman � Free download if you want to run it on your machines � Also: Get a good book on C � Programming target is a ColdFire programming development board from FreeScale � Course web page lists one � Nice 32-bit CPU � There are other good ones, we � You work in groups of two can talk about this… � Best to have one CS person, one ECE person! Determines 50% of your course grade � To Do Get on the cs5785 course mailing list � Questions? � See https://sympa.eng.utah.edu/sympa � � One list for all course sections � I’ll assume everyone reads this � Mail to this list goes to all subscribers � To mail just me and the TA use � teach-cs5785@list.eng.utah.edu Look for a number starting with 2* on the � back of your Ucard � If this number isn’t there, you need a new card � The 2* indicates a modern card that contains the RFID chip that will get you into the lab Embedded Systems Definitions of “Embedded System” Account for >99% of new � microprocessors � Consumer electronics A special-purpose computer that interacts with 1. � Vehicle control systems the real world through sensing and/or actuation � Medical equipment A computer that you don’t think of as a 2. � Etc. computer Almost any computer that isn’t a PC 3. … 4. Page 2
More definitions Embedded Characteristics Microprocessor: A regular CPU � Microcontroller: A system on chip that � � Close interaction with the physical world contains extra support for dealing with the � Often must operate in real time real world Constrained resources � � Analog to digital and digital to analog converters � Memory � Pulse width modulation � SRAM, DRAM, flash, EEPROM, … � Networks: serial, I2C, CAN, USB, 802.15.4, etc… � Energy � General-purpose I/O pins � CPU cycles � Lots of interrupt lines � Pins � Low-power sleep modes � Flash memory read / write cycles � Voltage / frequency scaling � What else? � Temperature / vibration resistance � Onboard volatile and nonvolatile RAM � What else? More Characteristics Important Difference Concurrent � � Easy to make concurrency errors Unlike PC software, embedded software is � � Hard to find and fix them developed in the context of a particular piece of hardware Often lack: � � This is good: � Virtual memory � App can be tailored very specifically to � Memory protection platform � Hardware supported user-kernel boundary � In many cases writing portable software is not � Secondary storage a concern � Have to be developed rapidly � This is bad: Cost sensitive � All this tailoring is hard work � � Per-unit cost often dominates overall cost of a product Digital Signal Processing What Do Embedded Systems Do? Idea: � 5 main kinds of functionality: � � Operate on discrete approximations of � Digital signal processing continuous signals � Open loop and closed loop control � Origins in the 1960s and 70s: � Wired and wireless networking � Radar and sonar � User interfacing � Space program � Storage management � Oil exploration Most embedded systems do 1-4 of these � � Medical imaging � Which apply to: Far broader applicability today � � Cell phone? � LinkSys home router? � Cruise control? � Stoplight? Page 3
More DSP Control Idea � � Applications: � Make stuff happen in the world � Telecom: Compression, echo control, wireless � Open loop control � Audio: Music, speech generation and recognition � No feedback � Echo location: Radar, sonar, medical, seismology � E.g. toaster, stoplight � Image processing: Compression, feature recognition, manipulation � Closed loop control � You could take years of courses on DSP � Uses feedback to adjust output � Extremely broad topic � E.g. thermostat, cruise control � Extensive theoretical underpinnings � You could take years of courses on control � But you better enjoy differential equations… Networking User Interfacing Idea � Idea � � Present functionality directly to humans � Processors want to talk to each other Modes: � Differences from PC networking � � Visual – screens � Communication is often local � Tactile – keyboards � E.g. “unlock the driver’s side door” � Aural – sounds, speech recognition � Specialized protocols This aspect of embedded systems shouldn't � Often not TCP/IP � be ignored � Topology may be fixed � Bad interfaces kill people � Often low-bandwidth � E.g. anesthesia, radiation therapy � Faster networks not necessarily better � Wireless increasingly important But we will ignore it anyway � � Packets can have real-time deadlines � Doesn’t really fit in with rest of course � We have a UI course if you’re really interested Storage Embedded System Requirements Idea � � Make today’s huge persistent storage devices Two basic flavors � available to embedded applications � Functional – What the system does � Sometimes embedded storage is special- � We just talked about this purpose � Non-functional (or para-functional) – Important � Car needs to remember if passenger-side airbag properties not directly related to what the system is enabled or disabled does But often, general-purpose storage � management can be embedded � iPods, digicam flash cards, etc. use standard filesystems Page 4
Example Non-Functional Crosscutting Issues Requirements Energy efficiency � Energy-efficient � � Must run for years on a tiny battery (hearing aid, Real-time � pacemaker) Safety critical � Unlimited power (ventilation control) � Upgradeable � Real-time � Cost sensitive � Great harm is done if deadlines are missed (process Highly available or fault-tolerant � � control, avionics, weapons) � Secure Few time constraints (toy) � � These issues cut across system designs � Important (and difficult) to get them right � We’ll be spending a lot of time on these More Crosscutting Issues More Crosscutting Issues � Safety critical Cost sensitivity � � Device is safety critical (nuclear plant) � A few % in extra costs will kill profitability Failure is largely irrelevant (toy, electric toothbrush) � (many products) Cost is largely irrelevant (military applications) � Upgradability � Impossible to update (spacecraft, pacemaker) � Availability / fault-tolerance � Easily updated (firmware in a PC network card) � � Must be operating all the time (pacemaker, spacecraft control) Can shutdown at any time (cell phone) � More Crosscutting Issues Secure � Security breach extremely bad (smart card, � satellite, missile launch control) Security irrelevant (many systems) � Distributed � Single-node (many systems) � � Fixed topology (car) � Variable topology (sensor network, bluetooth network) Page 5
Recommend
More recommend