Академический Документы
Профессиональный Документы
Культура Документы
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!
,! >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
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
@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!
@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!
@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!.!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!
?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
@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
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!
@igura 6!8!3
@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!