1
Simposio
Argentino
de
Sistemas
Embebidos
Marzo
2011
Ing.
Pablo
Martín
Gomez
[email protected]
Interfaces
2
Comunicaciones
en
un
bus
serie
3
UART
yUniversal Asynchronous Receiver Transmitter yEstándar de comunicación implementado en los 60’s ySimple, universal, bien entendido, mucho soporte
yEstándar de comunicación de baja velocidad: hasta 1 Mbits/s yLa señal de clock no está incluida en los datos: Emisor y
Receptor deben acordar parámetros de “timing” por adelantado yLos bits de “Start” y “Stop” bits indican datos a enviar
yPuede enviarse información de paridad
4
Comunicaciones
en
un
bus
serie
y Una red punto a punto no requiere la señal de control “Select”
y Una comunicación asincrónica no tiene señal de Clock
y Dependiendo del protocolo, las señales de Data, Select y R/W pueden
compartir la misma línea
y Solamente el “master” puede comenzar una comunicación. Los slaves (esclavos) solamente `hablan cuando se les habla`
5
Comunicaciones
en
un
bus
serie
6
SPI
y Serial Peripheral Interface (SPI) es una conexión de datos serial
sincrónica de 4 líneas full‐duplex:
y SCLK: Serial Clock
y MOSI: Master Out Slave In (Datos del Master al Slave)
y MISO: Master In Slave Out (Datos del Slave al Master)
y SS: Slave Select (Selección de Slave)
y Desarrollado originalmente por Motorola
y Utilizado para conectar los periféricos entre sí y con los
microprocesadores
y Se necesitan “3 + n” líneas siendo n = número de dispositivos
y Solamente un master activo a la vez
y Varias velocidades de transmisión (función del clock del sistema)
7
SPI
‐
Configuración
y Esquema de transmisión simple: 8 o 16 bits
y Comunicaciones Full duplex
y El número de líneas es proporcional al número de dispositivos del bus 8
I²C
‐
(Inter
‐
IC)
yBus desarrollado por Philips en los 80’s yBus simple y bi‐direccional de 2 líneas:
y serial data (SDA)
y serial clock (SCL)
ySe ha convertido un estándar de la industria y es utilizado por
las mayores productores de circuitos integrados (IC) yBus con capacidad Multi‐master (arbitraje)
yComunicación Master‐Slave; Solamente entre dos dispositivos yCada IC en el bus se identifica a través de su propia dirección
yEl slave puede ser:
y Únicamente un dispositivo receptor
9
I²C
‐
Velocidad
10
I²C
– condiciones
de
START/STOP
yLos datos en SDA tienen que ser estables con SCL en alto
yLas excepciones son las condiciones de START y STOP
11
I²C
‐
Direccionamiento
yCada dispositivo está direccionado individualmente por
software
yÚnica dirección por dispositivo:
y fijo o con una parte programable a través de pines de hardware
y varios dispositivos pueden compartir el mismo bus
yDistribución de direcciones coordinado por I2C‐bus committee
12
I²C
– formatos
de
7
‐
bit y
10
‐
bit
yEl 1º byte después del START determina la dirección del slave yAlgunas excepciones a la regla:
y dirección “General Call”: 0000 000 + R/W = 0
y direccionamiento slave de 10‐bit: 1111 0XX + R/W = X
yDireccionamiento de 7‐bits
13
I²C
– Operaciones
Lectura
/
Escritura
yEscritura a un dispositivo slave
yLectura de un dispositivo slave
14
I²C
– Operaciones
Lectura
/
Escritura
yAcknowledge
y Es efectuado en el 9no pulso de clock y es obligatorio
y El transmisor libera la línea SDA
y El receptor pone en bajo la línea SDA (SCL tiene que estar en alto)
y La transferencia se aborta si no hay acknowledge (ojo con debug!)
15
I²C
– Arbitraje
y Dos o más masters pueden generar una condición de START al mismo
tiempo
y El arbitraje se efectua sobre la línea SDA mientras SCL está en alto
y Los slaves no están involucrados
16
I²C
– Sincronización
del
Clock
y Todos los masters generan su propio clock sobre la línea SCL para
transmitir sus mensajes sobre el bus I2C
y Un clock definido es necesario para que el arbitraje bit a bit pueda
ocurrir
y La sincronización del clock es efectuada a través de una compuerta
AND en las interfaces I2C a la línea SCL
y El período bajoes determinado por el dispositivo con más largo
período bajo
y El período altoes determinado por el dispositivo con más corto
17
I²C
– Manejando
I²C
y Hay 3 maneras básicas de manejar el bus I²C:
y Con un microcontrolador con interfaz I²C on‐chip
y Bit oriented‐CPU interrumpido después de cada transmisión de bit
y Byte oriented‐CPU puede ser interrumpido después de cada transmisión
de byte
y Con cualquier microcontrolador: 'Bit Banging’
y El protocolo I²C puede ser emulado bit a bit a través de cualquier puerto
open drain bi‐direccional
y Con un microcontrolador en conjunto con un integrado interfaz
paralelo / bus I²C
18
I²C
– Conflicto
de
direccionamiento
y Cuando un dispositivo no puede cambiar su dirección I²C (fijo),
solamente uno de su tipo puede estar conectado al bus
y Un multiplexor I2C puede ser utilizado para eliminar esta limitación
y permite dividir dinámicamente el bus principal I2C en varias sub‐ramas de
modo de poder comunicarse con uno a la vez
y programable a través de I2C: sin pines adicionales de control
y más de un multiplexor puede conectarse al mismo bus I2C
19
I²C
– PCA9548
y Precio: 1.28 U$S (Mouser)
y 8‐channel I2C‐bus switch with reset
20
USB
‐
Historia
y
Introducido
y
estandarizado
por
un
grupo
de
compañias Compaq,
DEC,
IBM,
Intel,
Microsoft,
NEC,
HP,
Lucent,
Philips y
Nortel)
en
1995
y
La
idea
fundamental
fue
la
de
reemplazar
la
gran
cantidad
de
conectores
disponibles
en
la
PC´s
simplificando
la
conexión
y
configuración
de
21
USB
‐
Historia
y
Existen
3
versiones
de
USB
y
USB
1.0
Enero
1996
y Velocidades de 1.5 Mbps hasta 12 Mbps
y
USB
1.1
Septiembre
1998
y Primer versión popular de USB
y
USB
2.0
Abril
2000
y La principal mejora es la inclusión de una tasa de
transferencia de alta velocidad de 480 Mbps
y
USB
3.0
Noviembre
2008
y Tasa de transferencia de 5 Gbps
22
USB
‐
Introducción
y
USB
significa
“Universal
Serial
Bus”
y
Controlado
por
“Host” (solamente
uno
por
bus)
yOn‐the‐Go (Protocolo de negociación de host) – permite a
dos dispositivos negociar el rol de host
y
Topología
estrella
ySe pueden utilizar hubs para dividir alta y baja velocidad
y
Hasta
127
dispositivos
pueden
ser
conectados
a
un
bus
USB
en
cualquier
momento
y
Utiliza
4
líneas
malladas:
2
son
de
alimentación
(+5v
&
GND)
y
los
otros
2,
un
par
trenzado
donde
las
señales
se
transmiten
en
modo
diferencial
23
USB
‐
Introducción
y
Utiliza
codificación
NRZI
para
enviar
los
datos
con
un
campo
de
sincronización
para
sincronizar
el
clock del
host y
el
receptor
y
Suporta
plug’n’plug con
drivers que
son
cargados
dinámicamente
‐
PID/VID
(Product ID/Vendor ID)
y
USB
soporta
diferentes
modos
de
transferencia:
Control
,
Interrupción
,
Masiva
e
Isócrona
y
La
alimentación
se
transporta
por
el
Bus
y
USB
distribuye
la
alimentación
a
todos
los
dispositivos
conectados,
eliminando
la
necesidad
de
una
fuente
externa
para
dispositivos
de
bajo
consumo
24
USB
‐
Conectores
y
Los
conectores
a
cada
lado
del
cable
no
son
mecánicamente
intercambiables
y El conector tipo A siempre se conecta “aguas arriba”.
En general los encontramos en hosts y hubs.
y El conector tipo B siempre se conecta “aguas abajo”.
Los encontramos en dispositivos.
y Los conectores mini y micro se utilizan para reducir
espacio como teléfonos celulares.
y Los conectores micro‐AB son capaces de aceptar tanto
25
USB
– Alimentación y
niveles
y
Alimentación
y Entrega 5 V en una de las líneas (5 V±5%).
y La unidad de carga es 100mA (USB 2.0) y 150mA (USB 3.0).
y La máxima carga es 500 mA (USB 2.0) y 900 mA (USB 3.0).
y Los hubs alimentados por Bus solamente entregan 1 unidad de
carga para los dispositivos.
y Los hubs alimentados autonomamente pueden entregar la
máxima carga a todos los dispositivos.
y
Niveles
lógicos
y
‘1’
‐
D+
200mV
mayor
a
D
‐
y‘0’
‐
D+
200mV
menor
a
D
‐
26
USB
‐
Velocidad
y
Un
dispositivo
USB
debe
indicar
su
velocidad
llevando
D+
o
D
‐
a
3.3
volts.
y
Sin
resistencia
de
pull
‐
up,
USB
asume
que
no
hay
nada
conectado
al
Bus.
y En el modo “high speed” el dispositivo primero se conecta en modo “full
speed”, luego se remueve el resistor de pull‐up para balancear la línea
27
USB
– Paquetes de
datos
y
A
diferencia
de
RS
‐
232
o
interfaces
serie
similares
donde
el
formato
de
los
datos
a
ser
enviados
no
está
definido,
USB
posee
varias
capas
de
protocolos
y
Cada
transacción
USB
consiste
en:
yPaquete Token(encabezado que define lo que se espera a
continuación)
yPaquete de datos (opcional ‐contiene el payload) yPaquete de Status (Usado como acknowledge en las
transacciones y como una forma de corregir errores)
28
USB
‐
Campos
del
paquete
y
Sync
y Todos los paquetes deben comenzar con un campo de “sync”
utilizado para sincronizar el clock receptor con el transmisor
y
PID
(Packet ID)
y Utilizado para identificar el tipo de paquete que está siendo
enviado (4 bits complementados)
y
ADDR
(Address field)
y Especifica a que dispositivo va dirigido el paquete
y Teniendo un tamaño de 7 bits permite soportar 127 dispositivos
y La dirección cero no es válida ya que cualquier dispositivo al que
todavía no se le asignado una dirección debe responder los
29
USB
‐
Campos
del paquete
‐
PID
30
USB
‐
Campos
del paquete
y
ENDP
(Endpoint field)
y Formado por 4 bits permite 16 posibles “endpoints”
y
CRC
(Cyclic Redundancy Check)
y Efectuado en los datos contenidos en el “payload” del paquete.
Todos los paquetes “token” tienen un CRC de 5 bits mientras que
los de datos tienen un CRC de 16 bits
y
EOP
(End of packet)
y Señalizado a través de un “Single Ended Zero” (SE0 / D+ and D‐se
mantienen bajos) por aproximadamente el tiempo de 2 bits
seguido por una J (estado lógico, el significado depende de la
velocidad) durante el tiempo de 1 bit
31
USB
‐
Tipos de
paquete
y
Paquetes
“Token”
y In– Informa al dispositivo USB que el “host” desea leer
información
y Out– Informa al dispositivo USB que el “host” desea enviar
información
y Setup– Utilizado para comenzar transferencias de control
y
Paquete
de
datos
y Dos tipos. Cada uno capaz de transmitir de 0 a 1023 bytes de datos
32
USB
– Tipos de
paquete
y
Paquetes
de
“Handshake”
y ACK(Acknowledgment) – Confirmación de que el paquete fue
recibido exitosamente
y NAK– Reporta que el dispositivo no puede enviar ni recibir datos
temporalmente. También utilizado durante las transacciones de
interrupción para informar al “host” que no hay datos para enviar
y STALL– El dispositivo se encuentra en un estado que requiere la
intervención del “host”
y
Paquetes
de
comienzo
de
“frame” (SOF)
y El número de frame (11 bits) es enviado por el “host” cada 1mS ± 500nS
33
USB
‐
Funciones
y
Funciones
USB
y Pueden verse como dispositivos USB que proveen capacidades o
funciones tales como impresora, escáner, lector de memorias u
otro periférico
34
USB
‐
Endpoints
y
Endpoints
y Pueden describirse como fuentes o sumideros de datos
y Todos los dispositivos deben soportar al “endpoint” cero
y
Pipes
y Son las conexiones lógicas entre “host” y “endpoint(s)”
y Tienen una serie de parámetros:
y Ancho de banda asignado
y Tipo de transferencia:
y Control, Másiva (Bulk), Isócrona
o Interrupción
y Dirección del flujo de datos
y Tamaño máximo de paquetes/buffer
35
USB
‐
Frames
y
El
tráfico
en
el
bus
USB
es
regulado
utilizando
el
tiempo.
La
unidad
de
tiempo
se
llama
“frame”
yVelocidad “Full” y “Low”: “frames” cada 1 ms
yVelocidad “High”: “micro‐frames” cada 125 µs
y
Cada
“frame” comienza
con
un
paquete
SOF
y
A
cada
“pipe” se
le
asigna
un
espacio
en
cada
“frame”
y
10
%
asignado
a
transferencias
de
control
36
USB
– Transferencias
yLas transferencias consisten en una o más transacciones. Un
pipe solamente soporta un tipo de transferencia
yEn una transacción, los datos son transferidos desde “host” a
dispositivo o viceversa.
yLa dirección de transacción se define en el paquete “token” yEn general, el destinatario responde con un paquete de status
37
USB
– Transferencias de
control
yLas transferencias de control son típicamente utilizadas para
operaciones con comandos y de status
yUna transferencia de control puede tener hasta tres etapas y Etapa “Setup”: donde la petición es enviada. Contiene la dirección
y el número de endpoint
y Etapa de datos (opcional): consiste en una o multiples transferencias IN / OUT
y Etapa de “Status“: informa el status de la totalidad de la petición.
Varia en función de la dirección de la transferencia
38
USB
– Transferencias de
control
yFormato de transferencia de control
acknowledge
endpoint error working but nothing to send
acknowledge buffer not empty error
39
USB
– Transferencia de
Interrupción
yEl dispositivo que requiere atención debe esperar que el “host” le “encueste” antes que pueda informar que necesita atención yCaracterísticas
y Latencia garantizada
y Flujo del “pipe”: Unidireccional
y Detecciones de errores y re‐proceso en próximo período
y Interrupción IN
y El “host” encuesta periódicamente al endpoint. La frecuencia con que
encuesta está especificada en el descriptor del endpoint. Cada encuesta
implica que el “host” envíe un IN Token
y Interrupción OUT
y Cuando el “host” desea enviar al dispositivo datos de interrupción,
solicita un OUT token seguido por un paquete de datos que contiene los
datos de interrupción
40
USB
– Transferencia
de
Interrupción
41
USB
– Transferencia Isócrona
y Las transferencias isócronas ocurren continua y periódicamente.
Típicamente contienen información sensible al tiempo, como flujo de
video o audio
y Características
y Ancho de banda USB garantizado
y Latencia acotada
y Flujo del “Pipe”: Unidireccional
y Detección de errores vía CRC, pero sin re‐proceso ni garantía de entrega
y Disponible solamente en modos “full speed” y “high speed”
y Las transferencias isócronas no tienen etapa de “handshaking”y no
pueden reportar errores o condiciones de STALL/HALT
42
USB
– Transferencias
masivas
y Utilizado para envío masivo de datos (Ej.: datos de impresión enviados
a una impresora o datos de una imagen generados por un escáner)
y Características
y Corrección de errores (Campo CRC16 en el “data payload”)
y Detección de errores / mecanismos de re‐transmisión
y Utiliza espacio no asignado del ancho de banda del bus después que
todas las otras transacciones han sido asignadas
y Solamente utilizado en comunicaciones no sensibles al tiempo debido a que
no hay garantías respecto a la latencia
y Disponible solamente en modos “full speed” y “high speed”
43
USB
– Descriptores
y Todos los dispositivos USB tienen una jerarquía de descriptores que
definen al “host” información tal como:
y que es el dispositivo
y quien lo fabricó
y que versión de USB soporta
y de cuantas formas puede configurarse
y el número de endpoints y sus tipos
y Los descriptores USB más comunes son
y Descriptores de dispositivo (Device descriptors)
y Descriptores de configuración (Configuration Descriptors)
y Descriptores de interfaz (Interface Descriptors)
y Descriptores de Endpoint (Endpoint Descriptors)
y Descriptores de String (String Descriptors)
y Proporciona información humanamente legible y son opcionales
44
45
USB
– Descriptores de
dispositivo
y El descriptor de dispositivo del dispositivo USB representan a la
totalidad del mismo por lo tanto, sólo puede tener uno
y Contienen
y la versión de USB soportada
y el máximo tamaño de paquete
y identificación de proveedor y producto
y el número de posibles configuraciones que el dispositivo puede tener
y Ejemplo:
y bDeviceClass, bDeviceSubClass y bDeviceProtocol son utilizados por el
sistema operativo para encontrar un driver para el dispositivo
y Generalmente solo bDeviceClass es especificado en este nivel
y Se suelen especificar los demás parámetros a nivel de interfaz. Esto
permite que un mismo dispositivo soporte múltiples clases
46
USB
– Descriptores de
configuración
y Un dispositivo USB puede tener diferentes configuraciones. De todas
formas, la mayoría de los dispositivos son simples y solamente tienen
una y Especifica
y como se alimenta el dispositivo
y cual es el máximo consumo de potencia
y el número de interfaces que tiene
y Por lo tanto, es posible tener dos configuraciones: una para el
dispositivo siendo alimentado por el bus y otra cuando lo hace
externamente. Como este es el “encabezado” de los descriptores de
interfaz, es también posible tener para cada una de las
configuraciones, diferentes modos de transferencia
47
USB
– Descriptores de
configuración
48
USB
– Descriptores
de
interfaz
y Pueden ser vistos como “headers” de los endpoints en grupos
49
USB
– Descriptor
de
endpoint
y El endpoint cero siempre
se asume como de
control
y El “host” utilizará la
información devuelta por
estos descriptores para
definir los
requerimientos de ancho
de banda del bus
50
USB
– FT232
y Precio: 4,50 U$S (Mouser)
51
USB
–Stacks
de
dispositivos
Stacks de dispositivos para LPC2300/2400/214x
y Keil RL‐USB:
y http://www.keil.com/arm/rl‐arm/rl‐usb.asp
y Micrium µC/USB Device
y http://www.micrium.com/products/usb/usb‐device/overview.html
y Micro Digital smxUSBD
y http://www.smxrtos.com/rtos/usb/smxusbd.htm
y HCC Embedded USB (EUSB) Device Stack
y http://www.hcc‐embedded.com/site.php?mid=120
y CMX‐USB
y http://www.cmx.com/cmx_usb.pdf
y Express Logic USBX
y http://www.rtos.com/page/product.php?id=6
52
USB
3.0
y
Upgrade del
USB
2.0
y
retro
‐
compatible
y
También
llamado
“SuperSpeed” USB
por
la
significante
mejora
respecto
a
especificaciones
USB
existentes
y
Nuevo
protocolo
de
comunicación
para
dispostivos
y
Nuevos
modos
de
transferencia
y
Nuevas
formas
de
administrar
la
alimentación
y
Mayor
longitud
de
cable
permitida
53
USB
2.0
vs.
USB
3.0
– Hardware
USB
2.0
USB
3.0
yEl cable es más delgado yTiene 4 líneas
yModo de transferencia de
datos “half‐duplex”
yEl cable se parece al utilizado
en Ethernet debido a su
grosor yTiene 8 líneas
y Tres pares trenzados para
datos y un par para
alimentación
y Modo de transferencia de datos
“Full‐duplex” 54
USB
2.0
vs.
USB
3.0
55USB
2.0
vs.
USB
3.0
56USB
2.0
vs.
USB
3.0
y
Aunque
la
especificación
de
USB
3.0
esta
diseñada
para
retro
‐
compatibilidad
con
USB
2.0,
los
cables
USB
3.0
no
son
compatibles
con
el
conector
regular
de
57
USB
3.0
vs.
otros
estándares
y
FireWire 800
tiene
como
máxima
tasa
de
transferencia:
800
Mbps
y
eSATA bus
tiene
una
máxima
tasa
de
transferencia
de
3.2
Gbps
y
Ejemplo:
y
Intel
mostró que
la
transferencia
de
una
película
de
25
GB
HD
demoró 70
segundos
utilizando
un
bus
USB
3.0
contra
4
horas
a
través
de
USB
2.0
58
El
espacio
Wireless 802
59
802.15.4
y
ZigBee
y El estándar 802.15.4 define la capa de comunicación en el nivel 2 e
inferiores del modelo OSI
y Las frecuencias definidas en el estándar están esparcidas en 27 canales
diferentes divididos en 3 bandas principales
y 868.0 ‐868.6MHz ‐> 20/100/250 kbps‐> 1 canal (Europa)
y 902.0‐928.0MHz ‐> 40/250 kbps‐> 10 canales (USA)
y 2.40‐2.48GHz ‐> 250 kbps‐> 16 canales (Internacional) y El estándar ZigBee define la capa de comunicación en el nivel 3 y
superiores del modelo OSI
60
802.15.4
– Características
analógicas
y Utiliza Direct Sequence Spread Spectrum (DSSS) para modular la
información antes de ser enviada a la capa física
y Cada bit de información a transmitir se modula en 4 señales diferentes y Este proceso ocasiona que el total de la información ocupe un mayor
ancho de banda con menor densidad espectral de potencia
y Hay diferentes tipos de modulaciones DSSS
y Binary Phase Shift Keying (BPSK)
y Offset Quadrature Phase Shift Keying (O‐
QPSK)
61
ZigBee
‐
Características
analógicas
y Zigbee, descansa sobre
802.15.4 que tiene una
excelente performance en entornos con baja
relación S/R
62
802.15.4
‐
Características
y Define las capas LLC, PHY y MAC sobre las cuales ZigBee descansa
y Soporta topologías de red estrella o peer‐to‐peer (tree or mesh) y Mecanismo de acceso al canal: Carrier Sense Multiple Access with
Collision Avoidance (CSMA‐CA)
y Dos tipos de nodo:
y dispositivo de función reducida (RFD)
y dispositivo de función completa (FFD)
y Área de cobertura (POS = personal operating space): en el órden de
los 10 metros (puede ser mayor)
y Escaneo de energía del canal
y para saber cuanta energía (actividad/ruido/interferencias) hay en uno o
varios canales antes de comenzar a utilizarlo
y se puede ahorrar energía eligiendo canales libres al configurar una red
63
802.15.4
– CSMA
‐
CA
y A diferencia de CSMA/CD (Carrier Sense Multiple Access/Collision Detect) actúa previniendo las colisiones antes de que ocurran
y Chequea que el canal esté libre (se supone que hay otro nodo
transmitiendo si la energía es mayor a un nivel específico)
y Si el canal está libre el paquete se envía
y Si el canal no está libre, el nodo espera un periodo de tiempo aleatorio
(backoff factor), y luego vuelve a chequear
y Si el canal no está libre cuando el contador de backoff llega a cero, el
mismo se reinicia y el proceso se repite
64
ZigBee
‐
Red
y Hay tres tipos diferentes de nodos en una red ZigBee
y Coordinador: es el dispositivo master y gobierna toda la red
y Routers: rutean la información a los dispositivos finales
y Dispositivos finales (motes): por ejemplo nodos sensores que toman
información del ambiente
y Solamente los “motes” pueden ser alimentados a través de baterías
y ZigBee utiliza topologías estrella
y Reglas:
y Los “motes” se conectan a un router o al coordinador
y Los routers pueden conectarse entre ellos y con el coordinador
y Los routers y coordinadores no pueden dormir. Tienen que guardar en su
buffer los paquetes que van hacia los “motes”
65
ZigBee
‐
Red
y Las redes “Mesh” recaen en comunicaciones ad hoc, también llamadas
peer to peer (P2P):
y los dispositivos de la red pueden comunicarse entre ellos directamente
y tienen que ser capaces de descubrir a los demás y mandar mensajes
broadcast a todos los dispositivos
y ZigBee crea una red estrella, en vez de una mesh
y Para crear una red mesh completa todos los nodos deben tener el
mismo rol: “dispositivos finales + routers"
66
ZigBee
‐
Xbee
y XBee® / XBee‐PRO® RF Modules
y http://www.digi.com/
67
CAN
– Controller Area Network
y
Introducido
en
1983
por
Robert Bosch para
hacer
frente
a
la
creciente
complejidad
en
funciones
vehiculares
y
redes
y
Un vehículo moderno puede tener tanto como 70
unidades de
control
electrónicas (ECU)
para varios
subsistemas (audio,
levantavidrios,
airbag...)
68
69
CAN
‐
Tecnología
yProtocolo multi‐maestro sobre un bus serie
yEl número de nodos no esta limitado por el protocolo yNo se direcciona NODOS. Se identifican MENSAJES y
PRIORIDAD
yEl protocolo utiliza codificación NRZ con bit stuffing para
sincronización
yControl de acceso al medio CSMA/CR (arbitraje NO
DESTRUCTIVO). Cada nodo puede recibir y enviar mensajes
pero no de manera simultánea
yCada nodo tiene su propio clock y el clock no se transmite por
la red CAN
70
CAN
– Bit stuffing
71
CAN
‐
Arbitraje
y
El
“arbitraje” es
automático.
El
mensaje
con
mayor
prioridad
va
a
ganar
el
arbitraje
del
bus
y
Mientras
dura
el
arbitraje,
cada
nodo
transmisor
monitorea
el
estado
del
bus
y
compara
el
bit recibido
con
el
transmitido
y
si
se
recibe
un
dominante
al
enviar
un
recesivo,
entonces
se
deja
de
transmitir
y
vuelve
a
intentar
6
ciclos
después
de
terminado
el
mensaje
dominante
72
73
CAN
‐
Arbitraje
74
CAN
‐
Tramas
y Existen dos tipos de formato que se identifican en el campo IDE:
y Básico: identificador de 11 bits (2048 id´s)
y Extendido: identificador de 29 bits (536 M id´s)
y Tipos de tramas:
y DATOS: Se utiliza para enviar datos de un nodo a otro(s). Es el tipo de
trama que más frecuentemente circula en una red CAN.
y REMOTA: Se utiliza para solicitar una trama de datos con el ID
especificado. Esta trama no contiene datos.
y ERROR: Si un nodo detecta un error en la red, envía una trama de error e
invalida la trama en cuestión en todos los nodos. La trama deberá ser
retransmitida.
y SOBRECARGA: La utilizan los nodos para pedir tiempo adicional antes del
comienzo de la próxima trama. Un máximo de 2 tramas de sobrecarga
pueden ser generadas por un nodo.
y INTERTRAMA: Es el espacio entre una trama de datos o remota y la
precedente. Este espacio es provisto para permitir a los nodos realizar
procesamientos internos antes del comienzo de la próxima trama.
75
CAN
‐
Tramas
76
77
CAN
‐
Tramas
78
CAN
– Tipos
de
errores
y CRC: No coinciden el código de redundancia cíclica (CRC) calculado por el transmisor y el
calculado por el receptor. El nodo receptor descarta la trama y transmite una trama de error.
Sólo realizado por nodo receptor.
y ACK: Error de reconocimiento, detectado por el transmisor. El transmisor no detecta el
reconocimiento en el campo ”SLOT ACK”, indicando que ningún nodo recibió la trama
correctamente. Se produce un error de reconocimiento (ACK) se retransmite la trama, pero
NO se genera una trama de error.
y FORMA: Se produce si se detecta un bit dominante en los siguientes campos:
y Delimitador de CRC.
y Delimitador de ACK.
y Fin de trama.
Se transmite una trama de error.
y BIT: El bit transmitido es diferente del bit monitoreado. No se realiza en los campos de
arbitraje si el bit transmitido es recesivo ni tampoco en el slot de reconocimiento. Se
transmite una trama de error y se retransmite la trama. Sólo realizado por nodo transmisor.
y STUFFING: Se detectan 6 bit consecutivos de igual polaridad entre el comienzo de trama y el delimitador de CRC. Se envía una trama de error.
79
CAN
– Confinamiento
de
fallas
80
81
CAN
– Estándar
ISO
11898
82
CAN
– Transceiver
y
Precio:
1,33
U$S (Mouser)
83
Fuentes
http://www.nxp.com/documents/other/design_con_2003_tecforum_i2c_bus _overview.pdf
DesignCon 2003 TecForum I2C Bus Overview
Apunte Comunicaciones Industriales – Roberto Saco
http://en.wikipedia.org/wiki/Controller_area_network
http://www.embedded.com/design/networking/220900314
CAN in 30 minutes or less
http://www.embedded.com/showArticle.jhtml?articleID=13000304
A short trip on the CAN bus
http://www.ee.kth.se/commth/projects/CROPS/docs/GeirZigBee010206.pdf
ZigBee‐A brief introduction
http://en.wikipedia.org/wiki/ZigBee http://sensor‐networks.org/index.php?page=0823123150 802.15.4 vs ZigBee http://www.beyondlogic.org/usbnutshell/usb‐in‐a‐nutshell.pdf usb in a nutshell 84
Fuentes
http://www.usblyzer.com/brief‐usb‐overview‐and‐history.htm
http://arstechnica.com/old/content/2007/09/intel‐announces‐
demonstrates‐usb‐3‐0.ars
http://news.zdnet.com/2100‐9595_22‐262047.html
http://arstechnica.com/hardware/news/2008/11/usb‐3‐0‐specification‐
finalized‐devices‐in‐2010.ars
http://www.usb.org
http://techon.nikkeibp.co.jp/english/NEWS_EN/20090310/166949/
http://www.reghardware.co.uk/2008/01/09/ces_usb_3_revealed/
http://arstechnica.com/old/content/2007/09/intel‐announces‐
demonstrates‐usb‐3‐0.ars
http://en.wikipedia.org/wiki/Usb
http://news.cnet.com/8301‐17938_105‐9780794‐1.html
http://thefutureofthings.com/news/5739/25gb‐in‐70‐seconds‐with‐usb‐3‐
0.html