interfono por internet - 148.206.53.84148.206.53.84/tesiuami/uami16027.pdf · informe final de...
TRANSCRIPT
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
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
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
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
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.
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
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
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.
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.
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:
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
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
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.
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.
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).
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
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:
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
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.
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.
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
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
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
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
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.
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.
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
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
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
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.
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
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
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.
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
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
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
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
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.
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.
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.