Sunteți pe pagina 1din 213

ANLISIS DE PROTOCOLOS PARA LA IMPLEMENTACIN DE REDES ENTRE MICROCONTROLADORES

Proyecto de titulacin presentado por: LIZ YURIDIA MAGALLANES DIGUEZ ERIKA GUTIRREZ

Departamento de Elctrica y Computacin Asesor: M.C. Ernesto Sifuentes de la Hoya UNIVERSIDAD AUTNOMA DE CIUDAD JUREZ

Noviembre 2004

CAPTULO 1 INTRODUCCIN
1.1 Introduccin El presente proyecto de titulacin hace un estudio de 10 diferentes protocolos de comunicacin para el establecimiento de redes entre microcontroladores u otros dispositivos. Los protocolos documentados en el siguiente trabajo son 1-Wire, RS-232, RS-422, RS-485, CAN, I2C, SPI, Bluetooth, Wi-Fi, USB, Ethernet y a grandes rasgos se explican o describen los siguientes aspectos de cada protocolo: Antecedentes, caractersticas, topologas, funcionamiento y aplicaciones o implementaciones. Antes de describir o entrar de lleno en este anlisis, se hace una pequea introduccin a la descripcin de los protocolos de comunicacin en trminos generales, ya que cada protocolo tiene sus propias reglas o estatus a seguir dependiendo de la aplicacin o implementacin, pero todos de alguna u otra manera siguen o tienen en comn ciertas conductas que los hacen ser semejantes entre ellos. 1.2 Planteamiento del Problema Anlisis de los diferentes protocolos existentes para establecer algn tipo de red o comunicacin entre microcontroladores u otros dispositivos, para poder enviar datos o informacin entre ellos. El desarrollo de esta investigacin propone la implementacin de dos de los protocolos de comunicacin analizados basndonos en las ventajas y desventajas entre ellos, eficiencia, as como determinar cual es el ms conveniente de acuerdo a su necesidad o aplicacin a desarrollar.

1.3 Objetivo general Hacer un estudio y anlisis de diez de los diferentes protocolos existentes para el establecimiento de redes entre microcontroladores, especificar la funcionalidad de cada uno de ellos. Desarrollar la implementacin de uno o dos de los protocolos analizados para comprobar su funcionalidad.

1.4 Justificacin de la investigacin A raz del creciente desarrollo y demanda de tecnologas basadas en redes de comunicacin, se ha incrementado en los ltimos aos la creacin de protocolos y estndares para el establecimiento de redes que generalmente son entre computadoras u servidores que manejan una gran cantidad de informacin. Pero que pasa con dispositivos tales como los microcontroladores, circuitos integrados, sensores, por mencionar algunos, que son de tamao muy reducido pero que, sin embargo, cuentan con la capacidad de almacenar una gran cantidad de informacin, registrar o detectar seales, almacenar registros, etc., y que requieren comunicarse entre si. Para lograr esto se necesita implementar alguno de los protocolos existentes, y cmo saber cul implementar? Es ah donde surge la necesidad de la realizacin de este proyecto, iniciando con un estudio de los diferentes protocolos de redes para intercomunicar microcontroladores u otros dispositivos. Con este estudio pretendemos dar a conocer las especificaciones de los protocolos o sistemas de comunicacin, especificando las caractersticas, eficiencia, rapidez, grado de dificultad, reas de aplicacin, entre otras; de tal manera que toda aquella persona familiarizada con este tema y que tenga acceso a este proyecto, pueda identificar fcilmente que protocolo se adapta mejor a sus necesidades o simplemente tener una clara visin de lo existente para futuras implementaciones. 1.5 Delimitacin del tema El estudio de 10 protocolos de comunicacin entre microcontroladores u otros dispositivos para conocer sus caractersticas principales y determinar cuales son los ms convenientes y aplicables o simplemente para conocer como funciona cada uno de ello y su respectiva comprobacin. 1.6 Contenido de Captulos El Capitulo 2 contiene el Marco Terico en el cual se desglosa toda la documentacin de los protocolos, es decir, se describen y se detallan los aspectos antes

mencionados. Basndose en esta documentacin se seleccionarn uno o dos protocolos y se establecer una pequea aplicacin para comprobar su correcto funcionamiento. En el Capitulo 3 (Materiales y Mtodos) se describe la razn por lo cual se determin implementar estos protocolos, as como la descripcin de la aplicacin, la forma en que funciona y los requerimientos que se utilizaron. En el Captulo 4 (Resultados y Conclusiones) se menciona los resultados o conclusiones obtenidas, as como las limitaciones o problemas que pudieron presentarse durante el desarrollo tanto del marco terico como de la aplicacin., Finalmente tenemos las referencias consultadas en donde se puede acudir en caso de requerir una mayor informacin acerca de este proyecto. De igual manera tenemos una seccin de anexos en donde se incluyen detalles o aspectos tcnicos, as como los programas o codificacin utilizados para la implementacin.

CAPTULO 2 MARCO TEORICO 2.1 Introduccin a los Protocolos de Comunicacin


Un protocolo es un conjunto de reglas para establecer la comunicacin entre dispositivos (e.g. computadoras, telfonos, microcontroladores, enrutadores, switchs, etc.). Los protocolos gobiernan el formato, sincronizacin, secuencia y control de errores. Sin estas reglas, los dispositivos no podran detectar la llegada de bits. Los protocolos de comunicaciones definen las normas que posibilitan que se establezca una comunicacin entre varios equipos o dispositivos, ya que estos equipos pueden ser diferentes entre s. Una interfaz, sin embargo, es el encargado de la conexin fsica entre los equipos, definiendo las normas para las caractersticas elctricas y mecnicas de la conexin. Debido a su complejidad, la comunicacin entre dispositivos es separada en pasos. Cada paso tiene sus propias reglas de operacin y, consecuentemente, su propio protocolo. Esos pasos deben de ejecutarse en un cierto orden, en forma descendente en la transmisin y ascendente en la recepcin. Debido al arreglo jerrquico de los protocolos, el trmino "pila de protocolos"(protocol stack) es comnmente usado para describir esos pasos. Una pila de protocolos, por lo tanto, es un conjunto de reglas de comunicacin, y cada paso en la secuencia tiene su propio subconjunto de reglas. Dado los puntos anteriormente mencionados un protocolo realmente es software que reside en la memoria de una computadora o en la memoria de un dispositivo de transmisin, como una tarjeta de red. Cuando los datos estn listos para transmitirse, este software es ejecutado. El software prepara los datos para la transmisin y la transmisin en movimiento. En la parte receptora, el software toma los datos y los prepara para la computadora, desechando toda la informacin agregada, y tomando slo la informacin til. Existen muchos protocolos, y con frecuencia el usuario desconoce si esta utilizando el ms apropiado. Una red tipo Novell se comunica a travs de sus propias reglas (su

propio protocolo llamado IPX/SPX), Microsoft lo hace a su manera (NetBEUI), DEC tambin lo hace a su manera (DECnet), as como IBM (NetBIOS); y as cada sistema de cmputo tiene sus propios protocolos y sus propias reglas para comunicarse. Debido a que el transmisor y el receptor tienen que "hablar" el mismo protocolo, estos cuatro sistemas no pueden hablarse ni entenderse uno al otro. Un protocolo estndar es un conjunto de reglas que han sido ampliamente usados e implementados por diversos fabricantes, usuarios, y organismos oficiales (e.g. IEEE, ISO, ITU). Idealmente, un protocolo estndar debe permitir a las computadoras o dispositivos comunicarse entre s, an cuando estos sean de diferentes fabricantes. Las computadoras o dispositivos no tienen que usar un protocolo estndar para comunicarse, pero si estos utilizan un protocolo propietario entonces ellos pueden slo comunicarse con equipo de su mismo tipo. Existen muchos protocolos estndares, ninguno de ellos puede ser universal, pero los que son exitosos se estn moviendo para cumplir con el modelo de referencia OSI (Open Sistem Interconection). Los estndares y protocolos asociados con el modelo de referencia OSI estn bajo el concepto de Sistemas Abiertos para enlazar literalmente a decenas de computadoras distintas encontradas en oficinas a travs del mundo. 2.1.1 Funciones bsicas de un protocolo de comunicacin Control de llamada. Establecimiento de conexin entre fuente y destino, esta funcin lleva a cabo el mantenimiento y monitoreo de la conexin y los procedimientos de conexin y desconexin de una llamada, transferencia de datos, videoconferencia, etc. Control de error. Verificacin y control de errores durante la transmisin, a travs de algoritmos de verificacin y control de error tales como VRC, LRC, Checksum, CRC, etc. Control de flujo. Manejo de contencin de bloques Regulacin del trfico

Retransmisin de bloques Convenciones para direccionamiento Control por pasos y de extremo a extremo (el error puede verificarse en cada paso o al final del enlace y depende del algoritmo de control de error) 2.1.2 Funcionamiento bsico de los protocolos de comunicacin En la Figura 2.1 se muestra la secuencia de la comunicacin entre dos entidades, Transmisor (Tx) y receptor (Rx). En el paso 1 de la secuencia, el Tx enva un bloque de datos (A) hacia Rx. Rx recibe el bloque de datos correctamente y enva un ACK (Acknowledge, reconocimiento) indicndole que se recibi con xito el paquete de informacin (ver paso 2 de la Figura 2.1). Tx recibe el ACK y enva el siguiente bloque de datos (ver paso 3 de la Figura 2.1). Rx recibe el bloque de datos y detecta un error. Rx enva un NACK (No Acknowledge, No reconocimiento) a Tx indicndole que existi un error y que vuelva a transmitir el paquete [ver paso 4 de la Figura 2.1).

Figura 2.1. Funcionamiento de un protocolo de comunicacin.

Tx retransmite el bloque de datos nuevamente a Rx (ver paso 5 de la Figura 2.1). Rx recibe el bloque de datos retransmitido, y en esta ocasin no detecta error y le enva a

Tx un ACK dicindole que recibi el paquete con xito (ver paso 6 de la Figura 2.1). Antes del paso 1, tanto Tx como Rx se pusieron de acuerdo antes de enviar informacin til. Despus del paso 6 Tx deber indicarle a Rx que termin de transmitir los bloques, y as terminar con la comunicacin [control de llamada]. 2.1.3 Protocolos orientados a conexin y no-conexin Los protocolos pueden ser orientados a conexin y orientados a no-conexin. En los orientados a conexin, las entidades correspondientes mantienen la informacin del estatus acerca del dialogo que estn manteniendo. Esta informacin del estado de la conexin soporta control de error, secuencia y control de flujo entre las correspondientes entidades. Es decir, la entidad receptora le avisa a la entidad transmisora si la informacin til lleg correctamente, si no es as tambin le avisa que vuelva a retransmitir. El control de error se refiere a una combinacin de deteccin de error (y correccin) y reconocimiento (acknowledgment). El control de secuencia se refiere a la habilidad de cada entidad para reconstruir una serie de mensajes recibidos en el orden apropiado. El control de flujo se refiere a la habilidad para que ambas partes en un dilogo eviten el sobreflujo de mensajes entre s. Los protocolos orientados a conexin operan en tres fases. La primera fase es la fase de configuracin de la conexin, durante la cual las entidades correspondientes establecen la conexin y negocian los parmetros que definen la conexin. La segunda fase es la fase de transferencia de datos, durante la cual las entidades correspondientes intercambian mensajes (informacin til) bajo el amparo de la conexin. Finalmente, la ltima fase, fase de liberacin de la conexin, en la cual ambas entidades se ponen de acuerdo para terminar la conexin. Los protocolos orientados a no-conexin difieren bastante a los orientados a conexin, ya que estos (los de no-conexin) no proveen capacidad de control de error, secuencia y control de flujo. Los protocolos orientados a no-conexin, estn siempre en la fase de transferencia de datos, y no les interesa las fases restantes de configuracin y liberacin de una conexin.

Los protocolos orientados a no-conexin se emplean en aplicaciones donde no se requiera mucha precisin y proteccin del contenido de mensaje. Tal es el caso de la voz, msica o el video. Pero en cambio en aplicaciones donde se requiera mucha precisin (e.g. transacciones electrnicas bancarias, archivos de datos, comercio electrnico, etc.) se utilizaran los protocolos orientados a conexin. 2.1.4 Protocolos orientados a bits y orientados a bytes Protocolos orientados a Bytes. En cualquier sesin de comunicacin entre dispositivos, cdigos de control son usados para controlar otro dispositivo o proveer informacin acerca del estatus de la sesin. Los protocolos orientados a bytes ( carcter) utilizan bytes completos para representar cdigos de control establecidos tales como los definidos por el cdigo ASCII (American Standard Code for Information Interchange) o cdigo EBCDIC (Extended Binary Coded Decimal Interchange Code). En contraste, los protocolos orientados a bits confan en bits individuales para cdigos de control. Los protocolos orientados a Byte transmiten los datos como si fueran cadenas de caracteres. El mtodo de transmisin es asncrono. Cada caracter es separado de un bit de inicio y un bit de paro o trmino, y no es necesario un mecanismo de reloj. Ejemplos de caracteres usados: SYN (synchronize), SOH (start of header), STX (start of text), ETX (end of text) Protocolos orientados a Bit. En una transmisin orientada a bit, los datos son transmitidos como constantes rfagas de bits. Antes de que la transmisin de datos empiece, caracteres especiales de sincrona son transmitidos por el transmisor, as el receptor puede sincronizarse a s mismo con la rfaga de bits. Este patrn de bits es comnmente representado en una cadena de 8 bits [1].

2.2 Protocolo 1-Wire


Dallas Semiconductor desarroll una forma de interconectar dispositivos, por ahora slo fabricados por ellos, pero con la posibilidad de licenciar a otros fabricantes. La principal caracterstica de este protocolo es que slo necesita una lnea de comunicacin, adems de una tierra comn, que lleva los datos de la comunicacin y le provee energa al dispositivo. Adems, cada dispositivo tiene un cdigo de 64 bits propio, lo que permite tener varios de estos conectados al mismo bus y direccionarlos individualmente. Entre la gama de dispositivos que emplea este protocolo se encuentran conversores anlogo a digital, sensores de temperatura, potencimetros digitales, memorias de variados tipos, interruptores digitales, entre otros. El protocolo 1-Wire fue creado originalmente para la comunicacin con dispositivos de conexiones a corta distancia, despus se idearon aplicaciones que involucraban extender el bus y poder mover al dispositivo esclavo a distancias mayores. Los problemas surgieron cuando la longitud del bus maestro exceda la capacidad de carga del mismo, as como el lmite del protocolo. Los diseadores de la 1-Wire agregaron caractersticas ms robustas, capacidad multidrop (networking), envase de acero durable (iButtons), y los mecanismos para asegurar la transferencia de datos vlidos incluso en situaciones seriamente intermitentes del contacto. A pesar de esta inovacin, los componentes 1-Wire todava realizan un tabajo pobre cuando el bus del maestro esta diseado incorrectamente, o cuando el maestro intenta mandar la informacin a traves de lneas extendidas. Una red 1-Wire es un arreglo complejo de dispositivos, alambre y conexiones. Cada red diseada con dispositivos 1-Wire es diferente entre s, y an ms si utilizan diferentes topologas y diferente hardware, lo cual se detallara ms adelante. Varios usuarios declaran haber hecho limitaciones de la longitud y del cargamento de la red 1-Wire, pero la conexin no es usualmente clara. Como resultado, los usuarios, algunas veces han sido sorprendidos cuando la topologa falla a pesar de asumir que estn dentro de las especificaciones. En especial el bus maestro ha sido ideado y probado con una red simple

por diferentes usuarios y por la misma Dallas Semiconductor slo para encontrar que son inadecuados para el uso en otras aplicaciones. 2.2.1 Caractersticas generales Es una poderosa tecnologa, la cual utiliza, un slo conductor ms su retorno o tierra para efectuar las comunicaciones y la transmisin de energa entre un dispositivo y mltiples esclavos. Una red de dispositivos 1-Wire esta conformada por un maestro y uno o ms esclavos que poseen un nico terminal de datos de tipo open drain, al que se conecta una resistencia pull-up anclada a +5v (nominal). Una de las caractersticas de esta tecnologa, es que cada dispositivo tiene una nica e irrepetible identificacin grabada en su memoria ROM. El bus 1-Wire, permite realizar una comunicacin serial asncrona entre un dispositivo maestro y uno o varios esclavos, utilizando un nico terminal de E/S del microcontrolador y otro dispositivo. Podemos sealar algunas caractersticas de este bus: Utiliza niveles de alimentacin CMOS/TTL con un rango de operacin que abarca desde 2.8V hasta 6V. Tanto el maestro como los esclavos transmiten informacin de forma bidireccional, pero, slo en una direccin a la vez. De esta manera la comunicacin es half duplex. Toda la informacin es leda o escrita comenzando por el bit menos significativo (LSB). No se requiere del uso de un reloj, ya que, cada componente 1-Wire posee un oscilador interno que se sincroniza con el del maestro cada vez que en la lnea de datos aparezca un flanco de bajada. La alimentacin de los esclavos se puede hacer utilizando el propio voltaje del bus. Para ello, cada dispositivo esclavo posee un rectificador de media onda y un capacitor. Durante los periodos en donde no se produce ninguna comunicacin, la lnea de datos se encuentra en estado alto debido a la resistencia de pull-up, en esta condicin el diodo entra en conduccin y carga al capacitor. Cuando el voltaje de la red cae por debajo de la tensin del capacitor, el diodo se polariza en inverso

10

evitando que el capacitor se descargue. La carga que queda almacenada en el capacitor alimenta al esclavo. Las redes con dispositivos 1-Wire fcilmente pueden tener una longitud desde 200 metros y contener unos 100 dispositivos. Todas las tensiones mayores que 2.2 voltios son consideradas un (1) lgico mientras que como un (0) lgico se interpreta cualquier voltaje menor de 0.8 V. La transferencia de informacin es a 16.3 kbps en modo Standard y hasta 142 kbps en modo overdrive Los dispositivos 1-Wire permiten una disminucin en los costos de los sistemas as como una importante simplificacin de los diseos mediante la utilizacin de un protocolo interfaz que proporciona control, seal y alimentacin sobre un sistema de cableado simplificado. Para la utilizacin del protocolo 1-Wire se utiliza un dispositivo driver que convierte la seal de puerto serie comn a bus de 1 hilo. La comunicacin se realiza a las velocidades estndar del puerto serie, 9,600 (predeterminada), 19,200, 57,600 o 115,200 bits/seg. Todos los dispositivos estn desarrollados en tecnologa TTL por lo que 5V son suficientes para alimentar el circuito. El protocolo 1-Wire utiliza comunicacin half duplex y asincrnico por lo que las rutinas para controlar los tiempos de duracin de cada pulso deben ser lo ms precisas posibles y estar dentro de los rangos de cada dispositivo en particular. La mayor dificultad de implementar este protocolo en microcontroladores radica en la generacin de los tiempos necesarios. Las rutinas aunque simples dependern de factores como el reloj del microcontrolador, posibles interrupciones, etc. Para que un protocolo 1-Wire pueda transmitir como maestro, necesita tener 2 estados GPIO: alta impedancia y lgica baja. El protocolo 1-Wire tiene que tener un tiempo especifico obligatorio que se debe de seguir durante toda la rutina para tener una conexin exitosa. La rutina 1-Wire utiliza un protocolo timing que cuenta con un tiempo constante que se debe de seguir para as poder tener dicha conexin.

11

Cuando se discute sobre la red 1-Wire, dos trminos se describen ampliamente ya que son crticos para el funcionamiento de la red, estos trminos son radio y peso. El radio de la red es la distancia recorrida del alambre desde el final del maestro hasta el dispositivo esclavo ms retirado, en metros. El peso de la red es la cantidad total de conexiones alambricas en la red, en metros. Estos trminos se pueden explicar con un simple ejemplo. Si tienes 3 ramas de 10m, 20m y 30m., interconectados entre si en un mismo bus, se tiene un radio de 30m y un peso de 60m (el peso se obtiene con la suma de 10+20+30). En general, el peso de la red se limita con el tiempo de subida del cable, mientras que el radio establece el tiempo de la seal ms lenta. Como regla, ninguna red 1-Wire deber tener un radio mayor de 750m. A esta distancia, el protocolo falla debido al tiempo de retazo del cable. En la prctica, otros factores usualmente limitan el radio a unos valores menores que los mencionados en el ejemplo anterior. Los dispositivos esclavos tambin proporcionan peso a la red. Cada dispositivo proporciona peso ligero al alambre, los dispositivos se pueden clasificar en funcin de su peso en equivalencia al alambre. Cuando la red sea diseada, el peso del dispositivo debe de considerarse. Sin embargo, el peso est basado en varios factores, siendo la capacitancia el mayor contribuidor ya que los dispositivos que excedan los 24pF por medio del bus 1Wire le agregara un peso de aproximadamente 1m a la red. Muchos factores determinan el radio mximo y el peso de la red. Algunos de estos factores pueden ser controlados y otros no. La interfase final del maestro tiene una gran influencia en el tamao permitido en la red. La interfase debe proporcionar suficiente corriente en el driver para superar el peso del cable y los dispositivos esclavos. Debe tambin de proporcionar una forma de onda 1-Wire con los tiempos que estn especificados y se optimizan por los cambios carga y descarga de tiempo en la red. Cuando la red es pequea, las interfases simples del final del maestro son aceptables. La capacitancia es pequea por lo tanto la energa reflejada llega demasiado rpido y puede ocasionar problemas.

12

El radio de la red es limitada por el tiempo de la forma de onda, por el tiempo de retardo producido por el cable, as como de la resistencia del cable y la degradacin de los niveles de la seal. Cerca de los 750m el retrazo en obtener una respuesta del esclavo encontrado al final del alambre y de regreso al maestro es simplemente el lmite del protocolo. El peso de la red es limitado por la capacidad del cable para cargar y descargar, que es suficiente para satisfacer el protocolo 1-Wire. Una simple resistencia pull-up tiene un limite de peso de aproximadamente 200m. Algunos maestros inteligentes han superado esto usando activos pull-ups que proveen corrientes altas usando bajo control lgico, y ha extendido el soporte mximo de peso hasta 500m, pero a expensas de una interfase mucho ms compleja al final de maestro. 2.2.2 Funcionamiento Podemos describir el funcionamiento del protocolo 1-Wire como una secuencia de transacciones de informacin, la cual se desarrolla segn los siguientes pasos: 1. La inicializacin. Todas las comunicaciones en el bus 1-Wire comienzan con una secuencia de un pulso de Reset y Presencia. El pulso de Reset provee una forma limpia de iniciar las comunicaciones, ya que, con l se sincronizan todos los dispositivos esclavos presentes en el bus. Un Reset es un pulso que genera el maestro al colocar la lnea de datos es un estado lgico bajo por unos 480 s. Una vez liberado, el bus retorna a un nivel alto y luego de un tiempo comprendido entre 15 a 60 s, los dispositivos esclavos transmitirn un pulso de presencia. Este consiste en forzar la lnea de datos a un nivel bajo durante un tiempo entre 60 a 240 s. El maestro, esperar por los pulsos de presencia con el bus en estado alto, a travs de las resistencias de pull-up, por un tiempo de al menos 480 s. En la Figura 2.2 se muestran algunas de estas secuencias encontradas en los dispositivos 1-Wire.

13

Figura 2.2. Diferentes secuencias encontradas en comunicaciones 1-Wire.

2. Comandos y funciones de ROM. Los comandos de ROM son comunes en todos los dispositivos 1-Wire y se relacionan con la bsqueda, lectura y utilizacin de la direccin de 64 bits que identifica a los esclavos. En la tabla 2.1 se muestran los comandos de ROM ms comnmente utilizados en los dispositivos 1-Wire.
Tabla 2.1 Funciones de ROM del bus 1-Wire
Comando Read ROM Match ROM Skip ROM Valor $33 $55 $CC Accin Lee la identificacin de 64 bits del dispositivo. Este comando solamente puede usarse si existe un solo dispositivo esclavo. Este comando, seguido de una identificacin de 64 bits, permite seleccionar a un dispositivo esclavo en particular. Direcciona a un dispositivo sin necesidad de conocer su identificacin. Este comando puede ser utilizado solamente cuando existe un solo Search ROM $F0 dispositivo esclavo. Lee los 64 bits de todos los dispositivos esclavos conectados en el bus. Se utiliza un proceso se eliminacin para distinguir a cada dispositivo conectado.

14

3. Comandos y funciones de control de memoria.

Son funciones propias del

dispositivo 1-Wire. Incluye comandos para leer / escribir en localidades de memoria, leer en memorias de scratchpad, controlar el inicio de un ADC, iniciar la medicin de la temperatura o manipular el estado de un bit de salida, entre otros. Cada dispositivo define sus propios comandos. 4. Transferencia de bytes o datos. Finalmente, la transferencia de bytes son utilizadas para leer o escribir datos en el dispositivo 1-Wire. La lectura y escritura de datos del bus 1-Wire se hace por medio de Slots, la generacin de estos es responsabilidad de maestro. La lectura de los datos est acompaada por la generacin de un pequeo pulso que forza a la lnea al estado bajo por 15 microsegundos, el flanco de bajada activa la captura del dato. La escritura de los datos est acompaada por la generacin de un pequeo pulso de ancho variable dependiendo de lo que se est escribiendo (0,1) y debe durar al menos 60 microsegundos, ver Figura 2.2. 2.2.3 Topologas de la red 1-Wire Las redes 1-Wire por lo general son de forma libre en su estructura, usualmente pueden quedar en una de varias categoras generalizadas basados en la distribucin del esclavo 1-Wire y la interconexin del alambre. Las siguientes topologas se ejemplifican en la Figura 2.3.

Figura 2.3. Topologas de la red 1-Wire.

15

Topologa en lnea. El bus 1-Wire es un par simple, empezando por el maestro y extendiendo hasta el dispositivo esclavo ms retirado. Los otros dispositivos esclavos son unidos hacia el par a lo largo de su longitud sin significativo (>3m) ramas o trozos, ver Figura 2.3 (a).

Topologa de trozos. El bus 1-Wire es una lnea simple principal, empezando por el maestro y extendiendo hacia el esclavo ms retirado. Otros dispositivos esclavos son unidos hacia la lnea principal por medio de ramas o trozos (Stubs) de 3m o ms de longitud, ver Figura 2.3 (b).

Topologa de estrella. El bus de la 1-Wire esta dividido cerca del extremo maestro y se extiende en muchas ramas, las cuales varan en su longitud, probablemente con dispositivos esclavos a lo largo o al final de la rama, ver Figura 2.3 (c). Pruebas han demostrado que la topologa tipo estrella sin desconectar (con varias

divisiones en sus ramas del maestro) son ms difciles de confiar. El ensamblaje de varias ramas presenta una impedancia desalineada hacia el maestro, y la reflexin del final de la rama puede viajar a distancias igual al peso cercano a la red (en lugar del radio) causando error en los datos. Por esta razn la topologa tipo estrella sin desconectar no es recomendable, y no hay ninguna garanta en su funcionamiento.

2.2.4 Implementacin y aplicaciones Dallas Semiconductor ha fabricado una extensa gama de productos con comunicacin 1-Wire como se puede ver en la Figura 2.4. Todos ellos utilizados en rama de la industria electrnica, automotriz, comunicaciones, etc., y lgicamente se pueden adaptar entre s por ser propietarios de dicho protocolo. De la misma manera comparten comunicacin con otros dispositivos de otros fabricantes, pero debido a su fcil comunicacin mediante un slo hilo, hace posible la intercomunicacin. Por otro lado, este protocolo se pueden utilizar para la comunicacin con microcontroladores, como por ejemplo los PIC de la compaa Microchip, estos microcontroladores tienen muchos pines para mltiples propsitos generales de entrada /

16

salida (GPIO) y es fcil de r para implementaciones de Dallas Semiconductores con el uso de este protocolo. Para poderlo implementar solo se necesitan unas cuantas transacciones. Se necesitan 3 rutinas bsicas: Inicializacin, bit de leer y bit de escribir. Con esto permite al PIC interactuar con cualquier dispositivo de Dallas Semiconductores. Otras compaas como Atmel, Mitsubishi, Cypress, etc., soportan este tipo de protocolo en su lnea de productos [2].

Figura 2.4. Diferentes componentes 1-Wire

2.3 Protocolo RS-232


En los aos 60, cada fabricante usaba un interfaz diferente para comunicar un DTE (Data Terminal Equipment) y un DCE (Data Communications Equipment). Cables, conectores y niveles de voltaje eran diferentes e incompatibles, por lo tanto, la interconexin entre equipos de diferentes fabricantes requera el uso de convertidores de los niveles de voltaje y la fabricacin de cables y conectores especiales. En 1969, el EIA (Electronic Industry Association) junto con Bell Laboratories y otros fabricantes establecieron un estndar para la interfaz entre DTE's y DCEs. El objetivo de este estndar era simplificar la interconexin de equipos fabricados por diferentes firmas.

17

Este estndar lleg a ser el RS-232-C (Recommended Standard number 232, revision C from the Electronic Industry Association). Un estndar similar fue desarrollado en Europa por el CCITT (Comite Consultatif Internatinale de Telegraphie et Telephonie) conocido como V.24 (descripcin funcional) y V.28 (especificaciones elctricas). El RS232-C fue adoptado por la mayor parte de fabricantes de terminales y equipo. En 1980 la creciente industria de los microcomputadores encontr el estndar RS232-C barato y apropiado para conectar perifricos al microcomputador. El RS-232-C llego a ser rpidamente un estndar para conectar al microcomputador, impresoras, cintas de backup, terminales y otros dispositivos como microcontroladores. Como el estndar solamente soporta velocidades de transmisin hasta 20 kbps y distancias hasta 16 metros, se adoptaron nuevos estndares por la EIA. El RS449 (descripcin mecnica) y RS423 (descripcin elctrica) son compatibles con el RS-232-C y se puede operar a velocidades de hasta 10 Mbps y alcanzar distancias de hasta 1200 metros. Sin embargo, la adopcin de un nuevo estndar es un proceso largo y costoso. El RS-232-C esta muy expandido y por lo tanto le queda bastante vida. Define el mtodo ms popular para interconectar DTEs y DCEs (por ejemplo, conexin entre un PC y un MODEM de datos). La recomendacin ITU V.24 junto con la ITU V.28 son equivalentes a RS-232. La versin ms popular de RS-232 es la RS-232C. La versin ms reciente es la RS-232E. La Figura 2.5 muestra la interconexin bsica del estndar RS-232.

18

Figura 2.5. Conexin RS-232

2.3.1 Caractersticas generales El estndar RS-232-C describe un interfaz entre un DTE y un DCE que emplea un intercambio en serie de datos binarios. En el se definen caractersticas elctricas, mecnicas, funcionales del interfaz y modos de conexin comunes. Las caractersticas elctricas incluyen parmetros tales como niveles de voltaje e impedancia del cable. La seccin mecnica describe los pines. La descripcin funcional define las funciones de las seales elctricas que se usan. 2.3.1.1 Caractersticas elctricas Los niveles de voltaje descritos en el estndar se muestran en la tabla 2.2, puede verse que los voltajes del emisor y el receptor son diferentes. Esta definicin de los niveles de voltaje compensa las perdidas de voltaje a travs del cable. Las seales son atenuadas y distorsionadas a lo largo del cable. Este efecto es debido en gran parte a la capacidad del cable. En el estndar la capacidad mxima es de 2500 pf (pico faradios). La capacidad de un metro de cable es normalmente de 130 pf. Por lo tanto, la longitud mxima del cable est limitada a unos 17 metros. Sin embargo, esta es una longitud nominal definida en el estndar y es posible llegar hasta los 30 metros con cables de baja capacidad o utilizando velocidades de transmisin bajas y mecanismos de correccin.
Tabla 2.2. Niveles de voltaje del estndar RS-232.
Seales de datos Emisor (necesario) "0" de 5 a 15 "1" de -5 a -15 Voltios de -3 a -25 Voltios "On" Voltios Voltios

Receptor (esperado) de 3 a 25 Seales de control Emisor (necesario) "Off"

de 5 a -15 de 5 a 15

Receptor (esperado) de 3 a -25 de 3 a 25

Especificaciones explcitas de ingeniera

19

Niveles de voltaje (-15v hasta +15v); un bit por baudio, forma de la seal que representa un 1 y un 0; el propsito o funcin de cada uno de los 25 pines que conforman la interfase. Lineamientos de ingeniera que pueden modificarse (flexibles) Mtodo para iniciar y terminar el flujo de datos; mtodo para coordinar al emisor y al receptor Consideraciones NO especificadas en el estndar La forma en que los caracteres se representan con bits; el tipo de conector utilizado. 2.3.1.2 Caractersticas mecnicas En el estndar no se hace referencia al tipo de conector que debe usarse. Sin embargo los conectores ms comunes son el DB-25 (25 pines) y el DB-9 (9 pines). El conector hembra debe estar asociado con el DCE y el macho con el DTE, la Figura 2.6 muestra el tipo de conectores asociados a este estndar, la tabla 2.3 muestra las seales asociadas a cada pin.

Figura 2.6. Diagrama de los conectores DB-25 y DB-9.

Tabla 2.3 Seales asociada a cada pin.


DB25 Pin 1 2 3 4 5 6 7 8 9 3 2 7 8 6 5 1 DB9 Pin Nombre EIA FG TD RD RTS CTS DSR SG DCD AA BA BB CA CB CC AB CF CCITT 101 103 104 105 106 107 102 109 <---> <---> <-<-DTEDCE Nombre Formal Proteccin a tierra Transmisin de datos Recibidor de datos Peticin de envo Libre para envo Dato listo para envo Seal a tierra Detector de datos con acarreo +P

20

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 9 4 SRTS DTR SQ RI SCA CD CG CE DA 120 108.2 110 125 113 --> --> <-<-<-SDCD SCTS STD TC SRD RC SCF SCB SBA DB SBB DD 122 121 118 114 119 115 <-<---> <-<--->

-P No asignado Dato secundario con acarreo Dato secundario listo para enviar Transmisor secundario Seal de transmisin Dato secundario recibido Seal de cronometro del dato recibido No asignado Peticin de envo del dato secundario Dato Terminal Listo Seal detectora de calidad timbre indicador Seal de rango del dato selector Seal de transmisin No asignado

CH/CI 111/112 <-->

2.3.1.3 Seales del puerto Cada una de las seales pertenece a un tipo de circuito distinto. En el nombre EIA de la seal se hace referencia al circuito al que pertenece. (A) Tierra (B) Datos (C) Control (D) Tiempo (S) Canal secundario 2.3.1.4 Cableados tpicos A pesar de la gran difusin de la norma RS-232-C no existe un nico modelo estndar de cable que permita la interconexin de dos dispositivos RS-232-C cualquiera, sino que vara dependiendo de dos factores.

21

El tipo de dispositivo. Si se trata de dos dispositivos de distinto tipo (DTE-DCE) la conexin es la natural, es decir se conectan entre si la patillas con el mismo nmero. Sin embargo, si son del mismo tipo (DTE-DTE) es necesario intercambiar algunas pines con el fin de mantener las entradas unidas con las salidas.

El tipo de control de flujo. Si este se hace a travs de algn protocolo software, como el XON/XOFF, basta con las lneas de transmisin y recepcin de datos, puesto que el control se realiza a travs de estas. En el caso de control de flujo por hardware son necesarias ms lneas para la gestin de la comunicacin. Existen, adems, algunas formas de control de flujo hbridas a travs de software ayudadas por algunas lneas hardware.

2.3.1.5 Representacin de 1s y 0s Un uno binario se denomina marca (mark) y se representa por un voltaje de -3 a -15 voltios. Un cero binario se denomina espacio (space) y se representa por un voltaje de +3 a +15 voltios. Cualquier voltaje entre -3 y +3 voltios se considera invlido. Una corriente de corto circuito no puede exceder los 500mA, esto se representa en la Figura 2.7.

Figura 2.7. Representacin de 1s y 0s.

2.3.1.6 Velocidad de Transmisin

22

Uno de los parmetros ms importantes que se deben establecer correctamente entre los dos dispositivos que se comunican a travs de una interfase, es el nmero de baudios (bit por segundo), o la velocidad de transferencia de los datos a travs del enlace. Una lista de algunas de las velocidades que se usan en comunicaciones de datos se muestra a continuacin: Las velocidades ms utilizadas en enlaces de comunicaciones con la PC son las de 300 y 1200 baudios, que se usan para comunicaciones telefnicas, y las de 9600 y de 19200 baudios, que se utilizan en redes internas entre computadoras. Una regla nemotcnica que se aplica en estos casos es que el nmero de caracteres por segundo que pueden ser transferidos entre dos dispositivos es aproximadamente el nmero de baudios dividida por 10. La velocidad de transferencia exacta depender del formato de los datos que se utilice. 2.3.2 Funcionamiento del protocolo RS-232 Aunque la idea bsica de la transformacin paralelo-serie, que es necesaria para pasar desde la palabra paralelo de 8 o 16 bits de muchos buses de microcomputadores, no es difcil de comprender, existen algunos matices en su implementacin que deberan conocerse. Hasta ahora, esta discusin est limitada al formato asincrnico de datos serie. En esta forma de transferencia de los datos, no existe un tiempo absoluto para vigilar el tiempo entre los dos dispositivos. Ms bien, cada carcter que es transmitido a travs de la interfase esta referido en el tiempo al primer bit de datos transferido, el bit de partida. Luego, los tiempos internos de ambos dispositivos tienen solamente que permanecer en sincronismo para los 10 o ms bits del carcter transferido, y los relojes se resincronizan al comienzo del prximo carcter que es transferido. Existe un grado de flexibilidad considerable en el formato de los datos que se pueden usar en enlace RS-232. Un flujo de datos para la transferencia de un nico byte de datos se muestra en la Figura 2.8. Este flujo de datos es la representacin ASCII de un carcter nico junto con un

23

nmero predefinido de bits de partida o inicio, de trmino o fin y de paridad. Solamente si el dispositivo que enva los datos y el que los recibe, han sido dos en forma similar, los datos sern interpretados adecuadamente por el dispositivo receptor. Se observa que los niveles de las seales en la interfase RS-232 son de lgica negativa por lo tanto se debe tener cuidado en el hardware que se conecte a la salida de ella. Este ejemplo en particular enva un solo bit de partida, 7 bits para el carcter y un bit de paridad seguido por un solo bit de trmino.

Figura 2.8. Flujo de datos de un formato serie.

Esto generalmente se escribe como 7 + Even + 1. Nuevamente, de la Figura 2.8 se ve que el bit de partida es un cero lgico, y que el (los) bit (s) de trmino es (son) un uno lgico. Esto siempre es as y es para garantizar que ocurra un cambio de tensin al comienzo del bit de partida con lo cual se puede referenciar el tiempo de los dos dispositivos. Se debe tener en cuenta que el estndar RS-232 solo para el hardware, es decir solo para la transferencia de datos entre los dos dispositivos. El contenido e interpretacin de los 7 u 8 bits de datos, que conforman cada carcter son los objetivos de otros estndares de datos. La nica norma de datos utilizado en aplicaciones computacionales es el cdigo ASCII (American Estndar Code for Information Interchange). Este es un cdigo de 7 bits que puede representar hasta 128 caracteres separadamente. Hay 96 caracteres imprimibles y 32 caracteres de control en este cdigo.

24

Aunque se utilizan 7 bits para representar un carcter ASCII, se usan comnmente 8 bits. El octavo bit es designado como un bit de paridad y se utiliza para checar los errores que pudieran producirse entre la creacin de un carcter y la lectura de l. Siempre se pone a uno o cero de modo que el nmero total de bits 1 es siempre par o impar. Si, por ejemplo, se seleccionara paridad par y se detectara un nmero impar de bits 1 en el byte del carcter transmitido, este byte debe contener un error. La adicin del bit de paridad al byte de datos es un mecanismo simple pero poderoso de aumentar la confiabilidad de los datos transferidos. Este bit es generado por el controlador asincrnico y es revisado por el receptor, el cual debera ser do para un formato de datos similar al del transmisor. El chequeo de la paridad no es parte de la norma RS-232 y debe ser parte del software que se utilice en la comunicacin. La paridad puede rse de diversas formas: No Parity (sin paridad): No se transmite bit de paridad Even Parity (paridad par): El bit de paridad es uno (1) si el caracter lleva una cantidad par de unos. Odd Parity (paridad impar): El bit de paridad es uno (1) si el caracter lleva una cantidad impar de unos. Mark Parity (paridad de marca): El bit de paridad siempre es uno Space Parity (paridad de espacio): El bit de paridad siempre es cero

El chequeo de paridad no detectar un error doble que se produzca o bits de datos en el carcter enviado. Sin embargo, si la posibilidad de perder cualquier bit de datos, no est relacionada con aquella de perder otro bit, entonces la probabilidad de que no se detecte un error, ser la raz cuadrada de perder un nico bit en la interfase. Por lo tanto si se transmite un bit mal entre 10.000, entonces no se detectar un carcter defectuoso entre 100 caracteres RS-232 no dice cmo representar caracteres (7 u 8 bits es la forma ms comn, pero podran ser 5 6). Cuando no se envan datos, la seal se debe mantener en estado de

25

marca (un uno lgico, conocido tambin como RS-232 idle state). El comienzo de flujo de datos se reconoce porque la seal pasa de marca a espacio. Dependiendo de la implementacin, pueden existir unos bits de sincronizacin conocidos como bits de arranque o inicio (start bits). El emisor y el receptor deben ponerse de acuerdo si hay cero, uno o dos bits de arranque.

Figura 2.9. Representacin de caracteres.

Despus de los bits que representan los datos (5, 6,7, u 8 bits) puede seguir un bit de paridad (que es opcional, depende de la implementacin) para ayudar a determinar si ocurri un error durante la transmisin. Este error se llama Parity Error y puede ser causado por una configuracin desigual en el emisor y el receptor. La tabla 2.5 muestra la configuracin de los bits. Despus del bit de paridad (si lo hay) vienen los bits de parada (stop bits). Estos sirven para decir dnde termina el carcter. Pueden ser uno o dos bits de parada (en esto tambin deben ponerse de acuerdo el transmisor y el receptor). Algunas implementaciones cortan la transmisin del segundo bit de parada a la mitad, se dice entonces que utiliza uno y medio bits de parada. Los bits de parada se transmiten como unos lgicos (Marca), ver Figura 2.9.
Tabla 2.4. Configuracin de bits en el protocolo RS-232

26

DATOS 1010101 1111111 1010000 0101010 1111110 0011111 1000000

Cantidad de unos 4 7 2 3 6 5 1

BIT DE PARIDAD EVEN ODD MARK SPACE 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0

2.3.2.1 Control de flujo En RS-232 el control de flujo se puede hacer de dos maneras: por hardware (RTS/CTS) o por software (Xon/Xoff). Por Software: El carcter Xoff (ASCII 19, CTRL-S) es utilizado por el receptor para decir que su buffer est lleno y el emisor debe esperar. Cuando vuelva a tener espacio en el buffer, enviara el carcter Xon (ASCII 17, CTRL-Q), dicindole que puede volver a trasmitir. Esto economiza cables en la interconexin, pero ocupa espacio en el canal (perfecto para un PDA). Por hardware: a diferencia del anterior, este tipo de control de flujo requiere que entre su PC y su MODEM por ejemplo, se conecten dos hilos: RTS y CTS. Cuando el buffer del receptor se llena (supongamos que es un modem lento) le dice al PC que espere, desactivando la seal CTS. Cuando vuelva a tener espacio en el buffer, activa nuevamente el CTS para decir que est nuevamente listo (esto puede pasar cuando la UART es ms rpida que el MODEM).

2.3.2.2 Parmetros de comunicaciones Antes de probar la interfaz RS-232 se deben verificar los siguientes requisitos para una comunicacin serial apropiada. Baud Rate. La velocidad de ambos dispositivos debe ser la misma.

27

Paridad Los formatos de verificacin de error deben de ser idnticos en ambos dispositivos; Las opciones son: sin paridad, con paridad par; con paridad impar. Por lo general se omite la paridad

Tamao de Nmero de bits por caracter (varan de 5 a 8 bits), ambos Los dispositivos deben de usar el mismo nmero de bits por caracter. Bits de paro (1 o 2 bits de paro). Modo: se utilizan los modos de transmisin "Simplex" Transmisin (no muy usada), "Half-Duplex" y "Full-Duplex". Ambos dispositivos deben de tener el mismo modo.

Cdigo de la mayora de las computadoras usan temporizacin asncrona Temporizacin (derivada de los bits de inicio y de paro de un caracter) pero

tambin existen interfases sncronas. Aunque ambos dispositivos deben de utilizar la misma forma de transmisin de la temporizacin asncrona algunas veces el nmero de bits de paro puede ser diferente para los dos dispositivos. Se deber de asegurar de poner el mismo nmero de bits de paro en ambos extremos las opciones son generalmente 1 o 2. 2.3.2.3 UART (Universal Asynchronous Receiver/Transmitter) La UART es el microchip que controla la interfase entre un PC y los dispositivos seriales. Especficamente permite al PC utilizar la internase RS-232C pudiendo hablar con mdems y otros dispositivos seriales. Convierte los bytes recibidos por la UART, en paralelo, en un flujo de bits en serie para los mdems y viceversa: los que llegan como flujo de bits del modem los convierte en bytes en paralelo. Agrega (a los bits que salen) y chequea (a los bits que entran) el bit de paridad. Agrega (a los bits que salen) y retira (a los bits que entran) los bits de arranque (start bits) y parada (stop bits)

28

Maneja las interrupciones del teclado y el mouse (que son dispositivos seriales con puertos especiales). Permite almacenar cierta cantidad de datos permitiendo coordinar los flujos de bits entre en PC y los dispositivos seriales. Existen varios tipo de UARTs 8250: Primera UART. La 8250A trabajaba ms rpido del lado del BUS de I/O. 16450: Utilizada en ATs. Opera bien a 38,4 Kbps 16550: Fue la primera generacin con buffers. 16Bytes. El buffer no funcion bien se pas a la 16550A. 16550A: UART comn para 14.4Kbps y 28.8Kbps. 16650: 32Bytes de buffer FIFO (First In-First Out) 16750: 64Bytes FIFO Existen otras UART, como CDP6402, AY-5-1015 D36402R-9.

2.3.3. Protocolo RS-422

29

El estndar RS-422 fue creado con la idea de superar las limitaciones de los estndares de extremo simple, tal como el RS-232, los cuales padecen de falta de capacidad de rechazo al ruido de modo comn, las limitaciones de la distancia que pueden cubrir y las velocidades de transmisin posibles. Este es un estndar ms nuevo que la RS-232, y opera sobre distancias mayores (hasta 4000 pies) y a velocidades mayores (hasta 10 Mega bits/s), incluso en ambientes ms ruidosos. Sin embargo, los valores de mxima distancia y velocidad no se pueden lograr simultneamente. Esta interfase utiliza un par de lneas para cada seal. El transmisor controla el voltaje diferencial entre un par, proporcionando un buen rechazo al ruido en modo comn. Puede haber lneas de protocolo y al igual que la RS-232, su uso es dependiente del equipo. La circuitera de la interfase RS-422 no es compatible con la de la interfase RS-232. La interfase RS-422 soporta operacin full-duplex, pero al contrario de la RS-232, un trasmisor RS-422 puede alimentar mltiples receptores. Como resultado, se encontrarn mdulos RS-422 propuestos para compartir lneas receptoras comunes. En algunos casos, se pueden enviar comandos para activar los transmisores de los mdulos uno a la vez. En este caso, los mdulos tambin pueden compartir un par trasmisor comn, y una interfase RS-422 puede comunicarse con hasta 10 dispositivos.

Figura 2.10. Diagrama de una interfaz desbalanceada

30

Los estndares de extremo simple emplean lo que se llama interfaz desbalanceada, la cual se distingue porque la transmisin se hace por medio de un slo hilo, como es caracterstico de los estndares de este tipo. En la Figura 2.10 se muestra un esquema de este tipo de interfaz en el que se ve que la transmisin es hecha por un slo cable cuyo voltaje est referido a tierra. En realidad, el nombre oficial del estndar RS-422 es TIA/EIA-422, que es un estndar industrial que especifica las caractersticas elctricas de un circuito de interfaz balanceada. La interfaz balanceada se distingue de la anterior en el hecho de que la transmisin de los datos se hace de manera diferencial empleando dos cables, cada uno de los cuales est referido a tierra. Sin embargo, el receptor est construido para interpretar la entrada de manera diferencial, de modo que el problema del ruido de modo comn que se presenta en las interfases desbalanceadas se elimina. En la Figura 2.11 se presenta un diagrama de una interfaz balanceada en la que se aprecian las caractersticas mencionadas; tambin se puede observar un elemento adicional cuya funcin se comentar ms adelante: la terminacin (cuadro con una 'T' adentro).

Figura 2.11 Diagrama de una interfaz balanceada

Como todos los estndares anteriores el RS-422 posee lmites en cuanto a la distancia y la velocidad a las cuales puede transmitir. A manera de ilustracin en la Figura 2.12 se muestra un grfico comparativo entre las relaciones de distancia y velocidad para varios estndares; a partir de l se puede hallar la distancia mxima posible que corresponde a una determinada velocidad de transmisin. 31

Figura 2.12. Relacin entre distancia y velocidad de transmisin para diferentes estndares.

Las interfases balanceadas del estndar RS-422 poseen tres tipos de configuraciones: Punto a punto: esta configuracin est constituida por un slo transmisor (D) que est unido a un receptor (R), tal como se ilustra en la Figura 2.13. Los elementos adicionales que se presentan en la Figura mencionada, los TransZorb, son unos dispositivos de National Semiconductor que actan como diodos espalda con.

Figura 2.13. Interfaz balanceada de punto a punto.

32

espalda, de modo que funcionan como limitadores de voltaje para las lneas de transmisin, evitando que el voltaje en ellas supere el valor del voltaje Reverso de tolerancia especificado del TransZorb, VRS Derivacin mltiple: En esta configuracin un slo transmisor enva la seal a varios receptores tal como lo muestra la Figura 2.14. Esto significa que el dispositivo debe poseer una especificacin de fan-out que determine el mximo de receptores que se pueden alimentar con su seal de salida, o bien, para hallar el "fan-out" se pueden emplear los datos de mxima corriente en salida del transmisor y el de la corriente de entrada del receptor.

Figura 2.14. Interfaz balanceada de derivacin mltiple.

Punto mltiple: En esta configuracin un mismo par de lneas es empleado por varios transmisores para enviar datos a varios receptores como lo muestra la Figura 2.15. Los transmisores RS-422 no se disean normalmente para este tipo de operacin, sin embargo, hay tres detalles que, de cumplirse, permiten hacerlos: (a) las diferencias de potencial de tierra entre transmisores, (b) contencin entre transmisores, y (c) capacidad de manejo de los transmisores (fan-out). Por esta razn, para aplicaciones multipunto se recomienda los transceptores que operan en el estndar RS-485.

33

Figura 2.15. Interfaz balanceada de punto mltiple.

El estndar RS-422 tambin establece un mecanismo de prevencin de fallas, llamado failsafe el cual consiste en que ante una entrada en falla determinada el receptor tendr una salida conocida. En la Figura 2.16 se ilustran los tres tipos de prevencin de fallas que se especifican para el estndar RS-422 y que son las siguientes: Abierto: cuando entre las terminales de entrada del receptor hay un circuito abierto. Si el receptor no posee una proteccin interna contra este tipo de falla, entonces se debe proporcionar mediante resistencias de pull-up o de pull-down que sean mayores a 50k. Con terminacin: cuando entre las terminales de entrada del receptor se coloca una resistencia de terminacin. Si el receptor posee una proteccin contra fallas en abierto no incluye la de proteccin con terminacin, de modo que hay que incluir una resistencia de polarizacin. Corto: cuando entre las terminales de entrada del receptor hay un cortocircuito. Para brindar la proteccin los resistores de pull-up o de pull-down no son eficaces, pero se puede emplear una tcnica alternativa de terminacin para proteccin contra fallas.

34

Figura 2.16. Tipos de prevencin de fallas, failsafe, que establece el estndar RS-422.

Otra caracterstica del estndar es que no especifica los requisitos para la proteccin contra ESD (Electro Static Discharge), "Descarga Electrosttica", que es el nombre que reciben ciertos eventos que tienen la caracterstica de tener muy alta potencia por un corto perodo de tiempo. Los ESD pueden daar los circuitos integrados si no se protegen adecuadamente, aunque la industria ha desarrollado un mnimo de 2000V bajo las condiciones del modelo del cuerpo humano. Sin embargo, hay muchos sistemas actuales que requieren valores mayores de 10-15kV, para lo cual se han diseado protecciones para ESD, de las cuales se distinguen 3 tipos: la proteccin interna del integrado, los dispositivos limitadores de voltaje (como los TransZorb de National Semiconductor) y los conectores protegidos. La resistencia de terminacin, que se incluye en varios de los diagramas mostrados, se emplea cuando la distancia de conexin entre el transmisor y el receptor es tal que dicha conexin se puede considerar una lnea de transmisin. El criterio empleado para determinar si la conexin puede considerarse una lnea de transmisin es la comparacin entre el tiempo de transicin de la seal (el ms rpido entre el tiempo de subida y el de bajada),tr, y el tiempo de propagacin entre los extremos, tp. La relacin entre estos tiempos debe ser: tr 8tp.

35

Otras caractersticas que se especifican en el estndar RS-422 son el tipo de cable empleado, las caractersticas de apagado, los capacitores de desvo (bypass) que se deben emplear y la longitud de las derivaciones (stubs) de la lnea en que se transmite [19].

2.4 Protocolo RS-485


La Electronics Industries Association (EIA), en 1983 autoriz un nuevo estndar de transmisin diferencial llamado RS-485. Este estndar es similar en muchos aspectos al popular estndar EIA RS-422; de hecho RS-485 se puede considerar como el resultado de la expansin del RS-422, para permitir "drivers" y receptores mltiples multiterminal, compartiendo la misma lnea de datos de transmisin. El estndar RS-485, como el estndar RS-422, especifica solamente las caractersticas elctricas del "driver" y del receptor para ser utilizado en la lnea de transmisin, pero no especifica o recomienda ningn protocolo de software, es decir, cuando se decide utilizar el protocolo RS-485 para interconectar dispositivos se deben de seguir las especificaciones de hardware que marca y que ms adelante se describen, pero si se necesita otro tipo de software se deja a criterio del usuario o de la aplicacin a desarrollar. El estndar EIA RS-485 ha tenido mucha aceptacin. Los usuarios son ahora capaces de hacer redes de rea local econmicas y enlaces en comunicaciones multiterminales utilizando cables de par trenzado y el protocolo de su opcin. Dicha aceptacin del estndar RS-485 est tambin reflejado por el hecho de que otras normas la refieren cuando se especifica un enlace de datos multiterminal, ANSI (American National Standard Institute), normas IPI (Intelligent Peripheral Interface) y SCSI (Small Computer Systems Interface), han utilizado el estndar RS-485 como la base para la interconexin en modo diferencial. El estndar IPI especifica la interconexin entre controladores de disco y adaptadores de "host" a velocidades de transmisin de 2.5 megabaudios sobre un enlace de datos hasta 50 metros NRZ (Non Return to Zero). El estndar SCSI especifica la interconexin entre computadores personales, "drives" de disco, impresoras, escner, y otros perifricos a velocidades de transmisin de 4 megabaudios sobre un enlace de 25

36

metros. Hasta la introduccin del estndar RS-485, el estndar RS-422 fue la interconexin estndar ms ampliamente aceptada para la transmisin de datos en modo diferencial [3]. El estndar RS-485 fue creado para permitir la conexin de varios dispositivos a travs de una lnea comn. Cada dispositivo representa una Unidad de Carga (UL = Unit Load) y se denomina nodo. Una red RS-485 puede contener hasta 32 UL, donde cada UL representa una carga de 12 K. Utilizando receptores de alta impedancia, la cantidad de nodos puede aumentarse hasta 256 [4]. 2.4.1 Caractersticas generales del protocolo RS-485 La transmisin se hace en modo diferencial; el cable (usualmente par trenzado) lleva la seal y su inverso. El receptor detecta la diferencia entre ambas. Como la mayor parte del ruido se acopla a los dos cables por igual, en el receptor se cancela. Esto le otorga ms inmunidad al ruido que otras interfases, como la RS-232. RS-485 es una red Half-Duplex multidrop, esto significa que mltiples transmisores y receptores pueden ingresarse a la lnea. El cable puede tener una longitud de hasta 1300 metros (4000 pies) y la velocidad de transmisin puede llegar hasta 10 Megabits/seg. Sin embargo, debido a la impedancia del cable, estos lmites no pueden alcanzarse simultneamente: a mayor longitud del cable, menor velocidad. Por ejemplo, con 1300 metros de cable, la velocidad mxima es de 90 Kbit/seg. y con unos 16 metros (50 pies) la velocidad llega hasta 10 Mbit/seg. La transmisin de los datos se hace generalmente de manera asncrona, como en RS-232, con un bit de inicio, los bits de datos, un bit de paridad opcional y un bit de paro. Aunque el bus RS-485 es bidireccional (pueden fluir datos en ambos sentidos) la transmisin es half-dplex, es decir, en un sentido por vez y no simultneamente. RS-485 no define ningn protocolo para controlar el flujo de datos en el bus. Lo ms habitual es que un nodo, denominado master, interrogue al resto, denominados slaves. El master enva a travs del bus un requerimiento que incluye un nmero o cdigo que identifica a un esclavo (ID), que al recibirlo, contesta con la informacin solicitada. Tambin es posible una configuracin multi-master, en la que la comunicacin pueda ser

37

iniciada por mas de un nodo en la red. Sin embargo, deben tomarse precauciones para evitar colisiones cuando dos maestros intentan transmitir simultneamente [4]. El protocolo RS-485 para poder ser usado necesita un adaptador RS-232 que puede usarse en cualquier puerto serial de cualquier computadora o un dispositivo entrada / salida. Su alta velocidad y su poco consumo de poder, permite al convertidor poder usarlo con el puerto serie RS-232 o cualquier alimentacin externa de 3.3 hasta 40 volts. Las caractersticas con que cuenta este protocolo son: Puerto de energa para conexin externa. Conector DE-9F (DB9) con tres tipos de cable para el conector RJ11 Entrada / salida de un unbuffered Rango de datos de entrada es igual al rango de los datos de salida. Opciones Elctricas: Solo transmisin Solo recepcin RTS-Hardware Control de flujo TX/RX en convertidor DCE CTS-Hardware Control de flujo TX/RX en convertidor DTE Revertidor de seal TX y RX Opciones mecnicas: Convertidor Hembra con Thumbscrews (Tornillo Manual) Convertidor Macho con Thumbscrews Convertidor Hembra con Jackscrews (Tornillo no Manual) Convertidor Macho con Jackscrews El cableado puede hacerse por medio de cualquier RJ11 4P/4C (4 pins/ 4 conectores), 6P/4C (6pins/ 4 conectores), o el estndar 4P/AC (4pins/ 4 conectores) con un acoplador de telfono o una placa de pared jack. Tambin se puede acoplar un RJ-45 Ethernet o jacks. El voltaje de entrada debe de ser de 3.3 volts y hasta 40 volts. RS 485 es un dispositivo que usa una seal de par

38

trenzado (TP), dos cables trenzados en ellos mismos. Se esta hablando de Transmisin de datos Balanceado, o Diferencia en transmisin de voltaje. Si podra etiquetar los cables TP A y el otro B, la seal se encuentra inactiva cuando el voltaje A es negativo y el voltaje en B es positivo. Sin embargo, s el cable A es positivo y el voltaje B es en negativo la seal se encuentra activa. Por supuesto, la diferencia entre el cable A y B es importante. Este dispositivo es usado para comunicaciones multipunto. Mas dispositivos pueden ser conectados a un cable de seal simple, similar a la red Ethernet, cual usa cable coaxial. La mayora de los sistemas RS-485 usan arquitectura Maestro / esclavo, en donde cada esclavo cuenta con una direccin nica y responde solamente a paquetes con la direccin de esa unidad. Estos paquetes estn generados por el maestro, que peridicamente jala todos los dispositivos esclavos conectados [3]. Existen dos versiones del RS-485, el Par Trenzado Simple Par Trenzado Doble que a continuacin se especificaran. Par trenzado Simple: En esta versin, todos los dispositivos son conectados a un par trenzado simple. As, estos deben de tener los driver con sus salidas de estado triple (incluyendo al maestro). La comunicacin pasa a travs de la lnea simple en ambas direcciones. Es importante evitar mas dispositivos se transmitan a la vez (problemas de software). Doble par trenzado Aqu, el maestro no necesita la salida de estado triple, desde los dispositivos esclavos transmites arriba del segundo par trenzado, que es la intencin para mandar datos desde el esclavo hacia el maestro. Esta solucin a menudo permite implementar comunicacin multipunto en el sistema, donde originalmente se disea (HW as como SW) para el RS-232. Por supuesto, el software del maestro necesita de ser modificado para mandar paquetes de preguntas a los dispositivos

39

esclavos. El rendimiento de procesamiento de datos creciente es evidente en grandes volmenes. Algunas veces puedes ver el sistema RS485 en un sistema multipunto. Es virtualmente idntico al RS-422; no es usada la salida de los drivers del alto esto de impedancia. La nica diferencia en hardware del circuito RS-485 y RS-422 es la habilidad de mandar la salida en estado de alta impedancia. El RS-485 tiene una entrada de habilitacin, permitiendo poner las salidas en un estado de alta impedancia, permitiendo a varios aparatos compartir un solo paquete de transmisin. El receptor RS-485 reacciona a la diferencia de voltaje entre la entrada A y B. Si el Vab es mayor que 200mV, el nivel lgico del es definido en la salida del receptor. Para Vab menos de 200mV, el nivel lgico es opuesto. En la Figura 2.17 se muestra el estndar RS-485, resumiendo los valores individuales y mostrando los conectores de las terminales y sus resistencias.

Figura 2.17. Valores, conectores y resistencias.

40

Tabla 2.5 Caractersticas generales del Protocolo RS-485

2.4.2 Funcionamiento del protocolo RS-485 Para una operacin correcta en el transmisor y el receptor, un camino para la seal de regreso entre la tierra de cada dispositivo es requerido. En la Figura 2.18 puede observarse este tercer alambre conductor. Una operacin propia del generador y el receptor del circuito requiere la presencia de un camino de seal de regreso entre la tierra del circuito y el final de la interconexin. Si el tercer (tierra) cable es usado, resistencias

41

(aprox. 1kOhm) debern de ser conectadas en serie para eliminar resultados indeseados de las corrientes de diferentes potenciales de tierra.

Figura 2.18. Arreglo de tierras. (*) Las resistencias en serie de la seal a la trayectoria de vuelta, limitan las corrientes que circulan.

Probablemente el asunto menos entendido asociado con la construccin de redes RS-485 robustas es el aterrizamiento apropiado. El modo de voltaje comn (Vcm) es usualmente uno de los parmetro que hay que tomar ms encuenta y es definido como la suma de la diferencia de potencial de la tierra, el voltaje de compensacin y el ruido del voltaje longitudinal acoplado. Para resolver el problema de colisin de datos presentado a menudo en la unidad de hardware de la red multi-drop (convertidores, repetidores, controles de microprocesadores), estos dispositivos pueden permanecer en el modo de recepcin hasta que se encuentre listo para transmitir datos. Un sistema de maestro simple ofrece un directo adelanto y un simple significado para evitar colisin de datos en un tpico sistema de 2-Wire, half-duplex y multi-drop. El maestro inicia una comunicacin requerida hacia el nodo esclavo por medio de esa direccin. El hardware detecta el bit de encendido del transmisor y automticamente inhabilita (en la bandera) el transmisor RS-485. Una vez que el caracter es mandado, el hardware revierte hacia atrs en un modo de recibidor en aproximadamente

42

1-2 microsegundos (por lo menos con el convertidor R.E Smith, repetidores, y tabla remota de entrada/salida). Cualquier nmero de caracteres se pueden enviar, y el transmisor automticamente retransmite con un nuevo carcter (o en muchos casos bit-orientado el esquema del tiempo es usado en conjunto con la red predisponible para una completa operacin automtica, incluyendo cualquier rango Baud y/o cualquier comunicacin especfica). Una vez que la unidad esclavo es direccionada es capaz de responder inmediatamente por su rpido transmisor del dispositivo automtico. NO es necesario introducir largos retardos en la red para evitar colisin de datos ya que estos no son requeridos, redes pueden ser construidas, que utilizaran el ancho de banda al 100% [4]. 2.4.3 Topologa del protocolo RS-485 Si las seales de una red son lentas, los bits de los extremos son largos y la transmisin de los datos son cortas.

Figura 2.19. Muchas de las topologas de red comunes existen, pero la cadena Daisy es la ms confiable para la red RS-485.

Tan pronto como los efectos de una lnea de transmisin empiezan a aparecer hay una simple topologa para manejarlos. La Figura 2.19 muestra varias topologas de red. Solamente la cadena de Daisy es la ms fcil de manejar las reflexiones. Esto no es para decirse, por ejemplo, que es imposible de implementar una configuracin de estrella con componentes RS-485. Manteniendo bajo control las

43

reflexiones en una topologa de estrella es mas arte que ciencia en una red practica. La mejor manera para asegurar una red ms robusta y confiable de RS-485 es construir alrededor de l una configuracin Daisy. Hay varias reglas a seguir cuando predicen cuando la lnea sea lo suficientemente larga para hacer una lnea de transmisin. Una regla comn dice que los efectos de una lnea de transmisin empezaran a ocurrir cuando el tiempo de subida de la seal es 4 veces menor que una propagacin de retardo del cable. La mayora de los cables de par trenzados tienen una velocidad de propagacin de 66 a 67% de la velocidad de la luz. Los fabricantes de cables publican esta especificacin para sus cables de red sabiendo la longitud aproximada de un cable de red. 2.4.4 Implementaciones y aplicaciones de los protocolo RS-232, RS-422 y RS-485 Como puede observarse, estos tres estndares tienen mucho en comn y a la vez son diferentes cuando de aplicaciones o implementaciones estamos hablando. La tabla 2.6 muestra en resumen, las diferencias de estos estndares.
Tabla 2.6. Comparacin entre las interfase RS-232, RS-422 y RS-485.

Viendo esta tabla comparativa, fcilmente podemos darnos cuenta qu protocolo podemos utilizar, segn los requerimientos de la aplicacin a desarrollar. El protocolo RS232 sabemos que su utilidad seguir por un buen tiempo debido a que las computadoras siguen implementndolo debido a su costo reducido y comodidad, pero si necesitamos

44

intercomunicar dispositivos a distancias grandes o utilizar mas de uno, nos damos cuenta que debemos recurrir a el RS-422 o RS-485. Si requerimos una comunicacin Full Duplex, es decir, en donde cualquiera de los dos puntos (Transmisor o Receptor) puede iniciar una comunicacin ya que las lneas de enviar / recibir estn separadas debemos utilizar el RS-422. Con el protocolo RS-485, no puede mantenerse esta caracterstica, pues existen hasta 32 equipos diferentes conectados, que no pueden ocupar la lnea de envo simultneamente. En este caso, el equipo principal (maestro), puede mandar datos en cualquier momento, mientras que los equipos secundarios (esclavos), nicamente deben responder cuando el mensaje va dirigido a ellos.

2.5 Protocolo CAN (Controller Area Network)


El bus CAN fue desarrollado por Bosch Gmbh en Alemania para aplicaciones crticas en tiempo real. Entre 1993/94 CAN fue aceptado como un estndar mundial por la International Standardization Organization ISO, definindose las capas ISO-OSI 1 y 2. De acuerdo con el estndar ISO, la "CAN Specification Versin 2.0" sirve actualmente como base para las diferentes implementaciones con CAN. Ha sido utilizada principalmente para la comunicacin en la industria automotriz, pero tambin se ha introducido en la industria como un estndar. El incremento en la complejidad y numero de componentes electrnicos en los automviles a hecho aumentar el numero de hilos en el cableado de un vehculo y ha provocado el desarrollo de un sistema de comunicacin serie multiplexado, que ha hecho reducir el numero de hilos y ha aumentado la seguridad del sistema, lo cual permite una confiabilidad y eficacia surgida de la metodologa llamada CSMA/CD + AMP, terminologa usada en la gestin de redes Ethernet. Las siglas CSMA/CD + AMP vienen de (Carrier Sense, Multiple Access, with Collision Detection and Arbitration on Message Priority). La especificacin de CAN versin 2.0 que se public en 1991, est dividida en dos partes (A y B). La versin 2.0A sali con un segmento identificador de 11 bits, mientras que se ha aumentado a 29 bits para la versin 2.0B. Algunas aplicaciones prefieren usar la

45

versin 2.0A, ya que hay menos bits y el CRC (Cdigo del Ciclo de Redundancia) est menos involucrado. Hay tambin las implementaciones Basic CAN y Full CAN, que tienen que ver con la manera que los mensajes son recibidos. En una aplicacin Basic CAN usa "buffers", mientras que en una aplicacin Full CAN usa "buzones" para los mensajes recibidos. En una aplicacin bsica de CAN, es posible borrar mensajes mientras todava se estn recibiendo en el "buffer", si estos son enviados demasiado rpido para ser procesados por el nodo receptor. Actualmente el que ms se utiliza el estndar CAN 2.0B (29 bits) y es capaz de recibir una expansin del mensajes CAN2.0A (11 bits). 2.5.1 Caractersticas Generales del protocolo CAN En trminos comunes, el CAN verifica si el bus esta ocupado antes de transmitir, y permite que mltiples nodos puedan transmitir y recibir al mismo tiempo. Cuando ocurre una colisin de mensajes en el bus, empieza el arbitraje para la recepcin de los mensajes. El mensaje de prioridad ms alto se recibe primero y as sucesivamente, hasta que todos los mensajes hayan sido recibidos. Aun cuando las similitudes entre el CAN y Ethernet son obvias, el CAN posee algn beneficio clave cuando se compara con el protocolo Ethernet. El esquema de arbitraje que usa el protocolo CAN es de bit inteligente no destructivo. Esto significa que se comparan mensajes con cada bit en un momento, pero el mensaje con la prioridad mas alta no se destruye y se retransmite; solo el mensaje que no gana el arbitraje de bus se detiene y se retransmite. Este es un punto importante que ayuda a minimizar el tiempo fuera de servicio del bus y aumentan al mximo el uso eficaz del ancho de banda disponible. Otra ventaja importante del arbitraje del bit inteligente no destructivo, que usa el CAN, es el hecho que esto da al bus caractersticas muy predecibles. Con Ethernet, ambos transmisores se detienen cuando se detecta una colisin y una cantidad de tiempo aleatorio se permite pasar antes de que ambos prueben de la retransmisin. Con este elemento aleatorio de tiempo eliminado de la funcin del bus, es posible lograr casi el 100% de eficacia en cuanto a la utilizacin del ancho de banda.

46

Con el protocolo CAN las oportunidades de que un error pueda ser transmitido y recibido es muy, muy bajo. El propio bus es dos hilos y half duplex, con transceptores diferenciales. Hay dos tipos bsicos de errores que pueden ocurrir y stos son errores de bit y errores de mensaje. Un tipo de error de bit es un bit de error de relleno. El bus CAN necesita sincronizarse peridicamente (lo hace en los flancos), si hay cinco niveles bajos consecutivos, el transmisor inserta un nivel bajo, y si hay cinco niveles altos consecutivos, el transmisor inserta un nivel bajo. Ms de cinco bits consecutivos de cualquier tipo generarn un "bit error de relleno". Hay tres tipos de errores de mensaje. El primer tipo es un error de verificacin de suma ("check sum"). Si la verificacin cclica de redundancia (CRC) no se empareja, entonces se marca un error. Tambin, hay ciertos bits de campo colocados de cierta manera dentro de los contenidos de un mensaje CAN. Si se detecta un bit invlido en cualquiera de estas posiciones cruciales, entonces es que ha ocurrido un "error de formato". Finalmente, si un transmisor determina que uno de sus mensajes no se ha reconocido, entonces ocurre un "error de reconocimiento". Ms adelante se describirn a detalle los tipos de error en los mensajes. Sin embargo, lo ms interesante sobre el bus CAN, no es precisamente el esquema de deteccin de errores, sino lo que hace, una vez que ha encontrado errores. Primero, enva un frame de error. El mensaje con error se cancela de todos los nodos que lo recibieron, y entonces, el estado de modo de error de todos los nodos se actualiza. Entonces el transmisor retransmite el mensaje. Los controladores de CAN pueden estar en cualquiera de los tres modos posibles: Error activo (el modo predefinido), Error pasivo, y Fuera del bus. Hay contadores para supervisar los errores de transmisin y recepcin, y cuando un nodo termina teniendo muchos problemas, se pone en modo de "error pasivo". Cuando los contadores exceden la asignacin mxima para errores en un nodo determinado, el nodo realmente se desactiva del bus para prevenir problemas posteriores. El nodo puede ser conectado al bus por un "reset" desde el "host".

47

Las especificaciones exactas para el funcionamiento de contador de error y el CRC son mucho ms detalladas, pero es fcil ver cmo la combinacin de estas medidas para prevenir errores en el bus. Tambin, con el modo "fuera del bus", si un nodo en particular est teniendo dificultades, entonces ser aislado y no se permitir "contaminar" al resto de los nodos con informacin defectuosa. La interfase CAN usa una transmisin asncrona controlada por un bit de start al principio y un bit de stop al final de cada carcter como lo muestra la Figura 2.20. El "frame" de datos est compuesto de un campo de arbitraje, el campo de control, el campo de datos (que puede ser de 0 a 8 bits), el CRC y el de ACK..

Figura 2.20. Transmisin asncrona del Protocolo CAN.

La ISO 11898 define la capa fsica del CAN, es una interfase de 2 hilos en modo diferencial por un Par Trenzado Apantallado (STP) o un Par Trenzado No Apantallado (UTP) o un cable plano (cinta). Cada nodo usa un conector de 9-pin subD. Este protocolo permite la creacin de redes, con una gran tolerancia de errores en ambientes industriales.

48

Figura 2.21. Modo de transmisin del protocolo CAN.

La velocidad del bus es programable, a alta velocidad puede llegar a 1 Mbit/seg., sobre distancias de 40 mts. y a bajas velocidad de hasta 5 kbits/seg. a distancias de 10 Km, lo que hace ver que la velocidad con la que los datos sean transmitidos depende de la distancia de la comunicacin. Un ejemplo de una transmisin usando este protocolo se ilustra en la Figura 2.21 en donde se usan resistencias de terminacin en cada extremo del cable, tambin existe el bus CAN de un solo hilo [8]. 2.5.2 Funcionamiento del protocolo CAN El protocolo CAN transmite su informacin a travs del bus en un formato de mensaje fijo, la informacin se puede transmitir a cualquier nodo y puede transmitir cuando el bus esta libre (Bus Idle). Si llega a ocurrir un conflicto de dos o ms nodos que deseen transmiten a la vez en el mismo marco, el conflicto de acceso al bus es resuelto por el arbitraje del bit-inteligente y el mensaje con mayor prioridad se le da el acceso al bus. Los nodos transmisores que pierden el arbitraje se convierten en receptores, esto significa que ningn dato o tiempo es perdido, ya que cualquier nodo que pierda el arbitraje automticamente se retransmite. El campo de arbitraje (Identificador) determina la importancia del mensaje esto significa que el identificador intenta etiquetar el contenido de

49

los mensajes (direccin del nodo no fsica). Todos los nodos checan la consistencia del mensaje recibido y se pondr una bandera a cualquier mensaje inconsistente del resto de la red. Todos los nodos recibidos se reconocern como un mensaje valido, en todos los nodos se aplica un filtro de mensajes que decide si se aceptara o no el mensaje. Cualquier nmero de nodos puede recibir simultneamente y aceptar mensajes (Transmisin Multicast). Este mensaje de arbitraje se aplica al Marco de Datos y al Marco de transmisin de peticin remota, la prioridad del mensaje es determinada por su Identificador, esto depende de que si el valor es bajo, la prioridad del mensaje es alto, pero el identificador de mensajes debe de ser nico, ya que se asigna durante el sistema. Cuando el bus se encuentra libre, cualquier nodo esta libre de transmitir cualquier mensaje, pero si ms de un nodo empieza a transmitir a la misma vez, el conflicto del bus se resuelve por el arbitraje del bit inteligente usando el Campo de Arbitraje. Durante la transmisin del Campo de Arbitraje, cada transmisor compara el valor del bit transmisor con el valor que se encuentra monitoreado por el bus. A un nodo le es permitido inicializar la transmisin del Marco de Datos despus del espacio del Marco Interno (IFS). Los dos valores complementarios del bus son llamados dominante y receptor. Todos los receptores son sincronizados hacia el bordo dirigente del Marco de Inicializacin (SOF). El Campo de Arbitraje es de 12 bits del formato estndar del Marco de Datos (CAN2.0A/B). El Campo de Arbitraje es de 32 bits del Formato Extendido del Marco de Datos (CAN2.0B solamente). Se conoce como Bit de Relleno siempre que 5 bits consecutivos de valores iguales son transmitidos, y un bit extra de valor complementario es insertado automticamente en el bit de corriente, los receptores automticamente se rellenan. A un nodo le es permitido inicializar la transmisin a un Marco de Transmisin Remota despus de Espacio del Marco Interno (IFS), esto es similar al Marco de Datos, pero no al Campo de Datos. Esto es interpretado como una peticin de datos que estn asociados con el Identificador en el Campo de Arbitraje, esto se ilustra mejor en la Figura 2.22.

50

Figura 2.22. Marco de Datos y Marco Remoto de CAN.

El Identificador de 11-bit esta etiquetado como ID10 a ID0 en CAN 2.0A, este transmite primero el bit ms significativo. Los primeros 7 bits ms significativos del Idetificador no todos deben ser reservados por las Especificaciones CAN. EL bit RTR es dominado por el Marco de Datos, recibido por el Marco Remoto, se debe de tomar en cuenta que el bit r1siempre es dominante. En el caso de CAN 2.0B el Identificador de 11bit esta etiquetado como ID28 a ID18 pero conserva las mismas caractersticas del 2.0A solo que aqu el bit dominante para el Identificador estndar es el IDE, esto se ilustra mejor en la Figura 2.23.

51

Figura 2.23. Campo de Arbitraje 2.0A y 2.0B.

El Campo de Cdigo de Ciclo de Redundancia (CRC) consiste de 15 bit de Secuencia, seguido por 1 bit recibidor Delimitador. El nodo de transmisor calcula la secuencia CRC desde el bit del valor SOF, Campo de Arbitraje, Campo de Control y Campo de Datos (si se encuentra presente), ver Figura 2.24.

Figura 2.24. Campo de CRC del CAN.

El Campo de reconocimiento consiste de 2 bits, Slot ACK y Delimitador ACK. El Slot ACK acta como bit transmisor y el Delimitador ACK como un bit recibidor, el recibidor transmite un bit dominante al Slot ACK si se recibi un mensaje valido (sin

52

ningn error detectado), pero si el transmisor no recibe un bit dominante reconoce esto como un Error de Reconocimiento y se retransmitir. Ver Figura 2.25

Figura 2.25. Campo de Reconocimiento del CAN.

El espacio de Marco Interno esta formado por el Intermedio, por el Bus Idle y por nodos de Suspensin de Error de Transmisin Pasivo que transmiten el mensaje previo. El Intermedio consiste de 3 bit receptores. A ningn nodo se le permite inicializar transmisin al Marco de Datos o al Marco remoto durante el Intermedio. Sin embargo, un bit dominante es recibido en el tiempo del 3er bit del Intermedio y ser interpretado como SOF (Marco de Inicializacin). La Suspensin de Transmisin consiste de 8 bits recibidores, y existen solo para el nodo de Error Pasivo que transmite el mensaje previo. Este nodo no inicializara la transmisin durante la Suspensin de Transmisin, pero el resto de los nodos si podrn hacerlo. El Bus Idle es un numero arbitrario de bits recibidores. El bus es libre y cualquier nodo podr empezar la transmisin. Ver Figura 2.26.

Figura 2.26. Espacio de marco interno del CAN.

2.5.2.1 Deteccin de Errores del protocolo CAN Error de Bit. El Error del Bit es detectado si el valor del bit del recibidor es diferente que el valor del bit del transmisor.

53

Excepciones. Enviando un bit del recibidor y recibiendo un bit dominante durante el Campo de Arbitraje o por el Slot ACK, o durante una bandera de Error Pasivo. Error de Relleno. El Error de Relleno es detectado por un recibidor si 6 valores de bits consecutivos son recibidos durante un campo de mensajes que deben ser codificados por el bit de relleno.

Error CRC. Un Error CRC es detectado por el recibidor si el calculador CRC es diferente del recibidor CRC en el Campo de Secuencia del CRC. Error de Forma. El Error de Forma es detectado por el recibidor si el bit de campo de la forma arreglada contiene uno o ms bits ilegales. Error de Reconocimientos. Un Error de Reconocimiento es detectado por el transmisor si no recibe un bit dominante durante el Slot ACK.

2.5.2.2 Tipo de mensajes CAN El sistema Can-Bus est orientado haca el mensaje y no al destinatario. La informacin en la lnea es trasmitida en forma de mensajes estructurados en la que una parte del mismo es un identificador que indica la clase de dato que contiene. El mensaje es una sucesin de 0 y 1, que como se explicaba al principio, estn representados por diferentes niveles de tensin en los cables del Can-Bus y que se denominan bit. El mensaje tiene una serie de campos de diferente tamao (nmero de bits) que permiten llevar a cabo el proceso de comunicacin entre las unidades de mando segn el protocolo definido por Bosch para el Can-Bus, que facilitan desde identificar a la unidad de mando, como indicar el principio y el final del mensaje, mostrar los datos, permitir distintos controles etc. Los mensajes son introducidos en la lnea con una cadencia que oscila entre los 7 y los 20 milisegundos dependiendo de la velocidad del rea y de la unidad de mando que los introduce. La Figura 2.27 muestra un ejemplo de cmo se escribe un mensaje, as como su estructura estndar.

54

Figura 2.27.Estructura del mensaje estndar

Campo de inicio del mensaje: El mensaje se inicia con un bit dominante, cuyo flanco descendente es utilizado por las unidades de mando para sincronizarse entre s.

Campo de arbitrio: Los 11 bit de este campo se emplean como identificador que permite reconocer a las unidades de mando la prioridad del mensaje. Cuanto ms bajo sea el valor del identificador ms alta es la prioridad, y por lo tanto determina el orden en que van a ser introducidos los mensajes en la lnea. El bit RTR indica si el mensaje contiene datos (RTR=0) o si se trata de una trama remota sin datos (RTR=1). Una trama de datos siempre tiene una prioridad ms alta que una trama remota. La trama remota se emplea para solicitar datos a otras unidades de mando o bien porque se necesitan o para realizar un chequeo.

Campo de control: Este campo informa sobre las caractersticas del campo de datos. El bit IDE indica cuando es un 0 que se trata de una trama estndar y cuando es un 1 que es una trama extendida. Los cuatro bit que componen el campo DLC indican el nmero de bytes contenido en el campo de datos.

55

La diferencia entre una trama estndar y una trama extendida es que la primera tiene 11 bits y la segunda 29 bits. Ambas tramas pueden coexistir eventualmente, y la razn de su presencia es la existencia de dos versiones de CAN. Campo de datos: En este campo aparece la informacin del mensaje con los datos que la unidad de mando correspondiente introduce en la lnea Can-Bus. Puede contener entre 0 y 8 bytes (de 0 a 64 bit). Campo de aseguramiento (CRC): Este campo tiene una longitud de 16 bit y es utilizado para la deteccin de errores por los 15 primeros, mientras el ltimo siempre es un bit recesivo (1) que delimita el campo CRC. Campo de confirmacin (ACK): El campo ACK esta compuesto por dos bit que son siempre trasmitidos como recesivos (1). Todas las unidades de mando que reciben el mismo CRC modifican el primer bit del campo ACK por uno dominante (0), de forma que la unidad de mando que est todava trasmitiendo reconoce que al menos alguna unidad de mando ha recibido un mensaje escrito correctamente. De no ser as, la unidad de mando trasmisora interpreta que su mensaje presenta un error. Campo de final de mensaje (EOF): Este campo indica el final del mensaje con una cadena de 7 bits recesivos. Puede ocurrir que en determinados mensajes se produzcan largas cadenas de ceros o unos, y que esto provoque una prdida de sincronizacin entre unidades de mando. El protocolo CAN resuelve esta situacin insertando un bit de diferente polaridad cada cinco bits iguales: cada cinco 0 se inserta un 1 y viceveRSa. La unidad de mando que utiliza el mensaje, descarta un bit posterior a cinco bits iguales. Estos bits reciben el nombre de bit stuffing. La tabla 2.7 muestra un ejemplo de un mensaje real.
Tabla 2.7. Ejemplo de un mensaje real:

SOF IDENTIFICADOR RTR DE DLC

DATO byte 1

DATO byte 2

CRC ACK

FN

56

1100010000

000 0010 00010110 00000000

01

11111

Los mensajes son de cuatro diferentes tipos, llamados marcos: Marco de datos: Se usa para transmitir hasta 8 bytes de datos. Marco de transmisin de peticin remota: Se usa para pedir un Marco de Referencia. Marco de error: Se usa para indicar un error en el bus (independientemente del CPU). Sobrecarga del margen: Se usa para crear un retardo extra entre el Marco de Datos o Marco Remoto [13]. 2.5.2.3 Elementos que componen el sistema Can-Bus Cables. La informacin circula por dos cables trenzados que unen todas las unidades de control que forman el sistema. Esta informacin se transmite por diferencia de tensin entre los dos cables, de forma que un valor alto de tensin representa un 1 y un valor bajo de tensin representa un 0. La combinacin adecuada de unos y ceros conforman el mensaje a trasmitir. En un cable los valores de tensin oscilan entre 0V y 2.25V, por lo que se denomina cable L (Low) y en el otro, el cable H (High) lo hacen entre 2.75V. y 5V. En caso de que se interrumpa la lnea H o que se derive a masa, el sistema trabajar con la seal de Low con respecto a masa, en el caso de que se interrumpa la lnea L, ocurrir lo contrario. Esta situacin permite que el sistema siga trabajando con uno de los cables cortados o comunicados a masa, incluso con ambos comunicados tambin sera posible el funcionamiento, quedando fuera de servicio solamente cuando ambos cables se cortan. Es importante tener en cuenta que el trenzado entre ambas lneas sirve para anular los campos magnticos, por lo que no se debe modificar en ningn caso el paso y la longitud de dichos cables. La Figura 2.28 muestra un ejemplo del cable utilizado en una comunicacin CAN.

57

Figura 2.28. Cable trenzado para la implementacin del protocolo CAN.

2.5.3 Implementaciones y aplicaciones del bus CAN: Existen dos implementaciones hardware bsicas, aunque la comunicacin en ambas es idntica y son compatibles entre s. Esto permite administrar el uso del bus en funcin de las necesidades de cada nodo. Basic CAN: hay un vnculo muy fuerte entre el controlador CAN y el microcontrolador asociado. El microcontrolador ser interrumpido para tratar con cada uno de los mensajes del CAN. Cada nodo transmitir tan slo cuando se produzca un evento en alguna de las seales que le conciernen. Este modo de funcionamiento es adecuado para aquellos nodos encargados de manejar informaciones espordicas, disminuyendo la ocupacin del bus. Full CAN: contiene dispositivos hardware adicionales que proporcionan un servidor que automticamente recibe y transmite los mensajes CAN, sin necesidad de interrumpir al microcontrolador asociado, reducindose la carga del mismo. Est orientado a nodos encargados del manejo de seales con un alto nivel de exigencia en cuanto a frecuencia de actualizacin y/o seguridad. El bus CAN se puede implementar a partir de un microcontrolador con puerto CAN o utilizando un microcontrolador convencional junto con un controlador de protocolo CAN como el SJA1000, posteriormente se utiliza en los dos casos un driver de la capa fsica del CAN. El enlace con el SJA1000 es en paralelo y el enlace con el driver y utiliza las Seales Tx y Rx del microcontrolador, ver Figura 2.29. Infineon, Motorota y Phillips disponen de drivers para bus CAN con fault tolerant o no.

58

Figura 2.29. Implementacin del protocolo CAN.

Full-CAN: Implementacin hardware que tiene por lo menos 16 buffers de mensaje, no cumple conforme a la norma CAN 2.0 A/B. MSCANxx (Motorola Scalable CAN): implementacin hardware en las familias HC08, HC12, HCS12) TOUCAN: implementacin hardware Full-CAN de Motorola (MCORE, PowerPC familias) FLEXCAN: Similar, pero es otra versin de TouCAN TwinCAN: Es la implementacin de un doble nodo CAN de Infineon con posibilidad de interconexin SPI o Paralela o un Standalone aadindole una Eeprom de inicializacin [6]. El estado del estndar alcanzado por CAN lo convierte en una tecnologa habitual en la industria, y numerosas firmas fabrican y distribuyen productos compatibles con este protocolo de comunicaciones. Entre los productos existentes se cuentan: Controladores CAN, que gestionan las comunicaciones a travs de este protocolo. Se subdividen a su vez en: Mdulos CAN integrados en el mismo chip del microcontrolador. Existen versiones CAN con los microcontroladores ms populares del Mercado (Microchip, Dallas Semiconductor, Phillips, etc.) Controladores CAN independientes que permiten a microcontroladores no incluidos en la anterior categora comunicarse a travs del CAN.

59

Tarjetas de conexin con PCs. Software y herramientas diversas de monitorizacin de sistemas CAN, tiles tanto en la fase de diseo y simulacin como en la de test. CAN a alcanzado un nivel extraordinario de madurez e implantacin, se habla se cientos de millones de nodos, los fabricantes y procesadores digitales de seal estn incorporando controladores CAN de forma bastante generalizada. Lo modelos VHDL de controladores CAN se pueden incorporar en ASICs y dispositivos de lgica programable (FPGAs). CAN resulta una opcin a tener en cuenta en sistemas distribuidos de tiempo real [15].

2.6 Protocolo I2C (Inter Integrated Circuit Bus)


Phillips Semiconductor desarroll en 1980 el bus de dos alambres I2C para comunicacin entre (circuitos integrados) ICs, desde entonces, se ha convertido en el bus serial estndar, implementado en un gran nmero de ICs y con licencias otorgadas a ms de 50 compaas con un total de 1000 dispositivos compatibles I2C. Es una interconexin serie con dos hilos, sncrona y bidireccional, se utiliza para la interconexin de un microcontrolador con sus perifricos (Convertidor A/D, Eeprom, driver LCD, RTC,..) u otros microcontroladores. Originalmente especificado para 100 kbits/s e intencionalmente para control simple y seales de estatus, el bajo costo, la versatilidad tcnica y la simplicidad del bus I2C aseguraron su popularidad. El bus serial I2C ha sido extendido para soportar velocidades de hasta 3.4 Mbit/s. Combinado con una funcin de desplazamiento del nivel de voltaje, en modo High-speed (Hs-mode) ofrece una solucin ideal para los sistemas de tecnologa mezclada, donde las altas velocidades y la variedad de voltajes (5 V, 3 V o menor) son comnmente usados. El modo Hs es compatible con todos los sistemas existentes del bus I2C, incluyendo el estndar original (S-mode) y el modo Fast (F-mode), actualizacin introducida en 1992, proveyendo 400 kbits/s en transferencia. Diferentes sistemas de velocidad pueden ser mezclados fcilmente, con un dispositivo maestro en modo Hs especialmente desarrollado,

60

la conexin en paralelo es usada para conectar las partes ms lentas del sistema, todos los dispositivos en modo Hs se comunicarn bidireccionalmente a toda velocidad mientras se utilicen los modos F/S (Fast/Standard) de velocidades con las partes ms lentas del sistema. Phillips fue el inventor del bus Inter-IC o I2C hace 20 aos atrs, y ahora est firmemente establecido como la solucin mundial para aplicaciones integradas. Es usado en una gran variedad de microcontroladores y aplicaciones de telecomunicaciones como en control, diagnstico y administracin de potencia. Su simplicidad ha sido retenida independiente de las mejoras a la especificacin original. 2.6.1 Caractersticas Generales Est orientado a las aplicaciones de 8-bit controladas por un microprocesador y estos son bsicamente los criterios que se deben establecer: Un sistema consiste en al menos un microcontrolador y varios sistemas perifricos como memorias o circuitos diversos El costo de conexin entre los varios dispositivos dentro del sistema debe de ser el mnimo. El sistema que utiliza este Bus no requiere una alta tasa de transferencia de datos La total eficacia del sistema depende de la correcta seleccin de la naturaleza de los dispositivos y de la interconexin de la estructura del bus. El bus I2C soporta cualquier tipo de componente (NMOS, CMOS, bipolar, etc.). Dos hilos fsicos uno de datos (SDA) y otro de reloj (SCL) transportan la informacin entre los diversos dispositivos conectados al bus. Cada dispositivo es reconocido por una nica direccin (si es un microcontrolador, LCD, memoria o teclado) y puede operar cualquiera de estos dispositivos como transmisor o emisor de datos, dependiendo de la funcin del dispositivo. Un display es solo un receptor de datos mientras que una memoria recibe y transmite datos. En funcin de que enve o reciba datos se debe considerar los dispositivos como Maestros (Master) o esclavos (Slaves), ver Figura 2.30.

61

Figura 2.30. Ejemplo de una la configuracin del bus I2C usando dos microcontroladores.

La terminologa que maneja es la siguiente: Transmisor (Transmitter): Es el dispositivo que enva datos a la lnea SDA. Receptor (Receiver): Es el dispositivo que recibe datos desde la lnea SDA. Maestro (Master): Es el dispositivo que empieza una transferencia, genera la seal de reloj (Clock). Esclavo (Slave): El dispositivo que es direccionado por el master. Multimaestro (Multimaster): Es la habilidad de coexistir ms de un dispositivo master para controlar el bus serie de datos (SDA) y el bus serie de reloj (SCL). Arbitraje (Arbitration): Si ms de un dispositivo intenta simultneamente controlar el bus, tiene lugar un procedimiento simple de arbitraje, de modo que solamente un dispositivo puede ser el Master. Sincronizacin (Synchronization): Es el procedimiento para sincronizar la seal de reloj de dos o ms dispositivos. Los nuevos dispositivos I2C se pueden direccionar individualmente por software a una nica direccin que puede ser modificada por los pines hardware que se le han aadido, as que se pueden conectar dispositivos idnticos en el mismo bus I 2C. Estas nuevas funciones se pueden conectar fcilmente en un bus existente. Se pueden conectar hasta 8 dispositivos idnticos en el mismo bus. Los maestros son generalmente

62

microcontroladores, por lo que un microcontrolador puede ser unas veces Maestro y otras esclavo. Si imaginamos la imagen del Bus en realidad son dos cables a los que se conectan diversos circuitos o chips en cantidad variable segn las necesidades, controlado el conjunto por uno o ms microcontroladores que dan instrucciones para el buen funcionamiento del conjunto. La posibilidad de conectar ms de un microcontrolador al Bus significa que uno o ms microcontroladores pueden iniciar el envo de datos al mismo tiempo. Para prevenir el caos que esto ocasionara se ha desarrollado un sistema de arbitraje. Si uno o ms maestros intentan poner informacin en el bus, depende del estado de la seal del reloj ("1" o "0"), lo que determina los derechos de arbitraje. La generacin de seales de reloj (SCL) es siempre responsabilidad de los dispositivos Maestro, cada Maestro genera su propia seal de reloj cuando enva datos al bus. Las seales de reloj de un maestro solo pueden ser alteradas cuando la lnea de reloj sufre una cada por un dispositivo esclavo o por el dominio del control del Bus por el arbitraje de otro microcontrolador. Los dispositivos conectados al bus deben ser de colector abierto o drenador abierto ("en paralelo"), as los estados de salida de las lneas de reloj (SCL) y dato (SDA) desempean la funcin de "cable en AND" del bus. Durante el tiempo en que no hay transferencia de datos (tiempo inactivo), tanto la lnea del reloj (SCL) como la lnea de datos (SDA) son puestas en estado alto a travs de resistencias externas pull-up. La nica limitacin en la conexin de dispositivos al bus depende de la capacidad mxima que no puede superar los 400 pF. Los tipos de transferencia de datos en el bus son: Modo Estndar aproximadamente a 100 KBits/Seg. Modo Rpido aproximadamente a 400Kbits/Seg. Modo Alta velocidad mas de 3,4 Mbits/Seg.

2.6.2 Funcionamiento del protocolo I2C

63

Figura 2.31. Conexin de dispositivos mediante el bus I2C.

Tanto la lnea de datos (a partir de ahora SDA) como la Seal de Reloj (a partir de ahora SCL) son bidireccionales conectadas a una fuente de tensin positiva va suministro comn o resistencias de carga, ver Figura 2.31. Debido a la variedad de diferentes tecnologas usadas en los dispositivos conectados al Bus I2C los niveles lgicos de "0" (Bajo) y "1" (Alto) no estn fijados y dependen de la tensin de alimentacin del circuito. Un pulso de reloj se genera por cada bit de datos transferidos. Los bits de datos transferidos en la lnea SDA deben ser estables cuando la lnea SCL esta a nivel "1". El estado de la lnea SDA en "1" o "0" solo puede cambiar cuando en la lnea SCL la seal es "0", ver Fig. 2.32.

Figura 2.32. Transferencia de Bits.

Para operar un esclavo sobre el Bus I2C solo son necesarios seis simples cdigos, suficientes para enviar o recibir informacin:

64

1. Un bit de Inicio 2. 7-bit o 10-bit de direccionamiento 3. Un R/W bit que define si el esclavo es transmisor o receptor 4. Un bit de reconocimiento 5. Mensaje dividido en bytes 6. Un bit de Parada Dentro del proceso de transferencia de datos en el Bus I2C hay dos situaciones bsicas que son el Inicio y la Parada de toda transferencia de datos. Estas son: INICIO (START) - Una transicin de "1" a "0" (cada) en la lnea de datos (SDA) mientras la lnea del reloj (SCL) esta a "1". PARADA (STOP) - Una transicin de "0" a "1" (ascenso) en la lnea de datos (SDA) mientras la lnea de reloj (SCL) esta a "1", ver Figura 2.33.

Figura 2.33. Condiciones de Inicio y Parada.

Las condiciones de Inicio y Parada son siempre generadas por el Master. El Bus I2C se considera ocupado despus de la condicin de Inicio. El Bus se considera libre de nuevo despus de un cierto tiempo tras la condicin de Parada. Es decir, al pulso "1" de la lnea SCL le puede corresponder un pulso "0" o "1" de la lnea SDA en funcin de la informacin del byte que se enve , recordemos que a cada bit de SDA le corresponde un bit de SCL , pero nunca salvo en la condicin de Inicio a un bit de SCL le corresponde una situacin de "1" a "0", es decir, pasa por dos estados la lnea SDA, al revs ocurre en la condicin de Stop que el Master enva un bit a la lnea SCL mientras cambia en la SDA de "0" a "1" durante el tiempo que esta enviando la seal de "1" a SCL.

65

El nmero de bytes que se enven a la lnea SDA no tiene restriccin. Cada byte debe ir seguido por un bit de reconocimiento, el byte de datos se transfiere empezando por el bit de mas peso (7) precedido por el bit de reconocimiento (ACK), ver Figura 2.34.

Figura 2.34. Transferencia de datos.

Si un dispositivo esclavo no puede recibir o transmitir un byte de datos completo hasta que haya acabado alguno de los trabajos que realiza, puede mantener la lnea SCL a "0" lo que obliga al Master a permanecer en un estado de espera. Los datos continan transfirindose cuando el dispositivo esclavo esta listo para otro byte de datos y desbloquea la lnea de reloj SCL. El bit de reconocimiento es obligatorio en la transferencia de datos. El pulso de reloj correspondiente al bit de reconocimiento (ACK) es generado por el Master. El Transmisor desbloquea la lnea SDA ("1") durante el pulso de reconocimiento. El receptor debe poner a "0" la lnea SDA durante el pulso ACK de modo que siga siendo "0" durante el tiempo que el master genera el pulso "1" de ACK, esto se muestra en la Figura 2.35.

Figura 2.35. Reconocimiento en el bus I2C.

66

Normalmente cuando un receptor ha sido direccionado, esta obligado a generar un ACK despus de que cada byte a sido recibido. Cuando un dispositivo esclavo no genera el bit ACK (porque esta haciendo otra cosa y no puede atender el Bus) debe mantener el esclavo la lnea SDA a nivel "1" durante el bit ACK. El Master entonces puede generar una condicin de Parada abortando la transferencia de datos o repetir la condicin de Inicio enviando una nueva transferencia de datos. Si un Esclavo-receptor que esta direccionado no desea recibir ms bytes, el master debe detectar la situacin y no enviar ms bytes. Esto se indica porque el esclavo no genera el bit ACK en el primer byte que sigue. El esclavo pone la lnea SDA a "1" lo que es detectado por el Master el cual genera la condicin de Parada o repite la condicin de Inicio. Si un Master-receptor esta recibiendo datos de un Esclavo-transmisor debe generar un bit ACK tras cada byte recibido de transmisor, para finalizar la transferencia de datos no debe generar el ACK tras el ltimo byte enviado por el esclavo. El esclavo-transmisor debe permitir desbloquear la lnea SDA generando el master la condicin de Parada o de Inicio. 2.6.2.1 Arbitraje y generacin de seales de Reloj Todos los Master generan su propia seal de reloj sobre la lnea SCL al transferir datos sobre el Bus I2C. Los bits de datos son solo validos durante los periodos "1" del reloj. Un control es necesario para mantener un orden en los diversos bits que se generan. La sincronizacin del reloj se realiza mediante una conexin AND de todos los dispositivos del Bus a la lnea SCL. Esto significa que una transicin de un Master de "1" a "0" en la lnea SCL hace que la lnea pase a "0", esto mantiene la lnea SCL en ese estado. Sin embargo, la transicin de "0" a "1" no cambia el estado de la lnea SCL s otro reloj esta todava en su periodo de "0". Por lo tanto la lnea SCL permanecer a "0" tanto como el periodo mas largo de cualquier dispositivo cuyo nivel sea "0". Los dispositivos que tienen un periodo mas corto de reloj "0" entran en un periodo de espera, esto se muestra en la Figura 3.36.

67

Figura 2.36. Sincronizacin de reloj.

Cuando todos los dispositivos conectados al Bus han terminado con su periodo "0", la lnea del reloj se desbloquee y pasa a nivel "1". Por lo que hay que diferenciar entre los estados de reloj de los dispositivos y los estados de la lnea SCL, y todos los dispositivos empiezan a nivel "1". El primer dispositivo que completa su nivel "1" pone nuevamente la lnea SCL a "0". Un master puede iniciar una transmisin slo si el bus esta libre. Dos o ms master pueden generar una condicin de Inicio en el bus lo que da como resultado una condicin de Inicio general. Cada Master debe comprobar si el bit de datos que transmite junto a su pulso de reloj, coincide con el nivel lgico en la lnea de datos SDA. El sistema de arbitraje acta sobre la lnea de datos SDA, mientras la lnea SCL esta a nivel "1", de una manera tal que el master que transmite un nivel "1", pierde el arbitraje sobre otro master que enva un nivel "0" a la lnea de datos SDA. Esta situacin continua hasta que se detecte la condicin de Parada generada por el master que se hizo cargo del Bus, como se ilustra en la Figura 2.37.

68

Figura 2.37. Procedimiento de arbitraje de dos maestros.

En esta Figura se ve el arbitraje entre dos maestros, aunque pueden estar otros mas involucrados dependiendo de cuantos microcontroladores hay conectados al bus. En el momento en que hay una diferencia entre el nivel interno de la lnea de datos del maestro DATA1 y el actual nivel de la lnea de datos SDA, su salida de datos es interrumpida, lo cual significa que un nivel "1" esta dominando en el Bus. Esto no afecta los datos transferidos inicialmente por el master ganador. El arbitraje puede continuar varios bits hasta que se de la circunstancia de control del Bus por uno de los Master. Tras el arbitraje los Master perdedores se deben poner inmediatamente en modo Master-receptor y esclavo pues los datos que enve el Master dominante pueden ser para uno de ellos. Un master que pierde el arbitraje puede generar pulsos de reloj hasta el fin de byte en el cual el pierde el arbitraje. En el momento que un master toma el control solo este master toma las decisiones y genera los cdigos de direccin, no existen master centrales, ni existen ordenes prioritarias en el Bus. Especial atencin debe ponerse si durante una transferencia de datos el procedimiento de arbitraje esta todava en proceso justo en el momento en el que se enva al Bus una condicin de Parada. Es posible que esta situacin pueda ocurrir en este caso el master afectado debe mandar cdigos de Inicio o Parada. Los datos transferidos tienen la forma de la Figura 2.37, despus de la condicin de Start un cdigo de direccin de un esclavo es enviada, esta direccin tiene 7 bits seguidos

69

por un octavo cdigo que corresponde a una direccin R/W (0-indica transmisin/1-indica solicitud de datos). Una transferencia de datos siempre acaba con una condicin de Stop generado por el master, sin embargo, si un master todava desea comunicarse con el bus, puede generar repetidamente condiciones de Inicio y direccionar a otro esclavo sin generar primero la condicin de Parada. Varias combinaciones de lectura y escritura son posibles dentro de una misma transferencia de datos. 2.6.2.2 Direccionamiento El procedimiento de direccin para el Bus I2C es tal que el primer byte despus de la condicin de Inicio usualmente determina que esclavo ha sido seleccionado por el Maestro. La excepcin se da en la "llamada general" (byte 0000 0000) con la que se direcciona a todos los dispositivos, cuando esta direccin es usada, todos los dispositivos en teora deben responder con un reconocimiento (A), sin embargo, algunos dispositivos pueden estar condicionados a ignorar esta direccin. El segundo byte de la "llamada general" define entonces la accin a tomar. Hay dos formatos de direccin. El ms simple es el formato de 7-bit con un bit R/W que permite direccionar hasta 128 dispositivos, que en la prctica se reduce a 112 debido a que las restantes direcciones son de uso reservado. El ms complejo es el de 10-bit con un bit R/W. Para el formato de 10-bit, dos bytes deben ser transmitidos con los primeros cinco bits que especifiquen una direccin de 10-bit. Los 7 primeros bits del primer byte marcan la direccin del esclavo, como lo muestra la Figura 2.38. El octavo bit determina la direccin del mensaje, un 0 en la posicin 8 del byte significa que el Master escribir informacin en el esclavo seleccionado y un 1 en la posicin 8 del byte significa que el Master leer informacin del esclavo.

70

Figura 2.38. Primer byte despus del procedimiento de inicio.

Cuando un Maestro enva una direccin despus de la condicin de Inicio cada dispositivo comprueba los siete primero bits de la direccin con la suya propia. El que coincida se considera el dispositivo direccionado por el Maestro siendo un esclavo-receptor o esclavo emisor dependiendo del bit R/W. Una direccin puede tener una parte fija y otra programable. Con lo que se pueden conectar dispositivos idnticos al sistema siendo activados por la parte fija y controlados por la parte programable. Existen una serie de direcciones reservadas en los Bus I2C que no se deben utilizar dado que son direcciones determinadas por Phillips para usos generales. 2.6.2.3 Especificaciones elctricas y de tiempos Debido a la gran cantidad de diferentes dispositivos que se pueden conectar en el Bus I2C las tensiones dependen por un lado de las necesarias para cada uno de los componentes y de una cierta normativa bastante elstica para las lneas SDA y SCL, ver la tabla 2.7. Se debe pretender que la alimentacin de las lneas SCL y SDA debe ser a 5Vlt. mantenindose las siguientes tolerancias: Mxima tensin permitida a nivel bajo ("0") Mnima tensin permitida a nivel alto ("1") ---> ---> 1.5 V. 3 V.

Tabla 2.8 Caractersticas de SCL y SDA para dispositivos con bus I2C [14].

71

2.6.3 Implementaciones y aplicaciones del protocolo I2C Existe una gran cantidad de dispositivos I2C como: Receptor de TV, Receptor de radio, Procesadores de audio, Microcontroladores, Control de infrarrojos, DTMF, Control de LCD, Control de LED, I/O de propsito general, Expansin/Control de Bus, Convertidores A/D y DA, Memorias RAM y EEprom, Clocks y Timers. Dado que no siempre se requiere alta velocidad de transferencia de datos este bus es ideal para sistemas donde es necesario manejar informacin entre muchos dispositivos y, al mismo tiempo, se requiere poco espacio y lneas de circuito impreso. Por ello es comn ver dispositivos I2C en video grabadoras, sistemas de seguridad, electrnica automotriz, televisores, equipos de sonido y muchas otras aplicaciones ms. Incluso, y gracias a que el protocolo es lo suficientemente simple, usualmente se ven dispositivos I2C insertados en sistemas microcontrolados que no fueron diseados con puertos I2C, siendo el protocolo generado por el firmware (parte inalterable de software). Tambin hay dispositivos de adaptacin que permiten conectar buses originalmente paralelos a sistemas I2C. Tal es el caso del chip PCD 8584 de Phillips el cual incorpora bajo su encapsulado todo lo necesario para efectuar dicha tarea.

72

Hay, adems, circuitos integrados cuya nica misin es adaptar los niveles presentes en el bus I2C y convertirlos desde y hacia TTL, permitiendo resolver fcil y rpidamente la interconexin de dispositivos de dicha familia con el I2C Los ltimos dispositivos diseados por Phillips son: Expansores de I/O de propsito general va I2C: Transfiere las seales desde un teclado, interruptores, expande las I/O de un microcontrolador necesitar estar localizadas lejos o en varias tarjetas (usando pins como salidas para controlar LEDs, rels y otros pins como entradas), ver Figura 2.39.

Figura 2.39. Expansores de I/O va I2C.

Intermitentes y atenuadores de LED va I2C: Este circuito libera al timer del microcontrolador del control de parpadeo intermitente de un LED o un rel. Se pueden programar dos de las intermitencias definibles por el usuario entre 250ms y 6,3s y en el caso del atenuador, entre 6,25ms y 1,6s, ver Figura 2.40.

Figura 2.40. Intermitentes y atenuadores de leds.

73

Multiplexores y Demultiplexores de Bus I2C: Una familia de Multiplexores y Demultiplexores permiten que muchos dispositivos especializados tengan la misma direccin I2C, permiten aislar ramas del bus I2C y tambin permiten montar un bus I2C multipunto, ver Figura 2.41.

Figura 2.41. Multiplexores y demultiplexores de bus I2C.

Extensor de Bus I2C: El circuito P82B96 permite extender la distancia de trabajo del bus I2C hasta 50 metros a 85kHz o hasta 1km a 31kHz sobre un par de cable trenzado. Si la extensin necesita un aislamiento galvnico el P82B96 permite conectar los pins Tx y Rx respectivamente a un optoacoplador, como lo muestra la Figura 2.42 [8].

Figura 2.42. Extensor de Bus I2C.

74

2.7 Protocolo SPI (Serial Peripherical Interface)


El Bus SPI es una interfase Serial de comunicacin de 4 cables y es usado por muchos chips microprocesadores. Es un enlace serial de datos sncrono que es un estndar de muchos microprocesadores de Motorola y de otros chips perifricos. Promueve soporte a un ancho de banda bajo/medio (1mega baudio) de una conexin de red entre los CPUs y otros dispositivos que soportan SPI. El bus SPI es una interfase maestro/esclavo. Cuando dos dispositivos se comunican, uno se refiere como dispositivo maestro y el otro como dispositivo esclavo, el maestro dirige el reloj serial. Cuando se usa el SPI, los datos son transmitidos y recibidos simultneamente, haciendo un protocolo full-duplex. La transmisin de datos del Protocolo SPI, es usado simplemente como una transferencia de bytes sin ningn previo acuerdo entre los dispositivos (handshaking) especifico en el protocolo. Otros lo llaman Interfase de Comunicacin Sincrnica o Puerto de Control Serial. Este tipo de perifricos es estndar. Motorola y otro tipo de creadores de chip pueden usar lneas seriales para la comunicacin de procesadores, estos son dispositivos locales. SPI es tpicamente usado para dispositivos locales en lugar de dispositivos remotos por su lnea extra que requiere el reloj. Por ejemplo, local se puede referir a cualquier lugar dentro de una mquina, robot o automvil. Remoto tpicamente se refiere a distancia de varios metros. Este rango de distancia puede ser desde cuartos, edificios o hasta transmisiones transcontinentales. 2.7.1 Caractersticas Generales Es una interconexin serie de cuatro hilos, sncrona y bidireccional (full duplex), desarrollado por Motorola. Se utiliza para la interconexin de microcontroladores y sus perifricos (convertidores A/D, Eeproms, drivers de display) o lo interconexin con otros microcontroladores. Utiliza las seales de Data In y/o Data Out, Clock y un CS o Enable. En algunos microcontroladores se utilizan los trminos MOSI (Master-On Slave-In) o datos desde el maestro al esclavo y MISO (Master-In Slave-On) o datos del esclavo al maestro y (SS Slave Select) o selector de esclavo.

75

La Interfase Serial Perifrica (SPI) se puede ver como una Interfase directa con numerosas fuentes de productos estndares perifricos, por varios fabricantes. La rutina de configuracin puede escoger la polaridad del reloj. Uno de los cuatro rangos de reloj (maestro nicamente), y uno de los dos diferentes protocolos de reloj fundamentales. La frecuencia mxima del bit maestro es 1.05 MHz y la frecuencia mxima del bit esclavo es 2.1 MHz. El subsistema permite simultneamente transmitir y recibir datos usando el mismo reloj. Esto es muy til para la comunicacin multiprocesador. Este protocolo se ha convertido en estndar de la industria, soporta el modo de trabajo master o slave, puede alternar la transmisin y la recepcin, utiliza 8 bits de datos sincronizados por la seal de reloj. Las terminologas utilizadas por este protocolo son las siguientes: Serial Clock. (SCLK): El SCLK se usa para sincronizar la comunicacin entre un master (DSP, micro, etc.) y el dispositivo en cuestin, manteniendo la fuente de reloj para la interfase serie. Las instrucciones, direcciones o datos presentados en Data In son latched en el flanco de subida (o en el flanco de bajada) de la entrada SCLK, mientras que los datos en el pin Data Out se actualiza despus del flanco de bajada (o del flanco de subida) de la entrada de SCLK. SCLK puede ser continuo o no-continuo. Data In. El pin Data In se usa para transferir datos en el dispositivo. Recibe instrucciones, direcciones y datos. El dato se enclava en el flanco de subida (o de bajada) de SCLK. Data Out. l pin Data Out se usa para transferir datos hacia fuera del dispositivo. Durante un ciclo de lectura, el dato se desplaza hacia fuera de este pin, despus del flanco de bajada (o de subida) de SCLK. Es posible juntar los pines Data In y Data Out, o ser uno en el mismo pin. Con este formato, pueden ocurrir dos caminos de comunicacin de datos, usando slo una E/S del microcontrolador. Enable o CS. Para acceder a un dispositivo con interfase SPI tambin se controla a travs de una seal Enable o una entrada equivalente (CS), permitiendo el uso de

76

varios dispositivos SPI/QSPI en el mismo bus serie. Para llevar a cabo esta funcin la salida de Datos tiene que ponerse en estado de alta impedancia, seguido de una operacin de lectura. Para llevar a cabo esto, el dispositivo tiene que tener un pin CS. Un dispositivo perifrico como un convertidor A/D puede parecer ser compatible con la interfase SPI, cuando de hecho no lo es. Una cuidadosa mirada a los diagramas de tiempo proporcionar la pista. SPI. Con esta interfase la seal Enable debe estar en nivel bajo (o pulsado bajo en el flanco de bajada de cada pulso SCLK) para la cantidad total de ciclos de SCLK requerida. Por ejemplo 8 o 16 ciclos, para que ocurran operaciones de lectura o escritura. Si no se obtienen bastantes pulsos de SCLK a priori, al volver la seal Enable a estado alto, el bus permanecer a un nivel lgico. Para volver a un estado de alta impedancia, los pulsos de SCLK restantes se tienen que recibir mientras que la seal Enable est en nivel bajo. QSPI. Con esta interfase la seal Enable puede estar en nivel bajo para ms cantidad de ciclos requeridos de SCLK. Por ejemplo, 8 o 16 ciclos de SCLK para operaciones de lectura y escritura. Esto es como sigue, una seal Enable que da un pulso alto, de duracin mnima un pulso SCLK ciclo de duracin mnima, es suficiente al principio de la operacin de lectura / escritura. Enable puede volver a estado alto y el micro cuenta los SCLKs requeridos. SPI, SPI Plus y QSPI son marcas registradas por Motorola [8]. 2.7.2 Funcionamiento Para el Protocolo SPI el maestro inicializa la transferencia de datos en el driver al reloj serial para sincronizar la transferencia. La comunicacin entre el maestro y el esclavo ocurre al cambio de ciertos bits en otros registros. Ocho bit de datos son cambiados durante cada operacin. En la Figura 2.43 se muestra una situacin de inicio de intercambio de datos.

77

Figura 2.43. Situacin inicial de la transferencia de datos de un maestro a un esclavo.

El maestro inicializa la transferencia escribiendo datos al registro de datos SPDR. El contenido del registro de datos es transferido automticamente hacia el cambio de

78

registro. Esto dirige al reloj automticamente a ocho pulsos. Si se configura como esclavo, la secuencia es distinta. Tambin se inicializa al escribir al registro de datos SPDR, que se transfiere automticamente hacia el campo de registro. Pero necesita esperar que el maestro le mande el signo de reloj al esclavo antes de mandar o recibir cualquier bit. [17]. Para el funcionamiento de SPI, requiere cuatro seales: reloj (SCLK), maestro salida / esclavo entrada (MOSI), maestro entrada / esclavo salida (MISO), selector de esclavos (SS). Las tres seales son compartidas por todos los dispositivos que se encuentran el bus SPI: SCLK, MOSI y MISO. SCLK es generado por el dispositivo maestro y es usado para sincronizaciones. MOSI y MISO son las lneas de datos. La direccin de transmisin es indicada por sus nombres. El mdulo SPI puede utilizarse (independientemente de modo Maestro o Esclavo): Para envo y recepcin simultnea (SDI y SDO) Slo para enviar datos (SDO) Slo para recibir datos (SDI) Los datos son transmitidos en ambas direcciones en SPI, pero un dispositivo SPI que solo le interesa transmitir datos puede escoger en ignorar el byte recibidor. Asimismo, un dispositivo solo interesado en el byte de llegada puede transmitir bytes de basura. En la inicializacin del modo SPI las siguientes especificaciones deben ser tomadas en cuenta: Modo de funcionamiento: Maestro (SCK salida) o Esclavo (SCK entrada) Polaridad del Reloj: Estado Inactivo del Reloj (SCK) a 1 a 0 Flancos activos del Reloj: Salida de bits en flancos de subida o bajada en SCK Muestreo bits de datos: Muestreo de entrada en el centro o al final del bit Frecuencia de Reloj: Slo si es maestro, frecuencia en salida SCK Modo de Seleccin: Slo si es esclavo Control externo de SDI y SDO con entrada SS Sin control externo con pin SS

79

Cada dispositivo tiene su propia lnea SS. El maestro trabaja en estado bajo a una lnea de esclavos SS para seleccionar el dispositivo a comunicar, la Figura 2.44 muestra la interconexin bsica del modo SPI. El dispositivo esclavo requiere una seal separada del selector de esclavos (SS). Esto significa que mientas que los dispositivos son agregados, el circuito incrementa su complejidad.

Figura 2.44. Muestra de implementacin SPI.

El intercambio de maestro a esclavo o viceversa, no tiene un protocolo predefinido, esto es ideal para la aplicacin de flujo de datos. Los datos pueden transmitirse a alta velocidad, hasta 10 Mhz. El lado negativo del flujo de control no tiene reconocimientos, por lo que el maestro no se entera de la presencia del esclavo. La Figura 2.45 muestra los cambios de modo del protocolo SPI. El marco de intercambio de datos es descrito por dos parmetros, la polaridad del reloj (CPOL) y la fase del reloj (CPHA). Esta Figura muestra los cuatro posibles estados de este parmetro y el modo que corresponde en SPI.

80

Figura 2.45. Modo SPI.

As que un par de maestro / esclavo debe usar el mismo par de valores de parmetros para comunicarse. Si mltiples esclavos son usados en un arreglo con diferentes configuraciones, el maestro se tendr que ver a l mismo cada vez que necesite comunicarse con un esclavo diferente. SPI es un protocolo de comunicacin muy simple, no tiene un protocolo de alto nivel. Los datos pueden ser cambiados en un rango alto en full duplex. Esto lo hace muy sencillo y eficiente en un escenario de un simple maestro con un simple esclavo. Por que cada esclavo necesita su propia SS, l numero de trazo requeridor son n+3, donde n es el numero de dispositivos SPI. Esto significa incrementar la complejidad del tablero donde el nmero de esclavos se incrementa. En la Figura 2.46 se muestra un ejemplo de una conexin simple de un maestro con un solo esclavo.

Figura 2.46. Interconexin simple de un slo maestro, un slo esclavo.

El maestro genera seales de seleccin de esclavo usando pins de entrada/salida discretas de uso general u otra lgica. Esto consiste en una explosin de bits que pueden ser

81

muy sensibles y afectar a los otros dispositivos conectados Se tiene que tomar el tiempo en relacin con las otras seales de los dems dispositivos, y asegurarse, por ejemplo, que se oscile a la lnea seleccionada en medio del marco de dato y no a otra . 2.7.2.1 Posibilidades de conexin del protocolo SPI a) Un maestro y un esclavo con conexin a tres hilos, en donde la transmisin y recepcin es simultanea, ver la Figura 2.47.

Figura 2.47. Conexin a tres hilos.

b) Un maestro y un esclavo con conexin dos hilos, donde la transmisin y recepcin no pueden ser simultneas, ve la Figura 2.48

Figura 2.48. Conexin a dos hilos

En este caso slo puede haber una salida activa, el receptor anula su salida de datos SDO por software mediante le registro de direccin de datos, ver la Figura 2.49 para ver los dos posibles estados de transmisin.

82

Figura 2.49. Estados de la conexin a dos hilos

c) Un maestro emitiendo y varios esclavos recibiendo con conexin a dos hilos, en donde no es necesario el control de la seleccin del esclavo, todos tendrn de datos activa, ver Figura 2.50 para ver el diagrama.

Figura 2.50. Comunicacin de un maestro con varios esclavos con conexin a dos hilos.

d) Un maestro y varios esclavos con posibilidades de emisin, con tres hilos y lnea de seleccin, observar la Figura 2.51.

83

Figura 2.51. Un maestro y varios esclavos con conexin a tres hilos

2.7.3 Implementacin y aplicaciones SPI no describe una manera especfica para implementar sistemas multimaestros, algunos dispositivos con este protocolo soportan seales adicionales que pueden hacer tales implementaciones. Sin embargo, es complicado y usualmente innecesario, as que no se hace frecuentemente. No cuenta con un mecanismo de activacin para confirmar la recepcin de datos, de hecho sin algn otro protocolo de comunicacin especificado tal vez por software, el SPI maestro no tiene ningn conocimiento de la existencia del esclavo. Tampoco ofrece algn control de flujo, si se necesitara alguno en el hardware, tambin se necesitar hacer algo aparte del SPI. Pero a pesar de contar con estas deficiencias por decirlo as para algunas aplicaciones, no es problema cuando se trata de aplicaciones simples o de bajo nivel. La buena comunicacin full duplex y rangos de datos (aumentando a varios mega bits por Segundo) lo hacen, en la mayora de los casos, extremadamente simples y eficientes para aplicaciones de un solo maestro/esclavo. Por el otro lado, puede ser problemtico para

84

implementar ms de un esclavo, esto se debe a la falta de direccionamiento mltiple interno; y la complejidad incrementa como la cantidad de esclavos. Lejos de ser solamente un simple puerto de bytes, SPI es un solucin elegante para las necesidades de comunicacin. Tambin y a pesar de no ser un protocolo de alto nivel, puede servir como plataforma para crearlos.

Figura 2.52. Esquema de interconexin de un Bus Serie SPI.

La Figura 2.52 muestra un ejemplo de interconexin bsica de este protocolo usando un microcontrolador de la marca Motorota, aqu cabe mencionar que aunque este protocolo fue desarrollado por esta empresa, existen otros microcontroladores de otras marcas como Microchip que tambin soportan este protocolo. El esquema muestra como el microcontrolador maestro utiliza sus tres lneas de seales y las manda respectivamente a un dispositivo de entrada, a uno de salida y a otro microcontrolador, que a su vez actuaran como esclavos. Esto se realiza siguiendo las especificaciones de este protocolo y las del propio microcontrolador. Diferentes tipos de perifricos existen con caractersticas adaptables al protocolo SPI, estos se pueden subdividir en las siguientes categoras: Convertidores (ADC y DAC) Memorias (EEPROM y FLASH)

85

Reloj de Tiempo Real (RTC) Sensores (temperatura y presin) Otros (mezclador de seales, potencimetro, control LCD, UART, controlador CAN, controlador USB, amplificador). En las tres categoras de los convertidores, memorias y RTCs, hay una gran

variedad de componentes. Dispositivos pertenecientes a los dos ltimos grupos son los ms raros. Hay muchos tipos de convertidores con diferentes resoluciones, frecuencia de reloj y nmero de canales a escoger desde 8, 10, 12 hasta de 24 bits con frecuencias de reloj desde unos 30 kbits/s hasta 600 kbits/s. Dispositivos de memoria son variantes en la mayora de las EEPROM, hay tambin algunas memorias SPI flash. El rango de capacidad va desde un par de bits hasta 60 Kbits, maneja frecuencias de reloj de hasta 3MHz. EEPROMS SPI seriales estn disponibles para diferentes tipos de voltaje (2.7V hasta 5V) permitiendo su uso en aplicaciones de bajo voltaje. La duracin de retencin de datos vara desde los diez aos hasta los cien aos. l nmero permitido de acceso a escritura es 1 milln de ciclos para la mayora de los componentes. Por medio de dispositivos de cascada cualquier numero de bits / palabras pueden ser obtenidos. RTCs es ideal para la comunicacin serial porque solamente pequeas cantidades de datos tienen que ser transmitidos. Hay tambin una gran variedad de fuentes de voltaje de 2.0V. Adems, de las funciones estndar de un reloj normal, algunos RTCs ofrecen una funcin de alarma, RAM no voltil, etc. La mayora de los RTCs vienen de las compaas de Dallas Semiconductor y Epson. El grupo de sensores que soportan el protocolo SPI es representado dbilmente. Solamente sensores de temperatura y presin pueden ser encontrados. Los controladores CAN y USB con SPI hacen ms fcil el uso de ellos en un microcontrolador o por ejemplo poner en Interfase un LCD va SPI ahorra la problemtica de escritura en forma paralela, la tabla 2.9 muestra una gama de componentes que soportan el protocolo SPI as como las compaas que lo respaldan [18].

86

Tabla 2.9. Dispositivos compatibles con el protocolo SPI


COMPAA
AKM ANALOG DIVECES ATMEL CRYSTAL DALLAS EPSON FAIRCHILD INFINEON INTEL LNEAR TECHNOLOGY MAXIM MICROCHIP MOTOROLA NATIONAL SEMICONDUCTOR NEXFLASH SANDISK SGS-THOMSON TEXAS INSTRUMENTS EEPROM DSP, ADC EEPROM, ADC RTC RTC EEPROM SENSORES DE PRESION CONTROLADORES CAN ADC, DAC, SENSORES DE TEMPERATURA, CONTROLADORES USB ADC, DAC, UART, SWITCHES ANALOGOS MICROCONTROLADORES, EEMPRON, CONTROLADORES CAN DSP, MCU CONTROLADORES LCD, SENSORES DE TEMPERATURA, CONTROLADORES USB FLASH FLASH, MULTIMEDIA CARD EEPROM, MICROCONTROLADORES DSP, ADC, DAC

TIPO DE DISPOSITIVO

2.8 Protocolo USB (Universal Serial Bus)


El protocolo USB nace como resultado de un intento de proporcionar al PC de un bus de alta velocidad que ofreciera las caractersticas ideales PnP ("Plug and Play") de universalidad, facilidad de conexin y desconexin, y sobre todo, que requiriera pocos recursos [9]. El USB es una especificacin abierta definiendo un avance significativo para la incorporacin de dispositivos perifricos a ordenadores personales. Fue concebido por un grupo de industrias potentes incluyendo a Compaq, DEC, IBM, Intel, Microsoft, NEC y Northern Telecom. La especificacin de USB incluye estandarizacin de conectores y cables, la topologa a travs del hub para las conexiones externas con mas de 126 dispositivos y los protocolos para el reconocimiento y configuracin [10]. El primer ordenador que incluy un puerto USB de forma estndar fue el iMac de Apple, presentado en Marzo de 1998, que utilizaba esta conexin para el teclado y el ratn. Por su parte el mundo del PC solo comenz a utilizarlo cuando Microsoft introdujo los

87

controladores correspondientes en la versin OSR 2.1 de Windows 95. Fue a partir de Windows 95C cuando los sistemas de MS incorporan de forma estndar soporte para este bus; en el mbito de servidores la incorporacin se produjo en Windows 2000. En sus orgenes el inters primordial del bus USB se centraba en la integracin de dispositivos telefnicos CTI ("Computer Telephony Integrations") en los ordenadores. La tecnologa USB ha sido promovida principalmente por Intel, aunque le han seguido todos los grandes fabricantes, de forma que se ha convertido en un estndar importante. En sus comienzos los interesados en esta tecnologa se agruparon en un foro, el USB Implementers Forum Inc., USB-IF, que agrupa a ms de 460 compaas, y ha publicado diversas revisiones de la norma: USB 0.9: Primer borrador, publicado en Noviembre de 1995. USB 1.0: Publicada en 1996 establece dos tipos de conexin: La primera, denominada velocidad baja ("Low speed"), ofrece 1.5 Mbps, y est pensada para perifricos que no requieren un gran ancho de banda, como ratones o joysticks. La segunda, denominada velocidad completa ("Full speed"), es de 12 Mbps, y est destinada a los dispositivos ms rpidos. USB 1.1: Publicada en 1998, aade detalles y precisiones a la norma inicial; es el estndar mnimo que debe cumplir un dispositivo USB. USB 2.0: Su versin final fue publicada en Abril del 2000; es una extensin de la norma compatible con las anteriores. Permite velocidades de hasta 480 Mbps, denominada alta velocidad ("High speed") [9]. Los primeros dispositivos que empezaron a utilizar masivamente este tipo de conexin fueron las cmaras de video-conferencia, aunque actualmente pueden encontrarse todo tipo de dispositivos con este tipo de conexin. 2.8.1 Caractersticas Generales El USB est dado esencialmente por un cable especialmente diseado para transmisin de datos entre la computadora (cuyo nombre dentro de la terminologa USB es

88

host), y diferentes perifricos, que pueden acceder simultneamente al mismo con el fin de recibir o transmitir datos. Todos los dispositivos conectados acceden al canal o medio para transmitir sus datos atendiendo a las normas de administracin del host, regido por un protocolo que consecutivamente va dando la posibilidad de transmitir a cada perifrico. El protocolo USB se parece de cierta forma al protocolo Token Ring. La arquitectura del bus garantiza la posibilidad de que los perifricos sean conectados y desconectados del host mientras este y otros perifricos estn operando normalmente, caracterstica a la que se denomina Conectar y Desconectar Dinmico, sin perjuicio para ningn dispositivo en funcionamiento. Todos los dispositivos USB deben tener el mismo tipo de cable y el mismo tipo de conector, sin depender de la funcin que cumplan. Los detalles de consumo y administracin elctrica del dispositivo deben ser completamente transparentes para el usuario. El ordenador debe identificar automticamente un dispositivo agregado mientras trabaja, a su vez, tambin puede ser desconectado mientras el ordenador esta en uso. El bus debe permitir perifricos multifuncin, es decir, aquellos que pueden realizar varias tareas a la vez, como lo son algunas impresoras que adicionalmente son fotocopiadoras y mquinas de fax. Ofrece Capacidad para manejo y recuperacin de errores producidos por un dispositivo cualquiera. La Figura 2.53 muestra la arquitectura general del USB.

Figura 2.53. Arquitectura General de USB.

89

Este sistema esta compuesto por tres reas especficas: el host USB, los dispositivos USB y, toda la interconexin USB. La interconexin USB es la manera en la cual los dispositivos USB se conectan y comunican con el host, esto incluye: la topologa del bus o el modelo de conexin entre los dispositivos USB y el host; los modelos de flujo de datos, es decir la forma en la que la informacin se mueve en el sistema entre los diversos elementos del mismo; la planificacin USB que define la secuencia en la cual los dispositivos accedern al bus y finalmente, las relaciones entre capas del modelo, y las funciones de cada capa. El cable de bus USB es de 4 hilos, y comprende lneas de seal (datos) y alimentacin, con lo que las funciones pueden utilizar un nico cable. Existen dos tipos de cable: apantallado y sin apantallar. En el primer caso el par de hilos de seal es trenzado; los de tierra y alimentacin son rectos, y la cubierta de proteccin (pantalla) solo puede conectarse a tierra en el anfitrin. En el cable sin apantallar todos los hilos son rectos. Las conexiones a 15 Mbps y superiores exigen cable apantallado. Se utilizan dimetros estndar para los hilos de alimentacin del bus. Para cada seccin se autoriza una longitud mxima del segmento. En la tabla 2.10 se muestran estas distancias y la disposicin de pines y colores de identificacin.
Tabla 2.10. Especificaciones del cable USB.

. Se usan dos tipos de conectores, A y B. Ambos son polarizados (solo pueden insertarse en una posicin) y utilizan sistemas de presin para sujetarse. Los de tipo A 90

utilizan la hembra en el sistema anfitrin, y suelen usarse en dispositivos en los que la conexin es permanente (por ejemplo, ratones y teclados). Los de tipo B utilizan la hembra en el dispositivo USB (funcin), y se utilizan en sistemas mviles (por ejemplo, cmaras fotogrficas o altavoces). En general podemos afirmar que la hembra de los conectores A estn en el lado del host (PC) o de los concentradores (hubs), mientras las de tipo B estn del lado de los perifricos, ver la Figura 2.54.

Figura 2.54. Conectores USB.

El estndar del USB tiene en cuenta dos modos de funcionamiento en los que desciende el consumo considerablemente, estos son los modos "idle" y "power down". Los perifricos han de estar preparados para soportar estos modos de funcionamiento, porque el bus va a pasar a suministrarles una cantidad de energa mnima, primero el PC avisar al controlador USB, (por ejemplo el Intel 8x930ax), de que van a pasar a ese estado y luego se pasa al modo de ahorro. 2.8.2 Funcionamiento El bus serie USB es sncrono, y utiliza el algoritmo de codificacin NRZI ("Non Return to Zero Inverted"). En este sistema existen dos voltajes opuestos; una tensin de referencia corresponde a un "1", pero no hay retorno a cero entre bits, de forma que una serie de unos corresponde a un voltaje uniforme; en cambio los ceros se marcan como cambios del nivel de tensin, de modo que una sucesin de ceros produce sucesivos cambios de tensin entre los conductores de seal. El controlador USB instalado en el ordenador, denominado controlador de host, o concentrador raz ("Root hub"), proporcionan un enlace entre el bus de la placa-base, por ejemplo PCI, y una o ms conexiones iniciales con el exterior (generalmente 2 conectores

91

del tipo "A"). A partir de estas, utilizando concentradores adicionales, pueden conectarse ms dispositivos, en la Figura 2.54 se muestra el tipo de conectores USB. Actualmente la mayora de las placas-base incluyen un controlador USB integrado en el chipset. Para sistemas antiguos que no dispongan de USB pueden instalarse tarjetas PCI (e incluso PC-CARD para porttiles) que incluyen un controlador y uno o dos conectadores de salida. El protocolo de comunicacin utilizado es de testigo, que guarda cierta similitud con el sistema Token-Ring de IBM. Puesto que todos los perifricos comparten el bus y pueden funcionar de forma simultnea, la informacin es enviada en paquetes; cada paquete contiene una cabecera que indica el perifrico a que va dirigido. Existen cuatro tipos de paquetes distintos: Token; Datos; Handshake, y Especial; el mximo de datos por paquete es de 8; 16; 32 y 64 Bytes. Se utiliza un sistema de deteccin y correccin de errores bastante robusto tipo CRC ("Cyclical Redundancy Check"). El funcionamiento est centrado en el host, todas las transacciones se originan en l; es el controlador host el que decide todas las acciones, incluyendo el nmero asignado a cada dispositivo (esta asignacin es realizada automticamente por el controlador "host" cada vez que se inicia el sistema, se aade, o elimina, un nuevo dispositivo en el bus), su ancho de banda, etc. Cuando se detecta un nuevo dispositivo es el host el encargado de cargar los drivers oportunos sin necesidad de intervencin por el usuario. El sistema utiliza cuatro tipos de transacciones que resuelven todas las posibles situaciones de comunicacin. Cada transaccin utiliza un mnimo de tres paquetes, el primero es siempre un Token que avisa al dispositivo que puede iniciar la transmisin. Transferencia de control ("Control transfer"): Ocurre cuando un dispositivo se conecta por primera vez. En este momento el controlador de host enva un paquete "Token" al perifrico notificndole el nmero que le ha asignado. Transferencia de pila de datos ("Bulk data transfer"): Este proceso se utiliza para enviar gran cantidad de datos de una sola vez. Es til para dispositivos que tienen que enviar gran cantidad de datos cada vez, como escneres o mquinas de fotografa digital.

92

Transferencia por interrupcin ("Interrupt data transfer"): Este proceso se utiliza cuando se solicita enviar informacin por el bus en una sola direccin (de la funcin al host).

Transferencia de datos iscrona ("Isochronous data transfer"): Este proceso se utiliza cuando es necesario enviar datos en tiempo real. Los datos son enviados con una cadencia precisa ajustada a un reloj, de modo que la transmisin es a velocidad constante. Las comunicaciones asncronas ponen ms nfasis en garantizar el envo de datos, y

menos en su temporizacin (cuando llegan); por su parte las comunicaciones iscronas son justamente lo contrario, ponen ms nfasis en la oportunidad de la transmisin que en la velocidad. Esta sincronizacin es importante en situaciones como la reproduccin de video, donde no debe existir desfase entre las seales de video y audio. 2.8.2.1 Conexin Fsica del USB El flujo de informacin en USB es ms parecido a un protocolo de red avanzada de datos que al flujo de datos del bus serial tradicional del PC. Mientras el bus serial tradicional tiene IRQ, DMA y lmites para los dispositivos que determinan su uso, USB se separa de todo eso. Es una arquitectura de "BUS" en cuanto a que provee una va para enviar informacin de muchos dispositivos desde y hacia el sistema del computador de una manera ordenada. USB utiliza un cable de cuatro alambres para conectividad perifrica. Dos alambres entregan la seal de datos diferencial (D+ y D-). Un alambre entrega la alimentacin de 5 volt (Vbus) y el otro sirve como conductor de tierra (GND) (ver Figura 2.55). El alambre de 5 volts energiza los perifricos conectados. La energa mxima disponible en el bus es de 500 mA.

93

Figura 2.55. Cable USB

Los cuatro alambres estn sujetos en un solo cable. Cada bus serial puede ser de hasta 5 metros de largo. La tasa de transmisin est limitada a 12 Mbps, con un subcanal de 1.5 Mbps disponible para dispositivos de tasa de datos baja, como el mouse. La tasa de transmisin de datos de 12 Mbps soporta una amplia variedad de perifricos, desde mdems, impresoras, micrfonos y parlantes hasta joysticks, escner, monitores y cmaras digitales. El propsito del subcanal de baja velocidad es minimizar los costos de los chips satisfacer los requerimientos de interferencia electromagntica. El mismo dispositivo le dice al bus cual es su velocidad a travs de los cables de voltaje. Los dispositivos de alta velocidad varan el voltaje positivo, mientras que los dispositivos de baja velocidad varan el negativo. Es decir, el bus detecta la presencia de un nuevo dispositivo por la variacin de uno de los alambres de voltaje. Los dispositivos que no necesitan mucha energa, como cmaras digitales, pueden obtener su energa desde el mismo bus. Esto significa que no operan conectados a la pared. En cambio otros dispositivos como escner e impresoras s deben estar conectados a la red de energa. 2.8.2.2 Capas y Protocolo de Comunicacin En la Figura 2.56 se pueden ver las capas de la actual configuracin USB y su interaccin con el host. Capa Fsica. Abajo a la derecha se aprecia la capa fsica, formada por el enchufe y el cable, que conectan la interfaz del bus USB en el dispositivo con el sistema operativo.

94

Figura 2.56. Capas de USB.

Todas las comunicaciones fsicas son iniciadas por el host. Esto quiere decir que cada un milisegundo, o en cada ventana de tiempo que el bus lo permita, el host preguntar por nuevos dispositivos en el bus USB. Adems, el host inicia todas las transacciones fsicas y soporta todas las transferencias de datos sobre la capa fsica. Capa de Protocolo. La siguiente capa es la de protocolo, que enumera el dispositivo, lo habilita en el bus USB y maneja todas las acciones que ocurren en el dispositivo entre ste y el host. Esta capa de protocolo est basada en un sistema de paquetes, que se muestra en la Figura 2.57. Se aprecia que el primer paquete es el starter frame (marco de inicializacin). Como ya se mencion, cada un milisegundo hay un nuevo paquete o seccin de paquetes, y para que el host inicie cualquier ventana de un milisegundo coloca un starter frame. Esto sincroniza todos los dispositivos y revisa la transferencia de datos de un milisegundo. Ahora, durante este milisegundo se pueden tener token packets (paquetes-marca), que habilitan a los dispositivos para alienarse al ancho de banda y as permitir a un dispositivo particular retirar o enviar datos. El siguiente paquete es el de datos, en el cual el tamao actual es de hasta 1023 bytes transmitidos o recibidos por un dispositivo.

95

Figura 2.57. Formato de Paquetes de la Capa de Protocolo de USB

Finalmente est el handshake, que confirma que los datos fueron recibidos sin errores por el host o el perifrico, y si ocurri un error ambos sern capaces de reenviar los datos. Capa de Transferencia de Datos. Por ltimo, est la capa de transferencia de datos, donde ocurre la transmisin efectiva de datos en el dispositivo. 2.8.3 Topologa del USB La forma fsica en la que los elementos se interconectan dentro del sistema USB, puede asemejarse a la topologa estrella estratificada piramidalmente (por niveles). El centro de cada estrella es un hub, un dispositivo que por un lado se conecta al ordenador o a otro hub y por otro lado, permite conectar al mismo varios dispositivos o en su defecto nuevos hubs. La Figura 2.58 permitir entender mejor la idea. Esta disposicin significa que las computadoras con soporte para USB han de tener tan solo uno o dos conectores USB, pero ello no representa poder contar con tan solo dos dispositivos de esta clase. Muchos dispositivos USB han de traer conectores USB adicionales incorporados, por

96

ejemplo un monitor puede tener 3 4 conectores USB donde pueden ir el teclado, el ratn, y algn otro dispositivo.

Figura 2.58. Topologa USB.

Por su parte el teclado puede tener otros ms, y as sucesivamente hasta tener ms de 127 dispositivos, todos funcionando simultneamente. An as, existirn dispositivos especficos destinados a ampliar la cantidad de conectores, estos se denominan hubs, y su funcionamiento como apariencia fsica est muy cercana a la de los hubs de redes Ethernet. Un hub de 8 puertos o conectores, puede ser acoplado a uno de los puertos USB del computador, ampliando la cantidad de dispositivos que se pueden emplear. En un bus USB existen dos tipos de elementos: Anfitrin ("host") y dispositivos; a su vez, los dispositivos pueden ser de dos tipos: concentradores y funciones. Algunos dispositivos pueden ser de los dos tipos al mismo tiempo. Por ejemplo, una pantalla USB (funcin) puede ser a su vez un concentrador con dos o ms conexiones auxiliares para conectar otros dispositivos. Soporta intercambio simultneo de datos entre un ordenador anfitrin y un amplio conjunto de perifricos. Todos los perifricos conectados comparten el ancho de banda del bus por medio de un protocolo de arbitraje basado en testigos ("Tokens"). Los concentradores ("Hubs") son el centro de una estrella, y sirven para conectar con el sistema anfitrin, con otro hub o con una funcin. Cada hub puede proporcionar 500

97

mA de energa de alimentacin (hasta 2.5 W) a cada uno de los dispositivos a l conectados, ya que el cable de conexin tiene hilos de seal (datos) y de alimentacin (5 V. cc 0.25 V). Una funcin es un dispositivo capaz de transmitir o recibir datos o informacin de control en un bus USB, suele conectarse como un dispositivo independiente enlazado por un cable de menos de 5 metros, a un puerto del hub o directamente al sistema anfitrin. 2.8.4 Implementaciones y Aplicaciones del protocolo USB Esta tecnologa ha sido diseada con el objetivo de lograr que el PC y las comunicaciones remotas especialmente con mdems, sean una sola unidad. Y es que las tendencias de la informtica actuales apuntan a un mundo totalmente intercomunicado electrnicamente empleando uno de los dispositivos ms conocidos como es el computador personal y el medio de comunicacin ms diseminado del mundo: el telfono [10]. Existen dos estndares de implementacin para USB. Ambos satisfacen las especificaciones de USB y de los perifricos USB. OHCI (Open Host Controller Interface). Desarrollado conjuntamente por Compac, Microsoft y National Semiconductor. Est basado en la optimizacin del rendimiento del bus USB y minimizacin de la supervisin de la CPU para controlar el USB. UHCI (Universal Host Controller Interface). Es la interfaz propietaria de Intel, y est basada en la minimizacin de la complejidad de diseo del host. Utiliza la CPU para controlar el bus USB. Algunos controladores USB son compatibles con chips o microcontroladores de diferentes fabricantes. Esto tiene dos ventajas, uno es que muchos estn familiarizados con la arquitectura y el conjunto de instrucciones que manejan dichos fabricantes, y esto facilita el uso del protocolo USB para cualquier aplicacin. La tabla 2.11 muestra algunos dispositivos compatibles y sus respectivos fabricantes.

98

Tabla 2.11 Dispositivos y fabricantes compatibles con el protocolo USB.


FABRICANTE ADM ATMEL CYPRESS INFINEON MICROCHIP TECHNOLOGY MITSUBISHI MOTOROLA COMPATIBILIDAD INTEL 80C186 ATMEL AVR INTEL 8051, DALLAS SEMI DS80C320 INTEL 8051 MICROCHIP PIC MITSUBISHI 740 MOTOROLA 68HC05 MOTOROLA 68H08 MOTOROLA POWER PC INTEL 8051 CHIP EJEMPLO AM186 AT76C711 AN2121 (EZ-USB SERIES) C541U 16C7X5 7640, 7532/36 68HC05JB3/4 68HC08JB8 MPC850 USB97C100 ST7261

STANDARD MICROSYSTEMS (SMSC) STMICROELECTRONICS STMICROELECTRONICS ST7

La otra ventaja es que si an no se esta familiarizado con la arquitectura de alguno de estos fabricantes, seleccionar alguna significa que la programacin y herramientas de eliminacin de errores estarn disponibles, y cdigos de muestra como otros consejos probablemente estarn disponibles en el Internet. 2.8.4.1 Comparacin de USB con Otros Buses Seriales Existen otros buses seriales en la industria, que son comparados con USB, los cuales se describen a continuacin. IEEE 1394-1995. Tambin conocido como Firewire, es un bus serial de alta velocidad para dispositivos de escritorio perifricos, principalmente video. Soporta tasas de transferencia de 400 Mbps, y es ms caro que el USB para ser implementado, tanto en el computador host como en el perifrico. Por lo tanto, USB e IEEE 1394-1995 son tecnologas complementarias; interfases USB sern encontradas en prcticamente cualquier computador, mientras que IEEE 1394-1995 ser usado en computadores que requieran alto ancho de banda.

99

RS-232. An es el estndar de interfaz serial ms comn en la industria. La mayora de los PCs vienen con uno o dos puertos RS-232 (COM). Es un bus serial de baja velocidad diseado para trabajar con perifricos de baja velocidad como el mouse. Utiliza un conector de 25 o 9 pines y puede tener cables de hasta 16 metros. Comparado con USB, RS-232 tiene un ancho de banda mucho menor y carece de muchas caractersticas como conexin en caliente y plug and play. Por tanto, RS232 seguir siendo utilizado en dispositivos antiguos, mientras se espera que los nuevos sean diseados para USB.

PS-2. Este puerto serial est diseado especficamente para bajo costo y bajo ancho de banda del teclado y el mouse. Es ms barato que el USB, por lo que ser utilizado para las aplicaciones mencionadas por un tiempo ms. Teclado y mouse se convertirn a USB cuando la diferencia de costo entre USB y PS-2 desaparezca.

En resumen, USB ofrece grandes cualidades que lo harn la opcin de bus serial para perifricos de baja y media velocidad.

2.9 Protocolo Bluethooth.


En 1994, la compaa de telecomunicaciones Ericsson, comenz un estudio para investigar la viabilidad de una interfaz de radio de baja potencia y bajo costo entre telfonos mviles y sus accesorios. El objetivo era eliminar los cables entre los telfonos mviles y tarjetas de PCs, headsets, dispositivos desktop, etc. El estudio fue parte de otro gran proyecto de investigacin que involucraba multicomunicadores conectados a la red celular por medio de los telfonos celulares. El ultimo enlace en dicha conexin debera ser un radio enlace de corto rango. A medida que el proyecto progresaba, se volvi claro que las aplicaciones que envuelven dicho enlace de corto rango seran ilimitadas. A comienzos de 1997, Ericsson se aproxima a otros fabricantes de dispositivos porttiles para incrementar el inters en esta tecnologa. El motivo era simple: para que el sistema fuera exitoso y verdaderamente utilizable, una cantidad crtica de dispositivos porttiles deberan utilizar la misma tecnologa de radio enlaces de corto alcance. En Febrero de 1998, cinco compaas, Ericsson, Nokia, IBM,

100

Toshiba e Intel, forman un Grupo de Inters Especial (SIG). Dicho grupo contiene la mezcla perfecta en lo que es el rea de negocios, dos lderes del mercado en telefona mvil, dos lderes del mercado en computadoras laptop y un lder del mercado en tecnologa de procesamiento de seales digitales. La meta era establecer la creacin de una especificacin global para conectividad sin hilos de corto alcance. La razn del nombre es que en el siglo X el rey Harold II de Dinamarca, apodado "diente azul" (Bluetooth) a causa de una enfermedad que le daba esta coloracin a su dentadura. Reunific bajo su reinado numerosos pequeos reinos que existan en Dinamarca y Noruega y que funcionaban con reglas distintas, lo mismo que hace la tecnologa Bluetooth, promovida por Ericsson (Suecia) y Nokia (Finlandia), dos pases escandinavos. El 20 y el 21 de mayo de 1998, el consorcio de Bluetooth se anunci al pblico general de Londres, Inglaterra, San Jos, California, y Tokio, Japn, lo que provoco la adopcin de la tecnologa por varias compaas. El propsito del consorcio era establecer un dispositivo estndar y un software que lo controle. Actualmente ya pertenecen mas de 1.600 empresas al el SIG (Special Interest Group), que han adoptado esta tecnologa para desarrollarla con sus propios productos, que empezaron a salir al mercado a finales del ao 2000. 2.9.1 Caractersticas Generales Bluetooth es un estndar empleado en enlaces de radio de corto alcance, destinado para reemplazar el cableado existente entre dispositivos electrnicos. El primer objetivo para los productos Bluetooth de primera generacin eran los entornos de la gente de negocios que viaja frecuentemente, por lo que se debera pensar en integrar el chip de radio Bluetooth en equipos como: telfonos celulares, Asistentes Personales Digitales (o sus siglas en Ingls PDA), computadoras (y muchos otros dispositivos) ya sea en el hogar, en la oficina, en el auto, etc. Esto originaba una serie de cuestiones previas que deberan solucionarse tales como:

El sistema debera operar en todo el mundo.

101

El emisor de radio deber consumir poca energa, ya que debe integrarse en equipos alimentados por bateras. La conexin deber soportar voz y datos, y por lo tanto aplicaciones multimedia. La tecnologa empleada permite a los usuarios conexiones instantneas de voz y

datos entre varios dispositivos en tiempo real. El modo de transmisin empleado, asegura proteccin contra interferencias y seguridad en el envo de datos. Entre sus principales caractersticas, pueden nombrarse su robustez, baja complejidad, bajo consumo y bajo costo. El radio Bluetooth es un pequeo microchip que opera en una banda de frecuencia disponible mundialmente. Pueden realizar comunicaciones punto a punto y punto multipunto. Uno de los atractivos ms grandes de la implementacin de esta tecnologa para la estructuracin de redes, es la de que es posible comunicar distintas redes en mismo punto geogrfico, con relativamente alta velocidad de transmisin, esto debido a su alcance limitado y reducido, pero a la vez, esta caracterstica de alcance limitado presenta una gran desventaja a la hora de tratar de implementar una red en un extensa rea geogrfica. Otro punto positivo que presenta esta tecnologa es la fcil manipulacin y configuracin de redes y sub-redes dentro del mismo espacio con la implementacin de diversos Piconets entrelazados a travs de distintas configuraciones de Scatternets. 2.9.1.1 Piconets Si un equipo se encuentra dentro del radio de cobertura de otro, stos pueden establecer conexin entre ellos. En principio slo son necesarias un par de unidades con las mismas caractersticas de hardware para establecer un enlace. Dos o ms unidades Bluetooth que comparten un mismo canal forman una piconet. Para regular el trfico en el canal, una de las unidades participantes se convertir en maestra, pero por definicin, la unidad que establece la piconet asume ste papel y todos los dems sern esclavos. Los participantes podran intercambiar los papeles si una unidad esclava quisiera asumir el papel de maestra. Sin embargo, slo puede haber un maestro en la piconet al mismo tiempo.

102

Cada unidad de la piconet utiliza su identidad maestra y reloj nativo para seguir en el canal de salto. Cuando se establece la conexin, se aade un ajuste de reloj a la propia frecuencia de reloj nativa de la unidad esclava para poder sincronizarse con el reloj nativo del maestro. El reloj nativo mantiene siempre constante su frecuencia, sin embargo, los ajustes producidos por las unidades esclavas para sincronizarse con el maestro, slo son vlidos mientras dura la conexin. 2.9.1.2 Scatternet Los equipos que comparten un mismo canal slo pueden utilizar una parte de su capacidad de este. Aunque los canales tienen un ancho de banda de un 1Mhz, cuantos ms usuarios se incorporan a la piconet, disminuye la capacidad hasta unos 10 kbit/s ms o menos. Teniendo en cuenta que el ancho de banda medio disponible es de unos 80 Mhz en Europa y USA (excepto en Espaa y Francia), ste no puede ser utilizado eficazmente, cuando cada unidad ocupa una parte del mismo canal de salto de 1Mhz. Para poder solucionar ste problema se adopt una solucin de la que nace el concepto de scatternet. Las unidades que se encuentran en el mismo radio de cobertura pueden establecer potencialmente comunicaciones entre ellas. Sin embargo, slo aquellas unidades que realmente quieran intercambiar informacin comparten un mismo canal creando la piconet. ste hecho permite que se creen varias piconets en reas de cobertura superpuestas. A un grupo de piconets se le llama scatternet. El rendimiento, en conjunto e individualmente de los usuarios de una scatternet es mayor que el que tiene cada usuario cuando participa en un mismo canal de 1 Mhz. Adems, estadsticamente se obtienen ganancias por multiplexin y rechazo de canales salto. Debido a que individualmente cada piconet tiene un salto de frecuencia diferente, diferentes piconets pueden usar simultneamente diferentes canales de salto. 2.9.1.3 Especificaciones generales: Banda de Frecuencia: 2.4 GHz (Banda ISM)

103

Potencia del transmisor: 1 mW para un alcance de 10 m, 100 mW para un alcance de hasta 100 m Tecnologa: Espectro Expandido y Saltos en Frecuencia (FHSS) Canales mximos de voz: 3 por piconet Canales mximos de datos: 7 por piconet Velocidad de datos: hasta 721 kbits por piconet Rango esperado del sistema: 10 metros (40 pies) Nmero de dispositivos: 8 por piconet y hasta 10 piconets Alimentacin: 2,7 voltios Consumo de potencia: desde 30 uA a 30 mA transmitiendo Tamao del Mdulo: 0.5 pulgadas cuadradas (9x9 mm) Interferencia: Bluetooth minimiza la interferencia potencial al emplear saltos rpidos en frecuencia entre 1600 veces por segundo

2.9.1.4 Bandas de frecuencia Para poder operar en todo el mundo es necesaria una banda de frecuencia abierta a cualquier sistema de radio independientemente del lugar del planeta donde nos encontremos. Slo la banda ISM (mdico-cientfica internacional) de 2,45 Ghz cumple con ste requisito, con rangos que van de los 2.400 Mhz a los 2.500 Mhz, y solo con algunas restricciones en pases como Francia, Espaa y Japn. Aunque a nivel mundial, esta banda se encuentra disponible, el ancho de la banda puede diferir segn el pas. Los rangos del ancho de banda en Japn se encuentran entre 2.471 a 2.497 MHz. En consecuencia el sistema puede usarse a nivel mundial debido que los transmisores de radio cubre 2.400 y 2.500 MHz y se puede seleccionar la frecuencia apropiada. La ISM esta abierta a cualquier sistema de radio y esta debe prever las interferencias de monitores para beb, los controles para puertas de garajes, los telfonos inalmbricos y los hornos microondas (la fuente mas fuerte de interferencia), esto puede evitarse usando un esquema del espectro extendido. En Estados Unidos la frecuencia de transmisin opera en 2.45 GHz ISM y requiere aplicar un espectro extendido usando en su

104

tecnologa el nquel lo que nivela el excedente 0 dBm. Esto se resume mejor en la tabla 2.12.
Tabla 2.12. Bandas de frecuencia y canales de RF.
Zona Geogrfica USA, Europa y otros estados Espaa Francia Rango regulador 2,400-2,483 GHz 2,445-2,475 GHz 2,465-2,835 GHz Canales de RF I=2402+k MHz, k=0,78 I=2449+k MHz, k=0,22 I=2454+k MHz, k=0,22

2.9.1.5 Alcance Las conexiones son uno a uno con un rango mximo de 10 metros, aunque utilizando amplificadores se puede llegar hasta los 100 metros, aunque se introduce alguna distorsin. Pero hay que recordar que estos dispositivos fueron creados con la intencin de usarlos en ambientes cerrados y a poca distancia. 2.9.2 Funcionamiento Cada dispositivo deber estar equipado con un microchip o mdulo como el mostrado en la Figura 2.59 que transmite y recibe en la frecuencia de 2.4 GHz que esta disponible en todo el mundo (con algunas variaciones de ancho de banda en diferentes pases). Adems de los datos, estn disponibles tres canales de voz. Cada dispositivo tiene una direccin nica de 48 bits basado en el estndar IEEE 802. Las conexiones son uno a uno con un rango mximo de 10m (dependiendo del medio podra ser ms).

Figura 2.59. Mdulo Bluetooth.

105

Los datos se pueden intercambiar a velocidades de hasta 1-megabit por segundo (se esperan 2 megabits por segundo en la Segunda Generacin de esta Tecnologa). Un esquema de "frequency hop" (saltos de frecuencia) permite a los dispositivos comunicarse inclusive en reas donde existe una gran interferencia electromagntica. Adems de que se provee de esquemas de encriptacin y verificacin. El protocolo Bluetooth, utiliza una combinacin de conmutaciones de circuito y paquetes. Para asegurar que los paquetes no sean recibidos fuera de orden, ranuras de tiempo (hasta 5) pueden ser reservadas para los mismos. Como se mencion anteriormente, saltos de frecuencia son aplicados para evitar interferencia y desvanecimiento. Un salto de seal diferente es usado para cada paquete. La conmutacin de circuitos puede ser sncrona o asncrona. Hasta tres canales de datos sncronos pueden ser soportados. Cada canal sncrono soporta una velocidad de 64 Kb/s, lo cual es utilizado para transmisiones de voz. Un canal asncrono puede transmitir 721 Kb/s en una direccin y 57,6 Kb/s en la direccin opuesta. Es posible tambin en una conexin asncrona soportar velocidades de 432,6 Kb/s en ambas direcciones si el enlace es simtrico. Los datos transmitidos poseen una velocidad de 1 Mb/s. Una modulacin GFSK (Gaussian Frequency Shift Keying) es usada, en donde un 1 binario representa una desviacin de frecuencia positiva, y un 0 binario representa una desviacin de frecuencia negativa. La desviacin mxima de frecuencia est entre 140 KHz y 175 KHz. La modulacin se ilustra en la Figura 2.60:

Figura 2.60. Modulacin GFSK.

106

2.9.2.1 Definicin de canal Debido a que la banda ISM est abierta a cualquiera, el sistema de radio Bluetooth deber estar preparado para evitar las mltiples interferencias que se pudieran producir. stas pueden ser evitadas utilizando un sistema que bsqueda o un sistema de salto de frecuencia. Como hemos comentado, Bluetooth utiliza precisamente un sistema FH/TDD (salto de frecuencia / divisin de tiempo duplex), en el que el canal queda dividido en intervalos de 625 s, llamados slots, donde cada salto de frecuencia es ocupado por un slot. Esto da lugar a una frecuencia de salto de 1600 veces por segundo, en la que un paquete de datos ocupa un slot para la emisin y otro para la recepcin y que pueden ser usados alternativamente, dando lugar a un esquema de tipo TDD ilustrado en la Figura 2.61.

Figura 2.61. Esquema de tipo TDD (Divisin de tiempo duplex).

Dos o ms unidades Bluetooth pueden compartir el mismo canal dentro de una piconet , donde una unidad acta como maestra, controlando el trfico de datos en la piconet que se genera entre las dems unidades, donde estas actan como esclavas, enviando y recibiendo seales hacia el maestro. El salto de frecuencia del canal est determinado por la secuencia de la seal, es decir, el orden en que llegan los saltos y por la fase de sta secuencia.

107

Figura 2.62. Paquetes con mltiples ranuras de tiempo

El salto de frecuencia permanecer hasta haber transmitido el paquete. En el caso de un solo paquete, el salto de frecuencia se deriva del reloj interno de la unidad maestra. En el caso de varios paquetes, el salto de frecuencia deriva del reloj dentro del primer espacio de tiempo. En la Figura 2.62 se ilustra el caso de paquetes con una duracin mayor a un espacio de tiempo. En Bluetooth, la secuencia queda fijada por la identidad de la unidad maestra de la piconet (un cdigo nico para cada equipo), y por su frecuencia de reloj. Por lo que, para que una unidad esclava pueda sincronizarse con una unidad maestra, sta primera debe aadir un ajuste a su propio reloj nativo y as poder compartir la misma portadora de salto, como lo ilustra la Figura 2.63.

Ajuste de tiempo

Figura 2.63. Salto de frecuencia del protocolo Bluetooth

108

En pases donde la banda est abierta a 80 canales o ms, espaciados todos ellos a 1 Mhz., se han definido 79 saltos de portadora, y en aquellos donde la banda es ms estrecha se han definido 23 saltos. 2.9.2.2 Definicin de paquete La informacin que se intercambia entre dos unidades Bluetooth se realiza mediante un conjunto de slots que forman un paquete de datos. Cada paquete comienza con un cdigo de acceso de 72 bits, que se deriva de la identidad maestra, seguido de un paquete de datos de cabecera de 54 bits. ste contiene importante informacin de control, como tres bits de acceso de direccin, tipo de paquete, bits de control de flujo, bits para la retransmisin automtica de la pregunta, y chequeo de errores de campos de cabeza. La direccin del dispositivo es en forma hexadecimal (00:07:A4:00:03:75). Finalmente, el paquete que contiene la informacin, que puede seguir al de cabeza, tiene una longitud de 0 a 2745 bits. En cualquier caso, cada paquete que se intercambia en el canal est precedido por el cdigo de acceso. La Figura 2.64 muestra un ejemplo de estos slots.

Figura 2.64. Slots que forman un paquete de datos.

En cualquier caso, cada paquete que se intercambia en el canal est precedido por el cdigo de acceso. Los receptores de la piconet comparan las seales que reciben con el cdigo de acceso, si stas no coinciden, el paquete recibido no es considerado como vlido en el canal y el resto de su contenido es ignorado. 2.9.3.3 Definicin de enlace fsico En la especificacin Bluetooth se han definido dos tipos de enlace que permitan soportar incluso aplicaciones multimedia:

Enlace de sincronizacin de conexin orientada (SCO)

109

Enlace asncrono de baja conexin (ACL) Los enlaces SCO soportan conexiones asimtricas, punto a punto, usadas

normalmente en conexiones de voz, estos enlaces estn definidos en el canal, reservndose dos slots consecutivos (envo y retorno) en intervalos fijos. Los enlaces ACL soportan conmutaciones punto a punto simtricas o asimtricas, tpicamente usadas en la transmisin de datos. Un conjunto de paquetes se han definido para cada tipo de enlace fsico:

Para los enlaces SCO, existen tres tipos de slot simple, cada uno con una portadora a una velocidad de 64 kbit/s. La transmisin de voz se realiza sin ningn mecanismo de proteccin, pero si el intervalo de las seales en el enlace SCO disminuye, se puede seleccionar una velocidad de correccin de envi de 1/3 o 2/3. Para los enlaces ACL, se han definido el slot-1, slot-3, slot-5. Cualquiera de los

datos pueden ser enviados protegidos o sin proteger con una velocidad de correccin de 2/3. La mxima velocidad de envo es de 721 kbit/s en una 2.9.3.4 Inmunidad a las interferencias Como se mencion anteriormente Bluetooth opera en una banda de frecuencia que est sujeta a considerables interferencias, por lo que el sistema ha sido optimizado para evitar stas interferencias. En este caso la tcnica de salto de frecuencia es aplicada a una alta velocidad y una corta longitud de los paquetes (1600 saltos / segundo, para slotssimples). Los paquetes de datos estn protegidos por un esquema ARQ (repeticin automtica de consulta), en el cual los paquetes perdidos son automticamente retransmitidos, aun as, con este sistema, si un paquete de datos no llegase a su destino, slo una pequea parte de la informacin se perdera. La voz no se retransmite nunca, sin embargo, se utiliza un esquema de codificacin muy robusto. ste esquema, que est basado en una modulacin variable de declive delta (CSVD), que sigue la forma de la onda de audio y es muy resistente a los errores de bits. Estos errores son percibidos como ruido de fondo, que se intensifica si los errores aumentan.

110

2.9.3 Topologa Bluetooth Una de las mayores ventajas, y en la que se demuestra la versatilidad del diseo de la tecnologa Bluetooth, est en la fcil confeccin y arreglo de redes entre distintos dispositivos de sta misma tecnologa. Bluetooth ha sido diseada para operar en un ambiente multi-usuario. Esta presenta dos tipos de topologas posibles, las cuales se pueden expandir a un nmero considerable de elementos para conformar as las redes y sub-redes. La estructura que maneja esta tecnologa est compuesta, en su forma ms bsica, por lo que se denomina una Piconet y en una estructura un poco ms compleja a la que se denomina una Scatternet. Cada dispositivo tiene una direccin nica de 48 bits, basada en el estndar IEEE 802.11 para WLAN, mientras que la Scatternet esta formada por la conexin de una Piconet a otra, con un mximo de interconexiones de diez Piconets. En la Figura 2.65 se puede observar y entender con mayor facilidad estas dos topologas.

Figura 2.65. Topologas Bluetooth.

En la Figura 2.65-a se puede observar la Piconet ms sencilla la cual est constituida por dos dispositivos, mientras que en la Figura 2.65-b tenemos una Piconet constituida por cuatro de estos dispositivos. En la Figura 2.65-c est ejemplificada una Scatternet que posee tres Piconet, una constituida por cuatro unidades, otra por dos y la ltima por 3 unidades respectivamente.

111

Los equipos que comparten un mismo canal

se dividirn los recursos y la

capacidad de ste. Aunque los canales tienen un ancho de banda de un 1Mhz, cuantos ms usuarios se incorporen a la Piconet, menor sern los recursos adjudicados a cada usuario, es decir, disminuir la capacidad del ancho de banda de cada dispositivo hasta unos 10 kbit/s o un poco menos. Esta funcin que es la de la Scatternet fue introducida para solucionar el problema del bajo ancho de banda que le queda a cada usuario de una Piconet si en esta se encuentran gran cantidad de unidades conectadas. El rendimiento, en conjunto e individualmente de los usuarios de una Scatternet es mayor que el que tiene cada usuario cuando participa en un mismo canal de 1 MHz. Adems, estadsticamente se obtienen ganancias por mltiplex accin y rechazo de canales salto. Debido a que individualmente cada Piconet tiene un salto de frecuencia diferente; diferentes Piconets pueden usar simultneamente diferentes canales de salto. Otra de las caractersticas de las configuraciones de red que presentan los dispositivos Bluetooth, y que podemos observar en la Figura anterior y en mejor nivel en la Figura 2.66 es la del control del canal, la cual se establece mediante la definicin de un maestro y los dems dispositivos esclavos. Cualquier unidad puede hacerse maestro, pero por definicin, la unidad que establece el enlace, o la Piconet, con otras unidades asume este papel, mientras que todas las dems unidades sern los esclavos. Las unidades pueden intercambiar los papeles, si una unidad esclava quiere tomar el papel del dominio puede hacerlo pero no obstante debe existir solo un maestro y el resto son esclavos.

112

Figura 2.66. Control de canal maestro-esclavo.

En el Caso de la Scatternets, una unidad maestra en una Piconet puede ser una unidad esclava en otra Piconet. Mientras ms Piconets se aaden a la Scatternet el rendimiento del sistema disminuye poco a poco, habiendo una reduccin por termino medio del 10%. Sin embargo, el rendimiento que finalmente se obtiene de mltiples Piconets supera al de una simple Piconet 2.9.4.1 Seguridad Para asegurar la proteccin de la informacin se ha definido un nivel bsico de encriptacin, que se ha incluido en el diseo del clip de radio para proveer de seguridad en equipos que carezcan de capacidad de procesamiento, las principales medidas de seguridad son: Una rutina de pregunta-respuesta, para autentificacin Una corriente cifrada de datos, para encriptacin Generacin de una clave de sesin (que puede ser cambiada durante la conexin) Tres entidades son utilizadas en los algoritmos de seguridad: la direccin de la unidad Bluetooth, que es una entidad pblica; una clave de usuario privada, como una entidad secreta; y un nmero aleatorio, que es diferente por cada nueva transaccin. Como se ha descrito anteriormente, la direccin Bluetooth se puede obtener a travs de un procedimiento de consulta. La clave privada se deriva durante la inicializacin y no

113

es revelada posteriormente. El nmero aleatorio se genera en un proceso pseudo-aleatorio en cada unidad Bluetooth. 2.9.5 Aplicaciones e implementaciones de Bluetooth La tecnologa Bluetooth por su naturaleza inalmbrica permite imaginar un sin nmero de usos prcticos. Las aplicaciones de Bluetooth son muy variadas y permiten cambiar radicalmente la forma en la que los usuarios interactan con los telfonos mviles y otros dispositivos. Dentro del campo de la tecnologa, su aplicacin es inmediata ya que permite una comunicacin fcil, instantnea, en cualquier lugar y su costo es bajo; sin olvidar su impacto en la forma de realizar los procesos, al sustituir los medios convencionales y posibilitar nuevos negocios y aplicaciones. La aplicacin de esta tecnologa se puede percibir desde la implementacin de una red inalmbrica hasta la posibilidad de transferir una fotografa de una cmara a un mvil para enviarla por correo electrnico o transferirla a la impresora para imprimirla en ausencia de cables. Desde el punto de vista profesional, la aplicacin ms prctica, es la posibilidad de montar una red inalmbrica en salas o entornos que ofrezcan dificultades para montar una LAN convencional. Para ello se utiliza un punto de acceso y cada puerto lleva instalado una PC Card con esta tecnologa. A continuacin se detallan algunas de las aplicaciones ms importantes de bluetooth: Transferencia de archivos: El servicio consiste en la transferencia de archivos .doc, .xls, .ppt, .wav, y .jpg, carpetas y directorios de un dispositivo a otro. Adems, ofrece la posibilidad de ver el contenido de carpetas de dispositivos remotos. Escritorio Inalmbrico: Bluetooth nos ofrece la posibilidad de eliminar los cables que utilizamos en nuestros equipos: Desde un teclado inalmbrico, el ratn, incluso un disco duro porttil que se comunique mediante esta tecnologa. Conexin a Internet: Esta aplicacin permite conexin inalmbrica, un usuario tiene acceso a Internet mediante un telfono mvil o mediante un mdem inalmbrico, tal cual como si fuera una lnea telefona fija.

114

Acceso Inalmbrico a LAN: En este servicio, mltiples equipos terminales de datos usan puntos de acceso LAN, llamados LAP (LAN access point), como una conexin inalmbrica a una red de rea local LAN. Una vez conectados, los DTs funcionan como si estuvieran conectados a una LAN va red. La Figura 2.58 muestra grficamente la interconectividad bluetooth.

Sincronizacin Automtica: El servicio consiste en sincronizar automticamente y de manera continua la informacin PIM (Personal Information Managament) en los distintos dispositivos Bluetooth; bsicamente la informacin es la concerniente a calendario, lista de direcciones y telfonos, mensajes y notas.

Telfono tres en uno: Un mismo telfono se puede utilizar como fijo, si se encuentra dentro del radio de accin del punto de acceso instalado, como telfono mvil si nos encontramos fuera de radio de accin del punto de acceso, y por ltimo, como medio de acceso a nuestros contactos, telfonos, correo electrnico, etc.

Dispositivo Manos Libres Inalmbrico: El dispositivo manos libres puede conectarse de manera inalmbrica al telfono mvil, al ordenador porttil u otro mvil, con el fin de actuar como un dispositivo remoto con entrada y salida de audio. Como se puede apreciar, las aplicaciones de Bluetooth son casi infinitas y permiten cambiar radicalmente la forma en la que los usuarios interactan con los telfonos mviles y otros dispositivos. Una de las primeras compaas en lanzar un producto Bluetooth ha sido Ericsson. El Chip Bluetooth encuentra aplicacin en la industria de automocin (casi todos

los coches en el futuro llevarn un chip Bluetooth que permitir un control telemtico de su funcionamiento), en medicina para monitorizacin de los enfermos sin necesidad de tener cables conectados a su cuerpo, automatizacin del hogar, lectura de contadores, asociado a un lector de cdigo de barras; podremos subir al autobs o el metro y sentarnos mientras el billete nos es facturado a nuestro monedero electrnico; o pagar la compra en el hiperpermercado enviando la informacin de los productos que va cargando en el carrito,

115

que anota con un lector de cdigo de barras incorporado al telfono mvil, directamente a la cajera. Otra de las aplicaciones a las que se augura mayor futuro es en el acceso a redes inalmbricas (WLAN) incorporando una tarjeta PCMCIA en el ordenador porttil, en lugar de una tarjeta WLAN Ethernet. As, la comunicacin se hace con un punto de acceso Bluetooth, lo que incrementa la seguridad de la comunicacin, al tener un alcance limitado. La Figura 2.67 muestra grficamente las mltiples aplicaciones del protocolo Bluetooth. En general, su aplicacin ser amplia en el sector industrial: Automocin, Aeronutico, Naval, otros transportes. Bienes de equipo mecnico / elctrico / Electrodomsticos. Ordenadores, Equipos de oficina / hogar. Telecomunicaciones y Equipos electrnicos. Otros segmentos industriales

Adems, en el sector de los servicios: Financieros. Administracin y servicios pblicos. Servicios privados a empresas [11]

116

Figura 2.67. Interconectividad Bluetooth

2.10 Protocolo WI-FI (Wireless Fidelity)

117

Wi-Fi fue creado en 1997 por el Instituto de Ingenieros Elctricos y Electrnicos (IEEE) de Estados Unidos en respuesta al protocolo Bluetooth desarrollado unos aos antes por la sueca Ericsson. Su creacin recibi muy pronto el apoyo de la Wireless Ethernet Compatibility Alliance (WECA), organizacin que se encarga de confirmar la compatibilidad entre los productos de sus asociados. Fundada por 3Com, Cisco Systems, InteRSil, Agere Systems, Nokia y Symbol Technologies, aquellos productos certificados por WECA llevan en sus cajas el logotipo de Wi-Fi con el objetivo de facilitar la bsqueda de infraestructura que finalmente formar una red inalmbrica. Las redes Wi-Fi son redes de ordenadores, interconectados empleando enlaces de microondas en lugar de cables, que nacen con idntico objetivo al que gua la construccin de las redes locales desde los principios de la computacin, es decir, distribuir tareas entre diversos computadores o dispositivos, compartir datos, compartir programas, compartir otros tipos de recursos, etctera. Nace con el objetivo de la interconexin, una necesidad de estandarizacin y que favorezca el empleo de elementos de fabricantes diversos, el abaratamiento de los dispositivos provocado por las economas de escala, la competencia y la rpida extensin de la tecnologa. Para 1997 las tecnologas relacionadas con la transmisin de seales sin cables haban evolucionado tanto como para catalizar en un sistema suficientemente rpido, con un alcance aceptable, que fuese fiable y barato. De nuevo el IEEE intervino y decidi desarrollar ese estndar que fuese funcionalmente equivalente a las redes anteriores, pero que no requiriese de cables. El resultado se denomin, siguiendo con la nomenclatura histrica, IEEE 802.11 y permita unas velocidades de hasta 2Mbits por segundo que las hacan interesantes, pero no lo suficiente. Por ello se revis de nuevo el estndar y en el 2000 se cre el 802.11b con una capacidad de hasta 11Mbits/seg (en la prctica alrededor de 7Mbits/seg), que s atrajo y sigue atrayendo la atencin de todos. Si bien los costos de 802.11b son superiores a Bluetooth, se trata de una tecnologa ms madura, con una velocidad de transmisin de datos entre siete y once veces superior, y todo ello operando en la misma banda de frecuencia.

118

La expresin Wi-Fi (abreviatura de Wireless Fidelity) se utiliza como denominacin genrica para los productos que incorporan cualquier variante de las tecnologas inalmbrica 802.11, que permite la creacin de redes de trabajo sin cables (conocidas como WLAN, Wireless Local rea Netwoks). En un principio, la expresin Wi-Fi era utilizada nicamente para los aparatos con tecnologa 802.11b, el estndar dominante en el desarrollo de las redes inalmbricas, de aceptacin prcticamente universal, que funciona en una banda de frecuencias de 2,4 GHz y permite la transmisin de datos a una velocidad de hasta 11Mbps (aunque la velocidad real de transmisin depende en ltima instancia del nmero de usuarios conectados a un punto de acceso). Con el fin de evitar confusiones en la compatibilidad de los aparatos y la interoperabilidad de las redes, el trmino Wi-Fi se extendi a todos los aparatos provistos con tecnologa 802.11 (ya sea 802.11a, 802.11b, 802.11g, 802.11i, 802.11h, 802.11e, con diferentes frecuencias y velocidades de transmisin) [7]. 2.10.1 Caractersticas Generales Es un protocolo de comunicacin inalmbrica de rea local cuyo nombre tcnico es 802.11b. Ofrece interconexin entre un mximo de 10 equipos y acceso inalmbrico a Internet a una velocidad de hasta 11 Mbps. Tambin conocido como Airport, est diseado para su utilizacin en hogares, pequeas, medianas y grandes empresas, as como en todo tipo de lugares pblicos. Posee un radio de accin de hasta 100 metros en espacios abiertos y de unos 45 metros en recintos cerrados con paredes. Con una red 802.11b, los usuarios, tanto domsticos como corporativos, pueden navegar por Internet, descargar archivos e imprimir documentos desde su porttil o PDA sin necesidad de cables. Para su utilizacin slo se necesita de un pequeo mdem interno que se conecta a la red telefnica y elctrica y una tarjeta de red (PCMCIA, PCI USB) para cada equipo que forme parte de la red inalmbrica.. Aunque se considera que la norma 802.11b es suficientemente fiable, rpida y segura, se estn desarrollando diferentes categoras. Una norma que ya est aprobada por el comit normativo es la 802.11a, que ofrece una velocidad de 54 Mbps y un alcance

119

mximo de 35 metros. Funciona a 2,4 GHz, la misma frecuencia de Bluetooth y otras tecnologas inalmbricas como Home RF. Otros miembros de la familia que estn en desarrollo son 802.11g (22 Mbps), 802.11i (caracterizada por una elevada seguridad de transmisin) o 802.11e, especialmente diseada para las comunicaciones de voz [8]. 2.10.1.1 Terminologas de redes Wi-Fi Ad Hoc: Consiste en un grupo de ordenadores que se comunican cada uno directamente con los otros a travs de las seales de radio sin usar un punto de acceso. Las configuraciones "Ad Hoc" son comunicaciones de tipo punto a punto. Los ordenadores de la red inalmbrica que quieren comunicarse entre ellos necesitan el mismo canal y ESSID en modo "Ad Hoc". Modo Infraestructura: Esta es la forma de trabajar de los puntos de acceso. Si queremos conectar nuestra tarjeta a uno de ellos, debemos conectar nuestra tarjeta en este modo de trabajo. Slo decir que esta forma de funcionamiento es bastante ms eficaz que "Ad Hoc", en las que los paquetes "se lanzan al aire, con la esperanza de que lleguen al destino..", mientras que el "modo infraestructura" gestiona y se encarga de llevar cada paquete a su sitio. Se nota, adems el incremento de velocidad con respecto a "Ad Hoc". ESSID: Es un identificador de red inalmbrica. Es algo as como el nombre de la red, pero a nivel Wi-Fi. WEP: (Wired Equivalent Privacy). Proporciona transmisin de datos "segura". La encriptacin puede ser ajustada a 128 bits, 64 bits o deshabilitada. La configuracin de 128 bits da el mayor nivel de seguridad. Tambin hay que recordar que todas las estaciones que necesiten comunicarse deben usar la misma clave para generar la llave de encriptacin. Actualmente hay ms niveles de WEP: 152, 256 y hasta 512 bits, cuanto ms alto es este dato, supuestamente la comunicacin es ms segura, a costa de perder rendimiento en la red. Tambin decir que este protocolo no es 100% seguro, que hay software dedicado a violar este cifrado, aunque requiere tiempo. Canal: (Channel): Cuando un grupo de ordenadores se conectan a travs de radio como una red inalmbrica independiente (Ad Hoc), todas las estaciones deben usar 120

el mismo canal de radio. Aunque si te conectas a una red a travs de un punto de acceso (modo infraestructura), entonces la tarjeta de red se conecta automticamente para usar el mismo canal que usa el punto de acceso ms cercano. Tx Rate: Es la velocidad del enlace. Por defecto se ajusta automticamente en funcin de la calidad de la seal, aunque se puede forzar a mano. Es recomendable dejarla automtica, ya que forzarla a niveles superiores no significa aumentar la velocidad de la red. Punto de Acceso (Access Point): Se suele abreviar como AP. Es un dispositivo que 'gestiona', los paquetes lanzados por otras estaciones inalmbricas, hacindolas llegar a su destino. Adems el punto de acceso, da conectividad a una red cableada, por lo que la red inalmbrica puede acceder a otros equipos que estuvieran en una red cableada. Su funcin es muy similar a la de un concentrador / puente (hub/bridge) de redes convencionales. Tarjeta Wi-Fi o adaptador inalmbrico: Las ms conocidas son las que vienen en formato PCMCIA, para porttiles, aunque tambin las hay en formato PCI, USB, CompactFlash, Smart Card y similares. Son equivalentes a una tarjeta de red normal, slo que sin cables. Su configuracin a nivel de IP (Protocolo de Internet) es exactamente igual que una Ethernet. Las principales diferencias entre ambas son: El cifrado de datos, el ESSID, el Canal, y el ajuste de velocidad, que incluyen las Wi-Fi. Espectro expandido (Spread Spectrum). Poder transmitir ocupando una banda de frecuencias mayor de la requerida. Desarrollado originalmente con fines militares, para evitar ataques / escuchas. Patente de Lamarr/Antheils, en 1942. Usada por primera vez en un sistema de guiado de torpedos de la armada americana en 1962. Se clasifican en dos tipos: FHSS: Salto de Frecuencias (Frecuency Hopping). Se transmite en diferentes bandas de frecuencias, saltando de una a otra en forma aleatoria pero predecible, el emisor y receptor deben compartir generador de nmeros aleatorios y semilla. El estndar 802.11 establece 75 bandas de 1 MHz.

121

DSSS: Secuencia Directa (Direct Sequence). Aqu el espectro se expande al transmitir varios bits por cada bit de informacin real. Para cada bit, enviamos el XOR de l y de n bits aleatorios (chipping code): Para enviar un 0: 00100100010 Para enviar un 1: 10010100110 El estndar 802.11 utiliza un cdigo chipping de 11 bits, permitiendo 2 Mbps (cayendo a 1 Mbps en entornos ruidosos). EL estndar 802.11b utiliza una nueva forma de modulacin, CCK (complementary coding keying), para proporcionar 11 Mbps (con cadas a 5.5 Mbps, 2 Mbps y 1 Mbps). Antena: La potencia total transmitida por stas es igual sea cual sea la antena que utilicemos, siempre que todas ellas sean eficientes (que es el caso de todas las antenas bien construidas, tengan la ganancia que tengan). La cuestin es que las antenas de mayor ganancia envan la mayor parte de la energa en una nica direccin, concentrando la seal (direccionales). Como resultado la potencia transmitida en esa zona del espacio es mayor que si transmitisemos por igual en todas las direcciones (sera el caso de las antenas de menor ganancia, omnidireccionales). Ganancia: Cuanto ms alta sea la ganancia de la antena, mayores distancias podremos cubrir con una antena, y con mejor calidad podremos captar seales que pudieran llegarnos muy dbilmente. La unidad de medida son los decibelios (dB). Trminos de radio frecuencia (GHz, MHz, Hz).: La unidad internacional de medida de frecuencia es el Hertzio (Hz) el cual es equivalente a la unidad antigua de ciclos pos segundo. Un MHz es un milln de Hertzios y un GHz son mil MHz (mil millones de Hz). Como referencia: La frecuencia elctrica utilizada en Europa son 50 Hz y en EEUU son 60 Hz. La banda de frecuencia de radiodifusin AM es 0.55 - 1.6 MHz. La banda de frecuencia de radiodifusin FM es 88 - 108 MHz. Los hornos microondas tpicamente operan a 2.45 GHz.

122

2.10.1.4 Capas del estndar 802.11b. PHY (Phisical Layer). La capa fsica (PHY) se separa en dos partes en PLCP (Physical Layer Convergenve Protocol) y PMD (Physical Medium Dependet). PLCP consiste en un encabezado de 144 bits que sirve para sincronizar, para determinar la ganancia y para establecer el CCA (Clear Channel Assessment) que es necesaria para que la capa de MAC sepa si el medio esta en uso. Este prembulo esta compuesto por 128 bits de sincronizacin ms 16 bits llamados SFD (Start Frame Delimiter) que consiste en una secuencia fija de 0 y 1 (1111001110100000) que marca el principio del paquete. El PLCP es siempre transmitido a 1Mbps. Los prximos 48 bits son llamados Encabezado PLCP. Cuenta con 4 campos: seal, servicio, longitud y HEC ("header error check" para control de errores). La seal indica a que velocidad se deber transmitir (1, 2 , 5.5 u 11Mbps). El campo de servicio se reserva para uso futuro. El campo de longitud indica la longitud del paquete y el HEC es un CRC de 16bits del encabezado de 48bits. El PMD es dependiente del protocolo antes explicado. MAC (Media Access Control ). La capa MAC encargada del control al acceso fsico se encarga de sentir un tiempo de silencio y optar por transmitir. Luego de que el host determina que el medio ha estado sin transmisiones despus de un periodo mnimo de tiempo opta por transmitir su paquete. Si el medio se encuentra ocupado el host deber esperar. Esta capa tambin es responsable de identificar el origen y el destino del paquete. LLC (Logical Link Control). La capa LLC trabaja en conjunto con la capa fsica para establecer y mantener conexiones confiables 2.10.1.5 Estndares WLAN (Wireless Local rea Netwoks) Estndar 802.11. El estndar IEEE 802.11 usa un tipo de tecnologa de radio para redes de rea local (WLANs) esta compuesto de varios estndares que operan en diferentes radios frecuencias: 802.11b es un estndar para redes LANs que opera en 2.4GHz con un ancho de banda de 11Mbps; 802.11a es un estndar diferente para redes LANs, opera a un rango de frecuencia de 5GHz y un ancho de banda de 54

123

Mbps. Otro estndar es el 802.11g, esta es para WLANs operando en un rango de frecuencia 2.4 GHz y con un ancho de banda de 54 Mbps. IEEE 802.11a. El 802.11a representa la tercera generacin de estndares de redes inalmbricas (atrs del 802.11 y .11b). Este estndar fue aprobado antes que el 802.11b, pero represento un desafi, y fue atrasado, opera en una frecuencia de 5GHz (5.725GHz a 5.850 Ghz) con un ancho de banda de 54Mbps. La frecuencia de 5GHz no es tan aglomerada como la frecuencia de 2.4ghz, por que las especificaciones del 802.11a ofrecen ms canales que el 802.11b. IEEE 802.11c. Estndar que define las caractersticas que necesitan los APs para actuar como puentes (bridges). Ya est aprobado y se implementa en algunos productos. IEEE. 802.11d. Estndar que permite el uso de la comunicacin mediante el protocolo 802.11 en pases que tienen restricciones sobre el uso de las frecuencias que ste es capaz de utilizar. De esta forma se puede usar en cualquier parte del mundo. IEEE 802.11e. Estndar sobre la introduccin del QoS (Quality Service)en la comunicacin entre PAs y TRS. Acta como rbitro de la comunicacin. Esto permitir el envo de vdeo y de voz sobre IP. IEEE 802.11f. Estndar que define una prctica recomendada de uso sobre el intercambio de informacin entre el AP y el TR en el momento del registro a la red y la informacin que intercambian los APs para permitir la interportabilidad. La adopcin de esta prctica permitir el Roamming entre diferentes redes. IEEE 802.11g. El estndar IEEE 802.11g es una extensin del 802.11b y un complemento de 802.11a.. La versin a y g varia en sus especificaciones en el ancho de banda de 54MHz, y con las especificaciones b son de 11 MHz. EL 802.11g es similar al 802.11b, pero este estndar tiene un rendimiento de procesamiento de hasta 54 Mbps. Tambin opera a una frecuencia de 2.4GHz, pero usa una distinta tecnologa de radio para poder alzar el total de ancho de banda [7].

124

Dispositivos Tarjetas de red TR. Son los que estn integrados a la PC, o bien, siendo colocados mediante un conector PCMCIA USB si estamos en un porttil o en un slot, PCI si estamos en una PC de escritorio. Sustituyen a las tarjetas de red Ethernet o Token Ring a las que estbamos acostumbrados. Recibirn y enviarn la informacin hacia su destino desde la PC en la que se este trabajando. La velocidad de transmisin / recepcin de los mismos es variable dependiendo del fabricante y de los estndares que cumpla.

Dispositivos Puntos de Acceso PA los cuales son los encargados de recibir la informacin de los diferentes TR de los que consta la red ya sea para su centralizacin o para su encaminamiento. Complementan a los Hubs, Switches o Routers, si bien los PAs pueden sustituir a los ltimos ya que muchos de ellos ya incorporan su funcionalidad. La velocidad de transmisin / recepcin de los mismos es variable, las diferentes velocidades que alcanzan varan segn el fabricante y los estndares que cumpla. La Figura 2.75 muestra una representacin grfica de una red inalmbrica vea el siguiente grfico. Todos los estndares aseguran su funcionamiento mediante la utilizacin de dos

factores, cuando estamos conectados a una red mediante un cable, sea del tipo que sea, disponemos de una velocidad fija y constante. Sin embargo, cuando estamos hablando de redes inalmbricas aparece un factor aadido que puede afectar a la velocidad de transmisin, que es la distancia entre los interlocutores. As pues cuando un TR se conecta a un PA se ve afectado principalmente por los siguientes parmetros: Velocidad mxima del PA Distancia al PA (a mayor distancia menor velocidad) Elementos intermedios entre el TR y el PA (las paredes, campos magnticos o elctricos u otros elementos interpuestos entre el PA y el TR que modifican la velocidad de transmisin a la baja)

125

Saturacin del espectro e interferencias (cuantos ms usuarios inalmbricos haya en las cercanas ms colisiones habr en las transmisiones por lo que la velocidad se reducir, esto tambin es aplicable para las interferencias.), la transmisin entre dispositivos 802.11 podra ser como lo muestra la Figura 2.68.

Figura 2.68. Transmisin entre dispositivos Wi-Fi.

2.10.2 Funcionamiento Las redes 802.11b transmiten paquetes de datos sobre ondas electromagnticas (las mismas que las de la luz, la radio o los infrarrojos) en una banda de frecuencia de 2,4GHz (una frecuencia ISM - desregulada prcticamente en todo el mundo), dentro de la zona denominada de microondas (para saber por qu no hay ms que darle la vuelta al horno microondas de casa y mirar su chapa de caractersticas). Su potencia es muy baja, pero suficiente para los alcances definidos por la norma (unos 300m en exteriores y 100m en interiores con antenas omnidireccionales, varios kilmetros con antenas focales). La transmisin es fiable, que significa que los paquetes de datos siempre llegan, si no a la mxima velocidad (por interferencias, por ejemplo) el equipo automticamente reintenta a distintas velocidades hasta tener xito.

126

Como se mencion anteriormente el estndar 802.11 define 2 modos: el modo Infraestructura y el modo Ad-Hoc . En el modo Infraestructura, la red inalmbrica consiste en al menos un Access Point (AP punto de acceso) conectado a la red almbrica (a el cable) y 1 varias estaciones wireless, sta configuracin es llamada Basic Service Set (BSS). Un Extended Service Set (ESS) es una configuracin de 2 o ms BSS formando una sub-red. Muchas redes WLANs corporativas requieren el acceso a una LAN para los diferentes servicios (impresoras, servidores de archivos, etc.) es recomendable que trabajen en el modo infraestructura, ver Figura 2.69. Ventajas: - Incluso las estaciones que no pueden "verse" entre s directamente se pueden comunicar - Simple integracin en estructuras de cable ya existentes

Figura 2.69. Ejemplo de una red Wireless en Modo Infraestructura.

Inconvenientes: - Costo ms elevado del equipo - Instalacin y configuracin ms complejas El modo Ad-Hoc ( modo peer-to-peer o Independent Basic Service Set, IBSS) es

simplemente una configuracin de estaciones que se comunican directamente con algn 127

otra sin usar un AP o cualquier conexin a la red cableada. Este modo es til para una rpida y fcil puesta en marcha de una red inalmbrica en cualquier lugar donde no exista infraestructura wireless como en un cuarto de hotel, un centro de convenciones, un aeropuerto, o donde el acceso a la red alambrica esta restringida, observar Figura 2.70. Ventajas: - Comunicacin punto a punto sin punto de acceso - Instalacin rpida y costes mnimos Inconvenientes: - Alcance limitado - Nmero de usuarios limitado - No integracin en estructuras LAN existentes

Figura 2.70. Ejemplo de una red Wireless en modo Ad-Hoc.

Dado que es un estndar, todos los equipos 802.11b de cualquier fabricante pueden trabajar combinados. Sin embargo, para potenciar esta imagen en los consumidores se cre la marca Wi-Fi, cualquier dispositivo que la lleve ha pasado cierta homologacin y, por lo tanto, es absolutamente compatible y capaz de trabajar con elementos de cualquier fabricante. Poco a poco las siglas Wi-Fi se han extendido y sustituido en lo cotidiano a la incmoda denominacin original IEEE 802.11b. Para construir una red Wi-Fi es necesario contar con, al menos, un punto de acceso y un cliente. Los clientes son los ordenadores de la red, todos ellos tendrn que estar equipados con una tarjeta de cliente o adaptador que permita la conexin Wi-Fi. El punto de acceso hace las veces de un concentrador o controlador, un elemento del tamao

128

aproximado de un modem, que recibe los paquetes de datos de unos clientes y los distribuye a otros clientes, permitiendo adems integrar la red Wi-Fi con otras redes (como Ethernet). Los puntos de acceso dan, adems, a las redes Wi-Fi capacidad de roaming es decir un cliente (ordenador porttil, celular o PDA, por ejemplo) podr moverse de un sitio a otro sin perder la conectividad, el sistema gestiona automticamente la conexin al punto de acceso que proporciona la mejor seal disponible (como los telfonos GSM). 2.10.2.1 Formas de decodificar los datos Para el 802.11 se pueden aplicar dos mtodos de decodificicacin. FHSS (Frequency Hopping Spread Spectrum) o DSSS (Direct Sequence Spectrum). Lo positivo para ambos mtodos es que se pueden tener muchas transmisiones al mismo tiempo, hacindose poca interferencia una sobre la otra en 802.11. El mtodo de FHSS enva el primer paquete a un canal "random" de la banda, luego de una pausa de unos pocos milisegundos enva el segundo paquete por otro canal elegido al azar dentro de la misma banda. Con 80 o mas canales disponibles (uno por cada Mhz) la seal va saltando. El mtodo de DSSS opera en un canal determinado, luego la seal va separndose por mezcla con un cdigo de pseudo ruido. Trabaja tomando un paquete de datos (de 0 y 1) y lo modula con un segundo modelo que es la secuencia de chipping. En 802.11 esta secuencia se conoce como el Cdigo de Barker, esta formada por 11 bits que tiene propiedades matemticas que lo hacen ideal para modular radiofrecuencias. El cdigo Barker genera series de objetos de datos llamados chips. Cada bit se decodifica por el Cdigo Barker de 11bits y cada grupo de 11 chips decodifica 1 bit de datos. En 1998 Lucent y Harris Semiconductor le propusieron a la IEEE un nuevo estndar llamado 802.11b que introduca como novedad el mtodo CCK (Complementary Code Keying) con el fin de poder transmitir a 11Mbps. Para lograr esta mejora lo que tuvieron que hacer fue cambiar a CCK la forma de decodificar los datos. En vez de usar el Cdigo Barker se usan series de secuencias complementarias que cuentan con 64 nicas palabras que pueden usarse. En contraposicin al Cdigo de Barker, por CCK se pueden

129

representar 6 bits de datos en una sola palabra y no 1 bit de datos por palabra como hacia el Cdigo Barker.

2.10.2.2 Velocidad contra Modulacin Cuando transmitimos informacin entre dos dispositivos inalmbricos, la informacin viaja entre ellos en forma de tramas. Estas tramas son bsicamente secuencias de bits. Las secuencias de bits estn divididas en dos zonas diferenciadas, la primera es la cabecera y la segunda los datos que verdaderamente se quieren transmitir. La cabecera es necesaria por razones de gestin de los datos que se envan, dependiendo de la forma en la que se module la cabecera (o prembulo), podemos encontrarnos con diferentes tipos de tramas, como son: Barker. (RTS / CTS, Request To Send / Clear To Send) Solicitud de envo / Preparado para enviar CCK. (Complementary Code Keying) Modulacin de cdigo complementario PBCC. (Packet Binary Convolutional Coding) Codificacin convolucional binaria en paquetes OFDM. (Orthogonal Frequency-Division Multiplexing)

Una representacin grfica de las tramas ms importantes se ilustra en la Figura 2.71.

Figura 2.71. Tramas ms importantes en el estndar 802.11b

Como podemos ver la cabecera en el caso de la codificacin OFDM es ms pequea. A menor tamao de cabecera menor overhead en la transmisin, es decir, menor trfico de bits de gestin luego mayor sitio para mandar bits de datos. Lo que repercutir positivamente en el rendimiento de la red.

130

Cuando tenemos una red inalmbrica en la que todos los dispositivos son tipo a o todos de tipo b no hay problemas en las comunicaciones. Cada AP tipo a tendr slo TRS tipo a y los APs tipo b tendrn slo TRS tipo b. Se seleccionar la mejor modulacin y se transmitir. Si la comunicacin ptima no es posible debido a una excesiva distancia entre los dispositivos o por diferentes tipos de interferencias se va disminuyendo la velocidad hasta que se encuentre la primera en la que la comunicacin es posible. 2.10.3 Topologa y Modos de funcionamiento de los dispositivos Es conveniente hacer una divisin entre la topologa y el modo de funcionamiento de los dispositivos Wi-Fi. Con topologa nos referimos a la disposicin lgica (aunque la disposicin fsica tambin se pueda ver influida) de los dispositivos, mientras que el modo de funcionamiento de los mismos es el modo de actuacin de cada dispositivo dentro de la topologa escogida. En el mundo Wireless existen dos topologas bsicas: Topologa Ad-Hoc y Topologa Infraestructura, las cuales se explican en la seccin de terminologas Wi-Fi. Un caso especial de topologa de redes inalmbricas es el caso de las redes Mesh, las cuales inicialmente se usaron para comunicarse con aquellas unidades de militares que an estando lejos de las zonas de cobertura de sus mandos estaban lo suficientemente cerca entre s como para formar una cadena a travs de la cual se pudiese ir pasando los mensajes hasta llegar a su destino (los mandos). Todos los dispositivos, independientemente de que sean TRS o PAs tienen dos modos de funcionamiento. Tomemos el modo Infraestructura como ejemplo: Modo Managed. Es el modo en el que el TR se conecta al AP para que ste ltimo le sirva de concentrador. El TR slo se comunica con el AP. Modo Master. Este modo es el modo en el que trabaja el PA, pero en el que tambin pueden entrar los TRS si se dispone del firmware apropiado o de un ordenador que sea capaz de realizar la funcionalidad requerida.

131

Estos modos de funcionamiento sugieren que bsicamente los dispositivos Wi-Fi son todos iguales. Muchos APs en realidad lo que tienen en su interior es una placa de circuitos integrados con un Firmware aadido a un adaptador PCMCIA en el cual se le coloca una tarjeta PCMCIA idntica a las que funcionan como TR. 2.10.4 Seguridad y privacidad en el protocolo Wi-Fi La eliminacin de los hilos no elimina la necesidad de estrictas medidas de seguridad en una red informtica, todo lo contrario. No cabe duda de que las comunicaciones inalmbricas abrieron un nuevo punto de vulnerabilidad en la transmisin de datos, debido a que generalmente radian fuera del rea de transmisin deseada. Como primera medida, las soluciones WLAN ofrecen varios niveles de seguridad para evitar que usuarios no autorizados intercepten los paquetes de datos inalmbricos. Estas medidas incluyen generalmente el bloqueo del Punto de Acceso, la autenticacin de usuarios, la identificacin de dominios y la asignacin de una porcin concreta del espectro extendido. Por este obvio motivo, los sistemas inalmbricos sujetos a la especificacin 802.11b como complemento adicional y caracterstica optativa para evitar las escuchas indiscretas, disponen de una herramienta de codificacin de la informacin. En concreto, la seguridad de los datos se realiza mediante una compleja tcnica de codificacin, conocida como WEP (Wired Equivalent Privacy Algorithm). Tcnicamente, el sistema WEP se basa en proteger los datos transmitidos en el medio RF, usando una clave generada por un nmero pseudo-aleatorio y el algoritmo de encriptacin mediante la infraestructura de clave pblica RSA RC4. Cuando se habilita este sistema, slo se protege la informacin del paquete de datos y no protege el encabezamiento de la capa fsica para que las dems estaciones puedan escuchar el control de datos necesario para la adecuada gestin de la red. En la prctica, se suele utilizar el sistema de cifrado WEP a 64 bits integrado en las WLAN 802.11b, el cual resulta suficiente para casi todas las aplicaciones, pero la mayora de los equipos ofrecen un nivel mejorado de cifrado WEP a 128 bits para mejorar esta vital

132

aspecto de la seguridad. Adems del sistema de autenticacin WEP, el estndar 802.11b dispone otras tcnicas de control de acceso, incluyendo SSID (Service Set Identifier), y es una cadena de 32 caracteres mximo que identifica a cada red inalmbrica. Los TRS deben conocer el nombre de la red para poder unirse a ella programada en cada punto de acceso para identificar el segmento de red conectado. Sin embargo, el sistema WEP, en sus diferentes niveles de cifrado no se ha mostrado tan eficiente como sus creadores imaginaron en un principio. 2.10.5 Implementaciones y aplicaciones del protocolo Wi-Fi El desarrollo de las tecnologas Wi-Fi como una de las principales tendencias de los prximos aos, esta sacudiendo a todo el mundo. Las ventas de aparatos con conexin inalmbrica se incrementarn gracias a factores como la extensin de los estndares, el aumento de la interoperabilidad, la creciente demanda de aparatos porttiles o la aparicin de nuevas aplicaciones. La Figura 2.72 se refiere a la distribucin de las aplicaciones WiFi, donde se puede observar que los ordenadores personales (porttiles y de escritorio) sern el principal destino de las mismas, pero no desestima el impacto que tendrn en telfonos mviles y PDAs

Figura 2.72. Distribucin de las aplicaciones Wi Fi 2005. 2.10.5.1 Los productos IEEE 802.11b conquistan el mercado

133

En la practica, y entrando de lleno en el terreno comercial, la implantacin de esta especificacin ha supuesto que, en apenas dos aos, el mercado se haya visto inundado por multitud de soluciones acogidas a la norma 802.11b de muy diversos fabricantes, tanto por parte de quienes llevan largos aos en este sector como otros que no han querido dejar pasar esta inigualable oportunidad para subirse al carro de las redes inalmbricas. En definitiva, tal y como era de esperar, el inters suscitado alrededor de las comunicaciones sin hilos est actualmente en su punto ms lgido. Asimismo, a raz de su popularizacin dentro y fuera del mundo informtico, se ha abierto nuevas vas de desarrollo para aumentar an ms las posibilidades que ofrecen los enlaces inalmbricos. La Figura 2.73 muestra grficamente el uso de la tecnologa inalmbrica.

134

Figura 2.73. Aplicacin de la tecnologa inalmbrica 802.11.

2.11 Protocolo Ethernet


Ethernet es probablemente el estndar ms popular para las redes de rea local (LANs). De acuerdo con el grupo IDC, a fines de 1996 ms del 80% de las redes instaladas en el mundo eran Ethernet. Esto representaba unos 120 millones de PCs interconectados. El 20% restante utilizaba otros sistemas como Token-Ring, FDDI ("Fiber Distributed Data Interface") y otros. Fue desarrollado inicialmente en 1973 por el Dr. Robert M. Metcalfe en el PARC (Palo Alto Research Center) de la compaa Xerox, como un sistema de red denominado Ethernet Experimental. El objetivo era conseguir un medio de comunicacin entre computadoras a medio camino entre las lentas redes telefnicas de larga distancia que ya existan, y las de alta velocidad que se instalaban en las salas de computadoras para unir entre s los diversos elementos. Estos primeros trabajos del PARC contribuyeron sustancialmente a la definicin de la norma IEEE 802.3, que define el mtodo de acceso CSMA/CD. En 1980 se propuso un estndar Ethernet a 10 Mbps (tambin conocido como 10Base), cuya especificacin fue publicada conjuntamente por Digital Equipment Corporation, Intel y la propia Xerox. Por esta razn las primeras Ethernet eran denominadas DIX ("Digital Intel Xerox"); tambin "Libro azul", por el color de la primera edicin. Los primeros productos comenzaron a comercializarse en 1981. Adems de las tecnologas a 10 Mbps, se han desarrollado extensiones de la norma que aumentan la velocidad de transmisin: La conocida como 100Base a 100 Mbps; Gigabit Ethernet, a 1000 Mbps, y 10 Gigabit Ethernet. Hasta el 2002, el ltimo estndar Ethernet es 10 GE (10 Gibabit Ethernet), cuya versin definitiva fue publicada en Junio de ese ao por la comisin de trabajo IEEE 802.3ae. El nuevo estndar es compatible hacia atrs con los anteriores. Por supuesto, el

135

desarrollo tecnolgico no termina aqu; los nuevos trabajos apuntan a la posibilidad de alcanzar 40, 100 o 160 Gbps. A partir de 1982, Ethernet fue gradualmente adoptada por la mayora de los organismos de estandarizacin: ECMA European Computer Manufacturers Association IEEE Institute of Electrical and Electronics Engineers

NIST National Institute of Standards and Technology ANSI American National Standards Institute ISO International Standards Organization

Otros organismos que tienen gran influencia en el establecimiento de normas para la industria de redes y telecomunicaciones son: EIA ("Electronic Industries Alliance") Asociacin de Industrial Electrnicas TIA ("Telecommunications Industri Association") Asociacin de las industrias de telecomunicaciones. Estas dos asociaciones editan normas de forma conjunta, que se conocen como normas TIA/EIA; son las de mayor influencia en el diseo e instalacin de redes. Actualmente existen diversas tecnologas, sin embargo, la tecnologa confiable, robusta y abierta de Ethernet es por mucho la ms popular, estimndose un total de 40 millones de nodos Ethernet instalados en el mundo, para 1994. Esta cifra se duplicara para finales del siglo, garantizando con esto un amplio mercado y precios competitivos que no solo ayudaron a la supervivencia de este estndar, sino que, adems, incentiv la revolucin tecnolgica de las comunicaciones y servicios digitales personales. Eventualmente las computadoras comenzaron a ser vendidas con una interfaz Ethernet con la tecnologa ms avanzada e igualmente compatible con las versiones ms populares del estndar, reforzando la popularidad del Ethernet, a travs de la interoperabilidad de plataformas y tecnologas de diferentes fabricantes. 2.11.1 Caractersticas Generales

136

En una configuracin Ethernet, los equipos estn conectados mediante cable coaxial o de par trenzado ("Twisted-pair") y compiten por acceso a la red utilizando un modelo denominado CSMA/CD ("Carrier Sense Multiple Access with Collision Detection"). Inicialmente poda manejar informacin a 10 Mb/s, aunque actualmente se han desarrollado estndares mucho ms veloces. En la Tabla 2.5 se muestran las velocidades de transmisin. La norma IEEE 802.3 (Ethernet), define un protocolo de comunicacin conceptualmente dividido en dos partes. La primera de ellas es la capa MAC (Media Access Control) o de control de acceso al medio, que se ocupa de formatear la informacin para su transmisin y de arbitrar la forma en que los participantes de la red obtienen acceso a la misma. En el caso de Ethernet, la capa MAC emplea el mecanismo de acceso mltiple mediante deteccin de portadora y deteccin de colisin CSMA/CD. El sistema CSMA/CD implica que un nodo de la red puede enviar datos siempre y cuando ningn otro lo este haciendo. Si otro ya lo estuviera haciendo, lo que se detecta mediante la presencia de la portadora, el segundo demorara la transferencia. Si varios nodos inician simultneamente transferencias de datos, se producira una colisin, que tambin sera detectada; en este caso, cada una de las estaciones esperara durante un perodo de tiempo aleatorio antes de reintentar la transmisin de los datos. Se puede asimilar este mecanismo al de una conversacin humana. La segunda parte del protocolo Ethernet es la capa fsica (PHY o physical layer) que se ocupa de la comunicacin entre la capa MAC y el cableado. En el caso de Ethernet hay diferentes implementaciones de la capa fsica, dadas las diferentes posibilidades de cableado (10Base5, 10Base2, 10Broad36, 10Base-F, 10Base-T y 1Base5), pero en todos los casos se emplea el mismo MAC CSMA/CD.

137

Figura 2.74.Cableado del protocolo de comunicaciones Ethernet. La capa fsica es responsable tanto de obtener los datos (bits) del medio, como de situarlos en el mismo, incluyendo las funciones de codificacin y descodificacin, deteccin de la portadora, deteccin de colisiones, e interfaz elctrica y mecnica con el medio. La Figura 2.74 muestra grficamente estas dos capas 2.11.1.1 Cable de par trenzado Los cables UTP contienen pares de cables trenzados sin apantallar. Normalmente 4 pares en cada cable y segn lo trenzado que estn los cables soportan distintas velocidades: Categora 1: Solo voz Categora 2: Datos a 4Mbps (LocalTalk) Categora 3: Datos a 10Mbps (Ethernet) Categora 4: Datos a 20Mbps (Token Ring de 16Mbps) Categora 5: Datos a 100Mbps (Fast Ethernet y Gigabit Ethernet) El conector tpico es el Registered Jack 45 RJ-45 Los estndares Ethernet no necesitan especificar todos los aspectos y funciones necesarios en un Sistema Operativo de Red NOS ("Network Operating System"). Como ocurre con otros estndares de red, la especificacin Ethernet se refiere solamente a las dos primeras capas del modelo OSI ("Open Systems Interconnection"). Estas son la capa fsica

138

(el cableado y las interfases fsicas) y la de enlace, que proporciona direccionamiento local, deteccin de errores, y controla el acceso a la capa fsica. Una vez conocidas estas especificaciones el fabricante del adaptador est en condiciones de que su producto se integre en una red sin problemas. Tambin le corresponde proporcionar los controladores ("Drivers") de bajo nivel adecuados para cada Sistema Operativo que debe utilizar el adaptador. Los elementos que constituyen la capa fsica de Ethernet son de dos tipos: Activos (Tranceptores, Repetidores, Repetidores multipuesto o hubs) y Pasivos (Cables, Jacks/Conectores, Patch panels). Los primeros generan y/o modifican seales, los segundos simplemente la transmiten.
Tabla 2.13. Velocidades de Transmisin del protocolo Ethernet.

Tipo de Ethernet

Velocidad (Mbps)

Distancia (m) 500 185 100 2000

Media Coaxial Grueso Coaxial Fino UTP Fibra ptica

10Base5 (IEEE 802.3) 10 10Base2 (IEEE 802.3) 10 10BaseT (IEEE 802.3) 10 10BaseF(IEEE 802.3) 10

Un sistema Ethernet consiste de 3 elementos bsicos que son el medio fsico; utilizado para llevar las seales entre los dispositivos, un conjunto de reglas de control de acceso al medio, o protocolo, en cada interfaz Ethernet, que permite el arbitrio de acceso al canal Ethernet compartido y un marco Ethernet, que consiste en un conjunto estandarizado de bits utilizado para llevar datos a travs del sistema. 2.11.1.2 Arquitectura (estructura lgica) La arquitectura Ethernet puede definirse como una red de conmutacin de paquetes de acceso mltiple (medio compartido) y difusin amplia ("Broadcast"), que utiliza un medio pasivo y sin ningn control central. Proporciona deteccin de errores, pero no-

139

correccin. El acceso al medio (de transmisin) est gobernado desde las propias estaciones mediante un esquema de arbitraje estadstico. Los paquetes de datos transmitidos alcanzan a todas las estaciones (difusin amplia), siendo cada estacin responsable de reconocer la direccin contenida en cada paquete y aceptar los que sean dirigidos a ella. La tabla 2.13 muestra un resumen de velocidades y tipos de cable usando en los estndar 802.3. Ethernet realiza varias funciones que incluyen empaquetado y desempaquetado de los datagramas; manejo del enlace; codificacin y decodificacin de datos, y acceso al canal. El manejador del enlace es responsable de vigilar el mecanismo de colisiones escuchando hasta que el medio de transmisin est libre antes de iniciar una transmisin (solo un usuario utiliza la transmisin cada vez -Banda base-). El manejo de colisiones se realiza deteniendo la transmisin y esperando un cierto tiempo antes de intentarla de nuevo. Existe un mecanismo por el que se envan paquetes a intervalos no estndar, lo que evita que otras estaciones puedan comunicar, es lo que se denomina captura del canal. La estructura (Datagrama) del protocolo ETHERNET/802.3 es como se muestra en la Figura 2.75 y se describe de la siguiente manera: Prembulo: (64 bits) El paquete comienza con secuencia de 1s y 0s alternados hasta completar 56 bits (802.3) o 62 bits (Ethernet) conocido como prembulo. El prembulo provee una frecuencia nica sobre la red de 5 MHz al comienzo de cada paquete, lo cual permite al receptor bloquear los bits entrantes. El prembulo es utilizado slo por el codificador/decodificador Manchester para bloquear la trama de bits recibidos y permitir la codificacin de los datos. El prembulo recibido en la red no es pasado a travs de la MAC (Medium Access Control) hacia el sistema de host. Sin embargo la MAC es responsable para la generacin de prembulos para paquetes transmitidos. La secuencia del prembulo es seguida por el SFD (Start Frame Delimiter) que corresponde a 10101011 para completar los 8 bits restantes en el paquete 802.3, en el caso del paquete Ethernet se agregaran dos bits con dos 1s (11) que corresponde al SYNCH. En ambos casos para completar los 64 bits que tiene el prembulo.

140

Figura 2.75. Datagrama Ethernet.

Direccin Destino: La direccin destino (DD) es de 48 bits (6 bytes) de tamao, el cual se transmite primero el bit menos significativo. La DD es utilizada por la MAC receptora, para determinar si el paquete entrante es direccionado a un nodo en particular. Si el nodo receptor detecta una correspondencia entre su direccin y la direccin dentro de la DD, intentar recibir el paquete. Los otros nodos, los cuales no detectan una correspondencia, ignorarn el resto del paquete. Existen tres tipos de direcciones destino soportadas: 1.-Individual (fsica): El campo DD contiene una direccin nica e individual asignada a un nodo en la red. 2.- Multicast (lgica): Si el primer bit (el menos significativo) del campo DA es asignado, esto denota que una Direccin de Grupo est siendo usada. El "grupo" de nodos que sern direccionados son determinados por las funciones de las capas superiores, pero en general el intento es transmitir un mensaje a un subconjunto similar lgicamente de nodos en la red por instancia, todos los dispositivos de impresin. 3.-Broadcast: esta es una forma especial de multicast, donde el campo DD son puros 1s. La direccin 1s es reservada para la funcin broadcast y todos los dispositivos MAC en la red debern ser capaces de recibir el mensaje broadcast. Direccin Fuente: La direccin fuente (DF) es de 48 bits (6 bytes) de tamao, el cual se transmite primero el bit menos significativo (en forma cannica). El campo DF es provedo por la MAC transmisora, la cual inserta su propia direccin nica en este campo al transmitirse la trama, indicando que fue la estacin originadora. Un MAC en el receptor no es requerido para tomar accin basado en el campo DF. Los formatos de direcciones tipo broadcast y multicast son ilegales en el campo DF.

141

Longitud/Tipo: El campo Longitud (802.3)/Tipo (Ethernet) de 2 bytes va seguido del campo DF. La eleccin de escoger Longitud o Tipo es dependiente si la trama es 802.3 o Ethernet. El byte de ms alto orden de campo Longitud/Tipo es transmitido primero, con el bit menos significativo de cada byte transmitido primero. Datos: (46 - 1500 bytes) Este campo contiene los datos (informacin til) a ser transferida cuyo tamao varia de 56 a 1500 bytes. FCS (Frame Check Secuence): (4 bytes) El campo FCS o secuencia de verificacin de tramas contiene el valor del algoritmo CRC (Cyclic Redundancy Check) de 32 bits de la trama completa. El CRC es computado por la estacin transmisora sobre la DD, DF, Longitud/Tipo, el capo de Datos y es anexado en los ltimos 4 bytes de la trama. El mismo algoritmo CRC es utilizado por la estacin transmisora para computar el valor CRC para la trama como es recibida. El valor computado en el receptor es computado con el valor que fue puesto en el campo FCS de la estacin trasmisora, proveyendo un mecanismo de deteccin de error en caso de datos corruptos. Los bits del CRC dentro del campo FCS son transmitidos en el orden del bit ms significativo al bit menos significativo. 2.10.1.3 Colisiones Ethernet es un medio compartido, de modo que existen reglas para el envo de paquetes con el fin de evitar conflictos y proteger la integridad de los datos. Los nodos de una red Ethernet envan paquetes cuando ellos determinan que la red no est en uso. Esta determinacin se hace esperando un tiempo (cuya duracin es aleatoria) despus del ltimo paquete que se est transmitiendo en la red en ese momento. Transcurrido este tiempo, se determina que la red esta disponible para efectuar una transmisin. Es posible que dos nodos en localizaciones fsicas distantes traten de enviar datos al mismo tiempo y es cuando se produce una colisin. Este mecanismo es similar al que utilizamos los humanos al conversar, cada uno espera un tiempo (aleatorio) desde que el otro emiti la ltima palabra antes de determinar que termin de decir lo que quera y proceder entonces a contestar. Si por algn motivo

142

erramos en la determinacin, hablaremos los dos al mismo tiempo generando una colisin y deberemos detenernos y re-comenzar. Minimizar las colisiones es un elemento crucial en el diseo y operacin de redes. El incremento de las colisiones es a menudo el resultado de demasiados usuarios en una red, lo que produce una notable disminucin en el ancho de banda efectivo de la red. Esto puede enlentecer la funcionalidad de la red desde el punto de vista de los usuarios. Segmentar la red, donde la red es dividida en diferentes piezas unidas lgicamente con un "bridge" o un "switch", es una manera de reducir una red superpoblada. Existen dos tipos de colisiones, las excesivas y las tardas, las cuales se pueden ver en la Figura 2.76.
Bits Metros

143

Figura 2.76. Colisiones excesiva y tarda (a 10 Mb/s).

Las colisiones excesivas: ocurren cuando una estacin agota el mximo de iteraciones previsto por el retroceso exponencial binario. Son un sntoma de excesiva saturacin.

Las colisiones tardas: se producen cuando una topologa no es correcta, es decir, supera las distancias mximas entre algn par de estaciones. Tambin pueden ocurrir por defectos de cableado.

2.11.2 Topologa El protocolo Ethernet permite tres tipos de topologa: Bus, Estrella y rbol, (Lnear Bus, Star y Tree), pero esto depende del tipo de Ethernet a la que nos estemos refiriendo. Como ya se mencion anteriormente los tipos de red Ethernet son 10 Base-5, 10 Base-2, 10 Base-T y 10 Base-FL y su topologa se describe a continuacin: 10 Base-5: utiliza una topologa en BUS, con un cable coaxial que conecta todos los nodos entre s. En cada extremo del cable tiene que llevar un terminador. Cada nodo se conecta al cable con un dispositivo llamado transceptor, ver Figura 2.77.

144

Figura 2.77 Topologa de Bus. 10 Base-2: En la mayora de los casos, el costo de instalacin del coaxial y los transceptores de las redes 10 Base-5 las haca prohibitivas, lo que indujo la utilizacin de un cable ms fino y, por tanto, ms barato, adems, no necesitaba transceptores insertados en l. Se puede decir que 10 Base-2 es la versin barata de 10 Base-5. Por esto, tambin se le conoce como Thin Ethernet (Ethernet fino) o cheaper-net (red barata). Este tipo de red ha sido la ms usada en los ltimos aos en instalaciones no muy grandes debido a su simplicidad y precio accesible.

Figura 2.78. Ethernet Fino. Se caracteriza por su cable coaxial fino (RG-58) y su topologa en BUS. Cada dispositivo de la red se conecta con un adaptador BNC en forma de "T" y al final de cada uno de los extremos del cable hay que colocar un terminador de 50 Ohmios, ver Figura 2.78. 10 Base-T: Usa una topologa en estrella consistente en que desde cada nodo va un cable al un concentrador comn que es el encargado de interconectarlos. Cada uno de estos cables no puede tener una longitud superior a 90m. A los concentradores tambin se les conoce con el nombre de HUBs y son equipos que nos permiten estructurar el cableado de la red. Su funcin es distribuir y

145

amplificar las seales de la red y detectar e informar de las colisiones que se produzcan. En el caso de que el nmero de colisiones que se producen en un segmento sea demasiado elevado, el concentrador lo aislar para que el conflicto no se propague al resto de la red. Tambin se puede usar una topologa en rbol donde un concentrador principal se interconecta con otros concentradores. El cable usado se llama UTP que consiste en cuatro pares trenzados sin apantallamiento. El propio trenzado que llevan los hilos es el que realiza las funciones de asilar la informacin de interferencias externas. Tambin existen cables similares al UTP pero con apantallamiento que se llaman STP (Par Trenzado Apantallado mediante malla de cobre) y FTP (Par Trenzado apantallado mediante papel de aluminio), ver Figura 2.79. 10 Base-FL: Es la especificacin Ethernet sobre fibra ptica. Los cables de cobre presentan el problema de ser susceptibles tanto de producir como de recibir interferencias.

Figura 2.79 Topologa de rbol. Por ello, en entornos industriales o donde existen equipos sensibles a las interferencias, es muy til poder utilizar la fibra. Normalmente, las redes Ethernet de fibra suelen tener una topologa en estrella. La distancia entre equipos puede llegar a 2 Km. con los repetidores apropiados. 2.11.3 Funcionamiento

146

Ethernet como protocolo es considerado CSMA/CD ("Carrier Sense Multiple Acces Collision Detect"), lo cual significa que por su cable solo puede ser transmitida una sola seal a cierto punto en el tiempo, esto es, si a un cable se encuentran conectadas 10 o 20 PC's, slo una puede transmitir informacin a la vez, las dems deben esperar a que finalice la transmisin. Adems de esta caracterstica CSMA/CD, el protocolo "Ethernet" tambin utiliza lo que es denominado "Broadcast" o "Transmisin a todas las terminales"; considerando el ejemplo anterior, lo que ocurre cuando una PC enva informacin es que las otras 9 o 19 recibirn esta misma informacin, lo que sucede posteriormente es que solo la PC con la direccin MAC especificada acepta la informacin, las restantes la descartan. Llega un punto en el uso de una red en que estos "Broadcasts" son excesivos, aunado a la caracterstica "CSMA/CD" que slo una PC puede transmitir a la vez; la transmisin de informacin ("throughput") en la red (LAN) empieza a decaer, y la forma mas comn de evitar estos problemas es mediante un "Switch", ste empieza a reconocer las direcciones "MAC" que generalmente son enviadas por cada puerto, en otras palabras, cuando llega informacin al "Switch" ste tiene mayor conocimiento sobre que puerto de salida es el ms apropiado, y por lo tanto ahorra una carga ("bandwidth") a los dems puertos del "Switch", esta es una de la principales razones por la cuales en Redes por donde viaja Vdeo o CAD, se procura utilizar "Switches" para de esta forma garantizar que el cable no sea sobrecargado con informacin que eventualmente sera descartada por las computadoras finales, en el proceso, otorgando el mayor ancho de banda ("bandwidth") posible a los Vdeos o aplicaciones CAD. Las seales Ethernet son transmitidas de manera serial, un bit a la vez, sobre el canal, a todas las estaciones conectadas. Para enviar datos, una estacin escucha el canal y cuando est sin transmisin, la estacin transmite sus datos en la forma de un marco Ethernet o paquete. Despus de la transmisin de cada paquete, todas las estaciones en la red deben de contender por la siguiente oportunidad de transmisin, lo cual asegura que el acceso al canal es equitativo, y ninguna estacin puede asegurar el medio a otras estaciones. El

147

acceso al canal compartido es determinado por el mecanismo de control de acceso al medio, integrado en la interfaz Ethernet de cada estacin.

Figura 2.80. Funcionamiento del CSMA/CD.

Este sistema esta funciona cuando un equipo DTE ("Data Terminal Equipment") conectado a una LAN desea transmitir, este se mantiene a la escucha hasta que ningn equipo est transmitiendo (es la parte CS "Carrier Sense" del protocolo); una vez que la red est en silencio, el equipo enva el primer paquete de informacin. El hecho de que cualquier DTE pueda ganar acceso a la red es la parte MA "Multple Access" del protocolo. A partir de este momento entra en juego la parte CD ("Collision Detection"), que se encarga de verificar que los paquetes han llegado a su destino sin colisionar con los que pudieran haber sido enviados por otras estaciones por error, ver el diagrama de flujo de la Figura 2.80. En caso de colisin, los DTEs la detectan y suspenden la transmisin; cada DTE esperen un cierto lapso, pseudo aleatorio, antes de reiniciar la transmisin. Cada segmento de una red Ethernet (entre dos router, bridges o switches) constituye lo que se denomina dominio de tiempo de colisiones o dominio de colisiones Ethernet. Se supone que cada bit permanece en el dominio un tiempo mximo ("Slot time") de 25.6 s (algo ms de 25 millonsimas de segundo), lo que significa que en este tiempo debe haber llegado al final del segmento.

148

Si en este tiempo la seal no ha salido del segmento, puede ocurrir que una segunda estacin en la parte del segmento an no alcanzado por la seal, pueda comenzar a transmitir, puesto que su deteccin de portadora indica que la lnea est libre, dado que la primera seal an no ha alcanzado a la segunda estacin. En estas circunstancias ocurre un acceso mltiple MA ("Multiple Access") y la colisin de ambos datagramas es inevitable. Una red Ethernet puede estar en una de tres situaciones: Red parada: no hay transmisin Red en contencin: una (o varias) estacin transmiten con riesgo de colisin. Esto puede ocurrir solo durante los primeros 51,2 ms de transmisin como mximo (5,12 ms a 100 Mb/s) Estacin transmitiendo: una estacin est transmitiendo sin riesgo de colisin. Esto ocurre cuando la estacin ha superado el perodo de contencin, la Figura 2.81 muestra grficamente estas situaciones.

Figura 2.81. Estados Ethernet. Como la velocidad de propagacin de las ondas electromagnticas es de 2.9979 108 m/s, la seal Ethernet puede recorrer aproximadamente una distancia de 7674 m. en el Slot time. Hay que tomar en cuenta que a la velocidad estndar 10Base, de 10 Mb/s, cada bit ocupa una longitud de unos 29 metros (2.9979 108 / 10 106 = 29.9 m/b). En realidad, las colisiones no se producen porque el tendido de redes sea mayor que los 7674 metros tericos, sino porque dentro del dominio, se producen retrasos en la

149

propagacin de la seal debido principalmente a hubs y otros elementos defectuosos, incluyendo las propias DTEs. Los sntomas de una colisin dependen del medio de transmisin utilizado. En el caso de cable coaxial, la seal del cable, que normalmente est constituida por ceros y unos ntidos, contiene estados intermedios. La interferencia produce en algunos puntos un debilitamiento de la seal, cuya amplitud se cancela, mientras que en otros se produce un reforzamiento, duplicndose su amplitud al doble del mximo permitido; esta condicin de sobretensin es detectada por los nodos. En cambio, cuando se utiliza cable de par trenzado, el sntoma es que existe seal en el par TX mientras que simultneamente se recibe tambin seal por el par RX. Estos estados en que la calidad de la seal no es adecuada, son detectados como errores SQEs ("Signal Quality Errors"), y el dispositivo emisor enva un mensaje de error. Despus de este mensaje los dos DTEs esperan un tiempo (que raramente es el mismo) antes de reiniciar la transmisin. El mensaje de error es de 74 bits; como ya se mencion anteriormente, los 12 primeros estn destinados a informar sobre el receptor y emisor del mensaje. En la operacin de una red Ethernet se considera normal una cierta tasa de colisiones, aunque debe mantenerse lo ms baja posible. En este sentido una red normal debe tener menos de un 1% de colisiones en el total de paquetes transmitidos (preferiblemente por debajo del 0.5%). Para realizar este tipo de comprobaciones es necesario contar con analizadores adecuados [12]. 2.10.4 Aplicaciones e implementaciones del protocolo Ethernet Los estndares y tecnologas que han sido recin descriptos se traducen en productos especficos. Los encargados de redes pueden utilizar estos para la construccin de redes Ethernet. El siguiente texto discute los productos clave para construir una red Ethernet. Transceivers. Los Transceivers son utilizados para conectar nodos a varios medios Ethernet. La mayora de las computadoras y placas de interfaz de red poseen un

150

transceiver 10BASE-T o 10BASE2 incorporado ("built-in"), permitindoles conectarse directamente al medio Ethernet sin la necesidad de un transceiver externo. Muchos dispositivos Ethernet compatibles proveen un conector AUI, el cual permite al usuario conectarse a cualquier tipo de medio va un transceiver externo. El conector AUI consiste en un conector (hembra del lado de la PC y macho del lado del transceiver) de 15 pines tipo D-shell. Network Interface Cards. Las Tarjetas Adaptadoras de Red (o "Network Interface Cards", comnmente mencionadas como NICs), son utilizadas para conectar una PC a una red. La NIC provee una conexin fsica entre el cable de red y el Bus interno de la PC. En los sistemas Plug-and-Play (PnP) los adaptadores NIC son dos automticamente sin la intervencin del usuario, mientras que en los sistemas no PnP, la configuracin es hecha manualmente a travs de un programa de puesta en marcha ("Setup") y/o manualmente a travs de "Jumpers" o "DIP switches". Aquellas NIC en las cuales el programa de puesta en marcha o "Setup" todas las opciones de trabajo de la NIC y las graba en su memoria ROM interna se las denomina "Jumperless" (del ingls "sin Jumper"). Existen tarjetas para soportar casi todos los estndares de cableado, incluyendo el ltimo ambiente Fast Ethernet. Las tarjetas NIC Fast Ethernet son a menudo capaces de manejar 10/100 Mbps, y se configuran automticamente a la velocidad apropiada (10 Mbps o 100 Mbps). Conexin de red Full duplex es otra opcin, donde una conexin dedicada a un switch permite a la NIC operar al doble de velocidad (transmitiendo y recibiendo al mismo tiempo, muy tiles por ejemplo en aplicaciones tipo audio-chatting o videoconferencia). Hubs/Repetidores. Hubs/repetidores o "repeaters" son utilizados para conectar dos o ms segmentos Ethernet de cualquier tipo de medio. A medida que los segmentos exceden su longitud mxima, la calidad de la seal comienza a deteriorarse. Los Hubs proveen la amplificacin de seal requerida para permitirle a un segmento extenderse a una distancia mayor.

151

Un hub toma cualquier seal entrante y la repite a todos los restantes puertos de salida. Los hubs Ethernet trabajan necesariamente en topologas estrella o "star" tales como 10BASE-T. 2.10.4.1 Otros tipos de Ethernet El IEEE estandariz Ethernet aunque cambiando ligeramente el formato de la trama (compatible) El IEEE asign identificadores a los diferentes tipos de Ethernet como los muestra la tabla 2.14. Tabla 2.14 Otros tipos de Ethernet
Ethernet a 10Mbps 10BASE5 Thick Ethernet BASE=Bandabase Ethernet a 100 Mbps (Fast Ethernet) 100BASE-TX Emplea (2 pares de cables Cat. 5) 100BASE-FX Fibra ptica multimodo Ethernet a 1000 Mbps (Gigabit Ethernet) 1000BASE-T Emplea (4 pares de cable Cat. 5) 1000BASE-SX, 1000BASE-LX Fibra ptica

10BASE2 Thick Ethernet 2 --- 185m mximo por segmento 10BASE-T T=Twisted (-pair) Emplea (2 pares de cable Cat. 3 +) 10BASE-FL F= Fibra ptica

2.12 Microcontroladores

152

Un microcontrolador es un circuito integrado de alta escala de integracin. En el mercado existe una gran variedad de microcontroladores elaborados por diferentes fabricantes como Motorola, Zilog, SGS-Thomson, Intel, Microchip, Atmel entre otros. Cada uno de estos microcontroladores posee sus propias caractersticas; pero normalmente un microcontrolador esta compuesto por los siguientes componentes: Procesador o CPU (Unidad Central de Proceso). Memoria RAM para contener los datos. Memoria para el programa tipo ROM / PROM / EPROM/ EEPROM / FLASH Lneas de entrada salida para comunicarse al exterior. Diversos mdulos para el control de perifricos (temporizadores, puertos serie y paralelo, conversores anlogo digital, conversores digital anlogo, etctera). Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema. Es necesario que el diseador tome en cuenta una serie de factores como por ejemplo el costo, tambin si cuenta con herramientas necesarias para la implementacin de su sistema; adems, debe de elegir un microcontrolador que no quede corto en su sistema es decir que tenga los requerimientos que pide el diseo. 2.12.1 Microcontroladores de Microchip La empresa Microchip desarroll una gran cantidad de microcontroladores que para aplicaciones habituales (casi un 90%) la eleccin adecuada de un PIC es la mejor solucin, sin embargo, cabe constatar que dado a su carcter general, otras familias de microcontroladores son ms eficaces en aplicaciones especficas, especialmente si en ellas predomina una caracterstica concreta que en otras familias no est muy desarrollada. Las razones del porque los profesionales de la microelectrnica y la microinformtica escogen los PIC son las siguientes: Sencillez de manejo: Tienen un juego de instrucciones reducido; 35 en la gama media. Buena informacin fcil de conseguir y econmica. Precio: Su costo es comparativamente inferior al de sus competidores.

153

Poseen una elevada velocidad de funcionamiento. Buen promedio de parmetros: velocidad, consumo, tamao, alimentacin, cdigo compacto, etctera. Existe una gran variedad de herramientas hardware que permiten grabar, depurar, borrar y comprobar el comportamiento de los PIC. Diseo rpido. La gran variedad de los PIC permite elegir el que mejor responde a los requerimientos de la aplicacin.

2.12.2 Caractersticas relevantes de los microcontroladores PIC Arquitectura. La arquitectura del procesador sigue el modelo Harvard. En esta arquitectura, la CPU se conecta de forma independiente y con buses distintos con la memoria de instrucciones y con la de datos como se puede apreciar en la Figura 2.82. La arquitectura Harvard permite a la CPU acceder simultneamente a las dos memorias. Adems, propicia numerosas ventajas al funcionamiento del sistema.

Figura 2.82. Arquitectura Harvard del procesador.

Segmentacin. Se aplica la tcnica de segmentacin (pipe-line) en la ejecucin de las instrucciones. La segmentacin permite al procesador realizar al mismo tiempo la ejecucin de una instruccin y la bsqueda del cdigo de la siguiente. De

154

esta forma se puede ejecutar cada instruccin en un ciclo (un ciclo de instruccin equivale a cuatro ciclos de reloj). Las instrucciones de salto ocupan dos ciclos al no conocer la direccin de la siguiente instruccin hasta que no se haya completado la de bifurcacin. Todas las instrucciones se ejecutan en un ciclo de instruccin (4 ciclos de la seal de reloj); excepto las de brinco que ocupan 2 ciclos de instruccin. Formato de instrucciones.El formato de todas las instrucciones es de la misma longitud. Todas las instrucciones de los microcontroladores de la gama baja tienen una longitud de 12 bits. Las de la gama media tienen 14 bits y las de la gama alta 16 bits. Esta caracterstica es muy ventajosa en la optimizacin de la memoria de instrucciones y facilita enormemente la construccin de ensambladores y compiladores. Juego de Instrucciones. Procesador RISC (Computador de Juego de Instrucciones Reducido). Los modelos de la gama baja disponen de un repertorio de 33 instrucciones, 35 los de la gama media y casi 60 los de la alta. Todas las instrucciones son ortogonales. Cualquier instruccin puede manejar cualquier elemento de la arquitectura como fuente o como destino. Arquitectura basada en un banco de registros. Esto significa que todos los objetos del sistema (puertas de E/S, temporizadores, posiciones de memoria, etctera) estn implementados fsicamente como registros. Diversidad de modelos de microcontroladores con prestaciones y recursos diferentes. La gran variedad de los modelos de microcontroladores PIC permite que el usuario pueda seleccionar el ms conveniente para su proyecto. Herramientas de soporte potentes y econmicas. La empresa Microchip y otras que utilizan los PIC ponen a disposicin de los usuarios numerosas herramientas para desarrollar hardware y software. Son muy abundantes los programadores, los simuladores software, los emuladores en tiempo real, Ensambladores, Compiladores C, Intrpretes y Compiladores Basic, etctera.

155

La arquitectura Harvard y la tcnica de segmentacin son los principales recursos en los que se apoya el elevado rendimiento que caracteriza estos dispositivos programables.

2.12.3 Microcontrolador PIC16F877A El microcontrolador PIC16F877A se encuentra entre las gamas ms recientes y robustas en cuanto a aplicaciones de Microchip, es de gran alcance (ejecucin de la instruccin en 200 nanosegundos), fcil programacin (solamente 35 instrucciones), basado en arquitectura CMOS Flash, el microcontrolador cuenta con paquetes de 8-bits en un encapsulado de 40 pins y es compatible con los dispositivos de PIC16C5X, de PIC12CXXX y de PIC16C7X. El PIC16F877A ofrece 256 octetos de memoria de los datos de EEPROM, 2 comparadores, 8 canales del convertidor (DE ANALGICO A DIGITAL), 2 funciones de capture/compare/PWM. La Figura 2.83 muestra el encapsulado de este microcontrolador

Figura 2.83. Encapsulado del PIC16F877A

Maneja un puerto serial sncrono se puede usar como cualquier interfaz perifrica serial, SPI o I2C y un transmisor asincrnico universal del receptor (USART), adems de

156

soportar protocolos como el RS-485. Todas estas caractersticas lo hacen ideal para usos ms avanzados en automocin, industrial, aplicaciones en la electrnica y comunicaciones e innumerables usos del propio consumidor [21].

CAPTULO 3

157

MATERIALES Y MTODOS
3.1 Descripcin de la aplicacin Como se mencion en la introduccin de este proyecto, el objetivo de la misma fue hacer un anlisis de protocolos de comunicacin para establecer redes entre microcontroladores u otros dispositivos. Realizado este estudio, se decidi implementar el protocolo RS-232 (Puerto Serie) y el protocolo SPI (Serial Peripherical Interface). Cabe mencionar que la seleccin de estos protocolos se debi a su relativa facilidad de alcance e implementacin y dado que ste trabajo es en gran parte documental, no era necesario la utilizacin de otro protocolo ms robusto, ya que se aclar que la aplicacin seria sencilla y con la finalidad de comprobar la funcionalidad de alguno de los protocolos analizados Para llevar a cabo esta implementacin con el protocolo RS-232 se ide una interfase visual que mandar algn dato por el puerto serial de una computadora a un microcontrolador y este a su vez a otro microcontrolador. El dato que se enviar estara encargado de activar una carga elctrica presente en los micros. Para la utilizacin del protocolo SPI se pens en una intercomunicacin en anillo en donde un microcontrolador actuase como maestro y los otros como esclavos, en donde se comprobar su activacin mediante un push boton. Teniendo clara la idea de lo que se pretenda, decidimos dividirla en bloques o en etapas para su realizacin. Para la comunicacin RS-232 se determinaron los siguientes bloques: Bloque A: Un sistema de control compuesto por una PC la cual contendr una interfase visual creada en Lab-View, utilizando el puerto serial de la computadora de donde obtendremos la comunicacin RS-232 hacia el microcontrolador maestro. Bloque B: Establecimiento de la comunicacin serial (RS-232), de la PC hacia los dos microcontroladores. Bloque C: Montaje de las cargas elctricas a ser controladas por los microcontroladores esclavos que a su vez, sern controlados por el microcontrolador maestro.

158

Para la comunicacin SPI se utilizaron los siguientes bloques: Bloque D: Comunicacin SPI (Serial Peripherical Interface) del microcontrolador maestro hacia los esclavos. En la Figura 3.1 se muestra un diagrama de bloques en donde se puede apreciar la aplicacin con la comunicacin RS-232 y SPI.
Bloque B Com. Serial

Bloque A

Bloque C

Bloque D

Figura 3.1. Diagrama de bloques de la implementacin RS-232(a) y SPI(b).

3.2 Desarrollo del sistema de control (Bloque A) Dentro del bloque A, utilizamos la PC como base de control de todo el sistema, debido a que contiene al menos un puerto serie, fundamental para la implementacin del protocolo RS-232. Las especificaciones de este puerto se detallaron en el Marco Terico por lo que aqu solo vamos a describir la interfase visual, es decir, el programa diseado en Lab-View1.
1

Software creado por la empresa National Instruments lder en tecnologa de automatizacin virtual, para mayores detalles visitar su pgina www.digital.ni.com.

159

Lab-View es un software de programacin grfica para aplicaciones de medicin y automatizacin, debido a su gran nmero de herramientas, fcil manejo y programacin grfica amigable hizo muy fcil su implementacin. Dentro de este software ya existe la herramienta para establecer comunicacin serial, por lo que fue an ms sencillo el desarrollar esta interfase. En la Figura 3.2 se muestra los elementos generales de la interfase.

Figura 3.2. Diagrama en Lab-View.

On/Off: Este es el botn que activa el sistema. Puerto: Este indicador nos permite seleccionar el puerto de la PC (COM1, COM2, etc). Bytes a leer: Con este control colocamos el tamao de bytes que permite mandar y recibir Lab-View, por default son 8 bytes el tamao permitido.

160

Esclavo: Con este control seleccionamos el numero de esclavo que deseamos activar. Respuesta: Con este indicador sabemos si el dato enviado por Lab-View se recibi adecuadamente y qu dato es. Cuando transmitimos la letra A como respuesta obtenemos un 1 que significa que prendimos la carga 1, adaptada al PIC 1; si transmitimos una B obtenemos un 2 que indica que se activo la carga 2 del PIC 2, si transmitimos una C tenemos como respuesta una T que significa que activamos las dos cargas y si mandamos cualquier otro dato diferente a estos, obtenemos una N que indica que no se detecto ese dato. En la Figura 3.3 se muestran los elementos generales de la programacin de la interfase. Esta funcin inicializa el puerto serial donde se hacen las configuraciones necesarias para su funcionamiento, entre ellas esta la Seleccin de puerto, Velocidad de transmisin (9600 baudios) la cual es asignada por default, la paridad, una lnea para sincronizar el tiempo de envi y de respuesta, entre otras funciones, pero en este caso solo es necesario colocar un control para la seleccin del puerto, otro para el control de errores de salida y otro para interactuar con el comando de escritura. Estos ltimos dos controles slo se ven en el diagrama de programacin. Esta funcin escribe l o los datos en el dispositivo especificado, en nuestro caso el microcontrolador, independientemente de que sean sincronos o asncronos. Contiene los datos ledos en el dispositivo (microcontrolador), con esta funcin podemos verificar si la informacin que recibe el microcontrolador realmente es la deseada.

Esta funcin es un terminador de sesin o del sistema (Fin).

161

Lnea de Interaccin entre comandos

Error de

salida Error de entrada

Error de

salida

Error de entrada

Error de

salida

Error de entrada

Case 1

Case 2

While Loop

Figura 3.3. Diagrama de la programacin de la interfase visual.

Case 1. Dentro de este case, que es semejante al utilizado en la mayoras de los lenguajes de programacin, el dato mandado se va a escribir, mientras no se detecte ningn error Case 2. Dentro de este case los datos podrn ser ledos, siempre y cuando no se haya producido ningn error While Loop: Dentro de esta estructura se encuentran los cases anteriores y es de donde se toma el botn de On/Off, lo cual significa que mientras el While Loop se encuentre a 1 (encendido) el sistema estar funcionando 3.3 Desarrollo del Bloque B Esta etapa fue la del diseo de la comunicacin serial, lo que en realidad fue la implementacin del protocolo RS-232. En un inicio se pens que como los niveles lgicos

162

TTL que salen del microcontrolador (5 V) no son compatibles con los niveles lgicos del puerto serial (12V), debamos introducir en este diseo un puente (MAX232) que nos tradujera los datos del micro al puerto y viceversa. Esto hubiera sido necesario si por ejemplo hubiramos utilizado el PIC 16F84, el cual no cuenta con un USART (Universal Asynchronous Receiver/Transmitter) integrado dentro de su encapsulado y que mediante la programacin correcta permite realizar la conversin de niveles lgicos, a su vez que permite la transmisin y recepcin de informacin. Los parmetros que se deben considerar para establecer la comunicacin va puerto serial son: Velocidad de transmisin: 9600 bps Envo con paridad par Envo con 1 bit de parada Tamao del carcter: 8 bits

PC

Figura 3.4. Esquema de interconexin fsica de los perifricos.

Bsicamente la interconexin fsica entre la PC y los Microcontroladores es sencilla, ya que slo se requiere conectar la linera de Rx <2> del conector DB9 del cable serial a la Tx <25> del microcontrolador y la lnea Tx <3>del conector serial a la Rx<26> del microcontrolador, as mismo conectar la lnea de seal de tierra del conector serial <5>.

163

Esto se realiza para intercomunicar la PC con el PIC1, y tan solo se requiere conectar las lneas Tx <25> del PIC 1 con la Rx <26> del PIC 2 y la lnea Tx <25> del PIC2 con la Rx <26> para intercomunicarlos va serie. Esto se puede apreciar mejor en la Figura 3.4. 3.3.1 Comunicacin Serie Asncrona Los PIC 16F87X contienen un mdulo MSSP con dos puertas para la comunicacin serie sncrona, es decir, con seal d reloj. Adems, tambin disponen de un mdulo USART capaz de soportar la comunicacin serie, sncrona y asncrona. El USART, tambin llamado SCI (Serial Comunications Interface), puede funcionar como un sistema de comunicacin full duplex o bidireccional asncrono adaptndose a multitud de perifricos y dispositivos que transfieren informacin de esta forma, tales como el monitor CRT o el ordenador PC. Tambin puede trabajar en modo sncrono unidireccional o half duplex para soportar perifricos como memorias, conversores, etc. En la forma de comunicacin serie asncrona, se usa la norma RS-232, donde cada palabra de informacin de datos se enva independientemente de los dems. Suele constar de 8 a 9 bits y van precedidos por un bit de START (inicio) y detrs de ellos se coloca un bit de STOP (parada), de acuerdo con las normas del formato estndar NRZ (NonReturn-toZero). Ver Figura 3.5. Los bits se transfieren a una frecuencia fija y normalizada. Los cuatro bloques que configuran la arquitectura del USART, en modo asncrono, son: 1. Circuito de muestreo 2. Generador de baudios 3. Transmisor asncrono 4. Receptor asncrono El circuito de muestreo acta sobre la patita RC7/RX/DT, que es por donde se recibe el bit de informacin o control y se encarga de muestrear tres veces su valor, para decidir ste por mayora.

164

Figura 3.5. En el protocolo de comunicacin asncrono, cada palabra de informacin o dato consta de 8 o 9 bits, estando precedidos pro un bit de Inicio y le sigue un bit de Parada. Los bits se transfieren al ritmo de la frecuencia de reloj establecida.

3.3.2 Generador de baudios En el protocolo asncrono RS-232-C, las frecuencia en baudios (bits por segundo) a la que se realiza la transferencia se debe efectuar a un valor normalizado: 330, 600, 1,200, 2,400, 4800, 9,600, 19,200, 38,400, etc. Para generar esta frecuencia, el USART dispone de un Generador de Frecuencia en Baudios, BRG, cuyo valor es controlado por el contenido grabado en el registro SPBRG. Adems del valor X cargado en el registro SPBRG, la frecuencia en baudios del generador depende del bit BRGH del registro TXSTA<2>. En el caso de que BRGH sea 0 se trabaja en baja velocidad y si BRGH=1 en alta velocidad. Segn este bit se obtendr el valor de una constante K necesaria en la determinacin de la frecuencia de funcionamiento. Frecuencia en Baudios = FOSC /(K (X + 1)) X es el valor cargado en el registro SPBRG Si BRGH = 0, baja velocidad y K = 64 Si BRGH = 1, alta velocidad y K = 16 de donde se desprende que:

165

X = FOSC / Frecuencia / K 1 En la Tabla 3.1 se presenta la estructura interna junto a otros datos de inters de los registros que intervienen en la determinacin de la frecuencia en baudios a la que transfiere informacin el USART.
Tabla 3.1. Caractersticas relevantes de los registros que intervienen en la determinacin de la frecuencia en baudios de la transferencia de informacin en el modo asncrono del USART.
DIRECCIN NOMBRE BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 VALOR EN POR. BOR 0000-010 0000 000X 0000 0000 VALOR EN EL RSTO DE RESETS 0000-010 0000 000X 0000 0000

98h 18h 99h

TXSTA RCSTA SPBRG

CSRC SPEN

TX9 RX9

TXEN SREN

SYNC ------BRGH CREN ADDEN FERR Registro Generador de Baudios

TRMT OERR

TX9D RX9D

3.3.3 Transmisor Asncrono En la Figura 3.6, se muestra un esquema simplificado de la comunicacin entre un USART transmisor y otro receptor, contenidos en sus respectivos microcontroladores. El dato que se desea transmitir por el USART transmisor de la Figura 3.6 se deposita en el registro TXREG y a continuacin se traspasa al registro de desplazamiento TSR, que va sacando los bits secuencialmente y a la frecuencia establecida. Adems, antes de los bits del dato de informacin incluye un bit de Inicio y despus de sacar todos los bits aade un bit de Parada. El USART receptor recibe, uno a uno, los bits, elimina los dos de control y los de informacin, una vez que han llenado el registro de desplazamiento RSR los traslada automticamente al registro RCREG, donde quedan disponibles para su posterior procesamiento.

166

Figura 3.6. Esquema simplificado del conexionado entre dos mdulos USART funcionando en modo asncrono.

En la Figura 3.7 se presenta el diagrama por bloques de la seccin transmisora del USART. El ncleo est constituido por el registro de desplazamiento TSR, que obtiene el dato desde el registro TXREG y luego lo va desplazando y sacando bit a bit, en serie, por la patita RC6/TX/CK. El primer bit que sale es el de menos peso. El dato a transferir se carga por software en TXREG y se transfiere al TSR en cuanto se haya transferido el bit de Parada del dato anterior. La transferencia entre los dos registros se realiza en un ciclo y entonces el

167

sealizador TXIF se pone a 1, para advertir que el registro de transmisin se ha vaciado.

Figura 3.7. Diagrama por bloques de la seccin de transmisin del USART en modo asncrono.

Tambin en este momento puede producirse una interrupcin si se ha posibilitado programando el bit TXIE = 1 en el registro PIE<4>. Cuando se escribe otro dato sobre TXREG, el sealizador TXIF se pone a 0. El bit TRMT sirve para indicar el estado del registro TSR y vale 1 cuando est vaco. La secuencia de pasos a seguir para implementar una transmisin en el USART es la siguiente: 1. Configurar las lneas RC6/TX/CK como salida y RC7/RX/DT como entrada. 2. Poner SYNC = 0 y SPEN = 1 para activar el USART en modo asncrono. 3. Si se desea trabajar con interrupcin, poner TXIE = 1, adems de habilitar las interrupciones en general. 4. Si el dato consta de 9 bits, en lugar de los 8 tpicos, poner el bit TX9 = 1. El noveno bit se colocar en TX9D (TXSTA).

168

5. Se carga el valor X adecuado en el registro SPBRG, para producir la frecuencia de trabajo deseada. Hay que controlar el bit BRGH (alta y baja velocidad). 6. Activar la transmisin con TXEN = 1. El bit TXIF tendr valor 1, ya que TXREG se encuentra vaco. 7. Cargar en TXREG el dato a transferir. Comienza la transmisin.
En la Tabla 3.2 se ofrecen las caractersticas ms relevantes de los registros asociados con la transmisin y en la Figura 3.8 se especifica la distribucin y asignacin de funciones de los bits del registro TXSTA. Tabla 3.2. Caractersticas ms relevantes de los registros asociados con la transmisin asncrona.
DIRECCIN NOMBRE BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 VALOR EN POR. BOR 0000-000 0000-010 0000-010 0000 0000 0000 000X 0000 0000 VALOR EN EL RSTO DE RESETS 0000-000 0000-000 0000-010 0000 0000 0000 000X 0000 0000

8Ch 0Ch 98h 19h 18h 99h

PIE1 PIR1 TXSTA TXREG RCSTA SPBRG

PSPIE PSPIF CSRC SPEN

ADIE ADIF TX9 RX9

TXIEE SSPIE CCP1IE TXIF SSPIE CCP1IE SYNC ------BRGH Registro Generador del USART SREN CREN ADDEN FERR Registro Generador de Baudios

RCIF RCIF TXEN

TMR2IE TMR2IE TRMT OERR

TMR1IE TMR1IE TX9D RX9D

CSRC

TX9

TXEN

SYNC

-------

BRGH

TRMT

TX9D

Figura. 3.8. Asignacin de funciones de los bits del registro TXSTA para el control de la seccin transmisora del USART.

CSRC. Bit de seleccin del reloj. Modo asncrono: no influye. Modo sincrono: 1 = Modo maestro (reloj generado internamente desde BRG) 0 = Modo esclavo (reloj generado por un fuente externa) TX9. Habilita el bit 9 de transmisin. 1 = Selecciona transmisin de 9 bits 0 = Selecciona transmisin de 8 bits

169

TXEN. Activa la transmisin 1 = Transmisin activada 0 = Transmisin desactivada SYNC. Bit de seleccin del modo del USART. 1 = Modo sincrono 0 = Modo asncrono BRGH. Bit de seleccin de la velocidad de baudios. Modo asncrono: 1 = Alta velocidad 0 = Baja velocidad Modo sincrono: no utilizado TRMT. Bit de estado del registro de desplazamiento de transmisin. 1 = TSR vaci 0 = TSR no vaci TX9D. Bit 9 del dato a transmitir (puede ser el bit de paridad). 3.3.4 Receptor Asncrono Los datos se reciben en serie, bit a bit, por la patita RC7/RX/DT y se van introduciendo secuencialmente en el registro de desplazamiento RSR (Figura 3.6), que funciona una frecuencia 16 veces mas rpida que la de trabajo. Cuando el dato consta de 9 bits hay que programar el bit RX9 = 1 y el noveno bit de informacin se colocara en el bit RX9D del registro RCSTA. En la Figura 3.9 se puede ver el control sobre el noveno bit con las puertas de control y las seales que se aplican (ADDEN= 1). Cuando CREN = 1 en el registro RCSTA<4>, se habilita la recepcin.

170

Cuando un procesador maestro intenta enviar informacin a uno de los esclavos, primero enva un byte de direccin que identifica al destinatario. El byte de direccin se identifica porque el bit RX9D que llega vale 1. Si el bit ADDEN = 1 en el esclavo se ignoran todos los bytes de datos. Pero si el noveno bit que se recibe, vale 1, quiere decir que se trata de una direccin y el esclavo provocara una interrupcin, y se transferir el contenido del registro RSR al buffer de recepcin. Tras la interrupcin, el esclavo deber examinar la direccin y si coincide con la suya poner ADDEN = o para poder recibir datos del maestro. Si ADDEN = 1 como los datos son ignorados, el bit de parada no se carga en RSR, por lo que este hecho no produce interrupcin. Los pasos a seguir en el modo de recepcin son los siguientes: 1. Se carga con el valor X al registro SPBRG para trabajar con la frecuencia deseada, controlando, adems, el valor BRGH. 2. Se habilita el USART en modo asncrono con SPEN = 1 y SYNC = 0. 3. Si se desea que se genere una interrupcin con la llegada del bit Parada, se pone RCIE = 1, adems de habilitar las interrupciones en general. 4. Poner RX9 = 1 para permitir la recepcin del bit 9. 5. Para detectar la direccin, poner ADDEN = 1. 6. Se habilita la recepcin poniendo CREN = 1. 7. Al completarse la recepcin RCIF se pondr a 1 y se produce una interrupcin si se haba permitido. 8. Se lee el registro RCSTA y se averigua si se ha producido algn error. 9. Leer lo 8 bits del registro RCREG para determinar si el dispositivo ha sido el direccionado. 10. Si se ha producido algn error, poner CREN = 0. 11. Si ha sido direccionado el dispositivo, poner ADDEN = 0 para permitir la recepcin de la informacin.

171

En la Figura 3.10 se muestra la estructura interna y la asignacin de funciones de los bits del registro RCSTA. En la Tabla 3.3 se muestran las caractersticas ms relevantes de los registros que intervienen en la recepcin asncrona de datos en el USART.

Figura 3.9. Diagrama de bloques de la seccin receptora del USART.

SPEN

RX9

SREN

CREN

ADDEN

FERR

OERR

RX9D

Figura 3.10. Registro RCSTA para el control de la seccin receptora del USART, en modo asncrono.

SPEN. Habilita el puerto serie. 1 = Puerto serie habilitado (se configuran las patitas RC7/RX/DT y RC6/TX/CK). 0 = Puerto serie deshabilitado. RX9. Habilita el puerto serie. 1 = Selecciona recepcin de 9 bits. 0 = Selecciona recepcin de 8 bits.

172

SREN. Configura la recepcin sencilla. Modo asncrono: no influye. Modo sincrono maestro: 1 = Habilita recepcin sencilla. 0 = Deshabilita recepcin sencilla. Modo sincrono esclavo: no se utiliza. CREN. Configura la recepcin continua. Modo asncrono: 1 = Habilita modo de recepcin continua 0 = Deshabilita recepcin continua Modo sincrono: 1 = Habilita recepcin continua hasta que el bit CREN es borrado. 0 = Deshabilita recepcin continua. ADDEN. Deteccin de direccin. Modo asncrono con 9 bits (RX9 = 1): 1 = Activa la deteccin de direccin, activa la interrupcin y descarga el buffer de recepcin al activarse RSR<8>. 0 = Desactiva la deteccin de direccin, todos los bits son recibidos y el bit 9 puede ser utilizado como bit de paridad. FERR. Bit de error de trama. 1 = Error de trama (puede ser actualizado leyendo el registro RCREG y recibir el siguiente dato vlido. 0 = No hay error de trama. OERR. Bit de error de sobrepasamiento.

173

1 = Error de sobrepasamiento (puede ser borrado escribiendo un 0 en el bit CREN). 0 = No hay error de sobrepasamiento. RX9D. Bit 9 del dato recibido (puede ser el bit de paridad) [23].
INICIO

DIRECCIN

Tabla 3.3. Caractersticas de inters de los registros que intervienen en la seccin del USART en Inicializacin de modo asncrono. Variables y
NOMBRE BIT 7 BIT 6 BIT 5

configuracin de Registros

BIT 4

BIT 3

BIT 2

BIT 1

BIT 0

VALOR EN POR. BOR

8Ch 0Ch 98h 18h 1Ah 99h

PIE1 PIR1 TXSTA RCSTA RCREG SPBRG

PSPIE ADIE RCIF TXIEE SSPIE PSPIF ADIF RCIF TXIF SSPIE CSRC TX9 TXEN SYNC Declaracin de------SPEN RX9 SREN CREN ADDEN Registro de Recepcin entradas y salidas del USART Registro Generador de Baudios digitales

CCP1IE CCP1IE BRGH FERR

TMR2IE TMR2IE TRMT OERR

TMR1IE TMR1IE TX9D RX9D

0000-000 0000-010 0000-010 0000 000X 0000 0000

VALOR EN EL RSTO DE RESETS 0000-000 0000-000 0000-010 0000 000X 0000 0000

La codificacin del programa para el PIC1 y para el PIC2 se puede ver en el Apndice A. La Figura 3.11 muestra el diagrama de flujo para el PIC 1 y la Figura 3.12 muestra el interrupciones diagrama para el PIC 2.
configuracin del modo SCI (Comunicacin Serial) Activacin de las

Si Prende Foco 1

Dato esclavo 1 = 0

No

Si Espera siguiente dato Prende Foco 2

Dato esclavo 2 = 0

Espera siguiente dato

No

Si Prende todos los focos

Dato esclavo 3 = 0

No Limpia puertos Apaga todo los 174 focos

Espera siguiente dato

INICIO Inicializacin de Variables y configuracin de Registros

Declaracin de entradas y salidas digitales

Activacin de comunicacin serial para el PIC 1. Figura 3.11. Diagrama de flujo de lalas interrupciones

configuracin del modo SCI (Comunicacin Serial)

Si

Dato Foco 2 = 0

No

Prende Foco 2

Espera siguiente dato

Si Prende todos los focos

Dato TODOS = 0

No

Limpia puertos Apaga todo 175 los focos

Espera siguiente dato

Figura 3.12. Diagrama de flujo de la comunicacin serial para el PIC 2.

3.4 Desarrollo del Bloque C En esta etapa desarrollamos la interfase de potencia, es decir, el arreglo necesario para prender dos cargas elctricas que vienen directamente de la corriente alterna (120 Volts), pero acoplndolas a los 5 volts con lo que trabajan los microcontroladores. Las cargas se distribuyeron una por cada microcontrolador. El arreglo de la interfase de potencia se llevo acabo utilizando un optoacoplador MOC 3010, un Triac 2N6073, una resistencia de 330 ohms y otra de 1 k, un cable para 120 A.C. y un foco. La Figura 3.13 muestra la interconexin de este circuito. El triac es un dispositivo semiconductor de tres terminales que se usa para controlar el flujo de corriente promedio a una carga, con la particularidad de que conduce en ambos sentidos y puede ser bloqueado por inversin de la tensin o al disminuir la corriente por debajo del valor de mantenimiento. El triac puede ser disparado independientemente de la

176

polarizacin de puerta, es decir, mediante una corriente de puerta positiva o negativa. Cuando el triac conduce, hay una trayectoria de flujo de corriente de muy baja resistencia de una terminal a la otra, dependiendo la direccin de flujo de la polaridad del voltaje externo aplicado. Cuando el voltaje es ms positivo en MT2, la corriente fluye de MT2 a MT1 en caso contrario fluye de MT1 a MT2. En ambos casos el triac se comporta como un interruptor cerrado. Cuando el triac deja de conducir no puede fluir corriente entre las terminales principales sin importar la polaridad del voltaje externo aplicado, por tanto, acta como un interruptor abierto. Debe tenerse en cuenta que si se aplica una variacin de tensin importante al triac (dv/dt) an sin conduccin previa, el triac puede entrar en conduccin directa. Un optoacoplador de potencia consiste en un circuito electrnico, cuyo principal objetivo es aislar el circuito de la parte de potencia, contiene una fuente de luz y un detector fotosensible separados una cierta distancia y sin contacto elctrico entre ellos. La clave del funcionamiento de un optoacoplador est en el emisor, un LED, y en el detector fotosensible a la salida. La energa de luz proporcionada por el emisor est situada generalmente en la regin de los infrarrojos o muy cercana a ella [22].

PIC

330 ohms

MOC 3010

1K 2N6073

+ 120 AC -

Figura 3.13. Interconexin de la interfase de potencia. Como se aprecia en la Figura 3.14, el PIC es el que activa la carga, pero esto no pudiera suceder sin la intervencin del Triac, el cual es el que retiene la corriente alterna y no la deja pasar, evitando as un corto circuito. El Moc acta como un switch y es el encargado de dejar pasar los 5 volts provenientes del micro cuando el circuito se abre. La Figura 3.9 muestra el Layout de este circuito.

177

Figura 3.14. Layout del circuito. 3.5 Desarrollo del Bloque D En esta etapa se desarrolla el protocolo o comunicacin SPI a travs de la actuacin de un microcontrolador maestro y tres esclavos, controlndolos por medio de tres push boton, es decir, cada push boton ser encargado de activar la comunicacin entre el microcontrolador maestro y un esclavo (por ejemplo: push boton 1 activa comunicacin SPI de esclavo 1 y as sucesivamente). En los PIC16F87X, Microchip ha implantado en el silicio de sus chips el mdulo MSSP (Master Synchronous Serial Port), que es el que proporciona la interfaz de comunicacin de los microcontroladores con otros microcontroladores y otros dispositivos o perifricos. De esta forma, disponemos de algunos pines del puerto C, que correctamente programadas sirven para manejar directamente la comunicacin serie. Lo ms importante de este mdulo es que admite dos de las alternativas ms usadas en la comunicacin serie sncrona, SPI e I2C. El mdulo MSSP consta bsicamente de cuatro registros: SSPSR, que es un registro de desplazamiento que transforma la informacin serie en paralelo y viceversa, el registro SSPBUF, que acta como buffer de la informacin que se recibe o transmite, el SSPCON que es un registro de control y el SSPSTAT que acta como registro de estatus El funcionamiento del mdulo MSSP es sencillo. Para la transmisin, el byte que se requiere transmitir se carga en el registro SSPBUF a travs del bus de datos interno y automticamente se pasa al registro SSPSR, el cual va desplazando bit por bit el dato, colocndolo ordenadamente hacia el exterior al ritmo de los pulsos de reloj.

178

En recepcin, los bits van entrando al ritmo del reloj por un pin y se desplaza en el SSPRS hasta que lo llenan, en donde la informacin se traspasa al registro SSPBUF, donde queda lista para su lectura. Este doble almacenamiento del dato recibido permite iniciar la transmisin de otro dato antes de que haya terminado de leer el dato anterior.

Figura 3.15. Estructura bsica del mdulo MSSP.

Cuando se han recibido 8 bits durante la recepcin en SSPSR, se traspasa dicha informacin a SSPBUF y entonces el bit sealizador BF (Buffer Full) se pone a 1, al igual que el flag de interrupcin SSPIF. Cualquier escritura en el SSPBUF se ignora durante una transferencia de informacin y se sealiza poniendo a 1 el bit WCOL, que advierte de ese tipo de colisiones. Recae en la responsabilidad del programador pasar el bit WCOL a 0 una vez completada la escritura en SSPBUF. La Figura 3.15 muestra un esquema bsico sobre la estructura interna del mdulo MSSP. Como se mencion en las caractersticas del SPI, utiliza tres lneas de comunicacin: 1. SDO (Serial Data Out) Salida de datos en serie 2. SDI (Serial Data In) Entrada de datos en serie

179

SCK (Serial Clock) Reloj de sincronizacin En nuestro caso como trabajamos con esclavos fue necesario utilizar una cuarta lnea de control, es decir, el pin SS# (seleccin de esclavos) se activa a tierra. Fsicamente, la interconexin de los microcontroladores se puede apreciar en la Figura 3.16 en donde la lnea SDO del maestro se corresponde con las SDI de los esclavos y la lnea SCK que es por la que pasan los pulsos de reloj van del maestro hacia todos los esclavos, ya que es el encargado de generar y controlar la sincronizacin.

Figura 3.16. Comunicacin SPI entre un PIC maestro y tres esclavos.

El PIC que asignamos como maestro se programa la lnea RC3/SDO como salida, la lnea RC4/SDI como entrada y la lnea RC5/SCK tambin como salida. En los micros que actuaron como esclavos la lnea RC5/SCK se configur como entrada y la RA5/SS se conecta a tierra, esto para indicar que est en modo esclavo. Para iniciar el funcionamiento en modo SPI, fue necesario establecer las condiciones de trabajo programando los bits <5-0> del registro SSPCON y los <7:6> del registro SSPSTAT, para determinar las siguientes especificaciones: 1. En el microcontrolador en modo maestro, SCK es declarada como salida. 2. En los microcontroladores esclavos, SCK se declara como entrada 3. Determinar la polaridad de la seal de reloj 4. Momento de la toma de muestra del dato

180

5. Flanco del reloj activo 6. Rango de trabajo del reloj 7. Seleccionar el modo esclavo (SS) En la Figura 3.17 se presenta la distribucin y nomenclatura de los bits del registro SSPSTAT, que ocupa la direccin 94h y que es uno de los que seleccionan las caractersticas mencionadas. SMP CKE D/A# P S R/W# UA BF

Figura 3.17. Estructura interna de los bits del Registro SSPSTAT para la configuracin en modo SPI.

SMP. CKE. Con este bit se selecciona el flanco de reloj activo. Si el bit CKP = 0 con el registro SSPCON significa que el estado de inactividad en la seal de reloj es el bajo y entonces si CKE = 1 el dato se transmite en el flanco ascendente de SCK y si CKE = 0 en el flanco descendente. Si CKP = 1, lo que supone que es el estado alto de inactividad en la seal de reloj, cuando CKE = 1 el dato se transmite en el flanco descendente de SCK y si CKE = 0 en el ascendente BF. Indica cuando vale 1 que el registro SSPBUF est lleno. En la Figura 3.18 se presenta la distribucin de los bits del registro SSPCON, que est ubicado en la direccin 14h y sirve para programar el mdulo MSSP en los dos modos que puede trabajar. El bit 7 del registro SSPSTAT determina el momento de muestreo del bit de entrada En modo maestro SPI, SMP = 1 el dato de entrada es muestreada al final del impulso de reloj y si vale 0 en la mitad del mismo. En modo esclavo el bit SMP no tiene cometido y debe valer 0.

181

WCOL

SSPOV

SSPEN

CKP

SSPM3

SSPM2

SSMP1

SSPM0

Figura 3.18. Estructura interna de los bits del Registro SSPCON.

SSPM3-SSPM0. Con los cuatro bits de menos peso del registro SSPCON se establece el modo de trabajo del mdulo MSSP. SSPM3-0 0000 0001 0010 0011 0100 0101 CKP. Determina la polaridad o el estado de inactividad del reloj. En el modo SPI si CKP = 1 dicho estado de inactividad es el alto y si CKP = 0 es el bajo SSPEN. Bit de activacin del mdulo MSSP. Si SSPEN = 1 queda activada la puerta serie en modo SPI y las patitas SCK, SDO y SS# realizan la labor correspondiente. Si SSPEN = 0 no funciona el modo SPI y las patitas anteriores se utilizan para E/S digitales. SSPOV. Al ponerse a 1 indica un sobrepasamiento, lo que significa que la informacin recibida en SSPSR y que ha pasado al SSPBUF, cuando llega otro byte al SSPSR an no se ha ledo y se perder la informacin existente en el SSBUF. WCOL. MODO DE TRABAJO Modo maestro SPI, con reloj a Fosc / 4 Modo maestro SPI, con reloj a Fosc / 16 Modo maestro SPI, con reloj a Fosc / 64 Modo maestro SPI, con reloj igual a la salida del TMR2/2 Modo maestro SPI, con reloj igual a la patita SCK y SS a nivel bajo Modo maestro SPI, con reloj igual a la patilla SCK, SS# no activo y libre para usarse como E/S.

182

Cuando este bit se pone a 1 indica que se ha producido una colisin. El dato a transmitir que se ha almacenado en el SSPBUF se traspasa al SSPSR para irlo sacando en serie. Cuando el SSPBUF carga en el SSPSR un byte sin haber dado tiempo de salir [23]. Estas conexiones son solamente para la seleccin del modo SPI; una vez

establecidos estos parmetros en la programacin del PIC, el siguiente paso fue establecer las instrucciones necesarias para que a partir del microcontrolador se estableciera dicha comunicacin asignndole a cada push boton un valor determinado para que iniciara la transmisin en SPI de determinado microcontrolador esclavo con el maestro. La Figura 3.19 muestra el diagrama de flujo de la programacin de esta transmisin. La Figura 3.20muestra el diagrama de flujo de la configuracin de SPI en modo maestro y la Figura 3.21 muestra la configuracin de SPI en modo esclavo. El cdigo completo tanto del PIC maestro como el de los esclavos se muestra en el Apndice A.

1 Maestro (SPI) 2 Esclavo (SPI)

Si Maestro transmite Dato

Push Boton = 1 No Push Boton = 2 Si

Esclavo 1 recibe Dato

Maestro transmite Dato

No

Push Boton = 3 Si

Esclavo 1 transmite Dato

Esclavo 2 recibe Dato

Maestro transmite Dato

Esclavo 2 transmite Dato

Esclavo 3 recibe Dato Esclavo 3 transmite Dato

183

Figura 3.19. Diagrama de flujo del modo SPI.

INICIO Inicializacin de Variables y configuracin de Registros

Declaracin de entradas y salidas digitales

Activacin de las interrupciones

configuracin del modo SPI como Maestro

Maestro transmite Dato

Esclavo 1 recibe Dato

Esclavo 2 recibe Dato

Esclavo 3 recibe Dato Esclavo 3 transmite Dato

184

Esclavo 1 transmite Dato

Esclavo 2 transmite Dato

Figura 3.20. Diagrama de flujo del Modo SPI como Maestro.

INICIO Inicializacin de Variables y Configuracin de Registros

Declaracin de entradas y salidas digitales

Activacin de las interrupciones

Configuracin del modo SPI como Esclavo

Maestro transmite Dato

Esclavo 1 recibe Dato

Esclavo 2 recibe Dato

Esclavo 3 recibe Dato Esclavo 3 transmite Dato

185

Esclavo 1 transmite Dato

Esclavo 2 transmite Dato

Figura 3.21. Diagrama de flujo del Modo SPI como Esclavo.

CAPTULO 4 RESULTADOS
4.1 Resultados Los resultados obtenidos en la elaboracin de este documento afortunadamente fueron los esperados y los propuestos en el objetivo de este proyecto, el anlisis de 10 protocolos para la interconexin de microcontroladores u otros dispositivos y comprobar el funcionamiento de dos de estos protocolos, los cuales fueron el RS-232 y SPI. Con respecto al anlisis se logr reunir bastante informacin acerca de estos protocolos, la suficiente como para saber desde aspectos bsicos hasta funcionamientos e implementaciones, situacin que nos deja satisfechas al cumplir con el propsito de crear un buen marco de referencia en cuanto a protocolos se refiere, para futuras aplicaciones. La aplicacin del protocolo RS-232 resulto sencilla en cuanto a hardware se refiere, gracias a la investigacin que se plantea el Marco Terico acerca de este estndar pudimos conocer sus especificaciones fsicas, elctricas y mecnicas lo cual nos llevo a no tener problemas en cuanto a conexin y cableado fsico de la comunicacin. Sin embargo, durante el desarrollo de la implementacin nos topamos con detalles como la sincronizacin de los tiempos tanto de la transmisin como en la recepcin, lo que nos originaba no tener una correcta comunicacin o no la que se esperada. Otro detalle muy importante fue la confusin que se tuvo al momento de disear la comunicacin serial, ya que se quiso usar el circuito MAX232 para cambiar los niveles

186

lgicos TTL de la PC al micro, cuando desde el momento en que configuramos la USART ya no es necesario el uso de este puente. Pero este error se rectifico y solo fue necesario el cable serial conectado por un lado a la PC y por el otro al microcontroladores Por su parte en lo que respecta al protocolo SPI los resultados tambin fueron satisfactorios, en cuanto a establecer la comunicacin entre el PIC maestro y los PICs esclavos, pero aqu cabe mencionar que se tuvieron varios problemas en el momento de programar el PIC, ya que a nuestro punto de vista, la programacin de este PIC result un poco confusa; y el estar cambindose de banco constantemente para la activacin o desactivacin de bits de los registros usados, nos caus mucha confusin. Aparte que los tiempos de transmisin en este protocolo resultaron muy difciles de estimar, por lo que fue imposible determinar en que momento exactamente se transmita y se reciba el dato, de hecho en la documentacin de este protocolo mencionaba precisamente este detalle del protocolo SPI, ya que al no contar con un flujo de reconocimiento de datos ni el mismo maestro reconoca cuando tenia esclavos conectados y mucho menos cuando, cuando y a donde mandaba los datos. Como resultados finales mostramos en la tabla 3.1 las caractersticas principales de los protocolos analizados.
Tabla 3.4. Resumen caracterstico de los protocolos de comunicacin.

187

4.2 Conclusiones Con la realizacin de este proyecto podemos concluir que este anlisis no solo sirvi para conocer a detalle las especificaciones ms importantes de algunos de los protocolos de comunicacin, sino tambin para darnos cuenta el alcance de sus aplicaciones e implementaciones. Mencionamos algunos protocolos porque a pesar de que en este trabajo se hace referencia a 10 de ellos exclusivamente, no son los nicos y conforme la tecnologa avanza los requerimientos van aumentando y esto hace que nuevos protocolos se vayan formando. As mismo, nos dimos cuenta a lo largo de la investigacin que no nos equivocamos al hacer la seleccin de los protocolos a documentar, ya que aparte de ser los ms utilizados y comunes dentro del rea de la electrnica, las comunicaciones e industria, nos permiti reunir en un solo documento informacin de protocolos sencillos pero muy usados como RS-232 o 1-Wire, protocolos que permiten grandes distancias y conexiones robustas como RS-485 o CAN, protocolos para interconexiones internas a corto alcance como SPI o I2C, protocolos de uso casi mundial como Ethernet y protocolos de tecnologas inalmbricas como Bluetooth o Wi-Fi.

188

En trminos generales logramos reunir informacin suficiente que sirviera de gua para el conocimiento de los protocolos analizados y de esta forma poder selecciona el ms adecuado segn las aplicaciones a desarrollara o simplemente que llenen las expectativas que estemos buscando. 4.3 Limitaciones Dentro de las limitaciones con las que nos encontramos durante la realizacin de este documento, bsicamente fueron un tanto econmicas, ya que al principio se pens realizar la aplicacin con el protocolo RS-485, pero para utilizarlo haba que utilizar un convertidor de RS-232 a RS-485 y tal convertidor tenia un costo un poco alto y el tiempo de entrega era un poco largo. Igualmente se quera implementar un protocolo inalmbrico como Wi-Fi o Bluetooth pero como vimos en las especificaciones de estos protocolos, es necesario estar en el rango de frecuencia en el que operan, adquirir en el caso de Bluetooth el chip adaptador y en caso de Wi-Fi contar con un Punto de Acceso, lo cual tambin tiene un costo un poco elevado. Dado la finalidad de este proyecto y de la aplicacin, no era necesario hacer grandes inversiones, bastaba con hacer uso de los recursos con los que se tena fcil acceso y se pudiera trabajar sin ningn problema. Otro punto dentro del desarrollo de este proyecto que consideramos como limitante es el hecho de la existencia de otros protocolos, no solo los documentados y expuestos en el Marco Terico. Existen otros tipos de protocolos cuyas aplicaciones se enfocan en otras reas como por ejemplo la Domtica (Casas Inteligentes) y nos hubiera gustado tambin documentarlas pero el tiempo no hubiera sido suficiente. 4.4 Recomendaciones Las recomendaciones que proponemos las basamos precisamente de las limitaciones que tuvimos. Este proyecto puede ser continuado en cuanto a documentacin y a investigacin se refiere; como mencionamos existen otros protocolos que pueden ser

189

agregados o en su defecto hacer otro proyecto en donde se manejen protocolos orientados a una sola aplicacin como la Domtica, las comunicaciones inalmbricas, etc. Nos atrevemos a recomendar el protocolo CAN, para su desarrollo e implementacin en proyectos futuros, un ejemplo seria disear una lnea de ensamblaje de un automvil en donde se utilizaran sensores para puertas, vidrios, parabrisas, frenos, etc., y mediante este protocolo desarrollar un software para controlar todos y cada uno de los sensores colocados u otros dispositivos que se deseen colocar y controlar. Por otra parte, si se pretende implementar algn protocolo de radiofrecuencia como Wi-Fi, o cualquier otro que requiera una inversin fuerte hablando en todos los sentidos (econmica, fsica, manual, etc), se pueden pedir recursos de la misma Universidad y que la aplicacin beneficie a la misma. Tambin se puede prever tiempo antes del desarrollo del proyecto, estimar costos, alcances y definir desde un principio si ser posible llevarlo a cabo. Esto con la finalidad de no quedarse corto en un momento determinado o cuando se este listo para desarrollar dicha aplicacin Recomendaciones podemos hacer muchas y muy variadas, debido a que este proyecto contiene mucho material que puede ser explotado muchsimo ms y de forma independiente en cuanto a protocolos se refiere, todo depende de la disposicin que se tenga, ya que las limitaciones que nos ponemos llegan hasta donde nuestra imaginacin nos lo permite. Si lo puedes imaginar, lo puedes lograr Albert Einstein

190

BIBLIOGRAFA
[1] Martnez Evelio, Telecomunicaciones, [En lnea] http://www.eveliux.com/telecom/protocolos.html [2] Dallas Semiconductor MAXIM, 15 de agosto de 2004 www.maxim-ic.com [3] Fitzhugh & Waggoner, Inc., 18 de agosto de 2004, www.fnwinc.com/datasheets/232to485_DTE_DCE_data.html [4] B&B Elctronics, RS-422 and RS-485 Application Note, Octubre 1997, pp. 1-48. [5] Texas Instruments u Data Transmission Design, Introduction to RS-422 & RS-485 Seminar Manual, 1998. [6] Mayne Jordi, Sistemas de Comunicacin, Manual de Silica an Avnet Divisin, 2003, pp.26-29. [7] http://www.wi-fi.org

191

[8] S. Kapp, "802.11: Leaving The Wire Behind," IEEE Internet Computing, vol. 6, no. 1, pp. 82-85, 2002. [9] Tecnologa del PC, http://www.zator.com/Hardware/H2_5_3.htm, 16 de septiembre de 2004 [10] Kevin Lynn, Universal Serial Bus Power Management, IEEE 1998. [11]El rincn del vago, http://html.rincondelvago.com/bluetooth_1.html, 15 de septiembre de 2004 [12]Charles E. Spurgeon, Chuck Toperek, Ethernet: The definitive guide, Febrero 2000. [13] A.J. POHLMEYER: Controller Area Network (CAN) Technical Overview, Motorola, 1999, pp. 1-39. [14] Katzen Sid, The Quintessential PIC Microcontroller, Springer, London, 2001. [15] Mc Farlane Andy, Tutorial: Fieldbus review, Sensor Review, Vol 17, Num 3, 1997. [16] Held Gilbert. Data Communications Networking Devices. John Whiley & Sons. New York. 1999. [17] Spasov Peter, Microcontroller Technology: The 68HC11, 4th ed., Prentice Hall, 2002. [18] Motorola MC68HC11 Reference Manual, Prentice Hall 1989 [19] Allen F. Jaime, Universidad de Costa Rica, http://www.eie.ucr.ac.cr/prodida/index.html, 2003. [20] Axelson Jan, USB Complete, Lakeview Research Madison, 2ed., 2001. [21] www.microchip.com [22] Malvino, Principios de electrnica, Quinta Edicin, 2001. [23] Angulo Usategui Jos, Ignacio Angulo, Susana Romero, Microcontroladores PIC, Diseo Prctico de aplicaciones, McGraw Hill, 2ed, 2000.

192

Apndice
A) Programas desarrollados A.1 Codificacin del programa de la comunicacin serial (RS-232)
Programa asignado al PIC1 LIST P=16F877 RADIX HEX INCLUDE "P16F877.INC" ;Declaracin de variables tx EQU 06 rx EQU 07 esc_f_1 EQU 00 ESCLAVO1 EQU 0X2B ESCLAVO2 EQU 0X2C ESCLAVO3 EQU 0X2D FOCO1 EQU 0X25 BANDERA EQU 0X26 FOCO2 EQU 0X27 TODOS EQU 0X28

193

DATO NOFOCO

EQU EQU ORG GOTO ORG GOTO ORG

0X20 0X2A 0X00 INICIO 0X04 INTERP 0x05

;e/s digitales PUERTOS BSF MOVLW MOVWF RELOJ) CLRF BSF BCF CLRF RETURN

STATUS,rp0 0X06 ADCON1 TRISA TRISC,rx TRISC,tx PORTB

; BANCO 1 ;REGISTROS DE CONTROL (FRENCUENCIA DEL ; SALIDA PUERTA A ;ENTRADA ;SALIDA ;LIMPIAR PUERTO B

;inicializar variables INI_VAR CLRF PORTA CLRF PORTB MOVLW 'A' MOVWF ESCLAVO1 MOVLW 'B' MOVWF ESCLAVO2 MOVLW 'C' MOVWF ESCLAVO3 MOVLW 'Y' MOVLW 'N' MOVWF NOFOCO MOVLW '1' MOVWF FOCO1 MOVLW '2' MOVWF FOCO2 MOVLW 'T' MOVWF TODOS CLRF DATO RETURN

;LIMPIAR PUERTOS ;"""""" ;MUEVE A AL ESCLAVO 1 ;MUEVE B AL ESCLAVO 2 ;MUEVE C AL ESCLAVO 3 ;ASIGNA Y A LA BANDERA ;ASIGNA N CUANDO NO ES A, B O C ;RESPUESTA CUANDO ES A ;RESPUESTA CUANDO ES B ;RESPUESTA CUANDO SON TODOS

;Configuracion del modulo SCI CONF_SCI BSF STATUS,rp0 ; BANCO 1 BSF TXSTA,brgh ; BIT DE SELECCION DE VELOCIDAD DE BAUDIOS (1 ALTA VELOCIDAD) MOVLW 0X19 MOVWF SPBRG ; BAUDRATE 9600 (REGISTRO GENERADOR DE BAUDIOS)

194

ASINCRONO)

BCF BCF BSF

TXSTA,sync STATUS,rp0 RCSTA,spen

; BIT DE SELECCION DEL USART (0=MODO ; BANCO O ; PUERTO SERIE HABILITADO BANCO 1 PERMISO DE INTERRUPCION PARA EL RX DEL CONFIGURA LA RECEPCION CONTINUA BANCO 1 ACTIVA LA TRANSMISION

BSF STATUS,rp0 ; BSF PIE1,rcie ; USAR CUANDO EL BUFFER SE LLENA BCF STATUS,rp0 BSF RCSTA,cren ; (1=HABILITADA) BSF STATUS,rp0 ; BSF TXSTA,txen ; BCF RETURN STATUS,rp0

; BANCO 0

; inicio del programa INICIO BSF STATUS,rp0 BCF STATUS,rp1 CALL PUERTOS BSF INTCON,gie BSF INTCON,peie CALL CONF_SCI BCF STATUS,rp0 CALL INI_VAR VARIABLES Dormir GOTO Dormir ;vector de interrupciones INTERP BCF STATUS,rp0 BTFSS PIR1,rcif GOTO Volver VACIO BCF MOVF MOVWF MOVF SUBWF BTFSS GOTO GOTO Seguir MOVF SUBWF BTFSS GOTO GOTO MOVF PIR1,rcif

; ; ; ; ; ;

BANCO 1 LLAMA A LOS PUERTOS INTERRUPCIONES GLOBALES (1=PERMITIDO) INTERRUPCIONES DE MODULOS LLAMA LA CONFIGURACION DEL SCI BANCO 0 ; LLAMA A LA INICIALIZACION DE

; BANCO 0 ; BRINCA SI EL BUFFER ESTA LLENO ; PERMITE RECIBIR SI EL BUFFER ESTA

RCREG,reg_w DATO DATO,reg_w ESCLAVO1,reg_w STATUS,cero Seguir Pon_F1 DATO,reg_w ESCLAVO2,reg_w STATUS,cero Seguir1 Pon_F2 DATO,reg_w

; INGRESA DATO ; RESTA EL DATO INGRESADO AL ESCLAVO 1 ;SI ES 0 BRINCA A PRENDER FOCO 1 ; SI NO BRINCA A SEGUIR ; PRENDE FOCO 1 ;INGRESA DATO ;RESTA EL DATO INGRESADO AL ESCLAVO 2 ;SI ES 0 BRINCA A PRENDER FOCO 1 ; SI NO BRINCA A SEGUIR1 ; PRENDE FOCO 2 ;INGRESA DATO

Seguir1

195

SUBWF BTFSS FOCOS GOTO GOTO

ESCLAVO3,reg_w ;RESTA EL DATO INGRESADO AL ESCLAVO 3 STATUS,cero ;SI ES 0 BRINCA A PRENDER TODOS LOS Seguir2 Pon_t ; SI NO BRINCA A SEGUIR2 ; PRENDE TODOS LOS FOCOS ;INGRESA DATO ;RESTA EL DATO INGRESADO ALA BANDERA ;SI ES CUALQUIER OTRO OTRO DATO ;REGRESA A LA INTERRUPCION ; PUERTO A COMO ENTRADA ;MANDA UN 1 POR EL PUERTO B ;LLAMA LA TRANSMISION DEL FOCO1 ;REGRESA A LA INTERRUPCION ; PUERTO A COMO ENTRADA ;MANDA UN 2 POR EL PUERTO B ;LLAMA LA TRANSMISION DEL FOCO2 ;REGRESA A LA INTERRUPCION

Seguir2

MOVF DATO,reg_w SUBWF BANDERA,reg_w BTFSS STATUS,cero DIFERENTE DE A,B,C APAGAGO TODO GOTO No_foco GOTO Volver Pon_F1 BSF MOVLW MOVWF CALL GOTO BCF MOVLW MOVWF CALL GOTO BSF MOVLW MOVWF CALL GOTO CLRF CLRF CALL RETFIE PORTA,esc_f_1 0X01 PORTB TRF1_SCI Volver PORTA,esc_f_1 0X02 PORTB TRF2_SCI Volver

Pon_F2

Pon_t

PORTA,esc_f_1 ; PUERTO A COMO ENTRADA 0X03 PORTB ;MANDA UN 3 POR EL PUERTO B TRT_SCI ;LLAMA LA TRANSMISION DE TODOS LOS FOCOS Volver ;REGRESA A LA INTERRUPCION PORTA PORTB TRN_SCI ;LIMPIA PUERTOS ;LLAMA LA TRANSMISION DE NINGUN FOCO

No_foco Volver

;TRANSMITE EN SCI TRB_SCI MOVF MOVWF BSF Saltar BTFSS DESPLAZAMIENTO DE GOTO TSR ESTE VACIO RETURN

LA BANDERA BANDERA,reg_w ;MUEVE LA BANDERA TXREG ; DATO TRANSMITIDO EN SCI STATUS,rp0 ;BANCO 1 TXSTA,trmt ;BIT DE ESTADO DEL REGISTRO DE DATOS (1=TSR VACIO) Saltar ;SE QUEDA EN ESTE ESTADO HASTA QUE

;TRASMISION EN SCI DE FOCO 1 TRF1_SCI MOVF FOCO1,reg_w MOVWF TXREG BSF STATUS,rp0

;MUEVE EL FOCO1 ; DATO TRANSMITIDO EN SCI ;BANCO 1

196

Saltar1 BTFSS TXSTA,trmt ;BIT DE ESTADO DEL REGISTRO DE DESPLAZAMIENTO DE DATOS (1=TSR VACIO) GOTO Saltar1 ;SE QUEDA EN ESTE ESTADO HASTA QUE TSR ESTE VACIO RETURN ;TRASMISION EN SCI DE FOCO 2 TRF2_SCI MOVF FOCO2,reg_w ;MUEVE EL FOCO2 MOVWF TXREG ; DATO TRANSMITIDO EN SCI BSF STATUS,rp0 ;BANCO 1 Saltar2 BTFSS TXSTA,trmt ;BIT DE ESTADO DEL REGISTRO DE DESPLAZAMIENTO DE DATOS (1=TSR VACIO) GOTO Saltar2 ;SE QUEDA EN ESTE ESTADO HASTA QUE TSR ESTE VACIO RETURN ;TRASMISION EN SCI DE FOCO 3 TRT_SCI MOVF TODOS,reg_w ;MUEVE TODOS LOS FOCOS MOVWF TXREG ; DATO TRANSMITIDO EN SCI BSF STATUS,rp0 ;BANCO 1 Saltar3 BTFSS TXSTA,trmt ;BIT DE ESTADO DEL REGISTRO DE DESPLAZAMIENTO DE DATOS (1=TSR VACIO) GOTO Saltar3 ;SE QUEDA EN ESTE ESTADO HASTA QUE TSR ESTE VACIO RETURN ;TRASMISION EN SCI DE NO FOCO TRN_SCI MOVF NOFOCO,reg_w ;APAGA FOCOS CUANDO NO ES A,B O C MOVWF TXREG ; DATO TRANSMITIDO EN SCI BSF STATUS,rp0 ;BANCO 1 Saltar4 BTFSS TXSTA,trmt ;BIT DE ESTADO DEL REGISTRO DE DESPLAZAMIENTO DE DATOS (1=TSR VACIO) GOTO Saltar4 ;SE QUEDA EN ESTE ESTADO HASTA QUE TSR ESTE VACIO RETURN END Programa del PIC2 LIST P=16F877 RADIX HEX INCLUDE "P16F877.INC" tx rx esc_f_2 FOCO2 BANDERA EQU EQU EQU EQU EQU 06 07 00 0X25 0X26 ;VARIABLES DECLARADAS

197

TODOS DATO NOFOCO

EQU EQU EQU ORG GOTO ORG GOTO ORG

0X28 0X20 0X2A 0X00 INICIO 0X04 INTERP 0x05 ;DIRECCIN DE INICIO ;MANDAR LLAMAR A LA SUBRUTINA INICIO. ;DIRECCIN DE LA INTERRUPCIN. ;MANDA LLAMAR A LA SUBRUTINA DE INTERP.

; e/s digitales PUERTOS BSF MOVLW MOVWF CLRF BSF BCF CLRF RETURN

STATUS,rp0 0X06 ADCON1 TRISA TRISC,RX TRISC,TX PORTB

;BANCO 1 ;ACTIVA LAS INTERRUPCIONES. ;SALIDA PUERO A ;ACTIVA PUERTO PARA ENTRADAS PARA ;RECIBIR. ;ACTIVA PUERTO DE SALIDA PARA ;TRANSMITIR. ;LIMPIA PUERTO B.

;inicializar variables INI_VAR CLRF PORTA CLRF PORTB MOVLW 'Y' MOVWF BANDERA MOVLW 'N' MOVWF NOFOCO MOVLW '2' MOVWF FOCO2 MOVLW 'T' MOVWF TODOS CLRF DATO RETURN ; configuracion del modulo SCI CONF_SCI BSF STATUS,rp0 BSF TXSTA,brgh MOVLW 0X19 MOVWF SPBRG BCF TXSTA,sync BCF STATUS,rp0 BSF RCSTA,spen BSF BSF BCF BSF STATUS,rp0 PIE1,rcie STATUS,rp0 RCSTA,cren

;LIMPIA PUERTO ;LIMPIA PUERTO ;MOVER Y A W ;MOVER VALOR W ;MOVER N A W ;MOVER VALOR W ;MOVER 2 A W ;MOVER VALOR W ;MOVER VALOR T ;MOVER VALOR W ;LIMPIAR DATOS

A B A BANDERA A NO FOCO A FOCO2 A W A TODOS

;BANCO 1 ;Monerlo a Alta Velocidad ;BAUDRATE 9600 ;Modo Asncrono ;PUERTO SERIE HABILITADO ;BANCO 1 ;Habilita en modo Asncrono ;Habilita modo de recepcion continua

198

BSF BSF BCF RETURN

STATUS,rp0 TXSTA,txen STATUS,rp0

;BANCO 1 ;Activa Transmisin ; BANCO 0

; inicio del programa INICIO BSF STATUS,rp0 BCF STATUS,rp1 CALL PUERTOS BSF INTCON,gie BSF INTCON,peie CALL CONF_SCI BCF STATUS,rp0 CALL INI_VAR Dormir GOTO Dormir ;vector de interrupciones INTERP BCF STATUS,rp0 BTFSS PIR1,rcif GOTO BCF MOVF MOVWF MOVF SUBWF BTFSS GOTO GOTO Seguir MOVF Volver PIR1,rcif RCREG,reg_w DATO DATO,reg_w FOCO2,reg_w STATUS,cero Seguir Pon_F2 DATO,reg_w TODOS,reg_w STATUS,cero No_foco Pon_t PORTA,esc_f_2 0X01 PORTB Volver PORTA,esc_f_2

; BANCO 1 ;Llama subrutina PUERTOs ;INTERRUPCIONES GLOBALES ;INTERRUPCIONES DE MODULOS ;Llama subrutina CONF_SCI ;BANCO 0 ;Llama subrutina INI_VAR

;Verifica si el buffer esta lleno o ;vaco ;Recibe si el buffer esta vaci ;Mover registro W a RCREG ;Mover W a DATOS. ;Mover DATOS a W. ;Se restan los valores encontrados ;en W y FOCO2 ;Compara registro W, 1 pasa ;siguiente rengln,0 brinca

;Mover registro W a RCREG ;Se restan los valores encontrados ;Compara registro W, 1 pasa ;siguiente rengln, 0 brinca

SUBWF en W y TODOS BTFSS GOTO GOTO Pon_F2 BSF MOVLW MOVWF GOTO BSF

;Ingresa 1 al registro A ;Mover 1 al registro W ;Mover registro W al Puerto B ;Ingresa 1 al registro A

Pon_t

199

MOVLW MOVWF GOTO No_foco Volver CLRF CLRF RETFIE

0X02 PORTB Volver PORTA PORTB

;Mover 2 al registro W ;Mover registro W al Puerto B ;Limpia Puerto A ;Limpia Puerto B

;TRANSMITE EN SCI TRB_SCI MOVF BANDERA MOVWF BSF Saltar BTFSS siguiente GOTO RETURN

LA BANDERA BANDERA,reg_w TXREG STATUS,rp0 TXSTA,trmt

;Manda contenido del registro W a ;Almacena contenido W en TXREG ;BANCO 1 ;Compara registro W, 1 pasa ;Rengln, 0 brinca

Saltar

;TRASMISION EN SCI DE NO FOCO TRN_SCI MOVF NOFOCO,reg_w NO FOCO MOVWF TXREG BSF STATUS,rp0 Saltar4 BTFSS TXSTA,trmt siguiente GOTO RETURN END Saltar4

;Manda contenido del registro W a ;DATO TRANSMITIDO EN SCI ;BANCO 1 ;Compara registro W, 1 pasa ;Rengln, 0 brinca

A.2 Codificacin del programa de la comunicacin SPI


Programacin PIC Maestro LIST P=16F877A RADIX HEX INCLUDE "P16F877.INC"

;DECLARACION DE VARIABLES sck EQU 05 sdo EQU 03 sdi EQU 04 esc1 EQU 00 esc2 EQU 01 esc3 EQU 02

200

DATO BANDERA SEGUNDO TEMPORAL

EQU EQU EQU EQU ORG GOTO ORG GOTO ORG

0X20 0X24 0X25 0X26 0X00 INICIO 0X04 INTERP 0X05

; e/s digitales PUERTOS CLRF TRISB ;SALIDA MOVLW 0X06 MOVWF ADCON1 ;REGISTRO DE CONTROL PARA LA SELECCION DE LA FRECUENCIA DE RELOJ MOVLW 0X07 MOVWF TRISA BCF TRISC,sdo ; SALIDA BSF TRISC,sdi ; ENTRADA BCF TRISC,sck ;SALIDA RETURN ; CONFIGURACION DEL MODULO SPI COMO MAESTRO CONF_SPI BSF STATUS,rp0 ; BANCO 1 BSF SSPSTAT,smp ; MUESTRA FINAL DEL PULSO BSF SSPSTAT,cke ; INACTIVIDAD FLANCO ASCENDENTE BCF STATUS,rp0 ; BANCO 0 MOVLW 0X00 MOVWF SSPCON BSF SSPCON,sspen ; ACTIVA SPI BSF STATUS,rp0 BSF PIE1,sspie ; ACTIVA INTERRUPCION SPI BCF STATUS,rp0 RETURN ;inicio del programa INICIO BSF STATUS,rp0 BCF STATUS,rp1 CALL PUERTOS BCF STATUS,rp0 MOVLW 'Y' MOVWF BANDERA CALL CONF_SPI BSF INTCON,inte BSF INTCON,gie BSF INTCON,peie BSF STATUS,rp0 MOVLW 0XC7

; INTERRUPCION EXTERNA ; INTERRUPCIONES GLOBALES ; INTERRUPCIONES DE MODULOS

201

FRECUENCIA

MOVWF BCF CLRF CLRF

OPTION_REG STATUS,rp0 DATO PORTB Aqui

;ASIGNACION DEL DIVISOR DE ; BANCO 0

Aqui

GOTO

; vector de interrupciones INTERP BCF STATUS,rp0 BTFSS INTCON,intf GOTO Ot_int BCF INTCON,intf MOVF PORTA,reg_w MOVWF TEMPORAL CALL TRANS GOTO Volver Ot_int BTFSS PIR1,sspif GOTO Volver BCF PIR1,sspif BCF SSPCON,wcol BSF STATUS,rp0 No_rec BTFSS SSPSTAT,bf GOTO No_rec BCF STATUS,rp0 MOVF SSPBUF,reg_w MOVWF DATO MOVF DATO,reg_w SUBWF BANDERA,reg_w = O BTFSS STATUS,cero GOTO No_b MOVLW 0X0E MOVWF PORTB GOTO Limpiar No_b Limpiar DATO MOVLW MOVWF CALL CALL CALL CLRF RETFIE 0X0A PORTB RETARDO RETARDO RETARDO PORTB

; BANCO 0 ;ACTIVACION DE RB0 COMO INT. EXTERNA ;DESACTIVA INT. EXTERNA ;MANDA DATO EL MAESTRO ;BRINCA SI DETECTA INTERRUPCION ;PONE 0 SI DETECTA INTERRUPCION ;NO DETECCION DE COLISION ;BANCO 1 ;BRINCA SI EL BUFFER ESTA LLENO ;BANCO 0 ; MUEVE DATO AL BUFFER ;MUEVE DATO A W ;SI BANDERA MENOS DATO INTRODUCIDO ;BRINCA A NO_B ;SI NO MANDA UNA E AL PUERTO B ;BRINCA A LIMPIAR ;MANDA UNA A POR EL PUERTO B ;ESPERA TRES SEGUNDOS PARA MANDAR

Volver TRANS

MOVLW 0X01 SUBWF TEMPORAL,reg_w SPI_TR1 Y ACTIVA ESCLAVO 1 BTFSS STATUS,cero

;MUEVE UN 1 ;SI TEMPORAL 1 = 0 SE VA A

202

GOTO CON OTRO ESCLAVO CALL GOTO No_t

No_t SPI_TR1 Fin

; SI NO SE VA A NO_T PARA EVALUAR

MOVLW 0X02 SUBWF TEMPORAL,reg_w SPI_TR2 Y ACTIVA ESCLAVO 2 BTFSS STATUS,cero GOTO No_t1 CON OTRO ESCLAVO CALL SPI_TR2 GOTO Fin No_t1 MOVLW 0X04 SUBWF TEMPORAL,reg_w SPI_TR3 Y ACTIVA ESCLAVO 3 BTFSS STATUS,cero GOTO Fin CALL SPI_TR3 Fin RETURN

;MUEVE UN 2 ;SI TEMPORAL 2 = 0 SE VA A ; SI NO SE VA A NO_T1 PARA EVALUAR

;MUEVE UN 4 ;SI TEMPORAL 2 = 0 SE VA A ; SI NO SE VA A FIN Y TERMINA

;TRASMISION EN SPI SPI_TR1 BCF STATUS,rp0 ;BANCO 0 MOVLW '1' MOVWF SSPBUF ; DATO TRANSMITIDO BCF SSPCON,wcol ;NO DETECCION DE COLISION BSF PORTB,1 RETURN ;TRASMISION EN SPI SPI_TR2 BCF STATUS,rp0 ;BANCO 0 MOVLW '2' MOVWF SSPBUF ; DATO TRANSMITIDO BCF SSPCON,wcol ;NO DETECCION DE COLISION BSF PORTB,2 RETURN ;TRASMISION EN SPI SPI_TR3 BCF STATUS,rp0 MOVLW '3' MOVWF SSPBUF BCF SSPCON,wcol BSF PORTB,3 RETURN

;BANCO 0 ; DATO TRANSMITIDO ;NO DETECCION DE COLISION

; SUBRUTINA DE TEMPORIZADOR DE 50 MILISEGUNDOS CIENMS BCF STATUS,rp0 MOVLW 0x62

203

Che_des

MOVWF BTFSS GOTO BCF RETURN

TMR0 INTCON,2 Che_des INTCON,2

; SUBRUTINA QUE REALIZA UN RETARDO ; DE UN SEGUNDO RETARDO MOVLW 0X14 MOVWF SEGUNDO CALL CIENMS Otra DECFSZ SEGUNDO,mismo_reg GOTO Llamar GOTO Sal Llamar CALL CIENMS GOTO Otra Sal RETURN END

Programa para el Esclavo 1


LIST P=16F877A RADIX HEX INCLUDE "P16F877.INC" ;Declaracion de variables sck EQU 05 sdo EQU 03 sdi EQU 04 DATO EQU 0X20 SEGUNDO EQU 0X24 ESCLAVO1 EQU 0X25 ORG GOTO ORG GOTO ORG ; e/s digitales PUERTOS CLRF BSF BCF BSF BSF RETURN 0X00 INICIO 0X04 INTERP 0X05

TRISB TRISD,0 TRISC,sdo TRISC,sdi TRISC,sck

;SALIDA ; SALIDA ; ENTRADA ;SALIDA

; CONFIGURACION DEL MODULO SPI COMO ESCLAVO

204

CONF_SPI

BSF BCF BSF BCF MOVLW MOVWF BSF BSF BSF BCF RETURN

STATUS,rp0 SSPSTAT,smp SSPSTAT,cke STATUS,rp0 0X24 SSPCON SSPCON,sspen STATUS,rp0 PIE1,sspie STATUS,rp0

; BANCO 1 ; MUESTRA FINAL DEL PULSO ; INACTIVIDAD FLANCO ASCENDENTE ; BANCO 0 ;ASIGNACION DEL MODO DE TRABAJO ; ACTIVA SPI ; ACTIVA INTERRUPCION SPI

;inicio del programa INICIO BSF STATUS,rp0 BCF STATUS,rp1 CALL PUERTOS BSF INTCON,gie BSF INTCON,peie MOVLW 0X07 MOVWF OPTION_REG FRENCUENCIA CALL CONF_SPI BCF STATUS,rp0 CLRF DATO CLRF PORTB MOVLW '1' MOVWF ESCLAVO1 Aqui BTFSS PORTD,0 GOTO Aqui CLRF PORTB CALL SPI_TRB GOTO Aqui

; INTERRUPCIONES GLOBALES ; INTERRUPCIONES DE MODULOS ;ASIGAN RANGO DEL DIVISOR DE ; BANCO 0

; vector de interrupciones INTERP BCF STATUS,rp0 ;BANCO 0 BTFSS PIR1,sspif ; BRINCA SI HAY UNA INTERRUPCION GOTO Volver BCF PIR1,sspif ;NO DETECTA INTERRUPCION BSF STATUS,rp0 ;BANCO 1 No_rec BTFSS SSPSTAT,bf ; BRINCA SI EL FBUFFER ESTA LLENO GOTO No_rec BCF STATUS,rp0 ;BANCO 0 MOVF SSPBUF,reg_w ; LIBERA EL BUFFER Y MANDA DATO MOVWF DATO MOVF DATO,reg_w ;RESTA DATO A ESCLAVO1, SI ES 0 MANDA UN 3 POR EL PUERTO B, INDICANDO QUE SE TRANSMITIO A ESCLAVO 1 SUBWF ESCLAVO1,reg_w BTFSS STATUS,cero GOTO No_b ; SI NO ES 0 BRINCA A No_b MOVLW 0X03 MOVWF PORTB

205

GOTO No_b MOVLW MOVWF

Volver 0X02 PORTB PORTB SPI_TRB ; MANDA UN 2 AL PUERTO B ; LIMPIA PUERTO B ; LLAMA LA BANDERA PARA VER SI SE ;REGRESO A LA INTERRUPCION

CLRF Volver ;CALL RECIBIERON DATOS RETFIE

;TRASMISION EN SPI SPI_TR1 BCF STATUS,rp0 ;BANCO 0 MOVLW '1' MOVWF SSPBUF ; DATO TRANSMITIDO BCF SSPCON,wcol ;DETECCION DE COLISION MOVLW 0X01 MOVWF PORTB RETURN ;TRASMISION EN SPI SPI_TRB BCF STATUS,rp0 ;BANCO 0 MOVLW 'Y' MOVWF SSPBUF ; DATO TRANSMITIDO BSF STATUS,rp0 ; BANCO 1 BCF SSPCON,wcol RETURN ; SUBRUTINA DE TEMPORIZADOR DE 50 MILISEGUNDOS CIENMS BCF STATUS,rp0 MOVLW 0x62 MOVWF TMR0 Che_des BTFSS INTCON,2 GOTO Che_des BCF INTCON,2 RETURN ; SUBRUTINA QUE REALIZA UN RETARDO DE UN SEGUNDO RETARDO MOVLW 0X14 MOVWF SEGUNDO CALL CIENMS Otra DECFSZ SEGUNDO,mismo_reg GOTO Llamar GOTO Sal Llamar CALL CIENMS GOTO Otra Sal RETURN END

206

Programa para el Esclavo 2


LIST P=16F877A RADIX HEX INCLUDE "P16F877.INC" ;DECLARACION DE VARIABLES sck EQU 05 sdo EQU 03 sdi EQU 04 DATO EQU 0X20 SEGUNDO EQU 0X24 ESCLAVO2 EQU 0X25 ORG GOTO ORG GOTO ORG ; e/s digitales PUERTOS CLRF BSF BCF BSF BSF RETURN 0X00 INICIO 0X04 INTERP 0X05

TRISB TRISD,0 TRISC,sdo TRISC,sdi TRISC,sck

;SALIDA ; SALIDA ; ENTRADA ;SALIDA

; CONFIGURACION DEL MODULO SPI COMO ESCLAVO CONF_SPI BSF STATUS,rp0 ; BANCO 1 BCF SSPSTAT,smp ; MUESTRA FINAL DEL PULSO BSF SSPSTAT,cke ; INACTIVIDAD FLANCO ASCENDENTE BCF STATUS,rp0 ; BANCO 0 MOVLW 0X24 MOVWF SSPCON ;ASIGNACION DEL MODO DE TRABAJO BSF SSPCON,sspen ; ACTIVA SPI BSF STATUS,rp0 BSF PIE1,sspie ; ACTIVA INTERRUPCION SPI BCF STATUS,rp0 RETURN ;inicio del programa INICIO BSF STATUS,rp0 BCF STATUS,rp1 CALL PUERTOS BSF INTCON,gie BSF INTCON,peie MOVLW 0X07

; INTERRUPCIONES GLOBALES ; INTERRUPCIONES DE MODULOS

207

FRECUENCIA

MOVWF CALL BCF CLRF CLRF MOVLW MOVWF BTFSS GOTO CLRF CALL GOTO

OPTION_REG CONF_SPI STATUS,rp0 DATO PORTB '2' ESCLAVO2 PORTD,0 Aqui PORTB SPI_TRB Aqui

;ASIGNACION DEL DIVISOR DE ; BANCO 0

Aqui

; vector de interrupciones INTERP BCF STATUS,rp0 ;BANCO 0 BTFSS PIR1,sspif ;BRINCA SI HAY INTERRUPCION GOTO Volver BCF PIR1,sspif ;NO INTERRUPCION BSF STATUS,rp0 ;BANCO 1 No_rec BTFSS SSPSTAT,bf ;BRINCA SI BUFFER ESTA LLENO GOTO No_rec BCF STATUS,rp0 ;BANCO 0 MOVF SSPBUF,reg_w ;LIBERACION DE BUFFER Y ENVIO DE DATOS MOVWF DATO MOVF DATO,reg_w SUBWF ESCLAVO2,reg_w ;SI DATO MENOS ESCLAVO2=0 MANDA UN 3 POR EL PUERTO B E INDICA QUE SE ACTRIVO EL ESCLAVO 2 BTFSS STATUS,cero GOTO No_b ;SI NO ES 0 BRINCA A No_b MOVLW 0X03 MOVWF PORTB GOTO Volver No_b MOVLW MOVWF CLRF ;CALL RETFIE 0X02 PORTB PORTB SPI_TRB ;MANDA UN 2 POR EL PUERTO B ;LIMPIA PUERTO B

Volver

;TRASMISION EN SPI SPI_TR2 BCF STATUS,rp0 MOVLW '2' MOVWF SSPBUF BCF SSPCON,wcol MOVLW 0X02 MOVWF PORTB RETURN

;BANCO 0 ; DATO TRANSMITIDO ;DETECCION DE COLISION

208

;TRASMISION EN SPI SPI_TRB BCF STATUS,rp0 MOVLW 'Y' MOVWF SSPBUF BSF STATUS,rp0 BCF SSPCON,wcol RETURN

;BANCO 0 ; DATO TRANSMITIDO ; BANCO 1 ; DETECCION DE COLISION

; SUBRUTINA DE TEMPORIZADOR DE 50 MILISEGUNDOS CIENMS BCF STATUS,rp0 MOVLW 0x62 MOVWF TMR0 Che_des BTFSS INTCON,2 GOTO Che_des BCF INTCON,2 RETURN ; SUBRUTINA QUE REALIZA UN RETARDO ; DE UN SEGUNDO RETARDO MOVLW 0X14 MOVWF SEGUNDO CALL CIENMS Otra DECFSZ SEGUNDO,mismo_reg GOTO Llamar GOTO Sal Llamar CALL CIENMS GOTO Otra Sal RETURN END

Programa para el Esclavo 3


LIST P=16F877A RADIX HEX INCLUDE "P16F877.INC"

;DECLARACION DE VARIABLES sck EQU 05 sdo EQU 03 sdi EQU 04 DATO EQU 0X20 SEGUNDO EQU 0X24 ESCLAVO3 EQU 0X25

209

ORG GOTO ORG GOTO ORG ; e/s digitales PUERTOS CLRF BSF BCF BSF BSF RETURN

0X00 INICIO 0X04 INTERP 0X05

TRISB TRISD,0 TRISC,sdo TRISC,sdi TRISC,sck

;SALIDA ; SALIDA ; ENTRADA ;SALIDA

; CONFIGURACION DEL MODULO SPI COMO ESCLAVO CONF_SPI BSF STATUS,rp0 ; BANCO 1 BCF SSPSTAT,smp ; MUESTRA FINAL DEL PULSO BSF SSPSTAT,cke ; INACTIVIDAD FLANCO ASCENDENTE BCF STATUS,rp0 ; BANCO 0 MOVLW 0X24 MOVWF SSPCON ;ASIGNACION DEL MODO DE TRABAJO BSF SSPCON,sspen ; ACTIVA SPI BSF STATUS,rp0 BSF PIE1,sspie ; ACTIVA INTERRUPCION SPI BCF STATUS,rp0 RETURN ;inicio del programa INICIO BSF STATUS,rp0 BCF STATUS,rp1 CALL PUERTOS BSF INTCON,gie BSF INTCON,peie MOVLW 0X07 MOVWF OPTION_REG FRENCUENCIA CALL CONF_SPI BCF STATUS,rp0 CLRF DATO CLRF PORTB MOVLW '3' MOVWF ESCLAVO3 Aqui BTFSS PORTD,0 GOTO Aqui CLRF PORTB CALL SPI_TRB GOTO Aqui ; vector de interrupciones

; INTERRUPCIONES GLOBALES ; INTERRUPCIONES DE MODULOS ;DESIGNACION DEL DIVISOR DE ; BANCO 0

210

INTERP

BCF BTFSS GOTO BCF BSF No_rec BTFSS GOTO BCF MOVF ENVIO DE DATOS MOVWF MOVF SUBWF MANDA UN 3 POR EL BTFSS GOTO MOVLW MOVWF GOTO No_b Volver MOVLW MOVWF CLRF ;CALL RETFIE

STATUS,rp0 PIR1,sspif Volver PIR1,sspif STATUS,rp0 SSPSTAT,bf No_rec STATUS,rp0 SSPBUF,reg_w

;BANCO 0 ;BRINCA SI HUBO UNA INTERRUPCION ;NO DETECCION DE INTERRUPCION ;BANCO 1 ;BRINCA SI EL BUFFER ESTA LLENO ;BANCO 0 ;LIBERACON DE BUFFER Y PERMISO DE

DATO DATO,reg_w ESCLAVO3,reg_w ;SI DATO MENOS ESCLAVO3 IGUA A 0 PUERTO B INDICANDO QUE SE ACTIVO EL ESCLAVO 3 STATUS,cero No_b ;SI NO ES 0 SE VA A No_b 0X03 PORTB Volver 0X02 PORTB PORTB SPI_TRB ;MANDA UN 2 POR PUERTO B ;LIMPIA PUERTO B

;TRASMISION EN SPI SPI_TR3 BCF STATUS,rp0 MOVLW '3' MOVWF SSPBUF BCF SSPCON,wcol MOVLW 0X03 MOVWF PORTB RETURN ;TRASMISION EN SPI SPI_TRB BCF STATUS,rp0 MOVLW 'Y' MOVWF SSPBUF BSF STATUS,rp0 BCF SSPCON,wcol RETURN

;BANCO 0 ; DATO TRANSMITIDO ; DETECCION DE COLISION

;BANCO 0 ; DATO TRANSMITIDO ; BANCO 1 ;DETECCION DE COLISION

; SUBRUTINA DE TEMPORIZADOR DE 50 MILISEGUNDOS CIENMS BCF STATUS,rp0 MOVLW 0x62 MOVWF TMR0 Che_des BTFSS INTCON,2 GOTO Che_des BCF INTCON,2

211

RETURN ; SUBRUTINA QUE REALIZA UN RETARDO DE UN SEGUNDO RETARDO MOVLW 0X14 MOVWF SEGUNDO CALL CIENMS Otra DECFSZ SEGUNDO,mismo_reg GOTO Llamar GOTO Sal Llamar CALL CIENMS GOTO Otra Sal RETURN END

212

S-ar putea să vă placă și