• No results found

No Author Year Type I Type II Type III Type IV Type IX 1 Thompson

Discussion

S. No Author Year Type I Type II Type III Type IV Type IX 1 Thompson

Se había mencionado la existencia de una gran variedad de alternativas al momento de seleccionar el microcontrolador, debido a que existen muchos fabricantes de microcontroladores tales como Motorola, Intel, Microchip, Atmel, Parallax, Zilog, Philips, entre los principales. Los microcontroladores más populares son:

8048 (Intel). Es el padre de los microcontroladores actuales, el primero de todos. Su precio, disponibilidad y herramientas de desarrollo hacen que todavía sea muy popular.

8051 (Intel y otros). Es sin duda el microcontrolador más popular. Fácil de programar, pero potente. Está bien documentado y posee cientos de variantes e incontables herramientas de desarrollo.

80186, 80188 y 80386 EX (Intel). Versiones en microcontrolador de los populares microprocesadores 8086 y 8088. Su principal ventaja es que permiten aprovechar las herramientas de desarrollo para PC.

68HC11 (Motorola y Toshiba). Es un microcontrolador de 8 bits potente y popular con gran cantidad de variantes.

683xx (Motorola). Surgido a partir de la popular familia 68k, a la que se incorporan algunos periféricos. Son microcontroladores de altísimas prestaciones.

PIC (Microchip). Familia de microcontroladores que gana popularidad día a día. Fueron los primeros microcontroladores RISC

Al momento de escoger el microcontrolador a emplear en un diseño concreto hay que tener en cuenta multitud de factores, como la documentación y herramientas de desarrollo disponibles y su precio, la cantidad de fabricantes que lo producen y por supuesto las características del microcontrolador (tipo de memoria de programa, número de temporizadores, interrupciones, etc.):

- 43 - Antes de seleccionar un microcontrolador es imprescindible analizar los requisitos de la aplicación:

• Procesamiento de datos: puede ser necesario que el microcontrolador realice cálculos críticos en un

tiempo limitado. En ese caso debemos asegurarnos de seleccionar un dispositivo suficientemente rápido para ello. Por otro lado, habrá que tener en cuenta la precisión de los datos a manejar: si no es suficiente con un microcontrolador de 8 bits, puede ser necesario acudir a microcontroladores de 16 ó 32 bits, o incluso a hardware de coma flotante. Una alternativa más barata y quizá suficiente es usar librerías para manejar los datos de alta precisión.

• Entrada Salida: para determinar las necesidades de Entrada/Salida del sistema es conveniente dibujar

un diagrama de bloques del mismo, de tal forma que sea sencillo identificar la cantidad y tipo de señales a controlar. Una vez realizado este análisis puede ser necesario añadir periféricos, hardware externo o cambiara otro microcontrolador más adecuado para el sistema.

• Memoria: para detectar las necesidades de memoria de nuestra aplicación debemos separarla en

memoria volátil (RAM), memoria no volátil (ROM, EPROM, etc.) y memoria no volátil modificable (EEPROM).

• Ancho de palabra: el criterio de diseño debe ser seleccionar el microcontrolador de menor ancho de

palabra que satisfaga los requerimientos de la aplicación. Usar un microcontrolador de 4 bits supondrá una reducción en los costes importante, mientras que uno de 8 bits puede ser el más adecuado si el ancho de los datos es de un byte. Los microcontroladores de 16 y 32 bits, debido a que son de un costo más elevado, deben reservarse para aplicaciones que requieran sus altas prestaciones (Entrada/Salida potente o espacio de direccionamiento muy elevado).

• Diseño de la placa: la selección de un microcontrolador concreto condicionará el diseño de la placa de

circuitos. Debe tenerse en cuenta que quizá usar un microcontrolador barato encarezca el resto de componentes del diseño. En el caso particular de este proyecto la elección del microcontrolador se encontró influenciada por el uso en el entorno laboral de quién suscribe, de la familia de microcontroladores PIC. Por lo tanto casi a modo de necesidad se optó por utilizar un microcontrolador PIC, para adquirir experiencia con este tipo de microprocesadores.

- 44 - Por lo cual el proceso de elección tuvo su curso en sentido opuesto, es decir en lugar de enumerar las prestaciones que debía cumplir el microprocesador y en base a ello seleccionar el más adecuado, se tomó el PIC16F877A, que es el que se ha utilizado en dicho entorno laboral, y se verificó que el mismo cumplía los requisitos necesarios. Observando brevemente el estado actual de la industria nacional, podrá verificarse que los microcontroladores PIC son los más utilizados.

Los detalles más importantes que hacen que la familia de microcontroladores PIC sea la más utilizada hoy en día son los siguientes:

- Sencillez de manejo: Tienen un juego de reducido de instrucciones (35). - Buena información, fácil de conseguir y económica.

- Precio: Su costo es comparativamente inferior al de sus competidores.

- Poseen una elevada velocidad de funcionamiento. Buen promedio de parámetros: velocidad, consumo, tamaño, alimentación, código compacto, etc.

- Herramientas de desarrollo sencillas y de bajo costo. Muchas herramientas software se pueden obtener libremente a través de Internet desde Microchip (http://www.microchip.com).

- Existe una gran variedad de herramientas hardware que permiten grabar, depurar, borrar y comprobar el comportamiento de los PIC.

Los microcontroladores PIC, fabricados por Microchip Corporation, en los últimos años han tenido un crecimiento muy alto en ventas a nivel mundial. El crecimiento de la participación de estos microcontroladores en el mercado mundial ha sido posible debido a la capacidad de estos dispositivos de satisfacer las necesidades, cada vez más exigentes, de los ingenieros y técnicos de todo el mundo. Este crecimiento también se alimentó por la variedad ofrecida en sus presentaciones y tipos de memoria.

Las características que se han mencionado, han logrado que estos microcontroladores sean considerados por los aficionados a la electrónica, la robótica, micro robótica, industria automotriz, etc. a tal punto que se encuentra mucha información, proyectos, foros y software gratuito, e información difundida a través del Internet, lo cual facilita su aprendizaje, la implementación de proyectos, la localización de información, etc.

- 45 - Dentro de las grandes familias de los microcontroladores PIC, se encuentra el PIC 16F877A, que se ha seleccionado para nuestro proyecto de graduación, seleccionado porque se ajustaban a nuestra necesidades, debido a que disponen de la suficiente capacidad de memoria (8192) de la cual se ocupa cerca del 35%, el número de pines son suficientes, dispone de memoria eeprom, bus I2C y RS232 implementado por Hardware, su memoria es de tipo Flash, apropiada para este tipo de proyectos. Es posible haber seleccionado otro tipo de microcontrolador de menor número de pines y menor RAM, sin embargo, en caso de querer hacerlo, el programa se acoplaría perfectamente con cambios insignificantes, siempre y cuando dispongan de las funciones antes mencionadas y que se encuentren en el mercado local.

3.3.1 Puertos del Microcontrolador 16F877A

EL PUERTO A Y EL REGISTRO TRISA

Las entradas y salidas del Puerto A son configuradas usando el registro TrisA, en el cual 1 equivale a entrada y 0 a salida. Cada instrucción juega su parte, las primeras dos "limpian" los bit RP0 y RP1 del Status para trabajar con el Banco 0, en ese banco está el registro PortA, el cual limpiamos en su totalidad para que tenga solo 0's en su salida. Después se selecciona el Banco 1 poniendo a 1 el RP0 pues es ahí donde se encuentran el ADCON1 y el TrisA, a los cuales les mandamos bits de configuración determinados por las palabras 06h y CFh respectivamente; en la primera se está indicando que todos los pines del puerto A serán entradas o salidas digitales, la segunda indica que todos los pines serán entradas (00011111).

EL PUERTO B Y EL REGISTRO TRISB

Al igual que todos los puertos el registro TrisB configura la entrada-salida del Puerto. El Puerto B es de 8 bit que además tiene la opción seleccionable de Pull-Up, las cuales son resistencias internas que permiten al micro poner en uno cada uno de los pines cuando están desconectados en lugar de estar fluctuando entre cero y uno, esta característica es muy importante como se verá luego.

Interrupt-On-Change es una característica de los pines RB7:RB4 que como su nombre lo indica, produce una interrupción de programa cuando cambia su valor que puede aún levantar al micro de un Sleep.

- 46 - EL PUERTO C Y EL REGISTRO TRISC

El Puerto C tiene varias funciones en sus pines, tiene las funciones de comunicación I2C, el reloj externo del timer 1, Usart, etc.

Cuando se usan los módulos relacionados con este puerto, se debe tener cuidado pues algunas veces cambia el estado i/o del pin sin importar lo que indique TrisC, para saber cuándo se cambie debemos ver la descripción de cada módulo.

EL PUERTO D Y EL REGISTRO TRISD

El puerto D es de 8 bit, con entradas Schimtt Trigger, este puerto puede ser configurado como línea de datos para PSP Parallel Slave Port.

EL PUERTO E Y EL REGISTRO TRISE

El puerto E consiste en tres pines que bien pueden ser de I/O, o configurados para controlar el PSP, conteniendo las líneas básicas como WR, RD, CS. Cuando se usa el modo PSP, el TrisE hace que el puerto E sea de entradas digitales, de la misma manera los pines no podrán funcionar como entradas análogas.

- 47 - En la tabla 3.3.1 se muestra la distribución de los puertos del microcontrolador del módulo A.

Tabla 3.3.1 Número de los puertos del módulo A Modulo A ( Seguridad )

Terminal Dirección Descripción

1 VCC Alimentación

Puerto A 2 Entrada Sensor Luz( fototransistor)

3 Salida Buzzer 11 VCC Alimentación 12 VDD Tierra 13 OSC1 Cristal 4 MHz 14 OSC2 Puerto C 15 Salida RELE 16 Salida RELE 18 Salida LED Puerto D 19 Salida LCD 20 Salida LCD 21 Salida LCD

Puerto C 23 Salida LED

Puerto D 27 Salida LCD 28 Salida LCD 29 Salida LCD 30 Salida LCD Puerto B 33 Entrada Teclado 34 Entrada Teclado 35 Entrada Teclado 36 Entrada Teclado 37 Entrada Teclado 38 Entrada Teclado 39 Entrada Teclado 40 Entrada Teclado

- 48 - En la tabla 3.3.2 se muestra la distribución de los puertos del microcontrolador del módulo B.

Tabla 3.3.2 Número de los puertos del módulo A Modulo B ( Monitoreo de sensores )

Terminal Dirección Descripción

1 VCC Alimentación Puerto A 2 Entrada Sensor LM35 3 Entrada SW1 4 Entrada SW2 5 Entrada SW3 7 Entrada SW4 11 VCC Alimentación 12 VDD Tierra 13 OSC1 Cristal 4 MHz 14 OSC2

Puerto C 16 Salida RELE

Puerto D 19 Salida LCD 20 Salida LCD 21 Salida LCD Puerto D 27 Salida LCD 28 Salida LCD 29 Salida LCD 30 Salida LCD Puerto B 33 Salida LED 34 Salida LED 35 Salida LED 36 Salida LED 37 Salida LED 38 Salida LED 39 Salida LED 40 Salida LED

- 49 -

3.3.2 Selección del Lenguaje de programación del Microcontrolador

Se ha mencionado que existe mucho material relacionado con los microcontroladores PIC, sobre todo en lo que se refiere a su programación y proyectos. Todo este material existe en el Internet, pero está relacionado a la programación en Lenguaje Ensamblador, en lo que respecta a otras plataformas de programación existe muy poco material debido a que a pesar de que ya llevan algunos años, se está produciendo de forma lenta.

Programar en otro lenguaje diferente al Ensamblador en nuestro medio es inusual, debido a que es la primera vez que se realiza, y la mayoría de los programadores prefiere aferrarse a lo que ya conocen, por cuestiones que caen más en el área sociológica, y que no es tema de discusión en este proyecto. Programar en un lenguaje diferente al ensamblador, fue una idea que nace al observar la evolución de los lenguajes de computadora, que al igual que los microcontroladores nace con el Lenguaje Ensamblador, para luego dar paso a los lenguajes de alto nivel orientado especialmente para los programadores.

Como condición inicial para le elección del software de programación se tuvo en cuenta la necesidad de programar en un lenguaje de alto nivel y en particular en lenguaje C que es el más difundido para este tipo de aplicaciones. La necesidad de utilizar un lenguaje de alto nivel radica en las complicaciones que pueden surgir sobre todo en la implementación de las rutinas de comunicación con distintos periféricos. Dada la complejidad de dichas rutinas, se consideró que el uso del lenguaje ensamblador podría acarrear muchas complicaciones.

Se comenzó a investigar el Mplab. El atractivo de utilizar dicho entorno se basa en que es el software desarrollado por Microchip, empresa que desarrolla la familia de microcontroladores PIC, y además por ser el más difundido dentro de los entornos de programación de microcontroladores. Finalmente se optó por utilizar el CCSC que se diferencia del CC5X al poseer mayor cantidad de funciones propias y librarías a incluir.

El compilador CCSC posee una completa bibliografía sobre el uso de sus funciones internas, en el CD adjunto se brinda el manual del compilador bajo el nombre CCSC manual.pdf donde se puede encontrar una guía completa sobre el uso del compilador, el uso de sus funciones específicas así como también ejemplos de aplicación.

- 50 - La idea de programar en un lenguaje de alto nivel, no es por caer en el facilismo, sino realizar proyectos de mayor dificultad, debido a que las nuevas familias de microcontroladores así lo exige, por ejemplo la familia 18 de Microchip disponen de una memoria ROM de hasta 128KB, o pueden direccionar hasta 2 MB. Realizar un sistema grande con este tipo de microcontroladores en lenguaje ensamblador, resultaría demasiado complicado, laborioso y tedioso.

Related documents