Copyright 2003 Ryan Rangel. All rights reserved. Got USB? The questions to ask when adding USB Host to your Embedded System. By Ryan Rangel

Slides:



Advertisements
Similar presentations
Categories of I/O Devices
Advertisements

Media Transfer Protocol supported. 2 Session Outline Overview Overview Why use a class protocol? Why use a class protocol? Core scenarios & functionality.
So, you think you need USB On-The-Go?. Agenda Introduction Embedded Host terminology OTG – Electrical – Protocol When to use OTG 2.
USB Digital Audio Player Using ST92163 By Microcontroller DivisionVersion 1.2 / November 2000.
Handheld TFTP Server with USB Andrew Pangborn Michael Nusinov RIT Computer Engineering – CE Design 03/20/2008.
PC To GT Program Load Shachar Rosenberg Alex Normatov Technion - Digital Lab.
Travis Reed Todd Hummel Kwan-Truc. Concept USB 1.1 SPI b.
Chapter 10 Supporting I/O Devices. You Will Learn…  How to install peripheral I/O devices  How to use ports and expansion slots for add- on devices.
USB 2.0 INTRODUCTION NTUT CSIE 學 生:許家豪 指導教授:柯開維教授.
Choosing (and Implementing) the Correct USB Connectivity for Your Embedded System Steve Wetterling, MSEE = Pat Barrett,
Compact Flash for CoolRunner™-II CPLDs. Quick Start Training Agenda Introduction What is Compact Flash? CoolRunner-II Implementation Block Diagram Applications.
USB Josh Rickmar John Marcoux. Topics Purpose and Goals History Bus Design Power Differential Signaling Connectors Changes in USB 3.0.
Mentor.com/embedded Colin Walls USB 3.0: An Introduction for Embedded Software Developers.
Peripheral Buses COMP Jamie Curtis. PC Buses ISA is the first generation bus 8 bit on IBM XT 16 bit on 286 or above (16MB/s) Extended through.
May 8, The EASY Way to Create I/O Devices John Hyde Intel Corporation intel.com.
Digital Graphics and Computers. Hardware and Software Working with graphic images requires suitable hardware and software to produce the best results.
XP Practical PC, 3e Chapter 17 1 Upgrading and Expanding your PC.
Computer Hardware and Network Systems Terms Lucas Abbott.
Chapter 8 Input/Output. Busses l Group of electrical conductors suitable for carrying computer signals from one location to another l Each conductor in.
hardware and operating systems basics.
USB Flash Card Writer Using ST92163 By Microcontroller DivisionVersion 1.2 / November 2000.
Peripheral Busses COMP Jamie Curtis. PC Busses ISA is the first generation bus 8 bit on IBM XT 16 bit on 286 or above (16MB/s) Extended through.
Introduction to USB Development. USB Development Introduction Technical Overview USB in Embedded Systems Recent Developments Extensions to USB USB as.
Introduction to Computers Personal Computing 10. What is a computer? Electronic device Performs instructions in a program Performs four functions –Accepts.
Introduction to USB © 2010 Renesas Electronics America Inc. All rights reserved.
Chapter 2 Chapter 2: Planning for Server Hardware.
Using the PSoC USB March 17, 2012 Lloyd Moore, President/Owner.
1.  Project Goals.  Project System Overview.  System Architecture.  Data Flow.  System Inputs.  System Outputs.  Rates.  Real Time Performance.
Chapter 4 Network Interface Cards Instructor: Nhan Nguyen Phuong.
Universal Serial Bus - USB Historical Perspective The Universal Serial Bus was originally developed in 1995 by a group of industry.
INTRODUCTION Bluetooth technology is code name for Personal Area Network (PAN) technology that makes it extremely easy to connect a mobile, computing device.
Translate the following message:
Cpr E 308 Input/Output Recall: OS must abstract out all the details of specific I/O devices Today –Block and Character Devices –Hardware Issues – Programmed.
Guide to Networking Essentials Fifth Edition Chapter 4 Network Interface Cards.
Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze Unit OS6: Device Management 6.1. Principles of I/O.
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.
Eng.Abed Al Ghani H. Abu Jabal Introduction to computers.
Guide to Linux Installation and Administration, 2e1 Chapter 2 Planning Your System.
CS 342 – Operating Systems Spring 2003 © Ibrahim Korpeoglu Bilkent University1 Input/Output CS 342 – Operating Systems Ibrahim Korpeoglu Bilkent University.
VinChip enabling the SoC revolution Basic Charter  To be the most preferred vendor of Silicon intellectual property and Design services to OEMs and.
The Components of a System Unit
May 9, USB On-The-Go Implementation Trade-offs Zong Liang WU TransDimension Zong Liang WU TransDimension.
Chapter 2 Chapter 2: Planning for Server Hardware.
IEEE 1394 A high-speed computer I/O serial bus CASI / ELEC 98 By Rachad ALAO Ecole Nationale Supérieure des Télécommunications
I T Essentials I Chapter 1 JEOPARDY HardwareConnector/CablesMemoryAcronymsPotpourri
Platform Architecture Lab USB Performance Analysis of Bulk Traffic Brian Leete
Chapter 3 System Configuration The Complete A+ Guide to PC Repair 5/e Update.
12/8/20151 Operating Systems Design (CS 423) Elsa L Gunter 2112 SC, UIUC Based on slides by Roy Campbell, Sam King,
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.
Advanced Operating Systems - Spring 2009 Lecture 18 – March 25, 2009 Dan C. Marinescu Office: HEC 439 B. Office hours:
1 Syllabus at a glance – CMCN 6103 Introduction Introduction to Networking Network Fundamentals Number Systems Ethernet IP Addressing Subnetting ARP DNS.
PARTS OF A COMPUTER 2 Hardware Computer Hardware is any of the physical parts of the computer you can touch. There are 4 categories: 1. Input Devices.
Week1: Introduction to Computer Networks. Copyright © 2012 Cengage Learning. All rights reserved.2 Objectives 2 Describe basic computer components and.
5 th October 2004Hardware – KS41 Hardware Objectives: Computer systems  What do they do?  Identify the hardware that makes up a computer system (PC)
Voice Over Internet Protocol (VoIP) Copyright © 2006 Heathkit Company, Inc. All Rights Reserved Presentation 5 – VoIP and the OSI Model.
SEPTEMBER 8, 2015 Computer Hardware 1-1. HARDWARE TERMS CPU — Central Processing Unit RAM — Random-Access Memory  “random-access” means the CPU can read.
Chapter 4 Network Interface Cards بطاقة واجهة الشبكة.
The Components of the System Unit
Chapter 13: I/O Systems Modified by Dr. Neerja Mhaskar for CS 3SH3.
USB The topics covered, in order, are USB background
Network Operating Systems (NOS)
Computer Hardware By Millie Hay.
Operating Systems (CS 340 D)
USB- Universal Serial Bus
CS703 - Advanced Operating Systems
Hardware Components & Software Concepts
Guide to Networking Essentials Fifth Edition
Greg Bell Business Development Mgr Industrial & Security Markets
2.C Memory GCSE Computing Langley Park School for Boys.
Presentation transcript:

Copyright 2003 Ryan Rangel. All rights reserved. Got USB? The questions to ask when adding USB Host to your Embedded System. By Ryan Rangel

Copyright 2003 Ryan Rangel. All rights reserved. Introduction What do you need to add USB Host to your Embedded system? Quick USB Overview USB Host Issues Even Quicker USB On-The-Go Overview When listing products offered by various manufactures, the lists are not meant to be complete. Also, I’m neither endorsing or discouraging the use of these products. Additional research will need to be done to find the best solution for you.

Copyright 2003 Ryan Rangel. All rights reserved. Intended to fix PC problems. One Universal connector for all devices. Devices may be hot plugged. Supply power to device. 127 devices per bus. 1 interrupt per bus. Different speeds. Self-identifying devices.

Copyright 2003 Ryan Rangel. All rights reserved. Bus Architecture Master Slave Peer Broadcast (Ethernet) Peer to Peer (IEEE1394, RS232) Master – Slave (USB) Slave

Copyright 2003 Ryan Rangel. All rights reserved. Transport Types: Control – get/set device state Bulk – reliable transport / unknown latency Interrupt – Poll for device event Isochronous – unknown transport / reliable latency

Copyright 2003 Ryan Rangel. All rights reserved. Endpoints and Pipes Building blocks of a USB function. Must have default control endpoint (#0) up to 15 input and 15 output endpoints. Each endpoint may be any transport type Pipe – Logical channel representing an association between a function endpoint and host software.

Copyright 2003 Ryan Rangel. All rights reserved. I want USB? USB

Copyright 2003 Ryan Rangel. All rights reserved. What is you application? Do you need Host, Slave or both???? USB HostUSB Function

Copyright 2003 Ryan Rangel. All rights reserved. USB Host What is my application? What are my requirements? What host controller best fits my system? What devices will be connected to my system? What other software support do I need? What solutions are available?

Copyright 2003 Ryan Rangel. All rights reserved. Some questions for choosing a USB host Controller. Standard vs. Proprietary Register Interface. System Bus, DMA vs. non-DMA Software vs. Hardware Scheduling Interrupts Project hardware cost requirements are your problem……

Copyright 2003 Ryan Rangel. All rights reserved. Standard vs. Proprietary Register Interface Standard register interface have public specifications. Wider Operating System and USB Host stack support. Proprietary register interface has non- public specification. Must get Host Controller driver from HC vendor. Sometime must purchase.

Copyright 2003 Ryan Rangel. All rights reserved. Standard Register Interfaces UHCI – USB 1.1. Intel originally developed. On every motherboard. OHCI – USB 1.1. Developed by Compaq, Microsoft, National Semi. EHCI – USB 2.0. NEC, Microsoft, Comaq, Lucent, Intel.

Copyright 2003 Ryan Rangel. All rights reserved. Some Proprietary Interfaces TransDimension UHC124, OTG243 Phillips ISP1161, ISP1362 ScanLogic / Cypress SL811HS New controllers coming out! New IP for SOC and OTG.

Copyright 2003 Ryan Rangel. All rights reserved. DMA vs. Non-DMA Host Controllers. All standard controllers use DMA. Standard HCI need PCI or onboard SOC. Proprietary controllers usually have no or limited DMA capability Proprietary controllers do not require PCI! If your I/O bus is slow, DMA won’t help!

Copyright 2003 Ryan Rangel. All rights reserved. Buffer Management Standard HCI – If your system has memory cache then having DMA controller requires management of cached and non-cached memory buffers. Proprietary HCI – Buffers to be transferred must be copied to chip memory. Chip buffer management can be difficult due to limited space.

Copyright 2003 Ryan Rangel. All rights reserved. Scheduling Standard HCI - all transfer scheduling done by HC silicon Proprietary HCI - all or part of transfer scheduling done by software. – Transfer Scheduling – Batch Scheduling – Transaction Based

Copyright 2003 Ryan Rangel. All rights reserved. Standard HCI Scheduling CPUMemoryHC ED TD

Copyright 2003 Ryan Rangel. All rights reserved. Proprietary HCI Scheduling CPUMemoryHC ED TD Transfer Buffer

Copyright 2003 Ryan Rangel. All rights reserved. Interrupts Standard HCI – Only interrupts IF event has occurred that requires software processing. Transfer Based HCI – One interrupt per USB transfer! Batch Based HCI – One interrupt per frame. Transaction HCI – Same as Standard HCI but number of outstanding transactions is limited.

Copyright 2003 Ryan Rangel. All rights reserved. OHCIEHCI So, what host controller best fits my system???? USB Host

Copyright 2003 Ryan Rangel. All rights reserved. Some questions for choosing USB host device support. What class of devices do you need to support? Standard vs. Non-Standard devices What other software support will I need? Issues with classes after device ships. Don’t forget your application requirements. It will take an infinite amount of time to add infinite amount of functionality.

Copyright 2003 Ryan Rangel. All rights reserved. What is a class driver? A combination of pipes, with different transport types. Data Interpretation. Application or driver subsystem interface. A compound device exports multiple classes.

Copyright 2003 Ryan Rangel. All rights reserved. Standard vs. Proprietary classes Standard class specifications are public. Standard class software support is common in most protocol stacks available. Proprietary class specifications must be gotten from the device vendor. Proprietary class software support is commonly non-existent.

Copyright 2003 Ryan Rangel. All rights reserved. Available Standard Classes Audio Communications Humand Interface Device (HID) Still Image Capture, PIMA 15740, PTP Mass Storage Printer Hub Bluetooth Smart Card (CCID) Firmware Upgrade Content Security IrDA Physical

Copyright 2003 Ryan Rangel. All rights reserved. Some Available Proprietary Classes USB to Ethernet USB to Serial MP3 Players Video Cameras Wireless (802.11, etc.) Random-Wildcard Vendor Device!!! Scanners Host to Host Cable Storage Devices Digital Cameras

Copyright 2003 Ryan Rangel. All rights reserved. Other needed software…. HID = event/messaging subsystem Mass Storage = File System, Storage protocol stack USB to Ethernet = TCP/IP stack Printers = What printer control language Bluetooth = Bluetooth protocol stack Does your operating system have all the needed support?

Copyright 2003 Ryan Rangel. All rights reserved. Typical issues. Do you have enough ROM space for all class drivers and protocol subsystems? How do I add a class driver after ship? What happens after ship if my class driver has a bug or was not fully implemented? What if a new device comes out that needs a different protocol subsystem? How will I handle users plugging random devices into my system?

Copyright 2003 Ryan Rangel. All rights reserved. UHCI So, what devices will be connected to my system? OHCIEHCI USB Protocol HID Mass Storage Printer

Copyright 2003 Ryan Rangel. All rights reserved. How will my applications interface with the class driver? Character Block (file system?) Socket (networking stack) Other In theory, USB just the transport and applications should not be USB specific in any way.

Copyright 2003 Ryan Rangel. All rights reserved. Sometimes you will be able to interface directly with the class driver…. USB Protocol Host to Host Still Image MP3 Player OS Character API

Copyright 2003 Ryan Rangel. All rights reserved. Interfacing with USB Keyboard, Mice and other HID. HID is a standard class. You will most likely send events to a user input subsystem. Will you have support for all HID devices? Do you only want to support Boot HID? USB Protocol HID User Input system

Copyright 2003 Ryan Rangel. All rights reserved. Interfacing with USB Mass Storage. Mass Storage is a standard class. Which only helps if the device is compliant. What files systems do you have support for (FAT, NTFS, EXT2, ISO9660, other)? Does your file system support removable media or removable devices? When a device is plugged into your system, what file system was it formatted with?

Copyright 2003 Ryan Rangel. All rights reserved. Some available file systems. Each PC OS has one (Windows, Mac). Most embedded OS has one (VxWorks, Nucleus, ThreadX, Linux). There are third party solutions (EBS). Some devices format media for you (digital cameras).

Copyright 2003 Ryan Rangel. All rights reserved. Mass Storage Solution. USB Protocol Bulk OnlyCB/I SCSIATA FATISO 9660 Proprietary EXT3 OS Block API

Copyright 2003 Ryan Rangel. All rights reserved. Interfacing with USB to Ethernet. Most USB to Ethernet chips have proprietary protocols. The standard communications class has Ethernet Networking control model (ENCM). USB Protocol ProprietaryENCM IP TCPUDP FTPHTTP

Copyright 2003 Ryan Rangel. All rights reserved. Interfacing with USB printer. Printer is a standard class. Only the transport of raw data is defined. You will need a printer control stack from each printer manufacturer. Some are easier to get than others. USB Protocol Printer Class Driver HPCanonEpson

Copyright 2003 Ryan Rangel. All rights reserved. Interfacing with the Bluetooth class. Bluetooth is a standard class but you can only get the protocol from the Bluetooth spec. USB Protocol Bluetooth class driver Bluetooth Stack

Copyright 2003 Ryan Rangel. All rights reserved. Some available solutions to get your research started… Protocol Analyzers: CATC, Catalyst, Ellisys… OS with USB Host stack: VxWorks, QNX, Linux, BSD… Third party USB Host stacks: SoftConnex, Intoto, Grape… Chip HCD: See vendor… IP HCD: See Vendor…

Copyright 2003 Ryan Rangel. All rights reserved. OHCIUHCIEHCISL811HUHC124ISP1362ISP1161 USB Protocol Printer CanonHP Proprietary ENCM IP TCP FTP UDP HTTP Proprietary FAT Bulk Only ATA ISO 9660 CB/I SCSI EXT3 OS Block API What have we learned about USB Host software….

Copyright 2003 Ryan Rangel. All rights reserved. USB Host Conclusion What is your application? What are my requirements? What host controller fits your system? What devices do you need to support? What other software support do I need? What solutions are available?

Copyright 2003 Ryan Rangel. All rights reserved. USB On-The-Go (OTG) The future of embedded USB Host? Do you need the power savings? – Are you running off a battery? Do you need the physical space savings of having only one mini connector? – Do you have the form factor of a cell phone or PDA? Bleeding edge technology. – Were you originally a slave device that does not want to depend on a PC?

Copyright 2003 Ryan Rangel. All rights reserved. Thank You! Standard USB specifications at: See vendors for all other specifications. If you have any questions, feel free to me at: