Página principal



Capítulo 5. Programa de Control

Descargar 0.53 Mb.

Capítulo 5. Programa de Control





Descargar 0.53 Mb.
Página9/9
Fecha de conversión14.05.2018
Tamaño0.53 Mb.
1   2   3   4   5   6   7   8   9

Capítulo 5. Programa de Control

En este capítulo tratamos la programación y el hardware necesario para establecer un mecanismo de comunicación entre el microcontrolador PIC16F87X de Microchip. Dado que podemos establecer comunicación vía el protocolo RS-232 con otro dispositivo, en nuestro caso, como lo habiamos mencionada anteriormente, tenemos la capacidad de enviar y recibir información a un PC que tiene tiene puerto serie RS-232 de facto.

    1. PIC16F87X de Microchip

      1. Arquitectura, Diagrama de Conexiones y Repertorio de Instrucciones

Bajo la denominación de PIC16F87x se hace referencia a una subfamilia de microcontroladores PIC de la gama media, que se identifica por tener como memoria de programa una de tipo FLASH y una serie de recursos semejante a los modelos más potentes, como por ejemplo los PIC16C73/4, teniendo estos últimos el inconveniente de que su memoria de programa es de tipo EPROM.

Dos de los cuatro modelos que componen esta subfamilia, dos están encapsulados con 28 pines (PIC16F873/6), mientras que los otros dos tienen 40 pines (PIC16F874/7). Con la intención de seguir potenciando la línea con memoria FLASH, Microchip también comercializa los microcontroladores PIC16F62X, que con un precio atractivo mantiene el encapsulado de 18 pines, aumentando considerablemente los recursos internos en comparación con el PIC16F84.

Las diferencias entre los PIC16F87x con 28 pines y los de 40 se concretan especialmente en el numero de líneas de E/S disponible, pero a continuación se citan las tres diferencias relevantes:

1ª. Los modelos encapsulados con 40 pines disponen de 5 puertos (PA, PB, PC, PD y PE) de E/S con un total de 33 líneas para conectar a los periféricos exteriores. Los de 28 pines solo tienen 3 puertos (PA, PB y PC) con 22 líneas de E/S.

2ª. El conversor A/D en los PIC con 28 pines tiene 5 canales de entrada, pero en los de 40 pines tiene 8.

3ª. Solo los encapsulados con 40 pines integran una puerta paralela esclava.

        1. Recursos Fundamentales

Procesador de arquitectura RISC avanzada.

Juego de 35 instrucciones con 14 bits de longitud. Todas ellas se ejecutan en un ciclo de instrucción, menos las de salto que tardan dos.

Frecuencia de 20 MHz.

Hasta 8 K palabras de 14 bits para la Memoria de Código, tipo FLASH.

Hasta 368 bytes de Memoria de datos RAM..

Hasta 256 bytes de Memoria de datos EEPROM.

Encapsulados compatibles con los PIC16C73/74/76/77.

Hasta 14 fuentes de interrupción internas y externas.

Pila con 8 niveles.

Modos de direccionamiento directo, indirecto y relativo.

Perro Guardián (WDT).

Código de protección programable.

Modo SLEEP de bajo consumo.

Programación serie en circuito con dos pines.

Voltaje de alimentación comprendido entre 2 y 5.5 V.

Bajo consumo (menos de 2mA a 5 V y 5 MHz).

        1. Dispositivos Periféricos

Timer0: temporizador-contador de 8 bits con predivisor de 8 bits.

Timer1: temporizador-contador de 16 bits con predivisor.

Timer2: : temporizador-contador de 8 bits con predivisor y postdivisor

Dos módulos de Captura-Comparación-PWM.

Conversor A/D de 10 bits.

Puerto Serie Síncrono (SSP) con SPI e 12C.

USART.

Puerta Paralela Esclava (PSP). Sólo en encapsulados con 40 pines.

      1. Procesador RISC con Arquitectura Harvard

Esta arquitectura aplicada por Microchip en sus microcontroladores se caracteriza por la independencia entre la memoria de código y la de datos. Así, tanto la capacidad como el tamaño de los buses de cada memoria se adaptan estrictamente a las necesidades de diseño, facilitando el trabajo en paralelo de las dos memorias, lo que permite obtener altas cotas de rendimiento. La filosofía RISC se hace patente en el reducido numero de instrucciones que forman su repertorio. Sólo consta de 35 instrucciones, que se ejecutan en un ciclo de instrucción, equivalente a cuatro periodos de reloj, excepto las de salto que necesitan dos ciclos.

Debe tenerse en cuenta que la mayor diferencia entre los modelos de 40 pines y los de 28 reside en el numero de Puerta de E/S, que en el primer caso asciende a 5 y en el segundo a 3.

La memoria de datos RAM contiene el Banco de Registros Específicos y el Banco de los Registros de Propósito General y transfiere información bidireccional por el bus de datos de 8 líneas que interconecta todos los elementos. Finalmente, el Caminó de Datos está formado por una ALU de 8 bits que trabaja conjuntamente con el registro de Trabajo W.

      1. Organización de la Memoria de Programa

La memoria FLASH, en la que se graba el programa de aplicación en los PIC16F87x, puede tener una capacidad de 4 K u 8 K palabras de 14 bits cada una. Dicha memoria esta dividida en paginas de 2 K palabras y esta direccionada con el PC, que tiene un tamaño de 13 bits. La Pila, que tiene 8 niveles de profundidad, es transparente para el usuario, es decir, funciona automáticamente y no dispone de instrucciones para guardar o sacar de ella información. Con la instrucción CALL y con las interrupciones el valor del PC se salva en el nivel superior. Con las instrucciones RETURN, RETFIE y RETLW el valor contenido en el nivel superior de la Pila se carga en el PC. Al poseer la Pila solo 8 niveles le corresponde al programador preocuparse por los anidamientos en las subrutinas para no sobre pasar dicho valor. El vector de Reset ocupa la dirección 0000h y el vector de Interrupción la 0004h, igual que en el PIC16F84.

      1. Organización de la Memoria de Datos RAM

La memoria de datos tiene posiciones implementadas en RAM y otras en EEPROM. En la sección RAM, se alojan los registros operativos fundamentales en el funcionamiento del procesador y en el manejo de todos sus periféricos, además de registros que el programador puede usar para información de trabajo propia de la aplicación. Más adelante, se estudiara la memoria EEPROM para guardar datos de forma no volátil, a la que se considera como un dispositivo especial.

La RAM estática consta de 4 bancos con 128 bytes cada uno. En las posiciones iniciales de cada banco se ubican los Registros Específicos que gobiernan al procesador y a sus recursos. Dos modelos de PIC16F87x tiene 192 bytes de RAM y los otros dos 368 bytes. Los modelos de menor capacidad no tienen implementadas físicamente algunas posiciones.

        1. Registros Específicos para el Control de la Memoria de Programa

Los bits 13 bits contenidos en el PC, que direccionan la memoria de código, están guardados en dos registros específicos. El registro PCL guarda los 8 bits de menos peso y se puede leer y escribir. Los bits <12:8>> del PC se alojan en el registro PCH, que al no poder ser leído ni escrito, se accede a él a través del PCLATH.

Las instrucciones de salto CALL y GOTO sólo proporcionan 11 bits de la dirección a saltar. Esto limita el salto dentro de cada banco de 2 K. Cuando se desea salir del banco actual hay que programar correctamente los bits PCLATH <4:3> que seleccionan al banco. Es labor del programador modificar el valor de dichos bits en las instrucciones CALL y GOTO.

        1. Control de la Memoria de Datos

Para direccionar la memoria RAM de datos estructurada en 4 bancos de 128 bytes cada uno existen dos modos diferentes.

  • Direccionamiento Indirecto

  • Direccionamiento Directo

En el modo de direccionamiento directo, los bits RP1 y RP0 del Registro de Estado <6:5> se encargan de seleccionar el banco, mientras que la dirección dentro del banco la determinan 7 bits procedentes del código OP de la instrucción.

Para el direccionamiento indirecto se usa el registro FSR, en el que sus 7 bits de menos peso señalan la dirección, y el banco lo determina el bit de más peso de FSR conectado con el bit IRP del Registro de Estado <7>.

      1. Díagrama de Conexión

      2. Repertorio de Instrucciones

Los mismos formatos, iguales modos de direccionamiento y las mismas 35 instrucciones que tenia el PIC16F84 sirven para todos los modelos PIC16F87x.

No obstante, en los nuevos PIC, al contener más recursos, existen nuevos Registros Específicos de control cuyos bits se deberán escribir o leer para su gobierno.

    1. El USART: Transmisor/Receptor Síncrono/Asíncrono Serie

      1. Comunicación Serie Asíncrona

Los PIC16F87X contiene un modulo MSSP con dos puertos para la comunicación serie <>, o sea con señal de reloj. Además también dispone de un modulo USART capaz de soportar la comunicación serie síncrona y asíncrona.

El USART, llamado SCI (Serial Comunications Interface), puede funcionar como un sistema de comunicación full duplex o bidireccional asíncrono, adaptándose a multitud de periféricos y dispositivos que transfieren información de esta forma, tales como el monitor CRT o el ordenador PC. También puede trabajar en modo síncrono unidireccional o half duplex para soportar periféricos como memorias, conversores, etc. En resumen, el USART puede trabajar de tres maneras :

  • Asíncrona (Full duplex, bidireccional).

  • Síncrona-Maestro (Half duplex, unidireccional).

  • Síncrona-Esclavo (Half duplex, unidireccional).

En la figura X.1 se muestra un esquema del comportamiento del USART en modo asíncrono y síncrono. En el primero, las transferencias de información se realizan sobre dos líneas TX (transmisión) y RX (recepción), saliendo y entrando los bits por dichas líneas al ritmo de una frecuencia controlada internamente por el USART. En el modo síncrono, la comunicación se realiza sobre dos líneas, la DT que traslada en los dos sentidos los bits a las frecuencia de los impulsos de reloj que salen por la línea CK desde el maestro. En ambos modos las líneas de comunicación son las dos de más peso de la Puerta C: RC6/TX/CK y RC7/RX/DT.

Dada la importancia del protocolo asíncrono del USART, según la popular norma RS-232-C, se dedica este capitulo a estudiar este modo de comunicación, proponiendo un ejercicio de manejo de dicho protocolo.

En esta forma de comunicación serie, se usa la norma RS-232-C, donde cada palabra de información o dato se envía independientemente de los demás. Suele constar de 8 o 9 bits y van precedidos por un bit de START (inicio) y detrás de ellos se coloca un bit de STOP (parada), de acuerdo con las normas del formato estándar NRZ (NonReturn-to-Zero). (Figura X.2.). Los bits se transfieren a una frecuencia fija y normalizada.

Los cuatro bloques que configuran la arquitectura del USART, en modo síncrono, son:

1º. Circuito de muestreo.

2º. Generador de baudios.

3º. Transmisor asíncrono.

4º. Receptor asíncrono.

El circuito de muestreo actúa sobre la patita RC7/RX/DT, que es por donde se recibe el bit de información o control y se encarga de muestrear tres veces su valor, para decidir éste por mayoría.

      1. Generador de Baudios

En el protocolo asíncrono RS-232-C, la frecuencia en baudios (bits por segundo) a la que se realiza la transferencia se debe efectuar a un valor normalizado: 330, 600, 1.200, 2.400, 4.800, 9.600, 19.200, 38.400, etc. Para generar esta frecuencia, el USART dispone de un Generador de frecuencia en Baudios, BRG, cuyo valor es controlado por el contenido grabado en el registro SPBRG.

Además del valor X cargado en el registro SPBRG, la frecuencia en baudios del generador depende del bit BRGH del registro TXSTA<2>. En el caso de que BRGH sea 0 se trabaja en baja velocidad y si BRGH = 1 se trabaja en alta velocidad. Según este bit se obtendrá el valor de una constante K necesaria en la determinación de la frecuencia de funcionamiento.

Frecuencia de Baudios = FOsc / ( K · ( X + 1 ) )

X es valor cargado en el registro SPBRG

Si BRGH = 0, baja velocidad y K = 64

Si BRGH = 1, alta velocidad y K = 16

Transmisor Asíncrono

En la Figura X.4, se muestra un esquema simplificado de la comunicación entre un USART transmisor y otro receptor, contenidos en sus respectivos microcontroladores.

El dato que se desea transmitir por el USART transmisor de la figura X.4 se deposita en el registro TXREG y a continuación se traspasa a registro de desplazamiento TSR, que se va sacando los bits secuencialmente de la frecuencia establecida. Además, antes de los bits del dato de información incluye un bit de INICIO y después de sacar todos los bits añade un bit de PARADA. El USART receptor recibe, uno a uno los bits, elimina los datos de control y los de información una vez que han llenado el registro de desplazamiento RSR los traslada automáticamente al registro RCREG, donde quedan disponibles para su posterior procesamiento.

En la Figura X.5 se presenta el diagrama por bloques de la sección transmisora del USART. El núcleo esta constituido por el registro de desplazamiento TSR, que obtiene el dato desde el registro TXREG y luego lo va desplazando y sacando bit a bit, en serie, por la patita RC6/TX/CK. El primer bit que sale es el de menos peso. El dato a transferir se carga por software en TXREG y se transfiere al TSR en cuanto se haya transmitido el bit de PARADA del dato anterior. La transferencia entre los dos registros se realiza en un ciclo y entonces el señalador TXIF se pone a 1, para advertir que el registro de transmisión se ha vaciado. También en este momento puede producirse una transmisión y se ha posibilitado programando el bit TXIE = 1 en el registro PIE1<4>. Cuando se escribe otro dato sobre TXREG, el señalizador TXIF se pone a 0. el bit TRMT sirve para indicar el estado de registro TSR y vale 1 cuando esta vacío.

La secuencia de pasos a seguir para implementar una transmisión en el USART es la siguiente:

1.º Hay que configurar las líneas RC6/TX/CK como salida y RC7/RX/DT como entrada.

2.º Poner SYNC = 0 y SPEN = 1 para activar el USART en modo asíncrono.

3.º Si se desea trabajar con interrupción, poner TXIE = 1, además de habilitar las interrupciones en general.

4.º Si el dato consta de nueve bits, en lugar de los 8 típicos, poner el bit TX9 = 1. El noveno de bit se colocará en TX9D (TXSTA).

5.º Se carga el valor X adecuado en el registro SPBRG, para producir la frecuencia de trabajo deseada. Hay que controlar el bit BRGH (alta y baja velocidad).

6.º Activar la transmisión con TXEN = 1. El bit TXIF tendrá valor 1, ya que TXREG se encuentra vacío.

7.º Cargar en TXREG el dato a transmitir. Comienza la transmisión.

      1. Receptor Asíncrono

Los datos se reciben en serie, bit a bit, por la patita RC7/RX/DT y se van introduciendo secuencialmente en el registro desplazamiento RSR (figura9.4), que funciona a frecuencia 16 veces mas rápida que el trabajo. Cuando el dato consta de 9 bits hay que programar el bit RX9=1 y el noveno bit de información se colocara el bit RX9D del registro RCSTA. Obsérvese en la figura X.8 el control sobre el noveno bit con las puertos de control y las señales que se aplican (ADDEN=1).cuando CREN = 1 en el registro RCSTA <4>, se habilita la recepción.

Cuando un procesador maestro intenta enviar información a uno de los esclavos, primero un envía byte de dirección que identifica al destinario. El byte de dirección se identifica por que el bit RX9D que llega vale 1. Si el bit ADDEN = 1 en el esclavo se ignoran todos bytes de datos. Pero el noveno bit que se recibe vale 1, quiere decir que trata de una dirección y el esclavo provocara una interrupción, y transferirá e contenido del registro RSR al buffer de recepción. Tras la interrupción el esclavo deberá examinar la dirección y si coincide con la suya deberá poner ADDEN = 0 para poder recibir datos del maestro.

Si ADDEN = 1 como los datos son ignorados, el bit de PARADA no se encarga en RSR, por lo que este hecho no produce interrupción.

Los pasos a seguir en el modo de recepción son los siguientes:

  1. Se carga con el valor X al registro SPBRG par trabaja r con la frecuencia deseada, controlando además el valor de BRGH.

  2. Se habilita es USART en modo asíncrono con SPEN = 1 y SYNC = 0.

  3. Si se desea que se genere una interrupción con la llegada del bit PARADA, se pone RCIE = 1, además de habilitar las interrupciones en general .

  4. Poner RX9 = 1 para permitir la recepción del bit 9.

  5. Para detectar la dirección, poner ADDEN = 1.

  6. Se habilita la recepción poniendo CREN = 1.

  7. Al completarse la recepción RCIF se pondrá a 1 y se produce una interrupción si se había permitido.

  8. Se lee el registro RCSTA y se averigua si se a producido algún error.

  9. Leer los 8 bits del registro RCREG para determinar si el dispositivo a sido direccionado.

  10. Si ha producido algún error, poner CREN = 0.

  11. Si ha sido direccionado el dispositivo, poner ADDEN = 0 para permitir la recepción de la información.

    1. Comunicación Serie con el USART

De los modos de funcionamiento del USART, la comunicación serie asíncrona es la mas utilizada. El PIC16F87X incorpora el hardware para comunicarse vía RS- 232 con un ordenador tipo PC. Por ello, el PC deberá emular un terminal con el software apropiado.

      1. Enunciado

El programa que vamos a realizar va a hacer que el PIC se comunique vía serie con un programa terminal que correrá sobre un PC. El PIC esperara a recibir un carácter, lo visualizara en forma binaria sobre LEDs y lo volverá a transmitir a modo ECO. La recepción del carácter se controlara mediante interrupción.

      1. Esquema Eléctrico.

En este ejercicio se van a utilizar dos elementos, tal y como se muestra en la figura X.11.

1. Circuito que se muestra con PIC con interfase RS-232

3. Ordenador tipo PC: se deberá conectar el circuito ensamblado del inciso anterior mediante un cable de comunicaciones serie debidamente preparado, esto es, un cable que consta de tres hilos donde un extremo GND va unido con el otro extremo GND, y los hilos de transmisión (TxD) y recepción (RxD) de cada extremo deben estar cruzados. Este ordenador funcionara como un terminal de comunicaciones empleando el software TERMINAL. EXE.

      1. Díagrama de Flujo

Como se muestra en la Figura X.12, el programa principal de este ejercicio es sencillo ya que tras configurar los registros a utilizar solo hay que dejar al USART en modo escucha y espera en un bucle a que se genere una interrupción al recibir un carácter desde el PC.

En el tratamiento de interrupción se leerá el dato recibido se mostrara por la Puerta B y se volverá a transmitir hacia al PC a modo de ECO. Antes de volver se deberá restaurar el señalizador de interrupción.

      1. Prueba del programa

Además de las conexiones ya comentadas en el esquema eléctrico, se deberá tener en cuenta que:

  • Hay que conectar un extremo del cable serie preparado al conector del circuito ensamblado y el otro canal serie COMx disponible en el cable PC.

Una vez hecho esto y grabado el programa en el PIC, se ejecutara el programa TERMINAL.EXE desde el PC. Cada tecla que se pulse será recibida por el microcontrolador, que la sacara por los LEDs y la devolverá al ordenador de modo que pueda verse su eco en el monitor.

      1. El programa de comunicaciones TERMINAL

Se trata de un programa de comunicaciones que funciona bajo MS-DOS o en Windows con ventana MS-DOS, en cualquier ordenador IBM PC/XT/AT o compatible, contenido en un único fichero ejecutable llamado TERMINAL.

Al ejecutar el programa, aparece la pantalla de trabajo que se muestra en la figura X.14. el programa hace que el PC emule a un terminal serie capaz de comunicarse con cualquier otro dispositivo. Pulsando las teclas ALT-X, se cancela el programa de comunicación, devolviendo en control al sistema. Con la tecla F1 se accede a una ventana de ayuda para el programa TERMINAL. Tras la figura X.14 se explica resumidamente la función de cada uno de los comandos ejecutables.

Alt-E Activa o no el eco local, de modo que cada tecla pulsada se active directamente en la pantalla.

Alt-I Cada retorno de carro (CR) que se recibe se convierte o no además en avance de línea (CRLF).

Alt-O Cada retorno de carro (CR) que transmite se convierte o no además en avances de líneas (CRLF).

Alt-T Transmite ficheros binarios en formato INTEL por la línea de transmisión. Aparecerá una ventana pidiendo el nombre de fichero a transmitir así, el contenido del fichero pasara a la memoria RAM del microcontrolador.

Alt-R Recibe por la línea de recepción el contenido de las posiciones de memorias indicadas y lo guarda en formato INTEL en un fichero cuyo nombre solicita se empleara para guardar en disco el contenido de un área de memoria del microcontrolador.

Alt-B Borra la pantalla del TERMINAL.

Alt-X Sale del programa TERMINAL y retorna al MS-DOS, dándose por terminada la comunicación.

ESC. Cierra la ventana de ayuda.



Conclusiones

La red de redes nos brinda una amplia gama de posibilidades de comunicarnos, la explotación de este mecanismo de comunicación está abierta a todas las posibilidades de de uso, según nuestras necesidades y nuestra imaginación y creatividad.

El Internet, nos brinda una amplia gama de servicios, desde la comunicación con simple texto, hasta la video-conferencia con imagen, sonido y recursos informáticos compartidos (multimedia), hasta la posibilidad de recibir información y controlar dispositivos lejanos, sin olvidar el comercio electrónico, la educación a larga distancia y muchos otros servicios más.

Hoy en día, cada vez son más los dispositivos que se conectan a Internet.



Bibliografía

Manual de CISCO

T. Shaugnessy

Osborne-McGraw Hill

MicroProcessors an Interfacing

Douglas V. Hall

McGraw-Hill















1   2   3   4   5   6   7   8   9

Similar:

Hoja de Agua iconFormato Hoja de Vida
Curso: “Evaluador de Competencias Laborales en Agua Potable y Saneamiento basico”, Servicio Nacional de Aprendizaje sena; duración...
Hoja de Agua iconFinal del formulario Naturaleza, estructura y composición del agua
En la actualidad, a través de un proceso llamado hidrólisis es posible demostrar que los elementos constitutivos de agua son el h...
Hoja de Agua iconMicrosoft Word AgendaSocioAmbientalLocal doc
Agua de consumo humano. La población se abastece de agua procedente de dos fuentes principales
Hoja de Agua iconSolicitud de servicio de agua / cloaca agua cloaca
Deja constancia que las instalaciones, equipos y terrenos necesarios y aquellas obras que
Hoja de Agua iconMicrosoft Word 5986anexo a consulta Pública sobre el Régimen de Suministro Agua
Artículo 1: Los prestadores del servicio deberán prestar el servicio de agua potable y/o
Hoja de Agua iconHidrostatica
Hidro: agua. Estático: quieto, que no se mueve. En el tema de hidrostática el agua
Hoja de Agua iconN residencial
Antes de llenar este formulario, es necesario que lea la hoja informativa que se incluye. Use una hoja aparte para proveer
Hoja de Agua iconPliego de bases y condiciones particulares anuncio de convocatoria
Objeto: servicio de alquiler y mantenimiento de expendedores / purificadores de agua fría y caliente con conexión a agua de red,...
Hoja de Agua icon1. Fuente(s) primaria(s) de agua de riego >10. Proyecto(s) para mejorar la calidad del agua
En este sitio también se encontrarán preguntas frecuentes, recursos y herramientas para los cultivadores
Hoja de Agua iconManual del Sistema de Agua y Saneamiento
El sistema de Agua y Saneamiento está plenamente estructurado sobre la herramienta de


Descargar 0.53 Mb.