USB Device

HCC Embedded » USB » USB Device

Device Stack

EUSBD™는 HCC의 임베디드 시스템 엔지니어에 의해서 설계된 Embedded USB Device Stack(EUSBD)으로 가장 효율적인 USB 디바이스 솔루션입니다.
 
EUSBD-BS (the EUSB Base System)는 End-point 제어를 위한 완벽한 USB 디바이스 스택을 제공합니다. 그것은 간단한 단일기능의 디바이스에서 복잡한 멀티 인터페이스 합성 디바이스까지 사용자 요구사항의 전체 범위를 지원할 수 있습니다.

EUSBD-BS는 모든 USB 클래스 드라이버와 원활하게 동작하며 사용자 정의 장치 드라이버에서도 사용할 수 있습니다.
EUSBD는 USB 디바이스 descriptors를 쉽게 생성 및 (능숙하게) 다루기 위해서 그래픽 디바이스 descriptor 구성 도구(DESCGEN : USB Device – Descriptor Generator)와 함께 제공됩니다.
 

USB Device – Descriptor Generator

호스트 시스템은 USB 디바이스 Descriptors를 이용하여 디바이스에 정보를 확인합니다. USB 디바이스가 호스트(일반적으로 PC)에 연결될 때, 호스트는 디바이스 Descriptors로 부터 정보를 요청하여 추출하는 동안에 “열거” 라는 과정을 거치게 됩니다.

불행하게도, 이러한 Descriptors(상호 연결된 테이블 집합 또는 구조체)는 간단하거나 직관적으로 만들수 있는 것은 아닙니다.

DESCGEN은 개발자가 Device Descriptors를 수정하는 데 사용할 수 있는 그래픽 도구로 직관적인 형태로 구성되어 있습니다. 개발자는 완전히 USB Device Descriptors의 동작에 대해서 이해하실 필요가 없습니다.

구성 파일은 입력하거나 수정할 수 있습니다.  HCC는 DESCGEN 템플릿 파일을 모든 USB 디바이스 스택과 함께 제공합니다.

DESCGEN의 출력은 직접적으로 프로젝트의 디렉토리 설정에 포함되어 있는 C 소스 파일입니다.

USB 디바이스 Descriptor 테이블을 변경하는 것은 더 이상 지루하거나 시간소모가 많은 잡일이 아닙니다.

USB 디바이스 컨트롤러 하드웨어에 대한 표준은 없습니다. 따라서, HCC는 다양한 USB 디바이스 컨트롤러에 대한 Low-level 드라이버(아래참조)를 EUSBD-BS와 함께 공급하고 있습니다.  

HCC-Embedded’s USB device stack currently supports the following targets:

  • Atmel: AT91SAM7xxx, AT91SAM9xxx, SAM3S, SAM3U, AT91RM9200, AVR32
  • Freescale: imX2x/3x/5x, JM60/128, MPC834x
  • Freescale: MCF52xx, MCF5222x, MCF53xx, MCF54xx
  • Maxim: MAX3421E
  • Microchip: PIC24, PIC32
  • NXP: ISP1161, ISP1183, ISP1361, ISP156x, ISP158x, ISP1761
  • NXP: LPC11xx, 13xx, 17xx, 2148, 2368/78/88, 2468/78, 28xx, 29xx, 31xx, 32xx
  • Renesas: SH72xx, RX600
  • ST: STR7xx, STR9xx, STM32F1xx, STM32F2xx
  • TI: MSP430, Stellaris, DSP 5509A, 6457
우리는 끊임없이 새로운 장치에 대한 지원을 추가하고 있습니다. 
고객님의 USB 호스트 컨트롤러가 현재 지원되었는지 확인하고 싶다면 이노에스제이(주) info@innosj.com 로 문의하십시오!

저희는 현재 지원되지 않는 경우에 대부분 ​​무료 포팅서비스를  제공하고 있습니다.

EUSBD는 USB 1.0, 1.1, 2.0 시스템(Low,Full and High speed)을 지원합니다. 
4개의 End Point 타입인 제어, 인터럽트, 벌크 및 주기성(등시)[Control, Interrupt, Bulk, Isochronous]을 지원합니다.

HCC는 클래스 드라이버 설정과 일치된 타겟보드에 완전하게 작업중인 프로젝트와 같이 EUSBD를 우선적으로 제공하여 우리 고객에게 매우 깔끔한 시작과 개발을 위한 좋은 기반을 제공하고 있습니다.

모든 HCC소프트웨어와 마찬가지로 EUSBD는 최소의 노력으로 포팅되도록 설계되었습니다.
EUSBD는 전체 ANSI C 소스코드와 함께 Royalty-free 라이센스입니다.

EUSBD는 HCC의 OS 추상화 레이어와 함께 동작하도록 설계되었습니다. 이것은 거의 대부분의 RTOS를 지원하며 RTOS가 없는 경우에도 동작합니다.  HCC는 대부분의 표준 RTOSes에 대한 통합버젼을 제공합니다.

 

USB – AUDIO

EUSBD-AUDIO는 USB 호스트 디바이스(PC) 또는 오디오 입력 데이터를 전송할 때(마이크, USB 호스트), 임베디드 디바이스에서 오디오를 재생하는 것을 가능하게 합니다.  그것은 오디오 컨텐츠를 전송하기 위해서 등시 끝점[Isochronous End Point]을 사용합니다. 등시 끝점[Isochronous End Point]은 응용 프로그램에 일정한 대역폭을 제공합니다. 이것은 실시간 데이터를 전송할 때 필수적입니다.

HID 클래스 드라이버(볼륨, 밸런스 등)는 오디오 장치 제어에 사용됩니다.
기본적으로, 시스템은 PCM 데이터의 형태에서만 원시[raw] 오디오 포멧을 지원합니다. 다른 형식은 요청하여 지원될 수 있습니다.

지원 샘플링 속도는 타겟 하드웨어 및 설계 요구 사항에 따라 달라지고, 동시 오디오 채널의 숫자는 타겟 디바이스의 끝점 구성에 의해서 제한됩니다.

표준 EUSBD 오디오 패키지는 USB 호스트(마이크 입력 데이터)에 의해서 재생되는  채널 백 오디오 데이터의 데모를 포함합니다.
이것은 오디오 입력과 출력에 대한 안정적인 테스트 플랫폼을 제공됩니다.

HCC는 마이크와 스피커를 위한 미리 테스트된[Pre tested] 프로젝트를 제공할 수 있습니다.
많은 경우에 이 프로젝트는 타겟 하드웨어 및 설계 요구사항과 일치하도록 조정하는 것이 필요합니다.

 

USB Device – Bootloader

BL-EUSBD-XXX는 USB 연결을 통해 호스트 응용 프로그램에서 (새 코드 이미지를 로드하는) 부트로더를 구성하는 데 사용되는 bootstub입니다.  그것은 오버헤드를 최소화하기 위해 HCC의 EUSBD 디바이스 스택의 특별한 버전과 간단한 전송 프로토콜을 사용합니다.

일반적인 사용방법은 타겟 디바이스의 ROM상에 bootstub를 이용하여 BL-EUSBD-XXX를 설치합니다. 
 
Supported targets include the following:
AT91SAM7, AT91SAM9xxx, AT91RM9200
LPC214x, LPC2368, LPC2468
MCF5329, MCF5222x
SR7, STR9
MAX3421e, integrated with several microcontrollers.
지원하는 마이크로 컨트롤러 또는 포팅 문의에 대한 요청은 이노에스제이(주) info@innosj.com 로 문의하십시오!
 
호스트측면 개발자는 다운로드 프로그램에 대한 몇가지 옵션:
1. libusb와 동작하는 HCC의 샘플 어플리케이션을 무료로 자유롭게 사용하십시오!
2. HCC의 USB 임베디드 파이프와 무료 샘플 어플리케이션 중 하나를 사용하십시오!
3. Microsoft사의 Winusb와 같은 다른 일반적인  USB 호스트 인터페이스를 사용하십시오! 

BL-EUSBD-XXX typically requires <4K for code and <1K of RAM on an ARM7 device.

USB Device – Communication Device Class

 
HCC의 CDC class driver는 표준 시리얼 통신 포트를 지원하는데 사용됩니다.
API는 임베디드 어플리케이션을 위한 가상의 통신포트 또는 실제 시리얼 포트 등을 지원하고 있습니다.

샘플 어플리케이션은 USB 인터페이스의 통신포트를 통해서 표준 윈도우즈 터미널 프로그램(Hyper Term)에 의해서 제어할 수 있는 임베디드 Command line 터미널을 제공합니다.

두가지 방법에 의한 구현은 일반적인 개발보드의 다양한 작업 프로젝트를 제공받거나 HCC의 USB를 사용한 uCDrive 개발보드를 제공받아 구현할 수 있습니다.

 

USB Device – HID

EUSBD-HID 는 USB 디바이스에서 휴먼 인터페이스 디바이스 클래스를 사용하기 위한 Suite입니다.

The HID class is used for sending pre-defined reports both from the device to the host and from the host to the device. A report is effectively a structure containing an array of bits that can be defined as required by the application.

The standard EUSBD-HID package includes four USB device implementations:

  • Keyboard
  • Mouse
  • Joystick
  • Generic

The HID class uses interrupt end points for standard reports and the control end point for feature reports.

HCC includes a sample program for Windows (with full source available in C++ or C#). The sample program allows reports to be read and written.


USB Device – MASS STORAGE CLASS

A full USB mass storage class is available, together with optimized drivers for accessing SD/MMC cards and other devices.

 
HCC’s USB mass storage class is fully compatible with its SafeFAT, FAT and THIN file systems. Complete projects with the mass storage class and the SafeFAT, FAT and THIN file systems can be provided for a large variety of platforms.
 
Integrated solutions for connecting mass storage to NAND flash or Atmel DataFlash can be configured by using HCC’s SafeFTL or DFML flash translation layers.

USB Device – RNDIS

EUSBD-RNDIS is a class driver implementation that allows embedded devices to connect to hosts over USB and to appear as a standard network card. 
 
The EUSBD-RNDIS class driver includes a virtual Ethernet driver. The virtual Ethernet driver has a simple API that facilitates easy integration with any TCP/IP stack, or to another Ethernet driver interface.
 
Once connected to the USB host device – typically a PC – the embedded device appears as a standard network card to the host. For example, if a TCP/IP stack on the embedded device is attached to the virtual Ethernet driver of EUSBD-RNDIS, then a web-server on the embedded device can be accessed either directly from the host PC, or by devices connected to the same network as the host PC.
 
EUSBD-RNDIS conforms to HCC’s USB Device interface specification. It is compatible with all HCC’s EUSB Device drivers.