Descargar: PROJ_FORMAT_#
Introducción
Ambiente de trabajo
2.1 Especificación de requisitos de hardware
yo. Microcontrolador AT89c52
ii. ADC ADC0808
III. Reloj en tiempo real DS1307
IV. EEPROM serie AT24c08
v. Transceptor serie MAX232
vi. LCD 16×2
2.2 Requisito de software Especificación
yo. Lenguaje de programación ANSI C
ii. Compilador KEIL
2.3 Acerca del hardware
2.3.1 Microcontrolador (89C52)
Características clave
Compatible con productos MCS-51™
8K Bytes de memoria flash Reprogramable en el sistema
Resistencia: 1000 ciclos de escritura/borrado
RAM interna de 256 x 8 bits
32 líneas de E/S programables
Tres temporizadores/contadores de 16 bits
Ocho fuentes de interrupción
Canal Serie Programable
Descripción
El AT89C52 es un microordenador CMOS de 8 bits de bajo consumo y alto rendimiento con 8 KB de memoria flash de sólo lectura programable y borrable (PEROM). El dispositivo se fabrica utilizando la tecnología de memoria no volátil de alta densidad de Atmel. El flash en chip permite reprogramar la memoria del programa en el sistema o mediante un programador de memoria no volátil convencional. Al combinar una CPU versátil de 8 bits con Flash en un chip monolítico, el Atmel AT89C52 es un potente microordenador que proporciona una solución altamente flexible y rentable para muchas aplicaciones de control integradas.
Configuraciones de pines
Descripción del pasador
• PRIMERO
Restablecer entrada. Un nivel alto en este pin durante dos ciclos de la máquina mientras el oscilador está funcionando reinicia el dispositivo.
• ALE/PROG
Address Latch Enable es un pulso de salida para bloquear el byte bajo de la dirección durante los accesos a la memoria externa. Este pin también es la entrada de pulso del programa (PROG) durante Programación Flash.
• PSEN
Program Store Enable es la luz estroboscópica de lectura a la memoria de programa externa. Cuando el AT89C52 ejecuta código desde la memoria de programa externa, PSEN se activa dos veces en cada ciclo de la máquina, excepto que se omiten dos activaciones de PSEN durante cada acceso a la memoria de datos externa.
• EA/VPP
Habilitación de acceso externo. EA debe estar conectado a GND para permitir que el dispositivo obtenga código de ubicaciones de memoria de programa externas desde 0000H hasta FFFFH.
Programando el Flash
Para programar el 89c52, siga los siguientes pasos.
- Ingrese la ubicación de memoria deseada en las líneas de dirección.
- Ingrese los datos apropiados en las líneas de datos.
- Activar la combinación correcta de señales de control.
- Aumentar EA/Vpp
- Pulse ALE/PROG una vez para programar un byte en la matriz Flash o bloquear bits. El ciclo de escritura de bytes es automático y normalmente no dura más de 1,5 ms. Repita los pasos del 1 al 5, cambiando la dirección y los datos de toda la matriz o hasta llegar al final del archivo objeto.
2.3.2 CAD 0808
Características clave:
2.3.3 Reloj en tiempo real (DS1307)
Características
El reloj en tiempo real (RTC) cuenta segundos, minutos, horas, fecha del mes, mes, día de la semana y año con compensación de año bisiesto válida hasta 2100
RAM no volátil (NV) de 56 bytes, respaldada por batería para almacenamiento de datos
Interfaz serie de dos cables
La falla automática de energía detecta y cambia el circuito
Configuraciones de pines
Descripción del pasador
SCL (Entrada de reloj serie): SCL se utiliza para sincronizar el movimiento de datos en la interfaz serie.
SDA (entrada/salida de datos en serie): SDA es el pin de entrada/salida para la interfaz en serie de 2 cables.
SQW/OUT (controlador de salida/onda cuadrada): cuando está habilitado, el bit SQWE establecido en 1, el pin SQW/OUT emite una de las cuatro frecuencias de onda cuadrada (1 Hz, 4 kHz, 8 kHz, 32 kHz).
X1, X2 – Conexiones para un cristal de cuarzo estándar de 32,768 kHz. El circuito del oscilador interno está diseñado para funcionar con un cristal que tiene una capacitancia de carga específica (CL) de 12,5 pF.
Descripción
El reloj serial en tiempo real DS1307 es de bajo consumo; Reloj/calendario decimal codificado en binario (BCD) completo más 56 bytes de NV SRAM. La dirección y los datos se transfieren en serie a través de un bus bidireccional de 2 hilos. El reloj/calendario proporciona información sobre segundos, minutos, horas, día, fecha, mes y año. La fecha de fin de mes se ajusta automáticamente para los meses con menos de 31 días, incluidas las correcciones para los años bisiestos. El reloj funciona en formato de 24 horas o de 12 horas con indicador AM/PM. El DS1307 tiene un circuito de detección de energía incorporado que detecta fallas de energía y cambia automáticamente al suministro de batería.
Operación
El DS1307 funciona como dispositivo esclavo en el bus serie. El acceso se obtiene implementando una condición de INICIO y proporcionando un código de identificación del dispositivo seguido de una dirección de registro. Se puede acceder a los registros posteriores de forma secuencial hasta que se ejecute una condición de PARADA. Cuando VCC cae por debajo de 1,25 x VBAT, el dispositivo finaliza un acceso en curso y restablece el contador de direcciones del dispositivo. Las entradas al dispositivo no se reconocerán en este momento para evitar que se escriban datos erróneos en el dispositivo desde un sistema fuera de tolerancia. Cuando VCC cae por debajo de VBAT, el dispositivo cambia a un modo de respaldo de batería de baja corriente. Al encenderse, el dispositivo cambia de batería a VCC cuando VCC es mayor que VBAT + 0,2 V y reconoce entradas cuando VCC es mayor que 1,25 x VBAT.
2.3.4 Transceptor serie (MAX232)
Características
Alta velocidad de datos: 250 kbits/seg bajo carga
Operar con una sola alimentación de +5V
Utiliza condensadores pequeños: 0,1 µF
Configuraciones de pines
Descripción
El DS232A es un par dual de controlador/receptor RS-232 que genera niveles de voltaje RS-232 a partir de una única fuente de alimentación de +5 voltios. No se necesitan suministros adicionales de ±12 voltios ya que el DS232A utiliza bombas de carga integradas para convertir el suministro de +5 voltios a ±10 voltios. Las velocidades de respuesta del controlador y de datos están garantizadas hasta 250 000 bits/seg. El DS232A funciona con sólo condensadores de bomba de carga de 0,1 µF.
2.3.4 EEPROM serie
Características
Memoria organizada internamente de 1024 x 8 (8K)
Interfaz serie de 2 hilos
Protocolo de transferencia de datos bidireccional
Pin de protección contra escritura para protección de datos de hardware
Modos de escritura de página de 8 bytes (1K, 2K), página de 16 bytes (4K, 8K, 16K)
Se permiten escrituras parciales de páginas
Configuraciones de pines
Descripción
El AT24C08 proporciona 8192 bits de memoria serial de sólo lectura programable y borrable eléctricamente (EEPROM) organizada como 1024 palabras de 8 bits cada una. El dispositivo está optimizado para su uso en muchas aplicaciones industriales y comerciales donde el funcionamiento con bajo consumo y bajo voltaje es esencial. Se accede al AT24C08 a través de una interfaz serie de 2 cables.
2.3.5. Pantalla de cristal líquido
El sistema de monitoreo de temperatura en línea utiliza la pantalla de cristal líquido como pantalla final del sistema, con una pantalla de 16 x 2. Tiene la capacidad de mostrar 16 caracteres de datos ASCII con 2 líneas, un total de 32 caracteres.
2.4 Acerca del software
2.4.1 Lenguaje de programación (ANSI C)
El software del proyecto fue escrito en lenguaje de nivel superior “C”, utilizando el compilador KEIL.
¿Por qué “C”?
C se ha convertido en el lenguaje elegido por los programadores integrados, porque tiene el beneficio de la independencia del procesador. Esta independencia del procesador permite al programador concentrarse en algoritmos y aplicaciones en lugar de en los detalles de la arquitectura del procesador. Sin embargo, muchas de sus características se aplican igualmente a otros lenguajes de alto nivel. Quizás la fortaleza de C es que brinda a los programadores integrados un grado extraordinario de control directo del hardware sin sacrificar los beneficios de los lenguajes de alto nivel.
Hay compiladores y compiladores cruzados disponibles para casi todos los procesadores con C. Cualquier código fuente en C, C++ o lenguaje ensamblador debe convertirse en una imagen ejecutable que pueda cargarse en un chip ROM.
2.4.2 Compilador KEIL
Entorno de Desarrollo Integrado Raisonance
Acerca de los kits de desarrollo KEIL
Los kits de desarrollo Raisonance 8051, XA y ST6 son una solución completa para crear software para la familia de microcontroladores 8051, XA y ST6. Los kits de desarrollo comprenden muchas herramientas diferentes que permiten desarrollar con relativa facilidad proyectos que van desde simples hasta muy complejos. KEIL desarrolla herramientas integradas desde 1988 y acumula muchos años de experiencia.
Herramientas de desarrollo
• Compilador ANSI C
El compilador C es un compilador compatible con ANSI que toma archivos fuente y genera archivos objeto. Las extensiones del lenguaje C se utilizan para permitir el uso o control de funciones del microcontrolador.
• Ensamblador
El ensamblador toma archivos fuente escritos en ensamblador y genera archivos objeto.
• Enlazador/Localizador
El vinculador combina los archivos objeto generados por el compilador y el vinculador y produce un tipo diferente de archivo objeto. El vinculador también decide dónde se ubican ciertos tipos de datos y códigos en la memoria.
• Convertidor de objeto a HEX
El convertidor convierte un archivo objeto generado por el vinculador y genera un archivo Intel Hex, compatible con la mayoría de los programadores de dispositivos.
• KEIL
El Entorno de Desarrollo Integrado KEIL. KEIL es un programa de Windows que permite al usuario crear proyectos, llamar fácilmente al compilador, ensamblador y vinculador para construir el proyecto y simularlo o depurarlo.
• Administrador de biblioteca
El Administrador de biblioteca puede tomar archivos objeto generados por el compilador o ensamblador y crear una biblioteca que se incluye en otros proyectos.
• Monitorear
El Monitor es un programa que se ejecuta en el hardware y transmite información de depuración a KEIL a medida que se ejecuta el programa. También proporciona un medio para controlar la ejecución del programa y depurarlo mientras se ejecuta en el hardware.
Pasos de desarrollo
RIDE proporciona un editor que permite al usuario generar archivos fuente C (extensión .c) y archivos fuente Assembler (extensión .a51 para 8051, extensión .axa para XA y extensión .st6 para ST6).
Cada archivo fuente se traduce utilizando la herramienta adecuada. El compilador traduce archivos fuente C. El ensamblador traduce archivos fuente del ensamblador. Cada herramienta genera un archivo objeto reubicable (extensión .obj). Si un proyecto tiene más de un archivo fuente C o más de un archivo fuente Ensamblador, entonces el Compilador y el Ensamblador se ejecutan tantas veces como sea necesario.
Si se genera un archivo de biblioteca, el Administrador de biblioteca toma todos los archivos de objetos reubicables y los combina en un archivo de biblioteca (extensión .lib). Luego, el archivo de la biblioteca se puede vincular con otros proyectos.
El vinculador/localizador toma archivos de objetos reubicables y archivos de biblioteca y los vincula resolviendo referencias externas. Luego, el vinculador/localizador localiza variables y código en direcciones específicas en el mapa de memoria. El vinculador/localizador genera un único archivo de objeto absoluto (extensión .aof). También genera el mismo archivo sin extensión.
El simulador o depurador en KEIL puede utilizar el archivo de objeto absoluto, ya que el archivo puede contener información de depuración. Alternativamente, el archivo de objeto absoluto se puede utilizar con emuladores en circuito.
La herramienta Object-HEX Converter convierte un archivo de objeto absoluto en un archivo Intel HEX (extensión .hex), que es una representación del código binario puro generado, sin información de depuración. El archivo Intel HEX es aceptado por prácticamente todos los programadores de dispositivos. Además de ser editor, simulador y depurador, KEIL también controla y automatiza todo el proceso de construcción. Al seleccionar un solo elemento del menú, KEIL ejecutará las herramientas correctas para generar un archivo de biblioteca o un archivo de objeto absoluto y un archivo Intel HEX.
Requisitos mínimos del sistema
•Windows 9x/NT/2000
• Procesador Pentium
• 20 Mb de espacio en disco duro
• 32 MB de RAM
2.4.3 Herramienta frontal
2.4.4 Plataforma
- Diseño y descripción de hardware
Fig. 1 Diagrama de bloques del sistema de monitoreo de temperatura en línea
Descripción del sistema
. Este I2C proporciona una comunicación confiable y más rápida entre el dispositivo maestro (microcontrolador) y los otros dispositivos esclavos (reloj en tiempo real, EEPROM serial).
- Análisis del sistema
La tarea de análisis del sistema consta de dos subtareas.
ellos son
Diagrama de flujo de datos
Diagrama de flujo de control
Diagrama de flujo de datos
Un diagrama de flujo de datos es una representación gráfica que muestra el flujo de información y las transformaciones que se aplican a medida que los datos pasan de la entrada a la salida. El DFD puede usarse para representar un sistema o software en cualquier nivel de abstracción.
Notaciones clave utilizadas en DFD y CFD
DFD a nivel de contexto para OTMS
Un DFD de nivel 0, también llamado modelo de sistema fundamental o modelo de contexto, representa todo el elemento de software como una única burbuja con datos de entrada y salida indicados por flechas entrantes y salientes respectivamente.
A medida que el DFD se refina a mayores niveles de detalles, el analista realiza una descomposición funcional implícita del sistema, logrando así el cuarto análisis operativo de la función. Al mismo tiempo, el refinamiento de DFD da como resultado el correspondiente refinamiento de los datos a medida que avanzan a través de los procesos que incorporan la aplicación.
Fig. 2 Diagrama de flujo de datos a nivel de contexto
DFD de nivel 1 para OTMS
Fig. 3 Diagrama de flujo de datos de nivel 1
Información de flujo de datos
- Comandos y datos del usuario
- Configurar solicitud
- Configurar datos
- Iniciar / Detener
- Estado del sensor
- Datos de configuración
- Mensaje publicitario
- Datos de configuración
- Información de los sensores
- Mostrar información
- Tipo de alarma
Nivel 2 DFD de OTMS
El diagrama de flujo de datos de nivel 2 refina el proceso de los sensores del monitor
Fig.1 Diagrama de flujo de datos de nivel 2
Información de flujo de datos
- Estado de los sensores
- ID del sensor, tipo
- Datos de alarma
- Datos de configuración
- ID del sensor, tipo, ubicación
- información del sensor
- Tipo de alarma
Diagrama de flujo de control
Una aplicación de clase grande está “impulsada” por eventos en lugar de datos; producir información de control en lugar de informes o presentaciones, y procesar información con gran preocupación por el tiempo y el rendimiento.
Fig. 1 Diagrama de flujo de control
Información de flujo de datos
- Comandos y datos del usuario
- Configurar solicitud
- Configurar datos
- Iniciar/Parar
- Estado de los sensores
- Datos de configuración
- Mensaje publicitario
- Datos de configuración
- Información de los sensores
- Mostrar información
- Tipo de alarma
- Diseño de software
El diseño del software incluirá dos partes.
• Diseño del programa C (Fuente)
5.1 Diseño del programa “C”
Este es el programa principal del sistema de monitoreo de temperatura en línea. Esto se compila con el compilador RIDE (Entorno de desarrollo integrado de Raisonance) y la imagen ejecutable generada se volcará en el chip del microcontrolador (AT 89c52). Los diagramas de flujo completos del programa se proporcionan a continuación.
La rutina principal del programa.
Diagrama de flujo para la rutina de “Control”
Diagrama de flujo para la rutina “Tiempo de escritura'
- Protocolo I2C
- Protocolo de comunicación en serie
6.2 Comunicación del protocolo I2C
Descripción general
En la electrónica de consumo, las telecomunicaciones y la electrónica industrial, suelen existir muchas similitudes entre diseños aparentemente no relacionados. Por ejemplo, casi todos los sistemas incluyen: • Algún control inteligente, generalmente un microcontrolador de un solo chip • Circuitos de uso general como controladores LCD, puertos de E/S remotas, RAM, EEPROM o convertidores de datos • Circuitos orientados a aplicaciones como circuitos de procesamiento de señales y sintonización digital para sistemas de radio y video, o generadores DTMF para teléfonos con marcación por tonos. Para explotar estas similitudes en beneficio tanto de los diseñadores de sistemas como de los fabricantes de equipos, así como para maximizar la eficiencia del hardware y la simplicidad de los circuitos, Philips desarrolló un bus bidireccional simple de 2 cables para un control eficiente entre IC. Este bus se llama Inter IC o bus I2C. En la actualidad, la gama IC de Philips incluye más de 150 tipos compatibles con CMOS y bus I2C bipolar para realizar funciones en las tres categorías mencionadas anteriormente. Todos los dispositivos compatibles con el bus I2C incorporan una interfaz en chip que les permite comunicarse directamente entre sí a través del bus I2C. Este concepto de diseño resuelve los numerosos problemas de interfaz que se encuentran al diseñar circuitos de control digital.
Características del bus I2C
• Sólo se requieren dos líneas de autobús; una línea de datos en serie (SDA) y una línea de reloj en serie (SCL)
• Cada dispositivo conectado al bus es direccionable por software mediante una dirección única y existen relaciones simples maestro/esclavo en todo momento; Los maestros pueden funcionar como maestros-transmisores o como maestros-receptores.
• Es un verdadero bus multimaestro que incluye detección de colisiones y arbitraje para evitar la corrupción de datos si dos o más maestros inician simultáneamente la transferencia de datos.
• Se pueden realizar transferencias de datos bidireccionales en serie, orientadas a 8 bits, a una velocidad de hasta 100 kbit/s en el modo estándar, hasta 400 kbit/s en el modo rápido o hasta 3,4 Mbit/s en el modo de alta velocidad.
• El filtrado en chip rechaza los picos en la línea de datos del bus para preservar la integridad de los datos
• La cantidad de circuitos integrados que se pueden conectar al mismo bus está limitada únicamente por una capacitancia máxima del bus de 400 pF.
Beneficios del diseñador
• Los bloques funcionales en el diagrama de bloques corresponden con los IC reales; Los diseños avanzan rápidamente desde el diagrama de bloques hasta el esquema final.
• No es necesario diseñar interfaces de bus porque la interfaz de bus I2C ya está integrada en el chip.
• El protocolo integrado de direccionamiento y transferencia de datos permite que los sistemas estén completamente definidos por software
• Los mismos tipos de circuitos integrados a menudo se pueden usar en muchas aplicaciones diferentes
• El tiempo de diseño se reduce a medida que los diseñadores se familiarizan rápidamente con los bloques funcionales de uso frecuente representados por los circuitos integrados compatibles con el bus I2C.
• Los circuitos integrados se pueden agregar o quitar de un sistema sin afectar ningún otro circuito en el bus.
• El diagnóstico de fallas y la depuración son simples; Las averías se pueden localizar inmediatamente
El concepto de bus I2C
El bus I2C contiene dos cables, datos en serie (SDA) y reloj en serie (SCL), que transportan información entre los dispositivos conectados al bus. Cada dispositivo es reconocido por una dirección única (ya sea un microcontrolador, un controlador LCD, una memoria o una interfaz de teclado) y puede funcionar como transmisor o receptor, dependiendo de la función del dispositivo. Obviamente, un controlador LCD es sólo un receptor, mientras que una memoria puede recibir y transmitir datos. Además de transmisores y receptores, los dispositivos también pueden considerarse maestros o esclavos al realizar transferencias de datos.
Definición de terminología del bus I2C
formato de bytes
Cada byte colocado en la línea SDA debe tener una longitud de 8 bits. El número de bytes que se pueden transmitir por transferencia no está restringido. Cada byte debe ir seguido de un bit de reconocimiento. Los datos se transfieren primero con el bit más significativo (MSB) (ver Fig. a). Si un esclavo no puede recibir o transmitir otro byte completo de datos hasta que haya realizado alguna otra función, por ejemplo atender una interrupción interna, puede mantener la línea de reloj SCL LOW para forzar al maestro a entrar en un estado de espera. La transferencia de datos continúa cuando el esclavo está listo para recibir otro byte de datos y libera la línea de reloj SCL.
Figura a. Transferencia de datos en bus I2C
Reconocer
La transferencia de datos con reconocimiento es obligatoria. El impulso de acuse de recibo lo genera el maestro. El transmisor libera la línea SDA (ALTA) durante el pulso del reloj de reconocimiento. El receptor debe bajar la línea SDA durante el pulso de reloj de reconocimiento para que permanezca estable en BAJA durante el período ALTO de este pulso de reloj (ver Fig.).
Figura b. Confirmar en el bus I2C
Formatos con direcciones de 7 bits
Las transferencias de datos siguen el formato que se muestra en la Fig.a Después de la condición de INICIO (S), se envía una dirección de esclavo. Esta dirección tiene 7 bits de longitud seguidos de un octavo bit que es un bit de dirección de datos (R/W): un “cero” indica una transmisión (ESCRITURA), un “uno” indica una solicitud de datos (LECTURA). Una transferencia de datos siempre finaliza mediante una condición STOP (P) generada por el maestro. Sin embargo, si un maestro aún desea comunicarse en el bus, puede generar una condición de INICIO repetida (Sr) y dirigirse a otro esclavo sin generar primero una condición de PARADA. En una transferencia de este tipo son posibles varias combinaciones de formatos de lectura/escritura.
Figura a. transferencia completa de datos.
Formato completo de transferencia de datos
S-Condición de ARRANQUE
P- Condición de PARADA
A- Reconocimiento
- Protocolo de comunicación en serie
El establecimiento de RS 232 y ASCCII coincidió con el desarrollo de organizaciones informáticas multiusuario en las que varios usuarios estaban vinculados a una computadora central mediante enlaces de datos en serie, y los datos en serie se codificaban en ASCII. Los dispositivos periféricos, como las impresoras, adoptaron los mismos estándares para poder acceder al creciente mercado de dispositivos serie.
La transmisión de datos en serie utilizando ASCII se volvió tan universal que se desarrollaron circuitos integrados especializados, transmisores receptores asíncronos universales (UARTS), para realizar las tareas de convertir un byte de datos paralelo de 8 bits en un flujo en serie de 10 bits y convertir un flujo en serie de 10 bits en un byte paralelo de 8 bits.
El 89c52 contiene circuitos de transmisión/recepción de datos en serie que se pueden programar para utilizar cuatro modos de comunicación de datos asíncronos numerados del 0 al 3.
• Modo 0: Registro de desplazamiento de 8 bits de alta velocidad; una velocidad de baudios de f/12
• Modo 1: UART estándar de 8 bits; velocidades de baudios variables
• Modo 2 y Modo 3 UART multiprocesador de 9 bits
Carácter asíncrono de 8 bits (Modo 1)
Especificaciones operativas
Aplicación en tiempo real
Conclusión
9.1 Alcance futuro
9.2 Limitaciones
.
- Bibliografía