Está en la página 1de 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 ( 1ilips
+ ,--,* "e publica la especi'icacin 3!0
+ ,--3* "e establece la CiA (CAN in Automation) ( el CAN comien/a a emplearse en los
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
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 4ancester& 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 traas
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 escucan 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 dica 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 escucado! "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.) Ipleentacin de controladores CAN
E7isten tres tipos de ar8uitecturas en microcontroladores* "tand+Alone CAN controller& 2ntegrated
CAN Controller ( "ingle+Cip 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 microcip!
.! ?n transcei$er CAN& esto es& un transmisor<receptor 8ue puede ser por e#emplo el 4C1366,
desarrollado por microcip!
@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!
4icrocip 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 microcip!
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 cip 8ue inclu(e en su interior los tres elementos necesarios para lle$ar a cabo las
comunicaciones en un entorno CAN!

También podría gustarte