Proyecto Instrumento de Medida, parte 2. (Control del hardware. Recursos avanzados)

                                    (Este enunciado será explicado en la primera clase que corresponda a cada grupo)


 

Objetivos

          Programas residentes
          Programación de puertos de E/S
          Control de puertos definidos en el PC (ratón, impresora, RTC, etc)
          Control de periféricos hardware externos al PC

Funcionamiento

A partir del código desarrollado para la práctica 1 se pide desarrollar un software en ensamblador que permita la captura de datos a través del puerto paralelo del PC y lo presente en pantalla de igual forma que en la práctica anterior.

Para ello el alumno deberá modificar la rutina de atención a la interrupción 61h, cuyo uso se describió en la práctica anterior, de forma que dicha rutina capture el dato nuevo del puerto paralelo, siempre que esté disponible, en lugar de "inventárselo". El resto del código desarrollado quedará prácticamente inalterado.

Descripción del circuito externo para la captura de datos.

El esquema eléctrico del conversor analógico-digital propuesto, que el alumno debe montar, se muestra a continuación.
 

Figura 1. Esquema del sistema de adquisición de datos.

Dicho circuito se alimenta a 5v (se puede utilizar una pila de "petaca" aunque entrega 4,5v) y convierte señales analógicas en un rango entre 0 y 5v. Como conversor AD se utiliza el circuito integrado ADC0804 de National Semiconductor. (Datasheet del ADC0804 en formato pdf). La señal analógica a convertir proviene del potenciómetro (resistencia variable) R2, variando este se modifica la señal entre 0 y 5 voltios. Dicha señal se introduce en el conversor ADC0804. Una vez convertida, el valor digital es presentado en las líneas D0 a D7 y deberá ser leído a través del puerto paralelo según el protocolo explicado a continuación.
Se recomienda que el circuito sea montado soldándolo en una placa de pruebas, utilizar un zócalo para el conversor. El conector DB25 se unirá al circuito a través de un cable de 13 hilos, al menos.

Lista de componentes:

R1: resistencia de 10K 1/4 W
R2: potenciometro de 10K, ajuste vertical
R3 a R5: resistencias de 4.7 K 1/4 W
C1: condensador de 150 pF
U1: conversor AD modelo ADC0804
Zócalo para el integrado anterior
Conector DB25 macho
Carcasa para el conector DB25 (opcional)
Cable de 13 hilos, mínimo, 1 metro
Para el correcto funcionamiento de la conversión se debe respetar un protocolo entre el PC y el conversor, explicado en detalle en las hojas de datos del conversor. Básicamente es el siguiente:
El PC envía una petición de comienzo de conversión al ADC (figura 2). Para ello activar la señal #CS (poner a nivel bajo) y dentro del periodo de activación activar la señal #WR durante un mínimo de 100 ns. El conversor activará la línea #INTR (el símbolo # indica que la señal es activa a nivel bajo) para indicar que ha terminado la conversión (figura 2). A partir de ese momento el PC puede leer el dato (figura 3).
Figura 2. Diagrama de tiempos para el comienzo de la conversión

 
 
 
Figura 3. Diagrama de tiempos para la lectura del dato

El proceso de lectura está representado en la figura 3. Se selecciona el conversor a través de la línea #CS y se envía un pulso negativo por la línea #RD, tras unos 200 ns (tACC: tiempo de acceso) el dato ya se puede leer y se desactiva la señal de lectura.

Estos ciclos se repetirán tantas veces como datos se quieran leer.

Para el desarrollo de esta práctica es necesario conocer el funcionamiento y manejo del puerto paralelo, por lo que se incluyen unas notas con una breve descripción: notas del puerto paralelo.

NOTA IMPORTANTE: Para el correcto funcionamiento de la práctica el puerto de datos del puerto paralelo deberá estar configurado en modo bidireccional, es decir, en el set-up del PC configurar el puerto en modo PS/2 (los otros modos posibles son SPP o AT, EPP y ECP). Para controlar la dirección que llevan los datos se utiliza el bit de peso 5 (el 6º bit empezando por el menos significativo) del puerto de control. Si este bit está a cero el puerto de datos es de salida y si está a uno el puerto de datos será de entrada. En el caso de esta práctica, este bit se puede poner a uno inicialmente. Hay que tener cierta precaución, pues la escritura en el puerto de datos modifica este bit a cero.

La nueva rutina de atención a la interrupción 61H deberá hacer lo siguiente:

Mejora opcional: sustituir la espera activa anterior por una interrupción. El pin 10 del puerto paralelo puede tener asociada la interrupción 15 (IRQ7), activa en flanco de bajada. Detectar el fin de la conversión mediante la atención de dicha interrupción dentro de la INT 61H.

Cada pareja deberá realizar una de las opciones que se citan a continuación para superar esta práctica:

Debido a que el registro de estado del puerto paralelo es sólo de lectura el simulador no podrá escribir en él, como sería necesario. Por ello, para el diseño software se deberá colocar un conector DB25 macho al puerto paralelo con los pines 10 y 16 unidos, de forma que la indicación de dato convertido se simulará escribiendo el bit correspondiente en el puerto de control, asociado al pin 16. Plazo de entrega : La presentación y evaluación de esta práctica será la semana del 11 de diciembre, según el grupo. El nombre del fichero o ficheros a entregar será de la forma pareja_p2.asm, por ejemplo lt28_p2.asm. Si hay más de un fichero, nombrarlo con números sucesivos y añadir un .bat que los ensamble y linke.(lt28_p21.asm, lt28_p22.asm,... lt28_p2.bat)


PRÁCTICA ESPECIAL: Decodificador de señales de radio de radiomandos.

Los radiomandos para la apertura de garajes o activación remota de algún dispositivo transmiten una secuencia de datos codificados, generalmente en función de unos interruptores internos. Esta transmisión se hace en la banda de los 433 MHz y con una potencia baja.

Mediante el uso de unos pequeños módulos de radio, completamente ajustados y operativos, se propone la realización de una práctica especial que consiste en la lectura del codigo emitido por el radiomando y su posterior decodificación, para lo que se utilizará un receptor de radio conectado al puerto paralelo. No es imprescindible tener conocimientos de electrónica ni de radio.

En el laboratorio también se dispone de emisores de radio, para una posible ampliación de la práctica. Se admiten sugerencias de desarrollo (comunicación entre periféricos vía radio, activación de cargas lejanas, etc).

Los alumnos interesados en esta práctica deberán ponerse en contacto lo más pronto posible con el profesor de prácticas Guillermo Glez. de Rivera, despacho B-432.