Desarrollo de firmware y software para programar la CIAA en lenguaje JAVA con aplicación en entornos Industriales

Título

Desarrollo de firmware y software para programar la CIAA en lenguaje JAVA con aplicación en entornos Industriales

Colaborador

Safar, Félix Gustavo E.

Editor

Universidad de Buenos Aires. Facultad de Ingeniería

Fecha

2015

Extensión

[67] p.

Resumen

El propósito de este Trabajo Final es la incorporación de nuevas tecnologías en ambientes industriales mediante el desarrollo de arquitecturas novedosas de sistemas embebidos. En particular, permitir crear aplicaciones Real-Time para entornos industriales, utilizando un lenguaje de programación orientado a objetos (en adelante POO), sobre la Computadora Industrial Abierta Argentina (CIAA). Además, se espera acercar a programadores informáticos a la disciplina de programación de sistemas embebidos, permitiéndoles aplicar técnicas avanzadas de programación. Para llevarlo a cabo se ha escogido Java como lenguaje POO, y HVM1, que es un entorno de ejecución de Safety Critical Java2 (SCJ) [3], de código abierto, diseñado para plataformas embebidas de bajos recursos. Este trabajo consiste entonces, en la implementación y validación de un ambiente de Firmware y Software, basado en HVM, para programar las plataformas CIAA-NXP y EDUCIAA- NXP en lenguaje Java SCJ. Fundamentalmente, la implementación consiste en: La realización del port de la máquina virtual de HVM para que corra sobre el microcontrolador NXP LPC4337, que contienen las plataformas CIAA-NXP y EDU-CIAA-NXP, permitiendo la programación de aplicaciones Java. Un diseño e implementación de una biblioteca con API3 sencilla para permitir controlar el Hardware desde una aplicación Java, que funciona además, como HAL4. El port de la capa SCJ de la máquina virtual de HVM, para desarrollar aplicaciones Java SCJ. La integración manual del port para la CIAA al IDE de HVM y la descripción de los pasos necesarios para llevar a cabo un proyecto con HVM. Para validar el desarrollo se presenta: Un ejemplo de aplicación Java utilizando periféricos de la plataforma EDU-CIAA-NXP mediante la biblioteca desarrollada. Varios ejemplos de aplicaciones Java SCJ. En conclusión, se obtiene de este Trabajo Final un entorno de desarrollo para aplicaciones Java SCJ sobre las plataformas CIAA-NXP y EDU-CIAA-NXP, que además de ser software libre, cubre las necesidades planteadas, tanto al ofrecer programación orientada a objetos, así como funcionalidades de tiempo real para entornos industriales, sobre sistemas embebidos.
1Siglas de Hardware near Virtual Machine, desarrollo de Stephan Erbs Korsholm, Dinamarca.2La especi_caci_on Safety Critica Java es una extensi_on a la especi_caci_on RTSJ, una especi_caci_on de java para aplicaciones en tiempo real. 3Application Programming Interface, es decir, una interfaz de programaci_on de aplicaciones. 4Hardware Abstraction Layer, signi_ca: capa de abstracci_on de hardware.
The purpose of this Final Work is the incorporation of new technologies in industrial environments by developing innovative architectures for embedded systems. In particular, creating industrial Real-Time applications using an Object Oriented Programming language (hereinafter OOP), for execution on the Computadora Industrial Abierta Argentina (CIAA) embedded computer. It is also expected to bring traditional computer programmers into embedded systems programming arena, thus enabling to apply advanced programming techniques into them. To carry this out Java was chosen as target OOP language, along with HVM5, which is an open source Safety-Critical Java6 (SCJ) execution environment [3] designed for low resource embedded platforms. This work thus consists in the implementation and validation of a Firmware and Software environment based on HVM, to enable programming using SCJ Java language into CIAA-NXP and EDU-CIAA-NXP platforms. Basically, the implementation consists of: The port of HVM to run on NXP LPC4337 microcontroller, which contain the CIAA-NXP and EDU-CIAA-NXP platforms, to allow Java applications programming. Design and implementation of a library with a simple API7 to allow hardware use directly in Java space, the library also works as HAL8. The port of HVM SCJ layer to allow Java SCJ applications development.
The manual integration of CIAA port in HVM's IDE by description of necessary steps to work with HVM. In order to validate this development, the following examples are presented: An example of a Java application that use peripherals of the EDU-CIAA-NXP platform. Several examples of Java SCJ applications. In conclusion, the main contribution of this Final Work is the implementation of a development environment for developing SCJ Java applications onto the CIAA-NXP and EDU-CIAA-NXP platforms. It is presented under open source licensing scheme, and covers the goals of both providing object-oriented programming and real-time capabilities for industrial embedded systems.
5Acronym for Hardware near Virtual Machine, development of Stephan Erbs Korsholm, Denmark. 6The Java Safety-Critical speci_cation is an extension to the RTSJ speci_cation, a Java speci_cation for real-time applications 7Application Programming Interface. 8Hardware Abstraction Layer.