Está en la página 1de 11

ITSS-MODULO CAN

MODULO CAN
Paola Lizzet Esparza Godoy Email: paoesparzagodoy@hotmail.com

Resumen: Este capitulo trata de las funciones y aplicaciones y registros del mdulo CAN como bus habilitado para las conexiones entre perifricos de manera que puedan enviar y recibir informacin. 1. INTRODUCCION AL MODULO CAN
El bus CAN es un protocolo de comunicacin serie utilizado para la transferencia de informacin con otros perifricos o microcontroladores en tiempo real, que permite la comunicacin dentro de ambientes ruidosos. En el bus CAN los mensajes transmitidos por un nodo no contienen los tradicionales campos de direccin origen y destino, sino que estn caracterizados por un identificador. El modulo CAN de los dsPIC30F satisface las especificaciones de la versin 2.0B que permite la transmisin de mensajes con identificador de 11 y/o 29 bits. Un identificador de 29 bits admite hasta 536 millones de identificadores de mensaje.

2. CARACTERISTICAS MODULO

DEL

El modulo CAN es un controlador de comunicaciones y trabaja como full CAN, es decir, puede tratar un numero limitado de tramas. Tiene las siguientes caractersticas relevantes: Dos buffers de entrada (RXB1 y RRXB1) con prioridad. Tres buffers de transmisin (TXB0, TXB1, TXB2) Tramas de envo de datos estndar y extendido Longitud de datos 0-8 bytes Tasa de transmisin ajustable hasta 1 Mbit/s 2 patitas de E/S Varios filtros de aceptacin de identificadores Generacin de ante errores interrupcin

3. FORMATO DE MENSAJE
El modulo CAN soporta los siguientes tipos de tramas: Trama estndar Trama extendida

ITSS-MODULO CAN Trama de peticin Trama error Interface Space 3.2. TRAMA EXTENDIDA La diferencia con respecto a la trama estndar reside en el campo de arbitraje en el cual el identificador es de 29 bits en vez de 18 bits. 1 bit 6 bits 2 bits 0-8 bytes 7 bits
D A T O S C O N T R O L ( 0 8 B y t e s )

3.1. TRAMA ESTNDAR Es generada por un nodo cuando quiere transmitir datos a una o varias estaciones remotas. El productor introduce un objeto en la red que puede ser consumido por cualquier numero de estaciones remotas. La trama CAN esta formada por los campos mostrados en la siguiente figura: 1bit 6 bits 2 bits S ARB O ITR F AJE 0-8 bytes 7 bits R T R CO NT RO L DA T O S (0 -8 By te s) Ca C m R po C CR C 12bits 16 bits A C K E O F

29 bits 16 bits
C R C A E C O K F

S O F

ARBIT RAJE

R T R

Camp o CRC

3.3. TRAMA DE PETICIN Se utiliza para pedir a una estacin remota que envie a la red una trama de tipo data. En este caso, tanto la trama de peticin como la respuesta data tiene el mismo identificador.
C S O F ARBITRAJE R T R CONTRO L Camp o CRC R C E O F

Inicio de Trama(1 bit) Campo de arbitraje(12 bits) Campo de control(6 bits) Campo de datos Secuencia de deteccin de errores( 16 bits) Campo ACK Fin de trama

3.4. TRAMA DE ERROR Cualquier nodo que detecte un error puede generar una trama de error. Los controladores de CAN verifican el

ITSS-MODULO CAN formato de todas las tramas junto con el cdigo CRC. A su vez si no se detecta el cambio del bit ACK se determina que el mensaje no ha sido recibido adecuadamente. Flag de Delimitado error r (1) Cuando REQOP<2:0>= 000. El modulo tiene actividades las entradas y salidas. El modulo puede transmitir y recibir mensajes. Modo deshabilitado Selecciona REQOP<2:0>=001. Este modo de operacin el modulo no transmite ni recibe nada. Las interrupciones pendientes y los contadores errores retienen sus valores, el modulo esta en modo activo y espera los 11 bits recesivos del bus CAN y se activa como modo deshabilitado. La interrupcin WALKIP es la nica interrupcin que sigue activa en modo deshabilitado. Si el bit WALKIP (CINTIE<6>) vale 1 se pueden recibir interrupciones siempre que el bus CAN detecte un estado dominante como ocurre en el SOF. Modo realimentado Las entradas y salidas vuelven ser soportadas por su puesto E/s. El transmisor recibe un acuse de recibo por mensajes enviados. Modo de escucha de un mensaje. Los modos realimentacin y de escucha de una mensaje son casos especiales del modo normal de operacin. Esta activado solo el modo de escucha de mensaje, el bus CAN esta pasivo. Los contadores de errores estn desactivados. El modo de operacin solo puede ser utilizado para detectar la tasa de transmisin en el bus CAN.

4. MODOS FUNCIONAMIENTO

DE

El modulo CAN funcionar en distintos modos de operacin seleccionados por el usuario: Modo normal Modo deshabilitado Modo realimentado Modo de mensaje escucha de un

Modo de configuracin Modo de escucha de todos los mensajes Los modos de operacin se controlan mediante los bits REQOP<2:0> (CiCTRL<10:8>). Para monitorizar el estado de operacin se recurre a los bits OPMODE<2:0> (CiCTRL<7:5>), este no ser actualizado hasta q sea aceptado el nuevo modo se ejecuta generalmente en el estado de reposo empleado los ltimos 11 bits recesivos. Modo de operacin normal.

ITSS-MODULO CAN Modo de configuracin Modo de operacin el modulo no podr transmitir ni recibir. Los contadores de errores son reseteados y flags de interrupciones se mantienen. El programador tiene acceso en los registros de configuracin los cuales tiene acceso restringido en otros modos de operacin. Despus de un reset del dispositivo el modulo CAN esta en modo de configuracin (OPMODE<2:0>=100). Los contadores de errores estn reseteados y todos los registros contienen sus valores reseteados. Modo de escucha de todos los mensajes. Este modo es un caso especial del modo de operacin normal. Cuando esta activado el modulo bus CAN esta pasivo. El buffer transmisor adquiere las funciones del puerto E/S. 5.1 REGISTRO DE CONTROL Y ESTADO CICTRL 15 0 T S T A M P C A N C K S RE Q OP <2 :0 > OP MO DE <2 :0 > IC O D E < 2: 0 >

C S - I D L

A B A T

Estructura del registro CICTRL Bit 15 TSTAMP: bit de permiso de captura de mensajes 1= permite captura 0= no permite captura Bit 14 No implementado: su valor es 0 Bit 13 CSDIL: bit de paro en Idle. 1= detencin del modulo CAN cuando el dispositivo entra en modo Idle 0= el modulo CAN no se detiene cuando el dispositivo entra en modo Idle.

5. REGISTROS DEL MODULO CAN


Los registros asociados al modulo CAN son: 1. Registros de control y estado. 2. Registros de buffer de salida 3. Registros de buffer de entrada 4. Registros de transmisin tasa de

Bit 12 ABAT: Bit de suspensin de todas las transmisiones pendientes. 1= suspende todas las transmisiones en todos los buffers de transmisin. 0= no tiene efecto

5. Registros de estado y control de interrupciones

ITSS-MODULO CAN Bit 11 CANCKS: bit de seleccin de reloj CAN 1= reloj FCAN es Fcy 0= reloj FCAN es 4 Fcy 001= error de interrupcin 000= sin interrupcin

Bit 0 No implementado: su valor es 0 T X A B T T X L A R B del T X E R R T TXP X RI R E <1: Q 0>

Bit 10-8 REQOP<2:0>: bits de operacin de repeticin 111= Modo de escucha a todos los mensajes 110= reservado 101= reservado 100= modo de configuracin 011= modo de escucha 010= modo de realimentacin 001= modo desactivado 000= modo normal de operacin - - - - - - - - -

Figura: Estructura CiTXnCON.

Registro

Bit 6 TXABT: bit de suspensin de mensaje 1= mensaje suspendido 0= mensaje no suspendido Nota: este bit se resetea cuando TXREQ es reseteado. Bit 5 TXLARB: bit de prdida de mensaje 1= mensaje perdido durante envo 0= mensaje sin perdida en envo Nota: este bit se resetea cuando TXREQ es reseteado Bit 4 TXERR: bit de deteccin de error durante la transmisin. 1= error de bus detectado durante envo de mensaje 0= envo de mensaje sin error de bus Nota: este bit se resetea cuando TXREQ es reseteado Bit 3 TXREQ: bit de peticin de mensaje enviado

Bit 7-5 OPMODE<2:0>: bits de modo de operacin Bit 4 No complementado: su valor es 0 Bit 3-1 ICODE<2:0>: bits interrupcin de cdigo FLAG. 111= activar interruptor 110= interrupcin RXB0 101= interrupcin RBX1 100= interrupcin TXB0 011= interrupcin TXB1 010= interrupcin TBX2 de

ITSS-MODULO CAN 1= peticin de transmisin de mensaje 0= suspender transmisin de mensaje si TXREQ es reseteado.
EID<17:14 > EID<13:6 >

Nota: este bit se resetea automticamente cuando el mensaje es enviado satisfactoriamente. Bit 2 No implementado, su valor es 0 Bit 1 TXPRI <1:0>: bits de prioridad de transmisin de mensaje. 11= alta prioridad de mensaje 10= alta-intermedia prioridad de mensaje 01=baja-intermedia prioridad de mensaje 00= baja prioridad de mensaje CiTXnSID: extendido transmisin identificador buffer de

1= el mensaje solicita una transmisin de peticin. 0= mensaje normal. Bit 0 TXIDE: bit de identificacin extendida. 1= el mensaje transmite el identificador extendido. 0= el mensaje transmite el identificador estndar. CiTXnEID: extendido transmisin
BYTE ALTO X T R T R T X R B 1 T X R B 0

de

identificador buffer de
BYTE BAJO

EID<5:0>

DLC<3:0>

Fiagura: CiTXnEID

Estructura

del

registro

de

SID<1: 6>

SID<5: 0>

S R R

T X I D E

Bit 15-12 EID <17:14>: bits de identificacin extendida. Bit 11-8 No implementado, su valor es 0 Bit 7-0 EID<13:6>: bits de identificacin extendida CiTXnDLC: control de buffer de longitud (n data) de transmisin EID<5: 0>
T X R T R T X R B 1 T X R B 0 DLC<3:0>

Figura: CiTXnSID

estructura

del

registro

- - -

Bit 15-11 SID<10:6>: bits identificacin estndar Bit 10-8 No implementado, valor es 0 Bit 7-2 SID<6:0>: bits identificacin estndar. Bit 1 SRR: bit de control sustitucin de peticin.

de su de de

Figura: Estructura CiTXnDLC

del

registro

Bit 15-10 EID<5:0>: bits de identificacin extendida Bit 9 TXRTR: bit de solicitud de transmisin de peticin

ITSS-MODULO CAN 1= el mensaje solicita una transmisin de peticin 0= mensaje normal Bit 8-7 TXRB<1:0>: bits reservados Nota: los usuarios deben poner a 1 estos bits segn el protocolo CAN. Bit 6-3 DLC <3:0>: bits de cdigo de longitud data Bit 2-0 No implementado, su valor es 0 CiTXnBm: Buffer de transmisin CTXB<15:0> Figura: Estructura CiTXnBm del registro por el software antes de leer el buffer. Bits 6-4 No implementado, su valor es 0. Bit 3 RXRTRRO: bit de solicitud de transferencia de peticin recibida (solo de lectura) 1= solicitud de transferencia de peticin recibida. 0= solicitud de transferencia de peticin no recibida. Nota: este bit refleja el estado de los ltimos mensajes cargados en el buffer de entrada 0. Bit 2 DBEN: bit de activacin de doble buffer en buffer de entrada 0. 1= la sobrescritura de buffer 0 se escribe en buffer de entrada 0. 0= el buffer 0 se desborda en buffer de entrada 1. Bit 1 JTOFF: bit de Offset (lee solo copias de DBEN) 1= permite offset entre 6 y 7. 0= permite offset entre 0 y 1. Bit 0 FILHIT0: indica el filtro que activa el bit de repeticin de mensajes. 1= filtro 1 de aceptacin (RXF1) 0= filtro 0 de aceptacin (RXF0) Nota: este bit refleja el estado de los ltimos mensajes cargados en el buffer de entrada 0.

Bit 15-0 CTXB<15:0>: campo de datos de transmisin (2 bytes). Registro de buffer de entrada CiRX0CON: registro de control y estado de buffer de entrada 0
R X F U L R X R T R R O D B E N J T O F F F I L H I T O

Bits 15-8 No implementados, sus valores son 0 Bit 7 RXFUL: bit de estado de entrada 1= buffer de entrada contiene un mensaje recibido vlido 0= buffer de entrada esta abierto para recibir un mensaje nuevo Nota: este bit es activado por el modulo CAN y debe ser reseteado

ITSS-MODULO CAN CiRX1CON: registro de control y estado de buffer entrante 1


R X F U L R X R FILHIT T <20> R R O

Bits 11-0 EID<17:6>; identificacion extendidos

bits

de

Bit 15-0 CRXB<15:0>; campo de datos de entrada (2 bytes) Bits 15-10 EID<5.0>: identificador extendidos bits del

Figura: Estructura del registro CiRX1CON. Bits 15-8 No implementados, sus valores son 0 Bit 7 entrada RXFUL: bit de estado de

Bit 9 RXRTR: bit de solicitud de transferencia de peticin de entrada 1= solicitud peticin de transferencia de

0= no solicitud de transferencia de peticin Bit 8 RB1: reservado con valor 0 Bit 4 RB0: reservado con valor 0

1= buffer de entrada contiene un mensaje recibido valido 0= buffer de entrada esta abierto para recibir un mensaje nuevo. Bits 6-4 No implementados, sus valores son 0 Bit 3 RXRTRRO: bit de solicitud de transferencia de peticin recibida (solo de lectura). Bit 2-0 FILHIT<2:0>: Indica el filtro que activa los bits de recepcin de mensajes. Bits 15-13 no implementados, su valores son 0 Bits12-2 SID<10:0>: identificacin estndar bit de

6. RECEPCION DE MENSAJES
6.1 BUFFER DE ENTRADA El modulo CAN tiene tres buffer de entrada. Sin embargo, uno de ellos es siempre el encargado de los mensajes que provienen del bus. Esta buffer es denominado MAB. Hay dos buffer de entrada visible, RXB0 y RXB1, que pueden recibir un mensaje: la CPU puede operar con uno de ellos mientras el otro este en espera o recibiendo un mensaje El MAB mantiene la trama de datos o de peticin del bus para permitir el acceso en paralelo de los buffer de entrada y el test de apropiacin. El MAB tambin rene todos los mensajes recibidos, los cuales son transmitidos al buffer RXBn en el caso de haber pasado lps filtros de reaceptacin. Cuando se recibe un mensaje, el flag RXnIF es puesto a

Bit 0 SRR: bit de solicitud de sustitucin de peticin (solo cuando(RXIDE=1) Bits 15-12 No implementado, sus valores son 0

ITSS-MODULO CAN uno. Este bit solo puede ser puesto a uno cuando se recibe un mensaje Este bit proporciona una seguridad para confirmar que la CPU ha terminado con el mensaje del buffer. Si el bit RXnIF es puesto a uno, se genera una interrupcin cuando un mensaje es recibido. 6.2 PRIOIDAD DE BUFFER DE ENTRADAD El RXB0 es el buffer de mayor prioridad y tiene dios filtros de aceptacin de mensajes, mientras que el buffer RXB1 es el de mayor prioridad y tienen cuando filtros de aceptacin de mensajes. El menor numero de posibles filtros de aceptacin ene le buffer RXB0 hace que sea mas restrictivo e implica una mayor prioridad asociada a l. 6.3 FILTROS DE ACEPTACION DE MENSAJES Estos filtros y mascaras determinan si un mensaje del MAB debe ser cargado en alguno de los buffers de entrada. Una vez que un mensaje valido ha sido recibido en el MAB los campos de identidad del mensaje son comparados con los del filtro. Si todo es correcto, el mensaje se almacena en el buffer de entrada apropiado. 6.4 SOBREESCRITURA ENTRADA DE El flag se sobreescritura RXnOVR y el bit ERRIF son puestos a uno y el mensaje del MAB ser descartado. Durante es estado de sobreescritura el modulo esta sincronizado con el bus CAN y puede transmitir mensajes pero no puede recibirlos.

7. TRASMISION DE DATOS
7.1 COMUNICACIN EN TIEMPO REAL Una aplicacin de transmisin de mensajes en tiempo real los nodos deben ser capaces de dominar y mantener el bus para que sus mensajes puedan ganar el arbitraje de accesibilidad. Una aplicacin tpica requiere 3 buffer de transmisin de mensajes. Uno de ellos puede estar transmitiendo, el segundo estar preparando para transmitir tan pronto como el primero acabe y el tercero esta siendo recargado por la CPU.

La condicin de sobreescritura cuando el buffer MAB tiene un mensaje valido, los filtros dan el visto bueno y el buffer asignado al filtro no ha dado del mensaje anterior.

ITSS-MODULO CAN 7.2 BUFFER DE TRANSMISIN DE MENSAJES El modulo CAN tiene tres buffer de transmisin (TXB0, TXB1, TXB2). Cada uno de los tres buffers ocupan 14 bytes y 8 bytes es el mximo q puede tener el mensaje, 5 bytes se encarga de los identificadores, tanto para los extendidos como los estndar. El ltimo byte est asociado con el control de cada mensaje. La informacin de este byte determina las condiciones bajo las que el mensaje es transmitido e indicar el estado de la transmisin del mensaje. Previo al envi del mensaje el usuario debe inicializar el bit TXnIE (CilNTE<2>, CilNTE<3> o CilNTE<4>) para habilitar o deshabilitar una interrupcin cuando el mensaje se enva. El usuario tambin tiene que inicializar la prioridad de la transmisin. 7.3 PRIORIDAD DE TRANSMISIN DE MENSAJE Previo al envi de SOF (star-offrame), se comparan las prioridades de todos los buffers preparados para transmitir. El buffer de mayor prioridad es el primero en ser enviado. Si dos buffers tienen el mismo grado de prioridad, el de mayor direccin es el enviado. 7.4 TRANSMISIN DE MENSAJE Para inicializar la transmisin de un mensaje, el bit TXREQ (CiTXnCON<3>) debe de ser puesto a uno. La transmisin empieza cuando se completa satisfactoriamente la primera vez, el bit TXREQ es puesto a cero y ser generada una interrupcin si TXnIQ (CilNTE<2>, CilNTE<3>, CilNTE<4>) es puesto a uno. Si se intentara transmitir el mensaje pero se produce un error el bit TXERR (CiTXnCON<4>) se pone a uno.

7.5 SUSPENSIN TRANSMISIN DE MENSAJE

DE

ITSS-MODULO CAN El sistema puede abortar un mensaje poniendo a cero el bit TXREQ asociado a cada buffer del mensaje. Un mensaje en espera es abortado mediante el bit TXREQ. Si el mensaje no ha empezado todava su transmisin, o, si el mensaje ha empezado pero es interrumpido por prdida de arbitraje o un error se ejecutara el aborto. El aborto sealiza cuando el bit TXREQ (CiTXnCON<6>) se pone a uno y el flag TXnIF se pone en cero. Si se ha empezado a transmitir un mensaje, intentara transmitirlo por completo. Si al hacerlo ningn error, el bit TXABT. BIBLIOGRAFA: Microprocesadores Avanzados dsPIC, Controladores Digitales de Seales, Arquitectura, Programacin y aplicaciones. no hay

También podría gustarte