Universidad de Guanajuato. Balderas Corrales Jos Alberto.
Divisin de Ingenieras Campus Irapuato-Salamanca.
1 Taller De Macatrnica II Enero-Abril 2014
Protocolos I2C, RS-232, RS-485, UART, CAN Balderas Corrales Jos Alberto DICIS Divisin De Ingenieras Campus Irapuato-Salamanca Correo-e: balderas_cama7@hotmail.com
Resumen-El presente trabajo trata de explicar varios puntos, entre los cuales se encuentran los protocolos I2C, RS- 232, RS-485, UART y CAN, adems de su uso y aplicaciones en el mbito cotidiano e industrial, los cuales tienen un conjunto de normas usadas por las computadoras y algunas reglas usadas para las redes inalmbricas. Palabras claveProtocolo, conexiones, Puerto, I2C, Master, Esclavo, RS-232, comunicacin, RS-485, UART, CAN I. INTRODUCCIN En informtica y telecomunicacin, un protocolo de comunicaciones es un conjunto de reglas y normas que permiten que dos o ms entidades de un sistema de comunicacin se comuniquen entre ellos para transmitir informacin por medio de cualquier tipo de variacin de una magnitud fsica. Se trata de las reglas o el estndar que define la sintaxis, semntica y sincronizacin de la comunicacin, as como posibles mtodos de recuperacin de errores. Los protocolos pueden ser implementados por hardware, software, o una combinacin de ambos. En el caso concreto de las computadoras, un protocolo de comunicacin, tambin llamado en este caso protocolo de red, define la forma en la que los distintos mensajes o tramas de bit circulan en una red de computadoras. Los elementos bsicos de un protocolo de comunicaciones son: un conjunto de smbolos llamados conjunto de caracteres, un conjunto de reglas para la secuencia y sincronizacin de los mensajes construidos a partir del conjunto de caracteres y los procedimientos para determinar cundo ha ocurrido un error en la transmisin y como corregir el error. El conjunto de caracteres se formar de un subconjunto con significado para las personas (usualmente denominado como caracteres Optimizacin de ancho de banda para sistemas GSM. imprimibles) y otro subconjunto que transmite informacin de control (usualmente denominado caracteres de control). Hay una correspondencia entre cada carcter y los grupos de smbolos usados en el canal de transmisin, que es determinado por el cdigo. Muchos cdigos estndar con sus respectivas equivalencias de grupos de unos y ceros (bits) han sido definidos con el paso de los aos. El conjunto de reglas a seguir por el emisor y el receptor propicia: que haya un significado con secuencias permitidas y a tiempo, entre los caracteres de control y los mensajes formados a partir de los smbolos. La deteccin de error y los procedimientos de correccin errores causados por factores fuera del control de la terminal en cada extremo. El protocolo de bajo nivel es bsicamente la forma en que las seales se transmiten, transportando tanto datos como informacin y los procedimientos de control de uso del medio por los diferentes nodos. El protocolo de red determina el modo y organizacin de la informacin (tanto los datos como los controles) para su transmisin por el medio fsico con el protocolo de bajo nivel. II. DESARROLLO DE CONTENIDOS II.1. Protocolo I2C
I2C es un protocolo de comunicacin serie diseado por Philips que se utiliza esencialmente entre dispositivos que pertenecen al mismo circuito, por ejemplo, sensores con un microcontrolador. EL Bus I2C (Inter- Integrated Circuits) fue desarrollado al principio de los 80s. Su propsito original fue el de proporcionar una manera fcil de conectar un CPU a los chips perifricos en un equipo de TV.
Aunque las patentes de I2C ya han expirado, algunos vendedores utilizan los nombres TWI y TWSI para referirse a I2C. Es exactamente lo mismo.
II.1.1. Las caractersticas del bus I2C Velocidad standard de 100Kbit/s (100kbaudios). Se puede cambiar al modo de alta velocidad (400Kbit/s) Configuracin maestro/esclavo. La direccin del esclavo se configura con software Se necesitan solamente dos lneas, la de datos (SDA) y la de reloj (SCL). Cada dispositivo conectado al bus tiene un cdigo de direccin seleccionable mediante software. Habiendo permanentemente una relacin Master/ Slave entre el micro y los dispositivos conectados Universidad de Guanajuato. Balderas Corrales Jos Alberto.
Divisin de Ingenieras Campus Irapuato-Salamanca.
2 El bus permite la conexin de varios Masters, ya que incluye un detector de colisiones. El protocolo de transferencia de datos y direcciones posibilita disear sistemas completamente definidos por software. Los comunicacin siempre tiene la estructura siguiente: o Transmisor: Byte de datos (8 Bits) o Receptor: Bit llamado ACK de confirmacin. SDA y SCL van a su pin correspondiente en cada dispositivo, de manera que todos quedan en paralelo. Las lineas SDA y SCL estan independientemente conectadas a dos resistores Pull-Up que se encargaran de que el valor lgico siempre sea alto a no ser que un dispositivo lo ponga a valor lgico bajo. Es una comunicacin de tipo half duplex. Comunicacin bidireccional por la misma linea pero no simultneamente bidireccional. II.1.2. Funcionamiento I2C: Como dijimos, las lneas SDA y SCL transportan informacin entre los dispositivos conectados al bus (ver: Figura 1). Cada dispositivo es reconocido por su cdigo (direccin) y puede operar como transmisor o receptor de datos. Adems, cada dispositivo puede ser considerado como Master o Slave. El Master es el dispositivo que inicia la transferencia en el bus y genera la seal de Clock. El Slave (esclavo) es el dispositivo direccionado. Las lneas SDA (serial Data) y SCL (serial Clock) son bidireccionales, conectadas al positivo de la alimentacin a travs de las resistencias de pull-up. Cuando el bus est libre, ambas lneas estn en nivel alto.
La cantidad de dispositivos que se pueden conectar al bus est limitada, solamente, por la mxima capacidad permitida: 400 pF
II.1.3. Condiciones de START y STOP Antes de que se establezca un intercambio de datos entre el circuito Master y los Esclavos, el Master debe informar el comienzo de la comunicacin (condicin de Start): la lnea SDA cae a cero mientras SCL permanece en nivel alto. A partir de este momento comienza la transferencia de datos. Una vez finalizada la comunicacin se debe informar de esta situacin (condicin de Stop). La lnea SDA pasa a nivel alto mientras SCL permanece en estado alto. Ver Figura 2. II.1.4 Transferencia De Datos Cada palabra puesta en el bus SDA debe tener 8 bits, la primera palabra transferida contiene la direccin del Esclavo seleccionado. Luego el Master lee el estado de la lnea SDA, si vale 0 (impuesto por el esclavo), el proceso de transferencia contina. Si vale 1, indica que el circuito direccionado no valida la comunicacin, entonces, el Maestro genera un bit de stop para liberar el bus I2C. Este acuse de recibo se denomina ACK (acknowledge) y es una parte importante del protocolo I2C. Al final de la transmisin, el Maestro genera la condicin de Stop y libera el bus I2C, las lneas SDA y SCL pasan a estado alto. II.1.5. Fallas En El Bus Ante un falla en el funcionamiento de alguno de los integrados conectados al bus y antes de probar cambiando CIs, tenemos que hacer algunas verificaciones. Como primera medida comprobamos el estado de las resistencias de pull up. Luego con una punta lgica verificamos que cuando el bus est inactivo, las dos lneas se encuentren en estado alto. A continuacin, chequeamos que el Mster direccione alguno de los integrados, esta verificacin tambin podemos hacerla con la punta lgica, pero tengamos en cuenta dos cosas: con la punta lgica solamente estamos detectando actividad en el bus, pero no podemos saber si se lleva a cabo satisfactoriamente. En segundo lugar, si hay ms de un integrado conectado al bus, no podremos determinar cul de ellos est siendo solicitado. II.2 Protocolo RS-232 Historia Universidad de Guanajuato. Balderas Corrales Jos Alberto.
Divisin de Ingenieras Campus Irapuato-Salamanca.
3 RS-232 fue definido en 1962 por la Asociacin de la Industria Electrnica (conocida hoy como la Alianza de la Industria Electrnica). El control de la definicin de estndares fue entregado a la Asociacin de la Industria de Telecomunicaciones en 1988. Desde entonces, los documentos de normas relativas a la RS-232 se hace referencia por el cdigo "TIA." El estndar actualmente se conoce como TIA-232-F. RS-432 es una versin ms rpida de RS-232, pero no fue adoptado ampliamente. Funcin Los estndares especifican el tipo de cable, el formato de conector y la frecuencia del pulso y los niveles de tensin para las comunicaciones entre las computadoras y los perifricos. Los mdems e impresoras son ejemplos tpicos de implementacin de conexiones RS-232. El puerto serie RS-232C, presente en todos los ordenadores actuales, es la forma ms comnmente usada para realizar transmisiones de datos entre ordenadores. El RS-232C es un estndar que constituye la tercera revisin de la antigua norma RS-232, propuesta por la EIA (Asociacin de Industrias Electrnicas), realizndose posteriormente un versin internacional por el CCITT, conocida como V.24. Las diferencias entre ambas son mnimas, por lo que a veces se habla indistintamente de V.24 y de RS-232C (incluso sin el sufijo "C"), refirindose siempre al mismo estndar. El RS-232C consiste en un conector tipo DB-25 de 25 pines, aunque es normal encontrar la versin de 9 pines DB-9, ms barato e incluso ms extendido para cierto tipo de perifricos (como el ratn serie del PC). En cualquier caso, los PCs no suelen emplear ms de 9 pines en el conector DB-25. Las seales con las que trabaja este puerto serie son digitales, de +12V (0 lgico) y -12V (1 lgico), para la entrada y salida de datos, y a la inversa en las seales de control. El estado de reposo en la entrada y salida de datos es -12V. Dependiendo de la velocidad de transmisin empleada, es posible tener cables de hasta 15 metros. Cada pin puede ser de entrada o de salida, teniendo una funcin especfica cada uno de ellos. Las ms importantes son: Pin Funcin TXD (Transmitir Datos) RXD (Recibir Datos) DTR (Terminal de Datos Listo) DSR (Equipo de Datos Listo) RTS (Solicitud de Envo) CTS (Libre para Envo) DCD (Deteccin de Portadora) Las seales TXD, DTR y RTS son de salida, mientras que RXD, DSR, CTS y DCD son de entrada. La masa de referencia para todas las seales es SG (Tierra de Seal). Finalmente, existen otras seales como RI (Indicador de Llamada), y otras poco comunes que no se explican en este artculo por rebasar el alcance del mismo. Numero de Pin Seal Descripcin E/S En DB-25 En DB-9 1 1 - Masa chasis - 2 3 TxD Transmit Data S 3 2 RxD Receive Data E 4 7 RTS Request To Send S 5 8 CTS Clear To Send E 6 6 DSR Data Set Ready E 7 5 SG Signal Ground - 8 1 CD/DCD (Data) Carrier Detect E 15 - TxC(*) Transmit Clock S 17 - RxC(*) Receive Clock E 20 4 DTR Data Terminal Ready S 22 9 RI Ring Indicator E 24 - RTxC(*) Transmit/Receive Clock S (*) = Normalmente no conectados en el DB-25 Conector DB 25
Conector DB 9
Figura 3. Tipos de conectores de 25 y 9
II.3. Protocolo RS-485 RS-485 o tambin conocido como EIA-485, que lleva el nombre del comit que lo convirti en estndar en 1983. Es un estndar de comunicaciones en bus de la capa fsica del Modelo OSI. La interfaz RS485 ha sido desarrollada, de un modo anlogo a la interfaz RS422, para la transmisin serial de datos a altas velocidades y a distancias grandes. En el sector de la automatizacin industrial la interfaz RS485 an est muy extendida, pero est siendo desplazada lentamente por interfaces basadas en Ethernet. Mientras la RS422 slo permite la conexin unidireccional de hasta 10 receptores en un emisor, la RS485 ha sido Universidad de Guanajuato. Balderas Corrales Jos Alberto.
Divisin de Ingenieras Campus Irapuato-Salamanca.
4 concebida como sistema de bus bidireccional con hasta 32 usuarios. Con los modernos Transceiver-ICs es posible conectar hasta 128 usuarios a un sistema de bus mediante la reduccin de la carga que generan los nodos de bus. Fsicamente las interfaces RS422 y RS485 varan poco, de modo que se puede utilizar los mismos mdulos Transceiver para las dos interfaces. Dado que varios transmisores trabajan en una lnea comn, tiene que garantizarse con un protocolo que en todo momento est activo como mximo un transmisor de datos. Los otros transmisores tienen que encontrarse en ese momento en estado ultraohmio. Alambre RS-485 est diseado para ser un sistema equilibrado. En pocas palabras, esto significa que hay dos cables, que no sean de tierra, que se utilizan para transmitir la seal.
Figura 4. Un sistema de equilibrado utiliza dos cables, distintos de suelo, para transmitir datos.
El sistema se llama equilibrio, debido a que la seal en un cable es ideal exactamente lo contrario de la seal en el segundo alambre. En otras palabras, si un cable est transmitiendo un alto, el otro cable se transmite un bajo, y viceversa. Ver Figura 5.
Figura 5. Las seales de los dos cables de un sistema equilibrado son idealmente opuestas. Aunque RS-485 se puede transmitir con xito el uso de varios tipos de medios de comunicacin, que debe ser usado con el cableado comnmente llamado "par trenzado". Qu es el par trenzado, y por qu se usa? Como su nombre lo indica, un par trenzado es ms que un par de hilos de igual longitud y trenzados entre s. El uso de un transmisor RS-485 compatible con el alambre de par trenzado reduce dos principales fuentes de problemas para los diseadores de alta velocidad de redes de larga distancia: radiado EMI y recibi EMI. II.3. 1. Caractersticas Interfaz diferencial Conexin multipunto Alimentacin nica de +5V Hasta 32 estaciones (ya existen interfaces que permiten conectar 256 estaciones) Velocidad mxima de 10 Mbit/s (a 12 metros) Longitud mxima de alcance de 1200 metros (a 100 kbit/s) Rango de bus de -7V a +12V
II.3. 2. Aplicaciones SCSI -2 y SCSI-3 usan esta especificacin para ejecutar la capa fsica. RS-485 se usa con frecuencia en las UARTs para comunicaciones de datos de poca velocidad en las cabinas de los aviones. Por ejemplo, algunas unidades de control del pasajero lo utilizan, equipos de monitoreo de sistemas fotovoltaicos. Requiere el cableado mnimo, y puede compartir el cableado entre varios asientos. Por lo tanto reduce el peso del sistema. RS-485 se utiliza en sistemas grandes de sonido, como los conciertos de msica y las producciones de teatro, se usa software especial para controlar remotamente el equipo de sonido de una computadora, es utilizado ms generalmente para los micrfonos. RS-485 tambin se utiliza en la automatizacin de los edificios pues el cableado simple del bus y la longitud de cable es larga por lo que son ideales para ensamblar los dispositivos que se encuentran alejados. RS-485 Tiene la mayor parte de su aplicacin en las plantas de produccin automatizadas.
Universidad de Guanajuato. Balderas Corrales Jos Alberto.
Divisin de Ingenieras Campus Irapuato-Salamanca.
5 II.4. Protocolo UART UART son las siglas de "Universal Asynchronous Receiver-Transmitter" (en espaol, Transmisor-Receptor Asncrono Universal). ste controla los puertos y dispositivos serie. Se encuentra integrado en la placa base o en la tarjeta adaptadora del dispositivo. Un UART dual, o DUART, combina dos UARTs en un solo chip. Existe un dispositivo electrnico encargado de generar la UART en cada puerto serie. La mayora de los ordenadores modernos utilizan el chip UART 16550, que soporta velocidades de transmisin de hasta 921,6 Kbps (Kilobits por segundo). Las funciones principales de chip UART son de manejar las interrupciones de los dispositivos conectados al puerto serie y de convertir los datos en formato paralelo, transmitidos al bus de sistema, a datos en formato serie, para que puedan ser transmitidos a travs de los puertos y viceversa. Transmisin y recepcin de datos serie El controlador del UART es el componente clave del subsistema de comunicaciones series de una computadora. El UART toma bytes de datos y transmite los bits individuales de forma secuencial. En el destino, un segundo UART reensambla los bits en bytes completos. La transmisin serie de la informacin digital (bits) a travs de un cable nico u otros medios es mucho ms efectiva en cuanto a costo que la transmisin en paralelo a travs de mltiples cables. Se utiliza un UART para convertir la informacin transmitida entre su forma secuencial y paralela en cada terminal de enlace. Cada UART contiene un registro de desplazamiento que es el mtodo fundamental de conversin entre las forma serie y paralelo. El UART normalmente no genera directamente o recibe las seales externas entre los diferentes mdulos del equipo. Usualmente se usan dispositivos de interfaz separados para convertir las seales de nivel lgico del UART hacia y desde los niveles de sealizacin externos.
II.4.1. Caractersticas De La UART
Datos de 7 u 8 bits con paridad par impar o sin paridad Registros de desplazamiento (Shift register) de recepcin y transmisin independientes Buffer de transmisin y recepcin separados El bit menos significativo es el primero en transmitirse y recibirse Protocolos de comunicacin definidos para sistemas multiprocesadores (address bit, built in, idle line) Capacidad para salir del modo de bajo consumo (dormido) a travs de la recepcin de un cambio de estado (deteccin de canto de partida) Tasa de transmisin de bits(baudios) programable
Sealiza deteccin y supresin de errores (flags) y deteccin de direcciones Capacidad independiente de interrupciones para transmisin y recepcin
II.4.2. Inicializacin y Reinicio La inicializacin o el reinicio ocurre cuando el bit SWRT=1 o cuando se produce PUC (Power Up Clear) que viene a ser al aplicarle energa a la tarjeta de desarrollo Ocurre luego que se setean los bits UTXIFGX, TXEFT Es importante destacar que los flags de transmisin y recepcin URXEX y UTXEX no son alterados con SWRST=0, y liberan la USART de la operacin
II.4.3. Formato de caracteres Los caracteres estn agrupados de acuerdo al siguiente esquema
ST representa al bit de partida D0 a D6 son losbit de informacin D7 es 8vo bit de informacin que se habilita al setear CHAR=1 AD es el bit de direccion que se utiliza en el formato adress bit seteando MM=1 PA es el bit de paridad, se ocupa seteando PENA=1 SP es el 1er bit de stop SP es el 2do bit de stop se usa para SP=1
II.5. Protocolo CAN II.5.1. Cmo Trabaja la Comunicacin CAN CAN es una red uno a uno. Esto significa que no hay un maestro que controle el acceso de lectura o escritura de datos en el bus por parte de los nodos individuales. Cuando un nodo CAN est listo para transmitir datos, verifica si el bus se encuentra ocupado, y despus simplemente escribe un marco de CAN en la red. Los marcos de CAN transmitidos no contienen direcciones del nodo transmisor o de ninguno de los probables nodos receptores. Slo se cuenta con un nmero de identificacin nico. Todos los nodos en la red reciben el marco, y dependiendo del nmero de ID cada nodo decide si aceptar o no el marco. Si varios nodos intentan transmitir un mensaje al bus al mismo tiempo, el nodo con la mayor prioridad (nmero de ID menor) automticamente tendr acceso al bus. Los nodos con menor prioridad deben esperar hasta que el bus vuelva a estar disponible antes de iniciar nuevamente su transmisin. De esta manera, es posible implementar redes CAN con comunicacin determinstica. Universidad de Guanajuato. Balderas Corrales Jos Alberto.
Divisin de Ingenieras Campus Irapuato-Salamanca.
6 CAN es un protocolo de comunicaciones serie que soporta control distribuido en tiempo real con un alto nivel de seguridad y multiplexacin. El establecimiento de una red CAN para interconectar los dispositivos electrnicos internos de un vehculo tiene la finalidad de sustituir o eliminar el cableado. Las ECU, sensores, sistemas antideslizantes, etc. se conectan mediante una red CAN a velocidades de transferencia de datos de hasta 1 Mbps. De acuerdo al modelo de referencia OSI (Open Systems Interconnection, Modelo de interconexin de sistemas abiertos), la arquitectura de protocolos CAN incluye tres capas: fsica, de enlace de datos y aplicacin, adems de una capa especial para gestin y control del nodo llamada capa de supervisor. Capa fsica: define los aspectos del medio fsico para la transmisin de datos entre nodos de una red CAN, los ms importantes son niveles de seal, representacin, sincronizacin y tiempos en los que los bits se transfieren al bus. La especificacin del protocolo CAN no define una capa fsica, sin embargo, los estndares ISO 11898 establecen las caractersticas que deben cumplir las aplicaciones para la transferencia en alta y baja velocidad.
Capa de enlace de datos: define las tareas independientes del mtodo de acceso al medio, adems debido a que una red CAN brinda soporte para procesamiento en tiempo real a todos los sistemas que la integran, el intercambio de mensajes que demanda dicho procesamiento requiere de un sistema de transmisin a frecuencias altas y retrasos mnimos. En redes multimaestro, la tcnica de acceso al medio es muy importante ya que todo nodo activo tiene los derechos para controlar la red y acaparar los recursos. Por lo tanto la capa de enlace de datos define el mtodo de acceso al medio as como los tipos de tramas para el envo de mensajes Cuando un nodo necesita enviar informacin a travs de una red CAN, puede ocurrir que varios nodos intenten transmitir simultneamente. CAN resuelve lo anterior al asignar prioridades mediante el identificador de cada mensaje, donde dicha asignacin se realiza durante el diseo del sistema en forma de nmeros binarios y no puede modificarse dinmicamente. El identificador con el menor nmero binario es el que tiene mayor prioridad.
II.5.1. Aplicaciones de CAN Es un bus de comunicaciones serial para aplicaciones de control en tiempo real, con una velocidad de comunicacin de hasta 1 Mbit por segundo, y tiene excelente capacidad de deteccin y aislamiento de errores. Es decir, esta es la mejor y ms nueva tecnologa actual en los vehculos. De hecho, varios fabricantes de vehculos desde el 2003, incluidos Toyota, Ford, Mazda, Mercedes Benz, BMW y otros ya tienen instalado este sistema. Del mismo modo que OBD 2 fue obligatorio para todos los vehculos desde 1996, el CAN Bus ser de instalacin obligatoria en todos los vehculos a partir de 2008 Este sistema emplea dos cables en los cuales viajan dos seales exactamente iguales en amplitud y frecuencia pero completamente inversas en voltaje los mdulos con estos dos pulsos identifica el mensaje, pero tambin tiene opciones de mantener la red activa aunque falle uno de los cables de comunicacin.