| |
USB Products

The smxUSBD USB device stack, smxUSBH USB host stack, and smxUSBO OTG add-on have been specifically designed for embedded systems. They are robust and offer good performance. All are written in ANSI-C, and can run on any hardware platform. Though optimized for SMX®, they can be ported to another RTOS or operated in a stand-alone mode. USB software development services are also available.
smxUSBD USB Device Stack
smxUSBD offers a clean, modular design that enables embedded developers to easily add USB device capabilities to their projects. Such projects include making an embedded device look like a USB thumb drive or USB memory stick, a USB serial device, or a USB mouse. Normally this is done to permit connection to a PC or laptop in order to upload or download data, tables, code, etc. The smxUSBD USB device stack is offered separately from the smxUSBH USB host stack in order to reduce system cost and memory usage for projects not needing a host stack. It is compliant with the USB v2.0 specification (see www.usb.org.)
For easy connectivity to a PC or laptop, smxUSBD includes three class emulators: serial, mouse, and mass storage. Each emulator is compatible with the corresponding Windows USB class driver. Thus, a device using smxUSBD does not require a custom Windows driver in order to connect to a PC or laptop. Just decide on the device connection most appropriate for your device and use the corresponding API for that device
Do I Need a Host Stack or a Device Stack?
The most common requirement is connecting to a PC or Laptop for the purpose of downloading or uploading code, tables, and data. For this you need a device stack—i.e. you want your unit to appear to a PC as a device. The next most common requirement is to connect to a USB thumb drive or memory stick in order to read or write information. These devices have become very popular because of their convenience, large capacity, and low cost. For this you need a USB host stack—i.e. you want your unit to look like a PC to a thumb drive. (You also need a file system that is Windows-compatible, such as smxFS or smxFile.) Connecting to other popular USB peripherals such as printers, mice, keyboards, WiFi adapters, etc also requires a USB host stack.
Want more information?
smxUSBH USB Host Stack
smxUSBH permits easy connection of USB devices to embedded systems. It is intended for applications that require connection of a USB thumb disk or a USB memory stick, a USB printer, a USB mouse, or any other USB device. The smxUSBH USB host stack provides an expandable, hot-swap, plug-and-play USB interface for any embedded system. It is offered at a competitive price with a royalty-free license and can be incorporated into your design with minimal code modification. Why design a USB host stack that would require significant development time when this royalty-free code is ready for immediate use?
This USB host stack has been optimized for use with the SMX RTOS, our proprietary embedded operating system, but it can be ported to any other embedded RTOS, with minimal code modifications, or it can run stand-alone. smxUSBH interfaces with different hardware configurations via its host hardware control layer. Its modular design, ANSI-C compatibility, and full source code give customers the flexibility to easily port smxUSBH into their applications. 90 days of expert USB technical support is included in the purchase price. smxUSBH is your complete, high-quality USB host software solution.
Want more information?
Choosing a USB Controller
Most on-chip USB controllers are device controllers, so a device requirement is easily met. Very few SoCs or processors offer on-chip USB host controllers. Generally, you must use an external USB host controller. Controllers such as the NXP (Philips) ISP1161 and ISP1362 connect directly to standard processor buses. This is convenient for most embedded systems. OHCI controllers generally interface only to PCI buses. Unfortunately, on-chip PCI bus controllers are also rare, thus OHCI is seldom used in embedded systems. UHCI, an older standard, is also seldom used. EHCI is for high-speed, which usually is only necessary for data streaming (e.g. video) applications. Most EHCI controllers require a PCI bus. However, PCI bus controllers are more common among the high-end processors that are used for data streaming. High speed is not needed for USB thumb disks, nor for most other USB peripherals. In fact, full speed and low speed devices can only be supported if the EHCI controller includes a companion USB 1.1 controller such as OHCI or UHCI.
smxUSBO On-The-Go (OTG) Support
smxUSBO adds OTG support to the above stacks for NXP (Philips) ISP1362 and ISP1761 controllers. smxUSBO was specifically designed for embedded systems and can run on any processor.
USB Development Services
- USB controller drivers
- USB class drivers
- Porting and integration
Additional class drivers and host controller drivers are being developed—contact us for the latest information.
To learn more about smxUSB products see:
- smxUSB Product Overview Diagram (PDF)
- smxUSBD Datasheet
- smxUSBH Datasheet
- smxUSBO Datasheet
Register now for more information and to be contacted by a product expert. Registration also enables us to mail you printed literature and is necessary to qualify for a free evaluation kit.
|
|
............................................................... |
................................................................
|
| |
 |
Register now for more info. |
| |
| |
USB Device Stack Features
- Custom Windows class drivers not required—use standard serial, mouse, or mass storage class drivers to interface to your device from Windows
- Compatibility with ARM, ColdFire, PowerPC, x86, and other CPU's
- Compliant with USB Specification 2.0
- Device Controllers supported:
NXP (Philips) ISP1161, 1181, 1362, 158x, and 1761,
ARM: Atmel AT91, NXP LPC2xxx, Sharp LH7A4xx, STMicro STR7, and
ColdFire: 532x/7x on-chip controllers.
- Written entirely in ANSI-C
- Typical code footprint is less than 22 KB for a CISC processor
- Typical data footprint is 4 KB
- Optimized for SMX® RTOS
- Runs stand-alone or easily portable to other RTOSs
|
| |
USB is NOT Peer to Peer
Many people mistakenly confuse USB with peer-to-peer protocols such as TCP/IP. However, USB is a master/slave protocol. The master is called the host and is usually a PC or laptop. The slave is called the device and is usually a peripheral such as a printer, keyboard, or USB thumb drive. One host can connect to up to 127 devices via a cascading network of hubs. Connections are point to point. Hubs are repeaters that permit branching to devices and other hubs, as deep as 6 levels. The host recognizes devices, when they are connected, and assigns them id’s. It also recognizes when devices are disconnected. Hence, USB permits hot-swapping of devices. The host controls all data and control transfers. Devices do not interrupt, but rather wait to be polled. |
| |
USB Host Stack Features
- Compliant with USB Specifications 1.1 and 2.0
- Control, Bulk, Interrupt, and Isochronous data transfers supported
- High-speed (480 Mb/s), full-speed (12 Mb/s) and low-speed (1.5 Mb/s)
- Cascading hub support for up to 127 devices
- USB Hub Class Driver
- USB Mass Storage Class Driver
- USB Mouse Class Driver
- USB Keyboard Class Driver
- USB Printer Class Driver
- USB Modem (CDC ACM) Class Driver
- USB to Serial Converter Class Driver
- Interfaced to smxFS and smxFile for USB thumb drive support
- Host Controllers supported:
OHCI, UHCI, and EHCI,
NXP (Philips) ISP1161/0, ISP1362, and ISP1761/0,
ARM: Atmel AT91, Cirrus Logic EP93xx, NXP LPC2xxx, Sharp LH7A404, and
ColdFire on-chip controllers
- Compatibility with ARM, ColdFire, PowerPC, x86, and other CPU's
- Small code footprint (less than 50 KB for a CISC processor)
- Small data footprint (6-12 KB for an NXP ISP controller)
- Written entirely in ANSI-C
- Optimized for SMX® RTOS
- Runs stand-alone or easily portable to other RTOSs
|
|