CMP 3006
Embedded Systems Programming
Course Overview
What is an embedded system?
• Computing systems are everywhere
• Most of us think of “desktop” computers
• PC’s
• Laptops
• Mainframes
• Servers
• But there’s another type of computing system
• Far more common...
• Embedded systems are designed to do some specific task, rather than
be a general-purpose computer for multiple tasks
What is an embedded system?
• An embedded system is a controller with a program
• Hardware+Software
• What makes a microcontroller:
– Self Contained
• CPU
• Memory
• I/O
– Application or Task Specific
• Not a general-purpose computer
• Appropriately scaled for the job
Designing Embedded Systems
• Microcontrollers
– Don’t have keyboard and monitor jacks
– Must use ports to perform I/O
• Inputs – to sense things
• Outputs – to control things
• Related Component Topics
– Common Interfaces
– Part Packages
Peripherals
• Serial Communication Interfaces (SCI): RS-232, RS-422, RS-485, etc.
• Synchronous Serial Communication Interface: I2C, SPI, SSC and ESSI
• Universal Serial Bus (USB)
• Multi Media Cards (SD cards, Compact Flash, etc.)
• Networks: Ethernet, LoRa, etc.
• Fieldbuses: CAN-Bus, LIN-Bus, PROFIBUS, etc.
• Timers: PLL(s), Capture/Compare and Time Processing Units
• Discrete IO: aka General Purpose Input/output (GPIO)
• Analog to Digital/Digital to Analog (ADC/DAC)
• Debugging: JTAG, ISP, ICSP, BDM Port, BITP, and DB9 ports.
Characteristics of an Embedded System
• Single-functioned
• Tightly constrained
• Reactive and Real time
• Microprocessors based
• Memory
• Connected
• HW-SW systems
Characteristics of an Embedded System
• Advantages
• Easily Customizable
• Low power consumption
• Low cost
• Enhanced performance
• Disadvantages
• High development effort
• Larger time to market
Basic Structure of an Embedded System
• Sensor
• A-D Converter
• Processor
• D-A Converter
• Actuator
Which microprocessor to use in an embedded
system?
• Embedded systems usually perform much simpler tasks than a
desktop PC and hence contain only simple microcontrollers as their
CPU.
• Note the price difference between an Intel Core 2 Duo processor
worth 100s of dollars vs. A 8051 or MSP430 worth less than $1!
Which microprocessor to use in an embedded
system?
• Microprocessors or microcontrollers only accept instructions in
‘machine code’ (‘object code’). Any software, written in whether
assembly, C, C++, Java or Ada must ultimately be translated into
machine code
• Embedded processors – like the AVR, 8051 microcontroller – have
limited processor power and very limited memory available: the
language used must be efficient
• To program embedded systems, we need low-level access to the
hardware: this means, at least, being able to read from and write to
particular memory locations (using ‘pointers’ or an equivalent
mechanism).
Which operating system to use in an
embedded system?
• In a desktop PCs we have multiple programs running,and the
operating system provides the ‘common code’ (for printing, file
storage, graphics, and so forth) that is required by this set of
programs.
• Most embedded systems are required to run only a single program
which starts running when the microcontroller is powered up, and
will stop running when the power is removed.
• As a consequence, the simplest architecture in an embedded system
is typically a form of ‘Super Loop’
Super Loop
How do we develop embedded software?
• Compiling, linking and executing a program on a desktop PC is
straightforward.
• Embedded devices do not have sufficient memory resources to allow
them to be used for compiling programs, and they will not support a
keyboard or graphics display.
• Hence, we need to cross-compile the code on a desktop PC,
generating machine code that is compatible with the target
embedded processor, and after testing the code on a simulator, we
transfer it to the target microcontroller.
How do we develop embedded software?
• We are going to use AVR (Atmel Chips)
Arduino Uno
General Comments About the Course
• Prerequisites
• Computer Organization
• A working knowledge of C/C++ programming
• (or willingness/time to pick it up quickly!)
• Basic Electric Circuits (Resistor, Capacitor, Transistor, etc.)
• Simulator
• https://www.tinkercad.com
Topics Covered
• Hardware Fundamentals & Computer Architecture Review
• Interrupts and Timers
• ADC&DAC applications
• Communication: Serial RS232, SPI, I2C, CAN
Grading Policy
• Midterm 30%
• Quizes+Lab 15%
• Popup quizes
• Project 20%
• report and working demo
• Final 35%

Lecture 1 Introduction.pptx

  • 1.
    CMP 3006 Embedded SystemsProgramming Course Overview
  • 2.
    What is anembedded system? • Computing systems are everywhere • Most of us think of “desktop” computers • PC’s • Laptops • Mainframes • Servers • But there’s another type of computing system • Far more common... • Embedded systems are designed to do some specific task, rather than be a general-purpose computer for multiple tasks
  • 4.
    What is anembedded system? • An embedded system is a controller with a program • Hardware+Software • What makes a microcontroller: – Self Contained • CPU • Memory • I/O – Application or Task Specific • Not a general-purpose computer • Appropriately scaled for the job
  • 5.
    Designing Embedded Systems •Microcontrollers – Don’t have keyboard and monitor jacks – Must use ports to perform I/O • Inputs – to sense things • Outputs – to control things • Related Component Topics – Common Interfaces – Part Packages
  • 6.
    Peripherals • Serial CommunicationInterfaces (SCI): RS-232, RS-422, RS-485, etc. • Synchronous Serial Communication Interface: I2C, SPI, SSC and ESSI • Universal Serial Bus (USB) • Multi Media Cards (SD cards, Compact Flash, etc.) • Networks: Ethernet, LoRa, etc. • Fieldbuses: CAN-Bus, LIN-Bus, PROFIBUS, etc. • Timers: PLL(s), Capture/Compare and Time Processing Units • Discrete IO: aka General Purpose Input/output (GPIO) • Analog to Digital/Digital to Analog (ADC/DAC) • Debugging: JTAG, ISP, ICSP, BDM Port, BITP, and DB9 ports.
  • 7.
    Characteristics of anEmbedded System • Single-functioned • Tightly constrained • Reactive and Real time • Microprocessors based • Memory • Connected • HW-SW systems
  • 8.
    Characteristics of anEmbedded System • Advantages • Easily Customizable • Low power consumption • Low cost • Enhanced performance • Disadvantages • High development effort • Larger time to market
  • 9.
    Basic Structure ofan Embedded System • Sensor • A-D Converter • Processor • D-A Converter • Actuator
  • 10.
    Which microprocessor touse in an embedded system? • Embedded systems usually perform much simpler tasks than a desktop PC and hence contain only simple microcontrollers as their CPU. • Note the price difference between an Intel Core 2 Duo processor worth 100s of dollars vs. A 8051 or MSP430 worth less than $1!
  • 11.
    Which microprocessor touse in an embedded system? • Microprocessors or microcontrollers only accept instructions in ‘machine code’ (‘object code’). Any software, written in whether assembly, C, C++, Java or Ada must ultimately be translated into machine code • Embedded processors – like the AVR, 8051 microcontroller – have limited processor power and very limited memory available: the language used must be efficient • To program embedded systems, we need low-level access to the hardware: this means, at least, being able to read from and write to particular memory locations (using ‘pointers’ or an equivalent mechanism).
  • 12.
    Which operating systemto use in an embedded system? • In a desktop PCs we have multiple programs running,and the operating system provides the ‘common code’ (for printing, file storage, graphics, and so forth) that is required by this set of programs. • Most embedded systems are required to run only a single program which starts running when the microcontroller is powered up, and will stop running when the power is removed. • As a consequence, the simplest architecture in an embedded system is typically a form of ‘Super Loop’
  • 13.
  • 14.
    How do wedevelop embedded software? • Compiling, linking and executing a program on a desktop PC is straightforward. • Embedded devices do not have sufficient memory resources to allow them to be used for compiling programs, and they will not support a keyboard or graphics display. • Hence, we need to cross-compile the code on a desktop PC, generating machine code that is compatible with the target embedded processor, and after testing the code on a simulator, we transfer it to the target microcontroller.
  • 15.
    How do wedevelop embedded software? • We are going to use AVR (Atmel Chips)
  • 17.
  • 18.
    General Comments Aboutthe Course • Prerequisites • Computer Organization • A working knowledge of C/C++ programming • (or willingness/time to pick it up quickly!) • Basic Electric Circuits (Resistor, Capacitor, Transistor, etc.) • Simulator • https://www.tinkercad.com
  • 19.
    Topics Covered • HardwareFundamentals & Computer Architecture Review • Interrupts and Timers • ADC&DAC applications • Communication: Serial RS232, SPI, I2C, CAN
  • 20.
    Grading Policy • Midterm30% • Quizes+Lab 15% • Popup quizes • Project 20% • report and working demo • Final 35%