1 4-Integrating Peripherals in Embedded Systems. 2 Introduction Single-purpose processors  Performs specific computation task  Custom single-purpose.

Slides:



Advertisements
Similar presentations
INPUT-OUTPUT ORGANIZATION
Advertisements

CPE 201 Digital Design Lecture 25: Register Transfer Level Design (2)
Lecture 23: Registers and Counters (2)
4-1 Timers Timers can be used for  timing  event counting  pulse width measurement  pulse generation  frequency multiplication There are 8 Timers.
Programmable Interval Timer
Embedded Systems Design: A Unified Hardware/Software Introduction 1 Chapter 3: Standard Single Purpose Processors - Peripherals.
Digital Design - Sequential Logic Design Chapter 3 - Sequential Logic Design.
Lecture 8: Serial Interfaces
Counter Circuits and VHDL State Machines
Sequential Logic Design Process A sequential circuit that controls Boolean outputs and a specific time- ordered behavior is called a controller. StepDescription.
1 Register-Transfer Level (RTL) Design Recall –Chapter 2: Combinational Logic Design First step: Capture behavior (using equation or truth table) Remaining.
Read Chapter 3 (David E. Simon, An Embedded Software Primer)
Basic Register Typically, we store multi-bit items
Embedded Systems Design: A Unified Hardware/Software Introduction 1 Chapter 4 Standard Single Purpose Processors: Peripherals.
5-1 Timer/Counters In many microprocessor systems we need to:  count logic pulses  measure the frequency of signals  measure the period of pulses 
Standard Single Purpose Processors: Peripherals. This Week In DIG II  Timers and counters  Watchdog timers  UART (Universal asynchronous receiver /
7-1 Digital Serial Input/Output Two basic approaches  Synchronous shared common clock signal all devices synchronised with the shared clock signal data.
Embedded Systems Design: A Unified Hardware/Software Introduction 1 Chapter 4 Standard Single Purpose Processors: Peripherals ECE 4330 Embedded System.
Controller Design Five step controller design process.
INPUT-OUTPUT ORGANIZATION

Chapter 4 Standard Single Purpose Processors: Peripherals
Lecture 9. - Synchronous Devices require a timing signal. Clock generated Interval Timer Microprocessor Interval Timer Clk PCLK = MHz PCLK (for.
7/23 Timers in Coldfire Processor Computer Science & Engineering Department Arizona State University Tempe, AZ Dr. Yann-Hang Lee (480)
PIT: Programmable Interval Timer
ARM Timers.
System Clocks.
Chapter 4 TIMER OPERATION
CoE3DJ4 Digital Systems Design Chapter 4: Timer operation.
MICROPROCESSOR INPUT/OUTPUT
Lecture Set 9 MCS-51 Serial Port.
Universal Synchronous/Asynchronous Receiver/Transmitter (USART)
AT91 Embedded Peripherals
Lecture 20: Communications Lecturers: Professor John Devlin Mr Robert Ross.
Universal Asynchronous Receiver/Transmitter (UART)
(More) Interfacing concepts. Introduction Overview of I/O operations Programmed I/O – Standard I/O – Memory Mapped I/O Device synchronization Readings:
1 Lab 5: Controls and feedback. 2 Lab 5: Control and Feedback This embedded system uses the Photo sensor to detect the light intensity of the environment.
Counter Application (Part B) By : Pn Siti Nor Diana Ismail CHAPTER 3.
Advanced Microprocessor1 I/O Interface Programmable Interval Timer: 8254 Three independent 16-bit programmable counters (timers). Each capable in counting.
 8251A is a USART (Universal Synchronous Asynchronous Receiver Transmitter) for serial data communication.  Programmable peripheral designed for synchronous.
Introduction to Sequential Logic Design Finite State-Machine Design.
Universal Asynchronous Receiver/Transmitter (UART)
EEE440 Computer Architecture
Timer Timer is a device, which counts the input at regular interval (δT) using clock pulses at its input. The counts increment on each pulse and store.
Embedded Systems Design: A Unified Hardware/Software Introduction 1 Chapter 4 Standard Single Purpose Processors: Peripherals.
CE-2810 Dr. Mark L. Hornick 1 Serial Communications Sending and receiving data between devices.
Examples Lecture L2.2. // Example 1a: Turn on every other segment on 7-seg display #include /* common defines and macros */ #include /* derivative.
Networked Embedded Systems Pengyu Zhang & Sachin Katti EE107 Spring 2016 Lecture 4 Timers and Interrupts.
8251 USART.
1. PIC ADC  PIC18F877 has 8 analog input channels i.e. port A pins(RA0 to RA5) and port E pins(RE1 and RE2). These pins are used as Analog input pins.
1 4-Integrating Peripherals in Embedded Systems. 2 Introduction Single-purpose processors  Performs specific computation task  Custom single-purpose.
Application Case Study Security Camera Controller
Serial mode of data transfer
Timer and Interrupts.
4-Integrating Peripherals in Embedded Systems
4-Integrating Peripherals in Embedded Systems
ECEN 248 Lab 9: Design of a Traffic Light Controller
1 Input-Output Organization Computer Organization Computer Architectures Lab Peripheral Devices Input-Output Interface Asynchronous Data Transfer Modes.
Instructor: Alexander Stoytchev
Computer Organization and Design
Introduction to Microprocessors and Microcontrollers
Introduction to Sequential Circuits
Chapter 4 Standard Single Purpose Processors: Peripherals
8253 – PROGRAMMABLE INTERVAL TIMER (PIT). What is a Timer? Timer is a specialized type of device that is used to measure timing intervals. Timers can.
Chapter 4 Standard Single Purpose Processors: Peripherals
Wireless Embedded Systems
Chapter 4 Standard Single Purpose Processors: Peripherals
Chapter 4 Standard Single Purpose Processors: Peripherals
Presentation transcript:

1 4-Integrating Peripherals in Embedded Systems

2 Introduction Single-purpose processors  Performs specific computation task  Custom single-purpose processors Designed by us for a unique task  Standard single-purpose processors “Off-the-shelf” -- pre-designed for a common task a.k.a., peripherals serial transmission analog/digital conversions

3 Timers, counters, watchdog timers Timer: measures time intervals  To generate timed output events e.g., hold traffic light green for 10 s  To measure input events e.g., measure a car’s speed Based on counting clock pulses E.g., let Clk period be 10 ns And we count 20,000 Clk pulses Then 200 microseconds have passed 16-bit counter would count up to 65,535*10 ns = microsec., resolution = 10 ns Top: indicates top count reached, wrap-around 16-bit up counter Clk Cnt Basic timer Top Reset 16

4 Counters Counter: like a timer, but counts pulses on a general input signal rather than clock  e.g., count cars passing over a sensor  Can often configure device as either a timer or counter 16-bit up counter Clk 16 Cnt_in 2x1 mux Mode Timer/counter Top Reset Cnt

5 Timer Design Custom-FSM based (review) Standard-(Off the shelf), with component configuration.

6 Custom Timer Design (review) Five basic step controller design process

7 Laser Timer Example Step 1: Capture the FSM  Already done Step 2: Create architecture  2-bit state register (for 4 states)  Input b, output x  Next state signals n1, n0 Step 3: Encode the states  Any encoding will work x=1 x=0 b b’ On2On1 Off On3 Inputs: b; Outputs: x Combinational logic State register s1s0 n1 n0 x b clk FSM inputs FSM outputs

8 Laser Timer Example (cont.) Step 4: Create state table x=1 x=0 b b’ On2On1 Off On3 Inputs: b; Outputs: x

9 Laser Timer Example (cont.) Step 5: Implement combinational logic x = s1 + s0 (note from the table that x=1 if s1 = 1 or s0 = 1) n1 = s1’s0b’ + s1’s0b + s1s0’b’ + s1s0’b n1 = s1’s0 + s1s0’ n0 = s1’s0’b + s1s0’b’ + s1s0’b n0 = s1’s0’b + s1s0’

10 Laser Timer Example (cont.) Step 5: Implement combinational logic (cont) x = s1 + s0 n1 = s1’s0 + s1s0’ n0 = s1’s0’b + s1s0’ n1 n0 s0 s1 clk Combinational Logic State register b FSM outputs FSM inputs x

11 Understanding the Controller’s Behavior s0 s1 b x n1 n0 x=1 b On2On1 Off On b’ x= clk Inputs: Outputs: b s0 s1 b x n1 n0 x=1 b’ On2On1 Off On3 clk b x x= state=00state=00 s0 s1 b x n1 n0 x=1 x=0 b b’ On2On1 Off On clk state=01

12 Standard timers: timer configurations Top2 Time with prescaler 16-bit up counter Clk Prescaler Mode Interval timer  Indicates when desired time interval has passed  We set terminal count to desired interval Number of clock cycles = Desired time interval / Clock period Cascaded counters Prescaler  Divides clock  Increases range, decreases resolution 16-bit up counter Clk 16 Terminal count = Top Reset Timer with a terminal count Cnt 16-bit up counter Clk 16-bit up counter 16 Cnt2 Top1 16/32-bit timer Cnt1 16

13 Example: Reaction Timer indicator light reaction button time: 100 ms LCD /* main.c */ #define MS_INIT void main(void){ int count_milliseconds = 0; configure timer mode set Cnt to MS_INIT wait a random amount of time turn on indicator light start timer while (user has not pushed reaction button){ if(Top) { stop timer set Cnt to MS_INIT start timer reset Top count_milliseconds++; } turn light off printf(“time: %i ms“, count_milliseconds); } Measure time between turning light on and user pushing button  16-bit timer, clk period is ns, counter increments every 6 cycles  Resolution = 6*83.33=0.5 microsec.  Range = 65535*0.5 microseconds = milliseconds  Want a program to count increments of 1 millisec. So, we initialize an up counter to – 1000/0.5 = 63535:  MaxCount - Time needed/ resolution=initial count

14 Watchdog timer scalereg checkreg timereg to system reset or interrupt oscclk prescaler Topoverflow 12 MHz 1MHz X 11 bit Up counter 16 bit Up counter 0 disable 1 enable /* main.c */ main(){ wait until card inserted call watchdog_reset_routine while(transaction in progress){ if(button pressed){ perform corresponding action call watchdog_reset_routine } /* if watchdog_reset_routine not called every < 2 minutes, interrupt_service_routine is called */ } watchdog_reset_routine(){ /* checkreg is set so we can load value into timereg. Zero is loaded into scalereg and is loaded into timereg */ checkreg = 1 scalereg = 0 timereg = 5535 } void interrupt_service_routine(){ eject card reset screen } Must reset timer every X time unit, else timer generates a signal Common use: detect failure, self-reset Another use: timeouts  e.g., ATM machine  Scalereg: 11-bit timer, 1μsec resolution.  Scalereg Top signal toggles every 2 11 *1μsec= msec  Hence, Timereg: 16-bit timer, 2 msec. resolution  timereg value = maxCnt-time needed/resoloution  X = min/2msec  X= *60/0.002 X=5535

Software based timers // Example 2a: Binary count on LEDs #include /* common defines and macros */ #include /* derivative information */ #pragma LINK_INFO DERIVATIVE "mc9s12dg256b" #include "main_asm.h" /* interface to the assembly module */ void delay(void); void main(void) { int i; PLL_init(); // set system clock frequency to 24 MHz led_enable(); // enable LEDs seg7_disable(); // diable 7-segment displays while(1){ for (i=0;i<256;i++) { leds_on(i); // display i as binary on LEDs delay(); } void delay() { int i,j; for(i=0;i<500;i++) { for (j=0;j<6248;j++){ //do nothing..just spend time } 500x6248=3,124,000 times. Bus frequency 24MHz, assume the no-op inner loop takes 4 clock cycles: 4*3,124,000/24,000,000=0.52 seconds 15

16 Serial Transmission Using UARTs embedded device Sending UART Receiving UART start bit data end bit UART: Universal Asynchronous Receiver Transmitter  Takes parallel data and transmits serially  Receives serial data and converts to parallel Parity: extra bit for simple error checking Start bit, stop bit Baud rate  signal changes per second  bit rate usually higher

17 Serial Transmission Using UARTs Clocks on sender and receiver are never exactly in sync  Requires synchronization of receiver  High-low transition signals frame boundary

18 UART Tx Signals Example for two transmissions

19 UART Receiving example 2-byte FIFO

20 Example UART /MAX 232 interface

21 MAX232 The MAX232 is a dual driver/receiver that includes a capacitive voltage generator to supply standard voltage levels for TIA/EIA-232-F interface. Uses a single 5-V supply. Each receiver converts TIA/EIA-232-F inputs to 5-V TTL/CMOS levels. These receivers have a typical threshold of 1.3 V, a typical hysteresis of 0.5 V, and can accept ±30-V inputs. Each driver converts TTL/CMOS input levels into TIA/EIA-232-F levels.

22 MAX232

23 MAX232: Receiver

24 MAX232: Driver