Está en la página 1de 62

CeTAD Facultad de Ingeniera - UNLP

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)


(Basado en Freescale HC08 y HCS08)

Ctedra de Circuitos digitales y Microprocesadores

Autores: Ing. Jorge R. Osio Ing. Luis Antonini Ing. Walter Arztegui Ing. Jos A. Rapallini

Septiembre de 2011
Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Versin 1.0
Pgina 1

INDICE.
1. Introduccin
1.1. Mdulos de Comunicacin disponibles en Microcontroladores 1.2. Mdulos Especficos de la Familia HCS08
1.2.1. SCI Serial Communications Interface 1.2.2. SPI Serial Periferal Interfaz 1.2.3. IIC Inter-Integrated Circuits 1.2.4. USB Universal Serial Bus

2. Interfaz de Comunicacin Serie (SCI)


2.1. Descripcin del Protocolo
2.1.1. Formato de Transmisin 2.1.2. Deteccin de error de Trama

2.2. Caractersticas del Mdulo SCI 2.3. Descripcin de la comunicacin serie mediante el Mdulo SCI 2.4. Diagrama en Bloques del Transmisor y Receptor 2.5. Registros de Configuracin del SCI
2.5.1. Registros SCI de Baud Rate 2.5.2. Registro de Control 1 (SCIxC1) 2.5.3. Registro de Control 2 (SCIxC2) 2.5.4. Registro de estados 1 (SCIxS1) 2.5.5. Registro de estados 2 (SCIxS2) 2.5.6. Registro de Control 3 (SCIxC3) 2.5.7. Registro de Datos (SCIxD)

3. Interfaz de Comunicacin Serie (SPI)


3.1. Descripcin del Protocolo SPI
3.1.1. Breve repaso de las comunicaciones seriales sincrnicas

3.2. Caractersticas Principales del Mdulo SPI 3.3. Descripcin funcional del mdulo SPI
3.3.1. Modo Master 3.3.2. Modo Slave

3.4. Diagrama en bloques 3.5. Registros de configuracin


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 2

3.5.1. Registro de control 1 (SPIxC1) 3.5.2. Registro de control 2 (SPIxC2) 3.5.3. Registro de Baud rate (SPIxBR) 3.5.4. Registro de Estados (SPIxS) 3.5.5. SPI Data Registers (SPIxDH:SPIxDL) 3.5.6. SPI Match Registers (SPIxMH:SPIxML)

4.

Interfaz I2C (Inter Integrated circuit)


4.1 Descripcin del protocolo I2C 4.2. Descripcin del mdulo I2C en el HC9S08 4.3.Diagrama de Bloques del Mdulo I2C 4.4. Registros asociados al mdulo I2C
4.4.1. Registro de direccin (IICA) 4.4.2. Registro divisor de frecuencia del reloj (IICF) 4.4.3. Registro de control 1 (IICC1). 4.4.4. Registro de estado (IICS). 4.4.5. Registro de datos (IICD) 4.4.6. Registro de control 2 (IICC2)

4.5.

Otras funciones importantes del mdulo IIC

5.

Universal Serial Bus (USB)


5.1. Prestaciones del protocolo 5.2. Principales caractersticas
5.2.1. Implementacin Fsica
5.2.1.1. Aspecto elctrico

5.2.2. Velocidad de Transferencia 5.2.3. USB On-The-Go 5.2.4. Componentes del Bus

5.3.

Elementos de una transferencia USB.


5.3.1. Endpoints 5.3.2. Pipes. 5.3.3. Tipos de transferencias 5.3.4. Trasferencias y transacciones. 5.3.5. Caractersticas de un Bloque en una transferencia 5.3.6. Fases de una transaccin. 5.3.7. Chequeo de error.

5.4.

Enumeracin de dispositivos.
5.4.1. Proceso de enumeracin.
Pgina 3

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

5.4.2. Descriptores

5.5.

Registros asociados al mdulo USB


5.5.1. 5.5.2. 5.5.3. 5.5.4. 5.5.5. Registro del ID del perifrico (PER_ID) Registro de ID complementario (ID_COMP) Registro de la revisin del perifrico(REV) Registro de informacin adicional del perifrico (ADD_INFO) Registro del estado de la interrupcin en modo OTG (OTG_INT_STAT) 5.5.6. Registro del control de la interrupcin en modo OTG (OTG_INT_EN) 5.5.7. Registro de estado de interrupcin (OTG_STAT) 5.5.8. Registro de control OTG (OTG_CTRL) 5.5.9. Registro de estado de interrupcin (INT_STAT) 5.5.10. Registro de habilitacin de interrupciones (INT_ENB) 5.5.11. Registro de estado de interrupcin por error (ERR_STAT) 5.5.12. Registro de habilitacin de interrupcin por error (ERR_ENB)

Apndice
1. Mdulo Serial en la Familia HC908
1.1. Caractersticas 1.2. Descripcin de la comunicacin serie [2] 1.3. Registros I/O del SCI
1.3.1. Registo SCI de Baud Rate 1.3.2. Registro de Interrupciones y de configuracin del Tx 1.3.3. SCI Status Register 1 (SCS1) 1.3.4. SCI Data Register (SCDR) 1.3.5. SCI Status Register 2 (SCS2)

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 4

1. Introduccin
Entre los mdulos disponibles en las distintas familias de Microcontroladores se encuentra los mdulos que permiten implementar mediante la configuracin de registros los protocolos de comunicacin ms comunes en el diseo Digital.

1.1.

Mdulos de Comunicacin disponibles en Microcontroladores

En la Actualidad la mayora de los Microcontroladores contienen mdulos para la implementacin de interfaces de comunicacin tales como, SPI, SCI, I2C y USB. Adicionalmente, algunas familias ms potentes proveen interfaces Ethernet y CAN para el diseo de sistemas Ms avanzados. Todos estos dispositivos vienen provistos de Libreras especficas de Diseo que felicitan la implementacin del mdulo.

1.2. Mdulos Especficos de la Familia HCS08


Ente los mdulos de comunicacin ms comunes en la Familia de Microcontroladores HCS08 enumeran, el SCI serial asincrnico, el SPI sera sincrnico, el I2C o IIC InterIntegrated Circuit y el USB (Universal Serial Bus). En este captulo se tratarn estos mdulos que proveen una variedad de funcionalidades al microcontrolador, permitiendo su interaccin con una gran variedad de dispositivos.

1.2.1. SCI Serial Communications Interface


La interfaz de comunicacin serie es una interfaz asincrnica que permite envas datos entre dispositivos en forma serie sobre una nica lnea de transmisin y una nica lnea de recepcin. Su caracterstica principal es que la lnea se encuentra normalmente en alto y cuando se desea enviar informacin se debe enviar un bit de inicio un cero lgico y seguido de este los bits de datos.

1.2.2. SPI Serial Periferal Interface


Esta interfaz permite enviar datos en forma serie, pero a diferencia de la anterior, requiere de sincronismo para el envo de datos. Por lo que se utiliza una lnea de clock para indicar cundo se enviar un dato, obviamente sincronizado con el clock. Este protocolo permite comunicar un dispositivo Master con varios Slaves. Lo que quiere decir es que el Master puede decidir con que dispositivo intercambiar datos, poniendo en cero la lnea de seleccin (CS chip select) correspondiente al esclavo seleccionado.

1.2.3. IIC Inter-Integrated Circuits


Esta interfaz es mucho ms simple en cuanto a las lneas necesarias para su implementacin, pero mucho ms compleja en cuanto a la configuracin necesaria para el envo de datos. Se utilizan solo 2 lneas para la implementacin, una lnea de clock para el sincronismo y una lnea de datos. Este protocolo permite mltiples Masters y mltiples Slaves. Cada Slave tiene asignada una direccin especfica, mediante la cual el Master dirigir la informacin. Los paquetes a transmitir siempre estarn formados por un byte de control en donde se indica la direccin del dispositivo hacia el cual se le enviar el dato, seguido del byte de datos. Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 5

1.2.4. USB Universal Serial Bus


Esta interfaz es mucho ms compleja que las anteriores. Es la interfaz por excelencia de las computadoras actuales y de todos los dispositivos de ltima generacin. Este protocolo es muy eficiente para el envo de datos y requiere de un dispositivo Host que maneja la comunicacin y de uno o varios dispositivos Slaves que se conectan al host para iniciar una transferencia de datos. Este protocolo permite la conexin de varios Slaves hacia el host mediante la utilizacin de un Hub USB. Una de las grandes ventajas de este protocolo es que cada dispositivo conectado se enumera automticamente indicando al Host sus caractersticas principales y permitiendo que este instale los drives para permitir el correcto funcionamiento del dispositivo USB conectado. Este protocolo tiene varios modos de transferencia, dependiendo del tipo de dispositivo que se est conectando y de su funcionamiento. Tambin se debe destacar que el protocolo soporta varias velocidades de comunicacin y que las velocidades ms altas requieren un diseo de HW especfico. Para la comunicacin requiere solo dos lneas de datos diferenciales, pero los paquetes de comunicacin son mucho ms complejos que cualquiera de los protocolos anteriores.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 6

2. Interfaz de Comunicacin Serie (SCI)


Este mdulo no se encuentra en el HC908QY4, pero se encuentra en la mayora de los MCUs de la Familia HC908 ([3], [4]), cuya descripcin se realiza en el Apndice 1. En este Captulo se describe el protocolo serie asincrnico y la descripcin de Mdulo SCI que lo implementa en toda la familia HCS08.

2.1. Descripcin del Protocolo.


El protocolo serial asincrnico SCI utiliza 2 lneas, una para transmisin Tx y una para recepcin RX. Las velocidades de transmisin ms comunes son: 1200, 2400, 4800, 9600, 19200, 38400, 57600 y 115200 baudios.

Figura 1. Modos de transmisin

2.1.1. Formato de Transmisin


El protocolo SCI usa el formato estndar de transmisin non-return-to-zero (NRZ), que consiste en un bit de inicio seguido de 8 bits de datos y un bit de parada. Esto es comnmente referenciado como Formato 8-N-1 (8 bits de datos, sin bit de paridad, un bit de parada). El dato es transmitido y recibido comenzando por el bit menos significativo (LSB). Cada bit tiene una duracin Tp que define el Baud Rate (tasa de baudio).

Figura 2. Formato de transmisin tp = periodo de un bit = 1/ tasa de baudio La comunicacin serie trabaja con la lnea en alto (idle line) cuando no hay transferencia de datos, y el bit de inicio es un cero lgico. Cada bit de dato puede ser ya sea un uno o un cero lgico. El bit de parada es un uno lgico. El bit de inicio, el bit de parada y cada bit de dato constituyen una trama de datos, como se muestra en la Figura 2. En la Figura 1 se muestran los distintos modos de transmisin. En la operacin Half-duplex, solo un nodo transmite a la vez. El dispositivo no puede recibir mientras est transmitiendo, y no puede Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 7

transmitir mientras est recibiendo. La implementacin del protocolo por software debe realizarse en modo Half-duplex, por causa de la secuencialidad del software. Esta incapacidad es una desventaja en comparacin con el Hardware SCI, que puede transmitir y recibir al mismo tiempo por ser concurrente. Esto se conoce como sistema full duplex.

2.1.2. Deteccin de error de Trama


El bit de parada est definido como un uno lgico, si el bit de parada recibido es un cero, quiere decir que ocurri un error de Trama.

2.2. Caractersticas del Mdulo SCI


Full duplex, Alta Velocidad, asincrnico, programable de 8 o 9 bit de largo de caracter. Dos mtodos de receiver wakeup. Pedidos de Interrupcin separados para Rx y Tx. Habilitacin separada del Transmisor y el Receptor. Polaridad programable de la salida del Transmisor. Operacin dirigida por interrupciones con ocho Flags de interrupcin. Transmitter Empty Transmission Complete Receiver Full Idle Receiver Input Receiver Overrun Noise Error Framing Error Parity Error Modo de operacin Low power Deteccin de Error de frame en el receptor Baud rate programable Chequeo de Paridad por Hardware

2.3. Descripcin de la comunicacin serie mediante el Mdulo SCI


Utiliza el sistema doble buffer, como muestra la figura 3. El flag SCTE se setea cada vez que un nuevo dato es transferido desde el buffer TDR al shift register de transmisin serie. El flag SCRF se setea cada vez que un nuevo dato es transferido desde el shift register al buffer RDR. El registro SCDR es un solo registro que al escribirlo, se escribe el buffer TDRx y al leerlo, se lee el buffer RDRx.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 8

Figura 3. Sistema de comunicacin SCI doble buffer. Se pueden seleccionar 2 formatos de datos diferentes a transmitir, uno de ellos es de 8 bits (Figura 4), donde hay un bit de inicio, un bit de stop y 8 bit de datos. El otro Formato es de 9 bits (Figura 5), con 1 bit de inicio, un bit de stop, un bit de paridad extra u otro stop y 8 bit de datos.

Figura 4. Formato de datos de 8 bits.

Figura 5. Formato de datos de 9 bits. Caracteres de Datos Especiales: Break - No tiene bits de Start o Stop, existe como un cero lgico por un tiempo de 10 11 bit (Formato de Datos de 8 o 9 bits respectivamente) Idle - No tiene bits de Start o Stop, existe como un uno lgico por un tiempo de 10 11 bit (Formato de Datos de 8 o 9 bits respectivamente) Prembulo - Un caracter idle de sincronismo

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 9

2.4. Diagrama en bloques del Transmisor y Receptor


El diagrama de transmisin de la figura 6 muestra como el dato almacenado en el buffer SCID se enva a un registro de desplazamiento para ser transmitido por el puerto de transmisin TXD. Tambin se observa un bloque de Control, desde donde se envan los requerimientos de las interrupciones seleccionadas y se selecciona la velocidad de transmisin Baud rate.

Figura 6. Diagrama en bloques del transmisor La Figura 7 muestra el diagrama en bloques receptor, en donde los datos recibidos por el registro de desplazamiento son almacenados en el buffer SCID. El bloque receptor tambin tiene una lgica de Hardware para el chequeo de error de paridad, en donde si se detecta error en la paridad, se enva un aviso al transmisor pidiendo la retransmisin de datos. Adicionalmente se cuenta con la lgica para enviar el requerimiento de interrupcin al microprocesador, por la llegada de un dato al puerto RX.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 10

Figura 7. Diagrama en bloques del receptor.

2.5. Registros de Configuracin del SCI


Ocho registros I/O controlan y monitorean la operacin del SCI: SCI Control Register 1 (SCIxC1) Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 11

SCI Control Register 2 (SCIxC2) SCI Control Register 3 (SCIxC3) SCI Status Register 1 (SCIxS1) SCI Status Register 2 (SCIxS2) SCI Data Register (SCIxD) SCI Baud Rate Register (SCIxBDH y SCIxBDL)

2.5.1. Registros SCI de Baud Rate


Este par de registros permite seleccionar el baud rate mediante el control del divisor de preescaler. Para actualizar los 13 bits del seteo de baud rate [SBR12:SBR0], primero se escribe el SCIxBDH para almacenar la parte alta del nuevo valor y luego escribe el SCIxBDL.

Figura 8. Registro de seleccin de tasa de baudios (SCIxBDH). LBKDIE (Habilita interrupcin por deteccin de break LIN): Si este bit est en 1 lgico, Se produce un requerimiento de interrupcin por HW cuando el flag LBKIF est en 1. RXEDGIE (Habilita interrupcin por deteccin por flanco activado por entrada RxD): Si este bit est en 1, se produce un requerimiento de interrupcin por HW cuando el flag RXEDGIF est en 1.

Figura 9. Registro de seleccin de tasa de baudios, parte baja (SCIxBDL). SBR[ bits (12:0)](Divisor de mdulo de Baud rate): estos 13 bits representan el valor de BR, que representa el divisor del mdulo generador de baud rate. Cuando BR=0, el generador de baud rate es deshabilitado a bajo consumo. Cuando BR toma un valor entre 1 y 8191, el baud rate ser SCI = BUSCLK/(16xBR).

2.5.2. Registro de Control 1


Este registro es usado para configurar varias caractersticas de control del sistema SCI.

Figura 10. Registro de Control 1 - SCIxC1 Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 12

LOOPS: Seleccin del modo loop. Este bit en 1 conecta el bus RX con el TX SCISWAI: detiene el SCI en modo wait. Este bit en 1 detiene el clock SCI en modo wait RSRC: seleccin de fuente de recepcin. Este bit en 1 conecta el pin TxD a la salida del transmisor y a la entrada del receptor. M: Seleccin de modo 8 bit o 9 bit de datos. Si este bit est en 1 se selecciona el modo de 9 bits de datos. WAKE: selecciona el mtodo de recepcin wakeup. ILT: Seleccin de tipo de lnea Idle. PE: Habilita paridad. El bit en 1 habilita paridad PT: Seleccin del tipo de paridad. El bit en 1 selecciona la paridad impar.

2.5.3. Registro de Control 2


Este registro puede ser ledo o escrito en cualquier momento.

Figura 11. Registro de Control - SCIxC2 TIE: Habilita la interrupcin de transmisin TCIE: Habilita interrupcin por transmisin completa RIE: Habilita la interrupcin del recepto ILIE: habilita la interrupcin de lnea IDLE TE: Habilita el Transmisor RE: Habilita Recepcin RWU: Control wakeup del receptor SBK: enva un break

2.5.4. Registro de Estados 1


Este registro tiene 8 flags de solo lectura.

Figura 12. Registro de Estados - SCIxS1. TDRE: Flag de registro de datos del transmisor vacio TC: Flag de transmisin completa RDRF: Flag de registro de datos del receptor vacio IDLE: Flag de lnea IDLE. OR: Flag de sobre ejecucin del receptor. NF: Flag de ruido Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 13

FE: Flag de error de Frame PF: Flag de error de paridad

2.5.5. Registro de Estados 2


Este registro tiene un flag de estados de solo lectura.

Figura 13. Registro de Estados - SCIxS2. LBKDIF: Flag de interrupcin de deteccin de break LIN RXEDGIF: Flag de interrupcin activo por flanco en el pin RxD RXINV: Inversin de datos del receptor RWUID: Detecta activacin de IDLE en el receptor BRK13: Generacin de break de carcter extensa LBKDE: Habilita deteccin de break LIN RAF: Flag de receptor activo

2.5.6. Registro de Control 3 (SCIxC3)

Figura 14. Registro de Control - SCIxC3. L8: Recepcin de 9 bits de datos T8: Transmisin de 9 bits de datos TXDIR: Configuracin de direccin del pin TxD en el modo simple lnea TXINV: Inversin de datos de Transmisin. ORIE: Habilitacin de interrupcin por sobre escritura NEIE: Habilitacin de interrupcin por error de ruido FEIE: Habilitacin de interrupcin por error de Frame PEIE: Habilitacin de interrupcin por error de paridad

2.5.7. Registro de Datos (SCIxD)


Este registro cumple dos funciones diferentes. Cuando se lee devuelve el valor del buffer de recepcin RX. Cuando se escribe guarda el valor en el Buffer de transmisin TX.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 14

Figura 15. Registro de Datos (SCIxD).

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 15

3. Interfaz de Comunicacin Serie (SPI)


3.1. Descripcin del Protocolo SPI
La interfaz perifrica serie es una interfaz sincrnica master-slave que se basa en un registro de desplazamiento de 8 bits. El master SPI genera una seal de clock usada por todos los dispositivos SPI para coordinar la transferencia de datos. Como muestra la Figura 16, el dispositivo perifrico conectado al SPI tambin incluye un registro de desplazamiento. Juntos, los 2 registros de desplazamiento de 8 bits son conectados desde un registro de rotacin a izquierda de 16 bits. Una transferencia de datos consiste de un desplazamiento de 8 bits, el cual resulta en una transferencia de datos entre el dispositivo master y el slave. Muchos dispositivos, tales como los conversores AD, conversores DA y Chips de memoria Flash, SRAM, FRAM, SD, etc, poseen interfaz SPI.

Figura 16. Diagrama de conexin Master Slave.

3.1.1. Breve repaso de las comunicaciones seriales sincrnicas


Una comunicacin sincrnica es aquella en donde los datos se envan sincronizados con una seal de clock, ya sea como una lnea independiente o embebida dentro de la misma. Generalmente existe un dispositivo maestro, que es el generador de la sincrona de la comunicacin. De tal manera que el reloj es generado en una lnea independiente del sistema y es el maestro quien lo presenta en el canal de comunicacin. Los dems dispositivos del sistema actan como esclavos de la comunicacin y la seal de reloj entra por un pin a cada uno de ellos, estableciendo el sincronismo de los bits de informacin que llegan o salen. Otros sistemas utilizan la misma seal de datos, para generar el sincronismo de los bits. La Figura 17 ilustra el protocolo Manchester, del cual se puede extraer el reloj del sistema. Basta con tomar cualquier flanco de la seal de clock para lograr una relacin entre, (utilizando el flanco) el reloj y los datos.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 16

Figura 17. Sincronismo entre seal de clock y datos. En los sistemas seriales sincrnicos para la interconexin de perifricos, se manejan distancias cortas y modos de un solo maestro y mltiples esclavos. Un maestro podra perder su funcin y convertirse en un esclavo, mediante un mecanismo de arbitraje de bus. De esta manera cualquier dispositivo podra ser maestro en un momento determinado. Las tramas de comunicacin son de variada presentacin y algunas slo involucran la carga til, sin adicionar bits que permitan el handshaking (coordinacin) entre esclavos y maestro. Para estos protocolos deber existir una lnea tanto para el dato saliente (TxD) como para el dato entrante (RxD), as como la posibilidad de hacer comunicacin simultnea y bidireccional (Full Duplex) (Ejemplo: SPI).

Figura 18. Diferentes Configuraciones en el envo de datos durante el primer flanco de clock

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 17

Figura 19. Diferentes Configuraciones en el envo de datos durante el segundo flanco de clock. En la figura 18 se muestra la configuracin del mdulo en donde el dato a enviar se mantiene estable durante el primer flanco de clock y el siguiente bit se enva en el segundo flanco de clock, tenga este cualquiera de las 2 polaridades posibles (lnea normalmente en alto o en bajo). En la figura 19 se muestra la configuracin del mdulo en donde cada dato se establece en el primer flanco del pulso de clock y el dato se mantiene estable durante el segundo flanco del clock.

3.2. Caractersticas del Mdulo SPI


El modulo SPi incluye las siguientes caractersticas: Operacin en modo master o slave Modo bidireccional en Full-duplex o simple lnea Tasa de bit de transmisin programable Registro de datos de transmisin y recepcin de Doble buffer Opciones de polaridad y fase del clock Salida de seleccin de slave Flag de modo de error por falla con posibilidad de interrupcin de CPU Control de operacin de SPI durante el modo wait Desplazamiento de datos primero MSB o primero LSB seleccionable Longitud de datos de transmisin programable a 8 o 16 bits

3.3.

Descripcin Funcional del mdulo SPI

El mdulo se habilita seteando el bit SPI enable (SPE) en el Registro SPI Control Register 1. Mientras el bit SPE est seteado, los cuatro pines asociados al mdulo SPI cumpliendo las funciones de: Selector de esclavo (SS) clock serial (SPSCK) Master out/slave in (MOSI) Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 18

Master in/slave out (MISO) Una transferencia SPI se inicia en el dispositivo master leyendo el registro de estados SPI (SPIxS) cuando SPTEF = 1 y escribiendo el dato en el buffer de transmisin de datos (escribiendo SPIxDH:SPIxDL). Cuando se completa una transferencia, el dato recibido se almacena en el buffer de datos recibidos. Los Registros SPIxDH:SPIxDL actan como el buffer de datos de recepcin SPI cuando es leido y como el buffer de datos de transmisin SPI cuando se escribe. El bit de control de fase de clock (CPHA) y el bit de control de polaridad de clock (CPOL) ubicados en el registro de control 1 SPI (SPIxC1) permiten seleccionar uno de los cuatro posibles formatos de clock a ser usados por el sistema SPI. El bit CPOL selecciona una inversin o no de polaridad en el clock. El bit CPHA se usa para coordinar dos protocolos para el muestreo de datos sobre los flancos impares llamados SPSCK o sobre los flancos pares llamados SPSCK. El SPI puede configurarse como master o como slave. Cuando se setea el bit MSTR del registro de control 1, se habilita como master, cuando se borra el bit MSTR, se selecciona el modo slave.

3.3.1. Modo Master


El Mdulo SPI opera en modo master cuando el l bit MSTR se encuentra seteado. Solo en modo master se pueden iniciar transmisiones. Una transmisin se inicia leyendo el registro SPIxS mientras el SPTEF = 1 y escribiendo el registro de datos SPI. Si el registro de desplazamientos est vaco, el byte se transfiere inmediatamente al a este registro para ser enviado. El dato comienza a desplazarse hacia el pin de salida MOSI bajo la referencia del clock de control serial. SPSCK: Los bits de seleccin de baud rate SPR2, SPR1, y SPR0 conjuntamente con los bits de preseleccin de baud rate SPPR2, SPPR1, y SPPR0 en el registro de control generan un baud rate y determinan la velocidad de transmisin. El pin SPSCK es la salida de clock SPI. A travs de este pin el generador de baud rate del master controla el registro de desplazamiento del perifrico slave. Los pines MOSI, MISO en modo master, tienen la funcin de pin de datos de salida (MOSI) y pin de datos de entrada (MISO), esto est definido por los bits de control SPC0 y BIDIROE. El pin SS cuando los bits MODFEN y SSOE estn seteados, se configura como selector de slave de salida. El pin SS de salida se pone en bajo para una transmisin y en alto cuando la lnea est en estado desocupado idle. Si el bit MODFEN est seteado y el SSOE borrado, el pin SS se configura como entrada para detectar el modo de error por falla en la transmisin. Si la entrada SS est en bajo, indica un error por falla error cuando otro master trata de manejar las lneas de MOSI y SPSCK. En este caso, el SPI cambia a modo slave, borrando el bit MSTR y deshabilitando el buffer de salida slave MISO.

3.3.2. Modo Slave


El SPI funciona en modo slave cuando el bits MSTR en el registro de control 1 est borrado. SPSCK: En modo slave, SPSCK es el clock entrada que llega desde el master. Pines MISO, MOSI: En modo slave, el pin (MISO) tiene la funcin de salida de datos y el pin (MOSI) tiene la funcin de entrada de datos, esto se determina por los bits SPC0 y BIDIROE en el registro de control 2. Pin SS: El pin SS es la entrada de seleccin del slave. Antes de una transmisin de datos, el pin SS del slave debe estar en bajo y debe mantenerse en este estado hasta que finalice dicha transmisin. Si el pin SS est en alto, el SPI se fuerza a estado idle.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 19

La entrada SS tambin controla el pin de salida de datos seriales, Si el SS est en alto (no detectado), el pin de salida de datos estar en alta impedancia, y, si SS est en bajo el primer bit en el registro de datos SPI se enviar a al pin de salida de datos seriales. Tambin si el SS del slave est en alto, se ignora la seal de clock enviada por el master. Con el sistema de varios slaves, es posible implementar una comunicacin serial enviando a varios slaves la misma transmisin desde el master, aunque el master no recibir informacin de todos los slaves a la vez. Si el bit CPHA en el registro de control 1 est borrado, un nmero impar de flancos sobre la entrada SPSCK causar que el dato se mantenga en el pin de entrada de datos. Un nmero par de flancos causar que el valor previamente almacenado desde el pin de entrada de datos seriales se displace en el LSB o MSB del registro de desplazamientos del SPI, dependiendo del bit LSBFE. Si se setea el bit CPHA, un numero par de flancos en la entrada del SPSCK causar que el dato se mantenga en el pin de entrada de datos serie. Un nmero impar de flancos casar que el valor previamente almacenndose displace desde el pin de entrada serie al LSB o MSB del registro de desplazamientos, dependiendo del bit LSBFE. Cuando el CPHA es seteado, el primer flanco se usa para enviar el primer bit de datos al pin de salida serie. Cuando el CPHA es borrado y la entrada SS est en bajo (slave seleccionado), e primer bit de datos del SPI se enva por el pin de salida de datos. Despus del octavo (SPIMODE = 0) o el dieciseisavo (SPIMODE = 1) deslazamiento, la transferencia se considera finalizada y el dato recibido es transferido a registro de dat6s del SPI. Para indicar que la transferencia se complet, se setea el flag SPRF en el Registro de estados del SPI.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 20

3.4.

Diagrama en bloques

Figura 20. Diagrama en bloques del mdulo SPI

3.5.

Registros de configuracin

3.5.1. Registro de control 1 (SPIxC1)

Figura 21. Registro de control 1 - SPIxC1 SPIE: Habilitacin de interrupcin (para SPRF y MODF) SPE: Habilitacin de sistema Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 21

SPTIE; Habilitacin de interrupcin por transmisin MSTR: Seleccin de modo Master/Slave CPOL: polaridad de Clock CPHA: Fase de clock SSOE: habilitacin de salida de seleccin de slave LSBFE: primer bit LSB (direccin de desplazamiento) Tabla 1. Bits de seleccin de modo Master o Slave
MODFEN SSOE Modo Master Modo Slave

0 0 1 1

0 1 0 1

I/O de propsito general I/O de propsito general Entrada SS para modo falla Salida SS automtica

Entrada de seleccin de slave Entrada de seleccin de slave Entrada de seleccin de slave Entrada de seleccin de slave

3.5.2. Registro de control 2 (SPIxC2)

Figura 22. Registro de control 2 (SPIxC2) SPMIE: Habilitacin de interrupcin por coincidencia SPIMODE: Modo 8 o 16 bits MODFEN: Habilita funcin en modo falla como master BIDIROE: habilita salida en modo bidireccional SPISWAI: Stop en modo wait SPC0: Control de pin 0 Modo de Pin NORMAL BIDIRECCIONAL NORMAL BIDIRECCIONAL SPC0 0 1 0 1 Tabla 2. Modos de Operacin BIDIROE MISO Operacin de Modo Master X Entrada Master 0 MISO no usado por SPI 1 Operacin de Modo slave X Salida Slave 0 1 Entrada Slave Slave E/S MOSI Salida Master Entrada Master Master E/S Slave MOSI no usado por SPI

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 22

3.5.3. Registro de Baud rate (SPIxBR) Tabla 3. Seleccin de baud rate de Transferencia
SPPR2:SPPR1:SPPR0 Preescalador Divisor

0:0:0 0:0:1 0:1:0 0:1:1 1:0:0 1:0:1 1:1:0 1:1:1

1 2 3 4 5 6 7 8

Figura 23. Registro de Baud rate (SPIxBR) 6:4 SPPR[2:0]: Preescalador Divisor de Baud Rate 2:0 SPR[2:0]: Divisor de Baud Tabla 4. Divisor de Baud Rate
SPR2:SPR1:SPR0 Divisor de tasa

0:0:0 0:0:1 0:1:0 0:1:1 1:0:0 1:0:1 1:1:0 1:1:1

2 4 8 16 32 64 128 256

Baud rate= CGMOUT/(2xBD) 3.5.4. Registro de Estados (SPIxS)

Figura 24. Registro de estados (SPIxS) SPRF: Flag de buffer de lectura lleno Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 23

SPMF: Flag de Match. Cuando el valor en el buffer de recepcin coincide con el valor en SPIMH:SPIML SPTEF: Flag de buffer de transmisin vacio MODF: Flag modo master por falla

3.5.5. SPI Data Registers (SPIxDH:SPIxDL)

Figura 25. Registro de Datos parte alta (SPIxDH)

Figura 26. Registro de Datos parte baja (SPIxDL) En modo 8-bit, solo est disponible SPIxDL. La lectura de SPIxDH retornar todos ceros. La escritura en SPIxDH ser ignorada. En modo 16-bit, leyendo cualquier byte (SPIxDH o SPIxDL) se guarda el contenido de ambos bytes en el buffer en donde se mantiene hasta que se leo otro byte. Escribiendo cualquier byte (SPIxDH o SPIxDL) se mantiene el valor en el buffer. Cuando ambos bytes han sido escritos, se transferir como un valor de 16 bits en el buffer de datos de transmisin.

3.5.6. Registros de Coincidencia (SPIxMH:SPIxML)

Figura 27. Registro de Coincidencia parte alta (SPIxMH)

Figura 28. Registro de Coincidencia parte baja (SPIxML)

En modo 8-bit, solo est disponible SPIxML. La lectura de SPIxMH retornar ceros. La escritura a SPIxMH ser ignorada. En modo 16-bit, leyendo cualquier byte (SPIxMH o SPIxML) se mantiene el contenido de ambos bytes en un bufferen donde se conservar hasta la lectura de otro byte. Escribiendo cualquier byte (SPIxMH o SPIxML) se transfiere el valor a un buffer. Cuando
Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 24

ambos buffer hayan sido escritos, se transferir el contenido como un valor a los registros de coincidencia del SPI.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 25

4. Interfaz I2C (Inter Integrated circuit)


4.1 Descripcin del protocolo I2C
Este sistema de comunicaciones fue desarrollado por Philips como un sistema multi-master, para la conexin de perifricos a distancias relativamente cortas y velocidades de unos cientos de Kbps. El protocolo se implementa sobre dos lneas, una lnea de clock de sincronismo (SCL: Serial Clock) y otra para los datos (SDA: Serial Data). Como los datos se transmiten por una sola lnea, el sistema es bidireccional del tipo maestro/esclavo. Las Lneas de Clock SCL y de Datos SDA son manejadas por el master durante una comunicacin tpica. La Figura 29 muestra una trama, para la transmisin de datos en 8 bits (tambin existe en 10 bits). En la trama se puede apreciar que el protocolo requiere una condicin de inicio, seguido por los bits de datos, despus se presenta un bit para la seal de reconocimiento (ACK) y finalmente la condicin de stop. En un Bus I2C tpico cada esclavo tiene asignada una direccin de entre 7 y 10 bits que se usa para seleccionar el esclavo con el que se desea entablar una comunicacin.

Figura 29. Trama de una transmisin I2C


Condicin de start: La condicin de inicio se produce mediante un flanco descendente en la Seal SDA cuando la seal de clock SCL se encuentra en estado alto. Bits de datos: Luego de haberse dado la condicin de start, los bits de datos se transmiten comenzando por el ms significativo (MSb), manteniendo el valor del bit durante todo el periodo alto de la seal de clock SCL. El cambio de bit se debe realizar durante el estado bajo de la lnea de clock o durante el flanco ascendente del mismo. Bit de comando (R/W): Cuando se est direccionando el dispositivo con el cual se va a establecer una comunicacin I2C, este bit no pertenece al dato como tal, sino a la accin de escritura o lectura sobre el dispositivo en cuestin (Lectura (R) = nivel alto y Escritura (W) = nivel bajo). Bit de reconocimiento (ACK = Acknowledge): Este bit es verdadero en estado bajo y lo enva quien recibe el dato. Condicin de stop: Se produce cuando estando la seal de SCL en estado alto, se presenta un flanco de subida de la seal de SDA. Dependiendo del tipo de transferencia que se desee realizar, las tramas I2C se pueden configurar de la siguiente manera: Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 26

Transmisin de un byte de datos: La Figura 30 detalla las tramas para el envo de un byte hacia un esclavo. En la primera trama la carga til conforma la direccin de destino de la informacin. Tambin se especifica la accin sobre el esclavo, que en este caso detalla una escritura sobre el destino (nivel bajo en el bit R/W). La direccin del dispositivo puede estar representada en 8 o 10 bits, de tal manera que podra existir un byte adicional para completar la direccin (este byte carecera de bit de start y de stop). La segunda trama, carece de bit de start y representa el byte de Dato a transferir.

Figura 30. Envo de un Byte de Datos a una direccin de esclavo de 8 y 10 bits de largo.
Envo de n bytes a un destino: La Figura 31 detalla las tramas para el envo de n bytes hacia un destino. Es idntico al caso anterior, slo que los datos se presentan uno a continuacin del otro.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 27

Figura 31. Envo de varios byte de datos a una direccin de esclavo de 8 y 10 bits de largo. Lectura de un byte desde un dispositivo: La Figura 32 detalla las tramas para la lectura de un byte desde un dispositivo. En este caso el bit de lectura/escritura (R/W) va al estado 1. Las primeras tramas envan la direccin del dispositivo a leer y las siguientes la accin de lectura sobre el mismo.

Figura 32. Lectura de un byte de datos enviado desde un dispositivo esclavo. Lectura de n bytes desde un dispositivo: La Figura 33 detalla las tramas para la lectura de n bytes desde un dispositivo.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 28

Figura 33. Lectura de n bytes de datos enviados desde u dispositivo esclavo. La conexin de varios dispositivos en un bus I2C, obedece al modelo maestro/esclavo y puede existir la posibilidad de que varios maestros manipulen el bus. Esto ltimo se logra mediante un mecanismo de arbitraje de bus definido para resolver conflictos de acceso cuando dos masters tratan de acceder al bus simultneamente. Para facilitar la conexin de mltiples masters, SCL y SDA son lneas open-drain, lo que facilita el arbitraje y el control de flujo, que requieren pull-ups externos para generar un estado lgico alto en la lnea. Todos los masters monitorean el bus y solo uno puede accede cuando la lnea est desocupada (idle) (cuando ambas lneas estn en alto entre un bit de stop y uno de start). Si un master no est manejando la lnea SDA en bajo pero sensa que est en bajo, entonces interpreta que otro master est usando el bus y se detiene la transmisin; en este caso el master perdi el arbitraje. De manera similar, si un master sense que SCL est en bajo cuando debera estar en alto, esto indica que un esclavo est extendiendo el clock para indicar que todava no est listo para proceder con la transferencia del siguiente byte, proveyendo un mecanismo de control de flujo bsico. La Figura 34 muestra una conexin maestro/esclavo I2C tpica.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 29

Figura 34. Configuracin maestro-esclavo Tpica

4.2. Descripcin del mdulo I2C en el HC9S08


Las caractersticas ms importantes del mdulo I2C son: o Trabaja hasta 100Kbps con mxima carga. o El nmero mximo de dispositivos que se pueden conectar al bus I2C est limitado por la capacitancia de carga mxima de 400pF. o Compatible con el bus I2C estndar. o Operacin en modo multi-maestro. o Hasta 64 frecuencias distintas de clock del maestro. o Generacin y deteccin de bit de aknnowledge, seleccionable por software. o Posibilidad de generar una interrupcin por: _ La transferencia de cada byte. _ Prdida del arbitraje del bus por parte del maestro. _ Identificacin de un llamado a una direccin. o Generacin y deteccin de seal de start y stop. Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 30

o Repeticin de la seal de start. o Deteccin de bus ocupado. o Reconocimiento de llamado general. o Extensin de la direccin a 10 bits.

4.3.

Diagrama de Bloques del Mdulo I2C

La Figura 35 detalla el diagrama en bloques del mdulo I2C. El dato en el mdulo I2C se recibe y se enva sobre el mismo registro (configuracin double buffered), el bloque shift register controla esta funcin.

Figura 35. Diagrama en bloques funcional

4.4.

Registros asociados al mdulo I2C

4.4.1. Registro de direccin (IICA)


La Figura 36 muestra el registro de direccin del mdulo IIC.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 31

Figura 36. Registro de direcciones AD1:AD7: Bits que conforman la direccin baja del esclavo en un bus IIC.

4.4.2. Registro divisor de frecuencia del reloj (IICF)


La Figura 37 ilustra sobre el registro para dividir la frecuencia del reloj de bus, que controla la tasa de baudios del mdulo I2C.

Figura 37. Registro divisor de Frecuencias MULT: Bits para definir un factor multiplicador de la rata de baudios IIC. 00: Multiplica por 1 01: Multiplica por 2 10: Multiplica por 4 11: Reservado ICR: Bits para definir la rata de baudios IIC. La siguiente ecuacin define la tasa de baudios de una comunicacin IIC y los tiempos de las seales de start y stop. Tasa de Baudios = Frecuencia del reloj de BUS / ( MULT x Divisor_SCL) Tabla 5. Tabla de valores del divisor de frecuencias de bus

ICR (Hex)
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Divisor SCL
20 22 24 26 28 30 34 40 28 32 36 40 44 48 56 68

ICR (Hex)
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F

Divisor SCL
160 192 224 256 288 320 384 480 320 384 448 512 576 640 768 960

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 32

10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F

48 56 64 72 80 88 104 128 80 96 112 128 144 160 192 240

30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F

640 768 896 1024 1152 1280 1536 1920 1280 1536 1792 2048 2304 2560 3072 3840

4.4.3. Registro de control 1 (IICC1). La Figura 38 ilustra sobre el registro de control 1 del mdulo I2C.

Figura 38. Registro de control 1.


IICEN: Bit para habilitar la operacin del mdulo IIC. 0: Inhibe la operacin del mdulo IIC 1: Habilita la operacin del mdulo IIC IICIE: Bit para habilitar un posible evento de interrupcin del mdulo IIC. 0: Inhibe la interrupcin del mdulo IIC 1: Habilita la interrupcin del mdulo IIC MST: Bit para asignar la operacin del mdulo como maestro. 0: Modo esclavo 1: Modo Maestro TX: Bit para seleccionar la direccin de la transferencia en modo maestro y esclavo. En modo maestro este bit deber estar de acuerdo con el tipo de transferencia requerida. Para ciclos de envo de direcciones, este bit siempre estar en 1. En caso de un direccionamiento sobre un esclavo, este bit se llevar a 1, va software y depende del estado del bit SRW. 0: Receptor 1: Transmisor TXACK: Bit para determinar el valor del espacio de bit dedicado al acknowledge (ACK), en la recepcin de el esclavo o el maestro. 0: Una seal de ACK es enviada fuera del BUS, despus de recibirse un byte de dato 1: No se enva ACK como respuesta RSTA: Bit para insertar un evento de start en el BUS, dada por el maestro. El maestro podra perder el arbitramiento del BUS si inyecta esta seal en un momento no indicado.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 33

4.4.4. Registro de estado (IICS).


La Figura 39 ilustra sobre el registro de estado del mdulo IIC.

Figura 39. Registro de Estados TCF: Bandera para indicar cundo se ha completado la transferencia de un byte. Esta bandera se aclara cuando se lee el registro de datos IICD, en modo receptor o cuando se escribe un nuevo dato en el IICD, en modo transmisor. 0: Transferencia en progreso 1: Se ha completado una transferencia IAAS: Esta bandera indica cuando un esclavo, solicitado por coincidencia en direccin, ha respondido al llamado o cuando el bit GCAEN es 1 y un evento de llamada general ha sido recibido. Escribir en el registro IICC1, aclara esta bandera. 0: No se ha dado un direccionamiento 1: Ha coincidido un direccionamiento BUSY: Esta bandera indica el estado del BUS sin importar si se es maestro o esclavo. Esta bandera es 1 cuando se ha detectado un evento de start y es 0 cuando se detecta un evento de stop. 0: El BUS est desocupado (IDLE) 1: El BUS est ocupado ARBL: Esta bandera indica cuando un maestro ha perdido el arbitramiento del BUS. Esta bandera se aclara escribiendo un 1 en ella. 0: Sistema en operacin normal 1: Se ha perdido el arbitramiento SRW: Cuando se est direccionando un esclavo, este bit indica el valor del bit R/W de la direccin a la que se llama y que fue enviada por el maestro. 0: Esclavo recibiendo, el maestro escribe sobre el esclavo 1: Maestro recibiendo, el esclavo escribe sobre el maestro IICIF: Este bit indica cuando hay una interrupcin pendiente. Esta bandera se aclara escribiendo un 1 en ella, durante la rutina a la atencin de interrupcin. Los eventos que ponen a 1 esta bandera son: _ Se ha completado la transferencia de un byte _ Se ha dado una coincidencia en la solicitud de direccin sobre un esclavo _ Se ha perdido el arbitramiento 0: No hay interrupcin pendiente 1: Hay interrupcin pendiente RXAK: Bandera que indica que se ha dado una seal de acknowledge (ACK), desde el dispositivo que ha recibido el dato enviado. Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 34

0: Se recibi seal de ACK 1: No se recibi seal de ACK

4.4.5. Registro de datos (IICD)


La Figura 40 ilustra sobre el registro de datos del mdulo I2C. La lectura sobre este registro devuelve el byte que acaba de llegar y la escritura deposita el byte siguiente a enviarse.

Figura 40. Registro de Datos

4.4.6. Registro de control 2 (IICC2)


La Figura 41 ilustra sobre el registro de control 2 del mdulo IIC.

Figura 41. Registro de control 2 GCAEN: Bit para habilitar generacin de una llamada general en el BUS IIC. 0: Inhibe una llamada general 1: Habilita una llamada general ADEXT: Bit para determinar el formato de la direccin de los dispositivos. 0: Direcciones en 7 bits 1: Direcciones en 10 bits AD8:AD10: Bits que configuran la parte alta de la direccin del dispositivo, en modo de 10 bits

4.5.

Otras funciones importantes del mdulo IIC

o Repeticin de la condicin de start: Esta propiedad del mdulo IIC permite que se genere, en cualquier momento, una condicin de start sin necesidad de haber sucedido una condicin de stop anterior. o Procedimiento de arbitraje: Esta propiedad permite que varios maestros estn conectados al BUS IIC. Cuando dos o ms maestros tratan de acceder al BUS al mismo tiempo, un proceso de sincronizacin determinar si el maestro pierde esta propiedad. Un maestro pierde el arbitramiento si este transmite un 1 mientras otro maestro est transmitiendo un 0, en ese momento el maestro perdedor se deber conmutar como esclavo. Para Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 35

este caso, la trama hacia el esclavo no llevar condicin de stop. Esta accin es indicada por el bit IICS[ARBL] = 1. o Procedimiento de llamada general: Esta propiedad permite al maestro encuestar sobre la presencia de un esclavo con una direccin determinada. Una llamada general se puede hacer en formato de 7 o 10 bits de direccin. Cuando un esclavo identifica que el llamado coincide con su propia direccin, el bit IICS[IAAS] es puesto a 1 y el llamado deja de ser general. Si la direccin llamada es la 0x00, se tratar entonces de una llamada general y el software del usuario determinar la accin a tomar. Si el bit IICC2[GCAEN] = 0, el bit de ACK no es devuelto y el dato es ignorado.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 36

5. Universal Serial Bus (USB)


Una interfaz para muchos dispositivos. Este protocolo es muy verstil para una variedad de dispositivos perifricos. Dispositivos de almacenamiento, mouse, teclado, impresora, etc. Configuracin automtica. Cuando se conecta el dispositivo a una PC, este es detectado automticamente, indicando a la PC que drivers necesita para su funcionamiento. Cables estndar. Utiliza cables para conexin estndar y de variadas longitudes No requiere seteos ni configuraciones. Cuando se conecta un dispositivo, automticamente se configura y se reporta a la PC indicando las caractersticas de funcionamiento. No requiere suministro de potencia. El protocolo provee un pin de 5V, y permite suministrar hasta 500mA.

5.2. Principales caractersticas


5.2.1. Implementacin Fsica
5.2.1.1. Aspecto elctrico A nivel elctrico, el cable USB transfiere la seal y la alimentacin sobre 4 hilos.

Figura 42. Lneas de comunicacin USB 1.1 y 2.0 A nivel de alimentacin, el cable proporciona la tensin nominal de 5 V. Es necesario definir correctamente el dimetro del hilo con el fin de que no se produzca una cada de tensin demasiado importante en el cable. Una resistencia de terminacin instalada en la lnea de datos permite detectar el puerto y conocer su configuracin (1,5 o 12 Mbits/s). A nivel de seal, se trata de un par trenzado con una impedancia caracterstica de 90 . La velocidad puede ser tanto de 12 Mbits/s como de 1,5 Mbits/s. La sensibilidad del receptor puede ser de, al menos, 200mV y debe poder admitir un buen factor de rechazo de tensin en modo comn. El reloj se transmite en el flujo de datos, la codificacin es de tipo NRZI, existiendo un dispositivo que genera un bit de relleno (bit stuffing) que garantiza que la frecuencia de reloj permanezca constante. Cada paquete va precedido por un campo de sincronismo. Consumo: Cada seccin puede proporcionar una determinada potencia mxima siendo el PC el encargado de suministrar la energa. Adems, el perifrico puede estar autoalimentado (self powered).

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 37

Control de consumo: El ordenador gestiona el consumo, teniendo capacidad de poner en reposo (suspend) o en marcha a un perifrico USB. En reposo, este reduce su consumo (si puede), quedndose la parte USB funcional. Esta gestin est orientada especialmente a los equipos porttiles.

5.2.2. Velocidad de Transferencia


El protocolo USB puede funcionar comnmente a 3 velocidades. Dichas velocidades tiene caractersticas especficas de implementacin dependiendo de la especificacin USB: La especificacin USB 1.0 define low and full speed. Low speed permite una velocidad de bus de 1,5 Mbits/seg. A full speed el bus USB puede funcionar a 12 Mbits/seg. La especificacin USB 2.0 permite una velocidad de Bus de 480 Mbits/seg, lo que permite una tasa de transferencia de datos de 53 MBytes/seg. Hay una diferencia notable entre esta especificacin y la anterior. Se debe aclarar que para implementar el USB 2.0 se requiere un diseo de HW especial, mediante 2 lneas diferenciales de datos. Cada lnea tiene una impedancia caracterstica de 45 Ohms a tierra o de 90 ohms diferenciales y componentes para el filtrado de ruido.

5.2.3. USB On-The-Go


Como USB se convirti en la interfaz preferida para todo tipo de perifricos, los desarrolladores empezaron a pedir una forma de conectar sus perifricos directamente entre s y con otros perifricos USB. Por ejemplo, un usuario puede querer conectar una impresora directamente a una cmara o conectar dos unidades en conjunto para el intercambio de archivos. On-The-Go (OTG) Suplemento para la especificacin USB 2.0 lanzado en 2001define una limitada capacidad de funcin de host que pueden implementar los dispositivos para permitir la comunicacin con los perifricos.

5.2.4. Componentes del Bus


Los componentes fsicos del Universal Serial Bus consisten de los circuitos, conectores, y cables entre un host y uno o ms dispositivos. El host es una PC u otro dispositivo que contenga un controlador host USB y un hub root. Estos componentes trabajan juntos para habilitar el sistema operativo que permite la comunicacin con los dispositivos del bus. El formato de datos del controlador del host para transmitir sobre el bus y traducir el dato recibido a un formato que los componentes del sistema operativo puedan entender. A hub has one or more ports for connecting devices. Each device must contain circuits and code that know how to communicate with the host. The USB specification defines the cables and connectors that connect devices to hubs. El controlador host tambin realiza otras funciones relacionadas con la gestin de las comunicaciones en el bus. El hub root tiene uno o ms conectores para conexin de dispositivos. El Hub root, en combinacin con el controlador host, detecta y remueve los dispositivos, lleva a cabo las solicitudes desde el controlador host, y transfiere los datos entre los dispositivos y el controlador de host. Los dispositivos son los perifricos y hubs adicionales que se conectan al bus.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 38

Un Hub tiene uno o ms puertos para conectar dispositivos. Cada dispositivo debe contener los circuitos y el cdigo que le indique cmo comunicarse con el host. La especificacin USB define los cables y conectores que conectan los dispositivos a los Hubs.

Figura 43. Diagrama en bloques de un bus tpico.

5.3.

Elementos de una transferencia USB.

Cada transferencia USB est integrada por una o ms transacciones, y a su vez, cada transaccin contiene paquetes. Antes de explicar cmo est conformada una transferencia, se definen algunos trminos.

5.3.1.

Endpoints

Todo el trfico del bus viaja desde o hacia los endpoint de cada dispositivo. Un endpoint es un buffer que almacena datos. Tpicamente es un bloque de memoria o un registro ubicado en el chip

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 39

del controlador del dispositivo. Los datos almacenados en un endpoint son datos recibidos o datos que estn esperando ser transmitidos. El host tambin tiene buffers que almacenan los datos recibidos y los datos que esperan ser transmitidos, pero no tienen endpoint. En su lugar, el host da inicio o fin a las comunicaciones con los endpoints de los dispositivos. La especificacin USB define a un endpoint como una porcin nica direccionable del dispositivo USB que es origen o destino de la informacin en el flujo de comunicacin entre el host y el dispositivo. La direccin de un endpoint est compuesta por el nmero de endpoint y su sentido. El nmero de endpoint es un valor entre 0 a 15, y el sentido est definido desde la perspectiva del host. Un endpoint de entrada (IN) proporciona datos para ser enviados al host, y un endpoint salida (OUT) almacena datos recibidos del host. Un endpoint configurado para transferencias de control debe transferir datos en ambos sentidos, por lo que est compuesto por un endpoint cuya sentido es de entrada y salida, compartiendo el mismo nmero. Los endpoints de control son una clase especial por ser bidireccionales. Cada dispositivo debe tener un endpoint cero configurado como endpoint de control. Raramente se necesitan adicionales. Otros tipos de transferencias envan datos en un solo sentido. Un nmero simple de endpoint puede soportar los dos tipos de sentidos, entrada o salida. Un dispositivo, por ejemplo, puede tener un endpoint 1 de entrada para enviar datos al host y otro endpoint 1 de salida para recibir datos del host. Adicionalmente al endpoint 0, un dispositivo full o high speed tiene hasta 30 endpoint adicionales, el nmero del endpoint desde uno a quince y el sentido de transmisin, entrada o salida. En cambio un dispositivo low speed est limitado a dos endpoint adicionales con cualquier combinacin de sentidos. Cada transaccin en el bus comienza con un paquete que contiene un nmero de endpoint y un cdigo que indica el sentido del flujo de datos y si se inicia o no una transferencia de control. Los cdigos utilizados son IN, OUT y SETUP. Una transaccin del tipo SETUP es similar a una OUT por la razn de que los datos viajan desde el host al dispositivo, pero es especial porque inicia una transferencia de control. Los dispositivos deben identificar este tipo de transaccin porque esta es el nico tipo de transaccin que un dispositivo siempre debe aceptar, adems porque el dispositivo necesita identificarse y responder las solicitudes contenidas en los datos recibidos.

5.3.2. Pipes.
Antes de que una transferencia pueda realizarse, se debe establecer entre el host y el dispositivo lo que se denomina una tubera o pipe. Es una asociacin entre el endpoint de un dispositivo y el software del controlador del host. Durante el proceso de enumeracin se establecen pipes. Si el dispositivo es removido del bus, el host remueve las tuberas que no son necesarias. Cada dispositivo tiene un control por defecto de pipe utilizando el endpoint cero. La informacin de configuracin recibida por el host incluye un descriptor de endpoint para cada endpoint que el dispositivo quiera usar. Este descriptor de endpoint es un bloque de informacin que le dice al host todo lo que necesita saber sobre el endpoint del dispositivo para poder comunicarse con l. La informacin incluye la direccin del endpoint, el tipo de transferencia a usar, el tamao mximo de los paquetes de datos, y cuando sea necesario, el intervalo deseado para las trasferencias.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 40

5.3.3. Tipos de transferencias


La interfaz USB est diseada para manejar distintos tipos de dispositivos con una gran variedad de requerimientos en relacin a la frecuencia de transferencia, tiempo de respuesta y correccin de errores. En la especificacin USB se definen cuatro tipos de transferencias de datos, cada uno de estos tipos de transferencias manejan diferentes necesidades, y cada dispositivo puede utilizar la forma de transferencias que mejor se adecuen a sus necesidades. Los tipos de transferencias USB son de control, bulk, interrupt, y por ltimo isochronous. En la tabla 6 se muestra, para cada tipo de transferencia, diferentes caractersticas. La transferencia de control es la nica que est definida en la especificacin USB, es utilizada por el host para aprender sobre el dispositivo. Permite al host obtener informacin sobre el dispositivo, establecer su direccin, seleccionar configuraciones, entre otras caractersticas. Las transferencias de control tambin pueden enviar pedidos especficos del fabricante del dispositivo. Todo dispositivo USB debe dar soporte a este tipo de transferencia. Las transferencias Bulk son usadas cuando la velocidad de transferencia no es crtica; como enviar datos a una impresora o cuando se quiere acceder a archivos de un dispositivo de almacenamiento. Para estas aplicaciones son necesarias las transferencias rpidas pero los datos pueden esperar de ser necesario. Si el bus se encuentra muy ocupado la transferencia se demora pero de encontrarse libre la transferencia es la ms rpida. nicamente dispositivos full o high speed pueden realizar transferencias de este tipo. Los dispositivos de la clase Mass storage utilizan estas transferencias. Transferencias Interrupt son utilizadas por dispositivos que necesitan en forma peridica, la atencin del host o de otros dispositivos. Aparte de las transferencias de control, este tipo de transferencia es la nica forma de transferir datos para dispositivos low speed. Dispositivos como teclados o mouse utilizan este tipo de transferencias para enviar datos. Finalmente, las transferencias isochronous, tienen asegurado el tiempo de envi pero no posee correccin de errores. Esta transferencia es utilizada para audio o video reproducido en tiempo real. Es el nico tipo de transferencia que no soporta retransmisin automtica por deteccin de errores en los datos recibidos, a causa de esto se aceptan errores en forma ocasional. nicamente dispositivos full y high speed soportan estas transferencias. Tabla 6. Caractersticas principales para cada tipo de transferencia Tipo de transferencia Control Bulk Escner, dispositivos mass storage. No. No. Interrupt Isochronous

Uso Tpico

Identificacin y configuracin. S. S.

Mouse, keyboard. No. S.

Audio y video en tiempo real. No. No.

Requerido Usa low speed? Direccin del flujo de datos

IN y OUT.

In - OUT.

In - OUT

IN - OUT

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 41

Correccin de errores Tasa de transferencia garantizada? Latencia garantizada?

S.

S.

S.

No.

No.

No.

No.

S.

No.

No.

S.

S.

5.3.4. Trasferencias y transacciones.


La especificacin USB define trasferencia como el proceso de establecer y transportar las solicitudes de comunicacin. Una transferencia puede ser muy corta, enviando unos pocos bits de datos de una aplicacin, o muy larga enviando el contenido de archivos muy extensos. Cada transferencia est compuesta por una o ms transacciones, a su vez cada transaccin est formada por uno, dos o tres paquetes. La especificacin USB define transaccin como la prestacin de un servicio a un endpoint. En este caso servicio puede significar que el host enva informacin a un dispositivo, o que el host solicita y recibe informacin de un dispositivo. Cada transaccin incluye identificacin, chequeo de errores e informacin de control, as como todos los datos a enviar. Una transferencia completa puede estar compuesta por mltiples frames o microframes. Una transaccin no puede ser interrumpida ni puede establecerse otra comunicacin en el bus que pueda interrumpir una transaccin. Una transferencia con una pequea cantidad de datos puede requerir nicamente una transaccin, en cambio otras transferencias pueden requerir mltiples transacciones con una pequea cantidad de datos cada una.

5.3.5. Caractersticas de un Bloque en una transferencia


La figura siguiente muestra los elementos de una transferencia tpica. Hay transferencias y transacciones, etapas y fases, transacciones de datos y paquetes de datos, etapas de estados y fases de handshake. Las Etapas de Datos tienen paquetes de handshake y las etapas de estados tienen paquetes de datos. La Tabla 7 muestra los elementos de cada uno de los 4 tipos de transferencias. Cada transferencia consiste de una o ms transacciones, y cada transaccin consiste de uno, dos o tres paquetes. Los tres tipos de transaccin se definen por su propsito y direccin en cuanto al flujo de datos. El Setup de una transaccin enva requerimientos de transferencia de control a un dispositivo. Las transacciones OUT envan otra informacin de datos o estados al dispositivo. Las transacciones IN envan informacin de datos o estados al host. La especificacin USB define una transaccin como el suministro de servicios a un endpoint. En este caso se define servicio como el envo de informacin desde el host al dispositivo, o requerimientos del host y recepcin de informacin desde el dispositivo. Cada transaccin incluye identificacin, chequeo de error, estados, y control de informacin en todo intercambio de datos. Una transferencia completa quizs requiera mltiples frames o micro frames, pero una transaccin se debe completar sin interrupciones. Ninguna otra comunicacin puede irrumpir en el bus en el medio de una transaccin. En una transaccin el dispositivo debe responder rpidamente con los requerimientos de informacin de datos o estados. El firmware del Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 42

dispositivo configura tpicamente, un endpoint para responder a los paquetes recibidos, y el hardware responde a los paquetes cuando llegan.

Figura 44. Caractersticas de una trama de Datos Una transferencia con una pequea cantidad de datos, tal vez requiere solo una transaccin. Otras transferencias requieren mltiples transacciones con un conjunto de datos en cada.

5.3.6.

Fases de una transaccin.

Cada uno de los tipos de transferencias definidos, estn compuesto por una o ms transacciones, a su vez cada transaccin est integrada por dos o tres fases, en la tabla 7 se muestra las fases integrantes para cada tipo de transferencia. Una transaccin tiene hasta tres fases o partes que ocurren en secuencia, token, datos y handshake. A su vez en cada fase se transmiten en uno o dos paquetes. Cada uno es un bloque de informacin con un formato definido. Al comienzo de cada paquete se coloca informacin de identificacin llamado Packet ID (PID). Dependiendo de la transaccin, el PID puede estar seguido por una direccin de endpoint, datos, informacin de estado o el nmero de frame junto con los bits de chequeo de error. Fase token: el host inicia la comunicacin enviando este paquete. El PID indica el tipo de transaccin: SETUP, IN, OUT o comienzo del frame. Fase de datos: el host o el dispositivo trasfiere cualquier tipo de informacin en el paquete de datos. El PID incluye un valor de secuencia de datos ( data toggle) que es Pgina 43

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

usado para proteger a datos perdidos o duplicados cuando la transferencia tiene mltiples paquetes. Fase de handshake: el host o el dispositivo enva un cdigo que indica el estado de la transferencia, si result exitosa u ocurri algn tipo de error. En transferencias isochronous no se utiliza esta fase. Los cdigos utilizados en el PID son ACK, NAK, STALL o NYET. Tabla 7: fases integrantes de cada tipo de transferencia. Tipo de transferencia Transaccin Fases (Paquetes) Token. Setup. Una transaccin. Data. Handshake. Token. Control. Data. Cero o ms transacciones Data. Handshake. Token. Estado. Una transaccin. Data. Handshake. Token. Una o ms transacciones. Bulk. Data. (IN - OUT). Handshake. Token. Una o ms transacciones. Interrupt. Data. (IN - OUT). Handshake. Una o ms transacciones. Isochronous. (IN - OUT). Token. Data.

Las seales de handshake son transmitidas en los paquetes de handshake o datos. En todos los casos, quien recibe la informacin de handshake, la utiliza para decidir qu hacer a continuacin. Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 44

ACK: indica que el host o el dispositivo ha recibido los datos sin errores. NACK: significa que el dispositivo est ocupado o no hay datos que devolver. El host nunca utiliza este cdigo. STALL: tiene tres significados: solicitud de control no soportado, pedido de control fallido o fallo del endpoint. NYET: nicamente dispositivos high speed lo utilizan. Despus que un paquete de datos es recibido por el endpoint en un dispositivo, este puede devolver este tipo de handshake. Significa que el endpoint acepta los datos pero no est listo para recibir otro paquete de datos. Cuando el host piensa que el dispositivo puede estar listo, enva un paquete con un token especial llamado PING. El endpoint retorna un ACK para indicar que el dispositivo est listo para recibir el siguiente paquete de datos o devuelve un NAK o STALL de no estarlo. Este procedimiento es ms eficiente que enviar todo el paquete de datos, encontrar que el dispositivo no est listo, y tener que reenviar ms tarde. ERR: The ERR handshake is used only by high-speed hubs in complete-split transactions. ERR indicates the device didnt return an expected handshake in the transaction the hub is completing with the host.

5.3.7.

Chequeo de error.

La especificacin USB da los requerimientos de hardware necesarios para reducir el ruido en las lneas, y de esta forma reducir la probabilidad de errores. De todas formas cualquier perturbacin, como la desconexin de un cable USB, puede alterar otra transmisin. Por esa razn, se incorpora a cada paquete, bits para el chequeo de errores. Adicionalmente, para transferencias que requieren mltiples transacciones, se incorpora un valor llamado data toggle que mantiene al transmisor y al receptor en forma sincronizada de manera de no omitir una transaccin. Los bits para el chequeo de errores son calculados utilizado el algoritmo llamado comprobacin de redundancia cclica (CRC). El dispositivo transmisor realiza el clculo y enva el resultado con los datos transmitidos, luego el dispositivo receptor realiza un clculo similar con los datos recibidos. Si el resultado coincide significa que no han ocurrido errores por lo que se devuelve un ACK. En caso de no coincidir no se enva el handshake, lo que significa que se debe retransmitir.

5.4.

Enumeracin de dispositivos.

Antes de que una aplicacin pueda comunicarse con un dispositivo, el host necesita aprender de este. En el proceso de enumeracin es cuando ocurre el intercambio de informacin que cumple con esta tarea, para esta tarea se utiliza las transferencias del tipo de control utilizando el endpoint cero. El proceso completo incluye asignarle una direccin al dispositivo, leer los descriptores del dispositivo, asignar y cargar el controlador del dispositivo, y finalmente seleccionar la configuracin de alimentacin requerida por el dispositivo, endpoints y otras caractersticas. Una vez finalizado este proceso, el dispositivo est listo para trasferir o recibir datos utilizando los endpoint del dispositivo.

5.4.1.

Proceso de enumeracin.

Una de las capacidades del hub es detectar cuando un dispositivo se conecta o desconecta. Cada hub tiene un endpoint IN para reportar estos eventos al host. En el arranque del sistema el host

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 45

interroga a su root hub si hay dispositivos conectados, despus del arranque peridicamente se realiza esta accin. En el proceso de reconocimiento de un nuevo dispositivo, el host enva una serie de solicitudes al hub donde se conecto el dispositivo. El hub establece la comunicacin entre el dispositivo y el host. Luego, el host intenta enumerar el dispositivo realizando transferencias de control, las cuales contienen solicitudes estndar dirigidas al endpoint cero del dispositivo. Para que este proceso termine satisfactoriamente, el dispositivo debe responder a cada solicitud retornando la informacin pedida y realizando las tareas solicitadas. Tpicamente el firmware de un dispositivo contiene toda la informacin que el host puede solicitar pero no debe asumir que el proceso va a ocurrir en un orden determinado.

5.4.2. Descriptores.
Los descriptores son estructuras de datos o bloques de informacin, que le permiten al host aprender del dispositivo. Cada descriptor contiene informacin del dispositivo en su totalidad o de un elemento del dispositivo. Son solicitados durante el proceso de enumeracin por el host utilizando transferencias del tipo de control. A medida que el proceso de enumeracin progresa la solicitud de descriptores se concentra en caractersticas ms especficas: primero en todo el dispositivo, despus en cada configuracin, posteriormente en la configuracin de cada interfaz, y finalmente, en los endpoint de cada interfaz. El descriptor tiene un registro que indica el tamao en bytes del mismo llamado bLength. En la tabla 8 se muestran los distintos tipos de descriptores, en dicha tabla la columna bDescriptor Type contiene un valor hexadecimal que identifica el tipo de descriptor. Tabla 8. Se muestran los tipos de descriptores bDescriptor 01h 02h 03h 04h 05h Tipo descriptor. Dispositivo. Configuracin. string Interfaz. Endpoint. Requerido? S. S. No. Texto descriptivo opcional. S. No, si el dispositivo nicamente usa endpoint 0. S, para dispositivos que soportan full y high speed. S, para dispositivos que soportan full y high speed. No.

06h

device qualifier.

07h 08h

other_speed_configuration interface_power

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 46

09h 0Ah 0Bh

OTG debug interface_association

Solo para dispositivos OTG. No. Para dispositivos compuestos.

A continuacin se describen los principales tipos de descriptores: Descriptor de dispositivo: contiene informacin bsica acerca del dispositivo, al conectarse un dispositivo, este es el primer descriptor que el host solicita. Un dispositivo puede tener un slo descriptor de este tipo. Estos descriptores proveen informacin general acerca del fabricante, nmero de producto, nmero de serie, clase de dispositivo y el nmero de configuraciones admitidas. A continuacin se indican los elementos que forma parte del descriptor de dispositivo: bcdUSB: indica la versin en BCD, ej versin 2.0 se indica 0200h idVendor: el host tiene un archivo .inf que contiene este valor idProduct: identificacin del producto bcdDevice: versin del producto en BCD iManufacturer: es un ndice que apunta a una descripcin del fabricante iProduct: ndice que apunta a una descripcin del producto iserialnumber: un ndice que apunta al nmero de serie del dispositivo

Descriptor de configuracin: Provee informacin acerca de los requerimientos de alimentacin del dispositivo y cuantas interfaces son soportadas. Puede existir ms de una configuracin para un dispositivo, aunque tpicamente se utiliza una. bNumConfigurations: nmero de configuraciones que soporta el dispositivo bMaxPacketSize0: el tamao mximo de paquete para el endpoint 0. Para full speed se puede usar hasta 64 bDeviceClass: para dispositivos cuya funcin es definida a nivel de dispositivo. Por Ejemplo un hub o un controlador wireless bDeviceSubclass: es una subclase de una clase, ejemplo controlador RF es una subclase del controlador wireless bDeviceProtocol: indica el protocolo de la clase, ejemplo bluetooth para un controlador wireless.

Descriptor de endpoint: identifican el tipo de transferencia, su sentido y otros datos especficos de un endpoint. En un dispositivo puede haber varios endpoints y pueden compartir distintas configuraciones. Descriptor String: son descriptores opcionales, proveen informacin descriptiva acerca de una caracterstica del dispositivo.

Adicionalmente a los descriptores estndar, un dispositivo puede contener descriptores especficos del fabricante. Estos descriptores ofrecen una va estructurada para que el dispositivo pueda proporcionar informacin detallada sobre s mismo.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 47

5.5.

Registros asociados al mdulo USB

5.5.1. Registro del ID del perifrico (PER_ID)


La Figura 45 ilustra sobre el registro del ID del perifrico del mdulo USB.

Figura 45. Registro de ID del Perifrico IDx: Bits para la identificacin del perifrico. Por defecto siempre se lee como un perifrico 0x04.

5.5.2. Registro de ID complementario (ID_COMP)


La Figura 46 ilustra sobre el registro de ID complementario del mdulo USB.

Figura 46. Registro ID complementario NIDx: Bits como complemento a 1 del ID del perifrico.

5.5.3. Registro de la revisin del perifrico(REV)


La Figura 47 ilustra sobre el registro de revisin del mdulo USB.

Figura 47. Registro de Revisin del USB REVx: Bits que indican el nmero de revisin del ncleo del USB.

5.5.4. Registro de informacin adicional del perifrico (ADD_INFO)


La Figura 48 muestra el registro de informacin adicional del mdulo USB.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 48

Figura 48. Registro de Informacin Adicional del Perifrico IRQ_NUM: Nmero de interrupcin asignada al perifrico. IEHOST: Este bit es puesto a 1 cuando est habilitado el modo HOST.

5.5.5. Registro del estado de la interrupcin en modo OTG (OTG_INT_STAT)


Este registro almacena los cambios en el ID y las seales del VBUS (Bus de alimentacin USB). El software deber leer este registro, para determinar que evento ha generado esta interrupcin. Slo los bits que han cambiado desde la ltima lectura se ponen a 1. Para borrar el estado de un bit, basta con escribir un 1 en este. La Figura 49 muestra el registro del estado de interrupcin en modo OTG.

Figura 49. Registro de Estado de Interrupcin en modo OTG ID_CHG: Este bit es puesto a 1 cuando se presenta un cambio de estado en el pin ID del conector USB. 0: No se ha presentado un cambio en el pin ID del conector USB. 1: Se ha presentado un cambio en el pin ID del conector USB. 1_MSEG: Este bit indica cuando ha pasado un milisegundo. Este bit debe ser aclarado cada que se necesite verificar el milisegundo. 0: No se ha completado un tiempo de 1ms. 1: Se ha completado un tiempo de 1ms. LINE_STAT_CHG: Este bit indica cuando la lnea de estado del USB cambia. La interrupcin asociada a este bit se puede utilizar para detectar un estado de RESET, resumen, conexin y datos como seales pulsantes. 0: No se ha detectado un cambio en la lnea de estado USB. 1: detectado un cambio en la lnea de estado USB. SESS_VLD_CHG: Este bit indica cuando se ha detectado un cambio en la lnea VBUS indicando que hay una sesin vlida. 0: No se ha detectado una sesin vlida. 1: Se ha detectado una sesin vlida.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 49

B_SESS_CHG: Este bit indica cuando se ha detectado un cambio en la lnea VBUS por un terminal tipo B. 0: No se ha detectado un cambio por un terminal tipo B. 1: Se ha detectado un cambio por un terminal tipo B. A_SESS_CHG: Este bit indica cuando se ha detectado un cambio en la lnea VBUS por un terminal tipo A. 0: No se ha detectado un cambio por un terminal tipo A. 1: Se ha detectado un cambio por un terminal tipo A.

5.5.6. Registro del control de la interrupcin en modo OTG (OTG_INT_EN)


Este registro habilita bit a bit las posibles interrupciones del modo OTG. La Figura 50 muestra el registro de control de interrupcin en modo OTG.

Figura 50. Registro del control de la interrupcin en modo OTG ID_EN: Habilita la interrupcin por evento ID. 0: La interrupcin por evento ID est deshabilitada. 1: La interrupcin por evento ID est habilitada. 1_MSEG_EN: Habilita la interrupcin por evento 1_MSEG. 0: La interrupcin por evento 1_MSEG est deshabilitada. 1: La interrupcin por evento 1_MSEG est habilitada. LINE_STAT_EN: Habilita la interrupcin por evento LINE_STAT_CHG. 0: La interrupcin por evento LINE_STAT_CHG est deshabilitada. 1: La interrupcin por evento LINE_STAT_CHG est habilitada. SESS_VLD_CHG: Habilita la interrupcin por evento SESS_VLD_CHG. 0: La interrupcin por evento SESS_VLD_CHG est deshabilitada. 1: La interrupcin por evento SESS_VLD_CHG est habilitada. B_SESS_EN: Habilita la interrupcin por evento B_SESS _CHG. 0: La interrupcin por evento B_SESS _CHG est deshabilitada. 1: La interrupcin por evento B_SESS _CHG est habilitada. A_SESS_EN: Habilita la interrupcin por evento A_SESS _CHG. 0: La interrupcin por evento A_SESS _CHG est deshabilitada. 1: La interrupcin por evento A_SESS _CHG est habilitada.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 50

5.5.7. Registro de estado de interrupcin (OTG_STAT)


Este registro muestra el valor actual desde las salidas del comparador externo del pin ID y el VBUS. La Figura 51 muestra el registro de control de interrupcin en modo USB A/B.

Figura 51. Registro de estado de interrupcin ID: Este bit es puesto a 1 cuando se presenta un cambio de estado en el pin ID del conector USB. 0: Indica que un cable tipo A ha sido conectado al conector USB. 1: Indica que no se ha establecido una conexin o que un cable tipo B ha sido conectado al conector USB. 1_MSEG_EN: Este bit no se usa. LINE_STATE_STABLE: Este bit indica que las lneas internas, que controlan el LINE_STAT_CHG se han estabilizado por al menos 1 milisegundo. Primero se lee el bit LINE_STAT_CHG y luego se lee el LINE_STATE_STABLE. 0: La lnea LINE_STAT_CHG no est estable. 1: La lnea LINE_STAT_CHG est estable. SESS_VLD: Este bit indica cuando una sesin es vlida. 0: El voltaje VBUS est por debajo del umbral de una sesin vlida tipo B. 1: El voltaje VBUS corresponde al umbral de una sesin vlida tipo B. B_SESS_END: Este bit indica cuando una sesin tipo B ha terminado. 0: El voltaje VBUS corresponde al umbral de un final de una sesin tipoB. 1: El voltaje VBUS est por debajo del umbral de un final de una sesintipo B. A_VBUS_VLD: Este bit indica cuando el VBUS tipo A es vlido. 0: El voltaje VBUS est por debajo del umbral vlido del VBUS tipo A. 1: El voltaje VBUS corresponde al umbral vlido del VBUS tipo A.

5.5.8. Registro de control OTG (OTG_CTRL)


Este registro controla la operacin del VBUS y de las resistencias asociadas a la lnea de datos del USB. La Figura 52 muestra el registro de control OTG.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 51

Figura 52. Registro de control OTG DP_HIGH: Habilita el pullup para la lnea D+. 0: El pullup para la lnea D+ no est habilitado. 1: El pullup para la lnea D+ est habilitado. DP_LOW: Habilita el puldlown para la lnea D+. 0: El pulldown para la lnea D+ no est habilitado. 1: El pulldown para la lnea D+ est habilitado. DM_LOW: Habilita el pulldown para la lnea D-. 0: El pulldown para la lnea D- no est habilitado. 1: El pulldown para la lnea D- est habilitado. VBUS_ON: Seal de encendido del VBUS. 0: La seal de encendido del VBUS no est puesta. 1: El VBUS est encendido. OTG_EN: Habilita una resistencia pullup/pulldown para el modo OTG. 0: Si el bit USB_EN est en 1 y el bit HOST_MODE es 0, se habilita una resistencia de pullup para el pin D+. Si el bit HOST_MODE es 1, se ubican pulldowns para las lneas D+ y D-. 1: Los controles sobre los pullups y pulldowns son usados. VBUS_CHG: Inserta una resistencia a la seal de VBUS. 0: No inserta una resistencia a la seal de VBUS. 1: Inserta una resistencia a la seal de VBUS. VBUS_DSCHG: Inserta una resistencia de descarga a la seal de VBUS. 0: No inserta una resistencia de descarga a la seal de VBUS. 1: Inserta una resistencia de descarga a la seal de VBUS.

5.5.9. Registro de estado de interrupcin (INT_STAT)


Contiene una serie de bits para cada evento de interrupcin del mdulo USB y pertenecen a una sola fuente de interrupcin del microcontrolador ColdFire V1. Para aclarar cada bit, es necesario escribirlo a 1 una vez se haya atendido el evento de interrupcin. La Figura 53 muestra el registro de estado de interrupcin.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 52

Figura 53. Registro de estado de interrupcin STALL: Cuando el dispositivo est en modo objetivo (Target), este bit se pone a 1 cuando el SIE (Serial Interface Engine) enva una seal de STALL. Cuando se est en modo HOST, este bit se pone a 1 cuando el mdulo USB detecta una seal de STALL. Esta interrupcin puede ser usada para determinar si la ltima transaccin USB fue completada con xito o si par (STALL). ATTACH: Interrupcin por enganche. Este bit es puesto a 1 cuando el mdulo USB detecta un enganche de un dispositivo USB. Esta seal slo ser vlida si el bit HOST_MODE_EN =1. esta interrupcin indica que un perifrico est conectado y deber ser configurado. RESUME: Este bit es puesto a 1 dependiendo de las seales DP/DM y puede ser usado como una seal remota para despertar el dispositivo pegado al bus USB. SLEEP: Este bit es puesto a 1 cuando el mdulo USB detecta un evento de modo vago (IDLE), durante 3 milisegundos. Este temporizador es aclarado al detectarse actividad en el bus USB. TOK_DNE: Este bit se pone a 1 cuando se ha completado el proceso actual de testigo (TOKEN). El ncleo del ColdFire V1 deber leer, inmediatamente, el registro STAT para determinar el terminal y el BD usados para el TOKEN. Aclarar este bit causa que el registro STAT sea borrado o que el estado retenido del registro STAT sea almacenado en el registro STAT. SOFT_TOK: Este bit se pone a 1 cuando mdulo USB recibe una seal de TOKEN de inicio de trama (Start Of Frame). ERROR: Este bit es puesto a 1 cuando alguna de las condiciones de error en el registro ERR_STAT ocurre. El ncleo del ColdFire V1 deber leer, inmediatamente, el registro ERR_STAT para determinar la fuente del error. USB_RST: Este bit es puesto a 1 cuando el mdulo USB a decodificado un RESET vlido. La accin anterior informa al microcontrolador que podr escribir un 0x00 dentro del registro de direcciones y habilitar el terminal 0.

5.5.10. Registro de habilitacin de interrupciones (INT_ENB)


Contiene una serie de bits para habilitar cada fuente de interrupcin del mdulo USB. La Figura 54 muestra el registro de habilitacin de las interrupciones.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 53

Figura 54. Registro de habilitacin de interrupciones (INT_ENB) STALL_EN: Bit para habilitar interrupcin por un evento tipo STALL. 0: Inhibe interrupcin por evento STALL. 1: Habilita interrupcin por evento STALL. ATTACH_EN: Bit para habilitar interrupcin por un evento tipo ATTACH. 0: Inhibe interrupcin por evento ATTACH. 1: Habilita interrupcin por evento ATTACH. RESUME_EN: Bit para habilitar interrupcin por un evento tipo RESUME. 0: Inhibe interrupcin por evento RESUME. 1: Habilita interrupcin por evento RESUME. SLEEP_EN: Bit para habilitar interrupcin por un evento tipo SLEEP. 0: Inhibe interrupcin por evento SLEEP. 1: Habilita interrupcin por evento SLEEP. TOK_DNE_EN: Bit para habilitar interrupcin por un evento tipo TOK_DNE. 0: Inhibe interrupcin por evento TOK_DNE. 1: Habilita interrupcin por evento TOK_DNE. SOF_TOK_EN: Bit para habilitar interrupcin por un evento tipo SOF_TOK. 0: Inhibe interrupcin por evento SOF_TOK. 1: Habilita interrupcin por evento SOF_TOK. ERROR_EN: Bit para habilitar interrupcin por un evento tipo ERROR. 0: Inhibe interrupcin por evento ERROR. 1: Habilita interrupcin por evento ERROR. USB_RST_EN: Bit para habilitar interrupcin por un evento tipo USB_RST. 0: Inhibe interrupcin por evento USB_RST. 1: Habilita interrupcin por evento USB_RST.

5.5.11. Registro de estado de interrupcin por error (ERR_STAT)


Contiene una serie de bits para detectar cada fuente de interrupcin por error en el mdulo USB. Todos estos bits conforman una OR alambrada y esta a su vez afecta el bit INT_STAT [ERROR]. Los bits pueden ser borrados escribiendo un 1 en estos. La Figura 55 muestra el registro de deteccin de las interrupciones.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 54

Figura 55. Registro de estado de interrupcin por error (ERR_STAT) BTS_ERR: Este bit se pone a 1 en la deteccin de error por evento de BIT STUFF (Bit de relleno para sincrona). DMA_ERR: Este bit se pone a 1 si el mdulo USB hace un requerimiento al DMA de la lectura de un nuevo BDT, pero no fue posible obtener el dato desde el bus, tanto para lectura como para escritura. Si se est procesando una transferencia tipo TX (IN), esta puede causar una condicin de bajo-flujo (underflow). Si se est procesando una transferencia tipo RX (IN), esta puede causar una condicin de sobreflujo (overflow). Este tipo de condicin es muy usada en el desarrollo de arbitramiento de dispositivos, tanto para el microprocesador como para el mdulo USB. Lo anterior minimiza la demanda en el requerimiento de bus y tiempos de inactividad muy grandes ( grand latency). Este bit tambin es puesto a 1 si un paquete de datos supera el tamao mximo especificado en el BDT, para este caso la mquina trunca el paquete y lo almacena en el buffer de memoria. BTO_ERR: Este bit se pone a 1 en la deteccin de error por evento de un tiempo por fuera (timeout) en la devolucin del bus (bus turnaround). El mdulo USB contiene un temporizador para el bus turnaround. DFN8: Este bit se pone a 1 si el campo del dato recibido no tiene 8 bits de longitud. CRC16: Este bit se pone a 1 cuando un paquete es rechazado por un error en el chequeo cclico redundante CRC16. CRC5_EOF: Este bit tiene dos funciones: La primera es que si el Mdulo USB est operando en modo perifrico (HOST_MODE_EN = 0) y se detecta un error de redundancia cclica tipo CRC5, el bit se pone a 1. La segunda funcin es que si el mdulo est operando en modo HOST (HOST_MODE_EN = 1) y se detecta un error por fin de trama (EOF), este bit se pone a 1. Este tipo de interrupcin se usa en el software para el despacho de paquetes de informacin y garantizar que no ocurran cruces en las transacciones, al comienzo de una nueva trama. PID_ERR: Este bit se pone a 1 cuando el PID de una transaccin falla.

5.5.12. Registro de habilitacin de interrupcin por error (ERR_ENB)


Contiene una serie de bits para habilitar cada fuente de interrupcin por error en el mdulo USB. Poniendo a 1 uno de estos bits, habilita la respectiva interrupcin en el registro ERR_STAT. La Figura 56 muestra el registro de habilitacin de las interrupciones.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 55

Figura 56. Registro de habilitacin de interrupcin por error BTS_ERR_EN: Bit para habilitar la interrupcin por evento de BTS_ERR. 0: Inhibe interrupcin por evento BTS_ERR. 1: Habilita interrupcin por evento BTS_ERR. DMA_ERR_EN: Bit para habilitar la interrupcin por evento de DMA_ERR. 0: Inhibe interrupcin por evento DMA_ERR. 1: Habilita interrupcin por evento DMA_ERR. BTO_ERR_EN: Bit para habilitar la interrupcin por evento de BTO_ERR. 0: Inhibe interrupcin por evento BTO_ERR. 1: Habilita interrupcin por evento BTO_ERR. DFN8_EN: Bit para habilitar la interrupcin por evento de DFN8. 0: Inhibe interrupcin por evento DFN8_EN. 1: Habilita interrupcin por evento DFN8_EN. CRC16_EN: Bit para habilitar la interrupcin por evento de CRC16. 0: Inhibe interrupcin por evento CRC16_EN. 1: Habilita interrupcin por evento CRC16_EN. CRC5_EOF_EN: Bit para habilitar la interrupcin por evento de CRC5_EOF. 0: Inhibe interrupcin por evento CRC5_EOF. 1: Habilita interrupcin por evento CRC5_EOF. PID_ERR_EN: Bit para habilitar la interrupcin por evento de PID_ERR. 0: Inhibe interrupcin por evento PID_ERR. 1: Habilita interrupcin por evento PID_ERR.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 56

Apndice
1. Mdulo Serial en la Familia HC908
Este modulo no se encuentra en el HC908QY4, pero se encuentra en la mayora de los MCUs de la Familia HC908 [3] y [4].

1.1. Caractersticas
Full duplex, Alta Velocidad, asincrnico, programable de 8 o 9 bit de largo de caracter. Dos mtodos de receiver wakeup. Pedidos de Interrupcin separados para Rx y Tx. Habilitacin separada del Transmisor y el Receptor. Polaridad programable de la salida del Transmisor. Operacin dirigida por INTS con ocho Flags de interrupcin. Transmitter Empty Transmission Complete Receiver Full Idle Receiver Input Receiver Overrun Noise Error Framing Error Parity Error Modo de operacin Low power Framing Error Detection en el receptor Chequeo de Paridad por Hardware

1.2. Descripcin de la comunicacin serie [2]


Utiliza el sistema doble buffer. El flag SCTE se setea cada vez que un nuevo dato es transferido desde el buffer TDR al shift register de transmisin serie. El flag SCRF se setea cada vez que un nuevo dato es transferido desde el shift register al buffer RDR. El registro SCDR es un solo registro que al escribirlo, se escribe el buffer TDRx y al leerlo, se lee el buffer RDRx. Se pueden seleccionar 2 formatos de datos diferentes a transmitir, uno de ellos es de 8 bits, donde hay un bit de inicio, un bit de stop y 8 bit de datos. El otro Formato es de 9 bits, con 1 bit de inicio, un bit de stop, un bit de paridad extra u otro stop y 8 bit de datos. Caracteres de Datos Especiales: Break - No tiene bits de Start o Stop bits, existe como un cero lgico por un tiempo de 10 11 bit (Formato de Datos de 8 o 9 bits respectivamente) Idle - No tiene bits de Start o Stop, existe como un uno lgico por un tiemp o de 10 11 bit (Formato de Datos de 8 o 9 bits respectivamente) Prembulo - Un carcter idle de sincronismo

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 57

1.3. Registros I/O del SCI


Siete registros I/O controlan y monitorean la operacin del SCI: SCI Control Register 1 (SCC1) SCI Control Register 2 (SCC2) SCI Control Register 3 (SCC3) SCI Status Register 1 (SCS1) SCI Status Register 2 (SCS2) SCI Data Register (SCDR) SCI Baud Rate Register (SCBR) El mdulo de SCI de la flia. HC908 tiene un mejor manejo automtico de la recepcin de informacin serial con paridad (implementada por hardware interno), mayor velocidad de TX / RX por medio de dos alternativas de Clocks de sincronismo (Fbus y External Clock) y hasta un mejor manejo de comunicaciones serial del tipo Network o Red con mltiples nodos.

1.3.1. Registo SCI de Baud Rate


Este registro permite seleccionar el baud rate para el transmisor del SCI. Los bits SCI baud rate prescaler (SCP1,SCP0) dividen la frecuencia del BUS (fBus) por un mltiplo de 64, 1, 3, 4, o 13. Los bits SCI baud rate select bits (SCR2 - SCR0) permiten seleccionar el baud rate de transmisin desde el prescaler output y dividen la frecuencia de la salida del preescalador por 1, 2, 4, 8, 16, 32, 64, o 128.

Figura 57. Registro de seleccin de tasa de baudios. Para una frecuencia de BUS = 4,9152 MHz se pueden obtener los siguientes Baud rates: Tabla 9. Configuracin de los bits SCR Frecuencia de Bus = 4.9152 Mhz Mximo Baud Rate (desde tabla prescalador ) SCR2 SCR1 SCR0 Divisor 76.80K Baud 19.20K Baud 0 0 0 1 76.80K Baud 19.20K Baud 0 0 1 2 38.40K Baud 9600 Baud 0 1 0 4 19.20K Baud 4800 Baud 0 1 1 8 9600 Baud 2400 Baud 1 0 0 16 4800 Baud 1200 Baud 1 0 1 32 2400 Baud 600 Baud 1 1 0 64 1200 Baud 300 Baud 1 1 1 128 600 Baud 150 Baud

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 58

SCP1 0 0 1 1

Tabla 10. Configuracin de los Bits SCP SCP0 Divisor Mximo Baud Rate 0 1 76.80K Baud 1 3 25.833K Baud 0 4 19.20K Baud 1 13 5.908K Baud

1.3.2. Registro de Interrupciones y de configuracin del Tx


El bit SCI Transmit Interrupt Enable (SCTIE) produce una interrupcin cuando el registro de datos Tx queda vaco. El prximo byte puede ser cargado en el registro de datos Tx. 1 = Habilita interrupcin 0 = Deshabilita interrupcin El bit Transmission Complete Interrupt Enable (TCIE) produce una interrupcin cuando Tx est Completa. Un byte ha sido enviado. 1 = Habilita interrupcin 0 = Deshabilita interrupcin El bit Transmitter Enable (TE) habilita la operacin de TX y enva un prembulo. 1 = Habilita el transmisor 0 = Deshabilita el transmisor El bit SCI Enable (ENSCI) habilita al SCI y al generador de baud rate SCI y permite al SCI ser deshabilitado para baja potencia. 1 = SCI habilitado 0 = SCI deshabilitado El bit Character Length Select (M) 1 = Caracteres SCI de 9-bit 0 = Caracteres SCI de 8-bit El bit Parity Enable (PEN) 1 = habilitado 0 = Deshabilitado El bit Parity Type (PTY) 1 = paridad impar 0 = paridad par Con los 3 ltimos bits (M,PEN, PTY), en el mdulo de SCI, se puede setear el largo del caracter, si lleva paridad o no y de qu tipo, y si se utiliza 1 o 2 bits de stop. Se debe destacar que, en los mdulos de SCI de los MCUs HC908, cuando se trabaja con paridad (par impar), la misma es generada (en la TX) y decodificada (en la RX) en forma automtica por el mismo.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 59

Figura 58. Registro SCC1

Figura 59. Registro SCC2 Tabla 11. Seleccin del largo de caracter M 0 1 0 0 1 1 PEN 0 0 1 1 1 1 PTY x x 0 1 0 1 Character Length 1 start + 8 (7) data + 1 (2) stop 1 start + 9 (8) data + 1 (2) stop 1 start + 7 data + Even +1 stop 1 start + 7 data + Odd +1 stop 1 start + 8 data + Even +1 stop 1 start + 8 data + Odd +1 stop

1.3.3. SCI Status Register 1 (SCS1)

Figura 60. Flags de estado del transmisor. El SCI Transmitter Empty (SCTE) indica que el contenido del registro de datos SCI ha sido movido al serial shift register Tx. Este bit es limpiado por la lectura del SCS1 seguida de la escritura del SCDR. 1 = Data register vaco 0 = Data register no vaco El Transmission Complete (TC) indica que el SCDR est vaco y no hay transmisin en progreso. Este bit es limpiado por la lectura del SCS1 seguida de la escritura del SCDR 1 = No hay transmisin en progreso 0 = Transmisin en progreso

1.3.4. SCI Data Register (SCDR)

Figura 61. Registro de Datos SCI.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 60

Tiene Buffers de datos para el shift Register TX/RX. En el SCDR se escriben datos a ser transmitidos. Inicia la operacin de transmisin.

1.3.5. SCI Status Register 2 (SCS2)

Figura 62. Registro de Estado 2. El Status Register 2 tiene 2 bits, el bit Break (BKF) Seteado cuando se detecta un break character. Se limpia por lectura del SCS2 luego de leer el SCDR y el bit Reception in Progress (RPF) Seteado durante la bsqueda del start bitReseteado despus de se detecta un bit de stop o falsos bit de start.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 61

Referencias.
[1] Douglas H. Summerville, Embedded Systems Interfacing for Engineers using the Freescale HCS08 Microcontroller II: Digital and Analog Hardware Interfacing, Stat e University of New York at Binghamton, Morgan y Claypool Publishers, 2009. [2] Data sheet: MC68HC908QY4 Microcontrolers, Rev. 5, 07/2005 [3] Daniel Di Lella, Curso de Microcontroladores HC908, Electrocomponentes S.A., 2005 [4] MCF51JM128 ColdFire Integrated Microcontroller Reference Manual. Freescale Semiconductor. Rev 1, 2008. [5] Microcontroller MCF51JM128 ColdFire Data Sheet. Freescale Semiconductor. Rev 0, 2008. [6] OpenHCI for USB, Compaq, Microsoft, National Semiconductor, septiembre de 1999. [7] Axelson, Jan. USB Complete, Segunda edicin, USA. 2001. [8] Jan Axelson, Serial Port Complete, tercera edicin, Madison, Lakeview research, 2007.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin)

Pgina 62