Sistema de Comunicación CANBus Basado en Microcontrolador Renesas R8C/23

download Sistema de Comunicación CANBus Basado en Microcontrolador Renesas R8C/23

of 173

description

Proyecto Fin de Carrera. Ingeniería Técnica Industrial en Electrónica Industrial. Escuela Técnica Superior de Ingeniería. Universidad de Huelva.

Transcript of Sistema de Comunicación CANBus Basado en Microcontrolador Renesas R8C/23

ESCUELA TCNICA SUPERIOR DE INGENIERADepartamento de Ingeniera Electrnica, de Sistemas Informticos y Automtica

Sistema de Comunicacin CAN-Bus basado en Microcontrolador Renesas R8C/23Proyecto Fin de Carrera de:

Jos Mara Sancho PeateDirigido por:

Dr. Carlos Rodrigo Rubia Marcos

UNIVERSIDAD DE HUELVA Octubre de 2011

AgradecimientosEn primer lugar quiero mostrar mi agradecimiento al Dr. Carlos Rodrigo Rubia Marcos por su confianza, paciencia y dedicacin constante a la direccin de este trabajo. Al Dr. Juan Antonio Gmez Galn y Manuel Pedro Carrasco por los consejos y el inters mostrado.

As mismo deseo agradecer a mis compaeros Ismael Granado, Sergio Aparicio y Javier Remesa, la inestimable ayuda prestada en momentos de indecisin y bloqueo en el trascurso de este estudio.

A mi familia y a Estefana, por el cario, el nimo y el apoyo constante recibido, ya que, sin ellos no hubiese llegado hasta aqu.

NDICE DE CONTENIDOSCAPITULO 1. PLANTEAMIENTO INICIAL .................................................................... 15 CAPITULO 2. CONTROLLER AREA NETWORK (CAN) .................................................. 172.1 INTRODUCCIN A CAN .................................................................................................... 17 2.1.1 Historia .............................................................................................................. 17 2.1.2 Principios bsicos de CAN ................................................................................... 17 2.1.3 CAN en el mercado actual .................................................................................. 19 2.2 PROTOCOLO DE COMUNICACIN CAN................................................................................. 21 2.2.1 Capa Fsica ......................................................................................................... 212.2.1.1 2.2.1.2 2.2.1.3 2.2.1.4 2.2.1.5 2.2.1.6 Sealizacin Fsica ................................................................................................ 22 Medios de Transmisin ......................................................................................... 27 Topologa de Red .................................................................................................. 29 Acceso al Bus ........................................................................................................ 30 Estndares de Capa Fsica ..................................................................................... 31 Controlador de Protocolo CAN .............................................................................. 33 Principio de Arbitraje del Bus ................................................................................ 36 Formatos de Trama .............................................................................................. 40 Control de Errores ................................................................................................ 49 Formato Extendido de Trama................................................................................ 53

2.2.2

Capa de Enlace................................................................................................... 36

2.2.2.1 2.2.2.2 2.2.2.3 2.2.2.4

CAPITULO 3. HARDWARE DEL SISTEMA. .................................................................. 553.1 INTRODUCCIN .............................................................................................................. 55 3.2 MICROCONTROLADOR ..................................................................................................... 56 3.2.1 Renesas.............................................................................................................. 56 3.2.2 R8C/23 Group .................................................................................................... 56 3.2.3 Registros de la Unidad de Proceso. ..................................................................... 60 3.2.4 Mapa de memoria.............................................................................................. 63 3.2.5 Modulo CAN de R8C/23 ...................................................................................... 64 3.3 CAN TRANSCEIVER ......................................................................................................... 66 3.4 EMULADOR/PROGRAMADOR E8 ........................................................................................ 67 3.5 ESQUEMTICO DE CONEXIN ............................................................................................ 69 3.5.1 Esquemas Elctricos ........................................................................................... 69 3.5.2 PCB Layout. ........................................................................................................ 78 3.5.3 BOM .................................................................................................................. 79

CAPITULO 4. SOFTWARE DEL SISTEMA. ................................................................... 814.1 INTRODUCCIN .............................................................................................................. 81 4.2 HIGH-PERFORMANCE EMBEDDED WORKSHOP ...................................................................... 81 4.3 FLASH DEVELOPMENT TOOLKIT .......................................................................................... 82 4.4 FIRMWARE .................................................................................................................... 83 4.4.1 Algoritmos ......................................................................................................... 83 4.4.2 Cdigo C de Nodo Maestro ................................................................................. 85 4.4.3 Cdigo C de Nodos Esclavos ............................................................................... 99 4.4.4 Libreras ........................................................................................................... 113

VII

CAPITULO 5. CONSIDERACIONES FINALES. ............................................................. 1335.1 RESULTADOS ............................................................................................................... 133 5.2 LNEAS FUTURAS DE TRABAJO. ......................................................................................... 133

REFERENCIAS BIBLIOGRFCAS ................................................................................ 135A) B) C)

MANUALES DE CONSULTA .............................................................................................. 135 WEB SITES .................................................................................................................. 136 ARTCULOS RELACIONADOS............................................................................................. 137

ANEXOS. .......................................................................................................... 139A) B) C)

HOJA DE CARACTERSTICAS DEL TRANSCEIVER L9616 ............................................................ 139 HOJA DE CARACTERSTICAS DEL MICROCONTROLADOR RENESAS R8C/23 .................................. 145 CONTROLADOR CAN DEL MICROCONTROLADOR R8C/23. ..................................................... 157

VIII

NDICE DE FIGURASFigura 2.1: Ejemplo de aplicacin de CAN. ............................................................................... 20 Figura 2.2: Capas de CAN y modelo de referencia OSI. ............................................................. 21 Figura 2.3: Codificacin NRZ y Manchester. ............................................................................. 22 Figura 2.4: Tiempo de Bit. ....................................................................................................... 24 Figura 2.5: Seal del oscilador, reloj CAN y 1 tiempo de bit. ..................................................... 25 Figura 2.6: Curva aproximada Velocidad/Distancia. ................................................................ 26 Figura 2.7: a. Bus de dos hilos - b. Bus de un solo hilo. ............................................................. 28 Figura 2.8: Topologa del Bus de acuerdo a ISO 11898-2 .......................................................... 29 Figura 2.9: Conexin de un controlador CAN............................................................................ 30 Figura 2.10: Caractersticas de la Capa Fsica. ......................................................................... 31 Figura 2.11: Niveles nominales del bus. ................................................................................... 32 Figura 2.12: Nivel dominante/recesivo basado en una configuracin AND. .............................. 37 Figura 2.13: Algoritmo de arbitraje de CAN ............................................................................. 38 Figura 2.14: Ejemplo de un proceso de arbitraje. ..................................................................... 39 Figura 2.15: Formato bsico de una Trama de Datos. .............................................................. 40 Figura 2.16: Formato del Campo de Arbitraje. ......................................................................... 41 Figura 2.17: Formato del Campo de Control (Formato Estndar). ............................................ 42 Figura 2.18: Formato del Campo CRC. ..................................................................................... 42 Figura 2.19: Formato del Campo de Acuse de Recibo o ACK. .................................................... 43 Figura 2.21: Formato de la Trama de Error. ............................................................................. 44 Figura 2.22: Formato de un espacio Inter-Tramas.................................................................... 48 Figura 2.23: Diagrama de Estados de Error.............................................................................. 52 Figura 2.24: Estructura del formato extendido......................................................................... 54 Figura 3.1: Cara Top de un nodo CAN bus. ............................................................................... 55 Figura 3.2: Cara Bottom de un nodo CAN bus. ......................................................................... 55 Figura 3.3:3.2 Diagrama de bloques del R8C/23. ..................................................................... 57 Figura 3.4: Encapsulado de R8C/23 ......................................................................................... 59 Figura 3.5: Pin-out de R8C/23.................................................................................................. 59 Figura 3.6: Registros de la CPU R8C/23.................................................................................... 60 Figura 3.7: Registro de Banderas. ............................................................................................ 61 Figura 3.8: Mapa de memoria del R8C/23 ............................................................................... 63 Figura 3.9: Diagrama de bloques de modulo can del R8C/23. .................................................. 64 Figura 3.10: Diagrama de bloques del L9616. .......................................................................... 66 Figura 3.11: Pin-out del L9616. ........................................................................................ 67 Figura 3.12: Conexin del emulador E8.................................................................................... 67 Figura 3.13: Conexin del Microcontrolador. ........................................................................... 69 Figura 3.14: Conexionado del circuito electrnico. ................................................................... 70 Figura 3.15: Circuito Reset....................................................................................................... 71 Figura 3.16: Circuito de Reloj. .................................................................................................. 71 Figura 3.17: Circuito de Alimentacin. ..................................................................................... 72 Figura 3.18: Circuito de Entradas............................................................................................. 73 Figura 3.19: Circuito de Salidas................................................................................................ 74 Figura 3.20: Conexin del Transceiver L9616. .......................................................................... 74 Figura 3.21: Conexin del interfaz Serie RS-232. ...................................................................... 75 Figura 3.22: Esquema para la conexin del bus I2C.................................................................. 76 Figura 3.23: Conexin para emulador E8. ................................................................................ 77 Figura 3.24: Cara Top. ............................................................................................................. 78

IX

Figura 3.25: Cara Bottom. ....................................................................................................... 78 Figura 4.1: Entorno de desarrollo. ........................................................................................... 81 Figura 4.2: Herramienta de descarga del firmware. ................................................................. 82 Figura 4.3: Algoritmo Nodo Maestro. ...................................................................................... 83 Figura 4.4: Algoritmos Nodos Esclavos. ................................................................................... 84

X

NDICE DE TABLASTabla 2.1: Relacin Velocidad/Distancia. ................................................................................. 27 Tabla 3.1: Gama de productos de R8C/23 Group. .................................................................... 58 Tabla 3.2: Funcin de cada pin del L9616. ............................................................................... 67 Tabla 3.3: Componentes utilizados. ......................................................................................... 79

XI

Cada da sabemos ms y entendemos menosAlbert Einstein

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

CAPITULO 1. PLANTEAMIENTO INICIAL

El principal punto de inters, del documento que presentamos, es el estudio del bus de comunicaciones Controller Area Network (CAN), el cual, es un protocolo que soporta control distribuido en tiempo real con un alto nivel de seguridad y multiplexacin. Adems, dicho protocolo est orientado a mensajes, es decir, la informacin que se intercambia se descompone en mensajes, los cuales, se les asigna un identificador para transmitirlos. Cada mensaje tiene un identificador nico dentro de la red, con lo cual los nodos decidirn aceptar o no dicho mensaje.

El objetivo que se pretende, es establecer y acondicionar un sistema de comunicacin mediante bus CAN. Para alcanzar la meta, ser necesario en primer lugar, estudiar a fondo el protocolo y posteriormente, desarrollar y fabricar los nodos de comunicacin necesarios. Dichos nodos, son sistemas embebidos o empotrados, gestionados por microcontroladores Renesas y obviamente dotados con interfaz CAN para la correcta comunicacin a travs del bus.

Cada nodo debe ser capaz de iniciar la comunicacin CAN, as como transferir y recibir los datos que el usuario estime oportunos. Para que cada una de las unidades de comunicacin pueda realizar estas operaciones correctamente, adems del hardware, necesitaremos programar un conjunto de instrucciones o firmware que los nodos almacenaran en su memoria flash interna.

Una vez descargado el firmware en la memoria de los nodos, estos se conectaran al bus. Tras realizar los test y depuraciones oportunas del sistema, debern realizar las siguientes operaciones:

Se colocar un nodo como maestro, cuya funcin principal ser la monitorizacin del bus, colocando la informacin recibida en los diodos led de datos. El maestro debe tener la posibilidad de enviar en cualquier momento y con mayor prioridad, una peticin a los esclavos.

Captulo 1. Planteamiento Inicial

15

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

Tomaremos entre 4 y 6 nodos como esclavos y todos tendrn el mismo software. El nivel de prioridad de estos nodos se asignara externamente. La funcin principal de los esclavos ser el envo de informacin al maestro, dicha informacin aparecer en los led de los propios esclavos. Ocasionalmente los esclavos recibirn una peticin del maestro, la cual, debern atenderla.

As mismo dichos circuitos estarn dotados de una interfaz UART e I2C, que aunque nosotros no llegaremos a utilizar, estarn preparadas para posibles ampliaciones de nuestro proyecto, en un futuro.

Captulo 1. Planteamiento Inicial

16

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

CAPITULO 2. CONTROLLER AREA NETWORK (CAN)

2.1 Introduccin a CAN2.1.1 Historia Durante el ao 1983 el ingeniero de Bosch, Uwe Kiencke, empez a desarrollar el proyecto que se presentara oficialmente como Controller Area Network, en el congreso de la SAE (Society of Automotive Engineers), en 1986.

Una vez hecho public el protocolo CAN, los fabricantes no tardaron en implementar dicha comunicacin en algunos de sus productos, de hecho, a mediados de 1987 Intel present el primer chip de control CAN, el 82526; poco despus Philips Semiconductors lanz al mercado su primer chip con interfaz CAN, el 80C200.

Esta primera especificacin del bus fue mejorada y ampliada (CAN 2.0) por Bosch en 1991, lo que permiti que dicho protocolo empezara a utilizarse masivamente en la industria automovilstica europea. Mercedes-Benz fue el primer productor de coche en incorporar CAN, y junto a otros grandes fabricantes europeos de automviles fundaron el grupo CiA (Can in Automotion), creadora de la capa de aplicacin para el bus. Aunque varias empresas crearon sus especificaciones para el CAN, se public en 1993 un estndar, el ISO 11898, que fue ampliado en 1995 junto con la aparicin del protocolo unificado de la CiA para el CAN, el CANopen.

En el ao 2000 se define y desarrolla el protocolo de comunicaciones en tiempo real para CAN, denominado Time-Triggered Communication of CAN (TTCAN), bajo el estndar ISO 11898-4.

2.1.2 Principios bsicos de CAN CAN es un protocolo de mltiple acceso con deteccin de colisin no destructiva, resuelta por prioridades. La especificacin define dos valores posibles para el estado del

Captulo 2. Controller Area Network (CAN)

17

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

bus: recesivo y dominante. Si el bus es manejado simultneamente por ms de un nodo el valor dominante prevalece sobre el valor recesivo. Usualmente el valor recesivo est asociado al valor lgico 1 y el valor dominante al valor lgico 0.

Los datos se intercambian en tramas que contienen un identificador (ID) y entre 0 y 8 bytes de datos. El campo ID de cada trama no identifica al nodo que enva el mensaje sino al tipo de mensaje. Es responsabilidad del diseador de cada aplicacin definir como se asignan los ID a las tramas generadas por los diferentes nodos del sistema.

Existen dos formatos posibles para el encabezado de las tramas, que difieren en el campo ID y en algunos campos auxiliares de control. En el formato estndar el campo ID es de 11 bits. Este formato era el nico disponible en la primera versin del protocolo. En el formato extendido en cambio, el campo ID est formado por la concatenacin del ID bsico de 11 bits con el ID extendido de 18 bits, totalizando 29 bits.

Si se produce una colisin entre dos nodos que inician la transmisin de una trama al mismo tiempo, se utiliza un mecanismo de arbitraje por prioridad para resolver el conflicto. El sistema compara cada bit a medida que los contendientes escriben sobre el bus el campo ID y algunos bits adicionales del encabezado de la trama (IDE que indica el formato de ID y RTR que indica el tipo de trama), que conjuntamente se denominan campo de arbitraje. El nodo que escribi un valor recesivo lo detecta porque lee del bus un valor dominante y debe retirarse de la contienda convirtindose en receptor. El nodo que puso el valor dominante sigue adelante con la transmisin sin notar siquiera que hubo un conflicto. El nodo perdedor podr reintentar la comunicacin una vez finalizada la transmisin de la trama por el ganador.

El protocolo CAN fue desarrollado para ser utilizado en sistemas con fuertes requerimientos de confiabilidad, por lo que posee mltiples mecanismos de deteccin de errores: error de bit, error de bit de relleno (stuff), error de CRC, error de trama, error de ACK.

Captulo 2. Controller Area Network (CAN)

18

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

Caractersticas principales de protocolo CAN:

La informacin circula entre unidades de comunicacin mediante un bus de dos hilos. Dicha informacin se enva en tramas con longitud determinada y con una estructura definida.

Uno de esos campos de las tramas, acta como identificador del tipo de mensaje que se enva, y la prioridad de dicho mensaje para trasmitirlo respecto a otros. El mensaje no va direccionado a ningn nodo en concreto, cada uno lo reconocer mediante este identificador si el mensaje le interesa o no.

Todas las unidades de la red pueden actuar como transmisor o receptor, y el nmero de mdulos conectados a la red es variable (dentro de unos lmites).

Cualquier nodo puede comenzar la transmisin, siempre que est libre el bus, si otro lo intenta al mismo tiempo el conflicto se resuelve por la prioridad del mensaje indicado por el identificador del mismo.

El sistema est dotado de una serie de mecanismos que aseguran que el mensaje es trasmitido y recibido correctamente. Cuando se detecta un error, el mensaje es anulado y vuelto a trasmitir de forma correcta (automticamente), de la misma forma un mdulo con problemas avisa a los dems, si la situacin no se soluciona, este mdulo queda fuera de servicio pero el sistema sigue funcionando.

2.1.3 CAN en el mercado actual CAN ha alcanzado un nivel muy alto de diseo robusto e implantacin, se habla de cientos de millones de mdulos vendidos, ya que, los fabricantes estn incorporando controladores CAN de forma bastante generalizada en sus productos.

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.

Captulo 2. Controller Area Network (CAN)

19

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

La industria automovilstica representa el 80% del uso total que se hace del bus CAN, ya que, casi todos los vehculos fabricados en Europa, incorporan varios nodos CAN en su sistema electrnico. Un automvil puede llegar a tener unas 70 Unidades de Control Electrnico para varios subsistemas, como por ejemplo la unidad encargada del control del motor, del ABS, del sistema de sonido, elevalunas elctricos, etc. El bus CAN se implanta como canal de comunicacin entre todos estos sistemas.

Actualmente toda la industria aeronutica est interesada en el protocolo CAN, ya que, la capa de aplicacin CANaerospace se utiliza para el control de los sistemas de las aeronaves. En satlites espaciales y otras aplicaciones del mismo campo, las redes CAN tambin aparecen; por ejemplo, la Agencia Espacial Europea, utiliza CANopen como protocolo de capa de aplicacin en las redes de sus satlites.

Igualmente podemos encontrarnos CAN en la interconexin de los elementos en el control del trfico, en sistemas de control industrial donde los protocolos de las capas superiores como CANopen y DeviceNet CAN logran la integracin entre sistemas, como son, los sistemas para el control de plantas, de maquinarias, de robots, etc.

Adems es comn ver implementado CAN en sistemas domticos, agricultura, as como, para equipamiento mdico, donde Siemens Medical Systems ha especificado una red para la interconexin de quirfanos de la cual ya se ha instalado la primera implementacin en el hospital alemn de Lueneburg.

Figura 2.1: Ejemplo de aplicacin de CAN.

Captulo 2. Controller Area Network (CAN)

20

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

2.2 Protocolo de comunicacin CANLos sistemas distribuidos que utilizan un bus CAN en general pueden ajustarse a un modelo simplificado de tres capas: fsica, enlace y aplicacin. La especificacin de CAN publicada por Bosch se refiere solamente a las subcapas inferiores de la capa de enlace.

La capa de enlaces de datos y la capa fsica del enlace de comunicacin estn descritas en la norma internacional ISO 11519-2 para las aplicaciones de baja velocidad, e ISO 11898 que es el estndar internacional para la comunicacin de la alta velocidad en vehculos.

Tambin existen diferentes estandartes que definen la capa de aplicacin (Ver Figura 2.2), algunos son muy especficos y estn relacionados con sus campos de aplicacin. Entre las capas de aplicacin ms utilizadas cabe mencionar: CAL, CANopen, DeviceNet, etc.

Figura 2.2: Capas de CAN y modelo de referencia OSI.

2.2.1 Capa Fsica La capa fsica es responsable de la transferencia de bits entre los distintos mdulos que componen la red. Define aspectos como niveles de seal, codificacin, sincronizacin y tiempos en que los bits se transfieren al bus.

Captulo 2. Controller Area Network (CAN)

21

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

En un principio tanto la capa de enlace de datos como la capa fsica estaban estipuladas en la norma ISO11898. Posteriormente se consider oportuno separar en ISO11898-1 que define la capa de enlace de datos vlida para cualquier aplicacin CAN, en ISO11898-2 slo para capa fsica de alta velocidad y en ISO 11898-3 para baja velocidad.

La capa fsica se subdivide en tres subcapas: Sealizacin fsica, unidad de acceso al medio y medio fsico.

2.2.1.1 Sealizacin Fsicaa) Representacin de bit El estndar ISO 11898-2 emplea de codificacin de bit llamado No Retorno a Cero (NRZ). Debido a que en NRZ el nivel de seal puede mantenerse constante durante un largo periodo de tiempo, dependiendo de los datos transmitidos, deben tomarse medidas adicionales para asegurar que el intervalo de tiempo mximo permisible entre dos transiciones de seal no sea excedido. Esto es posible, por ejemplo aplicando el mtodo de relleno de bits (bit stuffing). Con ste mtodo un bit de nivel complementario es insertado en el flujo de bits despus de un nmero especfico de bits de igual nivel.

Figura 2.3: Codificacin NRZ y Manchester.

Una seal codificada NRZ con relleno de bit y distancia de relleno de 5 aplicada en el protocolo CAN garantiza la capacidad de transporte ms alta posible con suficiente

Captulo 2. Controller Area Network (CAN)

22

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

capacidad de sincronizacin. Este tipo de codificacin tambin provee caractersticas muy favorables de radiacin de la seal.

b) Temporizacin y Sincronizacin de Bit Las seales elctricas en un bus CAN entre otras cosas, sufren las alteraciones propias de la distorsin que se produce por las caractersticas fsicas de la lnea, retardos de propagacin, demoras producidas en los propios controladores y posibles fuentes externas de interferencia electromagntica. Adems, cada controlador CAN en un bus depende, normalmente, de un oscilador distinto, entre estos osciladores existen diferencias de frecuencia que pueden dar lugar a desfases en el muestreo de tramas en los distintos nodos. Por todo ello, los controladores CAN siguen un proceso de muestreo y resincronizacin orientado a evitar los desajustes debidos a estos factores.

Estos desajustes se manifiestan especialmente en el arbitraje, ya que, cuando varios nodos inician la transmisin de forma simultnea, no estarn perfectamente sincronizados en el inicio, adems su frecuencia de oscilador puede ser ligeramente distinta. Los receptores que se han sincronizado con el primer flanco de bajada detectado, debern resincronizarse sucesivamente con los flancos producidos por el transmisor que resulte vencedor en la contienda.

El bus CAN utiliza sealizacin sncrona con codificacin NRZ, por lo que necesita una operacin de muestreo en los receptores y adems, se requiere resincronizacin continua en el receptor. Resincronizacin es la detencin del periodo de reloj de la seal recibida.

El tiempo de diferencia mximo posible entre los osciladores de transmisin y recepcin durante el periodo mximo de tiempo entre dos transiciones de seal debe por lo tanto ser compensado por suficiente espacio de tiempo (segmentos de fase) antes y despus del punto nominal de muestreo dentro de un intervalo de bit.

Debido al tipo de arbitraje utilizado en el protocolo CAN y al bit dominante ACK (como confirmacin de correcta recepcin) la propagacin de la seal desde un transmisor hacia un receptor y su regreso al primero de nuevo debe ser completado dentro de un tiempo de bit. Por lo tanto, en adicin al tiempo reservado paraCaptulo 2. Controller Area Network (CAN) 23

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

resincronizacin, se requiere de un segmento adicional de tiempo (segmento de retardo de propagacin) para compensar la propagacin de la seal sobre la lnea de bus as como los retardos internos de la seal en los nodos transmisor y receptor.

Figura 2.4: Tiempo de Bit.

La longitud de los segmentos de tiempo en un intervalo de bit son especificados como mltiplos de una unidad bsica de tiempo Tq (time quantum) derivado del periodo del oscilador. Una unidad bsica de tiempo, Tq, representa el tiempo de resolucin del mecanismo de sincronizacin y es tomado en cuenta por el segmento de sincronizacin.

En CAN se distingue dos tipos de sincronizacin: sincronizacin dura al inicio de la trama y re-sincronizacin dentro de una trama. Despus de una sincronizacin dura, el tiempo de bit es re-iniciado sin tomar en cuenta el segmento de sincronizacin. De esta manera la sincronizacin dura obliga a que la transicin causante de la sincronizacin dura se quede dentro del segmento de sincronizacin del tiempo de bit re-iniciado. La Re-sincronizacin por su parte causa un acortamiento o alargamiento del tiempo de bit de tal manera que la posicin del punto de muestreo es cambiada con respecto a la transicin detectada.

Captulo 2. Controller Area Network (CAN)

24

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

Figura 2.5: Seal del oscilador, reloj CAN y 1 tiempo de bit.

Para que el controlador pueda muestrear la seal recibida con seguridad y precisin, ha de utilizar una frecuencia de muestreo superior a la de la seal transmitida en el bus. La frecuencia bsica del controlador es as varias veces superior a la de comunicacin en el bus. De tal manera que los segmentos estn compuestos de un cierto nmero programable de ciclos de reloj CAN. Estos ciclos estn definidos a partir del oscilador de cuarzo y un valor BRP (Baud Rate Prescaler) que acta como un divisor de frecuencia indicando cuntos ciclos de seal del oscilador tendr un ciclo de seal de reloj CAN (Ver Figura 2.5).

El mnimo valor de BRP es de 1, y su longitud est en funcin de la frecuencia del oscilador y de la velocidad de transmisin de tal manera que se satisfagan los requerimientos de los segmentos en cuanto a cantidad de unidades Tq. (Tq= BRP*TOscilador) Conceptualmente el conjunto total de Tqs que corresponden con el tiempo nominal de bit se dividen en los siguientes subconjuntos, en este orden:

Segmento de sincronizacin (Sync_Seg): 1Tq. Es la parte de un tiempo de bit donde se est esperado que ocurran las transiciones de seal.

Segmento de propagacin (Prop_Seg): desde 1 a 8 Tq. Provee el tiempo necesario para el establecimiento del retardo mximo de propagacin de la seal

Captulo 2. Controller Area Network (CAN)

25

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

dentro de la red. Este retardo es la suma del retardo de lnea y el retardo interno de los controladores.

Segmento de fase 1 (Phase_Segl): desde 1 a 8 Tq. Est orientado a la deteccin y reajuste de desfases entre nodos. Puede alargarse en operaciones de resincronizacin inter-trama.

Segmento de fase 2 (Phase_Seg2): mximo valor entre el Tiempo de proceso de informacin y Phase_Segl. El tiempo de proceso de informacin es igual o menor que 2 Tq. Puede acortarse (nunca menos del tiempo de proceso de informacin) en las operaciones de resincronizacin intertrama.

El muestreo del bit se realiza en el momento final de Phase_Segl e inicial de Phase_Seg2. Por otra parte se define un parmetro adicional: el salto de resincronizacin (SJW o "Resynchronization Jump Width") con valores de entre 1 y 4 TQ, pero no mayores que Phase_Seg2.

El nmero total de unidades Tq por bit se puede configurar desde 8 a 25.

c) Velocidad y Longitud del Bus CAN

Figura 2.6: Curva aproximada Velocidad/Distancia.

Lo normal es tener buses de corta longitud, para as un funcionamiento ptimo. Pero si por el contrario tenemos redes de largas longitudes esto ir mermando nuestra

Captulo 2. Controller Area Network (CAN)

26

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

velocidad de transmisin, debido a los retardos en la lnea, impedancias, tolerancias de los osciladores, etc. Para atenuar estas carencias se colocan en los extremos del bus impedancias de carga para una mayor estabilidad.

Vel. de Transmisin1000 Kbps 500 Kbps 250 Kbps 125 Kbps 100 Kbps 50 Kbps

Long. Mxima del Bus40 m 110 m 280 m 620 m 790 m 1640 m

Tabla 2.1: Relacin Velocidad/Distancia.

Estos resultados demuestran que CAN tambin puede ser usado para realizar redes extendidas ya que sus posibles valores de velocidad de datos son de orden equivalente a aquellas de otros sistemas de bus de campo.

2.2.1.2 Medios de TransmisinUn requisito fundamental para el mtodo de arbitraje de CAN, es la habilidad para representar un nivel de seal dominante y recesivo, es decir, que un nodo no est en condicin dominante a no ser que el resto los nodos hayan aplicado un bit de nivel recesivo. Tan pronto como un nodo ha iniciado la transmisin de un bit de nivel dominante, el bus debe estar en nivel dominante. Este principio puede ser realizado en medios elctricos y pticos.

El medio elctrico tpicamente usado para implementar redes CAN es un par trenzado, diferencialmente manejado, de cables con retorno comn (Ver Figura 2.7a).

Captulo 2. Controller Area Network (CAN)

27

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

Figura 2.7: a. Bus de dos hilos - b. Bus de un solo hilo.

Existe tambin el uso de buses de un solo alambre ya que es particularmente til para la electrnica del cuerpo del vehculo. Esta solucin asume una tierra comn para los nodos (Ver Figura 2.7b). El bus de un solo cable est especificado por el estndar SAE J 2411.

Adicionalmente se han hecho esfuerzos por desarrollar soluciones para transmisin de seales CAN junto con el suministro de energa en las mismas lneas pero la transmisin simultnea de energa y datos es muy problemtica debido al proceso de arbitraje usado en el protocolo CAN.

Otro medio usado para implementar redes CAN es la fibra ptica. Las ventajas conocidas de los medios pticos tales como transmisin libre de problemas de inmisin (interferencia electromagntica inducida) y emisin (niveles elevados de potencia electromagntica emitida), estn llegando a ser muy importantes para redes CAN debido a la creciente disponibilidad de tecnologa de transmisin ptica eficiente en costo, especialmente fibra ptica de plstico. La caracterstica de inmunidad a interferencia elctrica del medio ptico es atractiva principalmente para aplicaciones en ambientes potencialmente explosivos y perturbados electromagnticamente.

Captulo 2. Controller Area Network (CAN)

28

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

2.2.1.3 Topologa de RedLa topologa del cableado debe estar tan cerca como sea posible a una sola estructura de lnea nica, para reducir al mnimo las reflexiones. Los segmentos del cable para la conexin de los nodos del bus (lneas drop) deben ser tan cortos como sea posible, especialmente en tasas altas de bit.

Para la correcta interpretacin de los niveles de bus recibidos por un nodo, es necesario que las reflexiones sobrepuestas de seal sean suficientemente atenuadas en el momento en que el nivel de bit es muestreado. Estas reflexiones de la seal pueden ser evitadas terminando ambos extremos de las lneas de bus con una resistencia terminal de igual valor a la impedancia de la lnea del bus.

Figura 2.8: Topologa del Bus de acuerdo a ISO 11898-2

El estndar CAN de alta velocidad ISO 11898-2 especifica una topologa como lo muestra la anterior con resistencias de valor nominal 120 Ohms en los extremos para una velocidad de 1Mbps, una longitud mxima de bus de 40 m y una longitud mxima de lnea drop de 30cm. Por supuesto, con velocidades de transmisin ms bajas, pueden obtenerse longitudes de bus as como longitudes de lneas drop ms largas.

Tambin podemos encontrar otras topologas ms complejas, mediante el uso de:

Repetidores: aaden retardo a la propagacin de la seal. Se mantiene un nico bus lgico.

Puentes: conectan dos redes lgicas separadas a nivel de enlace. Solo retransmiten aquellos mensajes que no son locales.

Pasarelas: conectan redes con diferentes protocolos de alto nivel cuando estn presentes.

Captulo 2. Controller Area Network (CAN)

29

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

2.2.1.4 Acceso al BusLa conexin de los controladores CAN al bus generalmente es realizada por medio de un transceiver. Esto resulta en una conexin simple, no costosa y estandarizada, con lo que se alcanza sin dificultad la interoperabilidad deseada en el nivel fsico.

Esta conexin es designada como Acceso al Medio Bus. Para la conexin de un controlador CAN a un bus de 2 alambres, en el mercado estn disponibles una variedad de chips transceiver CAN de acuerdo a los diferentes estndares de capa fsica. Bsicamente, la interfaz al medio elctrico consiste de un amplificador de transmisin y otro de recepcin.

Uno de los principales parmetros provistos por un transceiver CAN es el rango de voltaje de modo comn. Este parmetro especifica la mxima diferencia de potencial posible entre nodos CAN, en que los niveles de seal pueden todava ser correctamente interpretados por la circuitera de entrada de un transceiver.

Figura 2.9: Conexin de un controlador CAN.

Una de las caractersticas de un transceiver CAN es el modo de funcionamiento stand-by. De esta forma, la parte transmisora del transceiver es apagada. El receptor monitorea si ocurre un nivel dominante en el bus. Y si detecta un mensaje de wake up, el transceiver se despierta. En este modo de operacin el sistema consume muy poca potencia.

Captulo 2. Controller Area Network (CAN)

30

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

As, aplicaciones que consumen altas cantidades de energa pueden ser apagadas y activadas de nuevo a travs de las propias lneas del bus.

Los diferentes estndares para el interfaz fsico del bus pueden ser llevados a cabo usando los transceivers apropiados.

2.2.1.5 Estndares de Capa FsicaDiferentes estndares especifican los niveles de seal, topologa de red, nmero de nodos, as como los requerimientos para el medio y conectores.

i.

Estndar ISO 11898-2El estndar ISO 11898-2, para comunicacin de alta velocidad en vehculos, es el

ms importante y tambin el recomendado por CAN-in-Automation para uso en aplicaciones industriales.

Figura 2.10: Caractersticas de la Capa Fsica.

Los datos principales de este estndar son: Velocidad de transmisin de hasta 1 Mbps. Longitud mxima del bus de 40m a 1 Mbps. Mxima longitud de una lnea drop a 1 Mbps 30 cm. Bus de dos hilos. El nmero total de nodos est limitado por la carga elctrica del bus.

Captulo 2. Controller Area Network (CAN)

31

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

-

Retardo de propagacin nominal de 5ns/m. Impedancia caracterstica de lnea de 120 Ohms. Rango de voltaje de modo comn desde -2V (CAN_L) a +7V (CAN_H).

Un receptor reconoce un bit recesivo si el nivel del voltaje diferencial de entrada (Vdiff = VcanH VcanL) si est por debajo de 0.5V, y un nivel dominante si este valor excede 0.9V.

-

Deteccin de un Bit Recesivo:

Vdiff < 0,5V Normalmente: Vdiff = 0, con VcanH = VcanL = 2,5V

-

Deteccin de un Bit Dominante:

Vdiff > 0,9V Normalmente: Vdiff = 2, con VcanH = 3,5V y VcanL = 1,5V

Figura 2.11: Niveles nominales del bus.

ii.

Estndar CiA DS-102La realizacin de redes abiertas CAN es apoyada por las recomendaciones DS-102

de la asociacin CiA (CAN-in-Automation) para acceso al bus.

Esta propuesta especfica: Velocidades de transmisin estandarizadas de 10 Kbps a 1 Mbps con recomendaciones para el establecimiento de parmetros de temporizacin de bit. Recomendaciones para las lneas de buses. Conectores y asignacin de pines.

Captulo 2. Controller Area Network (CAN)

32

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

iii. Estndar ISO11898-3 (tolerante a fallos)Para requerimientos ms bajos con respecto a velocidad de transmisin y longitud del bus, la especificacin de baja velocidad tolerante a fallos est disponible como una forma alternativa de interfaz al bus.

Esta especificacin, desarrollada por las compaas Philips y Bosch, reemplaza el estndar CAN de baja velocidad ISO-11519 y representa la tercera parte del estndar ISO 11898.

El uso del interfaz de bus tolerante a fallos es principalmente para redes electrnicas de confort en vehculos motorizados.

iv.

Estndar ISO 11992ISO 11992 describe una propuesta adicional para usar CAN en redes de baja

velocidad. Est basado en una conexin punto a punto para uso en vehculos de remolque y sus trailers, tambin conocido como el estndar truck to trailer.

Un par trenzado no blindado es definido como medio para el bus. Debido a longitudes pequeas y a la relativamente baja velocidad de transmisin, no se especifica resistencia en los extremos de las lneas del bus.

ISO 11992 especifica la mxima capacitancia por longitud, la impedancia de lnea as como caractersticas de los conectores.

2.2.1.6 Controlador de Protocolo CANTodas las funciones necesarias para el procesamiento de capa 1 y 2 del protocolo CAN, as como, funciones adicionales de apoyo, son implementadas en los controladores CAN (Controladores del Protocolo). A travs de una interfaz simple, el microcontrolador solamente tiene que pasar al controlador CAN los mensajes a ser transmitidos, o leer mensajes recibidos por ste.

Captulo 2. Controller Area Network (CAN)

33

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

La transmisin de datos a travs de redes CAN est basada en el principio de broadcast. Esto significa que todos los mensajes transmitidos al bus estn disponibles para todos los nodos y son recibidos por sus controladores.

En muchos casos un cierto nodo solamente estar interesado en pocos mensajes de los que se les ha enviado. Por esta razn es apropiado implementar un mecanismo adicional de filtrado de mensajes en el controlador que asegure que un controlador de host sea informado de la recepcin de un nuevo mensaje solamente si ste es relevante para el mismo. Esto se llama filtro de aceptacin. Para realizar esta funcin, el controlador debe ser informado de todos los identificadores de mensajes en los que el nodo est interesado.

La realizacin de todas las funciones relacionadas al protocolo en un hardware controlador separado libera al microcontrolador de estas tareas crticas de tiempo. Adems, los controladores CAN realizan funciones adicionales con respecto al filtrado de mensajes, almacenamiento de mensajes y respuesta automtica a solicitudes remotas de mensajes.

Con respecto al control de mensajes, es posible distinguir entre dos principios de implementacin:

Basic CAN: En esta implementacin existe un vnculo muy fuerte entre el controlador CAN y su microcontrolador asociado. El microcontrolador ser interrumpido para tratar cada mensaje CAN que reciba. Un controlador de Basic CAN normalmente tiene dos buffers de recepcin y un buffer de transmisin. Los menajes se reciben en un buffer, mientras, el microcontrolador lee la informacin recibida en el otro buffer. Si se recibe un mensaje mientras ambos buffer de recepcin estn llenos, se rechaza dicho mensaje, es decir, se mantienen los mensajes ms antiguos. El microcontrolador es quin lleva el peso de las tareas haciendo as que el controlador CAN sea ms simple y por tanto ms barato. Este mtodo es bueno para nodos encargados de manejar informaciones espordicas, disminuyendo la ocupacin del bus. Es la arquitectura ms simple.

Captulo 2. Controller Area Network (CAN)

34

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

Full CAN: En este caso, el controlador CAN tiene varios buffers. Adems tiene la capacidad para filtrar exactamente los tipos de mensaje que se desee y puede transmitir y recibir mensajes sin ayuda del microcontrolador. En definitiva, el controlador le reduce la carga al microcontrolador. Tambin se pueden habilitar interrupciones en el microcontrolador para notificarle la llegada de un mensaje.

Debido a los requerimientos de tecnologa la funcin del transceiver generalmente no es integrada en el controlador CAN.

Captulo 2. Controller Area Network (CAN)

35

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

2.2.2 Capa de Enlace

2.2.2.1 Principio de Arbitraje del BusEn redes CAN, los nodos acceden al bus de acuerdo a un esquema no centralizado basado en contencin. Es posible que varios nodos empiecen la transferencia de una trama simultneamente. Sin embargo no est permitido que un nodo inicie una transmisin mientras el bus no est libre.

Un nodo cualquiera considera que el bus est libre si el campo de interrupcin de la trama en transmisin no ha sido interrumpido por un bit dominante. Esto sucede despus de una secuencia consecutiva de al menos 11 bits de nivel recesivo al final de la trama. Si durante la transmisin de una trama, existe otra pendiente de ser transmitida, sta ser iniciada a partir del primer bit despus del campo de interrupcin de la trama anterior.

La metodologa utilizada es CSMA/CD+AMP (Carrier Sense Multiple Access, with Collision Detection and Arbitration on Message Priority) Acceso mltiple con Escucha de Portadora, Deteccin de Colisin y Arbitraje basado en la Prioridad del Mensaje.

Cuando varios nodos empiezan simultneamente una transmisin, el conflicto en el bus es resuelto por un Proceso de Arbitraje no destructivo basado en contencin sobre el Campo de Arbitraje de la trama CAN. El campo de arbitraje est compuesto por el Identificador de Trama y por el Bit de Solicitud Remota de Transmisin RTR (Remote Transmission Request) el cual es usado para diferenciar entre una Trama de Datos y una Trama de Solicitud de Datos. En el formato bsico de la trama su identificador de trama contiene 11 bits, en el formato extendido 29 bits. El bit ms significante del identificador es transmitido primero (el del extremo izquierdo).

Captulo 2. Controller Area Network (CAN)

36

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

Figura 2.12: Nivel dominante/recesivo basado en una configuracin AND.

El arbitraje no destructivo est basado en la posibilidad de dos niveles fsicos en el bus, dominante y recesivo. Estos niveles pueden ser representados fcilmente, por ejemplo por un circuito transmisor en colector abierto (configuracin AND) como lo muestra la Figura 2.12. Para conseguir un 1 lgico en el bus es necesario que todos los nodos transmitan un 1, mientras que para tener un 0 lgico es suficiente que un solo nodo transmita un 0. Por tanto un nivel 0 es llamado dominante, y un nivel 1 recesivo. Estos mismos estados de nivel recesivo/dominante tambin pueden ser representados en medios de transmisin pticos. En este caso un nivel recesivo es representado por un estado oscuro (sin luz), un nivel dominante por un estado brillo.

El bus estar en nivel recesivo mientras se encuentre desocupado. Un nodo seala el inicio de la transmisin de una trama transmitiendo un bit dominante de Inicio de Trama SOF (Start Of Frame). Durante la fase de arbitraje cada nodo transmisor monitorea el nivel del bus y lo compara con el nivel transmitido (Ver Figura 2.14).

Captulo 2. Controller Area Network (CAN)

37

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

Figura 2.13: Algoritmo de arbitraje de CAN

Cada nodo que ha transmitido un bit recesivo y monitoreado uno dominante detiene su transmisin inmediatamente y pasa a ser receptor de la trama transmitida por otro nodo.

La siguiente figura ilustra la secuencia de un proceso de arbitraje entre tres nodos, en los que, los nodos 1, 2 y 3 inician el proceso al mismo tiempo (1). El nodo 2 pierde acceso al bus al tiempo (2), el nodo1 lo propio al tiempo (3). Ambos nodos detienen su transmisin pero continan recibiendo; solo el nodo 3 contina con el proceso y recibe

Captulo 2. Controller Area Network (CAN)

38

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

acceso al bus al final de la fase de arbitraje. Por tanto solo ste nodo puede transmitir su trama sobre el bus.

Figura 2.14: Ejemplo de un proceso de arbitraje.

De esta manera, el arbitraje del protocolo CAN nos garantiza que solo un nodo del bus se mantendr en el mismo cuando varios quieran acceder simultneamente.

Si la transmisin de una trama especfica de datos es iniciada simultneamente con una solicitud de la misma trama hecha por un receptor a travs de una Trama de Solicitud Remota de Transmisin, el conflicto de arbitraje no puede ser resuelto solamente por el identificador de trama (ya que son los mismos). En este caso, el bit RTR que est a continuacin del identificador resuelve el conflicto de acceso al bus. Por esta razn, el bit RTR en una trama de datos es transmitido en nivel dominante (0) y en una trama de solicitud remota como recesivo (1).

En definitiva, el principio de arbitraje est basado en una comparacin del nivel de bit transmitido por el nodo, con el nivel monitoreado en el bus realizado por cualquiera de los nodos transmisores. Durante la transmisin del campo arbitraje, el transmisor comprueba en cada bit si todava est autorizado para transmitir o si est transmitiendo otra estacin de mayor prioridad, los nodos transmisores con mensajes de menor prioridad se convierten inmediatamente en receptores y posteriormente repetirn su intento de emisin.

Captulo 2. Controller Area Network (CAN)

39

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

2.2.2.2 Formatos de Tramaa) Trama de DatosUna trama de datos (Ver Figura 2.15) est compuesta de los siguientes campos de bit: Inicio de trama (SOF), Campo de arbitraje, Campo de Control, Campo de Datos, Campo CRC, Campo de Acuse de Recibo (ACK) y Campo de Fin de Trama (EOF).

i. Bit de Inicio de Trama (SOF) Este bit marca el inicio de una trama de datos o de una trama remota y es representado por un bit dominante. A un nodo del bus se le permite empezar el arbitraje del bus cuando ste se encuentra libre o despus de que se ha desocupado. El fin de una actual transmisin de trama es indicado por una sucesin mnima de 11 bits recesivos.

Figura 2.15: Formato bsico de una Trama de Datos.

ii. Campo de Arbitraje El campo de arbitraje (Ver Figura 2.16) consiste en un campo identificador y un bit de Solicitud Remota de Transmisin, RTR (Remote Transmission Request).

Una trama es identificada y su prioridad definida por el identificador de trama. En el formato bsico de trama la longitud de su identificador es de 11 bits. Esto significaCaptulo 2. Controller Area Network (CAN) 40

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

que 2048 ( 211 ) tramas diferentes son distinguibles en el formato bsico del sistema CAN. Estos bits son transmitidos en orden desde el bit 10 al bit 0. El bit ms significativo es el bit 10.

Figura 2.16: Formato del Campo de Arbitraje.

Ambas tramas, de datos y remota, son identificadas por el bit RTR. Como anteriormente se explic, en caso de un proceso de arbitraje simultneo entre una trama de datos y otra de solicitud de la misma trama (Trama RTR) es razonable priorizar a la trama de datos, es por esto que el Bit RTR en una trama de datos es transmitido dominantemente y en una trama RTR recesivamente.

iii. Campo de Control El Campo de Control (Ver Figura 2.17) consiste de 6 bits, incluyendo el Cdigo de Longitud de Datos DLC (Data Length Code). El primer bit, Bit Identificador de Extensin IDE (Identifier Extension), distingue entre tramas de formato bsico y extendido. Para tramas de formato bsico (identificador de 11 bits) este bit es transmitido dominantemente. Por tanto, colisiones entre una trama de formato bsico y otra de formato extendido, ambas con el mismo identificador bsico, son resueltas de tal manera que la trama de formato bsico prevalece sobre la extendida. El segundo bit (r0) es reservado para futuras extensiones del protocolo CAN y es transmitido dominantemente hasta que su funcin sea definida. Los receptores aceptan ambos niveles, dominante y recesivo, como bit reservado.

Captulo 2. Controller Area Network (CAN)

41

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

Figura 2.17: Formato del Campo de Control (Formato Estndar).

Con los ltimos cuatro bits del campo de control, se indica el nmero de bytes transmitidos a continuacin en el campo de datos. Un valor de 0 corresponde a 0 bytes de datos, un valor de 8 corresponde a 8 bytes de datos.

iv. Campo de Datos Este campo contiene los datos a ser transferidos dentro de una trama CAN y puede contener de 0 a 8 bytes. El bit ms significante es transmitido primero.

v. Campo CRC El campo CRC (Ver Figura 2.18) consiste de una secuencia de chequeo de 15 bits y un bit delimitador transmitido recesivamente. La secuencia CRC es utilizada para que un receptor pueda saber si la trama recibida fue afectada o no por perturbaciones del medio.

Figura 2.18: Formato del Campo CRC.

vi. Campo de Acuse de Recibo (ACK) El campo de 2 bits de Acuse de Recibo (ACK) (Ver Figura 2.19) consiste 1 bit llamado Slot de Acuse de Recibo seguido por el bit Delimitador de Acuse de Recibo. En el campo de ACK, el transmisor enva dos bits recesivos.

Captulo 2. Controller Area Network (CAN)

42

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

Figura 2.19: Formato del Campo de Acuse de Recibo o ACK.

El protocolo CAN est basado en el principio de estacin-neutral, acuse de recepcin positiva. En el que el transmisor de una trama espera por el ACK de recepcin correcta de al menos un nodo receptor. Por tanto cualquier receptor que ha recibido correctamente una trama lo reporta al transmisor de la misma sobre-escribiendo el bit recesivo recibido del transmisor por un bit dominante durante el slot ACK. Con un bit dominante durante el slot de ACK el transmisor se da por enterado que al menos uno de los nodos ha tenido recepcin correcta de la trama transmitida.

Un bit delimitador ACK recesivo siempre va despus del slot ACK. Esto es requerido para distinguir un ACK positivo (bit dominante durante el slot ACK) de un posible inicio simultneo de una trama de error.

vii. Bandera de Fin de trama (EOF) Cada trama de datos y remota es delimitada por una secuencia de 7 bits recesivos. Juntos con el igualmente recesivo delimitador ACK resulta en una secuencia total de 8 bits recesivos al final de la trama remota o de datos.

Por tanto una secuencia de 8 bits recesivos indica que una trama ha sido transmitida completamente libre de errores.

b) Trama RemotaCon esta trama cada nodo puede solicitar al nodo responsable el inicio de la transmisin de una trama especfica. La trama solicitada es especificada por el identificador transmitido con la trama remota. Mientras que una trama especfica puede ser solicitada por todos los nodos receptores, solamente un nodo debe ser responsable de transmitir la misma.

Captulo 2. Controller Area Network (CAN)

43

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

El formato de una trama remota corresponde a la trama de datos ilustrada en la Figura 2.15, con la diferencia de que el bit RTR es transmitido recesivamente en una trama remota y dominantemente en una trama de datos. As, una trama remota que compite por el acceso al bus con una trama de datos del mismo identificador pierde en ste proceso. Adems, el campo de datos de una trama remota est vaco. El cdigo de longitud de datos en la trama remota debe corresponder a aquel de la trama de datos solicitada.

c) Trama de ErrorLa deteccin de cualquier error durante la transmisin o recepcin de una trama de datos o remota es sealado por una trama de error (Ver Figura 2.20) que intencionalmente viola la regla de relleno de bits y causa que el transmisor de la trama repita la transmisin de la misma. La deteccin de un error durante la transmisin o recepcin de una trama de sobrecarga o de error tambin causa la transmisin de una nueva trama de error.

Figura 2.20: Formato de la Trama de Error.

Una trama de error consiste de dos campos de bits. El primer campo est dado por la superposicin de banderas de error transmitidas por uno o varios nodos. El segundo campo, una secuencia de 8 bits recesivos, indica el fin de esta trama (Delimitador de Error) anloga a la trama remota y de datos. La Figura 2.10 muestra el formato de una trama de error activa. Esta forma de trama es transmitida por un nodo que posee completos derechos de sealar un error detectado (Nodo Activo de Error).

Captulo 2. Controller Area Network (CAN)

44

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

i. Bandera de Error Un nodo empieza la transmisin de una bandera de error inmediatamente despus de detectar una condicin de fallo, esto sucede en el siguiente intervalo de bit a continuacin de la deteccin; a no ser que se trate de un error CRC, en cuyo caso la transmisin de una bandera de error es iniciada en el bit siguiente al delimitador ACK para no perturbar la funcin de acuse de recibo, a menos que una bandera de error para otra condicin de error ya haya sido iniciada.

Un nodo defectuoso que errneamente detecta un fallo puede bloquear el bus, ya que, la transmisin de una bandera de error activa destruye la trama bajo transmisin. Por consiguiente, dos estados de nodos son diferenciados con respecto al derecho de un nodo en sealar errores (Ver Seccin 2.2.2.3).

El estado Activo es para los nodos con tasas de deteccin de errores por debajo de un cierto lmite y a los que se les permite sealar errores detectados transmitiendo una Bandera de Error Activa consistente de 6 bits dominantes. Mientras que aquellos nodos con un promedio de tasa de deteccin de error que excede un lmite fijo son sospechosos de tener un problema local y por ende solo tienen limitados derechos al sealar errores, stos caen en el estado de Pasivo. Un Nodo Pasivo seala la deteccin de una condicin de error transmitiendo una secuencia de 6 bits recesivos (Bandera de Error Pasiva). Un nodo en estado Activo que detecta una condicin de error seala esto transmitiendo una bandera de error activa (sealizacin primaria de error). Esto viola la regla de relleno de bits aplicada a todos los campos desde SOF hasta el delimitador CRC o destruye la forma fija del campo ACK o del EOF. Como consecuencia, todos los otros nodos tambin detectan una condicin de error e inician la transmisin de una bandera de error (sealizacin secundaria de error) por su parte. As la secuencia de bits dominantes que en realidad pueden ser monitoreados en el bus resulta en una superposicin de diferentes banderas de error transmitidas por diferentes nodos. Dependiendo del punto de tiempo en el que otros nodos detectan la condicin de error esto resulta en una secuencia de entre 6 y 12 bits dominantes.

Captulo 2. Controller Area Network (CAN)

45

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

Si un nodo transmisor Pasivo detecta un error, ste trata de sealarlo transmitiendo una secuencia de 6 bits recesivos (Bandera de Error Pasiva). Cuando la bandera de error pasiva empieza dentro de un campo de trama que est codificado con relleno de bit, los receptores reconocen un error de relleno de bit. Los bits de la Bandera de Error Pasiva antes que sealar errores sirven para demorar al nodo Pasivo 6 tiempos de bit antes de transmitir de nuevo (periodo en el cual otro nodo puede ganar el acceso).

ii. Delimitador de Error Una trama de error es finalizada por una secuencia de 8 bits recesivos, la cual se forma de la siguiente manera: Despus de transmitir una bandera de error, el nodo transmite bits recesivos y monitorea el nivel del bus hasta reconocer un bit recesivo. Luego inicia la transmisin de 7 bits recesivos ms (en total transmite una secuencia mnima de 8 bits recesivos consecutivos). Con este mecanismo un nodo es capaz de determinar si fue el primero en transmitir una bandera de error y as haber detectado primero la condicin de error. Este mecanismo es la base para el confinamiento de nodos errneos.

d) Trama de SobrecargaEsta trama es proporcionada para solicitar un retraso de la prxima trama de datos o remota por el receptor de un nodo (Trama de Sobrecarga Solicitada) o para sealar ciertas condiciones de error (Trama de Sobrecarga Reactiva) relacionadas al campo de interrupcin.

Las tramas de sobrecarga reactiva son transmitidas despus de la deteccin de las siguientes condiciones de error:

Deteccin de un bit dominante durante los primeros dos bits del campo de interrupcin. Un bit dominante detectado en el tercer bit del campo de interrupcin es interpretado como un SOF.

Captulo 2. Controller Area Network (CAN)

46

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

Deteccin de un bit dominante en el ltimo bit del campo EOF por un receptor, o deteccin de un bit dominante por un receptor o transmisor en el ltimo bit de un delimitador de trama de error o de sobrecarga.

Una trama de sobrecarga puede ser considerada como una forma especial de trama de error (Ver Figura 2.20) y es similar a sta pues est compuesta por una bandera de sobrecarga y de un delimitador de sobrecarga. En contraste a la transmisin de una trama de error, la generacin de una trama de sobrecarga es limitada a condiciones muy especficas relacionadas al campo de interrupcin. Una importante distincin adicional es que la transmisin de una trama de sobrecarga no causa la re-transmisin de una trama previa, como una trama de error lo hace.

La bandera de sobrecarga consiste de una secuencia de 6 bits dominantes consecutivos y destruye la forma fija del campo de interrupcin. Como consecuencia, todos los otros nodos tambin detectan una condicin de sobrecarga y por su parte transmiten una bandera de sobrecarga. Despus de transmitir una bandera de sobrecarga, cada nodo monitorea el bus hasta detectar un bit recesivo, a continuacin de lo cual cada nodo transmite 7 bits recesivos adicionales para completar los 8 bits del delimitador de sobrecarga.

Para retrasar tramas adicionales una trama de sobrecarga se debe iniciar en el primer bit de un campo de interrupcin esperado. Como mximo se permite generar sucesivamente tramas de sobrecarga para retrasar la prxima trama.

e) Espacio Inter-TramasTramas remotas y de datos son separadas de todas las tramas precedentes (tramas de datos, remotas, de error, de sobrecarga) por un Espacio Inter-Tramas. En contraste, las tramas de error y de sobrecarga son transmitidas sucesivamente, sin un espacio intertramas entre ellas. El espacio inter-tramas consiste de un campo de bits recesivos que representa una distancia mnima de tres bits entre tramas, Campo de Interrupcin, seguido por un campo de longitud aleatoria de nivel recesivo (bus desocupado) (Ver Figura 2.21) hasta que una nueva transmisin de trama sea iniciada. El espacio ntertramas adicionalmente contiene un tiempo de impedimento de transmisin de 8 bits

Captulo 2. Controller Area Network (CAN)

47

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

(Transmisin Suspendida) para nodos pasivos de error que fueron los transmisores de la trama precedente.

Figura 2.21: Formato de un espacio Inter-Tramas.

Con los 3 bits del campo de interrupcin, los 7 bits del delimitador de trama y el delimitador ACK recesivo de una trama remota o de datos, la secuencia de bits recesivos entre 2 tramas tiene una longitud mnima total de 11 bits. Por tanto, despus de esta secuencia el bus est disponible de nuevo. Luego, la deteccin de un bit dominante es interpretada como el bit SOF de una nueva trama.

Con respecto al acceso repetido al bus se aplica una regla especial para nodos pasivos de error. El derecho de transmisin de nodos en este estado es reducido en relacin a todos los otros nodos activos de error por medio de un Campo de Transmisin Suspendida de 8 bits a continuacin del campo de interrupcin. Si mientras un nodo en estado pasivo espera que ste campo expire, una transmisin causada por un nodo de estado activo empieza, el primero vendr a ser un receptor del segundo.

Ya que el bus solamente es considerado disponible para un nodo transmisor pasivo de error, despus de completar el tiempo de transmisin suspendida, tramas de prioridad ms baja de nodos activos de error pendientes de transmitirse pueden acceder al bus, antes de que el nodo pasivo de error pueda hacerlo de nuevo. Esto asegura que un nodo posiblemente defectuoso no pueda dificultar a otros nodos la transmisin de sus tramas.

Captulo 2. Controller Area Network (CAN)

48

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

2.2.2.3 Control de Erroresa) Deteccin de ErroresEn la transferencia de informacin, como por ejemplo, en las aplicaciones CAN de vehculos, necesitamos garantas de que el protocolo efecte una correcta transmisin de los datos. Para satisfacer estas demandas, el protocolo CAN provee varios mecanismos para deteccin de errores, son los siguientes: i. Error de Bit Cada nodo transmisor monitorea si el nivel del bit enviado al bus difiere del nivel que realmente ha llegado a ste. Si el valor de bit que ha sido transmitido es diferente del valor de bit que es monitoreado, un error de bit es detectado. El monitoreo de bit representa as un mecanismo muy efectivo para deteccin de todos los errores globales y locales al transmisor.

La sobre-escritura de un nivel de bit transmitido recesivamente por un nivel dominante durante la fase de arbitraje as como durante el slot ACK no es interpretado como un error de bit. La sobre-escritura de una bandera de error pasiva (nivel recesivo) tampoco es interpretada como un error de bit por un nodo transmisor. ii. Error de Trama Los formatos posibles de trama en el protocolo CAN contienen campos de bits de forma fija especfica (por ejemplo los bits delimitadores recesivos) cuya estructura es verificada por todos los nodos. Un error de forma es detectado cuando un campo de forma fija contiene uno o ms bits no permitidos. iii. Error de Redundancia Cclica Para permitir a un nodo receptor verificar la integridad de los datos recibidos, el protocolo CAN aplica el principio de chequeo de redundancia. Este mtodo generalmente aplicado en sistemas de transmisin de datos garantiza una probabilidad muy alta de deteccin de errores y una Probabilidad de Error Residual muy baja. En especial, el chequeo de redundancia cclica proporciona la deteccin de errores globales.

En chequeo de redundancia cclica, la informacin del encabezado de trama y los datos a ser transmitidos son representados como un Polinomio de Trama el cual serCaptulo 2. Controller Area Network (CAN) 49

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

dividido por un Generador Polinomial definido. El residuo de esta divisin binaria es la secuencia CRC (Cdigo de Redundancia Cclica) de 15 bits transmitida sobre el bus como parte de la trama. En el nodo receptor el polinomio de trama recibido es tambin dividido para el mismo generador polinomial. Si la trama fue transmitida libre de errores, el FCS calculado ser idntico al recibido. iv. Error de ACK Un transmisor espera que en el slot ACK, al menos, un receptor confirme la correcta recepcin de una trama transmitida. La falta de confirmacin (es decir el slot ACK con nivel recesivo en vez de dominante) es interpretada por el transmisor de la trama como un error de ACK. v. Error de regla de relleno Cada nodo encuentra una violacin de la regla de relleno de bit (Error de Relleno) tan pronto como detecta un sexto bit consecutivo de igual nivel en un campo de trama codificado por el mtodo de relleno de bit. Consecuentemente, cada nodo que detecta una bandera de error interpreta esto como una violacin de la regla de relleno de bit y por tanto genera una trama de error automticamente.

b) Confinamiento de ErroresUn sistema de bus serial est relacionado bsicamente con el problema de que un nodo defectuoso del bus podra bloquear el sistema entero. Particularmente el principio de sealizacin de error aplicado en el protocolo CAN implica este riesgo ya que un nodo defectuoso podra generar continuamente banderas de error. Para eliminar este riesgo, el protocolo CAN posee un mecanismo que detecta un nodo defectuoso y lo desconecta del bus. Para este propsito, el protocolo CAN especifica un contador de error de transmisin y un contador de error de recepcin para cada nodo. Cuyas cuentas son incrementadas en un determinado valor con cada transmisin o recepcin de trama errnea detectada, y decrementada en 1 con cada transmisin o recepcin exitosa de una trama, de tal forma que en caso de un error el incremento de la cuenta de error sea ms grande que el decremento en caso de un xito. El valor de incremento depende de si un nodo fue el primero en detectar un error. Esto puede conducir a un incremento notable de las cuentas sobre un cierto perodo de tiempo, sin embargo stas son reducidas nuevamente durante un periodo de tiempo ms largo con una tasa de error

Captulo 2. Controller Area Network (CAN)

50

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

ms baja. Los valores de cuentas de error son as una medida para la tasa de error de transmisin.

Si un nodo detecta un error, la bandera de error enviada por ste provoca una subsiguiente sealizacin de error por parte de los otros nodos de una red. Los nodos reconocen si fueron los primeros en sealar un error al finalizar su bandera de error. Para propsitos de confinamiento de fallos, las cuentas de error de recepcin o de transmisin del nodo que primero seal un error durante la recepcin y transmisin respectivamente son incrementados en una cantidad significativamente ms alta (en un valor de 9 y 8 respectivamente) que las cuentas de error de los nodos que sealaron el error secundariamente. Un nodo que siempre es el primero en detectar un error por consecutivas ocasiones sobre un largo periodo de tiempo puede estar teniendo problemas consigo mismo, es decir estar defectuoso. Cuando se exceden lmites especficos de cuentas de error, se toman medidas para restringir un efecto presumiblemente defectuoso del nodo. Estas medidas van desde prohibir la transmisin de banderas de error activas cuando una cuenta de error especfica es alcanzada, hasta impedir a un nodo formar alguna interaccin con el bus cuando es alcanzado un nivel an ms alto de cuenta de error.

Con respecto al confinamiento de error, un nodo puede estar en uno de los siguientes tres estados de error, dependiendo de los valores de sus contadores:

Error-Activo (Estado Activo) Error-Pasivo (Estado Pasivo) Bus-Off (Estado Suspendido)

Un nodo en estado Activo en una red toma parte en la comunicacin del bus y enva una bandera de error activa cuando detecta un error. Esto destruye la trama que estaba transmitiendo, viola la regla de relleno de bit y previene a otros nodos de aceptar la trama errnea.

Un nodo en estado Pasivo ya ha acumulado una cuenta de error de transmisin o de recepcin relativamente alta y ha monitoreado as una tasa de error significativamente elevada sobre un periodo ms largo de tiempo. Un nodo en esteCaptulo 2. Controller Area Network (CAN) 51

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

estado es todava totalmente capaz de comunicarse, sin embargo los errores detectados ya no sern sealados por una bandera de error activa. En cambio ahora, un error es sealado por una bandera de error pasiva consistente de 6 bits recesivos que no perturba la comunicacin restante del bus. Adems, un nodo en estado pasivo debe esperar por 8 tiempos de bit antes de intentar re-transmitir la trama que fue detectada como errnea.

Ambas medidas aseguran que un nodo que ha estado detectando una tasa de error significativamente ms alta sobre un periodo de tiempo ms largo ya no pueda interferir con la comunicacin restante del bus.

A un nodo en estado Suspendido no se le permite tener ningn tipo de influencia sobre el bus. Este nodo no transmitir ninguna trama, ni siquiera aquellas de sobrecarga, error ni tampoco ACKs. Dependiendo de la implementacin tal nodo podra recibir tramas.

La Figura 2.22 muestra el diagrama de estados de error de un nodo CAN.

Figura 2.22: Diagrama de Estados de Error.

Una cuenta de error de recepcin generalmente es incrementada en 9 por cada error de recepcin detectado primero y en 1 por cada error de recepcin detectado simultneamente con otros nodos, y es decrementado en 1 por cada trama recibida

Captulo 2. Controller Area Network (CAN)

52

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

exitosamente. Cuando la cuenta de error sobrepasa 96 se le indica al microcontrolador, a pesar de ello el nodo sigue siendo de estado Activo. Cuando el error sobrepasa el valor 127, el nodo pasa a estado Pasivo. As un nodo indicara una tasa de error incrementada despus de la dcimo primera recepcin errnea consecutiva y vendra a ser Pasivo despus de la dcimo quinta recepcin consecutiva errnea. Un nodo no puede llegar al estado Suspendido debido a errores de recepcin. Cuando el contador de recepcin sobrepasa el valor 127, en la prxima recepcin exitosa de una trama ste ser establecido en un valor por debajo del lmite del estado Pasivo.

La cuenta de error de transmisin es incrementada en un valor de 8 por cada error de transmisin detectado y es decrementado en 1 por cada trama transmitida exitosamente. Si el contador sobrepasa el valor de 96 una indicacin de taza de error incrementada es establecida; si el contador sobrepasa 127 el estado del nodo cambia a Pasivo, si el contador es ms grande que 255 el nodo pasa a estado Suspendido. En caso de que cada intento de un nodo por transmitir sea errneo, el nodo se establecer en estado Suspendido despus de 32 intentos de transmisin.

2.2.2.4 Formato Extendido de TramaEn la especificacin CAN ISO 11898-1 existe dos formato definidos: CAN 2.0A y CAN 2.0B.

La diferencia entre CAN 2.0A y CAN 2.0B radica principalmente en la forma del identificador. La especificacin CAN 2.0A define sistemas CAN con un estndar de 11 bit en el campo identificador (CAN estndar). CAN 2.0B especifica la trama extendida con 29 bit en el identificador (CAN Extendido). Basado en el identificador de 29 bits podemos distinguir hasta 512 millones de tramas posibles.

Los formatos de trama bsico y extendido son compatibles, es decir tramas de ambos formatos pueden coexistir en la misma red y nodo. Los dos formatos son distinguidos por el Bit Identificador de Extensin IDE, en el campo de control.

Captulo 2. Controller Area Network (CAN)

53

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

En el formato de trama extendido (Ver Figura 2.23), el identificador de 29 bits comprende dos secciones, el Identificador Bsico de 11 bits (ID Bsico) as como un Identificador Extendido de 18 bits (ID Extendido).

Figura 2.23: Estructura del formato extendido.

Captulo 2. Controller Area Network (CAN)

54

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

CAPITULO 3. HARDWARE DEL SISTEMA

3.1 IntroduccinLos nodos construidos (Ver Figura 3.1) son gestionados por el microcontrolador Renesas R8C/23 de 8bit, concretamente el R5F2138DFP. Adems dichas unidades de comunicacin estn dotadas de interfaz CAN, RS-232 y un puerto de expansin I2C.

Figura 3.1: Cara Top de un nodo CAN bus.

Figura 3.2: Cara Bottom de un nodo CAN bus.

Captulo 3. Hardware del Sistema

55

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

3.2 Microcontrolador3.2.1 Renesas Renesas Technology Corporation es una empresa de inversin conjunta, entre las compaas Hitachi y Mitsubishi Electric Corporation. Con sede en Tokio, fue creada el 1 de abril de 2003.

Se dedica al sector de los semiconductores, y se encarga del diseo, desarrollo y fabricacin de una lnea de productos que se compone por sistemas digitales y analgicos, microcontroladores, DSP, SoC, memorias, controladores LCD, ICs estndar, ICs para aplicaciones especficas...

Su actividad la ha colocado entre las 20 empresas con mayor volumen de ventas de semiconductores.

3.2.2 R8C/23 Group La serie R8C/23 Group consiste en una extensa diversidad de microcontroladores de 8 bits con arquitectura CISC que posee una alta velocidad de procesado y un consumo de energa muy bajo. Se construye utilizando silicio de alto

rendimiento mediante proceso CMOS y est envasado en un encapsulado de 48 pines Low-profile Quad Flat Package (LQFP o encapsulado cuadrado plano de perfil bajo).

Tiene una frecuencia mxima de operaciones de 20 MHz y soporta voltajes de funcionamiento 2,2 a 5,5V. Entre sus principales interfaces destacan: UART, I2C, convertidor 10-bit A/D, adems de mdulo hardware LIN y CAN. El uso de esta serie de microcontroladores de Renesas est indicado para electrodomsticos, equipos de oficina, equipos de potencia, automocin, industria etc.

Captulo 3. Hardware del Sistema

56

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

Figura 3.3:3.2 Diagrama de bloques del R8C/23.

De la serie R8C/23 de Renesas destacaremos la versin R5F2138DFP, ya que, es el microprocesador que utilizaremos en nuestro diseo. La diferencia de versiones del R8C/23 Group se centra principalmente en el tamao de la memoria ROM. Por ejemplo nuestro microcontrolador tiene un tamao de memoria ROM de 48Kbytes y 3Kbytes de RAM.

Captulo 3. Hardware del Sistema

57

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

Tabla 3.1: Gama de productos de R8C/23 Group.

Las principales caractersticas del R8C/23 son: Juego bsico de 89 instrucciones. 41 pines I/O y 3 pines de Input. Timer de 8 Bit con prescaler (Timer RA and RB): 2 canales. Timer de 16 Bit (Timer RD): 2 canales. Timer con funcin de comparacin (Timer RE): 1 canal. UART funciones sncronas: 1 canal. UART funciones asncronas: 1 canal. Interface I2C: 1 canal. Modulo LIN: 1 canal (Timer RA, UART0). Modulo CAN (2.0B): 1 canal, 16 slots. 10-bit A/D Converter: 12 canales. Watchdog Timer Circuitos de generacin de reloj: XIN Clock Generation Circuit, On-chip Oscillator (High/Low Speed). Data Flash: 2 KB. Temperatura: 40 to 85C.

Captulo 3. Hardware del Sistema

58

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

Figura 3.4: Encapsulado de R8C/23

El R5F2138DFP presenta 48 pines tipo LQFP, de los cuales, muchas tiene funciones multiplexadas. Por ejemplo, en los pines 26 y 27 (Ver Figura 3.5: Pin-out deR8C/23Figura 3.5Error! No se encuentra el origen de la referencia.) se encuentra la

entrada y la salida para la comunicacin serie, pero al mismo tiempo tambin utilizamos esas patillas para el puerto P6 y para interrupciones. En el Anexo se encuentra especificado todo el pin-out del dispositivo integrado, que segn la funcionalidad de cada patilla podrn ser configuradas como entrada o salida.

Figura 3.5: Pin-out de R8C/23

Captulo 3. Hardware del Sistema

59

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

3.2.3 Registros de la Unidad de Proceso. La CPU del R8C contiene 13 registros, de los cuales R0, R1, R2, R3, A0, A1, y FB estn agrupados formando un Banco de Registros.

Figura 3.6: Registros de la CPU R8C/23.

Registros de datos (R0, R1, R2 y R3): Son registros de 16 bits para la transferencia de datos y en operaciones lgicas. R0 se puede dividir en bits de orden superior (R0H) y en bit de orden inferior (R0L) para ser utilizadas por separado. Lo mismo sucede con R1H y R1L. R2 se puede combinar con R0 para ser utilizado como un registro de datos de 32 bit (R2R0).

Registros de Direccin (A1 y A0): A0 es un registro de 16 bits para el direccionamiento indirecto y direccionamiento relativo. Tambin se utilizan para la transferencia y las operaciones lgicas. Lo mismo ocurre con A1. El cual se

Captulo 3. Hardware del Sistema

60

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

puede combinar con A0 para utilizar un registro de direcciones de 32 bits (A1, A0).

Frame Base Register (FB): El registro FB tiene 16 bits y se usa para el direccionamiento relativo a FB.

Tabla del registro de interrupcin (INTB): INTB es un registro de 20 bits, el cual, indica la direccin de inicio de la tabla del vector de interrupcin.

Contador Programa (PC): El registro PC contiene 20 bits de ancho e indica la direccin de una instruccin que va a ser ejecutada.

Stack Pointer (USP) y Interrupt Stack Pointer (ISP): El puntero de pila (SP), USP y la ISP, son de 16 bits de ancho cada uno. La bandera U del registro FLG se utiliza para alternar entre el USP y el ISP.

Static Base Register (SB): El SB es un registro de 16 bits para direccionamiento relativo SB.

Registro de bandera (FLG): FLG es un registro de 11 bits que indica el estado de laCPU.

Figura 3.7: Registro de Banderas.

Captulo 3. Hardware del Sistema

61

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

-

Carry Flag (C): Esta bandera, se pondr a 1 si se ha producido acarreo (carry) en una instruccin de suma, de resta (borrow), o de desplazamiento de bits en la unidad aritmtico/lgica.

-

Debug Flag (D): La bandera D es slo para depuracin. Se establece en 0.

-

Zero Flag (Z): La bandera Z se pone a 1 cuando una operacin aritmtica da como resultado 0.

-

Sign Flag (S): La bandera S se establece en 1 cuando una operacin aritmtica obtiene como resultado un valor negativo.

-

Register Bank Select Flag (B): El banco de registro 0 se selecciona cuando la bandera B est a 0. El banco del registro 1 es seleccionado cuando esta bandera se establece en 1.

-

Overflow Flag (O): La bandera O se pone a 1 cuando la operacin dio lugar a un desbordamiento, de lo contrario estar a 0.

-

Interrupt Enable Flag (I): Esta bandera permite una interrupcin enmascarable. La interrupcin se desactiva cuando la bandera se establece en 0, y se activa cuando la bandera se establece a 1. Esta bandera cambiar automticamente a 0 cuando la peticin de interrupcin es aceptada.

-

Stack Pointer Select Flag (U): El ISP es seleccionado cuando la bandera U se establece en 0; el USP se selecciona cuando el indicador U se establece en 1. La bandera U se establece en 0, cuando la solicitud de interrupcin de hardware es aceptada o cuando se ejecuta una instruccin INT para las interrupciones software Nos. 0 a 31.

Captulo 3. Hardware del Sistema

62

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

-

Processor Interrupt Priority Level (IPL): El IPL es de 3 bits y asigna los niveles de interrupcin del procesador prioridad del nivel 0 al nivel 7. Si solicita una interrupcin que tiene mayor prioridad que la IPL, la interrupcin ser habilitada.

-

Reserved Bit: Cuando escribamos este bit, escribiremos un 0. Cuando lo leamos su contenido ser indefinido.

3.2.4 Mapa de memoria

Figura 3.8: Mapa de memoria del R8C/23

La serie R8C/23 tiene 1 MB de espacio de direcciones desde 00000h hasta FFFFFH.

La ROM interna (ROM del programa) se asigna empezando por la direccin 0FFFFh. Para el vector de interrupcin se asigna direcciones desde 0FFDCh hasta 0FFFFh, en las cuales se almacenan la direccin de inicio de cada rutina de interrupcin.

Captulo 3. Hardware del Sistema

63

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

La ROM interna de datos (tipo flash) se asigna direcciones desde 02400h hasta 02BFFh. La memoria RAM interna se asigna direcciones desde 00400h.

As por ejemplo, 2,5Kbyte RAM interna se asignara direcciones de 00400h a 00DFFh. La RAM interna se utiliza no slo para almacenar datos, sino tambin para llamar a subrutinas y para las solicitudes de interrupciones.

Los registros de funciones especiales (SFR) se asignan las direcciones desde 00000h hasta 002FFh y de 01300h a 0147Fh. Todas las direcciones dentro de la SFR no estn asignadas, pero si estn reservadas para uso futuro y por tanto, el usuario no puede acceder.

3.2.5 Modulo CAN de R8C/23

Figura 3.9: Diagrama de bloques de modulo can del R8C/23.

Este microcontrolador dispone de un completo mdulo de CAN, el cual, puede transmitir y recibir mensajes, tanto en modo estndar (11bits) como en modo de identificacin extendida (29 bits).

Captulo 3. Hardware del Sistema

64

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

El mdulo CAN dispone de 16 espacios (slots) para almacenar los mensajes que se enva o los que recibimos, estos 16 slots se llaman "message box".

A continuacin se describen los diferentes bloques del mdulo CAN: CTx/CRx: pines entrada-salida de CAN. Protocol controller: Este controlador maneja el arbitraje del bus y los servicios de protocolo de la CAN, es decir, bit timing, stuffing, error status etc. Message box: Este bloque de memoria consta de 16 ranuras o espacios, que se pueden configurar como transmisor o receptor. Cada espacio contiene un identificador (ID) individual, el cdigo del tamao de los datos que tendr el mensaje, un campo de datos de 8 bits y un "time stamp". Acceptence filter: Este bloque filtra los identificadores (ID) de los mensajes recibidos. Para hacer esta tarea de filtrado, se utilizan los registros C0GMR, C0LMAR y C0LMBR. 16 bit timer: Se utiliza para la funcin "time stamp. Cuando recibimos un mensaje, este se almacena en la memoria y el valor del timer se queda guardado en el "timer stamp". Wake up function: La interrupcin de "CAN 0 wake up" se genera mediante un mensaje desde el CAN bus. Interrupt generator function: Los eventos de interrupcin provienen del mdulo CAN 0. Los tipos de interrupcin pueden ser por recepcin, transmisin, error y wake up.

Captulo 3. Hardware del Sistema

65

Sistema de Comunicacin CAN-bus basado en Microcontrolador Renesas R8C/23

3.3 CAN TransceiverComo se vio en la seccin 2.2.1.4, necesitamos un transceiver para acceder al bus y poder comunicarnos. En nuestro sistema empotrado utilizaremos el circuito integrado L9616 del fabricante STMicroelectronics.

El L9616 es la interfaz entre el modulo CAN del microcontrolador y el bus fsico, el cual, acta principalmente como un transmisor-receptor bidireccional, aunque tambin protege al bus de cortocircuitos y ruido elctrico.

En caso de cortocircuito, el circuito de proteccin reconoce el fallo y las etapas de salida del transmisor se desactivan para evitar