Equipo portátil para comunicación con centralitas por bus CAN

Anuncio
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO EN ELECTRÓNICA Y AUTOMÁTICA
PROYECTO FIN DE CARRERA
Equipo portátil para comunicación
con centralitas por bus CAN
AUTOR: Guillermo Pallarés Castillo
MADRID, Junio de 2.005
ESTE PROYECTO CONTIENE LOS SIGUIENTES DOCUMENTOS
DOCUMENTO No 1, MEMORIA
1.1 Memoria
pág. 2 a 37
37 páginas
1.2 Estudio Económico
pág. 40 a 41
2 páginas
1.3 Cálculos
pág. 43
1 páginas
1.4 Manuales
pág. 45 a 49
5 páginas
pág. 1
1 página
DOCUMENTO No 2, PLANOS
2.1 Planos
DOCUMENTO No 3, PLIEGO DE CONDICIONES
3.1 Generales y económicas
pág. 2 a 3
2 páginas
3.2 Técnicas y particulares
pág. 4
1 página
DOCUMENTO No 4, PRESUPUESTO
4.1 Mediciones
pág. 1
1 página
4.2 Precios unitarios
pág. 2 a 3
2 páginas
4.2 Sumas parciales
pág. 3 a 6
3 páginas
4.2 Presupuesto general
pág. 6
1 página
Autorizada la entrega del proyecto del alumno:
Guillermo Pallarés Castillo
EL DIRECTOR DE PROYECTO
José Antonio Murciano
Firmado
Fecha
..............................
...... / ...... / ......
Vo Bo del Coordinador de Proyectos
Álvaro Sánchez Miralles
Firmado
..............................
Fecha
...... / ...... / ......
I
Resumen
Este proyecto aborda el desarrollo de una aplicación capaz de comunicarse con
dispositivos electrónicos a través de un bus de comunicaciones industriales CAN. La
aplicación comprende un software y una adaptación de hardware para un microcontrolador.
La motivación de este proyecto surgió a través del estudio de los sistemas electrónicos empleados en la industria de la automoción. En la actualidad, la mayoría de los
vehículos interconectan sus sensores, actuadores y centralitas utilizando redes basadas
en el protocolo CAN. Por ello, cualquier operación que se pretenda realizar sobre estos
equipos implica el acceso a este bus de comunicaciones.
Las herramientas comerciales que dan acceso a bus CAN son en la actualidad bastante caras y complejas. Otras herramientas aportan un acceso a la capa física, pero no
facilitan la tarea del intercambio de datos. En este proyecto se propone la utilización
de un microcontrolador para que controle las funciones de acceso al bus de forma sencilla, pero con posibilidad de modificar todos los parámetros de la conexión y de la
información enviada.
El control del dispositivo se puede hacer mediante pulsadores e información en
pantalla de un circuito impreso o bien desde un ordenador, mediante un instrumento
virtual de LabView. Para tareas sencillas el sistema se puede preparar con una breve
configuración mediante pulsadores, mientras que la modificación de los parámetros
II
más complejos, o el acceso a bases de datos con información sobre los dispositivos se
debe hacer con el programa informático, que enviará toda la información al microcontrolador mediante el bus serie.
El desarrollo y prueba del sistema se ha hecho con un dispositivo electrónico de la
marca Magneti Marelli (cuadro de instrumentación), con el que se ha conseguido una
comunicación a través de CAN. Para la depuración de la comunicación y la adaptación
a distintos parámetros del bus se ha utilizado una tarjeta PCMCIA de acceso a bus CAN
de la compañía National Instruments.
El resultado obtenido es una aplicación totalmente operativa que permite acceder a
cualquier tipo de bus CAN, y a cualquier dispositivo conectado al bus. La utilidad industrial de esta aplicación pasa por tareas de montaje, configuración y mantenimiento
en fábricas y talleres, destacando su robustez y portabilidad. La utilidad didáctica se
centra en el estudio de redes de comunicaciones y programación sobre microcontroladores, bases de datos y LabView.
Como conclusión principal, cabe destacar la gran importancia de la tecnología
CAN en la actualidad y en un futuro próximo, debido fundamentalmente a su robustez
y a su adaptabilidad a nuevas necesidades, fundamentalmente el aumento del ancho de
banda y la adaptación a nuevos medios físicos, como la fibra óptica.
Por otro lado, se ha valorado la utilización de herramientas de programación gráfica como LabView. Frente a la programación escrita los lenguajes gráficos ofrecen
una gran potencia para aplicaciones concretas, pero una menor robustez para desarrollos más específicos, debido fundamentalmente a la dependencia de librerías poco
III
accesibles.
Finalmente se ha demostrado la capacidad de los microcontroladores de última
generación para desarrollar tareas complejas mediante programación en lenguaje C
y ensamblador, gracias al aumento de memoria y de velocidad de procesamiento de
datos, así como los módulos de comunicación con dispositivos externos.
IV
Abstract
This project deals with the development of a system able to communicate with
electronic devices through an industrial CAN communication bus. The system is made
up of the software and hardware needed to ride the microcontroller.
The motivation for this project came up by studying electronic devices used by
the automotive industry. At the moment, most vehicles connect their sensors, actuators
and other electronic systems by using CAN based networks. Therefore, any operation
on this equipment implies the access to the communication bus.
Communication with a CAN bus connected device can be done by means of expensive and complex tools, or by other devices which provide access to the physical
layer, but don’t deal with data exchange. The use of a microcontroller is proposed in
this project in order to control the bus access easily, adding the possibility to modify
all connection and sent data parameters.
The microcontroller based device can be controlled by using a screen and a small
keypad in the circuit board, or also by a National Instrument Virtual Instrument, running on a computer. Simple tasks can be done by configurating the device board, but
more complex parameters, or database information should be modified by the computer program, which will send all data to the microcontroller through serial bus.
The development and test of the system has been done with a Magneti Marelli
electronic device (car instrument panel), with whom a communication has been obtained. Communication debugging and adaptation to other CAN specifications has been
CC
achieved by using a National Instrument CAN bus PCMCIA card.
The results of this project is a fully operative application which allows the access
to any kind of CAN bus, and any device connected to the bus. Industrial applications
could be assembly, configuration and maintenance in factories and workshops, with
an important advantage in terms of robustness and portability. In didactic terms, this
project deals with the study of computer networks and microcontroller, LabView and
database programming.
This work main conclusion is the huge importance of CAN based systems at the
moment and short term, mainly due to its robustness and adaptability to new needs, as
bandwidth increase and new physical layers as optic fibre.
Also, an evaluation on graphic programming systems against written ones has been
done. These languages offer a great power for some functionalities, but also a smaller
robustness for specific ones. The reason for this is the use of hard to get libraries.
Finally, recent microcontroller features have been proved as fully able to develop
complex tasks by C and assembly programming languages thanks to memory and data
processing increases, and external devices communication modules.
Documento No I, Memoria
Índice general
I
Memoria
1
Prólogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.1. Introducción y planteamiento del proyecto . . . . . . . . . . . . . . .
3
1.1.1. Objetivo del proyecto . . . . . . . . . . . . . . . . . . . . . .
3
1.1.2. Estudio de las tecnologías existentes . . . . . . . . . . . . . .
5
1.1.3. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.1.4. Áreas de conocimiento . . . . . . . . . . . . . . . . . . . . .
6
1.1.5. Metodología de trabajo y herramientas . . . . . . . . . . . . .
7
1.2. Descripción de las tecnologías . . . . . . . . . . . . . . . . . . . . .
10
1.2.1. Bus CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.2.2. Microcontrolador . . . . . . . . . . . . . . . . . . . . . . . .
17
1.2.3. Comunicación RS-232 . . . . . . . . . . . . . . . . . . . . .
19
1.2.4. Lenguaje de programación LabView . . . . . . . . . . . . . .
21
1.3. Descripción de la aplicación desarrollada . . . . . . . . . . . . . . .
24
1.3.1. Programa en C . . . . . . . . . . . . . . . . . . . . . . . . .
24
ÍNDICE GENERAL
II
1.3.2. Programa en LabView . . . . . . . . . . . . . . . . . . . . .
27
1.3.3. Protocolo ordenador-microcontrolador . . . . . . . . . . . . .
30
1.3.4. Conexión hardware . . . . . . . . . . . . . . . . . . . . . . .
31
1.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
1.4.1. Capacidad del bus CAN . . . . . . . . . . . . . . . . . . . .
33
1.4.2. Desarrollo de aplicaciones con LabView . . . . . . . . . . . .
34
1.4.3. Programación de microcontroladores . . . . . . . . . . . . .
36
Bibliografía
37
II
39
ESTUDIO ECONÓMICO
1.1. Estudio económico . . . . . . . . . . . . . . . . . . . . . . . . . . .
III
CALCULOS
1.1. Cálculos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IV
MANUALES
40
42
43
44
1.1. Manual de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
1.1.1. Modo autónomo . . . . . . . . . . . . . . . . . . . . . . . .
45
1.1.2. Modo programado . . . . . . . . . . . . . . . . . . . . . . .
46
Parte I
Memoria
2
Prólogo
En la memoria de este proyecto se recogen los trabajos realizados investigando las
posibilidades de realizar desarrollos asociados al intercambio de datos utilizando el
protocolo de comunicaciones CAN bus. Se entienden como desarrollos aplicaciones a
nivel de software y a nivel de hardware.
El resultado final de este proyecto es una herramienta capaz de comunicarse con
cualquier dispositivo conectado a un bus CAN, con un coste de fabricación muy reducido y con una interfaz de utilización muy sencilla para el usuario. Dentro de la interfaz
de utilización se incluye una herramienta que permite configurar de modo gráfico el
dispositivo de hardware y la información que se pretende enviar.
Como introducción, este documento comienza mostrando la relación entre las materias tratadas en el desarrollo de este proyecto y los contenidos de la titulación de
Ingeniero en Electrónica y Automática.
Posteriormente, con el fin de poder abordar el estudio de las aplicaciones se va a
hacer una descripción de los aspectos teóricos fundamentales del proyecto: protocolos
de comunicaciones y herramientas de hardware y de software empleadas.
La aportación de este proyecto se va a detallar en una sección conteniendo una
descripción detallada de las aplicaciones y de la utilidad de las mismas.
Finalmente se van a exponer las conclusiones de la realización del proyecto, acerca
de la utilización de este protocolo y de la utilidad de las herramientas empleadas.
1.1 Introducción y planteamiento del proyecto
1.1.
3
Introducción y planteamiento del proyecto
Este proyecto intenta resolver una necesidad concreta de comunicación con un bus
de comunicaciones muy extendido en la industria. Este objetivo principal justifica la
aplicación de una gran cantidad de contenidos teóricos adquiridos a lo largo de la carrera de Ingeniero en automática y electrónica industrial. Por otro lado, el hecho de
trabajar sobre componentes de hardware y software extendidos en el ámbito industrial
implica una introducción al desarrollo de aplicaciones que cumplan con las especificaciones de la industria, así como una dificultad añadida para conseguir los objetivos
propuestos. Esta dificultad se debe a que en muchos casos la información sobre los sistemas de que se dispone no es suficiente para conseguir una aplicación verdaderamente
operativa.
NOTA: El proyecto se ha desarrollado en la empresa CONTER Control de Energía
S.A.
1.1.1.
Objetivo del proyecto
Se ha diseñado un sistema capaz de interactuar con dispositivos conectados a un
bus de comunicaciones de tipo CAN (Controller Area Network) para tareas de fabricación o de mantenimiento. El sistema es autónomo y portátil, dotado de una interfaz
de manejo simple para el usuario. Como el funcionamiento de estos dispositivos es
bastante complejo, la información necesaria para la comunicación se facilita al usuario
mediante el acceso a una base de datos estándar con los parámetros necesarios para
1.1 Introducción y planteamiento del proyecto
4
configurar el mensaje necesario para cada función del dispositivo. El acceso a la base
de datos se hace desde un ordenador con cualquier sistema operativo, que se comunica
con el microcontrolador mediante el puerto serie. En la figura 1 se muestra un esquema
de la aplicación.
Figura 1: Diagrama de bloques del sistema completo
Se pretende que el sistema diseñado sea una herramienta para procesos en los que
es necesario controlar dispositivos con conexión CAN, ya sea en tareas de fabricación
o de mantenimiento. El sistema es capaz de pedir una respuesta del dispositivo, ya sea
información sobre su estado o actuación sobre un motor o sensor al que esté acoplado.
La idea de fijar un estándar que permita la comunicación entre todos los elementos conectados a la línea, permite también que una herramienta como la presentada
en este proyecto pueda acceder a todos los dispositivos conectados al bus mediante
un único terminal. Por lo tanto, constituye un banco de pruebas capaz de verificar el
funcionamiento de todos los componentes electrónicos de un sistema basado en CAN.
1.1 Introducción y planteamiento del proyecto
1.1.2.
5
Estudio de las tecnologías existentes
Debido a la gran cantidad de dispositivos diseñados para utilizar una conexión a
redes de bus CAN, existen en el mercado una gran cantidad de herramientas que permiten monitorizar la información que circula por el bus. Otras herramientas permiten
acceder a los dispositivos conectados al bus. Finalmente, algunos fabricantes ofrecen
herramientas integradas con todos los servicios anteriores y acceso a bases de datos,
pero con un coste muy alto.
La aplicación propuesta en este proyecto consigue prestaciones similares a los sistemas integrados de acceso al bus, pero con un coste más reducido que el de las herramientas más simples.
1.1.3.
Motivación
La arquitectura de bus CAN fue inicialmente diseñada para su utilización en automóviles, pero actualmente tiene también muchas otras aplicaciones de automatización
y control. En el proceso de fabricación y para realizar cualquier tarea de mantenimiento
o de monitorización del bus es necesario utilizar un PC con herramientas de hardware
y de software muy costosas.
La aplicación que se propone en este proyecto sólo necesita un PC con un puerto
serie para acceder a todos los dispositivos conectados al bus, sin ningún software especial, lo que supone un importante ahorro de costes. Además, la interfaz gráfica con
integración de una herramienta de acceso a una base de datos con información sobre
1.1 Introducción y planteamiento del proyecto
6
las tramas de cada dispositivo ofrece una gran facilidad de utilización.
1.1.4.
Áreas de conocimiento
Las áreas de conocimiento que estudiadas en este proyecto son las siguientes:
1. Programación de microcontrolador
La parte más importante del proyecto consiste en la programación de un microcontrolador para conseguir la comunicación con el bus industrial. Además, el
programa tiene que ser capaz de recibir la información necesaria para establecer
la conexión desde un ordenador mediante via serie. Por último, el programa debe permitir la interacción del usuario mediante una pantalla y unos pulsadores.
La programación se realizará en lenguaje C y ensamblador, y incluirá el manejo
de interrupciones.
2. Programación sobre lenguaje LabView
El microcontrolador debe recibir un conjunto de parámetros necesarios para establecer la conexión con el bus. Estos parámetros dependen del fabricante del
dispositivo conectado al bus, y quedan registrados en una base de datos. La función del programa sobre LabView, ejecutado en un ordenador personal, es leer
los parámetros de la base de datos y mandar la información al microcontrolador
mediante una interfaz RS 232. El programa debe permitir al usuario visualizar
los parámetros principales para elegir la forma con la que quiere actuar sobre el
dispositivo conectado al bus.
1.1 Introducción y planteamiento del proyecto
7
3. Redes de comunicaciones
Para establecer el intercambio de información del microcontrolador con el bus y
con el ordenador, es necesario manejar conceptos sobre comunicaciones. Además, las especificaciones del protocolo que se va a utilizar, CAN 2.0 de Bosch1 ,
que reúnen todas las condiciones que se deben cumplir para establecer la comunicación, se basan en ideas sobre comunicaciones tales como estructura de
capas, detección de errores, formatos de trama, prioridad, etc.
4. Líneas de transmisión
Para acceder a un dispositivo CAN industrial mediante un microcontrolador y
depurar la comunicación es necesario conectar los tres nodos (dispositivo, microcontrolador y PC con tarjeta de adquisición de datos) en una línea de transmisión por la que se transmitirá la información. La comunicación no será posible
si la línea no está correctamente adaptada.
1.1.5.
Metodología de trabajo y herramientas
Este proyecto se ha desarrollado en las instalaciones de la empresa CONTER S.A.,
que ha proporcionado todas las herramientas software y hardware utilizado en su creación.
Inicialmente se ha hecho un estudio de redes de comunicaciones, basado en Tanenbaum [TANE03]. Posteriormente se ha centrado el estudio en aspectos propios del bus
1 Disponible
en www.can.bosch.com/docu/can2spec.pdf
1.1 Introducción y planteamiento del proyecto
8
CAN, utilizando diverso material de la red, fundamentalmente de Bosch [1] y de Can
in Automation [2]. El último contenido teórico necesario antes de comenzar el proyecto fue el relacionado con las características del microcontrolador y se hizo utilizando
la documentación del fabricante [3].
Con los conocimientos anteriores, se programó el dispositivo para acceder a un módulo CAN de Magneti Marelli. La programación se hizo con el entorno de desarrollo
y el compilador del fabricante del chip.
Inicialmente, la adaptación de señal del transceiver 2551 se monitorizó con un
osciloscopio, hasta que se consiguió adaptar la línea y obtener unos niveles de tensión
adecuados.
Una vez que se consiguió la adaptación de la señal, la depuración de la comunicación se hizo con herramientas hardware y software de National Instruments para acceso al bus CAN: Programa Measurement & Automation Explorer conectado a tarjeta
PCMCIA-CAN Serie 2. Se muestra un diagrama de la depuración de la comunicación
CAN en la figura 2
Una vez que se estableció el acceso del microcontrolador con el bus CAN, se inició
la programación sobre LabView del módulo de configuración del micro y de lectura
de la base de datos. La primera adaptación a LabView se hizo con documentación de
National Instruments [4].
El funcionamiento del programa LabView se ha ensayado con la base de datos
correspondiente al vehículo que monta el cuadro de instrumentos con el que se ha
trabajado. En cuanto al acceso del programa al puerto serie, se ha monitorizado la
1.1 Introducción y planteamiento del proyecto
9
Figura 2: Depuración de comunicación CAN
conexión con el software de un adaptador serie/USB marca KEYSPAN, que ha servido
para depurar todo el protocolo de comunicación entre LabView y el microcontrolador.
Se muestra el proceso de depuración de de la comunicación entre la aplicación de
LabView y el microcontrolador, en la figura 3
Figura 3: Depuración de comunicación serie
1.2 Descripción de las tecnologías
1.2.
10
Descripción de las tecnologías
En este apartado se va a detallar a nivel teórico cada uno de los aspectos técnicos
necesarios para la realización del proyecto.
1.2.1.
Bus CAN
Información sobre el protocolo
Este proyecto se basa en un bus de comunicaciones muy utilizado a nivel industrial
creado por Bosch en la década de los 80. Se pretendía establecer una comunicación
capaz de unir varias centralitas electrónicas de un automóvil, con un alto nivel de
fiabilidad y de control de errores. El resultado del diseño fue un bus serie con sólo
dos cables, basado en el envío de tramas cortas a alta velocidad, el bus CAN. Como
características principales, cabe destacar que la máxima velocidad de transmisión que
se puede alcanzar es de 1 Mbps, y que la comunicación puede continuar aunque haya
averías en uno de los dos cables.
Actualmente, la comunicación por bus CAN está regulada por el estándar internacional ISO 11898 [5].
Todos los nodos conectados a este bus envían a todos los demás y reciben de todos
ellos, por lo que se dice que es un bus multi maestro. La comunicación es half-duplex o
alterna en dos sentidos, ya que no se puede transmitir más de un mensaje a la vez. Para
evitar colisiones entre tramas enviadas al mismo tiempo por varios nodos, se establece
un sistema de arbitraje, por el que el identificador de cada trama lleva asociado un
1.2 Descripción de las tecnologías
11
nivel de prioridad. Cada nodo espera a que el bus esté libre de datos para comenzar a
enviar, y recibe datos a la vez que está enviando. Si durante su transmisión un nodo
recibe datos de mayor prioridad, deja de enviar y vuelve a esperar a que el bus esté
libre. De esta manera se permite que haya información asociada a identificadores de
alta prioridad con tiempos de espera mínimos.
Como se ha mencionado, la información se manda confinada en tramas cortas.
Protocolos sobre capas más altas permiten mandar mayor volumen de información
segmentado en muchas tramas. El protocolo establece dos servicios de comunicación:
el envío de información, y la solicitud de información.
Aplicaciones típicas de redes CAN
Cualquier conjunto de microcontroladores que necesiten compartir información es
susceptible de utilizar este protocolo. Aunque se asocie típicamente a la automoción,
también tiene aplicaciones en otros medios de transporte como trenes, aviones y barcos, y otros ámbitos diferentes como procesos industriales de automatización, control
y equipamiento médico.
Las ventajas de utilizar un bus de comunicaciones en vez de un cableado punto
a punto se traducen en un ahorro de costes y de peso, especialmente importante en
sistemas embarcados, y facilidad de instalación y de detección de averías. El protocolo
CAN aporta además una comunicación fácil de implementar, robusta frente al ruido y
con un avanzado control de errores.
1.2 Descripción de las tecnologías
12
Capa física
Atendiendo al modelo OSI, los dos niveles inferiores de una comunicación por capas son la capa física y la capa de datos. El protocolo CAN establece las características
de ambos niveles.
El medio físico lo constituyen dos hilos paralelos, trenzados y/o blindados, según
los requerimientos electromagnéticos. La línea debe tener en ambos extremos resistencias que representan su impedancia característica. Si la línea no está correctamente
adaptada, no se puede alcanzar las pendientes adecuadas en los flancos de la señal, y
se producen errores en la transmisión. La velocidad de transmisión del bus depende
Figura 4: Línea de transmisión CAN
de la longitud de la línea, el tipo de cable utilizado y la resistencia de terminación. La
velocidad máxima es de 1 Mbps sobre una línea de 40 metros, y la velocidad mínima
es de 50 Kbps sobre una línea de 1 km.
Los niveles lógicos son:
1. Dominante: tensión diferencial nominal de 2 voltios, permitido de 1,5 a 3 voltios.
1.2 Descripción de las tecnologías
13
2. Recesivo: tensión diferencial de 0 voltios.
La señal se transmite en modo diferencial para minimizar el efecto del ruido, que
afecta por igual a los dos hilos.
NOTA: Los parámetros anteriores son los más comunes, pero pueden variar según
la especificación que se esté utilizando.
El estándar establece que la transmisión es síncrona y la codificación de bits se
hace mediante NRZ, por lo que el nivel de la señal permanece constante a lo largo
de todo el tiempo de bit. Como el nivel puede permanecer constante durante periodos
largos, se utilizan mecanismos de sincronización, como el control de bit de relleno (ver
Detección de errores).Además, el tiempo nominal de bit se divide en segmentos, para
asegurar que el instante de muestreo es el adecuado2 . Se muestra a continuación una
captura de osciloscopio de una trama transmitida a 125 Kbps. La medida se ha hecho
entre uno de los hilos y tierra. Se puede observar que la diferencia de voltajes entre los
estados recesivo y dominante es de 1,5 voltios, dentro del rango permitido.
Detección de errores
Este protocolo cuenta con mecanismos de detección de errores a nivel de mensaje
y de bit que permiten su utilización en aplicaciones en las que la fiabilidad es fundamental.
1. Mecanismos de detección de errores a nivel de bit
2 Dentro
de este proyecto, una de las mayores dificultades ha consistido en la elección correcta de
los segmentos del tiempo de bit.
1.2 Descripción de las tecnologías
14
Figura 5: Captura de trama CAN
a) Control de colisión
Durante la transmisión, el nodo que envía también monitoriza el bus en
busca de posibles errores. Si algún bit enviado no se corresponde con el
que se correspondía enviar, se señala un error de bit.
b) Control de bit de relleno
Si el mensaje requiere enviar más de cinco bits iguales, el nodo transmisor
debe añadir un bit de relleno de valor complementario. El receptor elimina
ese bit a la hora de procesar la información. De esta manera se generan los
flancos de sincronización.
2. Mecanismos de detección de errores a nivel de mensaje
a) Comprobación de redundancia cíclica (CRC)
1.2 Descripción de las tecnologías
15
Al final de cada transmisión el emisor añade una secuencia de comprobación calculada para esa trama. La secuencia es recalculada por el receptor,
que lanza un error cuando no coinciden debido a un error de transmisión.
b) Comprobación de trama
Algunos campos de la trama tienen un formato establecido por el protocolo.
Si se detecta un valor inválido en alguno de esos campos, se señala un error
de formación de la trama.
c) Señal de trama recibida
El nodo transmisor debe recibir una señal de trama correctamente recibida
(acknowledge). En caso contrario, emitirá un error de tipo ACK.
Si algún nodo detecta un error en la trama que se está enviando en ese instante, manda
un mensaje de error, que evita que la trama incorrecta pueda ser aceptada por otro
nodo.
Formato de la trama
La especificación actual del proyecto es la versión 2.0 y establece dos tipos de
tramas, según el tamaño de su identificador: 11 o 29 bits. La mayoría de los sistemas
trabajan con la longitud estándar de 11 bits, que es compatible con equipos preparados
para ambos formatos.
Los campos de la trama son los siguientes:
1. Campo de inicio de trama
1.2 Descripción de las tecnologías
16
Bit dominante3 que indica el comienzo de un mensaje.
2. Campo de arbitraje
En tramas de datos, este campo contiene información sobre la prioridad del mensaje, contenida en el identificador. En tramas de petición de datos, se mantienen
todos los bits a nivel recesivo, indicando que la prioridad es la menor.
3. Campo de control
Contiene espacio reservado para futuras ampliaciones del bus y la longitud del
campo de datos.
4. Campo de datos
Contiene la información del mensaje. Su tamaño máximo es de 64 bits.
5. CRC
Herramienta de control de errores.
6. ACK
Control de errores mediante bit recesivo. Durante ese bit, el emisor espera que
los receptores coloquen un bit dominante en la línea.
7. Fin de trama
Siete bits de nivel recesivo.
3 En
el bus CAN, la señal por defecto es un ’1’ lógico, que corresponde al nivel recesivo de la señal
(Ver Capa Física)
1.2 Descripción de las tecnologías
17
Figura 6: Formato de trama CAN
1.2.2.
Microcontrolador
Se entiende por microcontrolador a un circuito integrado de muy alta escala de integración, formado por tres unidades básicas: CPU que procesa la información, memoria
de datos para guardar información y memoria de programa para almacenar las instrucciones. Además, la mayoría de los microcontroladores incorporan una gran cantidad
de entradas y salidas para comunicarse con periféricos.
Los microcontroladores representan una herramienta de hardware ideal para el desarrollo de aplicaciones con conexión CAN. Las otras opciones serían:
Circuito cableado: sería muy difícil de diseñar toda la lógica, y no obtendría
las mismas prestaciones. Además, un cambio en el programa exigiría volver a
diseñar el circuito.
Microprocesador: requieren una circuitería mucho más compleja, y la mayor potencia no se traduciría en un aumento en las prestaciones de esta aplicación. El
1.2 Descripción de las tecnologías
18
microcontrolador cumple las necesidades de memoria y velocidad de procesamiento de esta aplicación, y es más económico y más sencillo de programar.
Como ventaja añadida, muchos fabricantes ofrecen circuitos con módulos de CAN
integrados, que incluyen la mayoría de las especificaciones del protocolo. Estos módulos tienen el hardware necesario para cumplir la mayoría de las especificaciones
del procotolo a nivel físico, e incluyen rutinas para facilitar el tratamiento de datos en
forma de tramas.
Recursos de microcontroladores necesarios para esta aplicación:
Interrupciones: Para llevar un control exacto de la frecuencia con la que se envía la información, se programa una rutina que garantiza el tiempo exacto de
ejecución mediante la cuenta de un temporizador.
Puerto serie: A través de este puerto el microcontrolador recibe la información
que posteriormente deberá mandar a través del bus.
Memoria no volátil: El programa se almacena en una región de memoria que no
se borra al desconectar la alimentación.
Circuitería asociada: interruptores, pantalla. Conforman la interfaz con el usuario de la aplicación. En muchos casos es posible encontrar placas diseñadas para
los microcontroladores con todas estas funciones.
Elevada frecuencia máxima de oscilador: con esta frecuencia se puede ejecutar
el programa y programar una transmisión por CAN de alta velocidad.
1.2 Descripción de las tecnologías
19
Recursos para la programación: los fabricantes de microcontroladores ofrecen
una gran cantidad de material para programación de sus circuitos integrados, así
como herramientas de desarrollo y depuración.
Para la realización de este proyecto se ha utilizado un microcontrolador de la casa
Microchip, modelo 18F458, con 32 Kbytes de memoria de programa y 1.5 Kbytes de
memoria RAM. La máxima frecuencia de reloj es de 40 Mhz, e incluye un módulo de
CAN.
El microcontrolador está montado sobre una placa PICDEM 2 plus, también de
Microchip. Esta placa tiene además de los circuitos necesarios para el microcontrolador, una pantalla LCD, pulsadores, un circuito de comunicación serie y superficie para
componentes añadidos.
1.2.3.
Comunicación RS-232
En la aplicación de este proyecto se tiene necesidad de establecer una comunicación entre las aplicaciones del microcontrolador y del ordenador. Hay una gran variedad de comunicaciones posibles, tanto cableadas como inalámbricas, pero como no
hay una necesidad de gran velocidad de transmisión ni de comunicación sin cables, se
ha optado por la solución más simple: comunicación RS-232. La ventaja que ofrece
esta comunicación es que la placa sobre la que se ha desarrollado tiene incorporado un
circuito de comunicación serie basado en el chip MAX232A.
El protocolo RS-232 establece una comunicación serie, igual que en el protocolo
1.2 Descripción de las tecnologías
20
CAN, pero a diferencia de éste, la comunicación puede ser half dúplex o full dúplex:
puede enviar uno o los dos transmisores cada vez. A nivel físico, la señal también tiene
dos valores establecidos, según el valor lógico con el que se corresponda. La trama es
similar a la trama de CAN, ya que el primer bit que se manda es un valor dominante.
Después se manda un número de bits de datos de entre 5 y 8 y finalmente uno o dos
bits de stop.
Figura 7: Formato de trama RS-232
Se puede apreciar que este protocolo es mucho más simple que CAN, sobre todo en
cuanto a control de errores. Este protocolo ofrece opcionalmente un control de paridad,
que manda un bit de control en función de la suma de los bits enviados. Además,
se puede implementar un control de flujo por hardware, si se dispone de los hilos
correspondientes en la conexión. La función de este control de flujo es informar de si
la línea está libre para transmitir.
Para la aplicación de este proyecto se ha utilizado una comunicación a 19.200
baudios, con 8 bits de datos, un bit de stop y sin control de flujo ni de paridad.
1.2 Descripción de las tecnologías
1.2.4.
21
Lenguaje de programación LabView
Este proyecto tiene como objetivo el control de dispositivos conectados a una red
CAN. Una vez que se ha resuelto el acceso al bus, hay que conocer la información
que se desea enviar a los dispositivos, pues debe obedecer a una serie de reglas: ID
del dispositivo, mensaje y canal sobre el que se desea actuar, etc. Además, hay que
configurar correctamente el hardware para que pueda acceder a la red CAN. Muchos
fabricantes de dispositivos CAN distribuyen toda la información anterior en bases de
datos con un formato especial, que no se puede analizar con programas estándar de
tratamiento de bases de datos.
El microcontrolador recibirá toda la información4 a través del puerto serie, por lo
que cualquier aplicación en el pc capaz de acceder a este puerto puede ser utilizada
para este cometido.
En este proyecto se ha decidido utilizar LabView como aplicación de pc porque
cumple las especificaciones anteriores y añade algunas ventajas importantes. Las principales claves para haber utilizado este lenguaje de programación son las siguientes:
Interfaz gráfica de usuario. LabView está originalmente diseñado para la creación de instrumentos virtuales, que son programas de acceso a dispositivos electrónicos conectados a un ordenador. Por esta razón, dispone de muchos recursos
(librerías) para configurar una conexión con elementos externos.
4 La
volátil
aplicación también permite utilización autónoma, con tramas fijas programadas en memoria no
1.2 Descripción de las tecnologías
22
Acceso a puertos. Este software permite acceder al puerto serie del ordenador de
forma estándar para cualquier sistema operativo. Como añadido, permite acceder
a otro hardware que tenga acceso al bus CAN5 .
Portabilidad a diversos sistemas operativos. Una aplicación creada con LabView
sólo necesita una máquina virtual para poder ejecutarse. El fabricante ha diseñado esta máquina virtual para Windows, UNIX/Linux y Macintosh y la distribuye
de forma gratuita, aunque no libre. Por lo tanto, cualquier ordenador con alguno
de los sistemas operativos anteriores podrá ejecutar una aplicación creada con
LabView.
Acceso a bases de datos. Este lenguaje de programación dispone de librerías de
acceso a bases de datos de información CAN de forma automática (aunque requiere un hardware especial para realizar esta función) o mediante la utilización
de librerías estándar de acceso a bases de datos con una programación bastante
compleja.
Aceptación en la industria. LabView es un estándar utilizado en empresas de
todo el mundo para desarrollo de aplicaciones en el ámbito de la ingeniería.
Un desarrollo en este lenguaje de programación permite la adaptación a las necesidades de muchas empresas y supone un importante aprendizaje sobre una
herramienta muy extendida en la actualidad.
Por todas las razones anteriores se ha decidido utilizar LabView como lenguaje de
5 En
el desarrollo y depuración de la comunicación por bus CAN también se ha utilizado LabView
1.2 Descripción de las tecnologías
23
programación de la aplicación de configuración de parámetros y de información del
microcontrolador. En la figura 8 se muestran algunas de las ventajas apuntadas anteriormente en la interfaz de la aplicación.
1.3 Descripción de la aplicación desarrollada
1.3.
Descripción de la aplicación desarrollada
1.3.1.
Programa en C
24
Este proyecto se centra en el diseño de una aplicación para un microcontrolador.
Esta aplicación queda almacenada en la memoria FLASH del microcontrolador y se
ejecuta cada vez que se desea acceder a los dispositivos del bus CAN. El acceso puede
ser de dos tipos:
1. Automático: Si el microcontrolador no recibe datos de un ordenador a través del
puerto serie, envía información almacenada en el programa. Esta configuración
exige conocer de antemano la configuración del bus y la información que se
desea mandar a los distintos dispositivos.
2. Programado: Una vez que el microcontrolador ha recibido todos los datos del
ordenador, envía la información de acuerdo con los parámetros de configuración
del bus. Esto permite que el dispositivo se pueda comunicar con diferentes tipos
de buses y de dispositivos sin necesidad de reprogramar el microcontrolador.
El funcionamiento del programa se puede resumir en tres grandes bloques: inicialización, espera de operación y envío. En cada una de las fases se muestra el estado del
programa en la pantalla de la placa.
1. Inicialización
En esta fase, se definen los bits de configuración del microcontrolador: entradas
y salidas digitales, configuración de la comunicación serie, configuración del
1.3 Descripción de la aplicación desarrollada
25
timer e inicialización de la pantalla. Todos estos valores están adaptados para la
frecuencia del reloj al que está conectado el micro 6 . La configuración se hace
sin intervención del usuario.
2. Espera de operación
Una vez que el microcontrolador está preparado para enviar la información almacenada para acceso automático al bus CAN, o para recibir información desde
un ordenador. El acceso automático lo iniciará el usuario mediante un pulsador,
mientras que la recepción de información se realizará en cuanto se reciban los
datos, sin intervención del usuario.
3. Envío
Finalmente, el dispositivo se comunica con otros dispositivos del bus CAN. A
la vez que se produce el envío, el programa comprueba que no haya mandado
desde un ordenador información sobre una nueva conexión.
Para asegurar que el envío de tramas se realiza con la frecuencia exacta, se programa una interrupción que se activa cada milisegundo. El envío se realizará cuando
el número de milisegundos sea un múltiplo de una variable definida como periodo de
envío.
La rutina de inicialización del bus CAN está preparada para permitir el acceso a buses de velocidades desde 500 hasta 20 Kbps, todo el rango permitido por la frecuencia
del oscilador utilizado (32 MHz).
6 Algunos
de los ajustes se hacen sobre librerías escritas es ensamblador
1.3 Descripción de la aplicación desarrollada
26
Toda la información sobre los datos transmitidos por el bus CAN y la configuración
del mismo queda almacenada en una estructura.
Se han utilizado librerías de C y ensamblador para facilitar la tarea de las siguientes
funcionalidades:
1. Nombre de los registros del micro
2. Timers
3. Configuración de la via serie y la pantalla
4. Configuración del bus CAN
Uno de los principales problemas para escribir el código de esta aplicación ha sido
que en la fase de diseño no se estaban establecidas exactamente las especificaciones
de la aplicación, en especial en lo referente a la utilización del bus CAN. Por ello se
ha tenido que revisar constantemente, según se añandían nuevas funcionalidades y/o
se adquirían los conocimientos acerca de la configuración y envío del bus.
A lo largo de todo el proceso de programación se ha utilizado el entorno de desarrollo y el compilador proporcionados por el fabricante del micro, disponibles en
versión de evaluación. También se ha utilizado una herramienta de depuración que ha
permitido ejecutar el programa en el micro visualizando el estado del programa, las
variables y los registros. Sin esta herramienta el proceso de depuración de la comunicación habría sido imposible, ya que un simulador de ordenador no puede emular los
datos recibidos por la via serie.
1.3 Descripción de la aplicación desarrollada
1.3.2.
27
Programa en LabView
Desde un ordenador se tiene que enviar la información que se desea colocar en el
bus, así como los parámetros de configuración. El programa diseñado con LabView
añade además la posibilidad de leer desde una base de datos la configuración del bus
y los rangos de parámetros que se pueden utilizar en función de cada mensaje y cada
canal.
El código de LabView creado se divide en tres partes, que se ejecutan secuencialmente:
1. Configuración: se define el puerto serie que se desea utilizar, así como la base
de datos en formato *.dbc que almacena la información sobre la red CAN a la
que deseamos acceder. Se puede elegir el canal que se desea modificar directamente entre todos los de la base de datos o haciendo un filtro por el mensaje que
contiene el canal deseado.
2. Selección de parámetros para enviar: una vez que se ha seleccionado el canal, el
programa lee de la base de datos información sobre el mismo para que el usuario
pueda elegir la información que desea transmitir al bus. Esta información se
puede escribir en forma de números enteros (aconsejado para tramas largas) o
bit a bit (aconsejado para tramas pequeñas de menos de un byte). La información
máxima que se puede mandar en cada trama la fija el protocolo y es de 64 bits.
Para facilitar la introducción de los datos a enviar por el bus CAN, se dispone de
un control que permite introducirlos mediante un valor decimal. Por ejemplo, el
1.3 Descripción de la aplicación desarrollada
28
valor que se desea leer en un cuentarrevoluciones para un combinado concreto
puede ser un valor entre 0 y 5000. Si no se desea hacer la conversión de este
número a binario en la situación que corresponde al canal en el mensaje correspondiente, se puede introducir simplemente el valor y el propio programa hace
la conversión y la colocación de los datos.
3. Envío: la información recogida se envía de acuerdo con el protocolo. El envío se
hace una sola vez.
El diagrama resultante del algoritmo anterior es bastante complejo, y se divide en un
programa principal y una librería de envío, para evitar que el código pueda dar errores
por tener una extensión demasiado grande. Sería óptimo dividir el programa principal
en más de un archivo, pero se recomienda que todos los controles e indicadores (elementos que se muestran en el instrumento virtual) estén situados en el mismo archivo,
por lo que la división no es posible.
Las tareas de acceso a la base de datos y de envío están unidas por una señal de error
que se muestra al final de la ejecución. Esta señal da información sobre el elemento
que ha causado el error, y algunos detalles del mismo. En la práctica, la codificación de
los errores es un poco arbitraria, y apenas sirve para identificar cual ha sido el elemento
que ha causado el error.
1.3 Descripción de la aplicación desarrollada
Figura 8: Instrumento virtual de acceso a nodo CAN
29
1.3 Descripción de la aplicación desarrollada
1.3.3.
30
Protocolo ordenador-microcontrolador
El diseño del protocolo de comunicación ha sido uno de los pasos más complejos
de todo el proyecto, ya que implica conocer a fondo las características de los datos que
viajan por el bus CAN para poder enviar datos que cumplan con las especificaciones.
Durante la especificación del protocolo, se ha tenido que comprobar que los datos eran
correctamente procesados y enviados en el ordenador, y correctamente recibidos y
procesados en el microcontrolador, por lo que el proceso de depuración ha presentado
algunas dificultades7 .
Se va a enviar información sobre la trama que se desea formar, como la velocidad
y datos sobre la configuración de los bits que forman la trama; información sobre el
identificador de la trama y finalmente los datos que se desean transmitir. La división de
información en tres grupos permite facilitar la depuración introduciendo caracteres de
control. Cada caracter se corresponde con uno de los tres grupos anteriores y los datos
recibidos después de él se deben interpretar según la clasificación anterior. En caso de
recibir información incorrecta, el microcontrolador lo señalará mediante otro caracter
de control.
Una vez que el microcontrolador ha recibido información acerca de la configuración del bus y de la trama, y los datos que se van a enviar, forma una trama CAN para
enviar por el bus. En la configuración de los datos de la trama se ha decidido que todo
el tratamiento se haga en el ordenador, para dar más peso a la programación sobre Lab7 La
depuración de la comunicación ordenador - microcontrolador se ha hecho con un software de
monitorización del puerto serie.
1.3 Descripción de la aplicación desarrollada
31
View. Las operaciones que hay que hacer son colocar los bytes de datos según el orden
especificado en la base de datos (Intel o Motorola) y desplazarlos según la posición del
canal en el mensaje.
1.3.4.
Conexión hardware
El microcontrolador utilizado, Microchip 18F458, dispone de un módulo CAN que
realiza toda la gestión de envío de tramas, y de control de errores propios de un nodo.
Sin embargo, no dispone de salidas adaptadas para conexión directa a un bus CAN,
sino de salidas TTL con valores entre 0 y 5 voltios. Por lo tanto se requiere un hardware
adicional que haga la conversión de la señal entre los niveles lógicos proporcionados
por el microcontrolador y los niveles de tensión especificados por el protocolo (ver
Sección 1.2.1).
Para realizar la adaptación de señal se ha utilizado un circuito basado en el circuito
integrado MCP 2551 de Microchip. Este circuito requiere de poco cableado externo
y permite conexiones de hasta 1 Mbps de acuerdo con todas las especificaciones del
protocolo CAN. Una característica de este circuito es su bajo consumo, que mejora la
autonomía del sistema en caso de funcionamiento con batería. La información relevante de este dispositivo se encuentra en [6].
En el prototipo creado para este proyecto, se ha montado el circuito mostrado en la
figura 9 en el espacio libre de la placa de demostración, y se ha demostrado su correcto
funcionamiento conectado con una tarjeta de adquisición de datos para bus CAN y con
1.3 Descripción de la aplicación desarrollada
32
un combinado de la companía Magneti Marelli.
Para conseguir la comunicación con el dispositivo CAN se ha utilizado una resistencia de 4.7 K Ω para el control de la pendiente de los flancos. Sin esta resistencia el
Slew Rate es excesivo.
Figura 9: Diagrama de conexión del integrado MCP 2551
1.4 Conclusiones
1.4.
33
Conclusiones
En este capítulo se pretende dar una idea sobre las ideas resultantes de la realización del proyecto, en los diferentes ámbitos en que se ha trabajado.
1.4.1.
Capacidad del bus CAN
El protocolo CAN es un estándar industrial desde hace muchos años, y todo indica
que lo seguirá siendo durante bastantes años más. Esto es especialmente significativo
en el mundo de la electrónica, ya que la velocidad con la que y los equipos cambian y
las necesidades se incrementan es muy elevada. Las claves de la supervivencia de este
protocolo son su simplicidad, robustez y adaptabilidad.
El siguiente escalón en tecnologías de comunicación entre equipos electrónicos
parece que va venir dado por la transmisión de datos a través de los cables de alimentación: tecnología PLC (Power Line Communication). Mediante esta tecnología
se reduce el cableado y por lo tanto la complejidad y la posibilidad de averías, que
son aspectos clave en sistemas embarcados. Probablemente se implemente un estándar
para utilización del protocolo CAN sobre PLC, modificando la capa física pero manteniendo las características de la capa superior. Otras opciones de futuro para CAN pasan
por la fibra óptica, para la difusión de contenidos multimedia. Estas opciones dan una
idea de la adaptabilidad del protocolo, y de la conveniencia de desarrollar sobre un
estandar conocido por todos los grandes fabricantes.
En cuanto a la simplicidad, parece claro que el grueso del desarrollo de un producto
1.4 Conclusiones
34
no puede estar en su acceso por otros componentes, sino por su propia funcionalidad.
Por ello, un protocolo del que se disponga de mucha información y hardware para
establecer la comunicación, y que facilite los nuevos desarrollos con ventajas importantes en cuanto a fiabilidad parece ser una opción más recomendable que sistemas que
puedan aportar otras ventajas pero que exijan un mayor esfuerzo de implementación.
La robustez de la comunicación basada en CAN permite su utilización en sectores
en los que la fiabilidad es un factor crítico, como los equipos médicos, aeronáuticos y
por supuesto en automoción. Esta capacidad de evitar o minimizar los errores de comunicación viene dada por los sistemas de control de errores comentados en la sección
1.2.1.
Finalmente, las lagunas de este protocolo son las relacionadas con su velocidad de
transmisión. El límite de 1 Mbps permite controlar aplicaciones simples prácticamente
en tiempo real, mientras la red no esté muy cargada ni haya muchos errores; sin embargo, no es suficiente para la transmisión de grandes volúmenes de datos, como por
ejemplo vídeo o audio, cada vez más presentes en automoción y aeronáutica.
1.4.2.
Desarrollo de aplicaciones con LabView
En la titulación de Ingeniero en Electrónica y Automática se da mucha importancia
a la programación en lenguaje C, pero otros lenguajes de programación apenas se mencionan. Los casos más importantes son Java y los lenguajes de programación gráfica
en general, por que son muy utilizados en la actualidad. Por esta razón, el desarrollo
1.4 Conclusiones
35
de una aplicación en un lenguaje de este tipo exige un estudio previo importante.
Superada la adaptación inicial al desarrollo mediante bloques y las conexiones
entre ellos, se puede decir que LabView es un lenguaje de programación muy potente,
pero que exige conocimientos elevados para el desarrollo de aplicaciones complejas.
Una de las características fundamentales de este lenguaje de programación es que
está desarrollado íntegramente por una sola compañía. La principal ventaja de esto
es que mientras la compañía mantenga una presencia importante en el mercado, está
asegurada la actualización del programa en forma de soporte de nuevos dispositivos,
nuevas funcionalidades y documentación. El inconveniente es que su utilización tiene
un precio bastante elevado, y en muchas ocasiones es difícil entender el funcionamiento de algunos bloques del sistema, ya que no se conoce su código fuente.
Para la programación de aplicaciones sencillas, es recomendable la utilización de
este sistema ya que aporta una gran cantidad de ejemplos que pueden ser modificados
para adaptarlos a la nueva aplicación, así como suficiente documentación para tareas
simples. Otro aspecto muy positivo es la facilidad de diseñar un entorno gráfico para
la aplicación.
Sin embargo, para la utilización de hardware poco soportado, o para la creación de
proyectos importantes, su uso queda limitado a desarrolladores con mucha experiencia.
Además, algunos bloques exigen la utilización de hardware de la compañía, como es
el caso de las librerías de acceso a las bases de datos de CAN. Para otras librerías, no
es posible ejecutar programas creados en Windows en diferentes sistemas operativos.
Otro aspecto destacable es que las herramientas disponibles para crear los dia-
1.4 Conclusiones
36
gramas tiene un manejo bastante intuitivo e incluye herramientas de depuración. Sin
embargo, no es posible acceder a niveles inferiores de programación para verificar el
funcionamiento de la aplicación como permiten hacer C y otros lenguajes de más bajo
nivel.
1.4.3.
Programación de microcontroladores
Los microcontroladores son herramientas muy potentes para el control de dispositivos en el ámbito industrial, como se detalla en la Sección 1.2.2. La rápida evolución
de estos sistemas en aspectos como las comunicaciones con dispositivos, el aumento
de memoria tanto de programa como RAM y la mayor velocidad de cálculo hacen de
ellos una opción apta para cada vez más situaciones.
El proceso de creación de código ejecutable por un microcontrolador comienza
por elegir el lenguaje en el que se desea programar. El lenguaje más utilizado para
aplicaciones que no sean demasiado específicas es C, y supone un estado intermedio
entre los lenguajes de alto nivel y el ensamblador. La utilización de lenguajes de alto
nivel supone la utilización de librerías que tienen que estar perfectamente portadas
a la arquitectura con la que se esté trabajando, y cierto descontrol sobre lo que se
ejecuta. Por el contrario, programar en ensamblador aporta control absoluto sobre cada
proceso, a cambio de menor capacidad de órdenes complejas. Por estas razones, la
combinación más utilizada es programación en C utilizando rutinas en ensamblador
para las tareas más delicadas, y es el modo utilizado en el desarrollo de este proyecto.
1.4 Conclusiones
37
En la actualidad el nivel de los compiladores para estos dispositivos ha progresado
notablemente, y los fabricantes suelen facilitar herramientas completas para los desarrolladores, como entornos de programación y depuración por medio de simuladores o
herramientas de ejecución paso a paso.
Los principales problemas para desarrollar programas para microcontroladores son
los derivados de su interacción con otros dispositivos, porque son procesos difíciles de
simular. Por ejemplo, las comunicaciones son procesos difíciles de desarrollar. Sin embargo, hay una gran cantidad de herramientas que permiten monitorizar las conexiones
para ayudar en la depuración. Otros procesos difíciles de programar, pero que aumentan las posibilidades del programa son las interrupciones. Ambos procesos se pueden
controlar mediante los registros del micro, que representan el estado de la ejecución
en cada momento.
Bibliografía
[TANE03] A. Tanenbaum. Computer Networks. Prentice Hall International Edition,
cuarta edición, 2.003, ISBN 0-13-038488-7
[1] http://www.can.bosch.com
[2] http://www.can-cia.org/can/
[3] Microchip Technology Inc. PIC18FXX8 Data Sheet. Disponible en la página web
del fabricante.
[4] National Instruments Corporation LabView Basics Course Manual, sexta edición.
Part Number 320628G-01
[5] http://www.iso.org/
[6] Microchip Technology Inc. MCP 2551 Data sheet. Disponible en la página web
del fabricante.
Parte II
ESTUDIO ECONÓMICO
1.1 Estudio económico
1.1.
40
Estudio económico
El bus CAN está presente en una gran cantidad de aplicaciones a nivel industrial y
en muchos ámbitos diferentes. Para estas aplicaciones se requieren procesos de fabricación y de mantenimiento, llevados a cabo en proyectos de todo tipo y presupuesto.
De lo anterior se puede deducir que existe un mercado potencial para una aplicación
que permita el acceso a dispositivos conectados a este bus.
La aplicación desarrollada para este proyecto centra su objetivo en conseguir una
conexión a bus CAN con bajo coste, aunque con unas opciones de programación y de
acceso de datos que la distingan de otras opciones. Para aplicaciones que tengan un
presupuesto elevado, las herramientas comerciales ofrecidas por los grandes fabricantes ofrecen mayores prestaciones, a cambio de un presupuesto mucho mayor, aunque
no ofrecen dispositivos programables autónomos sino conectados a un ordenador.
El coste de fabricación de una unidad completa sería el de realización de un circuito
impreso que albergase el micro, la pantalla, los pulsadores y el módulo de conversión
de señal, más el coste de cada uno de los elementos por separado. A este coste hay
que sumarle el del cable de conexión serie y CAN, así como el de alimentación. La
alimentación se puede hacer mediante una fuente de tensión o mediante una batería,
según el uso que se le vaya a dar al dispositivo.
Este coste dependería fuertemente de la cantidad de unidades que se quiera fabricar,
puesto que el precio de cada uno de los componentes y especialmente el del circuito
impreso descienden considerablemente al aumentar el número de unidades. Todos los
1.1 Estudio económico
41
datos acerca de los precios de cada componente y del conjunto final están recogidos
en el DOCUMENTO No 4, PRESUPUESTO.
Como conclusión se puede decir que hay un mercado grande para un producto
como el propuesto en este proyecto, y que el precio de producción es suficientemente
ajustado como para justificar los beneficios de su posible comercialización.
Parte III
CALCULOS
1.1 Cálculos
1.1.
Cálculos
En este proyecto no se han requerido cálculos.
43
Parte IV
MANUALES
1.1 Manual de usuario
1.1.
45
Manual de usuario
En esta sección se van a explicar brevemente los pasos necesarios para operar con la
aplicación desarrollada. Se ha considerado la utilización en dos escenarios diferentes,
según si hay o no conexión a un ordenador.
1.1.1.
Modo autónomo
Si se desea utilizar el equipo en lugares donde podría ser peligroso disponer de
un ordenador, como una línea de montaje, o de reparación, el dispositivo se puede
programar para actuar de forma autónoma. La interacción con el usuario se realizará a
través de dos pulsadores y de la pantalla.
Para poder trabajar en modo autónomo es necesario que el microcontrolador tenga
programada la información que tiene que enviar por el bus. Esto se hace modificando la
rutina void Autonomo() del programa principal, introduciendo la velocidad del bus
y los identificadores y los datos de cada una de las tramas que se quiera enviar. Una
vez que se ha programado el microcontrolador, se podrá ejecutar la aplicación tantas
veces como sea necesario.
Si el microcontrolador dispone de información en memoria de las tramas que se
quiere enviar, sólo hay que conectar los cables de alimentación y conexión al bus CAN
y pulsar un interruptor. En la placa que se ha montado para este proyecto, el pulsador es
el marcado con RA4. A partir de ese momento, el dispositivo enviará la información
que tenga en la memoria y actuará sobre los dispositivos del bus hasta que se pulse
1.1 Manual de usuario
46
el botón de RESET. En cada uno de los dos estados anteriores, la pantalla mostrará
información sobre el proceso.
1.1.2.
Modo programado
En caso de que el microcontrolador no tenga programada en memoria la información que se desea mandar al bus, es necesario utilizar un ordenador para que recopile
la información y se la mande al micro. Esta situación se puede dar cuando se trabaje
con equipos distintos y sea necesario actualizar la información de las tramas constantemente.
Para recopilar la información en el ordenador y mandarla al micro, se utilizará la
aplicación creada con LabView.
Los pasos para comunicarse con un dispositivo del bus en modo programado son
los siguientes:
1. Conectar el cable serie ordenador - dispositivo, la alimentación del dispositivo y
el cable de conexión del dispositivo al bus CAN.
2. Ejecutar la configuración de la aplicación de LabView
a) Indicar el puerto serie al que está conectado el dispositivo
b) Indicar la ruta de la base de datos que contiene la información del bus con
el que se quiere conectar.
3. Elegir el del canal sobre el que se quiere actuar. Una ventana desplegable lista
1.1 Manual de usuario
47
todos los canales de la base de datos, pero se puede hacer un filtro por el nombre
del mensaje que contiene al canal deseado. El proceso se muestra en la figura
10.
Figura 10: Paso 3 aplicación LabView en modo programado
4. Pulsar el botón "Ver Datos"para configurar la información que se desea mandar
al dispositivo CAN.
5. Con los datos facilitados por el programa, introducir la información de la trama.
1.1 Manual de usuario
48
Hay dos modos de proporcionar la información (Ver 2): bit a bit, mostrado en
la figura 11 o resumida en un número entero, mostrado en la figura 12.Se puede
cambiar este modo pulsando el botón "Mostrar bits". NOTA: para evitar errores en funcionamiento en modo número entero, el programa sólo permite elegir
valores dentro de los rangos especificados en la base de datos.
Figura 11: Introducción de datos bit a bit
6. Cuando se haya elegido correctamente la información, se pulsa el botón "‘Enviar".
7. El microcontrolador recibe la información a través del puerto serie y la comunicación comienza de forma automática.
8. El dispositivo continuará actuando sobre los dispositivos del bus hasta que reciba
1.1 Manual de usuario
Figura 12: Introduccción de datos como número entero
información sobre nuevas tramas por la vía serie.
9. Para detener el envío de información por el bus, se pulsa el botón de RESET.
49
Documento No II, Planos
Índice general
2.1. Planos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2.1 Planos
2.1.
Planos
En este proyecto no se han utilizado planos.
2
Documento No III, Pliego de condiciones
generales y económicas
Índice general
3.1. Pliego de condiciones generales y económicas . . . . . . . . . . . . .
2
3.1.1. Condiciones generales . . . . . . . . . . . . . . . . . . . . .
2
3.1.2. Condiciones económicas . . . . . . . . . . . . . . . . . . . .
3
3.2. Pliego de condiciones técnicas y particulares . . . . . . . . . . . . . .
4
3.2.1. Equipo informático . . . . . . . . . . . . . . . . . . . . . . .
4
3.2.2. Normas de calidad . . . . . . . . . . . . . . . . . . . . . . .
4
3.2.3. Normas de Seguridad e Higiene . . . . . . . . . . . . . . . .
4
3.2.4. Vida útil del producto . . . . . . . . . . . . . . . . . . . . . .
4
3.2.5. Otros criterios de diseño . . . . . . . . . . . . . . . . . . . .
4
3.1 Pliego de condiciones generales y económicas
3.1.
Pliego de condiciones generales y económicas
3.1.1.
Condiciones generales
2
Las condiciones y cláusulas que se establecen en este documento son de obligado
cumplimiento por las partes contratantes.
I Tanto el administrador como el cliente se comprometen desde la fecha de la firma
del contrato a llevar a cabo lo que se estipule.
II Ante cualquier reclamación o discrepancia en lo concerniente al cumplimiento de
lo pactado por cualquiera de las partes, una vez agotada toda vía de entendimiento,
se tramitará el asunto por la vía de lo legal. El dictamen o sentencia que se dicte
será de obligado cumplimiento para las dos partes.
III Al firmarse el contrato, el suministrador se compromete a facilitar toda la información necesaria para la instalación y buen funcionamiento del sistema, siempre
que sea requerido para ello.
IV Asimismo, el cliente entregará al suministrador todas las características distintivas
del equipo comprado y aquellas otras que considere oportunas para el necesario
conocimiento de la misma a efectos del diseño del presente equipo.
V El plazo de entrega será de tres meses, a partir de la fecha de la firma del contrato, pudiendo ampliarse en un mes. Cualquier modificación de los plazos deberá
contar con el acuerdo de las dos partes.
VI En caso de retrasos imputables al suministrador, se considerará una indemnización
del 1 % del valor estipulado por semana de retraso.
VII Existirá un plazo de garantía de un año a partir de la entrega del sistema. Dicha
garantía quedará sin efecto si se demostrase que el sistema ha estado sometido a
manipulación o uso indebido.
3.1 Pliego de condiciones generales y económicas
3
VIII Cumplido dicho plazo de garantía, el suministrador queda obligado a la reparación
del sistema durante un plazo de cinco años, fuera del cual quedará a su propio
criterio atender la petición del cliente.
IX En ningún momento tendrá el suministrador obligación alguna frente a desperfectos o averías por uso indebido por personas no autorizadas por el suministrador.
3.1.2.
Condiciones económicas
I Los precios indicados en este proyecto son firmes y sin revisión por ningún concepto, siempre y cuando se acepten dentro del periodo de validez del presupuesto
que se fija hasta Diciembre de 2005.
II El pago se realizará como sigue:
75 % a la firma del contrato.
25 % en el momento de entrega.
III La forma de pago será al contado mediante cheque nominativo o mediante transferencia bancaria. En ningún caso se aceptarán letras de cambio.
IV El suministrador se hará cargo de los gastos de embalaje y del transporte, dentro
de la ciudad donde se encuentre la instalación. En caso de ser necesario transporte
interurbano, el gasto correrá por cuenta del cliente. En todo caso, el responsable
de los posibles desperfectos ocasionados por el transporte será el suministrador.
V Durante el plazo de garantía, la totalidad de los gastos originados por las reparaciones correrán por cuenta del suministrador.
VI Fuera de dicho plazo y durante los siguientes cinco años, los costes serán fijados
mediante acuerdo por ambas partes. Pasados 5 años, éstos los fijará exclusivamente el suministrador.
3.2 Pliego de condiciones técnicas y particulares
3.2.
Pliego de condiciones técnicas y particulares
3.2.1.
Equipo informático
4
El equipo informático debe estar homologado conforme a la normativa Europea
y Española a fecha de Junio de 2001.
El equipo informático debe instalarse conforme a las indicaciones del fabricante,
manteniendo las condiciones de humedad y temperatura entre los límites marcados.
Los programas informáticos empleados han de contar con la licencia preceptiva y cumplir con las condiciones de la misma. En caso de usar programas de
licencia GPL, se deberán respetar las condiciones de la misma.
3.2.2.
Normas de calidad
Los sistemas se diseñarán de forma que cumplan las normas UNE, CEI y EN aplicables a este tipo de productos, así como las normas ETSI (European Telecommunications Standards Institute) para sistemas de radiofrecuencia.
3.2.3.
Normas de Seguridad e Higiene
El proyecto cumplirá con la Ley 31/95 de Prevención de Riesgos Laborales.
3.2.4.
Vida útil del producto
Los sistemas se diseñarán para una vida útil no inferior a 10 años en funcionamiento continuo.
3.2.5.
Otros criterios de diseño
Se emplearán componentes normalizados para los circuitos electrónicos.
Documento No IV, Presupuesto
Índice general
4.1. Mediciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
4.2. Precios unitarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
4.3. Sumas parciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
4.3.1. Supuesto 1: 1 unidad . . . . . . . . . . . . . . . . . . . . . .
4
4.3.2. Supuesto 2: 50 unidades . . . . . . . . . . . . . . . . . . . .
5
4.3.3. Supuesto 3: 100 unidades
. . . . . . . . . . . . . . . . . . .
6
4.4. Presupuesto general . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
4.1 Mediciones
4.1.
2
Mediciones
Partidas
Cantidad
Desarrollo
Mano de obra
150 horas
Costes indirectos
Asociados a un trabajador
Materiales
Microcontrolador Microchip 18F458
1 unidad
Transductor Microchip MCP2551
1 unidad
Transductor Maxim MAX232
1 unidad
Circuito alimentación NI LM7805
1 unidad
Conectores
DB9: 2 unidades
Alimentación: 1 unidad
Componentes / Montaje
1 conjunto completo
Cuadro 4.1: Mediciones
4.2 Precios unitarios
4.2.
3
Precios unitarios
Los precios unitarios se dividen en dos partidas: los relacionados con el desarrollo
del proyecto y los que están relacionados con el proceso de producción de cada unidad,
siendo estos últimos dependientes de la cantidad a fabricar.
Partida
Coste
Mano de obra
40 e/hora
Costes indirectos
5 e/hora
Cuadro 4.2: Coste de desarrollo
Partida
Coste
1 unidad
50 unidades
100 unidades
Microcontrolador Microchip 18F458
7.45 e
5.32 e
5.04 e
Transductor Microchip MCP2551
1.06 e
0.76 e
0.73 e
Transductor Maxim MAX232
5.95 e
4.30 e
3.37 e
Circuito alimentación NI LM7805
0.55 e
0.49 e
0.45 e
Conectores
6e
4e
3.50 e
Componentes / Montaje
10 e
6e
5e
Cuadro 4.3: Coste de producción
4.3 Sumas parciales
4
4.3.
Sumas parciales
4.3.1.
Supuesto 1: 1 unidad
Parte
Cantidad
Precio unitario
Imp. parcial
Mano de obra
150 horas
40 e/hora
6.000 e
Costes indirectos
150 horas
5 e/hora
750 e
Microcontrolador
1 unidad
7.45 e
7.45 e
Transductor
1 unidad
1.06 e
1.06 e
Transductor MAX232
1 unidad
5.95 e
5.95 e
Circuito de alimentación
1 unidad
0.55 e
0.55 e
Conectores
1 unidad
6e
6e
Componentes / Montaje
1 conjunto
10 e
10e
Desarrollo
Producción
Cuadro 4.4: Sumas parciales 1 unidad
4.3 Sumas parciales
4.3.2.
5
Supuesto 2: 50 unidades
Parte
Cantidad
Precio unitario Precio parcial
Desarrollo
Mano de obra
150 horas
40 e/hora
6.000 e
Costes indirectos
150 horas
5 e/hora
750 e
Microcontrolador
50 unidades
5.32 e
266 e
Transductor
50 unidades
0.76 e
38 e
Transductor MAX232
50 unidades
4.30 e
215 e
Circuito de alimentación
50 unidades
0.55 e
22.50 e
Conectores
1 unidad
6e
6e
Componentes / Montaje
50 conjuntos
6e
300 e
Producción
Cuadro 4.5: Sumas parciales 50 unidades
4.4 Presupuesto general
4.3.3.
6
Supuesto 3: 100 unidades
Parte
Cantidad
Precio unitario Importe parcial
Desarrollo
Mano de obra
150 horas
40 e/hora
6.000 e
Costes indirectos
150 horas
5 e/hora
750 e
Microcontrolador
100 unidades
5.04 e
504 e
Transductor
100 unidades
0.73 e
73 e
Transductor MAX232
100 unidades
3.37 e
337 e
Circuito alimentación
100 unidades
0.45 e
45 e
Conectores
100 unidades
3.50 e
350 e
Componentes / Montaje
100 conjuntos
5e
500e
Producción
Cuadro 4.6: Sumas parciales 100 unidades
4.4.
Presupuesto general
Partida
Presupuesto
Precio final Precio unitario
Desarrollo
6.750 e
Producción
1 unidad: 31.01 e
6781.01 e
6781.01 e
50 unidades: 847.5 e
7597.5 e
151.95 e
100 unidades: 1809 e
8559 e
85.59 e
Cuadro 4.7: Presupuesto general
Descargar