1
LENGUAJES DE PROGRAMACIÓN DE LOS MICROCONTROLADORES José Roberto Toledo Illescas
[email protected] [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.
—Lenguaje Index Terms—Lenguaje
de programación programación,, microcontro microcontrolador lador,,
IDE.
O BJETIVOS Definir e identificar las diferentes características de los microcontroladores. Listar las principales familias de microcontroladores. Describir Describir los diferente diferentess lenguaje lenguajess de programac programación ión e IDE’s empleados en la programacion de estos.
I-C.
AVR
Los microc microcont ontrol rolado adores res AVR es una de las fami familia liass 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:
I. SUSTENTO TEÓRICO I-A.
Microcontro Microcontrolador lador
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 Arquitectura del AVR AVR pequeños y Controlador hace referencia a que el dispositivo es Figura 1. Arquitectura empleado para controlar aplicaciones. Todos los microcontroladores operan con un set de instrucciones almacenadas en su I-D. PIC memoria, dichas instrucciones son programadas por el usuario. Diseñados por MICROCHIP, su nombre real es PICmicro Los microcontroladores tradicionalmente eran programados que hace referencia a Peripheral Interface Controller; Controller; el primer empleando el lenguaje ensamblador, así también los micro- PIC fue diseñado en 1975 por General Instruments, este chip controladores pueden ser programados empleando lenguajes fue conocido como PIC1650 diez años después tras agregar de alto como BASIC, PASCAL o C; los que son mas sencillos a este una memoria EEPROM el cual fue transformado en el de aprender que el ensamblador. 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. I-B.
Familias de microcontrolad microcontroladores ores
En la siguiente tabla se puede apreciar a las principales familias de microcontroladores y sus respectivos fabricantes: Cuadro I FAMILIAS DE MICROCONTROLADORES Fabri abrica cant ntee ATMEL MICROCHIP STMicroel STMicroelectro ectronics nics MICROCHIP
Fami amili liaa AVR PIC STM32 STM32 dsPIC
Figura 2. Microcontrolador 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
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.
Un DSC o Digital Signal Controller es un chip que integra a la perfección los atributos de un microcontrolador con la I-H. Lenguajes de programación empleados por las diferencapacidad de calculo de un DSP (Digital Signal Processor). tes familias e IDE’s Ofreciendo un manejo rápido, sofisticado y flexible de las inEn secciones anteriores se han detallado las principales terrupciones, una gran gama de funciones periféricas digitales familias de microcontroladores y de manera similar los prino análogas, administración de la energía, velocidad completa cipales lenguajes de programación, en la siguiente tabla se en tiempo real, entre otros. Los DSPic’s de 16-bits como puede apreciar a dichas familias y el lenguaje que estas pueden el dsPIC30F son una serie que controla una señal digital, emplear para su programación: ejecutando varias instrucciones en un ciclo, caracterizados por ser costos y complejos, la serie dsPIC33F fue diseñada para Cuadro II MICROCONTROLADORES Y LENGUAJES DE PROGRAMACIÓN que el usuario lo sintiera como un MCU típico. 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
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 I-G1.
Ensamblador: El
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.
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= Figura 7. Interfaz de STM32CubeMX SC1169 [Último acceso: 23 Abril 2016]. [5] Microchip, dsPIC® Digital Signal Controllers The Best of Both Worlds, MICROCHIP, octubre 2005. [6] MikroElektronika, «2.1 LenguaPara la familia dsPIC se puede emplear los siguientes IDE’s: jes de programación» [En línea]. Aviable: http://learn.mikroe.com/ebooks/microcontroladorespicc/ MPLAB de MICROCHIP. chapter/lenguajes-de-programacion/. [Último acceso: 23 Abril mikroPascal de MICROCHIP. 2016]. mikroC con el compilador PIC24 de MICROCHIP. mikroBASIC de MICROCHIP. [7] MikroElektronika, «2.2 Características principales del PCDIDE compilador de PIC C de CCS (Costum Com- lenguaje de programación Basic » [En línea]. Available: puter Services). http://learn.mikroe.com/ebooks/microcontroladorespicbasic/ PCwhd compilador de PIC C de CCS (Costum Computer chapter/ caracteristicas-principales-del-lenguaje-deServices). programacion-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].