You are on page 1of 12

Captulo 5.

Comunicaciones CAN
5.1 Introduccin
5.1.1 El CAN y su historia
El CAN (Controller Area Network) es un bus de comunicaciones serie en tiempo real originalmente desarrollado en la automocin alemana a mediados de los aos 80 por Robert Bosc ! "u ob#eti$o principal era acer los autom$iles m%s seguros& 'iables ( con un gasto de combustible m%s e'iciente mientras se reduc)a el peso ( la comple#idad de los mismos! Algunos aos importantes para el CAN son* + ,-8.* Comien/o del pro(ecto interno de Bosc para $e )culos + ,-80* 1rimeros controladores CAN desde 2ntel ( 1 ilips + ,--,* "e publica la especi'icacin 3!0 + ,--3* "e establece la CiA (CAN in Automation) ( el CAN comien/a a emplearse en autom$iles de la casa 4ercedes + ,--.* se publica el est%ndar 2"5 ,,8-8 + ,--6* se aade la trama e7tendida a la 2"5 ,,8-8

los

A pesar de 8ue o( en d)a el 809 de las aplicaciones CAN est%n en la industria automo$il)stica& el protocolo CAN tambi:n se a ido e7tendiendo a otros mercados*

5.1.2 Aplicaciones
Como (a se a comentado anteriormente& la ma(or parte de las aplicaciones 8ue posee el CAN est%n concentradas en la industria automo$il)stica donde reali/a el control del motor& de la mec%nica del autom$il as) como los sistemas de entretenimiento! Relacionado con la industria automo$il)stica& el CAN se e7tiende al transporte p;blico ( otras m%8uinas m$iles como a$iones& elicpteros& trenes ( los controles de tr%'ico ( sistemas de in'ormacin conductor<pasa#ero! 1ero en general el CAN se aplica en cual8uier sistema de control industrial* sistemas de control de plantas ( ma8uinaria& redes entre m%8uinas& sistemas de super$isin= ( en la automati/acin de edi'icios* control de ascensores& aire acondicionado& sistemas de cale'accin ( re'rigeracin& control de iluminacin= En resumen& en cual8uier sistema 8ue precise control en tiempo real distribuido ( con escaso 'lu#o de datos!

5.2 Caractersticas del bus CAN


El bus CAN es un bus serie de transmisin de datos en tiempo real 8ue sigue la norma 2"5 ,,8-8 ( sus caracter)sticas son*

,! >a comunicacin est% basada en mensajes ( no en direcciones& todos los nodos CAN son capaces de transmitir ( recibir datos ( $arios pueden acceder al bus de datos simult%neamente! No a( sistema de direccionamiento de los nodos en el sentido con$encional ( los mensa#es se en$)an seg;n su prioridad* ?n nodo emisor en$)a el mensa#e a todos los nodos de la red& cada nodo& seg;n el identi'icador del mensa#e& lo 'iltra ( decide si debe procesarlo inmediatamente o descartarlo! Este identi'icador es 8uien determina la prioridad 8ue determina 8ue mensa#e accede primero al bus!

@igura 6!3a 3! Flexibilidad* "e pueden aadir nodos adicionales al bus sin necesidad de reprogramar todo el sistema para 8ue se recono/can los nue$os nodos! .! Aran fiabilidad en la transmisin* + Betecta errores& los seali/a& en$)a mensa#e de error ( reen$iar% el mensa#e corrupto una $e/ 8ue el bus $uel$a a estar acti$o + Bistingue entre errores temporales ( errores permanentes desconectando autom%ticamente los nodos de'ectuosos! + 1uede operar en ambientes con condiciones e7tremas de ruido e inter'erencias! C! >a $elocidad de transmisin depende de la longitud de la red! Cada red puede alcan/ar los ,000 metros de longitud!

@igura 6!3!b

5.3 Arquitectura de capas


>a ar8uitectura del protocolo CAN est% basada en capas ( permite la interoperabilidad entre productos de di'erentes manu'acturas gracias a la creacin del modelo de re'erencia 5"2 (5pen "(stem

2nterconection& 2"5 0C-8)! Este modelo implementa las dos capas in'eriores del protocolo CAN& la capa ')sica ( la capa de enlace de datos!

5. .1 Capa fsica
>a capa ')sica es responsable de la trans'erencia de bits entre los distintos nodos 8ue componen la red! Be'ine aspectos como ni$eles de seal& codi'icacin& sincroni/acin ( tiempos en 8ue los bits se trans'ieren al bus! En la especi'icacin original de CAN& la capa ')sica no 'ue de'inida& permitiendo di'erentes opciones para la eleccin del medio ( ni$eles el:ctricos de transmisin! >as caracter)sticas de las seales el:ctricas en el bus 'ueron establecidas m%s tarde por el est%ndar 2"5 ,,8-8 ( su modelo de re'erencia 5"2! Adem%s& a ) se especi'ica tres ni$eles con distintas 'unciones cada uno! >os distintos ni$eles de la capa ')sica son*

@igura 6!.!,!a >os nodos conectados al bus interpretan dos ni$eles lgicos denominados* Dominante* la tensin di'erencial (CANDE + CAND>) es del orden de 3!0 F con CANDE G .!6F ( CAND> G ,!6F (nominales)! Recesivo* la tensin di'erencial (CANDE + CAND>) es del orden de 0F con CANDE G CAND> G 3!6F (nominales)! >a codificaci!n de bits se reali/a por el m:todo NRH (Non"#eturn"to $ero) 8ue se caracteri/a por 8ue el ni$el de seal puede permanecer constante durante largos periodos de tiempo ( abr% 8ue tomar medidas para asegurarse de 8ue el inter$alo m%7imo permitido entre dos seales no es superado! Esto es importante para la sincroni/acin! No a( 'lanco de subida ni de ba#ada para cada bit& durante el tiempo de bit a( bits dominantes (I0J) ( recesi$os (I,J) ( disminu(e la 'recuencia de seal respecto a otras codi'icaciones (como la codi'icacin 4anc ester& por e#emplo)!

@igura 6!.!,!b

5. .2 Capa de enlace de datos


>a capa de enlace es responsable del acceso al medio ( el control lgico ( est% di$idida a su $e/ en dos ni$eles! El primero ser)a el %%C& >ogical >ink Control& 8ue se dedica al 'iltrado de aceptacin& la noti'icacin de sobrecarga ( a la gestin de recuperacin! El segundo ni$el es el &AC& 4:dium Access Control& dedicado al encapsulado ( desencapsulado de datos& codi'icacin de las tramas& gestin de acceso al medio& deteccin ( seali/acin de errores& acuses de recibo= Kodo esto se ir% $iendo en los puntos posteriores de este cap)tulo!

5.4 Mensajes y tipos de tra as


Como se a comentado en el apartado de caracter)sticas& el protocolo CAN est% basado en mensa#es no en direcciones! El nodo emisor transmite el mensa#e a todos los nodos de la red sin especi'icar un destino ( todos ellos escuc an el mensa#e para luego 'iltrarlo seg;n le interese o no! E7isten distintos tipos de tramas prede'inidas por CAN para la gestin de la comunicacin* Trama de datos* "e utili/a normalmente para poner in'ormacin en el bus ( la pueden recibir algunos o todos los nodos! Trama de informacin remota* puede ser utili/ada por un nodo para solicitar la transmisin de una trama de datos con la in'ormacin asociada a un identi'icador dado! El nodo 8ue disponga de la in'ormacin de'inida por el identi'icador la transmitir% en una trama de datos! Trama de error* "e generan cuando alg;n nodo detecta alg;n error de'inido! Trama de sobrecarga* "e generan cuando alg;n nodo necesita m%s tiempo para procesar los mensa#es recibidos! Espaciado entre tramas! >as tramas de datos (( de interrogacin remota) se separan entre s) por una secuencia prede'inida 8ue se denomina espaciado Cnter!+trama! Bus en reposo! En los inter$alos de inacti$idad se mantiene constantemente el ni$el recesi$o del bus! En un bus CAN los nodos transmiten la in'ormacin espont%neamente con tramas de datos& bien sea por un proceso c)clico o acti$ado ante e$entos en el nodo! >a trama de interrogacin remota slo se suele utili/ar para deteccin de presencia de nodos o para puesta al d)a de in'ormacin en un nodo reci:n incorporado a la red! >os mensa#es pueden entrar en colisin en el bus& el de identi'icador de ma(or prioridad sobre$i$ir% ( los dem%s son retransmitidos lo antes posible!

5.'.1 (rama de datos

@igura 6!C!,!a >os mensa#es de datos consisten en celdas 8ue en$)an datos ( aaden in'ormacin de'inida por las especi'icaciones CAN*

@igura 6!C!,!b Inicio de trama (SOF): El inicio de trama es una celda de un solo bit siempre dominante 8ue indica el inicio del mensa#e& sir$e para la sincroni/acin con otros nodos! e!da de "rbitra#e ("rbitration Fie!d): Es la celda 8ue concede prioridad a unos mensa#es o a otros* + En 'ormato est%ndar tendr% ,, bits seguidos del bit RKR (Remote Kransmisin Re8uest) 8ue en este caso ser% dominante!

@igura 6!C!,!c + En 'ormato e7tendido ser%n ,, bits de identi'icador base ( ,8 de e7tendido! El bit "RR substitu(e al RKR ( ser% recesi$o!

@igura 6!C!,!d Nota* >a trama en 'ormato est%ndar pre$alece sobre la e7tendida

e!da de contro! ( ontro! Fie!d): El campo de control est% 'ormado por dos bits reser$ados para uso 'uturo ( cuatro bits adicionales 8ue indican el n;mero de b(tes de datos! En realidad el primero de estos bits (2BE) se utili/a para indicar si la trama es de CAN Est%ndar (2BE dominante) o E7tendido (2BE recesi$o)! El segundo bit (RB0) es siempre recesi$o! >os cuatro bits de cdigo de longitud (B>C) indican en binario el n;mero de b(tes de datos en el mensa#e (0 a 8) e!da de Datos (Data Fie!d): Es el campo de datos de 0 a 8 b(tes! R : Cdigo de redundancia c)clica* Kras comprobar este cdigo se podr% comprobar si se an producido errores! e!da de reconocimiento (" $): es un campo de dos bits 8ue indica si el mensa#e a sido recibido correctamente! El nodo transmisor pone este bit como recesi$o ( cual8uier nodo 8ue reciba el mensa#e lo pone como dominante para indicar 8ue el mensa#e a sido recibido! Fin de trama (EOF): Consiste en 0 bits recesi$os sucesi$os e indica el 'inal de la trama! Espaciado entre tramas (2@")* Consta de un m)nimo de . bits recesi$os!

5.'.2 (rama remota


>os nodos tienen abilidad para re8uerir in'ormacin a otros nodos! ?n nodo pide una in'ormacin a los otros& el nodo 8ue tiene dic a in'ormacin en$)a una comunicacin con la respuesta 8ue puede ser recibida adem%s por otros nodos si est%n interesados!

@igura 6!C!3!a ?n mensa#e de peticin remota tiene la siguiente 'orma*

@igura 6!C!3!b En este tipo de mensa#es se en$)a una trama con el identi'icador del nodo re8uerido& a di'erencia con los mensa#es de datos& el bit RKR toma $alor recesi$o ( no a( campo de datos!

En caso de 8ue se en$)e un mensa#e de datos ( de peticin remota con el mismo identi'icador& el de datos ganar% el acceso al bus puesto 8ue el RKR lle$a $alor dominante!

5.'. (rama de error


>as tramas de error son generadas por cual8uier nodo 8ue detecta un error! Consiste en dos campos* 2ndicador de error (LError @lagL) ( Belimitador de error! El de!imitador de error consta de 8 bits recesi$os consecuti$os ( permite a los nodos reiniciar la comunicacin limpiamente tras el error! El Indicador de error es distinto seg;n el estado de error del nodo 8ue detecta el error*

@igura 6!C!.!a "i un nodo en estado de error LActi$oL detecta un error en el bus interrumpe la comunicacin del mensa#e en proceso generando un L2ndicador de error acti$oL 8ue consiste en una secuencia de M bits dominantes sucesi$os! Esta secuencia rompe la regla de relleno de bits ( pro$ocar% la generacin de tramas de error en otros nodos! 1or tanto el 2ndicador de error puede e7tenderse entre M ( ,3 bits dominantes sucesi$os! @inalmente se espera el campo de delimitacin de error 'ormado por los 8 bits recesi$os! Entonces la comunicacin se reinicia ( el nodo 8ue ab)a sido interrumpido reintenta la transmisin del mensa#e! "i un nodo en estado de error L1asi$oL detecta un error& el nodo transmite un L2ndicador de error pasi$oL seguido& de nue$o& por el campo delimitador de error! El indicador de error de tipo pasi$o consiste en M bits recesi$os seguidos (& por tanto& la trama de error para un nodo pasi$o es una secuencia de ,C bits recesi$os! Be a8u) se deduce 8ue la transmisin de una trama de error de tipo pasi$o no a'ectar% a ning;n nodo en la red& e7cepto cuando el error es detectado por el propio nodo 8ue est% transmitiendo! En ese caso los dem%s nodos detectar%n una $iolacin de las reglas de relleno ( transmitir%n a su $e/ tramas de error! Kras sealar un error por medio de la trama de error apropiada cada nodo transmite bits recesi$os asta 8ue recibe un bit tambi:n recesi$o& luego transmite 0 bits recesi$os consecuti$os antes de 'inali/ar el tratamiento de error! >a regla de relleno de bits 8ue aparece l)neas arriba consiste en 8ue cada cinco bits de igual $alor se introduce uno de $alor in$erso tal ( como se $e en la 'igura siguiente*

@igura 6!C!.!b 5tro m:todo para la deteccin de errores es el che)ueo de la trama*

@igura 6!C!.!c El campo CRC contiene in'ormacin adicional a la trama& :ste se calcula con un polinomio generador de igual manera en el receptor ( en el emisor! Esto permite detectar errores aleatorios en asta 6 bits o una secuencia seguida de ,6 bits corruptos! El campo ACN& en el caso del emisor ser% recesi$o ( el receptor deber% sobrescribirlo como dominante ( el primero comprobar%& mediante la monitori/acin& 8ue el mensa#e a sido escuc ado! "i no sucede as)& la trama se considerar% corrupta!

5.'.' Espacio entre tramas


El espacio entre tramas separa una trama (de cual8uier tipo) de la siguiente trama de datos o interrogacin remota! El espacio entre tramas a de constar de& al menos& . bits recesi$os! Esta secuencia de bits se denomina L)ntermissionL! ?na $e/ transcurrida esta secuencia un nodo en estado de error acti$o puede iniciar una nue$a transmisin o el bus permanecer% en reposo! 1ara un nodo en estado error pasi$o la situacin es di'erente& deber% espera una secuencia adicional de 8 bits recesi$os antes de poder iniciar una transmisin! Be esta 'orma se asegura una $enta#a en inicio de transmisin a los nodos en estado acti$o 'rente a los nodos en estado pasi$o!

5.'.5 (rama de sobrecar+a


?na trama de sobrecarga tiene el mismo 'ormato 8ue una trama de error acti$o! "in embargo& la trama de sobrecarga slo puede generarse durante el espacio entre tramas! Be esta 'orma se di'erencia de una trama de error& 8ue slo puede ser transmitida durante la transmisin de un mensa#e! >a trama de sobrecarga consta de dos campos& el 2ndicador de "obrecarga& ( el delimitador! El indicador de sobrecarga consta de M bits dominantes 8ue pueden ser seguidos por los generados por otros nodos& dando lugar a un m%7imo de ,3 bits dominantes! El delimitador es de 8 bits recesi$os!

?na trama de sobrecarga puede ser generada por cual8uier nodo 8ue debido a sus condiciones internas no est% en condiciones de iniciar la recepcin de un nue$o mensa#e! Be esta 'orma retrasa el inicio de transmisin de un nue$o mensa#e! ?n nodo puede generar como m%7imo 3 tramas de sobrecarga consecuti$as para retrasar un mensa#e! 5tra ra/n para iniciar la transmisin de una trama de sobrecarga es la deteccin por cual8uier nodo de un bit dominante en los . bits de LintermissionL! 1or todo ello una trama de sobrecarga de 6 generada por un nodo dar% normalmente lugar a la generacin de tramas de sobrecarga por los dem%s nodos dando lugar& como se a indicado& a un m%7imo de ,3 bits dominantes de indicador de sobrecarga!

5.5 Acceso

"ltiple y arbitraje de acceso al bus

@igura 6!6!a CAN permite el acceso al bus de $arios nodos a la $e/! El proceso de arbitra#e est% basado en el C"4A<CB (Carrier "ense 4ultiple Access wit Collision Betection)* Cada nodo debe $igilar el bus en un periodo sin acti$idad antes de en$iar un mensa#e (Carrier "ense) ( adem%s& una $e/ 8ue ocurre el periodo sin acti$idad cada nodo tiene la misma oportunidad de en$iar un mensa#e (4ultiple Access)! En caso de 8ue dos nodos comiencen a transmitir al un)sono se detectar% la colisin! Al detectarse la colisin comien/a el arbitraje! Cada nodo emisor en$)a los bits del identi'icador del mensa#e ( $igila el bus comprobando lo 8ue emite! El nodo de ma(or prioridad (con bits dominantes& I0J) acceder% primero al bus ( una $e/ pasado un tiempo de espera& di'erente para cada nodo& se $uel$e a intentar el acceso sin repeticin de mensa#e ni p:rdidas de tiempo (a 8ue esta contencin es a ni$el de bit! Es un modo no destructi$o& los mensa#es permanecen intactos a pesar de detectar colisiones ( no conlle$a retrasos en los mensa#es de alta prioridad& prioridad 8ue $iene especi'icada en el identi'icador de mensa#e! En la 'igura 6!6!b se $e un e#emplo de arbitra#e en un bus CAN!

@igura 6!6!b

5.# $speci%icaciones del protocolo CAN


"e puede ablar de tres especi'icaciones CAN 3!0 8ue se utili/an o( en d)a* %rotoco!o "& especificacin '() "* solo mane#a mensa#es est%ndar con identi'icador de ,, bits %rotoco!o "& especificacin '() %asivo* solo transmite mensa#es est%ndar con identi'icador de ,, bits& pero comprueba si recibe mensa#es est%ndar ( mensa#es e7tendidos con identi'icadores de 3- bits! %rotoco!o "& especificacin '() "ctivo* transmiten ( reciben mensa#es est%ndar ( mensa#es e7tendidos

5.& 'rotocolos de alto ni(el


El protocolo CAN especi'ica la 'orma de transmitirse la in'ormacin ( en 8ue condiciones se reali/a seg;n el est%ndar 2"5 ,,8-8! 1ara especi'icar la estructura de la in'ormacin 8ue se transmite ( otros mecanismos para dotar de 'uncionalidad espec)'ica a los nodos se precisa protocolo adicional de m%s alto ni$el! E#emplos de protocolo de m%s alto ni$el pueden ser CANopen ( 4CNet protocol

5.) I ple entacin de controladores CAN


E7isten tres tipos de ar8uitecturas en microcontroladores* "tand+Alone CAN controller& 2ntegrated CAN Controller ( "ingle+C ip CAN Node!

5.,.1 -tand"Alone CAN Controller

Es la ar8uitectura m%s simple& para lle$ar a cabo una comunicacin en una red CAN ser% necesario* ,! ?n microcontrolador como puede ser el ,M@800& con el 8ue se a $enido traba#ando a lo largo de todo este pro(ecto! 3! ?n controlador CAN 8ue introdu/ca el protocolo CAN& 'iltro de mensa#es&= ( todo el inter'ace necesario para las comunicaciones! ?n e#emplo de controlador CAN es el 4C136,0 cu(a BAKA "EEEK se puede encontrar en la p%gina web de microc ip! .! ?n transcei$er CAN& esto es& un transmisor<receptor 8ue puede ser por e#emplo el 4C1366, desarrollado por microc ip!

@igura 6!8!, As) pues& si de alguna manera se pretende traba#ar en una red CAN con la placa de pruebas en la 8ue se an desarrollado los e#ercicios anteriores no ser)a 'actible a no ser 8ue de alguna manera se le acoplasen el controlador ( el transceptor CAN correspondiente! 4icroc ip a creado una placa de pruebas espec)'ica para este tipo de comunicaciones& 8ue desarrolla adem%s este tipo de ar8uitectura ( 8ue se puede conseguir tambi:n a tra$:s de la p%gina web de microc ip!

5.,.2 .nte+rated CAN Controller


Este tipo de ar8uitectura consiste en un microcontrolador 8ue inclu(a& no slo sus caracter)sticas propias sino adem%s un mdulo CAN con las caracter)sticas de un microcontrolador CAN! El transcei$er se sit;a de manera separada!

@igura 6!8!3

5.,. -in+le"chip CAN Node

@igura 6!8!. "e trata de un c ip 8ue inclu(e en su interior los tres elementos necesarios para lle$ar a cabo las comunicaciones en un entorno CAN!

You might also like