Anush Rengarajan Feng Zheng Thomas Madaelil

Slides:



Advertisements
Similar presentations
Computer Architecture
Advertisements

Primary Author: Girish Verma Secondary Author(s): Navya Prabhakar Presenter: Navya Prabhakar Company/Organization: CircuitSutra USB Modeling Quick Start.
Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Protocol Layer Bottom-up view of the USB protocol Bottom-up view of the USB protocol –Byte/Bit Ordering –SYNC Field –Packet Field Formats PID Field PID.
Universal Serial Bus Grant Heileman. The History of USB In 1994 a collaborative effort to design a standard for peripheral devices was made between Compaq,
May 16, Data Transfer & Framework John Garney Hub Working Group Chair Intel Corporation John Garney Hub Working Group Chair Intel Corporation.
USB: Data Flow Sukesh Shenoy. USB implementation areas.
04/16/2010CSCI 315 Operating Systems Design1 I/O Systems Notice: The slides for this lecture have been largely based on those accompanying an earlier edition.
Firmware implementation of Integer Array Sorter Characterization presentation Dec, 2010 Elad Barzilay Uri Natanzon Supervisor: Moshe Porian.
USB – An Overview Group 3 Kaushik Nandha Bikram What is the Universal Serial bus (USB)? Is a cable bus that supports data exchange between a host computer.
HS/DSL Project Yael GrossmanArik Krantz Implementation and Synthesis of a 3-Port PCI- Express Switch Supervisor: Mony Orbach.
Configuration. Mirjana Stojanovic Process of loading bitstream of a design into the configuration memory. Bitstream is the transmission.
USB 2.0 INTRODUCTION NTUT CSIE 學 生:許家豪 指導教授:柯開維教授.
Input/Output and Communication
CPU Chips The logical pinout of a generic CPU. The arrows indicate input signals and output signals. The short diagonal lines indicate that multiple pins.
Introduction to USB. 2 Agenda Introduction to USB LPC23xx Block diagram MCB2300 demo.
USB: UNIVERSAL SERIAL BUS Joe Kaewbaidhoon Alex Motalleb Vishal Joshi Prepared for EECS 373 University of Michigan, Ann Arbor 1.
Computer communication. Introduction Mechanisms applied in communicating between a computer and another computer or with other devices. Mainly serial.
Gursharan Singh Tatla Transport Layer 16-May
SERIAL BUS COMMUNICATION PROTOCOLS
Universal Serial Bus Host Specification and Implementation
May 17, USB 2.0 Transceiver Macrocell Steve McGowan - Intel Corporation Clarence Lewis - Texas Instruments Steve McGowan - Intel Corporation Clarence.
May 8, The EASY Way to Create I/O Devices John Hyde Intel Corporation intel.com.
The University of New Hampshire InterOperability Laboratory Serial ATA (SATA) Protocol Chapter 10 – Transport Layer.
Spring 2014 SILICON VALLEY UNIVERSITY CONFIDENTIAL 1 Introduction to Embedded Systems Dr. Jerry Shiao, Silicon Valley University.
May 9, USB 2.0 High Bandwidth Peripheral Design Challenges Robert Shaw Cypress Semiconductor Robert Shaw Cypress Semiconductor
October 10, USB 2.0 Hub Testing Dan Froelich Intel.
Distributed systems – Part 2  Bluetooth – 2 nd set of slides Anila Mjeda.
Embedded Systems Architecture Class Project USB 2.0 Function Controller December 12, 2008 Brandon Wolfe, Ben Marrou, Daniel Chan.
Introduction to USB © 2010 Renesas Electronics America Inc. All rights reserved.
USB host for web camera connection
USB Link Layer Protocol
ECE 371 – UNIT 20 Universal Serial Bus (USB). References 1. Universal Serial Bus Specification, Revision 2.0. This specification is available on the World.
Introduction1-1 Data Communications and Computer Networks Chapter 5 CS 3830 Lecture 27 Omar Meqdadi Department of Computer Science and Software Engineering.
The University of New Hampshire InterOperability Laboratory Introduction To PCIe Express © 2011 University of New Hampshire.
Microprocessor-based Systems
1 Lecture 20: I/O n I/O hardware n I/O structure n communication with controllers n device interrupts n device drivers n streams.
I/O Example: Disk Drives To access data: — seek: position head over the proper track (8 to 20 ms. avg.) — rotational latency: wait for desired sector (.5.
DEVICES AND COMMUNICATION BUSES FOR DEVICES NETWORK
Renesas Electronics America Inc. RX USB Peripheral The Renesas RX USB peripheral a.k.a. USBC_597IP_PP Ver
Transmission Control Protocol
BR 6/001 Universal Serial Bus Universal Serial Bus is a new synchronous serial protocol for low to medium speed data transmission Full speed signaling.
Design and Performance of a PCI Interface with four 2 Gbit/s Serial Optical Links Stefan Haas, Markus Joos CERN Wieslaw Iwanski Henryk Niewodnicznski Institute.
USB Peripheral Controller John Jones 12/11/08 Embedded Systems Architecture.
Computer communication. Introduction Mechanisms applied in communicating between a computer and another computer or with other devices. Mainly serial.
Queues, Pipes and Sockets. QUEUE A structure with a series of data elements with the first element waiting for an operation Used when an element is not.
1 Dong Wang, Yaping Wang, Changzhou Xiang, Zhongbao Yin, Fan Zhang, Daicui Zhou (Huazhong Normal University, China) Status and planning on common readout.
1 Presented By: Eyal Enav and Tal Rath Eyal Enav and Tal Rath Supervisor: Mike Sumszyk Mike Sumszyk.
PROJECT - ZYNQ Yakir Peretz Idan Homri Semester - winter 2014 Duration - one semester.
Lecture 4 Overview. Ethernet Data Link Layer protocol Ethernet (IEEE 802.3) is widely used Supported by a variety of physical layer implementations Multi-access.
Chapter 13 – I/O Systems (Pgs ). Devices  Two conflicting properties A. Growing uniformity in interfaces (both h/w and s/w): e.g., USB, TWAIN.
Intel Open Source Technology Center Lu Baolu 2015/09
SpaceWire Remote Memory Access Protocol
1 Basic Processor Architecture. 2 Building Blocks of Processor Systems CPU.
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
Direct Memory Access (DMA) Department of Computer Engineering, M.S.P.V.L. Polytechnic College, Pavoorchatram. A Presentation On.
WINLAB Open Cognitive Radio Platform Architecture v1.0 WINLAB – Rutgers University Date : July 27th 2009 Authors : Prasanthi Maddala,
FIGURE 4.1 SOC System Overview.. FIGURE 4.2 Memory Map Representation for an Intel Platform.
USB PHYISICAL LAYER PROTOCOL ENGINE LAYER APPLICATION LAYER
Universal Serial Bus Specification 1.0
NS Training Hardware.
USB- Universal Serial Bus
Embedding USB technology Limitations, challenges and compliance
USB-Microcontroller C540U Family
CSCI 315 Operating Systems Design
USB : Universal Serial Bus
Data Link Issues Relates to Lab 2.
Transport Layer 9/22/2019.
Presentation transcript:

Anush Rengarajan Feng Zheng Thomas Madaelil USB 2.0 Controller Anush Rengarajan Feng Zheng Thomas Madaelil

Scope of Project Implement USB 2.0 Controller Driver Based on EHCI(Enhanced Host Controller Interface) specification and ULPI (UTMI+ Low Pin Interface) USB 1.1 not supported. Driver Basic driver to test memory interface.

EHCI Intel Spec for USB 2.0 Controllers Used in PCs Standardizes the Communication between Host Software and Controller Software emulated Root Hub

ULPI Based on UTMI (USB 2.0 Transceiver Marcocell Interface) specification Low pin count interface to PHY. Standardizes interface between host controllers and external PHY.

Block Diagram Request Descriptor Parse Descriptor Post Process Transaction PHY Interaction

Division of Work Anush – Internal memories and interaction with ARM processor, driver Tom – Data Layer, combine IP Feng – Protocol Layer

Device Driver Device Driver is a bare bone driver which initializes memory with data needed for the Hub Controller Not much progress was made with this as there were issues in debugging the design mapped to FPGA Used Device Driver to stimulate part of the design by using memory mapped Registers in FPGA

Device Driver contd. The Transfer Descriptor Data needed by the Controller is initialized by the Device Driver in the Memory Block mapped into the FPGA

Queue Head Array This Structure maintains the Queue Head Transfer Descriptor The Size of the Queue Head Transfer descriptors are 64 bytes Implemented as 16 entry array with each entry being 4 bytes

Transfer Descriptor Array This Structure maintains the Isochronous or the Split Isochronous Transfer Descriptor The Size of this array is 64 bytes to accommodate the entire Descriptor Implemented as 16 entry array with each entry being 4 bytes

Data Buffers There are 2 Data Buffers implemented to facilitate the Data Transfer to and from the Hub Controller Each Data Buffer is 1024 bytes to accommodate the maximum Data Transfer Size These are implemented using the FPGA RAM Blocks

Data Buffers contd. Data Buffer In gets the data from the Protocol Layer and transfers the data to the memory Data Buffer Out transfers the data from the memory to the Protocol Layer These buffers are instantiated as RAM Block with the aspect ratio of 512 x 32 bits

Data Layer Interacts between Protocol and Software

Data Layer

Protocol Layer Token Packet (Header defining what it expects to follow), an Optional Data Packet, (Containing the payload) and a Status Packet (Used to acknowledge transactions and to provide a means of error correction)

Protocol Layer (Common USB Packet Fields) Sync - All packets must start with a sync field. The sync field is 8 bits long at low and full speed or 32 bits long for high speed and is used to synchronise the clock of the receiver with that of the transmitter. PID - Packet ID. This field is used to identify the type of packet that is being sent. ADDR - The address field specifies which device the packet is designated for. Being 7 bits in length allows for 127 devices to be supported. ENDP -The endpoint field is made up of 4 bits, allowing 16 possible endpoints. Low speed devices, however can only have 2 additional endpoints on top of the default pipe. CRC - Cyclic Redundancy Checks are performed on the data within the packet payload. All token packets have a 5 bit CRC while data packets have a 16 bit CRC. EOP - End of packet.

Protocol Layer

Protocol Layer (Token Packet Fields) In - Informs the USB device that the host wishes to read information. Out - Informs the USB device that the host wishes to send information. Setup - Used to begin control transfers. Start of Frame Packets -The SOF packet consisting of an 11-bit frame number is sent by the host every 1ms ± 500ns on a full speed bus or every 125 µs ± 0.0625 µs on a high speed bus. Sync PID ADDR ENDP CRC5 EOP 00000001 10100101 0000100 0111 10100 XX1

Protocol Layer (Data Packet, Handshake) Data0, Data1, (DATA2 and MDATA.) Maximum data payload size for high-speed devices is 1024 bytes. Data must be sent in multiples of bytes. Sync PID Data CRC16 EOP 00000001 11000011 00000000100000000100000011000000 1111011101011110 XX1 ACK - Acknowledgment that the packet has been successfully received. NAK - Reports that the device temporary cannot send or received data. Also used during interrupt transactions to inform the host there is no data to send. STALL - The device finds its in a state that it requires intervention from the host. Sync PID EOP 00000001 00101101 XX1

Results / Future Work Tested and synthesized individual blocks Requires Split transaction Interface between USB controller and the PHY, or transceivers, that drives the actual bus USB controller should operate Full/Low speed devices to meet 2.0 spec.

Back up

Lessons Learned Create written specification for inter-module communication of blocks early in design Xilinx Synthesis quirkiness with Array Design . Initially the Array was Synthesized as flops which took for ever !!!

Example Transaction( make a picture?) Data Layer sends request to local memory controller to load transaction descriptor from memory Once descriptor is loaded, data layer parses descriptor and sends transaction data to protocol layer Protocol layer takes transaction data and interacts with phy via ULPI interface Protocol returns transactions status to data layer for post processing Data layer post processes data and requests local memory controller to write data to memory