SlideShare a Scribd company logo
EMBEDDED SYSTEM
WITH ARDUINO
Embedded System
 Is a special purpose system designed to perform a
few dedicated functions.
 Small foot prints (in memory)
 Highly optimized code
 Cell phones, mp3 players are examples.
 The components in an mp3 player are highly
optimized for storage operations. (For example, no
need to have a floating point operation on an mp3
player!)
04/29/2025
2
Introduction
Definition
 A combination of hardware and software which
together form a component of a larger machine.
 An example of an embedded system is a
microprocessor that controls an automobile engine.
 An embedded system is designed to run on its own
without human intervention, and may be required
to respond to events in real time.
Processor Basics
ALU
Register
s
Control
Unit
CPU
Memory
Periphera
ls
MCU
SoC
Bus
What is a
Microcontroller
• A small computer on a
single chip
• containing a
processor, memory,
and input/output
• Typically, "embedded"
inside some device that
they control
• A microcontroller is
often small and low cost
www.mikroe.com/chapters/view/1
Microcontroller
 Processor – Instruction Set + memory + accelerators
 Ecosystem
 Memory
 Non-Volatile
o ROM
o EPROM, EEPROM, Flash
 Volatile
o RAM (DRAM, SRAM)
 Interfaces
 H/W: Ports
 S/W: Device Driver
 Parallel, Serial, Analog, Time
 I/O
 Memory-mapped vs. I/O-instructions (I/O-mapped)
Done
• Hardware
• Software
• Specifications
• Constraints
Analyze
the
problem
Requirements
Design
Constraints
Testing
• Block diagrams
• Data flow graphs
Deployment
New requirements
New constraints
Development
Product Life Cycle
Analysis (What?)
Requirements -> Specifications
Design (How?)
High-Level: Block Diagrams
Engineering: Algorithms, Data
Structures, Interfacing
Implementation(Real)
Hardware, Software
Testing (Works?)
Validation: Correctness
Performance: Efficiency
Maintenance (Improve)
What is a Development Board
 A development board is a small, pre-designed circuit board
with a microcontroller or microprocessor.
 It's used to develop, test, and prototype electronic devices
and systems.
 What it's used for
 Learning: For beginners and experts to build circuits and
systems
 Prototyping: To test circuit designs and validate theories
 Industrial applications: To create smart home solutions, such as
lighting, heating, and security systems
 Internet of Things (IoT): To receive, monitor, analyze, and
record sensor signals
Popular development boards
 Arduino,
 Raspberry Pi,
 Intel Edison,
 Intel Galileo,
 Node MCU,
 E-health shield,
 Atmega328p MC.
Why Was Arduino Developed?
 Physical Computing – using components that can interact with
people and with the world around us
 The Arduino was originally developed for artists and designers to
prototype interactive displays
 Developed for non-scientists
 Minimalist programming
 “Forgiving” circuitry that can handle a wide variety of wiring
errors
The Arduino Development Board
The Arduino Microcontroller: Atmel ARV Atmega
328
What is the Arduino
todbot.com/blog/bionicarduino
Try It: Connect the USB Cable
Arduino IDE
Select Serial Port and Board
Status Messages
todbot.com/blog/bionicarduino
Different Varieties of Arduino
What Can Arduino Uno Be Used To Teach?
 Introductory electronics (voltage, current, resistance)
 How sensors and actuators work
 Rudimentary programming
 Design of basic scientific equipment
 Troubleshooting
 Challenges of communicating with users through a project (e.g.,
messages, formatting numbers, ease of use, etc.)
 Statistics and variation in data gathering
Continuity – Is it a Circuit?
The word “circuit” is derived from the circle.
An Electrical Circuit must have a continuous
LOOP from Power (Vcc) to Ground (GND).
Continuity is important to make portions of
circuits are connect. Continuity is the
simplest and possibly the most important
setting on your multi-meter. Sometimes we
call this “ringing out” a circuit.
Measuring Electricity – Voltage
Voltage is a measure of potential
electrical energy. A voltage is
also called a potential difference
– it is measured between two
points in a circuit – across a
device.
Measuring Electricity -- Current
Current is the measure of the rate of
charge flow. For Electrical Engineers –
we consider this to be the movement
of electrons.
In order to measure this – you must break
the circuit or insert the meter in-line
(series).
Measuring Electricity --
Resistance
Resistance is the measure of how much
opposition to current flow is in a circuit.
Components should be removed entirely
from the circuit to measure resistance.
Note the settings on the multi-meter.
Make sure that you are set for the
appropriate range.
Resistance
settings
Prototyping Circuits
Solderless Breadboard
One of the most useful tools in an
engineer or Maker’s toolkit. The
three most important things:
• A breadboard is easier than soldering
• A lot of those little holes are connected, which
ones?
• Sometimes breadboards break
What’s a Breadboard?
Solderless Breadboard
Each row (horiz.) of 5 holes are
connected.
Vertical columns – called power
bus are connected vertically
Using the Breadboard to built a simple circuit
Use the breadboard to wire up
a single LED with a 330 Ohm
Resistor (Orange-Orange-
Brown).
Note: the longer leg on the LED is
the positive leg and the shorter
leg is the negative
Fritzing View of Breadboard
Circuit
What happens when
you break the
circuit?
What if you wanted
to add more than
one LED?
Adding control – let’s use the Arduino
and start programming!!!
Concepts: INPUT vs. OUTPUT
Inputs is a signal / information
going into the board.
Output is any signal exiting the
board.
Almost all systems that use physical computing will have some form of
output
Concepts: INPUT vs. OUTPUT
Examples: Buttons Switches,
Light Sensors, Flex Sensors,
Humidity Sensors,
Temperature Sensors…
Examples: LEDs, DC motor,
servo motor, a piezo buzzer,
relay, an RGB LED
Concepts: Analog vs. Digital
Microcontrollers are digital devices – ON or OFF. Also called – discrete.
analog signals are anything that can be a full range of values. What are
some examples? More on this later…
5 V
0 V
5 V
0 V
Open up Arduino
Hints:
For PC Users 
1.Let the installer copy and
move the files to the
appropriate locations, or
2.Create a folder under C:
Program Files (x86) called
Arduino. Move the entire
Arduino program folder
here.
For Mac Users 
1. Move the Arduino
executable to the
dock for ease of
access.
2. Resist the temptation
to run these from
your desktop.
Arduino
Integrated Development Environment (IDE)
Two required functions /
methods / routines:
void setup()
{
// runs once
}
void loop()
{
// repeats
}
error & status messages
Settings: Tools  Serial Port
Your computer
communicates to the
Arduino microcontroller via
a serial port  through a
USB-Serial adapter.
Check to make sure that
the drivers are properly
installed.
Settings: Tools  Board
Next, double-check that the proper board is selected
under the ToolsBoard menu.
What Are Some Good Components to Start With?
 LEDs….lots of LEDs with variety
of colors (be sure to also
acquire lots of current-limiting
resistors)
 Good for blinking, dimming
using PWM, “Knight Rider”
effect with 8 or more LEDs,
strobe effects, etc.
What Are Some Good Components to Start With?
 LCD Screen with backlight (16x2 is common and teaches the
complications of textual display)
 The parallel version uses 4 digital pins for display
 Instructions for how to connect is built in as a sample “sketch” in the
Arduino
 Students get a huge degree of satisfaction from transmitting text to the
LCD screen
Current-limiting
resistors for RGB
backlight
10 kW
potentiometer to
adjust screen
contrast
What Are Some Good Components to Start With?
 Basic temperature and/or humidity sensor
 DHT11 or DHT22 is a good entry-level choice
 Library can be downloaded and incorporated to give easy access to
features of the sensor
Current-limiting
resistors for RGB
backlight
DHT 11 Sensor
What Are Some Good Components to Start With?
 Small servos
 Arduino can be used to position servo
at a given angle for use in projects.
 Other sensors can be attached to the
servo to add a layer of complexity
 Servo library included in Arduino IDE
What Are Some Good Components to Start With?
 Ultrasonic Ranger – uses ultrasonic waves to determine the distance
between sensor and object based on time between emission of wave
and echo of it.
 Good for introducing discussion of speed of sound variation with
environmental conditions
 Calibration principles are easily discussed
What Are Some Other Components
That Are Relatively Easy to Use?
 GPS Module that can be used for a variety of purposes
such as triggering a response only when the user is
standing in a particular location
What Are Some Other Components
That Are Relatively Easy to Use?
 Mechanical or
Solid-State
Relay Boards to
control
alternating
current loads of
several amps
Let’s get to coding…
Project #1 – Blink
“Hello World” of Physical Computing
Psuedo-code – how should this work?
Turn LED
ON
Wait
Turn LED
OFF
Wait
Rinse &
Repeat
Project #1: Wiring Diagram
Move the green
wire from the
power bus to pin
13 (or any other
Digital I/O pin on
the Arduino
board.
Image created in
Fritzing
A few simple challenges
Let’s make LED#13 blink!
Challenge 1a – blink with a 200 ms second interval.
Challenge 1b – blink to mimic a heartbeat
Challenge 1c – find the fastest blink that the human
eye can still detect…
1 ms delay? 2 ms delay? 3 ms delay???
Try adding other LEDs
Programming Concepts: Variables
Global
---
Function-
level
Variable Scope
Programming Concepts: Variable Types
Variable Types:
8 bits 16 bits 32 bits
byte
char
int
unsigned int
long
unsigned
long
float
Fading in and Fading Out
(Analog or Digital?)
A few pins on the Arduino allow for us to modify the
output to mimic an analog signal.
This is done by a technique called:
Pulse Width Modulation (PWM)
Concepts: Analog vs. Digital
Pulse Width Modulation (PWM)
To create an analog signal, the microcontroller uses a technique called
PWM. By varying the duty cycle, we can mimic an “average” analog
voltage.
Project #2 – Fading
Introducing a new command…
analogWrite(pin, val);
pin – refers to the OUTPUT pin
(limited to pins 3, 5, 6, 9, 10,
11.) – denoted by a ~ symbol
val – 8 bit value (0 – 255).
0 => 0V | 255 => 5V
Move one of your LED pins over to Pin 9
In Arduino, open up:
File  Examples  01.Basics  Fade
Fade - Code Review
Fade - Code Review

More Related Content

PDF
Arduino Workshop Day 1 - Basic Arduino
PPT
computer_programming for grade 12 learners
PPS
What is Arduino ?
PDF
The IoT Academy IoT training Arduino Part 1 basics
PPTX
IoT applications With Arduino coding and real life examples
PPTX
Introduction to Arduino Hardware and Programming
PDF
Prototyping Embedded Devices_Internet of Things
PPTX
AAPT Presentation-No Videos.pptx
Arduino Workshop Day 1 - Basic Arduino
computer_programming for grade 12 learners
What is Arduino ?
The IoT Academy IoT training Arduino Part 1 basics
IoT applications With Arduino coding and real life examples
Introduction to Arduino Hardware and Programming
Prototyping Embedded Devices_Internet of Things
AAPT Presentation-No Videos.pptx

Similar to embedded_in_Arduino_with_basic_embedded.pptx (20)

PPTX
Arduino
PDF
Introduction of Arduino Uno
PPT
Intro to Arduino
PDF
SKAD Electronics Training Manual.pdf
PPTX
introduction of arduino and node mcu
PPTX
Basic arduino components and more things about arduino
PPTX
Introduction to Arduino session and basically it depends how you us and where...
PPTX
Introduction to Arduino.pptx
PPTX
Embedded application development
PPTX
arduino and its introduction deep dive ppt.pptx
PDF
manual Internet of ThingsArduino_IOTArdu
PPTX
Internet of Things Unit 3 notes-Design and Development and Arduino.pptx
PPTX
B1_25Jan21.pptx
PDF
arduinoworkshop-160204051621.pdf
PPTX
Ardui no
PDF
Embedded system introduction - Arduino Course
PDF
Arduino - Learning.pdf
PDF
Oop 2014 embedded systems with open source hardware v2
PPTX
Arduino study and applications in IT.pptx
PPTX
This will give the basic introduction to a arduino
Arduino
Introduction of Arduino Uno
Intro to Arduino
SKAD Electronics Training Manual.pdf
introduction of arduino and node mcu
Basic arduino components and more things about arduino
Introduction to Arduino session and basically it depends how you us and where...
Introduction to Arduino.pptx
Embedded application development
arduino and its introduction deep dive ppt.pptx
manual Internet of ThingsArduino_IOTArdu
Internet of Things Unit 3 notes-Design and Development and Arduino.pptx
B1_25Jan21.pptx
arduinoworkshop-160204051621.pdf
Ardui no
Embedded system introduction - Arduino Course
Arduino - Learning.pdf
Oop 2014 embedded systems with open source hardware v2
Arduino study and applications in IT.pptx
This will give the basic introduction to a arduino
Ad

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Machine Learning_overview_presentation.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Empathic Computing: Creating Shared Understanding
PPT
Teaching material agriculture food technology
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Machine learning based COVID-19 study performance prediction
PDF
Approach and Philosophy of On baking technology
PPTX
A Presentation on Artificial Intelligence
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Big Data Technologies - Introduction.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Getting Started with Data Integration: FME Form 101
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
NewMind AI Weekly Chronicles - August'25-Week II
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Machine Learning_overview_presentation.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Empathic Computing: Creating Shared Understanding
Teaching material agriculture food technology
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Machine learning based COVID-19 study performance prediction
Approach and Philosophy of On baking technology
A Presentation on Artificial Intelligence
Unlocking AI with Model Context Protocol (MCP)
Dropbox Q2 2025 Financial Results & Investor Presentation
Big Data Technologies - Introduction.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation theory and applications.pdf
Programs and apps: productivity, graphics, security and other tools
Getting Started with Data Integration: FME Form 101
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Ad

embedded_in_Arduino_with_basic_embedded.pptx

  • 2. Embedded System  Is a special purpose system designed to perform a few dedicated functions.  Small foot prints (in memory)  Highly optimized code  Cell phones, mp3 players are examples.  The components in an mp3 player are highly optimized for storage operations. (For example, no need to have a floating point operation on an mp3 player!) 04/29/2025 2
  • 4. Definition  A combination of hardware and software which together form a component of a larger machine.  An example of an embedded system is a microprocessor that controls an automobile engine.  An embedded system is designed to run on its own without human intervention, and may be required to respond to events in real time.
  • 6. What is a Microcontroller • A small computer on a single chip • containing a processor, memory, and input/output • Typically, "embedded" inside some device that they control • A microcontroller is often small and low cost www.mikroe.com/chapters/view/1
  • 7. Microcontroller  Processor – Instruction Set + memory + accelerators  Ecosystem  Memory  Non-Volatile o ROM o EPROM, EEPROM, Flash  Volatile o RAM (DRAM, SRAM)  Interfaces  H/W: Ports  S/W: Device Driver  Parallel, Serial, Analog, Time  I/O  Memory-mapped vs. I/O-instructions (I/O-mapped)
  • 8. Done • Hardware • Software • Specifications • Constraints Analyze the problem Requirements Design Constraints Testing • Block diagrams • Data flow graphs Deployment New requirements New constraints Development Product Life Cycle Analysis (What?) Requirements -> Specifications Design (How?) High-Level: Block Diagrams Engineering: Algorithms, Data Structures, Interfacing Implementation(Real) Hardware, Software Testing (Works?) Validation: Correctness Performance: Efficiency Maintenance (Improve)
  • 9. What is a Development Board  A development board is a small, pre-designed circuit board with a microcontroller or microprocessor.  It's used to develop, test, and prototype electronic devices and systems.  What it's used for  Learning: For beginners and experts to build circuits and systems  Prototyping: To test circuit designs and validate theories  Industrial applications: To create smart home solutions, such as lighting, heating, and security systems  Internet of Things (IoT): To receive, monitor, analyze, and record sensor signals
  • 10. Popular development boards  Arduino,  Raspberry Pi,  Intel Edison,  Intel Galileo,  Node MCU,  E-health shield,  Atmega328p MC.
  • 11. Why Was Arduino Developed?  Physical Computing – using components that can interact with people and with the world around us  The Arduino was originally developed for artists and designers to prototype interactive displays  Developed for non-scientists  Minimalist programming  “Forgiving” circuitry that can handle a wide variety of wiring errors
  • 13. The Arduino Microcontroller: Atmel ARV Atmega 328
  • 14. What is the Arduino todbot.com/blog/bionicarduino
  • 15. Try It: Connect the USB Cable
  • 17. Select Serial Port and Board
  • 21. What Can Arduino Uno Be Used To Teach?  Introductory electronics (voltage, current, resistance)  How sensors and actuators work  Rudimentary programming  Design of basic scientific equipment  Troubleshooting  Challenges of communicating with users through a project (e.g., messages, formatting numbers, ease of use, etc.)  Statistics and variation in data gathering
  • 22. Continuity – Is it a Circuit? The word “circuit” is derived from the circle. An Electrical Circuit must have a continuous LOOP from Power (Vcc) to Ground (GND). Continuity is important to make portions of circuits are connect. Continuity is the simplest and possibly the most important setting on your multi-meter. Sometimes we call this “ringing out” a circuit.
  • 23. Measuring Electricity – Voltage Voltage is a measure of potential electrical energy. A voltage is also called a potential difference – it is measured between two points in a circuit – across a device.
  • 24. Measuring Electricity -- Current Current is the measure of the rate of charge flow. For Electrical Engineers – we consider this to be the movement of electrons. In order to measure this – you must break the circuit or insert the meter in-line (series).
  • 25. Measuring Electricity -- Resistance Resistance is the measure of how much opposition to current flow is in a circuit. Components should be removed entirely from the circuit to measure resistance. Note the settings on the multi-meter. Make sure that you are set for the appropriate range. Resistance settings
  • 26. Prototyping Circuits Solderless Breadboard One of the most useful tools in an engineer or Maker’s toolkit. The three most important things: • A breadboard is easier than soldering • A lot of those little holes are connected, which ones? • Sometimes breadboards break
  • 28. Solderless Breadboard Each row (horiz.) of 5 holes are connected. Vertical columns – called power bus are connected vertically
  • 29. Using the Breadboard to built a simple circuit Use the breadboard to wire up a single LED with a 330 Ohm Resistor (Orange-Orange- Brown). Note: the longer leg on the LED is the positive leg and the shorter leg is the negative
  • 30. Fritzing View of Breadboard Circuit What happens when you break the circuit? What if you wanted to add more than one LED?
  • 31. Adding control – let’s use the Arduino and start programming!!!
  • 32. Concepts: INPUT vs. OUTPUT Inputs is a signal / information going into the board. Output is any signal exiting the board. Almost all systems that use physical computing will have some form of output
  • 33. Concepts: INPUT vs. OUTPUT Examples: Buttons Switches, Light Sensors, Flex Sensors, Humidity Sensors, Temperature Sensors… Examples: LEDs, DC motor, servo motor, a piezo buzzer, relay, an RGB LED
  • 34. Concepts: Analog vs. Digital Microcontrollers are digital devices – ON or OFF. Also called – discrete. analog signals are anything that can be a full range of values. What are some examples? More on this later… 5 V 0 V 5 V 0 V
  • 35. Open up Arduino Hints: For PC Users  1.Let the installer copy and move the files to the appropriate locations, or 2.Create a folder under C: Program Files (x86) called Arduino. Move the entire Arduino program folder here. For Mac Users  1. Move the Arduino executable to the dock for ease of access. 2. Resist the temptation to run these from your desktop.
  • 36. Arduino Integrated Development Environment (IDE) Two required functions / methods / routines: void setup() { // runs once } void loop() { // repeats } error & status messages
  • 37. Settings: Tools  Serial Port Your computer communicates to the Arduino microcontroller via a serial port  through a USB-Serial adapter. Check to make sure that the drivers are properly installed.
  • 38. Settings: Tools  Board Next, double-check that the proper board is selected under the ToolsBoard menu.
  • 39. What Are Some Good Components to Start With?  LEDs….lots of LEDs with variety of colors (be sure to also acquire lots of current-limiting resistors)  Good for blinking, dimming using PWM, “Knight Rider” effect with 8 or more LEDs, strobe effects, etc.
  • 40. What Are Some Good Components to Start With?  LCD Screen with backlight (16x2 is common and teaches the complications of textual display)  The parallel version uses 4 digital pins for display  Instructions for how to connect is built in as a sample “sketch” in the Arduino  Students get a huge degree of satisfaction from transmitting text to the LCD screen
  • 41. Current-limiting resistors for RGB backlight 10 kW potentiometer to adjust screen contrast
  • 42. What Are Some Good Components to Start With?  Basic temperature and/or humidity sensor  DHT11 or DHT22 is a good entry-level choice  Library can be downloaded and incorporated to give easy access to features of the sensor
  • 44. What Are Some Good Components to Start With?  Small servos  Arduino can be used to position servo at a given angle for use in projects.  Other sensors can be attached to the servo to add a layer of complexity  Servo library included in Arduino IDE
  • 45. What Are Some Good Components to Start With?  Ultrasonic Ranger – uses ultrasonic waves to determine the distance between sensor and object based on time between emission of wave and echo of it.  Good for introducing discussion of speed of sound variation with environmental conditions  Calibration principles are easily discussed
  • 46. What Are Some Other Components That Are Relatively Easy to Use?  GPS Module that can be used for a variety of purposes such as triggering a response only when the user is standing in a particular location
  • 47. What Are Some Other Components That Are Relatively Easy to Use?  Mechanical or Solid-State Relay Boards to control alternating current loads of several amps
  • 48. Let’s get to coding… Project #1 – Blink “Hello World” of Physical Computing Psuedo-code – how should this work? Turn LED ON Wait Turn LED OFF Wait Rinse & Repeat
  • 49. Project #1: Wiring Diagram Move the green wire from the power bus to pin 13 (or any other Digital I/O pin on the Arduino board. Image created in Fritzing
  • 50. A few simple challenges Let’s make LED#13 blink! Challenge 1a – blink with a 200 ms second interval. Challenge 1b – blink to mimic a heartbeat Challenge 1c – find the fastest blink that the human eye can still detect… 1 ms delay? 2 ms delay? 3 ms delay???
  • 53. Programming Concepts: Variable Types Variable Types: 8 bits 16 bits 32 bits byte char int unsigned int long unsigned long float
  • 54. Fading in and Fading Out (Analog or Digital?) A few pins on the Arduino allow for us to modify the output to mimic an analog signal. This is done by a technique called: Pulse Width Modulation (PWM)
  • 55. Concepts: Analog vs. Digital Pulse Width Modulation (PWM) To create an analog signal, the microcontroller uses a technique called PWM. By varying the duty cycle, we can mimic an “average” analog voltage.
  • 56. Project #2 – Fading Introducing a new command… analogWrite(pin, val); pin – refers to the OUTPUT pin (limited to pins 3, 5, 6, 9, 10, 11.) – denoted by a ~ symbol val – 8 bit value (0 – 255). 0 => 0V | 255 => 5V
  • 57. Move one of your LED pins over to Pin 9 In Arduino, open up: File  Examples  01.Basics  Fade
  • 58. Fade - Code Review
  • 59. Fade - Code Review

Editor's Notes

  • #7: Processor There are two classifications of computers: complex instruction set computer (CISC) and reduced instruction set computer (RISC). In reality, there is a spectrum of architectures that we can classify as CISC or RISC. We make these general observations when deciding whether to call a computer CISC or RISC: Complex instruction set computers (CISC) Early computers offered CPUs that were much faster than available memories. Fetching instructions limited performance A single complex instruction could perform many operations Example: Find the zeros of a polynomial Complex instructions require many processor clock cycles to complete and most instructions can access memory A program running on a CISC computer employed a relatively small number of complex instructions High code density, many instruction types w/ varying length, fewer and specialized registers, many addressing modes Complexity is embedded in the processor hardware (overhead) Examples: Intel (x86), Freescale 9S12 Reduced Instruction Set Computers (RISC) Memories match CPU speed No large penalty for instruction fetch Instructions simplified Example: dedicated load/store instructions, regular instructions can not access memory but only registers Single processor clock cycle per instruction (pipelined) A program running on a RISC computer employs a relatively larger number of simplified instructions Reduced code density, few instructions w/ fixed delay (pipeline!), many identical general-purpose registers, few addressing modes Complexity exists in the assembly code generated by the programmer or compiler, hardware is simple (low overhead/low power) Examples: LC3, MIPS, ARM, SPARC, PowerPC Which architecture is best is beyond the scope of this class, but it is important to recognize the terminology. It is very difficult to compare the execution speed of two computers, especially between a CISC and a RISC. One way to compare is to run a benchmark program on both, and measure the time it takes to execute. Time to execute benchmark = Instructions/program * Average cycles/instruction * Seconds/cycle For example, the 50 MHz ARM Cortex M has one bus cycle every 20ns. One average it may require 1.5 cycles per instruction. If the benchmark program executes 10,000,000 assembly instructions, then the time to execute the benchmark will be 0.3 seconds. Memory: EPROMs are Erasable Programmable ROMs. The mechanism used to erase and write is UV light EEPROMs are Electrically Erasable Flash memory is like EEPROM however writes are performed in large blocks as opposed to single bytes. Cheaper hence popular DRAMs require a periodic refresh SRAMs don’t. Both are volatile therefore are lost when powered down. Interfaces: Parallel - binary data is available simultaneously on groups of lines Serial - binary data is available one bit at a time on a single line Analog - data is encoded as a variable voltage Time - data is encoded as a period, frequency, pulse width or phase shift I/O Memory-mapped I/O I/O ports/registers appear as addresses on common bus with memory I/O ports/registers are accessed as though they are locations in memory Employed on the ARM, Freescale and TI processors I/O-mapped I/O I/O ports/registers have separate control signals from those used with memory Special instructions are used to access I/O ports/registers Employed on Intel x86 processors
  • #8: Requirements are broad and Specifications go into the details.
  • #36: Be sure to point out the what all of the buttons do.
  • #37: All connections to computers- mice, printers etc use a serial port. Gotta pick the right one.
  • #38: All connections to computers- mice, printers etc use a serial port. Gotta pick the right one.