Comunicaciones en un bus serie...

22
1 Curso Intensivo de Sistemas Embebidos Febrero 2011 Ing. Pablo Martín Gomez Interfaces 2 Comunicaciones en un bus serie 3 UART Universal Asynchronous Receiver Transmitter Estándar de comunicación implementado en los 60’s Simple, universal, bien entendido, mucho soporte Estándar de comunicación de baja velocidad: hasta 1 Mbits/s La señal de clock no está incluida en los datos: Emisor y Receptor deben acordar parámetros de “timing” por adelantado Los bits de “Start” y “Stop” bits indican datos a enviar Puede enviarse información de paridad 4 Comunicaciones en un bus serie Una red punto a punto no requiere la señal de control “Select” Una comunicación asincrónica no tiene señal de Clock Dependiendo del protocolo, las señales de Data, Select y R/W pueden compartir la misma línea Solamente el “master” puede comenzar una comunicación. Los slaves (esclavos) solamente `hablan cuando se les habla`

Transcript of Comunicaciones en un bus serie...

Page 1: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

1

Curso Intensivo de Sistemas EmbebidosFebrero 2011

Ing. Pablo Martín Gomez

Interfaces

2

Comunicaciones en un bus serie

3

UARTUniversal Asynchronous Receiver TransmitterEstándar de comunicación implementado en los 60’sSimple, universal, bien entendido, mucho soporteEstándar de comunicación de baja velocidad: hasta 1 Mbits/sLa señal de clock no está incluida en los datos: Emisor y Receptor deben acordar parámetros de “timing” por adelantadoLos bits de “Start” y “Stop” bits indican datos a enviarPuede enviarse información de paridad

4

Comunicaciones en un bus serieUna red punto a punto no requiere la señal de control “Select”Una comunicación asincrónica no tiene señal de Clock

Dependiendo del protocolo, las señales de Data, Select y R/W pueden compartir la misma líneaSolamente el “master” puede comenzar una comunicación. Los slaves(esclavos) solamente `hablan cuando se les habla`

Page 2: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

5

Comunicaciones en un bus serie

6

SPISerial Peripheral Interface (SPI) es una conexión de datos serial sincrónica de 4 líneas full‐duplex:

SCLK: Serial ClockMOSI: Master Out Slave In (Datos del Master al Slave)MISO: Master In Slave Out (Datos del Slave al Master)SS: Slave Select (Selección de Slave)

Desarrollado originalmente por MotorolaUtilizado para conectar los periféricos entre sí y con los microprocesadoresSe necesitan “3 + n” líneas siendo n = número de dispositivosSolamente un master activo a la vezVarias velocidades de transmisión (función del clock del sistema)

7

SPI ‐ Configuración

Esquema de transmisión simple: 8 o 16 bitsComunicaciones Full duplexEl número de líneas es proporcional al número de dispositivos del bus

8

I²C ‐ (Inter‐IC)Bus desarrollado por Philips en los 80’sBus simple y bi‐direccional de 2 líneas:

serial data (SDA)serial clock (SCL)

Se ha convertido un estándar de la industria y es utilizado por las mayores productores de circuitos integrados (IC)Bus con capacidad Multi‐master (arbitraje)Comunicación Master‐Slave; Solamente entre dos dispositivosCada IC en el bus se identifica a través de su propia dirección El slave puede ser:

Únicamente un dispositivo receptorTransmisor con la capacidad de recibir y transmitir datos

Page 3: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

9

I²C ‐ Velocidad

10

I²C – condiciones de START/STOPLos datos en SDA tienen que ser estables con SCL en alto

Las excepciones son las condiciones de START y STOP

11

I²C ‐ DireccionamientoCada dispositivo está direccionado individualmente por softwareÚnica dirección por dispositivo: 

fijo o con una parte programable a través de pines de hardwarevarios dispositivos pueden compartir el mismo bus

Distribución de direcciones coordinado por I2C‐bus committee

12

I²C – formatos de 7‐bit y 10‐bitEl 1º byte después del START determina la dirección del slaveAlgunas excepciones a la regla:

dirección “General Call”: 0000 000 + R/W = 0direccionamiento slave de 10‐bit: 1111 0XX + R/W = X

Direccionamiento de 7‐bits

Direccionamiento de 10‐bits

Page 4: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

13

I²C – Operaciones Lectura / EscrituraEscritura a un dispositivo slave

Lectura de un dispositivo slave

14

I²C – Operaciones Lectura / EscrituraAcknowledge

Es efectuado en el 9no pulso de clock y es obligatorioEl transmisor libera la línea SDAEl receptor pone en bajo la línea SDA (SCL tiene que estar en alto)La transferencia se aborta si no hay acknowledge (ojo con debug!)

15

I²C – ArbitrajeDos o más masters pueden generar una condición de START al mismo tiempoEl arbitraje se efectua sobre la línea SDA mientras SCL está en alto

Los slaves no están involucrados

16

I²C – Sincronización del ClockTodos los masters generan su propio clock sobre la línea SCL para transmitir sus mensajes sobre el bus I2CUn clock definido es necesario para que el arbitraje bit a bit pueda ocurrirLa sincronización del clock es efectuada a través de una compuerta AND en las interfaces I2C a la línea SCL

El período bajo es determinado por el dispositivo con más largo período bajo El período alto es determinado por el dispositivo con más corto período alto

Page 5: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

17

I²C – Manejando I²C Hay 3 maneras básicas de manejar el bus I²C:Con un microcontrolador con interfaz I²C on‐chip

Bit oriented ‐CPU interrumpido después de cada transmisión de bitByte oriented ‐CPU puede ser interrumpido después de cada transmisión de byte

Con cualquier microcontrolador: 'Bit Banging’El protocolo I²C puede ser emulado bit a bit a través de cualquier puerto open drain bi‐direccional

Con un microcontrolador en conjunto con un integrado interfaz paralelo / bus I²C

18

I²C – Conflicto de direccionamientoCuando un dispositivo no puede cambiar su dirección I²C (fijo), solamente uno de su tipo puede estar conectado al bus

Un multiplexor I2C puede ser utilizado para eliminar esta limitaciónpermite dividir dinámicamente el bus principal I2C en varias sub‐ramas de modo de poder comunicarse con uno a la vezprogramable a través de I2C: sin pines adicionales de controlmás de un multiplexor puede conectarse al mismo bus I2C

19

I²C – PCA9548Precio: 1.28 U$S (Mouser)8‐channel I2C‐bus switch with reset

20

El espacio Wireless 802

Page 6: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

21

802.15.4 y ZigBeeEl estándar 802.15.4 define la capa de comunicación en el nivel 2 e inferiores del modelo OSI

Las frecuencias definidas en el estándar están esparcidas en 27 canales diferentes divididos en 3 bandas principales

868.0 ‐ 868.6MHz   ‐> 20/100/250 kbps ‐ > 1 canal (Europa)902.0‐928.0MHz     ‐>  40/250 kbps ‐ > 10 canales  (USA)2.40‐2.48GHz         ‐>  250 kbps ‐ > 16 canales  (Internacional)

El estándar ZigBee define la capa de comunicación en el nivel 3 y superiores del modelo OSI

22

802.15.4 – Características analógicasUtiliza Direct Sequence Spread Spectrum (DSSS) para modular la información antes de ser enviada a la capa físicaCada bit de información a transmitir se modula en 4 señales diferentes Este proceso ocasiona que el total de la información ocupe un mayor ancho de banda con menor densidad espectral de potencia

Hay diferentes tipos de modulacionesDSSS

Binary Phase Shift Keying (BPSK)Offset Quadrature Phase Shift Keying (O‐QPSK)Parallel Sequence Spread Spectrum (PSSS) 

23

ZigBee ‐ Características analógicas

Zigbee, descansa sobre 802.15.4 que tiene una excelente performanceen entornos con baja relación S/R

24

802.15.4 ‐ CaracterísticasDefine las capas LLC, PHY y MAC sobre las cuales ZigBee descansaSoporta topologías de red estrella o peer‐to‐peer (tree or mesh) Mecanismo de acceso al canal: Carrier Sense Multiple Access withCollision Avoidance (CSMA‐CA)Dos tipos de nodo:

dispositivo de función reducida (RFD)dispositivo de función completa (FFD)

Área de cobertura (POS = personal operating space): en el órden de los 10 metros (puede ser mayor)Escaneo de energía del canal

para saber cuanta energía (actividad/ruido/interferencias) hay en uno o varios canales antes de comenzar a utilizarlo se puede ahorrar energía eligiendo canales libres al configurar una red 

Page 7: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

25

802.15.4 – CSMA‐CAA diferencia de CSMA/CD (Carrier Sense Multiple Access/CollisionDetect) actúa previniendo las colisiones antes de que ocurran

Chequea que el canal esté libre (se supone que hay otro nodo transmitiendo si la energía es mayor a un nivel específico)Si el canal está libre el paquete se envíaSi el canal no está libre, el nodo espera un periodo de tiempo aleatorio (backoff factor), y luego vuelve a chequearSi el canal no está libre cuando el contador de backoff llega a cero, el mismo se reinicia y el proceso se repite

26

ZigBeeZigBee ofrece básicamente 4 tipos diferentes de servicios:

Servicios de extra encriptación: la capa de aplicación y red implementan encriptación AES de 128bAsociación y autenticación: solamente los nodos válidos pueden unirse a la redProtocolo de ruteo – AODV: utiliza un enfoque on‐demand para encontrar rutas, un protocolo ad hoc reactivo es implementado para desempeñar el proceso de ruteo y reenvío de los datos a cualquier nodo de la redServicios de aplicación: Se introduce el concepto de “cluster”

Cada nodo pertence a un cluster predefinido y puede efectúar un número predefinido de accionesPor ejemplo, el “cluster del sistema de luz” puede realizar dos acciones: “prender las luces” o “apagar las luces”

27

ZigBee ‐ RedZigBee es una capa pensada para organizar la red

Lo primero que hace un nodo (router o dispositivo) que quiere unirse a la red, es pedir al coordinador una dirección (16b), como parte del proceso de asociaciónTodo la información en la red es ruteada utilizando esta dirección y no la MAC address (64b) . En este paso, los procedimientos de autenticación y encriptación se llevan a cabo

Una vez que un nodo se ha unido a la red puede enviar información a los demás nodos a través de los routers

El router recibe el paquete y Chequea que el destino esté en su radio de señalChequea si el dispositivo destino está despierto o dormido

Si está despierto, le envía el paquete Si está dormido, guarda el paquete hasta que el dispositivo destino se despierte y pregunte por noticias al router 28

ZigBee ‐ RedHay tres tipos diferentes de nodos en una red ZigBee

Coordinador: es el dispositivo master y gobierna toda la redRouters: rutean la información a los dispositivos finalesDispositivos finales (motes): por ejemplo nodos sensores que toman información del ambiente

Solamente los “motes” pueden ser alimentados a través de bateríasZigBee utiliza topologías estrellaReglas:

Los “motes” se conectan a un router o al coordinadorLos routers pueden conectarse entre ellos y con el coordinadorLos routers y coordinadores no pueden dormir. Tienen que guardar en su buffer los paquetes que van hacia los “motes”Los “motes” pueden dormir

Page 8: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

29

ZigBee ‐ RedLas redes “Mesh” recaen en comunicaciones ad hoc, también llamadas  peer to peer (P2P):

los dispositivos de la red pueden comunicarse entre ellos directamentetienen que ser capaces de descubrir a los demás y mandar mensajes broadcast a todos los dispositivos

ZigBee crea una red estrella, en vez de una meshPara crear una red mesh completa todos los nodos deben tener el mismo rol: “dispositivos finales + routers"

30

ZigBee ‐ XbeeXBee® / XBee‐PRO® RF Moduleshttp://www.digi.com/

31

CAN – Controller Area NetworkIntroducido en 1983 por Robert Bosch para hacer frente a la creciente complejidad en funciones vehiculares y redesUn vehículo moderno puede tener tanto como 70 unidades de control electrónicas (ECU) para variossubsistemas (audio, levantavidrios, airbag...)

32

CAN ‐ Introducción

Page 9: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

33

CAN ‐ TecnologíaProtocolo multi‐maestro sobre un bus serie El número de nodos no esta limitado por el protocoloNo se direcciona NODOS. Se identifican MENSAJES y PRIORIDADEl protocolo utiliza codificación NRZ con bit stuffing para sincronizaciónControl de acceso al medio CSMA/CR (arbitraje NO DESTRUCTIVO). Cada nodo puede recibir y enviar mensajes pero no de manera simultáneaCada nodo tiene su propio clock y el clock no se transmite por la red CAN

34

CAN – Bit stuffing

35

CAN ‐ ArbitrajeEl “arbitraje” es automático. El mensaje con mayor prioridad va a ganar el arbitraje del bus

Mientras dura el arbitraje, cada nodo transmisor monitorea el estado del bus y compara el bit recebidocon el transmitidosi se recibe un dominante al enviar un recesivo, entonces se deja de transmitir y vuelve a intentar 6 ciclos después de terminado el mensaje dominante

36

CAN ‐ Arbitraje

Page 10: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

37

CAN ‐ Arbitraje

38

CAN ‐ TramasExisten dos tipos de formato que se identifican en el campo IDE:

Básico: identificador de 11 bits (2048  id´s)Extendido: identificador de 29 bits (536 M id´s)

Tipos de tramas:DATOS: Se utiliza para enviar datos de un nodo a otro(s). Es el tipo de trama que más frecuentemente circula en una red CAN.REMOTA: Se utiliza para solicitar una trama de datos con el ID especificado. Esta trama no contiene datos.ERROR: Si un nodo detecta un error en la red, envía una trama de error e invalida la trama en cuestión en todos los nodos. La trama deberá ser retransmitida.SOBRECARGA: La utilizan los nodos para pedir tiempo adicional antes del comienzo de la próxima trama. Un máximo de 2 tramas de sobrecarga pueden ser generadas por un nodo.INTERTRAMA: Es el espacio entre una trama de datos o remota y laprecedente. Este espacio es provisto para permitir a los nodos realizar procesamientos internos antes del comienzo de la próxima trama.

39

CAN ‐ Tramas

40

CAN ‐ Tramas

Page 11: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

41

CAN ‐ Tramas

42

CAN – Tipos de erroresCRC: No coinciden el código de redundancia cíclica (CRC) calculado por el transmisor y el calculado por el receptor. El nodo receptor descarta la trama y transmite una trama de error. Sólo realizado por nodo receptor.

ACK: Error de reconocimiento, detectado por el transmisor. El transmisor no detecta el reconocimiento en el campo ”SLOT ACK”, indicando que ningún nodo recibió la trama correctamente. Se produce un error de reconocimiento (ACK) se retransmite la trama, pero NO se genera una trama de error.

FORMA: Se produce si se detecta un bit dominante en los siguientes campos:Delimitador de CRC.Delimitador de ACK.Fin de trama.

Se transmite una trama de error.

BIT: El bit transmitido es diferente del bit monitoreado. No se realiza en los campos de arbitraje si el bit transmitido es recesivo ni tampoco en el slot de reconocimiento. Se transmite una trama de error y se retransmite la trama. Sólo realizado por nodo transmisor.

STUFFING: Se detectan 6 bit consecutivos de igual polaridad entre el comienzo de trama y eldelimitador de CRC. Se envía una trama de error.

43

CAN – Confinamiento de fallas

44

CAN – Velocidad

Page 12: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

45

CAN – Estándar ISO 11898

46

CAN – TransceiverPrecio: 1,33 U$S (Mouser)

47

USB ‐ HistoriaIntroducido y estandarizado por un grupo de compañias Compaq, DEC, IBM, Intel, Microsoft, NEC, HP, Lucent, Philips y Nortel) en 1995La idea fundamental fue la de reemplazar la gran cantidad de conectores disponibles en la PC´ssimplificando la conexión y configuración de dispositivos logrando grandes anchos de banda

48

USB ‐ HistoriaExisten 3 versiones de USB

USB 1.0 Enero 1996Velocidades de 1.5 Mbps hasta 12 Mbps

USB 1.1 Septiembre 1998Primer versión popular de USB

USB 2.0 Abril 2000La principal mejora es la inclusión de una tasa de transferencia de alta velocidad de 480 Mbps

USB 3.0 Noviembre 2008Tasa de transferencia de 5 Gbps

Page 13: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

49

USB ‐ IntroducciónUSB significa “Universal Serial Bus”Controlado por “Host” (solamente uno por bus)

On‐the‐Go (Protocolo de negociación de host) – permite a dos dispositivos negociar el rol de host

Topología estrellaSe pueden utilizar hubs para dividir alta y baja velocidad

Hasta 127 dispositivos pueden ser conectados a un bus USB en cualquier momentoUtiliza 4 líneas malladas: 2 son de alimentación (+5v & GND) y los otros 2, un par trenzado donde las señales se transmiten en modo diferencial

50

USB ‐ IntroducciónUtiliza codificación NRZI para enviar los datos con un campo de sincronización para sincronizar el clock del host y el receptorSuporta plug’n’plug con drivers que son cargados dinámicamente ‐ PID/VID (Product ID/Vendor ID)USB soporta diferentes modos de transferencia:  Control, Interrupción, Masiva e IsócronaLa alimentación se transporta por el Bus

USB distribuye la alimentación a todos los dispositivos conectados, eliminando la necesidad de una fuente externa para dispositivos de bajo consumo

51

USB ‐ ConectoresLos conectores a cada lado del cable no son mecánicamente intercambiables

El conector tipo A siempre se conecta “aguas arriba”. En general los encontramos en hosts y hubs.El conector tipo B siempre se conecta “aguas abajo”. Los encontramos en dispositivos.Los conectores mini y micro se utilizan para reducir espacio como teléfonos celulares.Los conectores micro‐AB son capaces de aceptar tanto conectores micro‐A como micro‐B.

52

USB – Alimentación y nivelesAlimentación

Entrega 5 V en una de las líneas (5 V±5%). La unidad de carga es 100mA (USB 2.0) y 150mA (USB 3.0).La máxima carga es 500 mA (USB 2.0) y 900 mA (USB 3.0).Los hubs alimentados por Bus solamente entregan 1 unidad de carga para los dispositivos.Los hubs alimentados autonomamente pueden entregar la máxima carga a todos los dispositivos.

Niveles lógicos‘1’ ‐ D+ 200mV mayor a D‐‘0’ ‐ D+ 200mV menor a D‐

Page 14: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

53

USB ‐ VelocidadUn dispositivo USB debe indicar su velocidad llevando D+ o D‐ a 3.3 volts.Sin resistencia de pull‐up, USB asume que no hay nada conectado al Bus.

En el modo “high speed” el dispositivo primero se conecta en modo “full speed”, luego se remueve el resistor de pull‐up para balancear la línea

54

USB – Paquetes de datosA diferencia de RS‐232 o interfaces serie similares donde el formato de los datos a ser enviados no estádefinido, USB posee varias capas de protocolosCada transacción USB consiste en:

Paquete Token (encabezado que define lo que se espera a continuación)Paquete de datos (opcional ‐ contiene el payload) Paquete de Status (Usado como acknowledge en las transacciones y como una forma de corregir errores)

55

USB ‐ Campos del paqueteSync

Todos los paquetes deben comenzar con un campo de “sync”utilizado para sincronizar el clock receptor con el transmisor

PID (Packet ID) Utilizado para identificar el tipo de paquete que está siendo enviado (4 bits complementados)

ADDR (Address field)Especifica a que dispositivo va dirigido el paquete Teniendo un tamaño de 7 bits permite soportar 127 dispositivosLa dirección cero no es válida ya que cualquier dispositivo al que todavía no se le asignado una dirección debe responder los paquetes enviados a ésta

56

USB ‐ Campos del paquete ‐ PID

Page 15: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

57

USB ‐ Campos del paqueteENDP  (Endpoint field)

Formado por 4 bits permite 16 posibles “endpoints”

CRC (Cyclic Redundancy Check)Efectuado en los datos contenidos en el “payload” del paquete. Todos los paquetes “token” tienen un CRC de 5 bits mientras que los de datos tienen un CRC de 16 bits

EOP (End of packet)Señalizado a través de un “Single Ended Zero” (SE0 / D+ and D‐ se mantienen bajos) por aproximadamente el tiempo de 2 bits seguido por una J (estado lógico, el significado depende de la velocidad) durante el tiempo de 1 bit

58

USB ‐ Tipos de paquetePaquetes “Token”

In – Informa al dispositivo USB que el “host” desea leerinformaciónOut – Informa al dispositivo USB que el “host” desea enviarinformaciónSetup – Utilizado para comenzar transferencias de control

Paquete de datosDos tipos. Cada uno capaz de transmitir de 0 a 1023 bytes de datos

59

USB ‐ Packet typesPaquetes de “Handshake”

ACK (Acknowledgment) – Confirmación de que el paquete fue recibido exitosamenteNAK – Reporta que el dispositivo no puede enviar ni recibir datos temporalmente. También utilizado durante las transacciones de interrupción para informar al “host” que no hay datos para enviarSTALL – El dispositivo se encuentra en un estado que requiere la intervención del “host”

Paquetes de comienzo de “frame” (SoF)El número de frame (11 bits) es enviado por el “host” cada 1mS ±500nS

60

USB ‐ FuncionesFunciones USB

Pueden verse como dispositivos USB que proveen capacidades o funciones tales como impresora, escáner, lector de memorias u otro periférico

Page 16: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

61

USB ‐ EndpointsEndpoints

Pueden describirse como fuentes o sumideros de datosTodos los dispositivos deben soportar al “endpoint” cero

PipesSon las conexiones lógicas entre  “host” y “endpoint(s)”Tienen una serie de parámetros:

Ancho de banda asignadoTipo de transferencia: 

Control, Másiva (Bulk), Isócrona o InterrupciónDirección del flujo de datosTamaño máximo de paquetes/buffer

62

USB – Transferencias de controlLas transferencias de control son típicamente utilizadas para operaciones con comandos y de statusUna transferencia de control puede tener hasta tres etapas

Etapa “Setup”: donde la petición es enviada. Contiene la dirección y el número de endpointEtapa de datos (opcional): consiste en una o multiplestransferencias IN / OUT Etapa de “Status“: informa el status de la totalidad de la petición. Varia en función de la dirección de la transferencia

63

USB – Transferencias de controlFormato de transferencia de control

acknowledge

endpoint error

working but nothing to send

acknowledge

buffer not empty

error

64

USB – Transferencia de InterrupciónEl dispositivo que requiere atención debe esperar que el “host”le “encueste” antes que pueda informar que necesita atenciónCaracterísticas

Latencia garantizadaFlujo del “pipe”: UnidireccionalDetecciones de errores y re‐proceso en próximo período

Interrupción INEl “host” encuesta periódicamente al endpoint. La frecuencia con que encuesta está especificada en el descriptor del endpoint. Cada encuesta implica que el “host” envíe un IN Token

Interrupción OUTCuando el “host” desea enviar al dispositivo datos de interrupción, solicita un OUT token seguido por un paquete de datos que contiene los datos de interrupción

Page 17: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

65

USB – Transferencia de InterrupciónFormato de transferencia de interrupción

66

USB – Transferencia IsócronaLas transferencias isócronas ocurren continua y periódicamente. Típicamente contienen información sensible al tiempo, como flujo de video o audioCaracterísticas

Ancho de banda USB garantizadoLatencia acotadaFlujo del “Pipe”: UnidireccionalDetección de errores vía CRC, pero sin re‐proceso ni garantía de entregaDisponible solamente en modos “full speed” y “high speed”

Las transferencias isócronas no tienen etapa de “handshaking” y no pueden reportar errores o condiciones de STALL/HALT

67

USB – Transferencias masivasUtilizado para envío masivo de datos (Ej.: datos de impresión enviados a una impresora o datos de una imagen generados por un escáner)Características 

Corrección de errores (Campo CRC16 en el “data payload”)Detección de errores / mecanismos de re‐transmisión

Utiliza espacio no asignado del ancho de banda del bus después que todas las otras transacciones han sido asignadas

Solamente utilizado en comunicaciones no sensibles al tiempo debido a que no hay garantías respecto a la latencia

Disponible solamente en modos “full speed” y “high speed”

68

USB – DescriptoresTodos los dispositivos USB tienen una jerarquía de descriptores que definen al “host” información tal como: 

que es el dispositivoquien lo fabricóque versión de USB soportade cuantas formas puede configurarseel número de endpoints y sus tipos

Los descriptores USB más comunes sonDescriptores de dispositivo (Device descriptors)Descriptores de configuración (Configuration Descriptors)Descriptores de interfaz (Interface Descriptors)Descriptores de Endpoint (Endpoint Descriptors)Descriptores de String (String Descriptors)

Proporciona información humanamente legible y son opcionales

Page 18: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

69

USB – Descriptores

70

USB – Descriptores de dispositivoEl descriptor de dispositivo del dispositivo USB representan a la totalidad del mismo por lo tanto, sólo puede tener unoContienen

la versión de USB soportadael máximo tamaño de paqueteidentificación de proveedor y producto el número de posibles configuraciones que el dispositivo puede tener

Ejemplo: bDeviceClass, bDeviceSubClass y bDeviceProtocol son utilizados por el sistema operativo para encontrar un driver para el dispositivo Generalmente solo bDeviceClass es especificado en este nivelSe suelen especificar los demás parámetros a nivel de interfaz. Esto permite que un mismo dispositivo soporte múltiples clases

71

USB – Descriptores de configuraciónUn dispositivo USB puede tener diferentes configuraciones. De todas formas, la mayoría de los dispositivos son simples y solamente tienen una Especifica 

como se alimenta el dispositivocual es el máximo consumo de potenciael número de interfaces que tiene

Por lo tanto, es posible tener dos configuraciones: una para el dispositivo siendo alimentado por el bus y otra cuando lo hace externamente. Como este es el “encabezado” de los descriptores de interfaz, es también posible tener para cada una de las configuraciones, diferentes modos de transferencia

72

USB – Descriptores de configuración

Page 19: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

73

USB – Descriptores de interfazPueden ser vistos como “headers” de los endpoints en grupos funcionales que desarrollan una misma función en el dispositivo

74

USB – Descriptor de endpointEl endpoint cero siempre se asume como de controlEl “host” utilizará la información devuelta por estos descriptores para definir los requerimientos de ancho de banda del bus

75

USB – EnumeraciónEnumeración es el proceso para determinar que dispositivo se ha conectado al bus1. El “host” o hub detecta que se ha conectado un nuevo dispositivo a través de los 

resistores de pull up en el par de datos2. El “host” solicita un reset (SE0 por 10 ms) ubicando al dispositivo en el estado 

default. El dispositivo ahora puede responder a la dirección default cero3. MS Windows “host” pregunta por los primeros 64 bytes del descriptor de 

dispositivo4. Luego de recibir los primeros 8 bytes solicita un nuevo reset del bus5. El “host” ahora ejecuta el comando que setea una dirección (Set Address). De 

esta forma el dispositivo se ubica en el estado “direccionado”6. El “host” pregunta por los restantes bytes del descriptor de dispositivo7. Luego pregunta por los 9 bytes del descriptor de configuración para determinar 

su tamaño total8. El “host” pregunta por los 255 bytes del descriptor de configuración9. El “host” pregunta por el descriptor de string si existe10. Al final del paso 9, Windows nos va preguntar por un driver para el dispositivo

76

USB – FT232Precio: 4,50 U$S (Mouser)

Page 20: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

77

USB –Stacks de dispositivosStacks de dispositivos para LPC2300/2400/214x

Keil RL‐USB:http://www.keil.com/arm/rl‐arm/rl‐usb.asp

Micrium µC/USB Devicehttp://www.micrium.com/products/usb/usb‐device/overview.html

Micro Digital smxUSBDhttp://www.smxrtos.com/rtos/usb/smxusbd.htm

HCC Embedded USB (EUSB) Device Stackhttp://www.hcc‐embedded.com/site.php?mid=120

CMX‐USBhttp://www.cmx.com/cmx_usb.pdf

Express Logic USBXhttp://www.rtos.com/page/product.php?id=6

78

USB 3.0Upgrade del USB 2.0

retro‐compatibleTambién llamado “SuperSpeed” USB por la significante mejora respecto a especificaciones USB existentesNuevo protocolo de comunicación para dispostivosNuevos modos de transferenciaNuevas formas de administrar la alimentaciónMayor longitud de cable permitidaSimilar a al tecnología PCI Express 2.0

79

USB 2.0 vs. USB 3.0 – HardwareUSB 2.0 USB 3.0

El cable es más delgadoTiene 4 líneasModo de transferencia de datos “half‐duplex”

El cable se parece al utilizado en Ethernet debido a su grosorTiene 8 líneas

Tres pares trenzados para datos y un par para alimentación

Modo de transferencia de datos “Full‐duplex”

80

USB 2.0 vs. USB 3.0

Page 21: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

81

USB 2.0 vs. USB 3.0

82

USB 2.0 vs. USB 3.0Aunque la especificación de USB 3.0 esta diseñada para retro‐compatibilidad con USB 2.0, los cables USB 3.0 no son compatibles con el conector regular de  USB 2.0

83

USB 3.0 vs. otros estándaresFireWire 800 tiene como máxima tasa de transferencia: 800 MbpseSATA bus tiene una máxima tasa de transferencia de  3.2 GbpsEjemplo:

Intel mostró que la transferencia de una película de 25 GB HD demoró 70 segundos utilizando un bus USB 3.0 contra 4 horas a través de USB 2.0

84

Fuenteshttp://www.nxp.com/documents/other/design_con_2003_tecforum_i2c_bus

_overview.pdfDesignCon 2003 TecForum I2C Bus Overview

Apunte Comunicaciones Industriales – Roberto Sacohttp://en.wikipedia.org/wiki/Controller_area_networkhttp://www.embedded.com/design/networking/220900314 

CAN in 30 minutes or lesshttp://www.embedded.com/showArticle.jhtml?articleID=13000304 

A short trip on the CAN bushttp://www.ee.kth.se/commth/projects/CROPS/docs/GeirZigBee010206.pdf

ZigBee ‐ A brief introductionhttp://en.wikipedia.org/wiki/ZigBeehttp://sensor‐networks.org/index.php?page=0823123150

802.15.4 vs ZigBeehttp://www.beyondlogic.org/usbnutshell/usb‐in‐a‐nutshell.pdf

usb in a nutshell

Page 22: Comunicaciones en un bus serie Interfaceslaboratorios.fi.uba.ar/lse/curso_intensivo/presentaciones/... · yUna red punto a punto no requiere la señal de control ... compartir la

85

Fuenteshttp://www.usblyzer.com/brief‐usb‐overview‐and‐history.htmhttp://arstechnica.com/old/content/2007/09/intel‐announces‐

demonstrates‐usb‐3‐0.arshttp://news.zdnet.com/2100‐9595_22‐262047.htmlhttp://arstechnica.com/hardware/news/2008/11/usb‐3‐0‐specification‐

finalized‐devices‐in‐2010.arshttp://www.usb.orghttp://techon.nikkeibp.co.jp/english/NEWS_EN/20090310/166949/http://www.reghardware.co.uk/2008/01/09/ces_usb_3_revealed/http://arstechnica.com/old/content/2007/09/intel‐announces‐

demonstrates‐usb‐3‐0.arshttp://en.wikipedia.org/wiki/Usbhttp://news.cnet.com/8301‐17938_105‐9780794‐1.htmlhttp://thefutureofthings.com/news/5739/25gb‐in‐70‐seconds‐with‐usb‐3‐

0.htmlhttp://www.intel.com/pressroom/archive/releases/20080813corp.htm