net+os 6.1 training. usb host usb host hardware usb host stack usb host api usb device class drivers...

18
NET+OS 6.1 Training

Upload: abraham-hicks

Post on 23-Dec-2015

225 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

NET+OS 6.1 Training

Page 2: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

USB HOST

Page 3: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

• USB Host Hardware• USB Host Stack• USB Host API• USB Device Class Drivers• Recommended readings

USB HOST

Page 4: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

USB Host Hardware

• Supports USB 1.1 and OHCI 1.0 specifications

Page 5: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

USB Host Stack

• Sourced from a Minolta and based on the Linux USB Host stack design.

• Supports bulk transfers, control transfers and interrupt transfers.

• Isochronous transfers are not supported in the NET+OS 6.1 release.

• ISR driven event notification design using semaphores.

Page 6: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

USB Host Stack

• USB stack has an internal thread which processes root hub status change events as notified by the ISR

• Root hub status changes force the internal thread to enumerate or de-enumerate devices.

Page 7: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

USB Host API

Initialization functions:• usbHostInit()• usbKeyboardInit()• usbMouseInit()• usbHubInit()• usbPrinterInit()

Page 8: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

USB Host API

Memory functions:• usbMalloc()• usbFree()

Device class driver functions:• usbRegister()• usbDeregister()• usbRegisterIrq()

Page 9: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

USB Host API

Enumeration functions:• usbClearEndPointFeature()• usbClearFeature()• usbClearPortFeature()• usbGetConfiguration()• usbGetDeviceDescriptor()• usbGetHidDescriptor()

Page 10: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

USB Host API

• usbGetHubDescriptor()• usbGetHubStatus()• usbGetPortStatus()• usbGetProtocol()• usbGetStatus()• usbGetString()• usbSetConfiguration()

Page 11: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

USB Host API

• usbGetHubDescriptor()• usbGetHubStatus()• usbGetPortStatus()• usbGetProtocol()• usbGetStatus()• usbGetString()• usbSetConfiguration()

Page 12: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

USB Host API

• usbSetFeature()• usbSetIdle()• usbSetInterface()• usbSetPortFeature()• usbSetProtocol()• usbSetReport()

Page 13: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

USB Device Class Drivers

Devices supported for this release:• Hub• Keyboard• Mouse• Printer

Page 14: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

USB Device Class Drivers

Hub Driver:• Uses an interrupt endpoint to communicate

with the hub device• ISR driven event notification design

through semaphore• Internal thread processes hub port status

changes and enumerates (or de-enumerates) as needed

Page 15: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

USB Device Class Drivers

Keyboard Driver:• Uses an interrupt endpoint to communicate

with the keyboard device• ISR driven event notification• Directs keystrokes to the console through

the standard I/O (i.e. serial port)

Page 16: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

USB Device Class Drivers

Mouse Driver:• Uses an interrupt endpoint to communicate

with the mouse device• ISR driven event notification• Directs mouse position coordinates to the

console through the standard I/O (i.e. serial port)

Page 17: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

USB Device Class Drivers

Printer Driver:• Uses one bulk out endpoint to communicate

with the printer device.• Tested with the Hitachi SL5 printer• Will work with printer devices that allow

directly downloading the actual print image without any protocols.

Page 18: NET+OS 6.1 Training. USB HOST USB Host Hardware USB Host Stack USB Host API USB Device Class Drivers Recommended readings USB HOST

Recommended Readings

• USB 1.1 Specification• OHCI 1.0 Specification• USB Human Interface Devices (HID)

specification• USB related books that explain USB in less

abstract terms.