interfono por internet - 148.206.53.84148.206.53.84/tesiuami/uami16027.pdf · informe final de...

40
Casa abierta al tiempo UNIVERSIDAD AUTONOMA METROPOLITANA Informe final de Proyecto T erminal, Interfono por Internet (Diseño, construcción y pruebas de los circuitos digitales de la interfaz) Alumno Reyes Torres, Efrén Asesor Dr. Miguel López Guerrero

Upload: hoangngoc

Post on 19-Oct-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Casa abierta al tiempo

UNIVERSIDAD AUTONOMA METROPOLITANA

Informe final de Proyecto Terminal, Interfono por

Internet (Diseño, construcción y pruebas de los

circuitos digitales de la interfaz)

Alumno Reyes Torres, Efrén

Asesor

Dr. Miguel López Guerrero

Page 2: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 1

ÍNDICE

Contenido

ÍNDICE 1

ÍNDICE DE FIGURAS 2

RESUMEN 3

1 DESCRIPCIÓN GENERAL 3

2 DESCRIPCION DEL MICROCONTROLADOR 6

2.1 Descripción del microcontrolador ATmega8535 6

3 TRANSMISIÓN Y RECEPCIÓN SERIAL 9

3.1 El puerto serie RS-232 9

3.2 USART 11

3.3 Comunicación PC – Microcontrolador 18

3.4 Pruebas de la transmisión y recepción 20

4 CONVERSIÓN ANALÓGICA DIGITAL 25

4.1 El convertidor A/D del ATMega8535 25

4.2 Pruebas de la conversión analógica - digital 31

5 IMPLEMENTACIÓN 33

6 CONCLUSIONES 38

BIBLIOGRAFÍA 39

Page 3: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 2

ÍNDICE DE FIGURAS

FIGURA 1 DIAGRAMA GENERAL DEL PROYECTO 4 FIGURA 2 TARJETA DE LA INTERFAZ 5 FIGURA 3 CONFIGURACIÓN DE LAS TERMINALES DEL MICROCONTROLADOR ATMEGA8535 7 FIGURA 4 CONFIGURACIÓN DEL CONECTOR DB-9 10 FIGURA 5 CONFIGURACIÓN DE LAS TRAMAS 11 FIGURA 6 REGISTRO DE TRANSMISIÓN Y RECEPCIÓN UDR 14 FIGURA 7 REGISTRO DE CONTROL UCSRA 14 FIGURA 8 REGISTRO DE CONTROL Y ESTADO USCRB 15 FIGURA 9 REGISTRO DE CONTROL Y ESTADO C - UCSRC 16 FIGURA 10 REGISTROS DE VELOCIDAD DE BAUDIOS UBRRL Y UBRRH 18 FIGURA 11 DIAGRAMA ESQUEMÁTICO PC-MICROCONTROLADOR 19 FIGURA 12 DIAGRAMA DE FLUJO TRANSMISIÓN Y RECEPCIÓN 23 FIGURA 13 REGISTRO DE CONTROL ADMUX 26 FIGURA 14 REGISTRO DE CONTROL Y ESTADO ADCSRA 28 FIGURA 15 REGISTROS DE DATOS DE LA UDR CUANDO ADLAR = 0 29 FIGURA 16 REGISTROS DE DATOS DE LA UDR CUANDO ADLAR = 1 29 FIGURA 17 REGISTRO DE FUNCIONES ESPEIALES SFIOR 29

Page 4: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 3

RESUMEN

El concepto de interfono por Internet surge de la idea de poder monitorear a distancia la residencia de una persona ubicada geográficamente en prácticamente cualquier lugar del mundo siempre y cuando cuente con una computadora conectada a Internet para establecer la comunicación con otra computadora instalada en su hogar .

Básicamente, la función del interfono por Internet es informar a una persona cuando alguien llega a su domicilio y toca el timbre de su puerta, en ese momento un mensaje de aviso informando de este evento aparecerá en la pantalla de su computadora. En el caso de que el usuario decida iniciar la conversación, el sistema debe permitir atender a la persona que toca la puerta tal y como si alguien se encontrara en el domicilio.

Para poder llevar a cabo esta idea se planteó la posibilidad de dividirla en varias partes que unidas entre sí darán forma a un sistema electrónico que realizará las tareas que se han mencionado anteriormente.

En el presente documento se incluyen los detalles de las acciones que se llevaron a cabo para desarrollar el diseño y la implementación de una etapa digital que se encarga de comunicar un interfono tradicional en sus modalidades de transmisión y recepción con una PC, incluyendo la digitalización de la señal proveniente del micrófono, así como informar acerca de las pruebas realizadas necesarias para lograr su correcto funcionamiento.

1 DESCRIPCIÓN GENERAL

La propuesta del interfono por Internet tiene por objetivo permitir a una persona saber en todo momento quién toca a la puerta de su hogar y, de ser preciso, le da la posibilidad de entablar y mantener un diálogo con dicha persona para atender cualquier tipo de asunto relacionado con el domicilio o sus habitantes sin la necesidad de estar presente físicamente dentro del lugar de residencia.

Para tal efecto el sistema hará uso de dos herramientas que sin duda alguna forman ya parte de la vida diaria de muchas personas.

1. Las computadoras personales (háblese de PC de escritorio o laptop), incluyendo los componentes que vienen integrados (en la mayoría de los casos) a estos equipos, es decir, la tarjeta de audio, tarjeta de video, tarjeta de red (Ethernet o inalámbrica).

2. El Internet, que por sus características ha llegado a convertirse en los últimos tiempos en un medio de comunicación masivo gracias a su gran flexibilidad y adaptabilidad a prácticamente cualquier tipo de aplicación. Aunado a esto es

Page 5: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 4

necesario destacar las grandes velocidades de transmisión de datos que se han alcanzado. En nuestros días podemos enterarnos de lo que sucede al otro lado del mundo en el preciso instante en que ocurren las acciones, ejemplo claro de esto son las videoconferencias, chats, transmisiones de televisión, etc.

Uno de los objetivos de este proyecto es aprovechar las bondades de la red de redes en cuanto a comunicación se refiere y de este modo adaptar sus beneficios a una tarea común y cotidiana como lo es el simple hecho de saber quién está llamando a las puertas de nuestro hogar.

Debido a su naturaleza, este proyecto se ha abordado de la siguiente manera, el sistema está dividido en tres etapas principales cuya organización puede verse en la figura 1.

La etapa que se muestra en la parte superior de la ilustración se encargará de mantener el enlace entre las dos personas involucradas en la comunicación. Para ello utilizará un software que deberá ser instalado en ambas computadoras. Este software estará diseñado para recibir los datos provenientes del interfono una vez que hayan sido procesados por la tarjeta y los enviará utilizando el Internet hasta la otra PC.

PC Local Internet PC Remota

Tarjeta electrónica Interfono tradicional

Figura 1 Diagrama general del proyecto

Del otro lado de la red, en la PC remota, el software interpretará esos mismos datos y los convertirá de tal manera que el otro usuario pueda comprenderlos.

Page 6: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 5

Cuando el usuario en la PC remota tenga una respuesta al mensaje que ha recibido, emitirá su mensaje utilizando un micrófono, en este caso el software hará la transformación de ese mensaje de analógico a digital y utilizando el Internet mandará la respuesta a la PC local.

La otra etapa, ubicada en la parte inferior de la figura 1, es de hardware y se ocupa del diseño de la interfaz analógica que incluye el timbre, el micrófono y la bocina de un interfono tradicional en sus distintas etapas de filtrado, amplificación y transformación de los mensajes recibidos desde la PC remota de su forma digital a analógica, lo cual permitirá la comunicación con la persona que toca a la puerta.

Además existe una interfaz que se encargará de mantener el intercambio de datos entre el interfono y la PC local, toda esta etapa es digital y utiliza como dispositivo esencial un microcontrolador que digitaliza, transmite y recibe de manera serial los datos generados del intercambio de mensajes.

La figura 2 que se muestra a continuación engloba las tres partes principales de las que se compone esta etapa:

Figura 2 Tarjeta de la interfaz

Para fines prácticos utilizaremos el hecho de que el interfono entrega una señal analógica, misma que será procesada por el convertidor analógico digital del microcontrolador, su inclusión

Page 7: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 6

en la etapa de firmware se debe al hecho de que es necesario que configuremos sus parámetros en lenguaje ensamblador .

Por otro lado, dado que el microcontrolador es la pieza central de prácticamente todo el diseño, es necesario que conozcamos la forma en que se tienen que configurar la transmisión, la recepción, el convertidor A/D y sus puertos, y que del mismo modo sepamos algunas de sus características más importantes. Por tal motivo este informe ha sido estructurado de tal manera que primero conozcamos algunos aspectos teóricos sobre la implementación y después se exponga la fase de desarrollo y pruebas del firmware.

2 DESCRIPCION DEL MICROCONTROLADOR

El sistema consta, hablando de hardware, principalmente de un microcontrolador ATmega8535 de la serie de microcontroladores de 8 bits de la familia AVR de la marca ATMEL pero la verdadera importancia de este proyecto radica en la etapa de programación del firmware que ha sido dividida en transmisión, recepción y digitalización de una señal analógica.

A continuación se detallan tanto las características del microcontrolador como la forma de configurarlo para hacer que interactúe con una PC y con un interfono tradicional simultáneamente.

2.1 Descripción del microcontrolador ATmega8535

Se ha decidido utilizar el microcontrolador ATmega8535 porque este microcontrolador tiene integrado un convertidor analógico a digital y esto nos permite de cierta forma optimizar el uso de hardware en el sentido de que si elegimos otro controlador habría que incluir un circuito externo que hiciera la labor de conversión analógica-digital.

La documentación que acompaña a este microcontrolador es bastante extensa y la siguiente descripción del microprocesador es un poco breve tratando de mostrar sus características más importantes y de hacer énfasis únicamente en los aspectos que interesan a los fines de este proyecto.

2.1.1 Características

• Microcontrolador de 8 bits de alto desempeño y bajo consumo

• Arquitectura RISC

• 130 instrucciones

• 32x8 registros de propósito general

• 8 Kb de flash interna auto programable

• Dos temporizadores/contadores de 8 bits con pre escaladores separados

Page 8: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 7

• Un temporizador/contador de 16 bits con pre escalador

• USART serial programable

• Oscilador interno RC calibrado

• Fuentes de interrupción internas y externas

• Convertidor analógico digital

• Voltaje de operación 2.7 - 5.5V

• Grados de velocidad 0 - 8 MHz

2.1.2 Configuración de las terminales

La figura 3 muestra la configuración de las terminales del microcontrolador ATMega8535.

Figura 3 Configuración de las terminales del microcontrolador ATMega8535

El núcleo AVR combina un conjunto de instrucciones con 32 registros de propósito general, ellos están directamente conectados a la Unidad Lógica Aritmética (ALU), lo que permite a dos registros independientes ser accesados en una sola instrucción ejecutada en un ciclo de reloj.

El ATmega8535 es compatible con una gran variedad de programas y sistemas. Las herramientas de desarrollo incluyen: compiladores de C, macro ensambladores, programas de simulación/depuración, emuladores de circuitos y kits de evaluación.

Page 9: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 8

2.1.3 Descripción de las terminales

Vcc Voltaje de alimentación GND Tierra física Port A (PA7..PA0)

El puerto A sirve como entrada del convertidor A/D. El puerto A también sirve como un puerto de 8 bits bidireccional si el convertidor A/D no se usa.

Port B (PB7..PB0)

El puerto B es un puerto bidireccional de 8 bits, además tiene otras funciones y características especiales.

Port C (PC7..PC0)

El puerto C es un puerto bidireccional de 8 bits.

Port D (PD7..PD0)

El puerto D es un puerto bidireccional de 8 bits, además tiene la función de entrada para las interrupciones externas.

RESET Entrada de reinicio. Un nivel bajo de voltaje con una duración mayor a la duración

mínima de un pulso genera un reinicio. XTAL1 Entrada al amplificador del oscilador inversor y entrada para el circuito de reloj

interno. XTAL2 Salida del amplificador del oscilador inversor. AVCC Es el terminal de voltaje de alimentación para el puerto A y el convertidor A/D.

Debe ser conectado externamente a VCC, incluso si el ADC no está siendo usado, si el ADC es usado, debe conectarse a VCC usando un filtro pasa bajas.

AREF Es el terminal de referencia analógica para el convertidor A/D.

Page 10: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 9

3 TRANSMISIÓN Y RECEPCIÓN SERIAL

3.1 El puerto serie RS-232

Una de las necesidades de este proyecto reside en el intercambio de datos que debe llevar a cabo el microprocesador con la PC, para continuar entonces debemos conocer la función del puerto serie RS-232 o comúnmente conocido como puerto serie que generalmente viene integrado a la tarjeta madre de la mayoría de las computadoras personales de escritorio en la actualidad.

Este puerto es el sistema más común para la transmisión de datos entre computadoras, la mayoría como mínimo poseen uno.

El RS232 es un estándar de comunicaciones propuesto por la Asociación de Industrias Electrónicas (EIA) y es la última de varias versiones anteriores. Por medio de este protocolo se estandarizan las velocidades de transferencia de datos, la forma de control que utiliza dicha transferencia, los niveles de voltajes utilizados, el tipo de cable permitido, las distancias entre equipos, los conectores, etc. Se envían datos de 7, 8 o 9 bits, la velocidad se mide en baudios (bits/segundo) y sólo son necesarios dos cables, uno de transmisión (Tx) y otro de recepción (Rx). Además de las líneas de transmisión (Tx) y recepción (Rx), las comunicaciones seriales poseen otras líneas de control de flujo (Hand-shake), donde su uso es opcional dependiendo del dispositivo a conectar.

Las señales con la que actúa el puerto son digitales (0 - 1) y el voltaje al que trabaja es de 12 Volts.

Las características de los terminales y su nombre típico son:

TXD Transmitir Datos Señal de salida RXD Recibir Datos Señal de entrada RTS Solicitud de envío Señal de salida DTR Terminal de datos listo Señal de salida CTS Libre para envió Señal de entrada DSR Equipo de datos listo Señal de entrada DCD Detección de portadora Señal de entrada SG Tierra Referencia para señales RI Indicador de llamada Señal de entrada

La configuración para los distintos conectores son las siguientes:

Page 11: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 10

Tabla 1 Configuración de los conectores seriales de 9 y 25 terminales

Conector 25 terminales Conector 9 terminales Nombre Descripción 1 1 - Tierra física 2 3 TxD Transmisión 3 2 RxD Recepción 4 7 RTS Request To Send 5 8 CTS Clear To Send 6 6 DSR Data Set Ready 7 5 SG Signal Ground 8 1 CD/DCD (Data) Carrier Detect

15 - TxC Transmit Clock 17 - RxC Recive Clock 20 4 DTR Data Terminal Ready 22 9 RI Ring Indicator 24 - RTxC Transmit/Recive Clock

En el caso de este proyecto se utiliza el conector de 9 terminales DB-9 cuya configuración se muestra en la figura 4.

Figura 4 Configuración del conector DB-9

3.1.1 Formato de las tramas

Una trama serial está definida como un carácter o bits de datos con bits de sincronización (bits de inicio y paro), y de manera opcional un bit de paridad para detectar errores. La transmisión serial acepta las 30 combinaciones de las siguientes opciones como formatos de trama válidos.

• 1 bit de inicio

• 5, 6, 7, 8 o 9 bits de datos

• 1 bit de paridad par o impar o ninguno

• 1 o 2 bits de paro

Page 12: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 11

Una trama comienza con un bit de inicio seguido del bit menos significativo, y así con los siguientes, hasta un total de nueve de manera sucesiva hasta terminar con el bit más significativo. Si es el caso, el bit de paridad se inserta después de los bits de datos, por último se envían los bits de paro. Cuando se ha terminado de transmitir una trama puede ser directamente seguida de otra, en caso contrario la línea de comunicación cambia a vacio (nivel alto), la figura 5 ilustra el formato de las tramas.

Figura 5 Configuración de las tramas

St Bit de inicio, siempre es un nivel bajo (n) Bits de datos (0 a 8) P Bit de paridad. Puede ser par o impar Sp Bit de paro, siempre es un nivel alto IDLE (Vacio)

No hay transferencia en la línea de comunicación, una línea vacía debe ser un nivel alto

3.2 USART

La USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter) es un sistema de comunicación serial altamente flexible. Sus principales características son:

• Full duplex operation (registros de recepción y transmisión serial independientes).

• Operación síncrona o asíncrona.

• Operación síncrona con reloj maestro o esclavo.

• Generador de velocidad de transmisión de alta resolución.

• Soporta tramas seriales con 5, 6, 7, 8, o 9 bits y uno o dos bits de paro.

• Verificación de generación de paridad par o impar soportado por hardware

Page 13: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 12

• Detección de error en las tramas.

• El filtro de ruido incluye detección de bit de inicio falso y filtro pasa bajas digital.

• Tres interrupciones separadas en TX completa, registro de datos TX vacio, y RX completa.

• Modo de comunicación de multiprocesador.

• Modo de comunicación asíncrona de doble velocidad.

3.2.1 Generación del reloj interno – El generador de velocidad de transmisión

El reloj interno es usado para los modos de operación síncronos y asíncronos maestros.

El registro de velocidad de transmisión de la USART (UBRR) y el contador regresivo conectado a él funciona como un pre escalador o generador de velocidad de transmisión. El contador regresivo, corriendo a la velocidad del reloj del sistema (fOSC), se carga con el valor del UBRR cada vez que el contador ha contado hasta cero o cuando se escribe en el registro UBRRL.

La tabla 2 contiene ecuaciones para calcular la velocidad de transmisión en baudios (en bits por segundo) y para calcular el valor del UBRR para cada modo de operación usando un reloj generado internamente.

Tabla 2 ecuaciones para el generador de velocidad de transmisión

3.2.2 Doble velocidad de operación

La velocidad de transferencia puede ser duplicada activando el bit U2X del registro USCRA, en una sección posterior se dará una explicación de las características de este registro. Poner el bit U2X a uno lógico tiene efecto en la operación asíncrona. Es necesario poner este bit a cero cuando la operación sea síncrona.

Page 14: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 13

Activando este bit se reducirá el divisor de frecuencia de 16 a 8, efectivamente duplicando la velocidad de transferencia para la comunicación asíncrona. Sin embargo el receptor usará en este caso sólo la mitad del número de las muestras (reducido de 16 a 8) tomadas de la trama que esté siendo recibida.

3.2.3 Sobre la inicialización de la USART

La USART tiene que ser inicializada antes de que cualquier comunicación tenga lugar. El proceso de inicialización normalmente consiste en ajustar la velocidad de transmisión, el formato de las tramas y habilitar el transmisor o el receptor dependiendo del uso.

3.2.4 Transmisión de datos

La transmisión de la USART se habilita cuando el bit Transmit Enable (TXEN) en el registro UCSRB está a 1 lógico. Cuando la transmisión está habilitada la operación normal del puerto es ignorada por la USART y recibe la función de transmisión serial. La velocidad de transmisión, modo de operación y formato de las tramas debe ser ajustada una sola vez antes de que cualquier comunicación se lleve a cabo.

Una transmisión se inicia cuando se carga el buffer de transmisión con el dato a enviar . El CPU puede cargar el buffer de transmisión escribiendo a la localidad de la UDR (Usart Data Register). El dato almacenado en el buffer de transmisión será movido a un registro de corrimiento en el momento en que ese registro esté listo para enviar una nueva trama.

El registro de corrimiento puede cargarse si está en estado vacío (no hay transmisión en curso) o inmediatamente después de que el último bit de datos de la trama anterior se ha enviado.

3.2.5 Recepción de datos

La recepción de la USART se habilita cuando el bit Receive Enable (RXEN) en el registro UCSRB está a 1 lógico. Cuando la recepción ha sido habilitada la operación normal del terminal de operación RxD es ignorado por la USART y se le da la función de receptor serial.

La velocidad de transmisión, el modo de operación y el formato de las tramas deben ser ajustados una sola vez antes de que cualquier comunicación se lleve a cabo.

3.2.5.1 Recepción de tramas de 5 a 8 bits de datos

La recepción inicia cuando se detecta un bit de inicio válido. Cada bit que le sigue será muestreado a la velocidad de transmisión indicada y se le hará un corrimiento dentro del registro de corrimiento de la recepción hasta que el primer bit de paro de la trama se haya recibido, un segundo bit de paro será ignorado. Posteriormente el contenido del registro de corrimiento se moverá al buffer de recepción.

Page 15: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 14

3.2.5.2 Bandera de recepción completa

El receptor de la USART tiene una bandera que indica si hay datos que no han sido leídos en el buffer de recepción. Esta bandera esta a 1 lógico cuando existen datos sin leer en el buffer y 0 cuando el buffer está vacío.

3.2.6 Descripción de los registros de datos y control

3.2.6.1 Registro de datos de la USART

Figura 6 Registro de transmisión y recepción UDR

El buffer de datos de transmisión y el buffer de datos de la recepción comparten la misma dirección de entrada y salida.

El buffer de transmisión sólo puede ser escrito cuando la bandera UDRE en el registro UCSRA está en uno. Los datos escritos en el UDR serán ignorados si la bandera UDRE no está en uso. Cuando los datos se escriben en el buffer de transmisión, y la transmisión está habilitada, el transmisor cargará los datos dentro del registro de transmisión. Entonces los datos serán transmitidos de manera serial por el terminal TxD.

3.2.6.2 Registro de control y estado A – USCRA

Figura 7 Registro de control UCSRA

Bit 7 – RXC: Recepción completa

Esta bandera tiene un 1 lógico cuando existe un dato en el buffer de recepción que no ha sido leído y un 0 cuando el buffer está vacío.

Bit 6 – TXC: Transmisión completa

Esta bandera tiene un 1 cuando la trama en el registro de corrimiento ha sido enviada y no hay nuevos datos presentes en el buffer de transmisión (UDR).

Page 16: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 15

Bit 5 – UDRE: Registro de datos de la USART vacío

La bandera UDRE indica si el buffer de transmisión está listo para recibir nuevos datos. Si tiene un 1, el buffer está vacío, y por lo tanto listo para ser cargado.

Bit 4 – FE: Error de trama

Este bit tiene un 1 si el siguiente carácter en el buffer de recepción tiene un error de trama cuando es recibido. Por ejemplo cuando el primer bit de paro del siguiente carácter es 0.

Bit 3 – DOR: Data OverRun

Este bit esta a 1 lógico cuando el buffer de recepción está lleno, es decir, hay un carácter esperando en el registro de corrimiento de la recepción y un nuevo bit de inicio ha sido detectado.

Bit 2 – PE: Error de Paridad

Bit 1 – U2X: Doble velocidad de transmisión

Este bit sólo tiene efecto para la operación asíncrona.

Bit 0 – MPCM: Modo de comunicación multi-processor

3.2.6.3 Registro de control y estado B – USCRB

Figura 8 Registro de control y estado USCRB

Bit 7 – RXCIE: Habilitación de interrupción de RX

Bit 6 – TXCIE: Habilitación de interrupción de TX

Bit 5 – UDRIE: Habilitación de interrupción de registro de datos vacío

Bit 4 – RXEN: Recepción habilitada

Poniendo este bit a 1 habilita la recepción de la USART. La recepción ignora la operación normal del terminal RxD cuando está habilitada.

Bit 3 – TXEN: Transmisión habilitada

Page 17: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 16

Poniendo este bit a 1 habilita la transmisión de la USART. La transmisión ignora el comportamiento normal del terminal TxD cuando ha sido habilitada.

Bit 2 – UCSZ2: Tamaño del carácter

Los bits UCSZ2 combinados con los UCSZ1:0 de la UCSRC fijan el número de bits de datos en la trama para el uso del transmisor y el receptor .

Bit – 1 RXB8: Bit 8 de recepción de datos

Es el noveno bit de los datos recibidos cuando se opera con tramas de 9 bits de datos.

Bit 0 – TXB8: Bit 8 de transmisión de datos

Es el noveno bit de datos cuando se transmiten tramas seriales de 9 bits.

3.2.6.4 Registro de control y estado C – UCSRC

Figura 9 Registro de control y estado C - UCSRC

Bit 7 – URSEL: Selección de registro

Este bit selecciona el acceso entre los registros UCSRC y el UBRRH. Se lee como 1 si se accede a UCSRC y cero en el caso del registro UBRRH.

Bit 6 – UMSEL: Modo de selección de la USART

Este bit elige entre los modos de operación síncronos (0) y asíncronos (1).

Bit 5:4 – UPM 1:0: Modo de paridad

Estos bits se habilitan y ajustan el tipo de generación y verificación de paridad de acuerdo a la tabla 3:

Page 18: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 17

Tabla 3 Modos de paridad USART

UPM1 UPM0 Modo de paridad 0 0 Deshabilitado 0 1 Reservado 1 0 Habilitado. Paridad par 1 1 Habilitado. Paridad impar

Bit 3 – USBS: Selección de bit de paro

Este bit establece el número de bits de paro a insertar por la transmisión. Si el bit USBS está a cero se introduce 1 bit de paro, si está a 1 introducen 2, el receptor ignora estos ajustes.

Bit 2:1 – UCSZ1:0: Tamaño del carácter

Los bits UCSZ1:0 en combinación con el bit UCSZ2 en el registro UCSRB establecen el número de bits de datos (tamaño de carácter) en una trama usada para recibir o transmitir. La tabla 4 muestra las posibles combinaciones.

Tabla 4 Tamaño de carácter

UCSZ2 UCSZ1 UCSZ0 Tamaño de carácter 0 0 0 5 bits 0 0 1 6 bits 0 1 0 7 bits 0 1 1 8 bits 1 0 0 Reservado 1 0 1 Reservado 1 1 0 Reservado 1 1 1 9 bits

Bit 0 – UCPOL: Polaridad del reloj

Este bit es usado solamente en el modo asíncrono. El bit UCPOL ajusta la relación entre el cambio de los datos de salida, la muestra de entrada y el reloj asíncrono (XCK). En la tabla 5 se muestra lo anterior con más detalle.

Tabla 5 Ajustes del bit UCPOL

UCPOL Dato de transmisión cambiado Muestreo del dato recibido 0 Flanco de subida de XCK Flanco de bajada de XCK 1 Flanco de bajada de XCK Flanco de subida de XCK

Page 19: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 18

3.2.6.5 Registros de velocidad de baudios UBRRL y UBRRH

Figura 10 Registros de velocidad de baudios UBRRL y UBRRH

Bit 15 – URSEL: Selección de registro

Este bit selecciona el acceso al registro UBRRH o al registro UCSRC. Se lee 0 cuando se accede al registro UBRRH y 1 cuando se accede a UCSRC.

Bit 14:12 – Bits reservados

Bit 11:0 – UBRR11:0: Registro de velocidad de baudios de la USART

Este es un registro de 12 bits que contiene la velocidad de baudios de la USART. El registro UBRRH contiene los cuatro bits más significativos y el registro UBRRL contiene los ocho menos significativos restantes.

3.2.7 Banderas de transmisión e interrupciones

El transmisor de la USART tiene dos banderas que indican su estado: USART Data Register Empty (UDRE) y Transmit Complete (TXC). Ambas banderas pueden ser usadas para generar interrupciones.

La bandera de registro de datos vacía (UDRE) indica si el buffer de transmisión está listo para recibir nuevos datos. Este bit es puesto en uno cuando el buffer de transmisión está vacío, y a cero cuando el buffer de transmisión contiene datos a ser transmitidos.

La bandera TXC está puesta en uno cuando la trama completa en el registro de transmisión ha enviado todo su contenido y no hay nuevos datos presentes en el buffer de transmisión.

3.3 Comunicación PC – Microcontrolador

Ahora que conocemos los puertos de comunicación de la PC y del microcontrolador podemos ilustrar la manera de conectarlos mediante el siguiente diagrama esquemático.

Page 20: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 19

Figura 11 Diagrama esquemático PC-microcontrolador

En la figura 11 se puede observar el microcontrolador con sus circuitos asociados, un cristal y un regulador 78L05 usado para proporcionar el voltaje de polarización de 5 volts, los capacitores son para filtrar el ruido del tomacorriente; cabe mencionar que se hace uso de dicho regulador como una medida de precaución ya que el micro es bastante sensible a los cambios de voltaje y una sobrecarga podría causar un mal funcionamiento o una avería.

Como ha podido observarse, el puerto serie opera con voltajes de -12 a 12 volts y el microcontrolador opera con voltaje TTL, de ahí la necesidad de usar un integrado conocido comercialmente como MAX232 que es el encargado de realizar las conversiones de voltaje pertinentes para llevar a cabo la comunicación entre ambas partes. La ventaja del MAX232 es que se polariza con 5 volts, por lo tanto no es necesario incluir otro voltaje distinto al que hemos venido utilizando.

Page 21: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 20

3.4 Pruebas de la transmisión y recepción

El firmware es la sección de código que hace funcionar el microcontrolador, es el encargado de dar las instrucciones precisas para la correcta ejecución de algunas de las operaciones que dan sentido a la comunicación que se pretende lograr con este proyecto.

El firmware está escrito en lenguaje ensamblador, un lenguaje de bajo nivel, aunque también pudo haberse escrito en lenguaje C ya que existen compiladores que así lo permiten, para tal efecto se utilizó el software de programación y simulación desarrollado por ATMEL llamado AVRStudio en su versión 4.

Las especificaciones de operación del microcontrolador al momento de realizar las pruebas para la transmisión y la recepción fueron las siguientes:

FOSC = 1MHz

Configuración de las tramas:

• 1 bit de inicio

• 8 bits de datos

• 1 bit de paridad par

• 1 bit de paro

• Velocidad de transmisión = 9600 bps

Para poder hacer uso tanto de la transmisión como de la recepción de los datos se desarrolló el siguiente código donde se inicializan los registros de control que permiten dar formato a las tramas y a la velocidad de transmisión, este código incluye algunas líneas a manera de comentario para hacer más fácil su entendimiento.

;Etapa de configuración de la USART

ldi aux1, (1<<U2X) ;Habilita la doble velocidad de operación

out UCSRA, aux1 ;U2X = 1

ldi aux1, (1<<RXEN)|(1<<TXEN)

out UCSRB, aux1 ;Habilita la transmisión y recepción

ldi aux1, $A6

out UCSRC, aux1 ;Configura la trama, paridad par, un bit de paro, 8 bits datos

Page 22: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 21

ldi aux1, $0C ;Configura la velocidad de transmisión

out UBRRL, aux1

La razón por la que la transmisión y la recepción se inicializan simultáneamente es porque el microcontrolador sólo puede ser configurado para enviar y recibir un solo formato de tramas, en lo único que difieren ambos procesos de inicialización es en sí se habilitan o no los bits RXEN o TXEN según se quiera sólo recibir o sólo transmitir o ambos.

El programa de prueba que se utilizó para saber si la transmisión era correcta consistió en cargar a la memoria RAM del microcontrolador una serie de caracteres ASCII que fueron leídos y transmitidos por la siguiente sub rutina:

principal:

cpi contador, 26 ;El mensaje a transmitir es una serie de 26 caracteres

breq actualiza ;Cuando se han enviado todos se reenvía el mensaje indefinidamente

Transmision:

sbis UCSRA, UDRE

rjmp Transmision

add r26,contador ;Con la variable contador sabemos que dato es el siguiente en ser transmitido

ld dato,x ;se carga el caracter desde la pila al registro dato

inc contador

out UDR, dato

rjmp principal

actualiza:

clr contador

Page 23: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 22

ldi r27,0x00;

ldi r26,0x60;

rjmp Transmision

Las instrucciones en lenguaje ensamblador pueden consultarse en el apéndice.

Como puede leerse del código, el mensaje es una serie de 26 caracteres almacenados en la memoria RAM utilizando como referencia una tabla de caracteres ASCII, el mensaje es la frase “Hola, Transmision exitosa.”.

La sección de código que se muestra a continuación indica la manera en que se deben cargar los datos a la RAM como ejemplo sólo se cargan dos caracteres pero es así como debe hacerse con los demás.

;Inicializacion de la RAM con el mensaje que se quiere enviar

ldi r26,$60 ;Manda el apuntador al inicio de la SRAM

ldi r27,$00;

ldi r16,$48 ;Valor hexadecimal de “H”

st x+,r16 ;Incrementa en 1 el apuntador a la RAM

ldi r16,$6F ;Valor hexadecimal de “o”

st x+,r16

Algo que hay que tener en cuenta es que el inicio de la RAM varía en cada microcontrolador por lo tanto si es que se desea utilizar otro microcontrolador es conveniente revisar su manual técnico.

Siguiendo el diagrama esquemático que se muestra en la figura 11 ubicada en la sección 3.3 se realizó la conexión del microcontrolador al puerto serie de la PC, para tal efecto se acondicionó un cable convencional para permitir conectar el terminal de transmisión de un lado con el terminal de recepción del otro lado y viceversa.

La manera de comprobar que dicha frase llegará correctamente a la PC fue utilizar el programa hyperterminal configurado para recibir el mismo formato de tramas que envía el microcontrolador, hecho lo anterior los caracteres pudieron ser observados en pantalla.

En conjunto la transmisión y la recepción deben seguir la secuencia que se muestra en el diagrama de flujo de la figura 12

Page 24: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 23

Figura 12 Diagrama de flujo transmisión y recepción

De esta manera el programa en lenguaje ensamblador que nos permite transmitir y recibir datos simultáneamente es el que se muestra a continuación:

principal: ;Ciclo infinito que compara el valor de las banderas de transmision y recepcion

sbic UCSRA, RXC ;Verifica si se ha recibido un nuevo dato

rcall Recepcion

sbic UCSRA, UDRE ;Verifica si ya se ha terminado de transmitir un dato

rcall Transmision

rjmp principal

Transmision: ;Carga un nuevo dato para transmitir

cpi contador, 26 ;El mensaje a transmitir es una serie de 26 caracteres

brge actualiza ;Cuando se han enviado todos se reenvia el mensaje indefinidamente

add r26,contador

Page 25: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 24

ld datoT,x

ldi r26,0x60;

inc contador

out UDR, datoT

ret

actualiza:

clr contador

rjmp Transmision

Recepcion: ;Despliega por el puerto C el dato recibido

in datoR, UDR

out portc, datoR

ret

En este caso la PC es quien va a transmitir un dato auxiliándonos otra vez del programa hyperterminal y la forma de saber si los datos estaban siendo recibidos de manera adecuada consistió en sacar por el puerto C del microcontrolador los bits de datos de la trama recibida, pudiendo ser observados usando una barra de leds de este modo se comprobó que el carácter que se enviaba desde el teclado haciendo uso del hyperterminal coincidía con su valor en código ASCII.

Page 26: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 25

4 CONVERSIÓN ANALÓGICA DIGITAL

4.1 El convertidor A/D del ATMega8535

El ATMega8535 posee un convertidor analógico digital (ADC) de 10 bits conectado a un multiplexor analógico que permite la entrada de 8 señales por las terminales del puerto A usando tierra física como referencia.

Además soporta 16 combinaciones de diferencias de voltaje a la entrada. Dos de las entradas diferenciales (ADC1, ADCO y ADC3, ADC2) están equipadas con una ganancia programable de 0 dB (1x), 20 dB (10x), y 46 dB (200x) en el voltaje diferencial de entrada antes de la conversión A/D.

El ADC contiene un circuito sample and hold que asegura que el voltaje de entrada se mantiene a un nivel constante durante la conversión.

El convertidor A/D tiene un terminal de alimentación propio llamado AVCC cuyo valor no debe diferir por más de + 0.3V de VCC

4.1.1 Operación

El ADC convierte un voltaje analógico de entrada en un valor digital de 10 bits. El valor mínimo representa la tierra física y el máximo el voltaje en AVCC. El canal de entrada y la ganancia diferencial se eligen escribiendo en los bits MUX del registro ADMUX, en breve se dará una descripción de este registro.

EL convertidor A/D se habilita poniendo a 1 lógico el bit ADEN en el registro ADCSRA, la selección del canal de entrada así como el voltaje de referencia no tendrán efecto hasta que el bit ADEN este habilitado.

El resultado de la conversión se almacena en los registros de datos del ADC llamados ADCH y ADCL. Por defecto se presentan ajustados a la derecha, pero de manera opcional pueden presentarse ajustados a la izquierda si se habilita el bit ADLAR en el registro ADMUX.

En caso de que el resultado este ajustado a la izquierda y no se requiera una precisión mayor a 8 bits, será suficiente leer el registro ADCH. De otro modo, el registro ADCL se deberá leer primero seguido de ADCH para asegurarse de que los datos leídos pertenecen a la misma conversión.

El ADC tiene su propia interrupción, ésta puede ejecutarse cuando una conversión finaliza.

Page 27: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 26

4.1.2 Iniciando una conversión

Una sola conversión se inicia escribiendo un 1 lógico al bit ADSC. Este bit permanece en un nivel alto mientras haya una conversión en progreso y cambiará a 0 por hardware cuando la conversión haya terminado.

Alternativamente, una conversión puede iniciar automáticamente de varias maneras. El inicio automático se puede habilitar poniendo a 1 lógico el bit ADATE en el registro ADCSRA, la descripción de este registro se muestra más adelante. La fuente del inicio automático se elige ajustando los bits ADTS en el registro SFIOR.

Utilizando la bandera de interrupción del ADC como una fuente de auto inicio, hace que una nueva conversión inicie tan pronto como la transmisión en curso termine. El ADC opera en free running mode, muestreando y actualizando constantemente los registros de datos del ADC. La primera conversión debe iniciarse escribiendo un 1 lógico en el bit ADSC del registro ADCSRA.

4.1.3 Pre escala y tiempos de conversión

Por defecto, la circuitería de aproximación sucesiva requiere a la entrada una frecuencia de reloj de entre 50kHz y 200kHz para obtener la máxima resolución. Si lo que se necesita es una resolución de menos de 10 bits la frecuencia de entrada para el ADC puede ser mayor a 200kHz para obtener una mayor velocidad de muestreo.

El módulo ADC contiene un pre escalador que genera una frecuencia aceptable para el ADC sin importar cuál sea la frecuencia del reloj del CPU mientras esta sea mayor a 100kHz. El pre escalador se ajusta utilizando los bits ADPS del registro ADCSRA. El pre escalador inicia su cuenta en el momento en el que el bit ADEN del registro ADCSRA es activado.

Una conversión normal requiere 13 ciclos de reloj. La primera conversión después de que el ADC ha sido habilitado requiere 25 ciclos de reloj para poder inicializar la circuitería analógica.

4.1.4 Descripción de los registros de datos y control

4.1.4.1 Registro de control y estado ADMUX

La figura 13 muestra el registro de control ADMUX.

Figura 13 Registro de control ADMUX

Bit 7:6 – REFS1:0: Bits de selección de referencia

Page 28: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 27

Estos bits seleccionan el voltaje de referencia para el ADC, como se muestra en la tabla 6. Si estos bits son cambiados durante una conversión, el cambio no tendrá efecto hasta que la conversión haya terminado. Las opciones del voltaje interno de referencia pueden no ser usadas si un voltaje de referencia externo es usado en el terminal AREF.

Tabla 6 Selección de voltajes de referencia para el ADC

REFS1 REFS0 Selección del voltaje de referencia 0 0 AREF, VREF interno apagado 0 1 AVCC con capacitor externo en el terminal AREF 1 0 Reservado 1 1 Voltaje de referencia interno 2.56V con capacitor externo en el terminal

AREF

Bit 5 – ADLAR: Resultado del ADC ajustado a la izquierda

El bit ADLAR afecta la presentación de los resultados de la conversión del ADC en el registro de datos del ADC. Escribir un 1 lógico en el bit ADLAR ajustará los resultados a la izquierda, de otro modo permanecen ajustados a la derecha.

Bits 4:0 Selección de canal analógico

El valor de estos bits selecciona qué combinación de entradas analógicas se conectan al ADC. La tabla 7 muestra los detalles de estas combinaciones.

Tabla 7 Combinaciones de la configuración del canal de entrada del ADC

MUX 4..0 Entrada 00000 ADC0 00001 ADC1 00010 ADC2 00011 ADC3 00100 ADC4 00101 ADC5 00110 ADC6 00111 ADC7

4.1.4.2 Registro de control y estado A del ADC – ADCSRA

La Figura 14 muestra el registro de control y estado ADCSRA

Page 29: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 28

Figura 14 Registro de control y estado ADCSRA

Bit 7 – ADEN: Habilitador del ADC

Poniendo este bit a 1 lógico se habilita el ADC.

Bit 6 – ADSC: Inicio de una conversión A/D

En el modo de una sola conversión, escribir este bit a 1 inicia cada una de las conversiones. En el modo de conversión automático sólo es necesario escribir este bit a 1 una sola vez. La primera conversión realiza la inicialización del ADC.

Bit 5 – ADATE: Habilitador de la ejecución del ADC

Cuando este bit está a 1, la auto ejecución del ADC se habilita. El ADC iniciará su conversión en el flanco de subida de la señal de ejecución elegida, esta señal puede configurarse ajustando los bits ADTS del registro SFIOR.

Bit 4 – ADIF: Bandera de interrupción del ADC

Bit 3 – ADIE: Habilitador de la interrupción del ADC

Bit 2:0 – ADPS2:0 Bits de selección del pre escalador

Estos bits determinan el factor de división entre la frecuencia del cristal y la frecuencia del reloj de entrada del ADC.

Tabla 8 Factores de división del preescalador del ADC

ADPS2 ADPS1 ADPS0 Factor de división 0 0 0 2 0 0 1 2 0 1 0 4 0 1 1 8 1 0 0 16 1 0 1 32 1 1 0 64 1 1 1 128

Page 30: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 29

4.1.4.3 Registro de datos del ADC – ADCL y ADCH

La figura 15 muestra los datos contenidos en los registros de datos cuando el bit ADLAR = 0.

Figura 15 Registros de datos de la UDR cuando ADLAR = 0

La figura 16 muestra los datos contenidos en los registros de datos cuando el bit ADLAR = 1.

Figura 16 Registros de datos de la UDR cuando ADLAR = 1

Cuando una conversión A/D ha finalizado, el resultado puede encontrarse en estos dos registros.

Cuando el registro ADCL ha sido leído, el registro de datos no se actualizará hasta que el registro ADCH se lea también.

4.1.4.4 Registro de funciones especiales SFIOR

En la figura 17 se puede apreciar el registro SFIOR.

Figura 17 Registro de funciones espeiales SFIOR

Bit 7:5 – ADTS2:0: Señal de auto ejecución del ADC

Si el bit ADATE del registro ADCSRA se activa el valor de estos bits selecciona la señal de auto ejecución del ADC.

La tabla 9 muestra las distintas configuraciones.

Page 31: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 30

Tabla 9 Señales de auto ejecución del ADC

Bit 4 – RES: Bit Reservado

Page 32: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 31

4.2 Pruebas de la conversión analógica - digital

La prueba que se llevó a cabo para verificar que la digitalización se estaba realizando adecuadamente consistió en generar una señal que variara en amplitud, la manera más sencilla de lograr esto es utilizar una resistencia variable como divisor de voltaje con un mínimo de 0 y un máximo de 5 volts conectado a la entrada del ADC del microcontrolador .

La siguiente sección de código es el programa que se utilizó para configurar el ADC con el microcontrolador operando a una frecuencia de 1MHz.

.nolist

.include"m8535def.inc"

.list

.cseg

.org $000

rjmp RESET;

.org $00E

rjmp ADC_ISR

.def digital = r17

.def aux = r18

RESET:

ldi r16, LOW(RAMEND)

out SPL, r16

ldi r16, HIGH(RAMEND)

out SPH, r16

Page 33: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 32

;INICIALIZACION ADC

ldi aux, $00

out ddra, aux

ser aux

out ddrc,aux ;Habilita el puerto C como salida

;Muestra los resultados ajustados a la izquierda

ldi aux, (1 << REFS0)|(1 << ADLAR)

out ADMUX, aux

;Habilita el terminal 1 del puerto A como entrada de la señal analógica y habilita el convertidor A/D y la interrupcion de conversion completa

ldi aux, (1 << ADEN)|(1 << ADIE)|(2 << ADPS0)

out ADCSRA, aux

sei

sbi ADCSRA, ADSC ;Inicia la conversión A/D

Principal: ;Ciclo infinito esperando a que la interrupción del ADC se genere

rjmp Principal

ADC_ISR: ;Rutina de atención a interrupción

;conversión A/D completa.

in digital, ADCH

out portc, digital ;Muestra en el puerto C el resultado de la conversión.

Page 34: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 33

sbi ADCSRA, ADSC ;Inicia una nueva conversión.

reti

En el programa la conversión se realiza de manera continua y el resultado de la conversión se muestra en los terminales de puerto C con ayuda de leds, a medida que se variaba el valor de la resistencia la combinación de los leds cambiaba siguiendo el orden de un contador binario de 8 bits es decir, si el voltaje aumentaba la cuenta también lo hacía hasta llegar a un máximo de FFHEX cuando el voltaje era de 5 volts, por el contrario si el voltaje disminuía la cuenta disminuía hasta 00HEX a un nivel de 0 volts, con esto se pudo comprobar que la digitalización funcionaba apropiadamente.

5 IMPLEMENTACIÓN

Hasta el momento todos los códigos en lenguaje ensamblador que se han realizado han sido únicamente para llevar a cabo las pruebas que nos dicen si las funciones de esta etapa digital del interfono por Internet trabajan de manera apropiada. El propósito de esta última fase de implementación es conjuntar estas funciones y hacer que interactúen entre sí de manera adecuada creando así una etapa digital que se encarga de interactuar con la PC y el interfono pudiendo comunicarlos en ambas direcciones.

Como se mencionó en las secciones de transmisión y recepción, y conversión A/D las pruebas realizadas indican que estas funciones cumplen con su propósito, sin embargo ahora lo que se necesita es ajustar sus parámetros de acuerdo a la naturaleza de las señales que se desean digitalizar y transmitir.

Un interfono tradicional posee un micrófono que le permite a la persona que toca la puerta comunicarse con la persona que se encuentra dentro del hogar, los micrófonos funcionan como transductores que transforman las ondas sonoras en una señal eléctrica de amplitud generalmente en el rango de los mili volts y análoga en forma a la onda sonora que la generó.

Por lo tanto para que una señal proveniente de un micrófono pueda cumplir su propósito y tomando en cuenta que sólo queremos digitalizar voz es necesario filtrar las frecuencias que están por encima del ancho de banda de la voz ya que no nos son útiles y después amplificar esa señal en un rango de 0 a 5 volts para que pueda ser digitalizada.

Toda esta etapa analógica es parte de otro proyecto [5] en la que se analiza con más detalle lo anterior y los resultados obtenidos ahí se han considerado para el diseño y desarrollo de ésta que es la etapa digital.

De acuerdo al reporte del proyecto de los circuitos analógicos del interfono por Internet la frecuencia más alta que nos proporciona la circuitería del micrófono es de 1.6KHz por lo tanto aplicando el teorema de Nyquist el muestreo debe ser por lo menos de 3.2 kilo muestras por

Page 35: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 34

segundo, de este modo si cada muestra es de 8 bits la velocidad de muestreo tiene que ser de 25.6 kbps.

El ATMega8535 tiene la capacidad de transmitir datos a distintas velocidades y la velocidad de transmisión más cercana a 25.6 kbps es 28.8 kbps, sin embargo se decidió que la velocidad de muestreo sería de 38.4 kbps para tener un margen un poco más amplio en el muestreo de la señal de voz.

El código que se muestra a continuación es el programa que realiza tanto la conversión analógica-digital como la transmisión y la recepción de datos:

.nolist

.include"m8535def.inc"

.list

.def aux = r18

.def recepcion = r19

.def digital = r20

;--------------------------------------------------------------

;Vectores de interrupcion

.org $000

rjmp RESET

.org $00B

rjmp USART_RXC

.org $00D

rjmp USART_TXC

Page 36: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 35

.org $00E

rjmp ADC_ISR

;--------------------------------------------------------------

RESET:

ldi aux, LOW(RAMEND) ;Inicializa la memoria a la ultima

;direccion de la pila

out SPL, aux

ldi aux, HIGH(RAMEND)

out SPH, aux

;Inicializacion de puertos

ser aux

out ddrc,aux ;Habilita el puerto C como salida

;--------------------------------------------------------------

;Etapa de configuración de la USART

ldi aux, (1<<U2X) ;Habilita la doble velocidad de operación U2X = 1

out UCSRA, aux

ldi aux, (1<<RXCIE)|(1<<TXCIE)|(1<<RXEN)|(1<<TXEN)

out UCSRB, aux ;Habilita la transmisión y recepción

ldi aux, $A6

out UCSRC, aux ;Configura la trama, paridad par, un bit de paro, 8 bits datos

Page 37: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 36

ldi aux, $0C ;Configura la velocidad de transmisión

out UBRRL, aux ;38.4kbps @ 4MHz

;--------------------------------------------------------------

;Etapa de configuracion del ADC

ldi aux, (1 << REFS0)|(1 << ADLAR) ;Muestra los resultados ;ajustados a la izquierda

out ADMUX, aux ;Habilita el terminal 0 del puerto A como ;entrada de la señal analogica

ldi aux, (1 << ADEN)|(1 << ADIE)|(4 << ADPS0)

out ADCSRA, aux ;Habilita el convertidor A/D ;y la interrupcion de conversion completa

sei

;--------------------------------------------------------------

;Programa principal

sbi ADCSRA, ADSC

principal: ;Ciclo infinito

rjmp principal

;--------------------------------------------------------------

USART_RXC:

in recepcion, UDR

out portc, recepcion

reti

Page 38: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 37

;--------------------------------------------------------------

USART_TXC:

sbi ADCSRA, ADSC

reti

;--------------------------------------------------------------

ADC_ISR:

in digital, ADCL

in digital, ADCH

out UDR, digital

reti

Aunque el microcontrolador es capaz de enviar y recibir tramas a una velocidad de 38.4 kbps utilizando una frecuencia de oscilación de entrada de 1 MHz según las especificaciones de la hoja de datos estaría operando prácticamente en sus límites y como consecuencia la transmisión y recepción seria más propensa a errores, es por eso que se tomo la decisión de utilizar un cristal que oscila a una velocidad de 4 MHz, de esta manera ya no existe ningún problema con las velocidades de operación.

Por lo que respecta a la configuración de la USART y el ADC éstas se llevan a cabo de la misma forma que en las secciones anteriores ajustando solamente los parámetros de los registros de control con los correspondientes a un cristal de 4 MHz tal y como puede observarse en el código.

Page 39: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 38

6 CONCLUSIONES

En este proyecto se llevó a cabo el diseño y la implementación de la etapa digital de un proyecto más grande al que se le ha dado el nombre de “Interfono por Internet”.

Esta etapa está compuesta de tres partes, la recepción de datos de forma serial desde una PC, la digitalización de una señal analógica proveniente de una fuente de voltaje variable y el envío del resultado de la conversión analógica-digital de manera serial hacia una PC.

Para poder realizar estas funciones de la etapa digital se hizo uso del microcontrolador ATMega8535 un microcontrolador de 8 bits. En su mayoría el diseño consistió en desarrollar varios programas escritos en lenguaje ensamblador para que el microcontrolador llevara a cabo dichas tareas.

Primero se hicieron programas que realizaran las funciones por separado para verificar que todas las funciones se ejecutaran apropiadamente y posteriormente se hizo el diseño de un programa que reuniera esas tres funciones y que se ejecutaran de manera simultánea ya que es así como se requiere que opere la etapa digital del Interfono por Internet.

Las pruebas fueron realizadas conectando el microcontrolador al puerto serie de una PC y la interacción se logró utilizando el programa hiperterminal.

Por separado las tres funciones cumplieron con su objetivo y ya en conjunto en el monitor de la PC se pudieron observar los resultados de una conversión A/D continua que estaban siendo transmitidos por el microcontrolador y simultáneamente el microcontrolador mostraba en una barra de leds los datos que el programa hiperterminal enviaba al microcontrolador logrando así la comunicación bidireccional que se demanda para este tipo de aplicación.

Con esto último podemos decir que los resultados obtenidos fueron satisfactorios y que la etapa digital ha quedado concluida.

Sin embargo para que el proyecto de Interfono por Internet funcione en su totalidad aún se requiere acoplar sus circuitos de la etapa digital con los circuitos analógicos que son parte de otro sub-proyecto [5] y realizar algunas pruebas para confirmar que juntos realizan el trabajo para el cual han sido diseñados.

Además aún se requiere del diseño e implementación del software que comunique la PC local con un equipo remoto utilizando el Internet lo que finalmente marcaría la completa realización de esta idea que tiene por objetivo poder monitorear a distancia la residencia de una persona común.

Page 40: Interfono por Internet - 148.206.53.84148.206.53.84/tesiuami/UAMI16027.pdf · Informe final de Proyecto Terminal, Interfono por Internet ... XTAL1 Entrada al amplificador del oscilador

Informe final de Proyecto Terminal, Interfono por Internet

Reyes Torres, Efrén Página 39

BIBLIOGRAFÍA

1. Manual del microcontrolador ATmega8535. 2. Manual de instrucciones AVR 3. Hoja de datos del circuito integrado MAX232 4. Informe final del Proyecto Terminal “Interfono por Internet: su diseño y protocolo de

pruebas”, López Acuña Osvaldo, Universidad Autónoma Metropolitana Unidad Iztapalapa (2007). Asesor: Dr . Miguel López Guerrero.

5. Interfono por Internet (Diseño, construcción y pruebas de los circuitos analógicos de la interfaz), del Ángel Osorno Jaime, Universidad Autónoma Metropolitana Unidad Iztapalapa (2008). Asesor: Dr . Miguel López Guerrero.