Embedding USB technology Limitations, challenges and compliance

Slides:



Advertisements
Similar presentations
IT Essentials PC Hardware & Software v5.0
Advertisements

So, you think you need USB On-The-Go?. Agenda Introduction Embedded Host terminology OTG – Electrical – Protocol When to use OTG 2.
Chapter 13 Embedded Systems
29 April 2005 Part B Final Presentation Peripheral Devices For ML310 Board Project name : Spring Semester 2005 Final Presentation Presenting : Erez Cohen.
Installing software on personal computer
USB: UNIVERSAL SERIAL BUS Joe Kaewbaidhoon Alex Motalleb Vishal Joshi Prepared for EECS 373 University of Michigan, Ann Arbor 1.
Zach Little Program Manager Microsoft Corporation.
TM Freescale, the Freescale logo, AltiVec, C-5, CodeTest, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of.
May 9, USB 2.0 Opportunities in Retail Dan Clements Consumer Products and Technology Manager Circuit City Stores Inc.
TUSB3210 Product Overview.
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.
October 10, USB OnTheGo Ed Beeman Hewlett Packard.
Back to USB Devices TUSB2136 TUSB2136 Product Overview.
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.
Using the PSoC USB March 17, 2012 Lloyd Moore, President/Owner.
Multimedia & Communications ATMEL Bluetooth Background information on Bluetooth technology ATMEL implementation of Bluetooth spec.
Basic LAN techniques IN common with all other computer based systems networks require both HARDWARE and SOFTWARE to function. Networks are often explained.
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.
May 17, USB Semiconductor IP How to Integrate USB into Your Design Eric Huang inSilicon Corporation.
May 9, USB On-The-Go Implementation Trade-offs Zong Liang WU TransDimension Zong Liang WU TransDimension.
Team 4 Project 1 Presentation Mapping Parallel Ports to LPT’s & USB Host Controller Interfaces Tom, Jen, Curtis, Ashley, Scott.
1 Presented By: Eyal Enav and Tal Rath Eyal Enav and Tal Rath Supervisor: Mike Sumszyk Mike Sumszyk.
2: Operating Systems Networking for Home & Small Business.
SEPTEMBER 8, 2015 Computer Hardware 1-1. HARDWARE TERMS CPU — Central Processing Unit RAM — Random-Access Memory  “random-access” means the CPU can read.
Introduction to Operating Systems Concepts
By Ganesan Alagu Ganesh Feb 26, 2008
Introduction to Computing Systems
Voice Controlled Robot by Cell Phone with Android App
Chapter 1: Introduction to the Personal Computer
PICK N PLACE ROBOTIC ARM AND MOVEMENT CONTROLLED BY ANDROID WIRELESSLY
Computer systems is a 10-credit unit
Chapter 13: I/O Systems Modified by Dr. Neerja Mhaskar for CS 3SH3.
Chapter 6: BIOS.
Operating System Review
I/O SYSTEMS MANAGEMENT Krishna Kumar Ahirwar ( )
Current Generation Hypervisor Type 1 Type 2.
USB The topics covered, in order, are USB background
TOPIC : USB FLASH DRIVE. May E.Al-Hajri. Intro Information Technology.
By Ganesan Alagu Ganesh Feb 21, 2008
Credits: 3 CIE: 50 Marks SEE:100 Marks Lab: Embedded and IOT Lab
Becoming mbed Enabled Mihail Stoyanov / Lead Partner Enablement Engineer / ARM Xiao Sun / Senior Applications Engineer / ARM logo program. industry best-practices.
Direct Attached Storage and Introduction to SCSI
Operating Systems (CS 340 D)
Chapter 7.2 Computer Architecture
CP220x The Industry’s Smallest Ethernet Controller
Introduction to Computers
Instructor Materials Chapter 1: Introduction to the Personal Computer
Chapter 2 Objectives Identify Windows 7 Hardware Requirements.
Direct Attached Storage and Introduction to SCSI
Operating System Review
11/8/2018 8:19 PM HW-98P Windows 8 kernel debugging: New protocols and certification requirements Tanya Radeva Program Manager Microsoft Corporation Joe.
USB- Universal Serial Bus
Chapter Overview Understanding Expansion Buses
Communication Interface for Vision Applications
PICK N PLACE ROBOTIC ARM AND MOVEMENT CONTROLLED BY ANDROID WIRELESSLY
Hardware Components & Software Concepts
Today’s agenda Hardware architecture and runtime system
Greg Bell Business Development Mgr Industrial & Security Markets
I/O BUSES.
CHAPTER 1 THE 8051 MICROCONTROLLERS
Universal Serial Bus (USB)
Computing Essentials Module 1.
Computing Essentials Module 1.
Chapter 1: Introduction
Chapter 13: I/O Systems.
Course Code 114 Introduction to Computer Science
Introducing MagicInfo 6
Presentation transcript:

Embedding USB technology Limitations, challenges and compliance USB Host USB Compliance November 30 2012 Christian Légaré

USB Device stack Application USB Class API Class Drivers Kernel USB Class API Class Drivers Kernel Abstraction HID Mass storage CDC Custom drivers USB Device core stack Device Controller Driver Device Controller Hardware

USB Host stack Application USB Class API Class Drivers Kernel USB Class API Class Drivers Kernel Abstraction HID Mass storage CDC Hub Custom drivers USB Host core stack Bandwidth allocation & Power management Host Controller Driver OHCI-EHCI-xHCI or Custom Host Controller Hardware

Device Driver Select device driver The host loads the appropriate driver using a PID/VID (Product ID/Vendor ID) combination used during the enumeration. [Windows] Abstract from a .inf file: [DeviceList] %USB\VID_8765&PID_1234.DeviceDesc%=USBBulkInstall, USB\VID_8765&PID_1234 The VID is supplied by the USB Implementor's forum at a cost and this is seen as another sticking point for USB. The latest info on fees can be found on the USB Implementor’s Website Other standards organizations provide a extra VID for non-commercial activities such as teaching, research or fiddling (The Hobbyist). The USB Implementors forum has yet to provide this service. In these cases, the developper may wish to use one assigned to the development system's manufacturer. For example most chip manufacturers will have a VID/PID combination the developper can use for the chips which is known not to exist as a commercial device. Other chip manufacturers can even sell a PID to use with their VID for the commercial device. 4

General Purpose OS USB drivers With a USB Device based product, using HID or MSD allows for the use of generic drivers in the General Purpose OS (Windows, Linux, Android, MacOS)..a definite advantage for product acceptance and deployment Other classes may require custom drivers for these Operating Systems

USB On-The-Go Supplement to USB 2.0 Allows for devices to be host and peripheral New features: Smaller connectors with an added pin (ID) Tighter power constraints for devices Protocol enhancement for dynamic switching (HNP) Definition of session request protocols (SRP)

USB On-The-Go Allows two USB devices to talk without a PC as host. DRD (Dual Role Devices). Unique mini-AB receptacle. OTG High Speed and Full Speed. Low power requirements on battery powered devices.

USB On-The-Go Application OTG stack Host stack Device stack OTG Controller Driver Host driver Device driver Host Controller Hardware Device Controller Hardware

Wireless USB Certified Wireless USB is the new wireless extension to USB that combines the speed and security of wired technology with the ease-of-use of wireless technology Certified Wireless USB is the first high-speed wireless personal interconnect technology to meet the needs of multimedia consumer electronics, PC peripherals, and mobile devices. Certified Wireless USB will preserve the functionality of wired USB while also unwiring the cable connection and providing enhanced support for streaming media CE devices and peripherals. Certified Wireless USB performance is targeted at 480Mbps at 3 meters and 110Mbps at 10 meters.

Compliance Usage of the USB logo requires a product to be compliant The USB organization has created a compliance program Two main criteria are: checklists and compliance testing Checklists contain questions relating to a product and its behavior USB-IF provide a Compliance Program for a small membership fee There are a set of registered USB logos which are not interchangeable

Tests Mechanical Electrical Interoperability Device Software OK when using an approved connector vendor Electrical OK when using a silicon vendor reference design Interoperability The USB Gold Tree Device Software OK with Command Verifier Host Software Proprietary and expensive

USB Electrical Analysis Tool USBET20 is a stand-alone electrical signal analysis tool for USB Compliance testing. USBET20 is the official compliance electrical analysis tool that performs pass/fail assessments on signal quality and inrush current data captured from an oscilloscope. USBET20 is downloadable from http://www.usb.org/developers/tools/

USB Device and the USB Command Verifier USB20CV is the compliance test tool which evaluates High, Full and Low-speed USB devices for conformance to the USB Device Framework (Chapter 9), Hub device class (Chapter 11), HID class, and OTG specifications. Also included are mass storage class, USB video class and PDHC specification tests. All USB 2.0 and 3.0 peripherals are required to pass the Device Framework tests in order to gain certification. USB20CV http://www.usb.org/developers/tools/ USB30CV http://www.usb.org/developers/ssusb/ssusbtools

If your product is a USB Host How do you test a Host? There is only one Host on a bus and the Host is the Master on the bus. So, how do you test a Host? Protocol Analyzer and Generator (build test cases) Custom tools

Interoperability : USB Gold Tree A Host PC with different USB controllers 5 HS self powered hubs 1 FS self powered hub EHCI 1 FS keyboard/hub OHCI 5 5 meter USB cables UHCI 1 mouse xHCI (USB 3.0) 2 mass storage devices 1 video camera http://compliance.usb.org/index.asp?UpdateFile=Interoperability

Memory footprint Device-Bulk Detail Description CPU Philips LPC2148 Toolchain IAR Embedded Workbench v4.30a ARM/Thumb mode Thumb mode Compile options Size optimization (Low) Memory requirements The following table shows the memory requirement of the project: The USB receive buffer is listed separately because this buffer can be reduced to a trivial size if optimal performance is not required. Detail ROM [bytes] RAM USB code and const data 6309 -- USB data 32 USB receive buffer 512 Total 544

Memory footprint Device-MSD System Detail Description CPU Philips LPC2148 Toolchain IAR Embedded Workbench v4.30a ARM/Thumb mode Thumb mode Compile options Size optimization (Low) Memory requirements (RAMDisk) ROM and RAM will vary depending on the storage device used. RAM space beyond that which is reflected by the table will also be needed, of course, if RAM is chosen as the application's storage medium. The sector buffer's size corresponds to the sector size utilized by the actual storage device, more than 512 bytes may be necessary. Detail ROM [bytes] RAM USB code and const data 6736 -- USB data 32 USB receive buffer 512 MSD sector buffer Total 1056 The USB receive buffer is listed separately because this buffer can be reduced to a trivial size if optimal performance is not required. 17

Memory footprint Host-HID System The following table shows the hardware and the toolchain details of the project: Detail Description CPU ARM9 Toolchain IAR Embedded Workbench v4.30a ARM/Thumb mode ARM mode Compile options None Memory requirements The following table shows the memory requirement of the project: 64k of the RAM data is a memory pool in the usbh_lib module. Depending on your application it may not be required. Detail ROM [bytes] RAM Host driver 11572 440 HID Class driver 6864 36 Mouse and keyboard demo code 2392 8036 USB core 18837 66121 Total 39665 74633 18

Memory footprint Host-MSD System The following table shows the hardware and the toolchain details of the project: Detail Description CPU ARM9 Toolchain IAR Embedded Workbench v4.30a ARM/Thumb mode ARM mode Compile options None Memory requirements The following table shows the memory requirement of the project: Detail ROM [bytes] RAM Host driver 11572 440 MSD Class driver 7842 548 Mouse and keyboard demo code 2392 8036 USB core 18837 2121 Total 40643 11145 19

Final review Embedding USB

USB features or limitations USB works great for well defined classes Typical usage like HID or MSC If you want to leverage the technology, then think about: Maximum data rates Actual data throughput Cable length and total length Power 127 devices per controller Host driven protocol

Have Reasonable Expectations Typical MCU can not keep up with High speed USB controllers. USB device controllers are sometimes troublesome to port. This is partly because a USB device controller port deals more closely with more complicated hardware than, say, a TCP/IP NIC port.  Partly, this is because USB device controllers are much more various than NICs. The Device can never initiate a communication with USB 2.0. If using MSD (Host or Device) & a file system on the embedded system, either the MSD or the file system (but not both) can access the storage media at any time.

Embedding USB Average microcontroller clock is between 100Mhz and 200Mhz. USB 2.0 High Speed can deliver 480 Mbps…not on a microcontroller! Semiconductor vendors advertise their parts as being USB 2.0 compliant! Not all USB controllers are created equal For Host, many don’t follow the OHCI, EHCI or UHCI specs. Some hardware functions moved to software reducing even more the expected performance Number of endpoints may be lower than the specification, limiting the product capabilities

USB markets The USB key has changed the rule Consumer Medical USB Host stack integrated to take advantage of USB MSD and the Flash drives. Consumer Mouse, Keyboard, Printers, Digital cameras, etc… Medical New market for Personal Medical Devices USB Decorations

Summary Appealing features: Ease of use Bus power Auto-detection and self configuration Expandability Reasonable speed Large number of predefined functions and customizable function Availability of peripherals Flexibility and reliability The tradeoff is complex implementation and cost 25

Thank you 26