26.11.2012 Views

Embedded USB Device Stack - Thesycon Systemsoftware ...

Embedded USB Device Stack - Thesycon Systemsoftware ...

Embedded USB Device Stack - Thesycon Systemsoftware ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Embedded</strong> <strong>USB</strong> <strong>Device</strong> <strong>Stack</strong><br />

<strong>Thesycon</strong>’s <strong>Embedded</strong> <strong>USB</strong> <strong>Device</strong> <strong>Stack</strong> implements<br />

the core functionality of a <strong>USB</strong> device and optionally<br />

provides device class specific protocols. It enables<br />

developers to easily add <strong>USB</strong> device functionality to<br />

embedded systems.<br />

The software stack supports all transfer modes (control,<br />

bulk, interrupt, isochronous) at full and high speed.<br />

Extended error recovery mechanisms as required for<br />

reliable operation are implemented internally.<br />

The modular design allows to implement proprietary<br />

<strong>USB</strong> interfaces and standard device classes. The creation<br />

of composite devices which implement multiple<br />

logical functions on one physical controller as well as<br />

multi-configuration devices are fully supported.<br />

<strong>Device</strong> class specific APIs provide a high abstraction level<br />

and are easy to use. No <strong>USB</strong> know-how is required.<br />

Using <strong>Thesycon</strong>’s <strong>USB</strong> bootloader package helps in<br />

implementing firmware upgrade functionality for embedded<br />

systems.<br />

Platform Source Code License<br />

� NXP ARM Cortex-M3 core, LPC23xx, LPC24xx,<br />

LPC28xx, LPC31xx, LPC32xx<br />

� Atmel ARM Cortex-M3 core, AT91SAM7, AT91SAM9<br />

families (ARM)<br />

� Atmel AT32 family (AVR32)<br />

® <strong>Thesycon</strong> <strong>Systemsoftware</strong> & Consulting GmbH<br />

Industrial-grade, standard-compliant <strong>USB</strong> device software solution<br />

<strong>Device</strong> Classes<br />

The CDC/ACM protocol module implements a standardcompliant<br />

serial link (RS-232) emulation on top of <strong>USB</strong>.<br />

<strong>Thesycon</strong> also offers an appropriate device driver for<br />

Windows operating systems.<br />

The RNDIS module implements an Ethernet emulation<br />

on top of <strong>USB</strong>. This approach is especially useful if an<br />

embedded system contains a TCP/IP protocol implementation.<br />

The Mass Storage protocol module emulates a disc<br />

drive with FAT or CD-ROM file system. It can be used<br />

to create a CD-less PC software installation, or to<br />

exchange static data files between the device and the<br />

PC.<br />

The HID module implements a generic HID device<br />

(Human Interface <strong>Device</strong>). The device uses the in-box<br />

HID class driver.<br />

Further device classes can be created on request.<br />

Platform Integration<br />

The <strong>Embedded</strong> <strong>USB</strong> <strong>Device</strong> <strong>Stack</strong> is written in ANSI C.<br />

For easy integration the software is designed as a<br />

library and provided as source code. The library does<br />

not depend on any specific operating system support.<br />

It can be integrated into any embedded OS, or can be<br />

used in stand-alone applications.<br />

<strong>Embedded</strong> Applications<br />

API<br />

Mass<br />

Storage<br />

<strong>Device</strong> Classes<br />

API<br />

CDC/<br />

ACM<br />

<strong>USB</strong> Function API<br />

A device stack license includes the full source code<br />

and allows royalty-free distribution of binaries compiled<br />

from the sources. Distribution of source code is not<br />

permitted. For complete license conditions and prices<br />

please contact <strong>Thesycon</strong>.<br />

Supported Controllers<br />

API<br />

RNDIS<br />

<strong>USB</strong> Function Core<br />

Hardware-independent<br />

<strong>USB</strong> <strong>Device</strong> Controller Driver<br />

Hardware-specific<br />

Hardware Abstraction Layer (HAL)<br />

<strong>USB</strong> <strong>Device</strong> Controller<br />

Hardware<br />

Connects to <strong>USB</strong> host<br />

(PC or laptop)<br />

� Renesas H8S/H8SX, M16C/6C families<br />

API<br />

HID<br />

� ST Microelectronics STR9xx based family<br />

Other device controller drivers can be created on request.<br />

For the latest list of supported platforms, check out<br />

http://www.thesycon.com/embusbdevice<br />

<strong>Thesycon</strong> <strong>Systemsoftware</strong> & Consulting GmbH<br />

Werner-von-Siemens-Str. 2 • D-98693 Ilmenau • Germany<br />

Tel: +49 3677 8462-0 • Fax: +49 3677 8462-18<br />

e-mail: usb thesycon.de • http://www.thesycon.de/embusbdevice


Software solutions utilizing the <strong>Embedded</strong> <strong>USB</strong> <strong>Device</strong> <strong>Stack</strong><br />

The modular concept enables the <strong>Embedded</strong> <strong>USB</strong> <strong>Device</strong> <strong>Stack</strong> and its device classes to be integrated<br />

in a wide range of application scenarios. Bellow common application scenarios are shown with respect<br />

to the involved modules of the <strong>Embedded</strong> <strong>USB</strong> <strong>Device</strong> <strong>Stack</strong> and the appropriate PC device drivers.<br />

Raw bulk RS-232 over <strong>USB</strong> Ethernet over <strong>USB</strong><br />

<strong>USB</strong> device functionality in<br />

embedded systems by using<br />

raw <strong>USB</strong> bulk mode and<br />

implementing a vendor-specfic<br />

protocol.<br />

Custom Applications<br />

<strong>USB</strong>IO API<br />

Generic <strong>Device</strong> Driver<br />

<strong>USB</strong>IO<br />

<strong>USB</strong> Host Driver <strong>Stack</strong> (Microsoft)<br />

<strong>USB</strong> Host Controller (Hardware)<br />

Windows PC<br />

<strong>USB</strong><br />

<strong>Embedded</strong> <strong>Device</strong><br />

<strong>USB</strong> <strong>Device</strong> Controller (Hardware)<br />

<strong>Device</strong> Controller Driver<br />

<strong>USB</strong> Function Core<br />

<strong>USB</strong> Function API<br />

<strong>Embedded</strong> Application<br />

Provided by <strong>Thesycon</strong><br />

Provided by Customer<br />

Provided by other<br />

Standard-compliant serial link<br />

(RS-232) emulation on top of<br />

<strong>USB</strong> implementing the CDC/<br />

ACM protocol.<br />

Legacy<br />

Applications<br />

(Hyperterminal)<br />

Virtual COM Port API<br />

CDC/ACM Class Driver<br />

<strong>USB</strong> Host Controller (Hardware)<br />

<strong>USB</strong><br />

<strong>USB</strong> <strong>Device</strong> Controller (Hardware)<br />

<strong>Device</strong> Controller Driver<br />

<strong>USB</strong> Function Core<br />

CDC/ACM Protocol<br />

Custom<br />

Applications<br />

<strong>USB</strong> Host Driver <strong>Stack</strong> (Microsoft)<br />

Windows PC<br />

<strong>Embedded</strong> <strong>Device</strong><br />

Virtual UART style API<br />

<strong>Embedded</strong> Application<br />

® <strong>Thesycon</strong> <strong>Systemsoftware</strong> & Consulting GmbH<br />

http://www.thesycon.de<br />

Ethernet emulation on top of<br />

<strong>USB</strong> implementing the RNDIS<br />

protocol.<br />

Web Browser<br />

Configuration<br />

Monitoring<br />

TCP/IP Protocol <strong>Stack</strong><br />

RNDIS Network Adapter API<br />

<strong>USB</strong> RNDIS <strong>Device</strong> Driver (Microsoft)<br />

<strong>USB</strong> Host Driver <strong>Stack</strong> (Microsoft)<br />

<strong>USB</strong> Host Controller (Hardware)<br />

Windows PC<br />

<strong>USB</strong> <strong>Device</strong> Controller (Hardware)<br />

<strong>Device</strong> Controller Driver<br />

<strong>USB</strong> Function Core<br />

RNDIS Protocol<br />

Virtual Ethernet controller API<br />

TCP/IP Protocol <strong>Stack</strong><br />

<strong>Embedded</strong> HTTP<br />

Server<br />

Custom<br />

Network-based<br />

Applications<br />

<strong>USB</strong><br />

<strong>Embedded</strong> <strong>Device</strong><br />

<strong>Embedded</strong><br />

Application

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!