Title: Ingen diastitel
1Hardware Forum USB præsentation
2Agenda
0830 Velkommen og intro0845 USB Basics0915
USB Human Interface Device Class1015
Pause1030 USB Hardware overview (Silicon Labs
processor, Sanyo processor, DIGI Processor, PLX
USB 2.0 High speed)1100 End of day
3USB Basics
4USB Basics
Plug Play
Easy to Use
Low Power Consumption
Fast
Low Cost
Reliable
RS232 Ports Disappearing
5Benefits of USB
- Ease-of-use
- One interface for many devices
- Hot pluggabledevices can be attached or
unplugged without restarting the program or
system - Automatic configuration
- No power supply required
- Devices can pull up to 500mA from a self powered
HUB - Devices can only pull 100mA from an unpowered HUB
- OTG Hosts must only supply 8mA !
- Reliability
- Lossless data transfers
6USB Specifications
- Speed
- Three transfer speeds
- Basic Speed 1.5 Mbps / 12 Mbps (USB 1.1 and
2.0) - High Speed 480 Mbps (USB 2.0 only)
- Silicon Labs devices support basic speed (USB 2.0
Compliant) - Low power consumption
- Suspend mode
- Devices consume 500µA or less
- A maximum of 10mS wakeup shutdown time required
7USB Specifications Choice of power?
- Remember that OTG support requires 8mA.
- However the OTG host may provide up to
- 500mA if it pleases to do so
8USB Administration Fees
- USB Logo
- If you are not a member of USB IF you must pay a
1.500 license fee for logo administration in
order to use their logo get a Vendor ID - USB IF membership costs 2.500 a year and is
optional - WHQL Windows Logo
- 250 fee per operating system you want your
driver qualified for - 400 digital driver signing fee (paid to
verisign.com)
9USB Plugs
- From Left to Right
- USB Type A
- USB Type B
- USB Type Mini A
- USB Type Mini B
- Captive / Detachable cable
- A detachable cable must be
- Full/High speed capable with a
- Series A plug for Upstream and a
- Series B plug for Downstream
- A captive cable must be Low/Full or
- High speed capable with a Series A
- plug for Upstream and a
- non-standard plug or directly wired
- for Downstream
10USB Definitions
- USBuniversal serial bus
- Hostsystem which initiates all transfers over
the bus - Deviceperipheral which communicates with and
receives information from the host - Hubprovides connecting points and power
- Pipelogical abstraction which creates an
association between an endpoint on a device and
the host software - Endpointmemory buffer on a device which serves
as a sink or source of data - IN endpointendpoint from which host reads data
- OUT endpointendpoint to which host writes data
- Endpoints on Silicon Labs MCUs are implemented as
FIFOs in on-chip XRAM - FIFO space for unused endpoints can be used as
general purpose XRAM
11USB PIPE Definitions
HOST
DEVICE
PIPE
OUT Endpoint
OUT Endpoint
PIPE
IN Endpoint
IN Endpoint
12USB Topology overview
- USB uses a tree topology, where one host connects
to devices and hubs, which can connect to other
hubs and devices - Max 5 HUBs
- Max 127 Devices
13USB Frame diagram
Transfer The process of making and carrying out
a communication request note that a transfer
can span multiple frames
Packet Block of information
FrameA 1 ms time base established on basic speed
buses
14USB Enumeration
- Enumeration is the activity that identifies and
assigns unique addresses to devices attached to a
bus - Makes USB devices hot-pluggable
- The host is always checking the bus for new
devices - The host cannot communicate with a USB device
until that device has been properly enumerated - Invisible to user
15USB Protocol Functions of a USB host
- Enumerate devices
- Transfer data with peripherals
- Provide power
- A full-power USB host can provide up to 500mA for
each peripheral - Some low-power USB hosts support only low-power
devices which are limited to 100mA - USB peripherals can be self-powered as well
- Inrush limiting over current protection
- Manage the USB bus
16USB Protocol Functions of a USB device
- Transfer data with the USB host
- Manage power
- The supply current that can be drawn from the bus
depends on the state of the bus - A bus-powered device in normal mode may draw up
to 500mA - When the bus is suspended, the device must draw
less than 500uA - Respond to standard requests from the host
17USB Protocol Transfer types
- Four types of transfers
- Control transfers
- Bulk transfers
- Interrupt transfers
- Isochronous transfers
18USB Protocol Transfer types
- Control Transfers
- Two uses
- Carry mandatory requests which enable the host to
recognize and enumerate devices - Carry user-defined requests for any other purpose
- Mandatory every device must support control
transfers - Bidirectional data flow
- Top Throughput
- 832 Kbytes/sec
19USB Protocol Transfer types
- Bulk Transfers
- Fastest transfer type
- No guaranteed data rate or latency
- Top throughput
- Full speed1.2 Mbytes/sec
- Common applications
- Printers
- Scanners
- Disk drives (USB thumb drive)
20USB Protocol Transfer types
- Interrupt Transfers
- Guaranteed latency
- Top speeds
- Full Speed64 Kbytes/sec
- Common applications
- Keyboards
- Mice
- Joysticks
21USB Protocol Transfer types
- Isochronous Transfers
- Streaming real-time transfers
- Guaranteed delivery rate and latency
- No error correctionNot lossless!
- Supported only by high and full speed devices
- Top speeds
- Full speed1.0 Mbytes/sec
- Common applications
- Music
- Video
22USB Protocol Transfer types overview
23USB Protocol Device Identifiers
- Each device must have identification information
that is - unique to that device
- If two devices have the same unique identifier
information, - the host PC will have problems communicating with
either device - Unique identifying information includes
- VID Vendor ID
- Assigned by the USB Implementers Forum
- PID Product ID
- Assigned by the vendor
- Serial Number
- Assigned by the developer/manufacturer
- Unique for every USB device
24Certification Compliance testing
- Silicon Labs allotment system
- Silicon Labs has a unique VID (0x10C4)
- If a customer uses the Silicon Laboratories VID,
they must ask Silicon Laboratories to assign a
unique PID to their product - Contact Lasse Madsen _at_ C-88 to receive a PID
- USB Implementers Forum (USB-IF), found at
www.usb.org - Assigns vendor IDs (VIDs)
- Oversees compliance testing
- USB products must pass compliance testing in
order to display the USB logo and to be listed on
the USB-IF Integrators List - Contact Lasse Madsen _at_ C-88 for help with
compliance testing
25USB Device Classes
26USB Protocol Device Classes
- The USB specification defines a set of standard
device classes which are natively supported by
most operating systems - Because these devices are already supported,
they do not require that any additional drivers
be installed in order to communicate with a host - Here are a few examples of defined USB device
classes - HIDhuman interface device
- Keyboards, mice, controls, thermometers,
voltmeters - Mass storage
- Removable and non-removable storage floppy,
hard, optical, and Flash drives - Audio
- Speaker, microphone, audio processor
- Communications device class
- Analog and digital modems, analog and digital
telephones, ADSL and cable modems, Ethernet
adapters and hubs
27The advantage of the HID device class
- HID is a defined USB class that operating systems
support natively, so - The end customer does not need to install
drivers - The HID class definition is flexible enough to
accommodate many different kinds of USB designs - The class also defines a number of HID
subclasses, such as the mouse and keyboard
subclasses
28HID Specification overview
- Specification was originally designed primarily
for devices that are used by humans to control
the operation of computer systems (HID
specification document) - Specification requires one control endpoint and
one IN interrupt endpoint - In addition to all standard USB requests, HID
devices must respond to all standard HID
requests, which we will discuss later - All data must be transferred inside defined
structures called reports - Reports can be transferred across either the
control pipe or the interrupt pipe
29Reports (HID)
- Reports are data structures defined in an HID
devices report descriptor - These structures can be designated as
- IN data traveling to the host
- OUT data traveling out of the host
- FEATURE data which can travel either into or out
of the host - In addition to the direction each report will
take, the report descriptor defines other
characteristics as well - Report size
- Report ID (unique to each report)
- Data usage
- In the case of the mouse sub-class, the Report
Descriptor designates which data bytes contain
x-axis movement information and y-axis movement
information
30Reports Mouse sample report
- Usage Page (Generic Desktop), Use the Generic
Desktop Usage Page - Usage (Mouse),
- Collection (Application), Start Mouse
collection - Usage (Pointer),
- Collection (Physical), Start Pointer
collection - Usage Page (Buttons)
- Usage Minimum (1),
- Usage Maximum (3),
- Logical Minimum (0),
- Logical Maximum (1), Fields return
values from 0 to 1 - Report Count (3),
- Report Size (1), Create three
1 bit fields (button 1, 2, 3) - Input (Data, Variable, Absolute), Add fields
to the input report. - Report Count (1),
- Report Size (5), Create 5 bit
constant field - Input (Constant), Add field to
the input report - Usage Page (Generic Desktop),
- Usage (X),
- Usage (Y),
http//www.usb.org/developers/hidpage/ -
Go Here for more info!
31Reports Descriptor tool
- Descriptor generator
- Generates byte codes
- Contains nearly all HID classes
- Verifies the code
- Free of charge
http//www.usb.org/developers/hidpage/ -
Go Here for more info!
32Transferring data - Pipes, Endpoints Reports
Remember that HID requires at least one Interrupt
IN endpoint and the obvious Control
endpoint. They both coexists at the same time
but at different memory locations inside the host
and device. Reports are only relevant to the
Control pipe In this example as we use the
Interrupt pipe for general purpose data.
33Control Pipe Data Flow
PC application calls HidD_SetOutputReport() with
buffer containing report to transfer
Device receives request and then receives the
report that follows
PC application calls HidD_GetInputReport() with
ID of report requested
Device receives request, sends back report
matching requested report ID
34Interrupt Pipe Data Flow
PC application calls WriteFile() and writes
report to USB buffer setup OUT packet and report
will be sent during next 1ms USB frame
Device receives OUT setup packet followed by
report
PC application sends IN setup packet every 1 ms,
host can check USB buffers for reports sent in
response to those setup packets by calling
ReadFile()
35Control vs. Interrupt Transfers
- USB Specification does not guarantee latency for
control transfers a host will only reserve a
percentage of a USB frame for control transfers
that depends on USB bandwidth usage - Control transfers should be used for
- One-time configuration device-to-host and
host-to-device information - Special event or state information
- Interrupt transfers should be used for
- Data that needs to be transferred with guaranteed
latency - Streaming data that will be ready to transfer
at set periods of time
36HID Recap.
- Its easier for end customers to use
- Designing with HID is more challenging but the
end customer doesnt have to install a driver - HID Specification gives designs lots of
flexibility - Customizable data structures and a standardized
API make HID suitable for many USB-based
applications
37C-88 AS USB løsninger
HOVEDKONTOR C-88 AS Savsvinget 7 2970
Hørsholm Danmark l Tel. 7010 4888 Fax 7010
4889SALGSKONTOR - DK C-88 AS Tindbjergvej 16
8600 Silkeborg Danmark l Tel. 7010 4888 Fax
8683 7589SALGSKONTOR- SE C-88 AS Õvre
Egilsvägen 67 152 57 Södertälje Sverige
Tel. 46 8 5580 3888 Fax 46 8 5580 3889
38- SiliconLabs
- Sanyo
- Digi International
- PLX
39(No Transcript)
40- Current Microcontrollers All are device only.
- C8051F320 16KB Flash 10ADC 32p
- C8051F321 16KB Flash 10ADC 28p
- C8051F326 16KB Flash 28p
- C8051F327 16KB Flash 28p
- C8051F340 48 MIPS 64KB Flash 10ADC 48p
- C8051F341 48 MIPS 32KB Flash 10ADC 48p
- C8051F342 48 MIPS 64KB Flash 10ADC 32p
- C8051F343 48 MIPS 32KB Flash 10ADC 32p
- C8051F344 25 MIPS 64KB Flash 10ADC 48p
- C8051F345 25 MIPS 32KB Flash 10ADC 48p
- C8051F346 25 MIPS 64KB Flash 10ADC 32p
- C8051F347 25 MIPS 32KB Flash 10ADC 32p
41Silabs C8051F34x series USB devices
- Integrated Voltage regulator
- Integrated Voltage reference
- Internal Temperature sensor
- UART, SPI SMBUS (I2C)
- Internal Clock Recovery for
- crystal less USB operation
- Even though the MCU has internal ESD
- Protection an external ESD protector
- should be used for harsh environments
4225 general purpose I/Os left on the 32pin TQFP
package!
REGIN voltage regulator input VDD voltage
regulator output
43(No Transcript)
44(No Transcript)
45- Device Microcontrollers
- LC87F136A 64K Flash 9ADC 24p
- LC87F16C8A 128K Flash 12ADC - 48p
- LC87F1A32A 32K Flash 12ADC 48p
- LC87F1G64A 64K Flash 12ADC 48p
- LC87F10C8A 128K Flash 12ADC 64p
- Host Microcontrollers
- LC87F14C8A 128K Flash 12ADC 48p
- LC87F1964A 64K Flash 12ADC 48p
- Future products
46Requires 8 external passives plus a crystal (not
shown)
47Digi International
Modul og chip løsninger til industielle
applikationer
- ARM7 og ARM9 baseret
- USB master og USB slave
- Ekstensiv Software support
- Lang produkt levetid
48Digi Chips
NS9360
49Digi Chips
NS9215
50ConnectCore moduler
ConnectCore9P 9360
ConnectCore9P 9215
ConnectCore9C
ConnectCore9M
51Digi Software
Target
USB Pro- tokol
OS (ThreadX, Linux, Windows)
52PLX Technology
USB2.0 High speed chips
- 40 MB/s! afhænger ofte af host
- 8/16 bit lokal bus interface
- 32 bit 33/66MHz PCI interface
- USB slave
53Chips
54Udviklings værktøjer
55- TAK for jeres tid
- og husk C-88 safaridag for hele familien den 8.
juni