30.01.2018 Views

V 32 N 69 FA

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

PARDÍÑAZ ALCÁNTARA, D., VELA XOOL, R.A., LUJÁN RAMÍREZ, C., ATOCHE ENSEÑAT, R. Y SANDOVAL GIO, J.<br />

Campo de aseguramiento: Formado por 16 bits para detectar<br />

errores en la transmisión. Este campo es el resultado de una<br />

serie de cálculos realizados a partir de los campos anteriores.<br />

El nodo receptor calcula el campo de aseguramiento y<br />

comprueba que coincida con el campo de aseguramiento<br />

enviado por el nodo emisor. Si detecta un error envía una<br />

trama de error compuesta por la señal de error y un limitador,<br />

el cual está formado siempre por 8 bits recesivos.<br />

Campo de confirmación: Formado por dos bits y en él los<br />

receptores indican al emisor si les ha llegado el mensaje<br />

completo o solicitan que lo envíe de nuevo. Estos bits son<br />

siempre enviados como recesivos, pero las receptoras que<br />

tras calcular el campo de aseguramiento concluyen que han<br />

recibido bien el mensaje cambia el primero de estos bits por<br />

uno dominante.<br />

Campo de fin de la trama: Cierra la trama, consiste en siete<br />

bits recesivos sucesivos.<br />

Separador de tramas: El espacio entre tramas separa una<br />

trama de la siguiente trama de datos o interrogación remota.<br />

El espacio entre tramas consta de 3 bits recesivos. Estos bits<br />

van a continuación del campo de fin de la trama. Después de<br />

éstos tres bits que separan las tramas sigue un tiempo de bus<br />

en reposo. El tiempo de bus en reposo no es fijo, sino que<br />

varía según la situación del bus [1].<br />

Figura 2. Formato de transmisión estándar (CAN 2.0A).<br />

Inicio Identificación RTR Control Control datos Seguridad ACK Fin trama<br />

1 bit 11 bits 1 bit 6 bits 0 a 64 bits 10 bits 2 bits 7 bits<br />

tarjetas de expansión conocidas como shields. De esta forma<br />

la persona que los utiliza para implementar proyectos no le<br />

tiene que dedicar mucho tiempo al diseño y construcción del<br />

hardware. Esto le permite dedicarle más tiempo y energías a<br />

la parte del software que es realmente más importante en la<br />

solución de un problema o proyecto.<br />

El Arduino no dispone de un controlador CAN integrado, por<br />

lo que es necesario colocarle una tarjeta de expansión (shield)<br />

que lo tenga. Se comenzó a trabajar con dos tarjetas de<br />

expansión Can bus fabricada por Sparkfun. Para lograr la<br />

comunicación CAN fue necesario bajar la librería mcp_can.h<br />

de la página www.seedstudio.com. Esta librería se instala en<br />

el entorno de programación de Arduino utilizando la<br />

herramienta de importar librería. Uno de los nodos enviaba<br />

la información al bus y el segundo nodo se programó para<br />

que sea el receptor, los datos recibidos se mostraban en el<br />

monitor serial del entorno de programación del Arduino. Al<br />

verificar que los datos recibidos son los mismos que los<br />

enviados se comprobaba el correcto funcionamiento.<br />

Con el propósito de tener más nodos conectados a la red se<br />

adquirió una tarjeta CAN fabricada por seedstudio y se<br />

construyeron prototipos de tarjetas CAN las cuales utilizan<br />

los circuitos integrados MCP2515 controlador CAN con<br />

interfaz SPI (Serial Peripheral Interface) [7] y el MCP2551<br />

que sirve como la interfaz entre un protocolo CAN y el bus<br />

físico. Como medio de transmisión se utilizó cable UTP (par<br />

trenzado) con conectores DB9. La figura 3 muestra el<br />

prototipo CAN para que funcione en conjunto con la tarjeta<br />

Arduino.<br />

En la tabla 1, consultada en [4] y [6], muestra las velocidades<br />

de transmisión y las longitudes máximas que puede tener el<br />

bus CAN.<br />

Tabla 1. Velocidades de transmisión.<br />

Velocidad<br />

(Kbps)<br />

Tiempo de bit<br />

(µS)<br />

Longitud máxima<br />

(m)<br />

1000 1 30<br />

800 1.25 50<br />

500 2 100<br />

250 4 250<br />

125 8 500<br />

50 20 1000<br />

20 50 2500<br />

10 100 5,000<br />

MATERIALES Y MÉTODOS<br />

Para la implementación de cada uno de los nodos de la red<br />

CAN se consideró el uso de la tarjeta Arduino. El Arduino<br />

Uno es una tarjeta electrónica basada en el microcontrolador<br />

Atmega<strong>32</strong>8. Tiene 14 entradas/salidas digitales, 6 entradas<br />

analógicas, un resonador cerámico a 16 MHz, una conexión<br />

a USB y un botón a reset. La ventaja de esta plataforma de<br />

desarrollo es su característica de hardware y código abierto y<br />

se dispone de abundante literatura para implementar los más<br />

variados proyectos complementándose en hardware con las<br />

Figura 3. Prototipo CAN.<br />

Ya teniendo el hardware necesario para la red CAN se realizó<br />

una interfaz gráfica para visualizar y almacenar en un archivo<br />

los datos del CAN bus. Para ello, se utilizó el lenguaje de<br />

programación Visual Basic 2010 de la empresa Microsoft.<br />

Este entorno de desarrollo integrado (IDE) dispone de un<br />

editor de código, un depurador y compilador; y permite<br />

agregar elementos gráficos de una manera fácil.<br />

46 REVISTA DEL CENTRO DE GRADUADOS E INVESTIGACIÓN. INSTITUTO TECNOLÓGICO MÉRIDA Vol. <strong>32</strong> NÚM. <strong>69</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!