49 1 732KB
1
LENGUAJES DE PROGRAMACIÓN DE LOS MICROCONTROLADORES José Roberto Toledo Illescas [email protected] Universidad Politécnica Salesiana Sistemas microprocesados II
Resumen—En el presente documento se analizara los lenguajes de programación e IDE’s que los diferentes microcontroladores emplean para su programación. Index Terms—Lenguaje de programación, microcontrolador, IDE.
O BJETIVOS Definir e identificar las diferentes características de los microcontroladores. Listar las principales familias de microcontroladores. Describir los diferentes lenguajes de programación e IDE’s empleados en la programacion de estos.
I. I-A.
AVR
Los microcontroladores AVR es una de las familias de microcontroladores de 8 bits mas usados . Diseñado por dos estudiantes de Norwegain Institute of Technology (NTH) AlfEgil Bogen y Vegard Wollan, fue comprada y desarrollada por Atmel en 1996. Los AVR emplean arquitectura Harvard, los cuales vienen con algunas características estándar como se puede apreciar en la siguiente figura:
S USTENTO TEÓRICO
Microcontrolador
El termino microcontrolador es empleado para describir a un circuito integrado capaz de ejecutar instrucciones grabadas en su memoria. El término Micro hace referencia a dispositivos pequeños y Controlador hace referencia a que el dispositivo es empleado para controlar aplicaciones. Todos los microcontroladores operan con un set de instrucciones almacenadas en su memoria, dichas instrucciones son programadas por el usuario. Los microcontroladores tradicionalmente eran programados empleando el lenguaje ensamblador, así también los microcontroladores pueden ser programados empleando lenguajes de alto como BASIC, PASCAL o C; los que son mas sencillos de aprender que el ensamblador.
I-B.
I-C.
Figura 1. Arquitectura del AVR
I-D.
PIC
Diseñados por MICROCHIP, su nombre real es PICmicro que hace referencia a Peripheral Interface Controller; el primer PIC fue diseñado en 1975 por General Instruments, este chip fue conocido como PIC1650 diez años después tras agregar a este una memoria EEPROM el cual fue transformado en el actual PIC. En la actualidad se encuentra una gran gama de PIC’s de 8, 16 o 32 bits como la serie 8 bits de medio rango como los PIC16FXXX o de 32 bits como el PIC32.
Familias de microcontroladores
En la siguiente tabla se puede apreciar a las principales familias de microcontroladores y sus respectivos fabricantes: Cuadro I FAMILIAS DE MICROCONTROLADORES Fabricante ATMEL MICROCHIP STMicroelectronics MICROCHIP
Familia AVR PIC STM32 dsPIC
Figura 2. Microcontrolador PIC
2
I-E.
STM32 (ARM7)
La familia STM32 son una serie de microcontroladores basados en el procesador ARM Cortex-M, proveyendo la combinaciones de servicios de gran alcance, capacidad en tiempo real, procesamiento de señales, operación de señales de bajo voltaje con mantenimiento integrado y fácil desarrollo. Basados en las exigencias de la industria y al estar acompañados por una gran gama de herramientas y software hace de este un gran producto para el desarrollo de proyectos.
Figura 3. STM32
I-F.
DSPic
Un DSC o Digital Signal Controller es un chip que integra a la perfección los atributos de un microcontrolador con la capacidad de calculo de un DSP (Digital Signal Processor). Ofreciendo un manejo rápido, sofisticado y flexible de las interrupciones, una gran gama de funciones periféricas digitales o análogas, administración de la energía, velocidad completa en tiempo real, entre otros. Los DSPic’s de 16-bits como el dsPIC30F son una serie que controla una señal digital, ejecutando varias instrucciones en un ciclo, caracterizados por ser costos y complejos, la serie dsPIC33F fue diseñada para que el usuario lo sintiera como un MCU típico.
puesto en marcha en el microcontrolador. Caracterizado por su alta complejidad a su vez cada dispositivo (microcontrolador) posee un propio conjunto de instrucciones. Se encuentran basados I-G2. C: Es un lenguajes de alto nivel, permite realizar operaciones sobre bytes de manera similar sobre bits, como operaciones aritméticas, lógicas, desplazamiento ,etc. C es un lenguaje compilado es decir los archivos fuente, basados en este lenguaje, se traducen a lenguaje maquinas. Es un lenguaje simple caracterizado por el manejo de librerías, es muy eficiente ya que hace posible emplear características de bajo nivel para realizar implementaciones optimas. I-G3. Basic: Es un lenguaje de programación simple y fácil de entender, para emplearlo debidamente basta con conocer algunos elementos básicos como operadores, variables reservadas para el sistema, directivas. Sustituye varias instrucciones en ensamblador por una sentencia en Basic, así el programador ya no debe conocer el conjunto de instrucciones propias del microcontrolador. De manera similar al C el codigo es traducido a lenguaje maquina mediante un compilador. I-G4. Pascal: Es un lenguaje de alto nivel empleado generalmente para aprender los conceptos generales de programación. Caracterizado por la división de su código en funciones, facilitando el uso de una programación estructurada. Las variables np pueden tener un tipo de valor incompatible, es decir su valor debe ser del mismo tipo del cual se ha definido, evitando la necesidad de denotar a cada tipo de variable. I-H. Lenguajes de programación empleados por las diferentes familias e IDE’s En secciones anteriores se han detallado las principales familias de microcontroladores y de manera similar los principales lenguajes de programación, en la siguiente tabla se puede apreciar a dichas familias y el lenguaje que estas pueden emplear para su programación: Cuadro II MICROCONTROLADORES Y LENGUAJES DE PROGRAMACIÓN Familia AVR PIC STM32 dsPIC
Lenguaje Ensamblador - C Basic - C C Pascal - C - Basic
Para la familia AVR se puede emplear los siguientes IDE’s: AVR Studio de ATMEL.
Figura 4. dsPIV30F3011
I-G.
Lenguajes de programación
I-G1. Ensamblador: El primer lenguaje de programación desarrollado fue el ensamblador (ASM), en el que las instrucciones consisten en las abreviaturas con significado y a cada instrucción corresponde una parte de la memoria. empleando un compilador se compilara cada instrucción sin optimizarlo, permitiendo controlar en detalle cada proceso
Figura 5. Interfaz de AVR Studio
3
Para la familia PIC se puede emplear los siguientes IDE’s: MPLAB de MICROCHIP. mikroPascal de MICROCHIP. mikroC de MICROCHIP. mikroBASIC de MICROCHIP. PIC CCS de CCS.
Figura 8. Interfaz de PIC C
CONCLUSIONES
Figura 6. Interfaz de mikroPascal
Para la familia STM32 se puede emplear los siguientes IDE’s: Code::Blocks de Code::Blocks distribuido aplicando GNU. STM32CubeMX de STMicroelectronics.
Figura 7. Interfaz de STM32CubeMX
Para la familia dsPIC se puede emplear los siguientes IDE’s: MPLAB de MICROCHIP. mikroPascal de MICROCHIP. mikroC con el compilador PIC24 de MICROCHIP. mikroBASIC de MICROCHIP. PCDIDE compilador de PIC C de CCS (Costum Computer Services). PCwhd compilador de PIC C de CCS (Costum Computer Services).
Los microcontroladores son dispositivos destinados a controlar aplicaciones, haciendo esto posible mediante un conjunto de instrucciones almacenadas en su memoria. Para realizar las instrucciones que debe seguir el microcontrolador se debe escribir un código basado en un lenguaje de programación que posteriormente sera traducido por un compilador a lenguaje maquina. Cada lenguaje de programación posee su propio nivel de complejidad y a su vez brinda ventajas sobre otros como el pascal en el cual se delimitan los posibles errores que surgen al programar basándose en una serie de normas preestablecidas. R EFERENCIAS [1] I. Dogan, Advanced PIC Microcontroller Projects in C from USB to RTOS with the PIC18F Series, Elsevier, 2008. [2] M. Mazidi S. Naimi, The AVR microcontroller and embedded system using assembly and c, PEARSON, 2011. [3] MikroElektronika, «Introduction to the world of microcontrollers» [En línea]. Aviable: http://learn.mikroe.com/ebooks/picmicrocontrollers programminginassembly/front-matter/introduction-to-theworld-of-microcontrollers/ [Último acceso: 23 Abril 2016]. [4] STMicroelectronics, «STM#» 32-bits ARM Cortex MCUs» [En lpinea]. Aviable: http://www2.st.com/content/st_com/en/products/microcontrollers/ stm32-32-bit-arm-cortex-mcus.html?querycriteria=productId= SC1169 [Último acceso: 23 Abril 2016]. [5] Microchip, dsPIC® Digital Signal Controllers The Best of Both Worlds, MICROCHIP, octubre 2005. [6] MikroElektronika, «2.1 Lenguajes de programación» [En línea]. Aviable: http://learn.mikroe.com/ebooks/microcontroladorespicc/ chapter/lenguajes-de-programacion/. [Último acceso: 23 Abril 2016]. [7] MikroElektronika, «2.2 Características principales del lenguaje de programación Basic » [En línea]. Available: http://learn.mikroe.com/ebooks/microcontroladorespicbasic/ chapter/ caracteristicas-principales-del-lenguaje-deprogramacion-basic/. [Último acceso: 23 Abril 2016].
4
[8] Pascal programming, «A pascal tutorial » [En línea]. Aviable: http://www.pascal-programming.info/index.php [Último acceso: 23 Abril 2016]. [9] CCS Inc., «CCS. C COMPILERS» [En línea]. http://www.ccsinfo.com/content.php?page=compilers [Último acceso: 23 Abril 2016].