TESIS DE GRADO EN INGENIERÍA INFORMÁTICA
ORIENTACIÓN EN SISTEMAS DISTRIBUIDOS
FACULTAD DE INGENIERÍA
UNIVERSIDAD DE BUENOS AIRES
DISEÑO Y PROTOTIPO DE MIDDLEWARE
BASADO EN CORBA PARA EL BUS CAN
TESISTA: Sr. Martín ROUAUX
DIRECTORA: Prof. CC. María FELDGEN
OCTUBRE 2005
Direcciones de contacto
Martín ROUAUX
[email protected]
María FELDGEN
[email protected]
Tesis de grado – Ingeniería Informática
Martín Rouaux - 76902
Resumen
Este trabajo propone una nueva capa de aplicación para el bus CAN, basada en el
middleware CORBA. Se construye un prototipo de ORB que, respetando la filosofía original y
manteniendo las ventajas de CORBA, es capaz de satisfacer los requerimientos de un bus de
campo y de las aplicaciones que sobre estos se construyen. El prototipo soporta un modelo
tradicional de comunicación peer-to-peer pero también comunicaciones master / slave,
mediante la definición de grupos de objetos. En ambos modelos se explotan las características
especiales del bus CAN referentes a arbitración del bus, multicast / broadcast y message
filtering. Por último, se compara en forma cualitativa la nueva capa propuesta con otras capas
de aplicación existentes para el bus CAN.
Palabras clave: buses de campo, CAN, capa de aplicación, sistemas distribuidos, middleware,
ORB, CORBA.
Abstract
This work proposes a new CORBA-based application layer for the CAN field bus. An
ORB prototype is built following the original CORBA philosophy and conserving its main
advantages. The prototype is capable of fulfilling the requirements for both, field buses and
applications built on top of them. Support for a traditional peer-to-peer communication model is
offered. A master / slave model is also supported through the definition of object groups. In both
models, CAN features related to bus arbitration, multicast / broadcast and message filtering are
exploited. Finally, a qualitative comparison is carried out between the layer proposed here and
existing application layers for the CAN bus.
Keywords: field buses, CAN, application layer, distributed systems, middleware, ORB, CORBA.
2
Tesis de grado – Ingeniería Informática
Martín Rouaux - 76902
Índice de Contenidos
1.
2.2
2.3
2.4
3.4
2.5
1.1
1.2
2.1
Introducción ..................................................................................................................... 3
Objetivo ..................................................................................................................... 3
Organización del trabajo............................................................................................ 5
2. Buses Industriales ........................................................................................................... 6
Características........................................................................................................... 7
2.1.1 Definición de bus industrial.................................................................................... 7
2.1.2 Requerimientos de un bus industrial ..................................................................... 8
2.1.3 Perfiles de los buses industriales ........................................................................ 11
Controller Area Network (CAN)................................................................................ 13
2.2.1
Introducción......................................................................................................... 13
2.2.2 Características básicas ....................................................................................... 13
2.2.3 Transferencia de mensajes ................................................................................. 16
2.2.4 Codificación y validación de mensajes ................................................................ 20
2.2.5 Manejo de errores y confinamiento de fallas ....................................................... 21
2.2.6 Aspectos de implementación............................................................................... 22
Capas de aplicación para el bus CAN ..................................................................... 24
2.3.1 Necesidad de una capa de aplicación ................................................................. 24
2.3.2 Requerimientos ................................................................................................... 24
2.3.3 Algunas implementaciones existentes................................................................. 25
CANopen................................................................................................................. 27
2.4.1
Introducción......................................................................................................... 27
2.4.2 Modelo de objetos ............................................................................................... 27
2.4.3 Modelo de comunicaciones ................................................................................. 29
2.4.4 Capa de transporte: fragmentación y confirmación ............................................. 32
2.4.5 Capa de sesión: protocolo de mensajes PDO en CANopen................................ 33
2.4.6 Capa de sesión: protocolo de mensajes SDO en CANopen................................ 36
2.4.7 Capa de sesión: mensajes adicionales en CANopen .......................................... 41
2.4.8 Capa de presentación: CMS................................................................................ 44
DeviceNet ................................................................................................................ 46
2.5.1
Introducción......................................................................................................... 46
2.5.2 Modelo de objetos: clases y objetos.................................................................... 46
2.5.3 Modelo de objetos: perfiles de dispositivo ........................................................... 48
2.5.4 Modelo de comunicaciones ................................................................................. 51
2.5.5 Capa de transporte: establecimiento dinámico de conexiones ............................ 54
2.5.6 Capa de transporte: utilización de conexiones predefinidas ................................ 56
2.5.7 Capa de sesión: protocolo de mensajes DeviceNet ............................................ 57
2.5.8 Capa de presentación: Compact Encoding ......................................................... 62
3. Middleware ..................................................................................................................... 66
Características......................................................................................................... 67
Interfase del middleware (API)................................................................................. 69
Tipos de middleware................................................................................................ 70
3.3.1 Transaction processing (TP) monitors................................................................. 70
3.3.2 Remote procedure call sincrónico (RPC)............................................................. 70
3.3.3 Message-oriented middleware (MOM)................................................................. 71
3.3.4 Object request brokers (ORBs) ........................................................................... 71
CORBA.................................................................................................................... 73
3.4.1
Introducción......................................................................................................... 73
3.4.2 Modelo de objetos CORBA ................................................................................. 74
3.4.3 Object request broker (ORB)............................................................................... 75
3.4.4 Portable object adapter (POA)............................................................................. 76
3.4.5 Descripción de interfases .................................................................................... 80
3.4.6 Mecanismo de invocación estático ...................................................................... 88
3.4.7 Mecanismo de invocación dinámico .................................................................... 93
3.4.8 Capa de transporte: IIOP..................................................................................... 95
3.4.9 Capa de sesión: GIOP......................................................................................... 97
3.4.10 Capa de presentación: CDR.............................................................................. 104
3.4.11 CORBA Services............................................................................................... 106
4. Descripción del problema ........................................................................................... 108
3.1
3.2
3.3
1
Tesis de grado – Ingeniería Informática
Martín Rouaux - 76902
4.1
4.2
5.1
5.2
5.3
5.4
5.5
5.6
6.1
6.2
6.3
6.4
7.1
Planteo del problema............................................................................................. 108
Soluciones existentes ............................................................................................ 109
5. Solución propuesta...................................................................................................... 110
Descripción de la arquitectura ............................................................................... 111
Capa de transporte: MCA ...........................
Comentarios de: Tesis de grado en ingeniería informática orientación en sistemas distribuidos (0)
No hay comentarios