Descargar el tutorial completo

Anuncio
DISEÑO DE UNA
APLICACIÓN USB
www.edudevices.com.ar
Conocimientos de base
Programación de microcontroladores (
ensamblador y C ).
Conceptos básicos de USB.
Programación visual bajo Windows.
¿Qué es USB?
Host
Dispositivo
Topología
Velocidades
Low speed: 1,5Mb/s. Mouse
Full speed: 12Mb/s. Audio.
High speed: 480Mb/s. Video.
Transferencias
Isócronas.
Bulk.
Interrupt.
Control.
EndPoints
Son canales de comunicación entre el
host y el dispositivo.
OUT
IN
La visión del usuario final
Host controller
Función del Device Driver
Función del Device Driver
Aislar a la aplicación de PC de los
detalles hardware.
Provee APIs.
Enumeración
Es una transferencia de información
que se produce al conectar por
primera vez un dispositivo.
VID, PID y Rev
Vendor ID. VID. Identifica al
fabricante. Ej: 0x15A2
Product ID. PID. Identifica al
producto. Ej: 0x0050
Rev: versión del dispositivo. Ej:
0x0100
Archivo INF
Con este archivo la computadora
puede encontrar el Device Driver.
New Hardware Found Wizard
GUID
Es el Global Unique IDentifier.
Lo encontramos en el archivo INF.
Lo utiliza el software de aplicación
para acceder al dispositivo USB.
¿Cómo se implementa una
aplicación USB?
Chips USB
Implementación Complejidad Libertad para
modificar
HACER EL
CONTROLADOR
USB DESDE CERO
USAR UN MCU
CON MÓDULO
USB
USAR UN
CONVERTIDOR
USB/COM
Altísima
Total
Media o baja
Amplia
Muy baja
Muy limitada
El microcontrolador
MC9S08JM60
Es un MCU de 8 bits.
Se puede programar con el USBMULTILINK de P&E.
Se puede programar con el RS-POD.
Tiene un módulo USB full speed.
Hasta 16 EndPoints disponibles.
Plaqueta DEMO 9S08JM60
64 pines disponibles.
Tiene un conector mini-USB.
Conector de programación integrado.
Alimentación USB o externa.
Características del firmware
ejemplo
Resuelve la enumeración.
VID: 0x15A2. ( Freescale )
PID: 0x0050. ( demo Freescale )
Rev: 0x0100
Manufacturer Name: Samuel Inc
Device Name: Super Device
Class: Vendor Specific
Class Name: Samuel Devices
Utiliza 4 endpoints.
Endpoints del firmware
Endpoint
Endpoint
Endpoint
Endpoint
1:
2:
3:
4:
Interrupt OUT
Interrupt IN
Bulk OUT
Bulk IN
Rutina básica USB
for( ; ;)
{
Check_USBBus_Status();
}
Transmitir por un Endpoint
Endpoint_IN(numero de endpoint, bytes a transmitir);
Driver WinUSB
Es parte de Windows.
Nos provee APIs para acceder a los
dispositivos USB.
El archivo INF debe indicar que el
driver es WINUSB.
No admite transferencias Isócronas.
Abrir una conexión USB
JM60.OpenConnection();
Disparar lectura de un EndPoint Interrupt
JM60.StartReadingInterruptEndPoint(endpoint, bytes);
Detener la lectura de un EndPoint Interrupt
JM60.StopReadingInterruptEndPoint();
Lectura del EndPoint
JM60.ReadInterruptEndPoint(numero de endpoint, bytes a leer);
Descargar