arm cortex

Click here to load reader

Post on 16-Oct-2014

162 views

Category:

Documents

2 download

Embed Size (px)

TRANSCRIPT

MuZIC Internship ReportGuillermo ALEJANDRE ALBA 8/21/2009

MuZIC Internship Report 2009AcknowledgmentsFirst of all, I would like to thank my project manager Stephane Vannuffelen for giving me the opportunity to work in Schlumberger and in the MuZIC project. I would also like to thank my supervisor Carlos Merino, for his help and his support during these months. Their trust and remarks have made possible this project. Moving from university to a Schlumberger was not easy, because of the complexity of the company and its organization. Therefore, I would like to thank the whole MuZIC project for answering all of my questions and giving me the warmest welcome ever. Special thanks to Aitor Albizua the other intern of the team , Christophe Rayssiguier for all the meals we shared together , Amirauche Bouhlal for the time spent in the lab , and Damian Buisson and JeanFranois Sandoz for their patience and help in some of the hardest parts of the project. Nevertheless, this would not have been possible without the help of all the teachers in Madrid, in Paris, and in Rennes, who taught me during me engineering degree. Finally, I would like to thank my parents, for their support. Their efforts and the education they have given me have made this possible.

3

Proyecto Fin de Carrera Universidad Pontificia Comillas (ICAI) 2009

Abstract/ ResumenIMPLEMENTACION DE APLICACIONES PARA TESTS DE UN

MICROCONTROLADORAutor: Alejandre Alba, Guillermo. Director: Vannuffelen, Stephane. Entidad Colaboradora: Schlumberger

RESUMEN DEL PROYECTOEl trabajo realizado dentro del marco de este proyecto consta de distintas tareas, cuyo hilo conductor es el microprocesador sobre el que han sido programadas. En lneas generales, el trabajo realizado dentro del equipo de desarrollo de firmware ha sido la implementacin de diferentes mdulos de un mdem. Dicho mdem es utilizado para un sistema de transmisin entre distintas localizaciones. El microprocesador en cuestin se trata de un Luminary LM3S2965. As, podemos distinguir tres grandes ejes dentro del presente trabajo. El primero de ellos consisti en la implementacin de una UART (acrnimo del trmino ingls Universal Asynchronous Receiver/Transmitter, Transmisor-Receptor Asncrono Universal). El principal objetivo de este elemento de hardware es controlar puertos y dispositivos serie: gestiona las interrupciones de los dispositivos conectados al puerto serie y traduce los datos a enviar a formato serie, de tal forma que puedan ser transmitidos y recibidos a travs de los puertos (ver Figure 1).

Figure 1 Conexin PC-Microcontrolador

MuZIC Internship Report 2009El mtodo utilizado para desarrollar esta aplicacin podra denominarse como creciente. As, se empez con un programa ms sencillo que llevara a cabo nicamente la lectura y escritura de puertos, al que se le fueron aadiendo elementos ms complejos hasta llegar a la versin definitiva. El resultado es un programa que inicializa el reloj y los puertos del microprocesador y configura la UART para una velocidad de 19200 bits por segundo. Adems, se encarga del encapsulado de datos para ser enviados al ordenador y del desencapsulado de los datos procedentes del ordenador. Para hacer uso de las interrupciones, utiliza las listas FIFO de recepcin y transmisin disponibles en el microprocesador, as como algunas de las interrupciones internas. La interrupcin de recepcin se activa una funcin de recepcin que se encarga de almacenar los datos en un buffer de recepcin. Si el tamao de los datos enviados es inferior a un determinado tamao, se activa una interrupcin de tipo Time-Out. Esta interrupcin avisa al microprocesador de que hay elementos en la FIFO de recepcin que no han sido tratados, y se procede a la lectura de la FIFO hasta que sta queda vaca. Despus, se escriben los datos en el buffer de transmisin y se envan. Finalmente, para garantizar que no hay problemas de entrecruzado de informacin (debido a informacin que haya podido quedar almacenada accidentalmente en cualquiera de las FIFOs), se procede a un reseteo sistemtico de los buffers, las FIFOs, y los contadores. La segunda fase de programacin de la UART consisti simplemente en la integracin de las funciones previamente implementadas dentro de un sistema tiempo real. En este caso, la comunicacin entre microprocesador y ordenador se realiza va un protocolo previamente establecido.

Figure 2 Conexin FPGA-Microcontrolador

5

Proyecto Fin de Carrera Universidad Pontificia Comillas (ICAI) 2009

La segunda lnea de trabajo consisti en la programacin de un bus SPI (Serial Protocol Interface) entre una FPGA (Field Programmable Gate Array) y el microprocesador. El bus SPI es un estndar de comunicaciones implementado por Motorola y utilizado para la transferencia de informacin entre circuitos integrados en equipos electrnicos. En este caso, el microprocesador hace de maestro, y la FPGA es el esclavo (ver Figure 2). Visto desde el microprocesador, est compuesto de una lnea con el reloj que regula las comunicaciones del bus, una lnea de dato entrante, una de dato saliente, y un pin de activacin (chip select). El cdigo programado en el interior de la FPGA ha sido realizado por una empresa externa, y el objetivo principal de la implementacin de dicho bus fue verificar que la lgica de la FPGA cumpla con las especificaciones dadas a la empresa externa. En lneas generales, la FPGA recoge datos procedentes de un conversor A/D (tambin llamado ADC, Analog to Digital Conversor), los trata, y se los pasa al microprocesador. Adems, ha de ser capaz de enviar seales a un PWM (Pulse-With Modulator). La lgica implementada en el interior de la FPGA esta compuesta por diferentes mdulos por lo que para proceder a su validacin se implementaron diversas funciones. La metodologa utilizada es similar a la de la implementacin de la UART: Siguiendo las especificaciones recibidas por el programador, se implement un simple programa que generara una seal de PWM constante y de valor conocido, que luego se fue mejorando para permitir la interaccin con todos los mdulos de la FPGA. Ello permiti encontrar algunos fallos en el cdigo de la FPGA, que fueron transmitidos a la empresa encargada. El resultado de este mdulo ha sido una aplicacin que permite interaccionar al microprocesador con la FPGA. Configura la FPGA para el tratamiento de datos del ADC y permite controlar el PWM a travs de la FPGA.

Figure 3 Conexin ADC-Microcontrolador

MuZIC Internship Report 2009Por ltimo, se llev a cabo la programacin del bus SPI entre el microprocesador y el ADC (ver Figure 3). Este bus permite recoger datos del ADC sin necesidad de pasar por la FPGA (por ejemplo, en caso de un fallo de la misma). Cada vez que el ADC tiene un dato disponible, enva una seal al microprocesador. La configuracin de base de dicho bus es similar a la utilizada para la comunicacin con la FPGA. Sin embargo, el microprocesador no necesita enviar ninguna instruccin al ADC, por lo que la lnea de transmisin no es utilizada. Finalmente, aparecen dos lneas ms: una (que llamaremos SYNC, de sincronizacin) se encarga de sincronizar el ADC con el microprocesador antes de comenzar con la recepcin de datos; la otra (DRDY, del ingls Data ReaDY) avisa al microprocesador de que hay nuevos datos disponibles en el ADC para el microprocesador. El funcionamiento de este mdulo es el siguiente: primero se realiza una configuracin de los puertos que sern utilizados. Despus, se sincroniza el ADC con el microprocesador. Y finalmente, se espera la generacin de una interrupcin por parte de DRDY para empezar a recibir datos. El desarrollo de este modulo fue similar al realizado para el SPI de la FPGA: cabe destacar, no obstante, el uso de interrupciones de tipo interno (las generadas por el SPI), y de tipo externo (las generadas por el ADC a travs de DRDY). Esta aplicacin permite la comunicacin entre el ADC y el microprocesador y almacena los datos procedentes del ADC en la memoria del microprocesador. En conclusin, las aplicaciones implementadas para el microprocesador permiten interaccionar con diferentes perifricos, todos ellos necesarios para el funcionamiento de nuestro mdem. Trabajan de forma casi exclusiva con interrupciones, lo que optimiza la gestin del tiempo del microprocesador al hacer posible un tratamiento en funcin de las prioridades.

DESIGN AND IMPLEMENTATION OF AN APPLICATION USED FOR AUTOMATIC TESTS OF AN ELECTRONIC BOARD

This project consists in different tasks whose meeting point is the microprocessor for which they have been conceived. They aim different peripherals, but share the same microprocessor, a Luminary LM3S2965.

7

Proyecto Fin de Carrera Universidad Pontificia Comillas (ICAI) 2009

The project has been organized in three tasks clearly defined. The first was the implementation of a UART in order to communicate the microprocessor with a computer. The second was the programming of a SPI between the microprocessor and the FPGA (Field Programmable Gate Array). The third one was the coding of another SPI connection, but this time between the ADC and the microprocessor. UART is the acronym for Universal Asynchronous Receiver/Transmitter. It is a piece of computer hardware that translates between parallel-form data and serial-form data, and vice versa. Two phases can be distinguished in the development of this connection. During the first phase, only the reception and transmission where taken into account. A program was conceived where received data from the computer arrived to the reception FIFO and was stored inside the reception buffer. Then, data was copied to the transmission buffer and written into the transmission FIFO in order to be sent back to the computer. Also, a LED was configured to blink during the whole process, in order to verify that the program was working running. The UART is configured so that the FIFO lists provided by the micropr

View more