EECS 373 Design of Microprocessor-Based Systems Prabal Dutta

Slides:



Advertisements
Similar presentations
INPUT-OUTPUT ORGANIZATION
Advertisements

1 EECS 373 Design of Microprocessor-Based Systems Prabal Dutta University of Michigan Guest Lecturer Pat Pannuto Lecture 10: Serial buses Oct 6, 2011.
Serial Interfaces, Part Deux -I 2 C and SPI December 4, 2002 Presented by Eugene Ho.
Lecture 8: Serial Interfaces
1 Fall 2005 Local Serial Asynchronous Communication Qutaibah Malluhi Computer Science and Engineering Qatar University.
1 EECS 373 Design of Microprocessor-Based Systems Mark Brehob University of Michigan Serial buses, digital design Material taken from Dutta, Le, Ramadas,
EECS 373 Design of Microprocessor-Based Systems Prabal Dutta
PH4705 ET4305 Interface Standards A number of standard digital data interfaces are used in measurement systems to connect instruments and computers for.
CSCI 4550/8556 Computer Networks Comer, Chapter 5: Local Asynchronous Communication (RS-232)
7-1 Digital Serial Input/Output Two basic approaches  Synchronous shared common clock signal all devices synchronised with the shared clock signal data.
EECS 373 Design of Microprocessor-Based Systems Mark Brehob
1 EECS 373 Design of Microprocessor-Based Systems Prabal Dutta University of Michigan Lecture 4: Memory-Mapped I/O, Bus Architectures January 20, 2015.
Input/Output and Communication
ECE 371- Unit 11 Introduction to Serial I/O. TWO MAJOR CLASSES OF SERIAL DATA INTERFACES ASYNCHRONOUS SERIAL I/O - USES “FRAMING BITS” (START BIT AND.
ECE 353 Introduction to Microprocessor Systems Michael G. Morrow, P.E. Week 13.
INPUT-OUTPUT ORGANIZATION
Interfaces A practical approach. Lesson 2 I2C and SPI
1 EECS 373 Design of Microprocessor-Based Systems Prabal Dutta University of Michigan Lecture 10: Serial buses Oct 6, 2011.
University of Tehran 1 Interface Design Serial Communications Omid Fatemi.
Technology Training that Works Hands of Data Communications, Networking & TCP/IP Troubleshooting.
1 EECS 373 Design of Microprocessor-Based Systems Mark Brehob University of Michigan Lecture 7: Finish interrupts, group talks, start on serial buses Sept.
USART Communication using the RS standard ETEC6416.
Serial Peripheral Interface (SPI) Bus. SPI Bus There is no official specification for the SPI bus. It is necessary to consult the data sheets of the devices.
Serial Peripheral Interface Module MTT M SERIAL PERIPHERAL INTERFACE (SPI)
Transmission Modes Serial Transmission  One bit is transmitted on a circuit at a time  Usually there is one transmit circuit and one receive circuit.
LSU 10/22/2004Serial I/O1 Programming Unit, Lecture 5.
4.0 rtos implementation part II
The 8051 Microcontroller and Embedded Systems
Serial Port I/O Serial port sends and receives data one bit at a time. Serial communication devices are divided into: Data Communications Equipment (DCE),
DEVICES AND COMMUNICATION BUSES FOR DEVICES NETWORK–
UART and UART Driver B. Ramamurthy.
Universal Synchronous/Asynchronous Receiver/Transmitter (USART)
Lecture 20: Communications Lecturers: Professor John Devlin Mr Robert Ross.
1 Microprocessor-based Systems Course 9 Design of the input/output interfaces (continue)
1 EECS 373 Design of Microprocessor-Based Systems Mark Brehob University of Michigan Lecture 7: Finish interrupts, group talks, start on serial buses Feb.
Universal Asynchronous Receiver/Transmitter (UART)
ECE 353 Introduction to Microprocessor Systems Michael Schulte Week 13.
Microprocessors 2 lesson Subjects lesson 7 Planning Interrupts Serial communication /USART Questions.
Serial Communications
Advanced Embedded Systems Design Lecture 8 Serial I/O BAE Fall 2004 Instructor: Marvin Stone Biosystems and Agricultural Engineering Oklahoma.
(More) Interfacing concepts. Introduction Overview of I/O operations Programmed I/O – Standard I/O – Memory Mapped I/O Device synchronization Readings:
Input/Output 2 What is I/O? How we get the CPU to communicate with devices From the computer’s point of view, it’s just 1’s and 0’s Gets interpreted.
 8251A is a USART (Universal Synchronous Asynchronous Receiver Transmitter) for serial data communication.  Programmable peripheral designed for synchronous.
Universal Asynchronous Receiver/Transmitter (UART)
ATtiny23131 A SEMINAR ON AVR MICROCONTROLLER ATtiny2313.
Interfaces and Synchronization Martin Weiss. EIA 232D Interface Standard u Synonymous with ITU V.24 u Asynchronous interface u Up to 19.2kbps u 50 foot.
1 Transmission of Digital Data : Interface and Modems.
©2008 R. Gupta, UCSD COSMOS Summer 2008 Peripheral Interfaces Rajesh K. Gupta Computer Science and Engineering University of California, San Diego.
© 2009, Renesas Technology America, Inc., All Rights Reserved 1 Course Introduction  Purpose:  This course provides an overview of the serial communication.
Digital Interfaces An interface links two devices Interface Standards define: – mechanical specifications - how many wires & connector type –electrical.
Essentials of Communication This simple model requires many guarantees. Sender Receiver Communication Link Data.
Department of Electronic & Electrical Engineering Serial interfaces Serial Interfaces allow communication between devices sending one bit at a time. In.
1 EECS 373 Design of Microprocessor-Based Systems Mark Brehob University of Michigan Serial buses, digital design Material taken from Dutta, Le, Ramadas,
Communicating. The ATmega16 communicates through one of the following ways: Serial Peripheral Interface (SPI) Universal Synchronous and Asynchronous serial.
Embedded Communication Protocols Don Heer 10/18/10 1.
Networked Embedded Systems Sachin Katti & Pengyu Zhang EE107 Spring 2016 Lecture 9 Serial Buses – SPI, I2C.
Networked Embedded Systems Pengyu Zhang EE107 Spring 2016 Lecture 8 Serial Buses.
میکرو کنترلرهای AVR Serial Interfaces, I2C and SPI
1 Serial Peripheral Interface What is it? Basic SPI Capabilities Protocol Pros and Cons Uses Serial Peripheral Interface
Lab 9 Multiprocessor, Buses, SPI, I2C. Multiprocessors Why multiprocessors? The structure of multiprocessors. Elements of multiprocessors: – Processing.
Serial mode of data transfer
Slides developed in part by Mark Brehob & Prabal Dutta
EE 107 Fall 2017 Lecture 5 Serial Buses – UART & SPI
SERIAL PORT PROGRAMMING
UART and UART Driver B. Ramamurthy.
EE 107 Fall 2017 Lecture 7 Serial Buses – I2C Direct Memory Access
EECS 373 Design of Microprocessor-Based Systems Mark Brehob
Asynchronous Serial Communications
UART and UART Driver B. Ramamurthy.
CHAPTER SERIAL PORT PROGRAMMING. Basics of Serial Communication Computers transfer data in two ways: ◦ Parallel  Often 8 or more lines (wire.
Presentation transcript:

EECS 373 Design of Microprocessor-Based Systems Prabal Dutta University of Michigan Serial buses Some material from: Brehob, Le, Ramadas, Tikhonov & Mahal

This Week: Serial interfaces traps & exceptions C Assembly Machine Code CPU EECS 370 ldr (read) str (write) Software Hardware ISA SVC# fault INT# System Buses interrupts AHB/APB Interrupts GPIO/INT Timers USART DAC/ADC Internal & External Memory Internal External Input I2C SPI ADC DAC EMC Output Compare Capture UART Interrupt

Outline Introduction to Serial Buses UART SPI I2C

Serial bus interface motivations Connect different systems together Two embedded systems A desktop and an embedded system Connect different chips together in the same embedded system MCU to peripheral MCU to MCU Without using a lot of I/O lines I/O lines require I/O pads which cost $$$ and size I/O lines require PCB area which costs $$$ and size Often at relatively low data rates But sometimes at higher data rates So, what are our options? Universal Synchronous/Asynchronous Receiver Transmitter Also known as USART (pronounced: “you-zart”)

Serial bus design space Number of wires required? Asynchronous or synchronous? How fast can it transfer data? Can it support more than two endpoints? Can it support more than one master (i.e. txn initiator)? How do we support flow control? How does it handle errors/noise?

Fun with buses A multidrop bus (MDB) is a computer bus in which all components are connected to the same set of electrical wires. (from Wikipedia) In the general case, a bus may have more than one device capable of driving it. That is, it may be a “multi-master” bus as discussed earlier. Figure from http://tek-electronics.blogspot.com/

How can we handle multiple (potential) bus drivers? (1/3) Tri-state devices, just have one device drive at a time. Everyone can read though Pros: Very common, fairly fast, pin- efficient. Cons: Tri-state devices can be slow. Especially drive-to-tristate? Need to be sure two folks not driving at the same time Let out the magic smoke. Most common solution (at least historically) Ethernet, PCI, etc. Image from http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/CompOrg/tristate.html

How can we handle multiple (potential) bus drivers? (2/3) MUX Just have each device generate its data, and have a MUX select. That’s a LOT of pins. Consider a 32-bit bus with 6 potential drivers. Draw the figure. How many pins needed for the MUX? Not generally realistic for an “on-PCB” design as we’ll need an extra device (or a lot of pins on one device) But reasonable on-chip In fact AHB, APB do this.

How can we handle multiple (potential) bus drivers? (3/3) “pull-up” aka “open collector” aka “wired OR” Wire is pulled high by a resistor If any device pulls the wire low, it goes low. Pros: If two devices both drive the bus, it still works! Cons: Rise-time is very slow. Constant power drain. Used in I2C, CAN

Outline Introduction to Serial Buses UART SPI I2C

Universal Asynchronous Receiver/Transmitter UART Universal Asynchronous Receiver/Transmitter Hardware that translates between parallel and serial forms Commonly used in conjunction with communication standards such as EIA, RS-232, RS-422 or RS-485 The universal designation indicates that the data format and transmission speeds are configurable and that the actual electric signaling levels and methods (such as differential signaling etc.) typically are handled by a special driver circuit external to the UART. Most of the UART stuff (including images) Taken from Wikipedia!

Each character is sent as Protocol Each character is sent as a logic low start bit a configurable number of data bits (usually 7 or 8, sometimes 5) an optional parity bit one or more logic high stop bits with a particular bit timing (“baud”) Examples “9600-N-8-1”  <baudrate><parity><databits><stopbits> “9600-8-N-1”  <baudrate><databits><parity><stopbits>

Variations and fun times UART is actually a generic term that includes a large number of different devices/standards. RS-232 is a standard that specifies “electrical characteristics and timing of signals, the meaning of signals, and the physical size and pin out of connectors.

Signals (only most common) The RXD signal of a UART is the signal receiving the data. This will be an input and is usually connected to the TXD line of the downstream device. The TXD signal of a UART is the signal transmitting the data. This will be an output and is usually connected to the RXD line of the downstream device. The RTS# (Ready to Send) signal of a UART is used to indicate to the downstream device that the device is ready to receive data. This will be an output and is usually connected to the CTS# line of the downstream device. The CTS# (Clear to Send) signal of a UART is used by the downstream device to identify that it is OK to transmit data to the upsteam device. This will be an input and is usually connected to the RTS# line of the upstream device.

DB9 stuff DTE vs DCE Pinout of a DCE? Common ground? Noise effects? Wiring a DTE device to a DCE device for communication is easy.  The pins are a one-to-one connection, meaning all wires go from pin x to pin x.  A straight through cable is commonly used for this application.   In contrast, wiring two DTE devices together requires crossing the transmit and receive wires.  This cable is known as a null modem or crossover cable.

RS-232 transmission example

How fast can we run a UART? What are the limitations? Discussion Questions How fast can we run a UART? What are the limitations? Why do we need start/stop bits? How many data bits can be sent? 9600-8-N-1 is ok. Is 9600-8192-N-1 ok too?

Outline Introduction to Serial Buses UART SPI I2C

Introduction What is it? Basic Serial Peripheral Interface (SPI)‏ Capabilities Protocol Pro / Cons and Competitor Uses Conclusion Serial Peripheral Interface http://upload.wikimedia.org/wikipedia/commons/thumb/e/ed/ SPI_single_slave.svg/350px-SPI_single_slave.svg.png

Serial Bus protocol Fast, Easy to use, Simple Everyone supports it What is SPI? Serial Bus protocol Fast, Easy to use, Simple Everyone supports it

SPI Basics A communication protocol using 4 wires Also known as a 4 wire bus Used to communicate across small distances Multiple Slaves, Single Master Synchronized

Capabilities of SPI Always Full Duplex Communicating in two directions at the same time Transmission need not be meaningful Multiple Mbps transmission speed Transfers data in 4 to 16 bit characters Multiple slaves Daisy-chaining possible

Protocol Wires: Master Out Slave In (MOSI)‏ Master In Slave Out (MISO)‏ System Clock (SCLK)‏ Slave Select 1…N Master Set Slave Select low Master Generates Clock Shift registers shift in and out data

Wires in Detail MOSI – Carries data out of Master to Slave MISO – Carries data from Slave to Master Both signals happen for every transmission SS_BAR – Unique line to select a slave SCLK – Master produced clock to synchronize data transfer

Shifting Protocol Master shifts out data to Slave, and shift in data from Slave http://upload.wikimedia.org/wikipedia/commons/thumb/b/bb/SPI_8-bit_circular_transfer.svg/400px-SPI_8-bit_circular_transfer.svg.png

Diagram Master and multiple daisy-chained slaves Some wires have been renamed Master and multiple daisy-chained slaves http://www.maxim-ic.com/appnotes.cfm/an_pk/3947 Master and multiple independent slaves http://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/SPI_three_slaves.svg/350px-SPI_three_slaves.svg.png

Clock Phase (Advanced)‏ Two phases and two polarities of clock Four modes Master and selected slave must be in same mode Master must change polarity and phase to communicate with slaves of different numbers

Timing Diagram Timing Diagram – Showing Clock polarities and phases http://www.maxim-ic.com.cn/images/appnotes/3078/3078Fig02.gif

Pros and Cons Pros: Fast and easy Fast for point-to-point connections Easily allows streaming/Constant data inflow No addressing/Simple to implement Everyone supports it Cons: SS makes multiple slaves very complicated No acknowledgement ability No inherent arbitration No flow control

Uses Some Serial Encoders/Decoders, Converters, Serial LCDs, Sensors, etc. Pre-SPI serial devices

Summary SPI – 4 wire serial bus protocol Full duplex MOSI MISO SS SCLK wires Full duplex Multiple slaves, One master Best for point-to-point streaming data Easily Supported

Outline Introduction to Serial Buses UART SPI I2C

What is I2C (or I2C)?

Where is it Used?

Basic Description

Electrical Wiring

Clock

A Basic I2C Transaction

A Basic I2C Transaction

Start Condition

Address Transmission

Data transmission

Stop Condition

Another look at I2C

Exercise: How fast can I2C run? How fast can you run it? Assumptions 0’s are driven 1’s are “pulled up” Some working figures Rp = 10 kΩ Ccap = 100 pF VDD = 5 V Vin_high = 3.5 V Recall for RC circuit Vcap(t) = VDD(1-e-t/τ) Where τ = RC

Exercise: Bus bit rate vs Useful data rate An I2C “transactions” involves the following bits <S><A6:A0><R/W><A><D7:D0><A><F> Which of these actually carries useful data? So, if a bus runs at 400 kHz What is the clock period? What is the data throughput (i.e. data-bits/second)? What is the bus “efficiency”?