Extended Uart The High Speed Digital Systems Laboratory, Electrical Engineering Faculty, Technion By: Marganit Fina Supervisor: Rivkin Ina Winter 2007/8.

Slides:



Advertisements
Similar presentations
Serial Interface Dr. Esam Al_Qaralleh CE Department
Advertisements

EUSART Serial Communication.
INPUT-OUTPUT ORGANIZATION
Serial Communications Interface (SCI) Michael LennardZachary PetersBao Nguyen.
11-1 ECE 424 Design of Microprocessor-Based Systems Haibo Wang ECE Department Southern Illinois University Carbondale, IL I/O System Design.
The 8051 Microcontroller Chapter 5 SERIAL PORT OPERATION.
SCI: Serial Communications Interface Presented by: Sean Kline Chad Smith Jamie Cruce.
Serial I/O - Programmable Communication Interface
Hierarchy of I/O Control Devices
USARTS CS423 Dick Steflik. USART ● Universal Synchronous Asynchronous Receiver Transmitter ● used to send and receive small packets over a serial line.
Serial Input/Output Interface Outline –Serial I/O –Asynchronous serial I/O –6850 ACIA –68681 DUART –Synchronous serial I/OInterface Standards –68000 Serial.
Eng. Husam Alzaq The Islamic Uni. Of Gaza
Implement UART core on FPGA The High Speed Digital Systems Laboratory Electrical Engineering Faculty, Technion By: Marganit Fina Supervisor: Rivkin Ina.
7-1 Digital Serial Input/Output Two basic approaches  Synchronous shared common clock signal all devices synchronised with the shared clock signal data.
1 The 9-Pin Connector Pin abbreviations (numbers in parentheses are the 25D pin numbers): 1. CD (8) 2. RD (Rx) (3) 3. TD (Tx) (2) 4. DTR (20) 5. SG (Ground)
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.
INPUT-OUTPUT ORGANIZATION
University of Tehran 1 Interface Design Serial Communications Omid Fatemi.
Serial Communication ETEC 6416.
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),
SC200x Peripherals Broadband Entertainment Division DTV Source Applications July 2001.
UART and UART Driver B. Ramamurthy.
Lecture Set 9 MCS-51 Serial Port.
Universal Synchronous/Asynchronous Receiver/Transmitter (USART)
Unit 4 Design and Synthesis of Datapath Controllers
Lecture 20: Communications Lecturers: Professor John Devlin Mr Robert Ross.
“Describe the overview of hardware interfacing and the serial communication interface. Describe the PIC18 connections to RS232. Explain the serial port.
Universal Asynchronous Receiver/Transmitter (UART)
Microprocessors 2 lesson Subjects lesson 7 Planning Interrupts Serial communication /USART Questions.
CHAPTER SERIAL PORT PROGRAMMING. Basics of Serial Communication Computers transfer data in two ways: ◦ Parallel  Often 8 or more lines (wire conductors)
Serial Communications
Scott Baker Will Cross Belinda Frieri March 9 th, 2005 Serial Communication Overview ME4447/6405.
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.
NS Training Hardware. Serial Controller - UART.
8279 KEYBOARD AND DISPLAY INTERFACING
Universal Asynchronous Receiver/Transmitter (UART)
ATtiny23131 A SEMINAR ON AVR MICROCONTROLLER ATtiny2313.
Serial Communications Interface Module Slide #1 of 19 MC68HC908GP20 Training PURPOSE -To explain how to configure and use the Serial Communications Interface.
© 2009, Renesas Technology America, Inc., All Rights Reserved 1 Course Introduction  Purpose:  This course provides an overview of the serial communication.
8051SERIAL PORT PROGRAMMING
Lab Environment and Miniproject Assignment Spring 2009 ECE554 Digital Engineering Laboratory.
Communicating. The ATmega16 communicates through one of the following ways: Serial Peripheral Interface (SPI) Universal Synchronous and Asynchronous serial.
CE-2810 Dr. Mark L. Hornick 1 Serial Communications Sending and receiving data between devices.
ECE 554 Miniproject Spring
8251 USART.
BASICS OF SERIAL COMMUNICATIONS BIRLA VISHWKARMA MAHAVIDYALAYA ELECTRONICS & TELECOMMUNICATION DEPARTMENT PRESENTING BY: ABHISHEK SINGH AMANDEEP.
Tiva C TM4C123GH6PM UART Embedded Systems ECE 4437 Fall 2015 Team 2:
Lecture 15. Modem Controller Register 4310 DTR 0 = Polling Operator 1 = Interrupts Enabled RTS 1 =Self Test 0 =Normal.
Lecture # 14. RS – 232C Standard Standard for physical dimensions of the connectors. PC (DTE) Modem RS – 232C Cable Connected via serial port (DCE)
Serial Communications
Serial mode of data transfer
CS-401 Computer Architecture & Assembly Language Programming
Serial I/O and Data Communication.
SERIAL PORT PROGRAMMING
1 Input-Output Organization Computer Organization Computer Architectures Lab Peripheral Devices Input-Output Interface Asynchronous Data Transfer Modes.
Serial Communication: RS-232 (IEEE Standard)
E3165 DIGITAL ELECTRONIC SYSTEM
UART Serial Port Programming
Serial Communication Interface: Using 8251
Serial Communication Interface
UART PC16550 (Universal Asynchronous Receiver/Transmitter) By Derwyn Hollobaugh
CHAPTER SERIAL PORT PROGRAMMING. Basics of Serial Communication Computers transfer data in two ways: ◦ Parallel  Often 8 or more lines (wire.
EUSART Serial Communication.
PIC Serial Port Interfacing
8051SERIAL PORT PROGRAMMING
PIC Serial Port Interfacing
Introduction Communication Modes Transmission Modes
AVR UART The UART, or Universal Asynchronous Receiver Transmitter, provides hardware support for a serial port on AVR processors Signaling is compatible.
Presentation transcript:

Extended Uart The High Speed Digital Systems Laboratory, Electrical Engineering Faculty, Technion By: Marganit Fina Supervisor: Rivkin Ina Winter 2007/8 Duration: Semester Final Presentation

Project purpose Extending the UART IP Core from previous project,to UART and adding additional features. Goal : – Write a UART Core in VHDL, that can be used in other projects – Synthesize the UART-Core for FPGA. – Two phases core-verification: RTL logic verification ( VHDL-based test-benches) Lab – real-time testing of the core

UART work environment

Introduction : UART - Universal Asynchronous Receiver-Transmitter Converts the bytes it receives from the computer along parallel circuits into a single serial bit stream for outbound transmission.parallelserial On inbound transmission, converts the serial bit stream into the bytes that the computer handles. Adds a parity bit on outbound transmissions and checks the parity of incoming bytes and discards the parity bit (optional).parity Adds start and stop delineators on outbound and strips them from inbound transmissions.

UART’s Features Support sending and receiving data-packets in length of 5-8 bits. – The UART has a new control interface,which enable the client to determine the amount of bits (in a signal transaction). Preamble data-assertion : the UART can add/remove standard asynchronous communication bits( start, stop and parity) for each received data- packet in the host-side. – For all packet-lengths

UART’s Features - continue Support even, odd and no-parity bit generation and detection. – Additional control interface to support parity detection and generation, while sending the data in RS232. Support sending 1,2 stop-bit. – The RS232 serial interface supports 1 or 2 stop bits to signal the PC end of transaction. – The amount of stop bits is determined by the host.

UART’s Features - continue Adding 16 byte send and receive buffers. – On the serial side of the UART (RS232) :  A 16 byte FIFO buffer, which enables store-and-forward received packets (to the Host). – On the parallel side of the UART (Host) :  A 16 byte FIFO buffer,which store-and-forward the data the host wants to send to the serial-side.

UART’s Features - continue FIFO operation mode: – Using the UART I/F we can choose to use the FIFO support or to work in 8250 Mode (without FIFO). In 8250 work-mode: – Holding and shift registers eliminate the need for precise synchronization between the user and the serial data. Interrupt/Polled mode operation: – Using the UART I/F we can choose whether to work in a polled mode operation or in an interrupt mode operation. In both operations we can work with the FIFO support or without.

UART’s Features - continue Programmable baud generator divides any input clock by to and generates the 16xClock. Support baud rate from 2400 up-to Packet Checker logic – When a new packet is collected. It detects parity error,frame error or overrun error,and reports it to the user on the Host side.

UART’s data-path example : User -> RS-232

UART’s data-path example : RS-232 -> User

UART- Top view

UART Port-Map: User’s Interface side OUTPUTS – to the user: OUTPUTS – to the user: – IntRx_N in 8250 mode: informs about a new data that has arrived. in FIFO mode: informs that the received FIFO (RCVR) has reached the trigger level,that was set by the user. – IntTx_N in 8250 mode: informs that the transmit unit (TxUnit) is ready to send a new data. in FIFO mode: informs that the transmitted FIFO (XMIT) isn’t full, therefore the user can load another new data to the UART.

UART Port-Map: User’s Interface side OUTPUTS – to the user : OUTPUTS – to the user : – Ferr_N indicates about a frame error (interrupt mode only). – Oerr_N Indicates about an overrun error (interrupt mode only). – Paerr indicates about a parity error (interrupt mode only). – SysClk the transmit unit clock. – DataOut from here we get the new 8,7,6 or 5 -bit data (parallel form).

UART Port-Map: User’s Interface side OUTPUTS – to the user : OUTPUTS – to the user : – Empty_xmit indicates that the UART has sent all the data that was given to him by the user (FIFO and interrupt mode only). – RCVR_empty indicates that there is no new data for the user to read. (FIFO and interrupt mode only).

UART Port-Map: User’s Interface side OUTPUTS – to the user : OUTPUTS – to the user : – Status [7:0] operates in polled mode in both 8250 and FIFO operations.gives information about the status of the UART: – Full/Emptiness of the FIFO’s, Transmit and Receive Units. – Overrun error. – Parity error. – Frame error.

UART Port-Map: User’s Interface side INPUTS to the UART: INPUTS to the UART: –FPGA_Clk FPGA base clock. –Divider Determining the Baud Rate. –Reset Active-low –Mode Determining whether use fifo support or not. –Int_enable Determining interrupt or polled mode operation. –CS_Write Loading a new data to the UART for transmitting.

UART Port-Map: User’s Interface side INPUTS to the UART:INPUTS to the UART: – Length determining the data length ( 5,6,7 or 8 bits) – Parity determining if we work with odd, even or non parity bit. – Stop determining the amount of stop-bit we are working with (1,2 stop-bit). – Cs_status for reading the uart status in polled mode. – St_n for reading the uart status in polled mode. – RCVR_Trigger in fifo mode, this input is used to set the trigger level of the received fifo’s interrupt.(1,4,8 or 14 bytes)

UART I/F : The Host’s side I/F INPUTS to the UART: INPUTS to the UART: –Wr_n Loading a new data to the uart for transmitting. – CS_Read Reading the new received data. – Rd_n Reading the new received data. – DataIn The parallel 8,7,6 or 5-bit data-input, which the UART will send to the Serial-side.

UART Port-Map: RS-232 I/F INPUTS to the UART: INPUTS to the UART: – RxD - the received data line – (pin #2) – CTS - Clear To Send (pin #8)- always at low. – DSR- Data Set Ready (pin #6) - always at low. – GND- Ground (pin #5) – DCD – Data Carrier Detect (pin #1) – always at low. – RI – Ring Indicator (pin #9)-always at high.

UART Port-Map: RS-232 I/F OUTPUTS from the UART: OUTPUTS from the UART: – TxD -the transmitted data line- (pin #3) – RTS - Request To Send (pin #7)- always at low. – DTR - Data Terminal Ready (pin #4)- always at low.

UART-Core I/O Schema RS-232 I/F UART-Core Control I/F Client I/F Data-path Client I/F UART-status Packets info.

UART Structure The UART is divided into two main sub-blocks: – Miniuart Unit : controls sending and receiving processes. – Clock-control Units : responsible for creating the clocks for the miniuart block, according to the host’s requested Baud-Rate.

UART Structure

Clock Control Unit

MiniUart Unit

MiniUart Structure Consists of 6 main blocks: – 2 eb1 – RCVR FIFO – RX Unit – TX Unit – XMIT FIFO – RSBusCtrl

MiniUart Structure: ”2eb1” block Purposes: – Manages the user’s requests: For sending data. For reading the new received data. For information about the UART’s status in polled mode. – Preparing the data for reading by the user (checking if there are any errors,take out the data itself from the frame ) and preparing the data for sending by the transmit unit. – Operates the transmit/receive units and the FIFOs accordingly to the operation mode.

MiniUart Structure: The Receive FIFO (RCVR) Consists of 3 blocks: – RCVR Controller. – RCVR Operator. – DUAL Port 16x10Bits RAM.

The Receive FIFO (RCVR): RCVR Controller block. Purposes : – Calculates the write address and the read address, – Informs about the num of occupied slots, – Full and empty indications – Overflow and underflow indications of the FIFO.

The receive FIFO (RCVR): RCVR Operator block. Purposes: – manages the RCVR controller and the DUAL port RAM according to the state of the receive unit and user’s requests.

MiniUart Unit: RX Block Purpose: responsible for the receiving process: – Samples the RS-232 data line, respectively to the serial transfer characteristics, and collects the incoming data. – Forward the received data to the appropriate blocks, according to the operation mode.

MiniUart Unit: TX Block Purpose: responsible for the transmitting process : – Converts and Sends the data vector to the RS-232 data line,respectively to the serial transfer characteristics.

MiniUart Structure: the Transmitting FIFO (XMIT) Consists of 3 blocks: – XMIT Controller. – XMIT Operator. – DUAL Port RAM.

The Transmitting FIFO (XMIT): XMIT Cotroller Purpose : – Calculates the write address and the read address, – Informs about the num of occupied slots, – Full and empty indications – Overflow and underflow indications of the FIFO.

The Transmitting FIFO (XMIT): XMIT Operator Purpose : – Manages the XMIT Controller and the Dual Port RAM, according the state of the transmitting unit and user’s requests.

MiniUart Unit: RSbusCtrl block This block has 4 different mode of functioning, match for every operation mode of the UART: – polled/interrupt. – with FIFO support/without FIFO support. This block is responsible for sending interrupts, based on the UART’s status and the user’s preferences.

MiniUart Unit: RSbusCtrl block This block also informs about parity error, frame error,overrun error and emptiness of the XMIT and RCVR FIFOs. The outputs of this block combine the status vector, which active in polled mode.

UART - Core : Verification An “error generator” block was build. Purpose: – Inverse bits in the new received data, enable checking the UART’s behavior to parity and frame errors.

UART - Core : Verification Sending files to the UART, using HyperTerminal and got back the correct frames that were received by the UART, number of frame errors and number of parity errors, that were generated by the “error generation”. This was tested in all the 4 operation modes of the UART (with FIFO support/without FIFO support, interrupt /polled mode). This was tested in all the baud rates from 2400 to

UART - Core : Verification Verified/Tested corner-cases : – Correct roll-over of both of the FIFOs. – Using different RCVR Trigger of the RCVR FIFO. – Changing serial transfer characteristics during running. – Correct overrun error in different operations modes.

UART - Core : Verification Verified/Tested corner-cases : – UART’s support of various serial transfer characteristics : – 5,6,7 and 8-bit characters. – Even, odd or none parity. – 1,2 stop bit.

Further improvements UART- which includes a 128 bytes FIFO. DUART- (“Dual UART”) :combines two UARTs into a single chip. USART- (A Universal Synchronous Asynchronous Receiver /Transmitter) : a UART that can also communicate synchronously.