OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada...

49
OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay en el mercado Que sirva para elaborar pequeñas aplicaciones de automatización caseras Sirva de apoyo para los diseñadores de proyectos con microcontroladores Enseñe lo fácil que puede ser comunicar un software con una tarjeta de control

Transcript of OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada...

Page 1: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

OBJETIVOS

Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay en el mercado

Que sirva para elaborar pequeñas aplicaciones de automatización caseras

Sirva de apoyo para los diseñadores de proyectos con microcontroladores

Enseñe lo fácil que puede ser comunicar un software con una tarjeta de control

Page 2: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

DESCRIPCIÓN DEL SISTEMA

Page 3: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

DIAGRAMA DE BLOQUES

SOFTWARE HARDWARE

MUNDO REAL

SOFTWARE

Cualquier programa que pueda interactuar con la tarjeta

HARDWARE

Tarjeta de Control con cuatro entradas digitales, ocho salidas con relés, comunicación serial RS232, Temporizador y modulo de auto programación.

MUNDO REAL

Todo aquello que pueda interactuar con las entradas, salidas y módulo de comunicación serial de la tarjeta.

Page 4: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

CARACTERISTICAS DEL SOFTWARE TESIS_RAPI

Ambiente agradable y fácil de manejar

Entorno de desarrollo IDE

Crear, Editar y Compilar código fuente con las aplicaciones de usuario, programar al PIC.

Capacidad para comunicarse con el Hardware

Manejar protocolo para sincronizar tareas Software – Hardware

Page 5: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

CARACTERISTICAS DEL HARDWARE

Control en base a microcontrolador.

Firmware con funciones básicas para comunicación serial, temporización y escritura en la memoria de programa.

Entradas Digitales TON.

Salidas con relés.

Circuito acoplador de niveles RS232 con los del microcontrolador

Circuito para manejar cada relé.

Alimentación con 12VDC

Page 6: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

CRITERIOS PARA LA SELECCIÓN DEL PIC

Se necesitan 12 pines de E/S, 4 para entradas y 8 para salidas

Requerimos 2 pines para comunicación serial con el PC, uno para transmisión y el otro para recepción.

Se debe tener la capacidad para generar temporización de un segundo manejada con interrupciones.

Es indispensable que el dispositivo tenga memoria de programa tipo FLASH o EEPROM, para poder grabar y borrar desde el software.

Debe poseer suficiente memoria para programa y datos

Accequibilidad en el mercado local

Page 7: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

DIAGRAMA DE BLOQUES DE LA TARJETA

Controlador

PIC16F877

Acoplador de Señales Drivers para

Relés

Comunicación con PC

Banco de Relés

Page 8: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

DIAGRAMA ESQUEMATICO

Page 9: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

Circuito Equivalente de una puerta de E/S

banksel PORTAclrf PORTAbanksel ADCON1movlw 0x06movwf ADCON1movlw 0x3Fmovwf TRISAbsf TRISC,7bsf TRISC,6

Page 10: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

Diagrama de bloques del Transmisor

Page 11: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

Pasos a seguir al preparar una Transmisión Asíncrona

1. Inicialice el registro SPBRG con la tasa de baudio apropiada. Si es deseada una tasa de baudios de alta velocidad , ponga a uno el bit BRGH.

2. Habilite el puerto serie asíncrono limpiando el bit SYNC y poniendo a uno el bit SPEN.

3. Si se desean interrupciones, entonces ponga a uno los bits TXIE, GIE y PEIE.

4. Si se desea transmisión de 9-bits, entonces ponga a uno el bit TX9.

5. Habilite la transmisión poniendo a uno el bit TXEN que también pondrá a uno el bit TXIF.

6. Si se selecciona transmisión de 9-bits, el noveno bit debe cargarse en el bit TX9D .

7. Cargar los datos en el registro TXREG (inicia la transmisión).

Page 12: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

Diagrama de Bloques del Receptor

Page 13: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

Pasos a seguir para preparar una Recepción Asíncrona

1. Inicialice el registro SPBRG con la tasa de baudios apropiada. Si se desea una tasa de baudios de alta velocidad, ponga a uno el bit BRGH.

2. Habilite el puerto serial asíncrono limpiando el bit SYNC, y poniendo a uno el bit SPEN.

3. Si se desean interrupciones, entonces ponga a uno los bits RCIE, GIE y PEIE.

4. Si se desea recepción de 9-bits, ponga a uno el bit RX9.

5. Habilite la recepción poniendo a uno el bit CREN.

6. La bandera RCIF se pondrá a uno cuando la recepción esté completa y una interrupción se generará si el bit RCIE fue puesto a uno.

7. Lea el regisro RCSTA para obtener el noveno bit (si lo habilitó) y determine si ocurrió algún error durante la recepción.

8. Obtenga los 8-bits de datos recibidos leyendo el registro RCREG.

9. Si cualquier error ocurriera, borre el error limpiando el bit CREN.

Page 14: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

DISEÑO DEL FIRMWARE DEL PIC

Page 15: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

DIAGRAMA DE FLUJO GENERAL

RESET

Limpiar Variables

Configurar USART

Configurar TIMER2

Configurar Puertos de E/S

Aplicación del Usuario

FIN

Page 16: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

RUTINAS DE SERVICIO DE INTERRUPCIÓN

INT

SALIR

Guarda Contenido de Registros

TipoInterrupción

Rutina deRecepción

Rutina CompletarSegundo

Rx Timer2

RestauraContenido de Registros

Page 17: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

RUTINA DE COMUNICACIÓN SERIAL

Borrar bandera

Rutina de Autoprogramación

Rutina RecibirComandos

Tarea?Autop Cmd

SALIR

INICIO

Page 18: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

RUTINA DE TEMPORIZACIÓN

INICIO

Cont = 25

IncrementoContador

IncrementoSegundos

SALIR

NO SI

Page 19: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

RUTINA DE AUTOPROGRAMACIÓN DE LA MEMORIA DE PROGRAMA

INICIO

Es 1erDato?

Guardar en Dato_H

Es 2doDato?

Es 3erDato?

Fin deProgramación?

Es 4toDato?

Guardar en Dato_L

Guardar en ADD_H

Guardar en ADD_L

Escribir enMemoria

Limpiarbandera

SALIR

SALIR

SALIR

RESET

SI

SI

SI

SI

SI

NO

NO

NO

NO

NO

SALIR

Page 20: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

ÁREA DE MEMORIA PARA

EL USUARIO

Vector de Reset0000h

Vector de Interrupciones0005h

Memoria para Usuario1000h

Subrutinas del Firmware0032h

1FFFh

Page 21: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

DISEÑO DEL SOFTWARE

Page 22: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

DIAGRAMA DE FLUJO GENERAL

INICIO

Mostrar PantallaPrincipal

OpciónMenú

BA

OpciónMenú

DCE

Archivo Configuración

Opciones Ventanas

Ayuda

Page 23: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

MENÚ ARCHIVO

A

Mostrar Hoja en Blanco

Menú Archivo

Mostrar CuadroSelección Abrir

Menú Archivo

Nuevo Abrir

Guardar en Archivo Abierto

Guardar en Archivo Elegido

Guardar Guardar como

Terminar Aplicación

Cerrar

Page 24: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

MENÚ CONFIGURAR

B

Mostrar CuadroElegir

COM1 o COM2

Page 25: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

MENÚ OPCIONES

C

Compilar ArchivoAbierto

MenúOpciones

Mostrar CuadroProgramar

Compilar Prog. Aplicación

Page 26: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

MENÚ VENTANA

D

Mostrar Listade Archivos

Hay ArchivosAbiertos

Mostrar Vacío

SI NO

Page 27: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

MENÚ AYUDA

E

Mostrar CuadroDe Características

MenúAyuda

Mostrar Datos Del Autor

Acerca de TESIS_RAPI

Acerca del Autor

MenúAyuda

Mostrar Archivo de Ayuda

Contenido

Page 28: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

ELECCIÓN DEL PAQUETE DE PROGRAMACIÓN

PROGRAMA PLATAFORMA

Visual C++ Windows

Visual Basic Windows

C++ Windows

Java Varias

Visual C++ , Potente pero muy Complejo. No existe mucha información sobre como acceder a los recursos de la MFC

Visual Basic, Muy fácil de aprender. Posee una gran cantidad de Controles Active X listos para ser usados.

C++, existen muchos ejemplos y tutoriales sobre este lenguaje pero en cambio hay que diseñar las clases necesarias para crear cada objeto que se necesite.

Java, tiene una ventaja enorme frente a los otros lenguajes que es poder correr en varia plataformas o sistemas operativos, pero en cambio tiene su grado de complejidad a la hora de manejar los puertos de comunicaciones

Page 29: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

RESULTADOS DE LA COMPILACIÓN

Page 30: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

PROGRAMACIÓN DE TAREAS DE USUARIO

Page 31: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.
Page 32: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

ENSAMBLADO DEL CODIGO FUENTE

Page 33: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

ESQUEMA DE DIRECTORIOS

Page 34: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

COMPILACIÓN Y ENLACE CON MPLINK

Page 35: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

TEMAS DE AYUDA

Page 36: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

ACERCA DEL PROGRAMA

Page 37: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

IMPLEMENTACION DEL SISTEMA

Page 38: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

PRUEBAS REALIZADAS

Page 39: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

ESTIMULOS PARA LAS ENTRADAS

Page 40: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

VISTA DE LA PILA CUANDO HAY UNA LLAMADA A SUBRUTINA

Page 41: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.
Page 42: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

FORMATO HEXADECIMAL VARIEDAD INTEL DE 8 BITS

FORMATO INTEL INHX8MEjemplos

Page 43: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

FORMATO INTEL INHX8M

:BBAAAATTHHHHHH....HHHHCC

Donde:

: Es el caracter dos puntos, y representa el comienzo de un registro.

BB Es un byte de dos dígitos hexadecimales que representan el doble de la cantidad de bytes de datos que contiene la línea.

AAAA Es una dirección de cuatro dígitos hexadecimales que representan la dirección de comienzo del registro de datos (multiplicada por dos).

TT Es un byte de dos dígitos hexadecimales que siempre es '00', excepto en el registro de final de archivo, en donde es '01'.

HH..HH Son pares de bytes de dos dígitos hexadecimales, de la forma byte bajo - byte alto, y representan los datos a grabar en el PIC.

CC Es un byte de dos dígitos hexadecimales que representan el checksum de verificación de errores del registro de datos. Se calcula como el complemento a dos de la suma de todos los bytes anteriores en el registro.

Page 44: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

EJEMPLOS

Revisemos ahora el siguiente fragmento de archivo .HEX

:02 400E 00 F13F 80 --> Una sola instrucción en la posición 2007h

:080008 00 00008A0117088207BD --> 4 instrucciones a partir de la dirección 0004h

:00000001FF --> Indicador de fin de archivo HEX

Page 45: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

CARACTERISTICAS DEL PIC 16F877

Características del núcleo del Microcontrolador:Características de Periféricos:

Page 46: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

Características del núcleo del Microcontrolador CPU RISC de alto desempeño

Sólo 35 instrucciones de una palabra para aprender

Todas las instrucciones son de un ciclo excepto las de bifurcación que son de dos ciclos

Velocidad de Operación :DC - 20 MHz entrada de relojDC - 200 ns ciclo de instrucción

8K x 14 palabras de Memoria FLASH de Programa,368 x 8 bytes de Memoria de Datos (RAM)256 x 8 bytes de Memoria de Datos EEPROM

Diagrama de Pines compatible con PIC16C73B/74B/76/77

Capacidad de Interrupciones (hasta 14 fuentes)

Ocho niveles de pila en hardware

Modos de direccionamiento directo, indirecto y relativo

Reset en el Encendido (POR)

Temporizador de estabilización de la energía (PWRT) y Temporizador de estabilización del Oscilador (OST)

Page 47: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

Temporizador Perro Guardián (WDT) con su propio oscilador RC integrado

Protección de Código programable

Modo SLEEP para ahorro de energía

Opciones para elegir el oscilador

Memoria de Programa FLASH/EEPROM con tecnología CMOS de bajo consumo y alta velocidad

Diseño completamente estático

Programación serial en circuito (ICSP) por medio de dos pines

Capacidad de programación en circuito con fuente de 5V

Depuración en circuito a través de dos pines

Procesador con acceso a leer/escribir memoria de programa

Amplio rango de voltaje de operación: 2.0V to 5.5V

Gran manejo de corriente: 25 mA

Rangos de temperatura Comercial e Industrial Bajo cosumo de energía: -< 2 mA tipico @ 5V, 4 MHz -20 mA típico @ 3V, 32 kHz -< 1 mA típico en reposo

Page 48: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.

CARACTERISTICAS PRINCIPALES PIC16F877

Frecuencia de operación DC - 20 MHz

Resets (y Retardos)POR, BOR

(PWRT, OST)

Memoria FLASH de Programa(Palabras de14-bits )

8K

Memoria de Datos (bytes) 368

Memoria de Datos EEPROM 256

Interrupciones 14

Puertas de E/S Puertas A,B,C,D,E

Temporizadores 3

Módulos de Captura/Comparación/PWM 2

Comunicación Serial MSSP, USART

Comunicación Paralela PSP

Módulo Convertidor A/D de 10-bits 8 canales

Conjunto de Instrucciones 35 Instrucciones

Page 49: OBJETIVOS Diseñar y construir una tarjeta basada en microcontroladores, capaz de ser reprogramada sin utilizar un grabador especial de los varios que hay.