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>