UNIVERSIDAD AUTONOMA METROPOLITANA
UNIDAD IZTAPALAPA
DIVISION: CIENCIAS BASCAS E INGENIERIA
PROYECTO TERMINAL I I
DESARROLLO DE UN SISTEMA
PROCESADOR DIGITAL DE SEÑALES
ALUMNO MANUEL D I M FLORES
MATRICULA 87330589
MEXICO D F., JULIO DE 1993.
CONTENIDO
INTRODUCCION
CAPITULO 1
TEORIA DE SEÑALES
1.1 CLASlFlCAClON DE SEÑALES
1.2 SEÑALES DE ENERGIA Y SEÑALES DE POTENCIA.
1.3 SEÑALES PERIODICAS Y NO-PERIODICAS.
1.4 SEÑALES MULTICANAL Y MULTIDIMENSIONALES
1.5 SEÑALES CONTINUAS EN TIEMPO Y SEÑALES DISCRETAS
EN TIEMPO
I .6 SEÑALES ANALOGICAS Y SEÑALES DIGITALES
CAPITULO 2
INTRODUCCION AL ANALISIS DE FOURIER.
2.1 SERIES DE FOURIER.
2.2 LA SERIE DE FOURIER EN SU FORMA EXPONENCIAL
2.3 LA SERIE DE FOURIER EN SU FORMA EXPONENCIAL.
2.4 TRANSFORMADA DISCRETA DE FOURIER.
2.5 TRANSFORMADA DISCRETA DE FOUIRER INVERSA.
2.6 TRANSFORMADA RAPIDA DE FOURIER
2.7 TEOREMA DE MUESTRE0
2.8 RECUPERACION DE UNA SEÑAL A PARTIR DE SUS
MUESTRAS
CAPITULO 3
TECNICAS DE CONVERSION DE SEÑALES
3.1 CONVERTIDOR ANALOGICO-DIGITAL
3.1.1 CONVERTIDOR TIPO CONTADOR
3.1.2 CONVERTIDOR DE APROXIMACIONES SUCESIVAS
3.2 CONVERTIDOR DIGITAL-ANALOGICO.
3.2.1 CONVERTIDOR D/A TIPO ESCALERA
CAPITULO 4
LA MCU MC68HC11 EVBU
4.1 DESCRIPCION GENERAL DE SEÑALES
4.2 MODO DE OPERACION
4.3 COMUNICACION SERIE
4.4 CONVERTIDOR AD
4.5 CONJUNTO DE INSTRUCCIONES Y SISTEMA DE
DIRECCIONAMIENTO
CAPITULO 5
DESCRIPCION DEL SOFTWARE DESARROLLADO
5.1 EL PROGRAMA CONVER
5.2 EL PROGRAMA ALBERGBG
5.3 EL PROGRAMA FFT
5.4 EL PROGRAMA
EPITOME El objetivo de este trabajo es aplicar los conceptos del Procesamiento Digital de Señales
a través de un sistema básico basado en un Microcontrolador y una computadora de propósito
general. El microcontrolador nos permitirá convertir una señal analógica en digital, almacenando
temporalmente las muestras tomadas y transmitirlas a través del puerto sene a una PC; en esta
última se procesa la información y nosotros podremos observar gráficamente las muestras de la
señal en el tiempo y su respectivo espectro en frecuencia.
INTRODUCCION ~
En la actualidad una de las herramientas con que cuentan los ingenieros
que quieran trabajar con el procesamiento de señales es la teoría
matemaica de Fourier, ya que ésta les permite interpretar las características
sobresalientes de las señales y de los sistemas de comunicacidn de manera
rápida y eficiente.
El uso de técnicas digitales para diferentes aplicaciones del procesamiento
de señales se ha visto enormemente incrementado en los últimos años y es
de esperarse que siga aumentando en los años de un futuro inmediato.
Los sistemas que anteriormente consistían solamente de sistemas
analógicos, tienen ahora incorporados circuitos digitales para hacer muchas
de las funciones requeridas.
En años recientes se ha incrementado en gran medida el uso de
cornputadoras digitales y de circuitería de propósito especial, corno los DSP
(Digital Signal Processing) para realizar diversas funciones.
La evolución de los circuitos integrados ha permitido el diseño de
microcomponentes que realizan funciones a menor costo y tamaño que los
sistemas inicialmente analógicos. Una herramienta que proponemos para
iniciar el procesamiento digital de una señal es el microcontrolador.
ELEMENTOS TEORICOS
El sistema mediante el cual se puede procesar una señal analógica por un dispositivo digital se ilustra en la figura anterior. El procesamiento se realiza
de la siguiente manera:
Inicia con un filtrado que permite limitar el ancho de banda de la
señal.
Posteriormente la señal es leída a intervalos de T segundos por
un muestreador. Esas muestras son cuantizadas, la cuantización es
el proceso de representar una variable por un conjunto de valores
discretos.
Después la señal es procesada por un tipo de unidad apropiada
para la aplicación requerida, esta unidad puede ser una
computadora de propósito general o una unidad especialmente
una combinación de circuitos digitales capaz de realizar
operaciones aritméticas como suma, resta, multiplicación, etc. ,
operaciones lógicas y capacidad de almacenamiento.
0 A la salida de este procesador la señal digital es convertida
nuevamente en analógica a través de un convertidor D/A. En este
paso los números binarios son convertidos sucesivamente en
pulsos continuos en tiempo.
Una pregunta fundamental es que si no se pierde información al realizar el
proceso de muestreo y cuantización. Esto es determinado por el ancho de
banda de la señal y la velocidad de muestreo. Teóricamente a través del
Teorema de Muestre0 se puede demostrar que es necesario que la
velocidad de muestreo sea al menos dos veces el valor de la frecuencia
máxima que limita a la señal a través del filtro de entrada (pasa-bajas).
Con respecto a la cuantización tenemos que existe un error de aproximación
llamado Ruido de cuantización. Este ruido puede ser tan pequeño como uno
lo desee haciendo que el número de bits que defina a la muestra sea muy
grande, es claro que existe un número máximo práctico en el número de bits.
Dos herramientas importantes en el procesamiento digital de señales son los
Filtros Digitales y la Transformada Discreta de Fourier.
El diseño de filtros analógicos es realizado a través de estructuras de
inductores, capacitores y resistores, mientras que en los filtros digitales los
elementos que se emplean son sumadores, multiplicadores por constantes y
retardos como se observa en la figura.
La Transformada Discreta de Fourier está basada en la técnica de análisis
espectral que emplea transformaciones y series de Fourier, esto último tiene
una importante área de aplicación en el procesamiento de señales continuas
en tiempo. En 1965 Cooley & Tukey desarrollaron algoritmos para realizar
más rápidamente el cálculo de la aproximación de espectros, abriendo un
camino para nuevas y variadas aplicaciones para análisis espectral.
Existen muchas disciplinas que utilizan el análisis espectral y que de una u
otra forma con el FFT (siglas en inglés de transformada rápida de Fourier de
Fast Fourier Trasnsform) han abierto nuevos potenciales de aplicación. A
través de esto se realiza análisis de señales de comunicación, solución de
problemas de calor y electricidad, análisis estadístico, análisis de ondas
oceanográficas, espectroscopia y vibraciones entre otros. Hay procesadores
especiales disponibles de la FFT que permiten el procesamiento en tiempo-
real en muchas aplicaciones.
Además existen muchas librerías disponibles en programas y algoritmos de
la FFT para microcomputadoras.
TEORIA DE SEÑALES
1.1 CLASlFlCAClON DE SEÑALES
Los métodos que vamos a utilizar en el procesamiento de una señal o en el
análisis de la respuesta de un sistema a una señal dependen fuertemente de
los atributos característicos de la señal especifica. Existen técnicas de
procesamiento para cada conjunto particular de señales .
En consecuencia, al iniciar una investigación relacionada con el
Procesamiento Digital de Señales, es conveniente hacer una clasificación de
las señales y apuntar a qué tipo de señales se va a enfocar nuestra
investigación. Así pues, tenemos que las señales de acuerdo a sus
características se pueden clasificar como:
l . -Señales de Energía y Señales de Potencia.
2. - Señales Periódicas y señales No-Periódicas.
3. - Señales Multicanal y Señales Multidimensionales.
4. - Señales Continuas en Tiempo y Señales Discretas en Tiempo.
5. - Señales Aleatorias y Señales Deterministicas.
En los siguientes apartados nos dedicamos a explicar cada una de estas
clasificaciones.
1 .I .I SEÑALES DE ENERGIA Y SEÑALES DE POTENCIA.
Una señal de energía es una señal en forma de pulso que normalmente
existe durante un intervalo finito de tiempo, o en el caso de que se presente
por un lapso infinito tiene a menos, la mayor parte de su energía
concentrada en un intervalo finito de tiempo.
Para los sistemas eléctricos, una señal es un voltaje o una corriente. La
potencia instantánea disipada por un voltaje e(t) en una resistencia R es :
p = l e ( t ) l 2 / R 1.1.1
y por una corriente i (t) es :
p = I i (t) 12 * R 1.1.2
En cada caso, la potencia instantánea es proporcional a la magnitud de la
señal al cuadrado. Para una resistencia de 1 .O ohm, estas ecuaciones toman
la misma forma, por lo que es usual, en el análisis de señales, referirse a la
potencia instantánea asociada con una señal dada f(t) como:
p = l f ( t ) l 2 watts I .I .3
Aunque la ecuación 1 .I .3 parezca dimensionalmente incorrecta, la
convención implica la multiplicación o división por una resistencia adecuada.
De acuerdo con esta convención, la energía disipada por la señal durante un
intervalo de tiempo (tl ,U) es :
t2
E = I f(t) I dt Joules 1.1.1.4
t l
Se define como una señal de energía aquella para la cual la ecuación 1.1 .'I .4
es finita, aún cuando el intervalo de tiempo sea finito, esto .es, cuando :
O 0
If(t) 12dt Joules 1.1.1.5
t l
Si el intervalo de la derecha de la ecuación se mantiene finito pero no cero, la
señal f(t) tiene potencia media finita y se llama señal de potencia.
1 .I .2 SEÑALES PERIODICAS Y NO-PERIODICAS.
Una señal periódica es la que se repite exactamente a sí misma después de
un lapso fijo. Por lo tanto la señal f(t) es periódica si existe un número T tal
que :
f (t + T ) = f (t) para cualquier t 1 .I .2.1
Donde T es un número positivo al que se,le denomina periodo de la señal y
que define la duración de un ciclo completo de f(t). Una señal periódica es
una señal de potencia si su energía por ciclo es finita, y en tal caso, la
potencia media sólo necesita calcularse en un ciclo completo.
Cualquier señal para la que no pueda encontrase un valor de T para que
pueda cumplirse con la ecuación 1 .I .2.1 , se dice que es no-periódica o
aperiódica.
1 .I .3 SEÑALES MULTICANAL Y MULTIDIMENSIONALES
Una señal está descrita por una función de una o más variables
independientes. Los valores de la función puede ser una cantidad escalar de
valor real, una cantidad de valor complejo o quizás un vector. Por ejemplo la
señal :
SI (t) = A sen 37t 1.1.4.1
es una señal de valor real. Sin embargo, la señal :
s2(t) = A exp (j37t) = A cos (37t) + jA sen (3qt) 1 .I .4.2
tiene un valor complejo.
En algunas aplicaciones las señales son generadas por múltiples fuentes o
múltiples sensores. Tales señales, se pueden representar en forma vectorial.
Por ejemplo, considerando un dispositivo como el M68HC1 IEVBU que
cuenta con un convertidor AnalógicolDigital de cuatro canales podemos
considerar que el contenido de todos los canales en un memento dado puede
ser representado mediante un vector como sigue:
Donde el vector de señales puede ser definido como una señal Multicanal.
1 .I .3 Señales aleatorias y Deterministicas.
Una señal aleatoria es aquella en la que existe un cierto grado de
incertidumbre antes de que se presente, es decir, los valores futuros de la
señal pueden no ser predecibles aún después de la observación de valores
anteriores.
Para el caso de las señales deterministicas son predecibles en base a la
observación de valores anteriores. Por lo que podemos representarlas
mediante modelos matemáticos.
1 .I .4 Señales multicanal y multidimensionales
Una señal está descrita por una función de una o más variables
independientes. Los valores de la función puede ser una cantidad escalar de
valor real, una cantidad de valor complejo o quizás un vector. Por ejemplo la
señal :
SI (t) = A sen 31t 1.1.4.1
es una señal de valor real. Sin embargo, la señal :
s2(t) = A exp (j3fit) = A cos (31t) f jA sen (37t) 1.1.4.2
tiene un valor complejo.
En algunas aplicaciones las señales son generadas por múltiples fuentes o
múltiples sensores. Tales señales, se pueden representar en forma vectorial.
Por ejemplo, considerando un dispositivo como el M68HC1 IEVBU que
cuenta con un convertidor Analógico/Digital de cuatro canales podemos
considerar que el contenido de todos los canales en un memento dado puede
ser representado mediante un vector como sigue:
Donde el vector de señales puede ser definido como una señal multicanal.
1.1.5 SEÑALES CONTINUAS EN TIEMPO Y SEÑALES DISCRETAS EN
TIEMPO
Las señales se pueden clasificar en cuatro diferentes categorías
dependiendo de las características de la variable independiente (tiempo) y
los valores que pueda tomar la variable dependiente.
Las señales continuas en el tiempo o señales analógicas están definidas en
cada valor de tiempo y toman valores en el intervalo continuo (a,b) donde a
puede ser -Oo y b puede ser +O0 . Matemáticamente, estas señales se pueden
describir por funciones de una variable continua. Las formas de onda de una
señal de voz y las señales sinuosidades son ejemplos de señales
analógicas.
Las señales discretas en el tiempo están definidas solamente para valores
muy específicos en el eje de la variable independiente (tiempo). Estos
instantes de tiempo pueden o no ser equidistantes aunque en la práctica se
acostumbra tenerlos igualmente espaciados por conveniencias matemáticas
y de cálculo. La señal X(tn) = exp (-1 tn I ) , n = * I , &2,* 3..., nos da un ejemplo
de señal discreta en el tiempo. Si utilizamos el índice n de los instqntes
discretos en el tiempo como la variable independiente, el valor de la setíel se
convierte en una función de una variable entera. Entonces, una señal discreta
en el tiempo se pwde representar matemáticamente por una secuencia de
números reales o complejos.
1.2 INTRODUCCION AL ANALISIS DE FOURIER.
El análisis en frecuencia de una señal comprende la visualización de la
misma a través de sus componentes en frecuencia, estos componentes son
señales senoidales de diferentes magnitudes. La recombinacion de los
componentes senoidales para la reconstrucción de la señal original es
básicamente un problema de síntesis de Fourier. El espectro de una señal
nos proporciona una "identificación" de ella que ninguna otra señal tendrá.
La principal motivación para el desarrollo de herramientas de análisis en
frecuencia lo es la obtención de representaciones matemáticas y gráficas de
las componentes de frecuencia que se encuentran en una señal dada. El término espectro es usado cuando nos referimos al conjunto de componentes
en frecuencia de una señal.
1.2.1 SERIES DE FOURIER.
Una función periódica v(t) con un periodo fundamental To puede ser
representada como una suma infinita de ondas sinuosidades. Esta sumatoria
llamada serie de Fourier puede ser escrita en vanas formas. Una de estas
formas es la siguiente:
v(t) = Ao + C Am cos 27ntrro + C Bn sen 27ntlTo 1.2.1 .I
La constante Ao es el valor promedio de v(t) y esta dada por:
Ao = 1/To C v(t) dt 1.2.1.2
mientras que los coeficientes An y Bn están dados por:
An = 2/ro C v(t) * cos 2qnt / To dt 1.2.1.3
Bn = 2/To C v(t) * sen 27nt / To dt I .2.1.4
La Sene de Fourier de una función periódica es vista corno una surnatoria de
armónicos de una frecuencia fundamental fo = ITTO.
1.2.2 LA SERIE DE FOURIER EN SU FORMA EXPONENCIAL
La forma exponencial de la Sene de Fourier encuentra extensa aplicación en
la teoría de comunicación. Esta forma está dada por :
v(t) = C Vn * exp (i 2 7 n n o ) 1.2.2.1
donde Vn está dada por:
Vn = 1Ko C v(t) exp ( -j27 n n o ) dt 1.2.2.2
Los coeficientes Vn tienen la propiedad de que Vn y V-n son complejos
conjugados, esto es Vn = V*-n . Los Vn's son las amplitudes espectrales de
las componentes espectrales Vnexp (i2Tnfot).
1.2.3 LA SERIE DE FOURIER EN SU FORMA EXPONENCIAL.
La forma exponencial de la Serie de Fourier tiene una extensa aplicación en
la teoría de comunicaciones. Esta forma esta dada por:
v(t) = C Vnexp(jantrro) 1.2.3.1
donde Vn esta dado por:
Vn = 1/To C v(t) exp ( -j27nVTo) dt
los coeficientes Vn tienen la propiedad de que Vn y V-n son complejos
conjugados, es decir, Vn = W n .
Los Vn' son las amplitudes espectrales de los componentes espectrales
Vnexp(janfot).
1.2.4 TRANSFORMADA DISCRETA DE FOURIER.
La Transformada Discreta de Fourier DFT de sus siglas en ingles (Discret
Fourier Transform) es ampliamente usada en el procesamiento de señales
para el análisis de las señales discretas en tiempo. La evaluación mediante
algoritmos de la DFT, aunque es posible mediante procesadores digitales,
requiere multiplicaciones complejas del orden del cuadrado del número de
muestras procesadas. Por ejemplo una DFT de 1000 muestras podría
requerir un millón de multiplicaciones complejas para obtener mil números
complejos de salida.
La Transformada Discreta de Fourier de una señal discreta en tiempo x(n)
esta definida como:
X(k) = 1/N C x(n) WNnk k = 0,l ,2...,N-l 1.2.4.1
donde WNnk = exp (-jZqnk/N)
constituye la base de las funciones complejas básicas o factores principales
de la DFT. Los factores principales son periódicos y definen puntos en el
circulo unitario del plano complejo. Los factores principales se encuentran
igualmente espaciados a lo largo del circulo y con incrementos de frecuencia
de F/n, donde F es la relación de la señal de entrada. Por lo tanto, el número
de nuestras que definen el espectro de X (k), están dadas en el eje de
frecuencias por:
fk = k F/N , k = 0,I ,Z..,N-l 1.2.4.2
La resolución de frecuencia de la DFT es igual al incremento de frecuencia
F/N. La respuesta en frecuencia de la salida de cualquier DFT se determina
1.2.5 TRANSFORMADA DISCRETA DE FOUIRER INVERSA.
Dados los valores en frecuencia X(k), la Transformada Discreta de Fourier
Inversa (IDFT) nos da una secuencia en tiempo como sigue:
x(n) = C X(k) WN-nk 1.2.5.1
El desarrollo de esta relación es fácilmente obtenido sustituyendo la ecuación
1.2.4.1 en la 1.2.5.1 y evaluando la expresión :
La forma de la ecuación para la IDFT es idéntica a la DFT con la excepción
del factor nonnalizante I /N y el signo de la exponente de los factores
principales. Esta es una importante observación que nos proporciona un
método para obtener la IDFT sin cambios en el algoritmo de la DFT. LA
ecuación 1.2.4.1 es llamada la transformada discreta de Fourier o
Transformada de Análisis y la ecuación 1.2.5.1 es referida como la
Transformada Discreta de Fourier Inversa o transformada de Síntesis. Es de
interés notar que la DFT es igual a la transformada Z de una frecuencia, x(n),
evaluada en entradas igualmente espaciadas del círculo unitario en el plano
Z.
1.2.6 TRANSFORMADA RAPIDA DE FOURIER
La transformada Rápida de Fourier (FFT de sus siglas en ingles Fast
Fouriere Transform) es un algoritmo muy eficiente para obtener la
transformada discreta de Fourier de una secuencia. Esta aprovecha el hecho
de que muchas operaciones son repetidas al realizar una DFT, como
consecuencia de su naturaleza periódica, en base a la ecuación 1.2.4.1 sea
Wnk = exp (-j 2lTnk/N) 1.2.6.1
podemos reescribir la ecuación de la siguiente forma :
X(k) = C x(n) Wnk 1.2.6.2
asumiendo que W(N+qN)(k+rN)=Wnk
para toda q. Posteriormente dividimos la DFT en dos partes:
X(k) = C x(2n) W2nkN + C x(2n+l) W(2n+l)kN 1.2.6.3
donde el subíndice n en el factor principal representa la longitud de la
secuencia. Si representamos los elementos pares de la secuencia x(n) por el
xev y los elementos impares como xod, podemos reescribir la ecuación de la
siguiente forma:
X(k) = C Xev (n) WnkN12 + Wnk C Xod (n) WnkN/2 1.2.6.4
Ahora tenemos ds expresiones de la DFT, así que escribiremos:
X(k) = Xev (k) + WkN/2 Xod(k) 1.2.6.5
Debemos de notar que solamente las DFTs de N sobre 2 puntos necesitan
ser calculados para obtener el valor de X(k). Debido a que el indice k debe
estar en N-I , la propiedad periódica de las DFTs pares e impares puede ser
usada. En otras palabras :
Xev (k) = Xev (k-N/2) para N/2 e= k <= N-I 1.2.6.6
El proceso de dividir el resultado de la DFT en pares e impares puede ser
repetido hasta que uno cuenta con solo dos puntos de DFT a evaluar.
A (k) = a(0) + a(1) exp (-2jqW2) para toda K
= a(0) + a(1) para k par
= a(0) - a(?) para k impar 1.2.6.7
Así, para dos puntos de la DFT no se requiere multiplicación, solamente
sumas y restas. La evaluación de la DFT completa aún requiere
multiplicación de las DFTs individuales por factores apropiados de W cuyo
rango es de WN/2-1 .En la siguiente figura se muestra el diagrama de flujo
de una FFT de 16 puntos.
Las aplicaciones del análisis espectral generalmente requieren DFTs en
tiempo real. La obtención de la DFT para N muestras de entrada requiere N2
multiplicaciones complejas y N2-N sumas complejas para N puntos de
salida. Esto asume que todos los coeficientes de los factores principales
requieren multiplicaciones complejas, incluso aquellos que tienen partes
reales e imaginarias iguales a 1 o a O. En adición a sumas y restas debemos
de proveer capacidad de almacenamiento para los datos. También los
factores principales deben de ser ya sea procesados o almacenados para su
uso en la computación.
La FFT es un rápido algoritmo para la implementación eficiente de la DFT
donde el número de muestras en tiempo de la señal de salida N son
transformados en N puntos de frecuencia. Los requerimientos de la FFT son
expresados de la siguiente manera :
O multiplicaciones por segundo (FFT) = F/2 log2 N
O sumas por segundo (FFT) = F log2 N
1.2.7 TEOREMA DE MUESTRE0
El teorema de muestreo establece los siguiente: Si una señal está limitada en
banda hasta un valor de B Hz, (es decir, una señal cuya transformada de
Fourier es igual a cero para toda Iwl > 27B ) queda determinada
unívocamente por sus valores a intervalos uniformes con separación menor
que 1/2B segundos.
Si tenemos una señal analógica y sabemos el valor máximo de sus
componentes espectrales en frecuencia, es decir, que la tenemos limitada en
banda podemos reproducirla tomando muestras a una velocidad mayor que
el doble de su máxima componente espectral, con esto obtenemos una señal
que es discreta en tiempo pero que no es una señal digital por que la variable
dependiente puede estar tomando cualquier valor.
Para demostrar el Teorema de muestreo, se considera una señal g(t) limitada
en banda a B. La multiplicación de g(t) por un tren de impulsos unitario
produce la señal muestreada gs(t):
gs (t) = g(t) * C d(t-nTs) 1.2.7.1
Utilizando la sene de Fourier para el tren de impulsos, se tiene :
gs(t) = Ins g(t) C exp (jnwst)
= I n s C g(t) exp (jnwst) 1.2.7.2
Se toman las transformadas de Fourier de ambos miembros y se obtiene lo siguiente :
Gs (w) = I n s C G (w-nws ) donde ws = 27ns 1.2.7.3
La transformada de Fourier de la señal muestreada gs (t) consta de G (w)
repitiéndose a sí misma indefinidamente a cada fnws , para n = O, 1, 2, 3, ... . No habrá traslapes entre ciclos sucesivos de G(w) siempre que w0 > 2(27B)
o sea
2 v s sea mayor o igual a 47B
esto es Ts <= 1/2B
en consecuencia, mientras el intewalo de muestreo <= 1/2B
o la razón de muestreo sea mayor que 2B muestras por segundo , Gs (w) constará de repeticiones que no se traslapan de G (w) y, en consecuencia
g(t) se podrá recuperar de gs (t) simplemente al hacerla pasar a través de un
filtro de pasabajas con una función de transferencia cuya característica de
magnitud JH(w)J aparece con línea punteada en la figura ... Esto demuestra el
teorema de muestreo. El máximo intervalo, de muestreo permisible, Ts = I/
2B, se conoce como intervalo de Nyquist, y el correspondiente índice o razón
de muestreo (2B muestras por segundo ) se conoce como el índice de
muestreo de Nyquist.
Estrictamente hablando, una señal de banda limitada no existe en la realidad.
Se puede demostrar, que si una señal es de tiempo limitado (esto es, existe
solo durante un intervalo finito de tiempo ) , no puede ser de banda limitada, y
si una señal es de banda limitada (esto es, que la cantidad de componentes
armónicos está en un intervalo limitado de frecuencias) no podrá ser de
tiempo limitado. Todas las señales tísicas son necesariamente de tiempo
limitado ya que comienzan en algún instante finito y deben terminar en algún
otro instante finito. En consecuencia, todas las señales prácticas son de
banda no limitada. Sin embargo, si una señal es transformable en el sentido
de Fourier su energía en finita y del Teorema de Parseval se deduce que
IG(w)l debe decaer a frecuencias más altas. La mayor parte de la energía de
una señal reside en una banda finita, y el espectro a frecuencias más altas
contribuye poco. El error que se introduce al cortar el extremo que está más
allá de una cierta frecuencia B puede hacerse despreciable si se hace B
suficientemente grande.
Por consiguiente, para todos los propósitos prácticos una señal se pude
considerar como escencialmente de banda limitada a algún valor B, cuya
elección depende de la exactitud que se desea. Un ejemplo práctico de esto
es una señal de voz, teóricamente una señal de voz siendo una señal de
tiempo finito tiene un ancho de banda infinito. Pero las componentes de
frecuencia más allfa de 3 KHz contribuyen con una fracción despreciable de
la energía total. Cuando se transmiten señales de voz mediante PCM (Pulse
Code Modulation), se hace pasar primero a través de un filtro Pasa-Bajas de
ancho de banda de 3.5 KHz, y a la señal resultante se la muestrea a una
razón de 8000 muestras por segundo. Para un ancho de banda de 3500 Hz ,
la mínima razón de muestreo (el índice de Nyquist) es 7000. Los indices de
muestreo más altos permiten la recuperación de la señal a partir de sus
muestras utilizando filtros relativamente simples. La recuperación de señales
muestreadas al índice de Nyquist requieren filtros de corte exacto (ideales).
I .2.8 RECUPERACIóN DE UNA SEÑAL A PARTIR DE SUS MUESTRAS
Ya hemos mencionado que se puede realizar la recuperación de una señal si
disponemos de la función muestreada.
Se hace pasar la función muestreada por un filtro pasabajas con una
frecuencia de corte m. Se trata, evidentemente de una operación en el
dominio de la frecuencia. Debido a la dualidad entre el dominio de la frecuencia y el dominio del tiempo, existe una operación equivalente en el
dominio del tiempo con la que se recupera f(t) a partir de sus muestras. En
este apartado describimos esta operación.
Consideremos una señal f(t) muestreada con la rapidez mínima requerida,
2fm muestras por segundo. En este caso:
T = 1 /2fm 1.2.8.1
w0 = 21/T = 4 1 fm = 2wm 1.2.8.2
y según la ecuación :
Fs ( w ) = 1/T F (w-nW) 1.2.8.3
Como antes, podemos obtener el espectro F(w) si filtramos Fs(w) con un
filtro pasa bajo con frecuencia de corte wm . Es claro que esa operación
equivale a multiplicar Fs(w) por una función pulso rectangular G2wn(w) . Por
lo tanto de la ecuación anterior obtenemos:
Fs(w) G2wm(w) = 1/T F(w)
De donde podemos despejar F(w) obteniendo:
F(w) = T Fs(w) G2wm(w)
Por consiguiente, la transmisión de la señal muestreada fs(t) a través de un
filtro pasa bajo, reproduce la señal f(t) El filtro tiene una frecuencia de corte
wm y una ganancia T=1/2fm . Se puede expresar Iá función de transferencia,
H(w) del filtro que vamos a emplear como :
H(w) = T G2wm(w)
= 1/2 f G2wm(w)
Utilizaremos el teorema de convolución en el tiempo a la ecuación :
F(t) = Tfs(t) = m / Sa (wmt)
para tener la siguiente expresión:
f(t) = fn t * Sa (m t)
La función muestreada está dada por :
fs (t) = fn (t-nt) * Sa (wn t)
= fn Sa [wn (t-nT)]
= fn Sa (wnt-n)
Es obvio que se puede construir f(t) en el dominio del tiempo a partir de sus
muestras de acuerdo con las últimas ecuaciones . Gráficamente, cada
muestra se multiplica por una función de muestre0 y se suman todas las
formas de onda resultantes para obtener f(t).
En la práctica la mayoría de las señales se aproximan a señales limitadas en
banda. Conviene aclarar aquí que, en un sentido estricto, no existen esas
señales en banda limitada. Puede demostrarse que si una señal existe en un
intervalo finito del tiempo, posee componentes de todas las frecuencias; sin
embargo, en la práctica, las funciones de densidad espectral disminuyen a
frecuencias superiores. La mayor parte de la energía reside en las
componentes que ocupan un cierto intervalo de frecuencia de manera que
para propósitos prácticos, se puede considerar la señal como limitada en
banda. El error que procede de no tomar en cuenta las componentes de alta
frecuencia es despreciable.
El teorema de muestreo es un concepto importante, pues nos permite
reemplazar una señal continua limitada en banda por una secuencia discreta
de sus muestras sin perder información alguna. Por tanto el contenido de
información de la señal equivale a elementos discretos de información. Ya
que el principio de muestreo especifica el valor mínimo de valores discretos
necesarios para reproducir una señal continua, el problema de transmitir
dicha señal se reduce al de transmisión de un número finito de valores. Esa
información discreta se puede transmitir mediante un grupo de pulsos cuyas
amplitudes varían de acuerdo con los valores de las muestras (proceso que
se conoce como Modulación por Amplitud de Pulsos). Así mismo se tienen
otros tipos de modulaciones basadas en la posición de pulsos y en la
duración de pulsos en las que los parámetros de la posición o la duración de
pulsos están en proporción con los valores de las muestras. En la
modulación por pulsos codificados el valor de las muestras se representa
mediante códigos formados por un grupo de pulsos.
1.3 TECNICAS DE CONVERSION DE SEÑALES
En los apartados anteriores hemos tratado de la clasificación de las señales,
podemos decir que somos capaces ya de entender claramente lo que se
conoce como una Señal Digital y una señal Analógica. Las primeras son
señales discretas en tiempo y discretas también en su variable dependiente,
mientras las señales analógicas son señales continuas en tiempo y continuas
en la variable dependiente.
Existen dispositivos hechos para el tratamiento de la información que nos
proporcionan algunas señales analógicas, y podemos observar que así
mismo existen dispositivos corno la computadoras que nos permiten
manipular señales digitales. Si queremos usar una computadora para
manejar la información obtenida de una señal analógica es necesario
convertir esta señal en una señal digital, así mismo si una señal digital se
requiere para ser tratada como analógica debemos primeramente convertirla
en este último tipo de señal.
En los siguientes apartados estudiaremos las técnicas empleadas en la
conversión de una señal analógica a una señal digital como también en la
conversión contraria .
1.3.1 CONVERTIDOR ANALOGICO-DIGITAL
El Convertidor Analógico-Digital es el dispositivo empleado, como su nombre
lo indica, para transformar una señal analógica en un conjunto de valores
discretos, es decir, una señal digital. Las aplicaciones que podemos
mencionar son múltiples, ejemplo de esto lo tenemos en los dispositivos que
se utilizan para estar sensando temperatura, presión o posiciones específicas
y si estos parámetros van a ser utilizados para realizar un número elevado de
cálculos, entonces estamos ante la necesidad de realizar una conversión
analógico-digital para que los datos sean procesados por algún ordenador.
En el presente trabajo hablaremos de dos métodos para realizar la
conversiones analógico-digital, estos son:
1 .- Convertidor Tipo Contador
2.- Convertidor de Aproximaciones Sucesivas.
1.3.1.1 CONVERTIDOR TIPO CONTADOR
Este sistema de conversión funciona como sigue:
Primero se presenta un pulso de borrado que inicializa al contador para éste
comience desde cero. El contador registra en forma binaria el número de
pulsos de la linea de reloj. El reloj es una fuente de pulsos los cuales se
encuentran a intervalos de tiempo iguales. El número de pulsos se
incrementan linealmente con el tiempo, la palabra binaria representando este
contador es usada como la entrada del convertidor analógico-digital cuya
salida es una forma de onda como la que se muestra en la figura. Si
consideramos una señal de entrada Vs más grande en magnitud a Vd el
comparador ( que es un amplificador diferencial de alta ganancia) presenta
una salida con nivel 'alto', ocasionando que la compuerta 'and' se habilita
para que los pulsos de reloj vayan al contador. Cuando el voltaje Vd es más
grande que Va la salida del comparador cambia a un nivel bajo y se
deshabilita la compuerta 'and'. El contador se detendrá cuando se presenten
las condiciones Vi=Vd y el contador leerá la palabra digital representando el
voltaje de entrada analógico.
Si el voltaje analógico varía con el tiempo no se pueden convertir los datos
analógicos en una forma continua; pero podría hacerse si la señal de entrada
fueran muestras con intervalos.
Si representamos un valor máximo de voltaje analógico por "n" pulsos y el
periodo del reloj está dado por 't' segundos, el intervalo mínimo entre
muestras (considerando el tiempo de conversión) es nt segundos.
Otra versión del contador ADC, llamado servo convertidor, es obtenido
usando un contador ascendente-descendente, se ilustra en la siguiente
figura, en la cual se observa una pequeña modificación con respecto al de la
figura anterior. Este circuito no requiere de un pulso de borrado y tampoco
usa una compuerta and .Utiliza un contador ascendente/descendente, la
salida del comparador alimenta al control del contador. El funcionamiento del
circuito es el siguiente, la salida del DAC se encuentra en un nivel de voltaje
menor con respecto al voltaje de entrada Vi , entonces la salida en un nivel
alto del comparador provoca que el contador cuente en forma descendente.
La salida del convertidor se incrementa con cada pulso de reloj hasta que
excede al voltaje analógico Vi. El control de línea ascendente/descendente
cambia de estado para ahora contar en forma descendente (pero esto se
realiza en forma LSB ). Finalmente provocando que el control cambie
nuevamente de estado (ascendente) y la cuenta se incrementa solo por un bit
(LBS). El proceso es conservado de este modo y en la salida digital se
presentará un valor de +- 1 bit (LBS) alrededor del valor correcto. El tiempo
de conversión es menor cuando se presentan cambios menores entre las
muestras de señales analógicas.
1.3.1.2 CONVERTIDOR DE APROXIMACIONES SUCESIVAS
En este tipo de convertidor se utiliza un contador programable en lugar del
contador binario.
El contador programado coloca al bit más significativo (MBS) en un estado
alto, con todos los demás bits en estado bajo. El comparador toma la salida
del convertidor analógico-digital y la compara con el voltaje analógico de
entrada, el 1 analógico del MBS es removido al siguiente bit más
significativo, y es realizada una nueva comparación, el voltaje analógico es
mayor que Vd, el 1 permanece hasta que se llega al final del proceso, es
decir que se presenta una equivalencia binaria de la señal analógica. Para un
sistema de N bits, el tiempo de conversión N periodos de reloj, denotándose
una oposición con el convertidor del que hablamos en el apartado anterior
de contador por que en el peor de los casos su tiempo de conversión es de
2N periodos de reloj.
1.3.2 CONVERTIDOR DIGITAL-ANALOGICO.
Muchos de los sistemas utilizados en el mundo de la electrónica digital
requieren de una seiíal de entrada; la cual se convierte a un voltaje o
comente analógico (un nivel de comente o de tensión) según sea el caso
donde vaya a ser utilizado. Estos sistemas son llamados convertidores
digital-analógico o DAC's (por sus iniciales en inglés Digital Anologic
Converters). La palabra digital es representada en una variedad de códigos,
los más comunes son puramente binarios o código - decimal - binario (BCD
de Binary Code Decimal).
La salida Vo para un convertidor D/A de N-bits se obtiene mediante la
siguiente ecuación :
Vo = aN-12-1 + aN-22-2 + aN-32-3 + ... + a02-N 1.3.2.1
donde Vo es un factor de proporcionalidad determinado por los parámetros
del sistema, y donde los coeficientes an =1 o (=O) si el n-ésimo bit es 1 o O . El bit más significativo (MBS) corresponde a aN-I , y su peso es 2 N-I V.
mientras que el bit menos significativo (LBS) corresponde a a0 y su peso es
V R2N.
Considere por ejemplo una palabra de (N=5) y si consideramos la ecuación
I .3.2.1 tenemos lo siguiente :
V = ( 16a4 +8a3 + 4a2 + 2al ) 1.3.2.2
Si asumimos V = 32 v. Entonces si a0 y todas las demás son cero, nosotros
tendremos que VO = I . Si a0 = a l = I y todas las demás son cero entonces
VO = 2 + 1 = 3, etc. Claramente se observa que VO es un nivel de tensión
proporcional a la entrada digital.
Los bloques SO , S1 , S2 , ... , SN-1 , en la figura son interruptores
electrónicos con controladores digitales. Por ejemplo, cuando se presenta un
1 en la línea MSB, el interruptor SN-I se conecta al resistor R a la tensión de
referencia -VR , así mismo cuando un O se encuentra presente en la MBS, el
interruptor conecta al resistor con la línea de tierra. Todos los interruptores
son de la forma un polo dos tiros (llamado también un polo y dos posiciones )
y se activan por el nivel alto o bajo de cada bit, conectando a los resistores
con -VR O Tierra. El amplificador operacional funciona como un convertidor
de corriente a voltaje. Podemos observar que si el MSB es 1 y los demás bits
Son cero la corriente que circula por el resistor R es -VR /R y la salida es :
VO (MBS) = VR R’/R
De manera similar, la salida para el LBS, para una configuración de 5 bits
(N=5) :
VO (LBS) = VR R/16R
Finalmente si todos los bits son 1 se tiene:
VO (TOTAL) = (1 + 112 + 1/4 + 1/8 + 1/16 )* VR R’/R
VO(TOTAL)=(16+8+4+2+1)*VRR/16R
Este argumento confirma que el voltaje analógico VO es proporcional a la
entrada digital.
La precisión y estabilidad del convertidor D/A de la figura 1 .I 8 depende
principalmente de la absoluta precisión de los resistores y de suponer una
baja dependencia con el cambio de temperatura. Todos los resistores son
diferentes y el más grande está dado por la relación 2N-1 R , donde R es el
resistor más pequeño, estos valores requieren del uso de resistores de
precisión con un valor muy grande. Esto último representa un gran problema
a la hora de implementar los circuitos prácticos; a continuación se presenta el
convertidor tipo escalera mismo que evita estas dificultades.
1.3.3 CONVERTIDOR TIPO ESCALERA
Este circuito es el más veloz de los convertidores. El circuito es funcional
para el mismo numero de Bits que el circuito de la figura 1 .I8 pero, con
valores de resistores Ry 2R solamente, el circuito es mostrado en la figura
1 .I9 . La escalera usada en el circuito es un dispositivo de divisor de
corriente y así la razón de los resistores es más crítica que su valor absoluto.
Se observa que uno de los nodos de la escalera en la figura 1 .I9 tiene la
resistencia 2R mirando hacia el lado derecho o hacia el lado izquierdo de los
interruptores.
Por ejemplo, si el LSB es O, para el lado izquierdo del nodo 1 se muestra una
combinación en paralelo de dos resistencias 2R hacia tierra en serie con R,
para una resistencia total de 2R, y así sucesivamente hasta el último
interruptor. Si algún intemptor, digamos N-2, es conectado a VR el valor de
la resistencia en VR es (2R + 2R * 2R) I 2R = 3R y el voltaje en el nodo N-2
es :
VR /3 = R( VR /3)
A causa de la capacidad perdida de los nodos a tierra existe un tiempo de
retardo en la propagación de izquierda a derecha bajo la red escalera.
Cuando el interruptor SO se cierra el retardo de propagación es mucho mayor
que cuando el interruptor MSB se cierra. Así , cuando el voltaje digital
cambia, un transitorio aparecerá a la salida adtes de que VO alcance un valor
apropiado. Estos transitorios pueden ser evitados usando un DAC de
escalera invertida.
ESPECIFICACIONES DE EQUIPO
MICROCONTROLADOR MC68HCllESEVBU.
El microcontrolador que se utiliza es el MC68HC1 IEVBU, este tiene una
memoria RAM de 256 Bytes y fue expandida a 8 KBytes. La expansión se
realizó en las direcciones $2000 a $3FFF en la parte de alambrado de la
MCU (Siglas en inglés de Unidad de MicroControl, MicroController Unit).
Para poder expandir la memoria RAM fue necesario programar la MCU en
Modo Extendido rompiendo para ello una pista, para mayor referencia
consulte el manual de la MCU. Además se instaló un controlador de nivel de
offset para sumarlo a la señal analógica que se va a introducir. En el
apéndice encontrará un diagrama con los elementos que contiene la
expansión de memoria y el controlador de offset.
El controlador de offset es esencialmente un buffer y un sumador, que están
formados por un amplificador operacional LM741. El offset que se introduce
permite subir la señal de entrada a un nivel de voltaje de DC de 2.5 V.
Además se implementó un RESET externo para el microcontrolador. Este
Reset está formado por un MC 34064 y un Pushbutton. El diagrama
correspondiente se anexa en el apéndice.
La velocidad de conversión de la MCU es de treinta y dos ciclos de reloj 'E'
(ver manual de referencia), siendo éste reloj de 750 Khz.
Teóricamente la velocidad de conversión sería de 5.8 Khz, pero al hacer
pruebas con la MCU se obtuvo un valor de la velocidad de conversión de 3
COMPUTADORA DE PROPOSITO GENERAL
La computadora que se va a utilizar debe reunir las siguientes
características: debe tener una velocidad aceptable para permitir la
recuperación de la transmisión serial a 9600 Baudios; se recomienda usar
una PC 80286, 80386 o 80486, así mismo debe contener un puerto serial
(coml) por el cual se realiza la transmisión y recepción de datos, este puerto
de comunicación será el coml, si contiene otro puerto y desea conectarlo
deberá cambiar el direccionamiento del puerto en los programas. Además de
lo anterior deberá tener una tarjeta gráfica para poder observar las
secuencias digitales en tiempo y frecuencia.
ALIMENTACION
La alimentación de la tarjeta es realizada a través de una fuente regulada de
voltaje DC de 5 volts que fue colocada en un chasis junto con la MCU. Por lo
tanto sólo tendrá que conectar a la alimentación de la línea de 120 V. AC. El
sistema contiene un interruptor de encendido y un fusible de protección de 4
Amp.
ESPECIFICACIONES DE LA SEAAL DE ENTRADA
La señal analógica que se introduce al sistema tendrá ciertas limitaciones.
Será una señal con un valor máximo de 5 V. pp si se llega a sobrepasar este
valor la tarjeta contiene un circuito de protección que satura el nivel máximo o
entrada observable será de 0.01 V. aprox. Este valor es definido por los
valores de cuantización que contiene el convertido N D . El valor mínimo de la
señal de entrada podrá ser alterado por las variaciones que pueda tener la
fuente, estas variaciones pueden ser observadas aterrizando la entrada de la
señal analógica y graficando en tiempo real.
La señal analógica podrá ser proporcionada por cualquier generador de
señales, siempre que se cumpla con las condiciones establecidas, pues de
no hacerlo provocará un desperfecto o daño permanente en el equipo.
DESCRIPCION DE SOFTWARE
Los programas que se utilizaron serán ahora explicados brevemente. Los
podemos dividir en dos categorías: Tenemos un sene de programas que son
para la PC y otra sene para la MCU.
Los programas para la PC se realizaron en Turbo C v 2.0, Los programas de
la MCU se realizaron en ensamblador MC68HC11.
Para la PC los programas utilizados son los siguientes:
DIGT3.EXE. Este programa permite checar la transmisión serie de la tarjeta
a la PC La comunicación se inicia enviando un <7> al microcontrolador, y
éste enviará datos del convertidor Analógico/Digital en datos de ocho bits,
uno de inicio y uno de paro, estos bits se despliegan en forma secuencia1 en
de offset de la señal analógica a un valor de 128 que se observará en la
pantalla. Para ajustar este nivel de offset se moverá el potenciómetro
contenido en la tarjeta hasta obtener el valor deseado. Tenga cuidado al
hacer esto de no tener conectada ninguna señal analógica externa. En el
apéndice se anexa un listado completo en lenguaje C de este programa.
ALBERGB6.EXE. Este programa realiza una función similar a la del
programa DIGT3.EXE, pero en lugar de enviar los datos directamente del
microcontrolador a la P C directamente, primero los guarda en un buffer de 8
Kbytes y después los envía a la PC, ésta los recibe y los guarda en un
archivo de 8 Kbytes en el diskette del drive B, por ello no olvide tener un
diskette en ese drive preparado para escritura. Los dos programas
mencionados utilizan la instrucción 'bioscom' proporcionada por las librerías
de C para poder realizar la transmisión y recepción de datos. El archivo que
se genera es binario y contiene como primer elemento el tamaño del archivo,
los subsecuentes elementos serán los Bytes recibidos pero convertidos a tipo
float. Se guardan con este tipo para poder realizar operaciones aritméticas
con ellos.
Los programas del microcontrolador son cargados a través del
CONNECT.EXE que es programa que permite conectar la MCU MC68HC11
con la P C para poder hacer la transmisión de los bits a la RAM, no haremos
mayor referencia por lo que si se desea más información de la MCU y sus
programas se consultarán los manuales de la misma.
CONADASM. Este programa enciende el convertidor Analógico/Digital con
los siguientes pasos : Configura el convertidor, establece la conversión para
un solo canal permitiendo recuperar en cualquier registro del convertidor la
misma información; configura al convertidor para recibir información en el
canal dos <2> del convertidor; después inicializa el puerto de comunicación
serie y posteriormente consulta el registro de recepción serie SCI, espera
recibir un siete C O I 11 > para iniciar la transmisión sene; al recibir el siete la
transmisión se realiza enviando el contenido del registro de datos del
convertidor, al transmitir verifica que esté vacío el registro de transmisión
para poder llenarlo y no encimar información. El programa es cargado en la
dirección $1 O0 y se arranca a través del
CONNECT.EXE
CONVER.ASM. En este programa también arranca el puerto serie pero antes
de transmitir llena la RAM del microcontrolador con la información del
convertidor, la cantidad de información almacenada es de 8 Kbytes. Para
empezar a almacenar la información es necesario recibir vía el comunicador
serial un siete COI 1 I> desde la PC. AI recibir este dígito guarda la
información en RAM y comienza la transmisión sene a la PC. Este buffer se
hace con el fin de poder respetar la velocidad del convertidor y no retrasar las
muestras al enviarlas directamente a la PC. AI almacenar los datos en un
buffer se pueden transmitir posteriormente a la velocidad requerida sin
afectar la velocidad de muestre0 del convertidor.
PROYECT.EXE. Este programa permite ver de manera gráfica las muestras
que son tomadas por la unidad MCU. Estas muestras son almacenadas
temporalmente y son desplegadas en una gráfica. Esta gráfica permite
observar en el tiempo la señal.
Establece intervalos de barrido de 512 puntos hasta completar los 8 kbytes
que transmite la MCU. En cada intervalo de barrido cambia el color del fondo
de la gráfica, esto permite visualizar mejor los intervalos.
REFERENCIA TECNICA
DIMENSIONES 25 cm Ancho
19 cm Largo
8.5 cm Alto
PESO 1.150 Kg
ALIMENTACION 120 V. AC
VOLTAJE
DE SEÑAL 2.5 V. PP Máx.
RESOLUCION
DE SEÑAL 0.02 V Min.
PROTOCOLO DE
COMUNICACION RS232
NIVEL
DE OFFSET 2.5 V. DC
VELOCIDAD DE
CONVERSION 3 KHZ (aprox)
DOS PLUG HEMBRA
DOS CAIMANES
FUSIBLE DE 4 AMP.
FUENTEINTERNADE
VOLTAJE REGULADA DE 5 V. DC
CABLES DE CONEXION
Y ALIMENTACION
BlBLlOGRAFlA
MC68HCll EVBU
UNIVERSAL EVALUATION BOARD
MOTOROLA
A) USER'S MANUAL
B) PROGRAMMING REFERENCE GUIDE
C) REFERENCE MANUAL
DIGITAL SIGNAL PROSESSING
D. STANLEY WILLIAM
PRENTICE HALL COMPANY
1975.
THE WAITE GROUP'S TURBO C BIBLE
NABAJYOTI BARKAKATI
HOWARDS W. SAMs & COMPANY
INDIANA 1989.
' CONAD.ASM ' ESTE PROGRAMA ENCIENDE EL CONVERTIDOR ' ANALOGICO DIGITAL DEL MCHCII
' ENWA LOS DATOS DE CONVERTIDOR ' INICIA U COMUNICACION S C I A 9600 BAUDIOS
'Y RECIBE EL INICIO Y PARO DE LA TRANSMISION
INITSERIAL EQU $ E X OUTSERIAL EQU $COBA LEESERIAL EQU $€UD DATOADRI EQU $1031 FIN EQU fFWC SCSR EQU S102E SCDAT EQU SIOP:
ORG $1 O0
LDAA #$W STAA $1039 ' ENCIENDE EL CONVERTIDOR' LDAA #S21 STAA $1030 CONFIGURA EL AD PARA CONVERTIR CONTINUAMENTE.
JSR INITSERIAL ' INNICIA LA COMUNICACION SERIAL* ' Y EN UN SOLO CANAL"
ESPER JSR ENVlA CAMBIAR A LEESERIAL ' ANDA #SO7 CHECA EL INICIO DE TRANSMISIOW BNE ENVlA 'VA A LA RUTINA ENVA* JMP ESPER REGRESA HASTA RECIBIR INICIO DE TRANSMISIOFP
ANDA #SO4 CHECA EL PARO DE TRANSMISION' BNE ESPER Y REGRESA A ESPERAR INICIAR LA TRANSMISION"
ENVlA LDAA DATOADRI CARGA EN A EN CONTENIDO DEL CONVERTIDOR' JSR OUTSCI ENVlA A AL PTO SERIAL* JMP ENVlA ' REGRESA A CHECAR EL PARO DE TRANSMEION* JMP FIN FIN DEL PROGRAMA*
TIK JSR INSCI LEE DEL SERIAL"
INSCl LDAA SCSR read status reg ANDA #S20 check rdrf BEQ INSCl jump if no data LDAA SCDAT read data
INSCll RTS
OUTSCI LDAB SCSR read status BlTB #S80 BEQ OUTSCI loop until tdre=l STAA SCDAT send character
OUTSCl3 RTS
JMP FIN FIN DEL PROGRAMA*
CONMR-ASM ESTE PROGRAMA ENCIENDE EL CONVERTIDOR
*ANALOGICO DIGITAL DEL MCHCl1 INICIA LA COMUNICACION SCI A 9600 BAUDIOS ENVlA LOS DATOS DE CONVERTIDOR Y RECIBE EL INICIO Y PARO DE LA TRANSMEION
INITSERIAL EQU SE= OUTSERIAL EQU SE45A LEESERIAL EQU S W D DATOADRl EQU $1031 RAMDIR EQUfzOOo TERMINA EQU S3FFF SCSR EQU SIME SCDAT EQU $ l M F FIN EQU SFF7C
ORG $150
LDAA #$S STAA $1039 ENCIENDE EL CONVERTIDOR* L D A A e 2 l STA4 $1030 * CONFIGURA EL AD PARA CONVERTIR CONTINUAMENTE^
Y EN UN SOLO CANAL. C6 JSR INITSERIAL INNlClA LA COMUNICACION SERIAL.
ESPER JSR INSCI *LEE DE LA scr CMPA #sar CHECA EL INICIO DE TRANSMlslOW BEQ CA VA A LA RUTINA ENVA* JMP ESPER REGRESA HASTA RECIBIR INICIO DE TRANSMMOW
CA LDX #RAMDIR C1 LDAA DATOADRI
STAA 0,X INX LDAB RAMDIR DESPISTADO PSHX PULA PULB CPD #TERMINA BNE C l
ENVlA LDX #RAMDIR
LDAA #$O0 JSR OUTSCI
C2 LDAA 0,X CARGA EN A EN CONTENIDO DEL CONMRTIDOR' JSR OUTSCI ENVlA A AL PTO SERIAL. JMP TIK REGRESA A CHECAR EL PARO DE TRANSMICIOW INX PSHX PULA PULE CPO #TERMINA
JMP ESPER BNE C2
INSCl LDAA SCSR read status reg ANDA #$m check rdrf BEQ INSCI jump If no data LDAA SCDAT read data
INSCIl RTS
OUTSCI LDAB SCSR read status BlTB #SS0 BEQ OUTSCI loop untll tdrwl STAA SCDAT send character
OUTSC13 RTS
JMP FIN FIN DEL PROGRAMA'
.
Wgit3.c 'prorgama de comunicacion con el m68hcll evbu
#Include cstdio.h> #include cbios.h> #define COMl O #define COM-INIT O #define COM-SEND 1 #define COM-RECIM 2 #define COM-STATUS 3 #define KEYBRD-READ O #define KEYBRD-READY 1
main()
int c,b=7;
data = (Ox03~0x00~0x00~0xEO); unsigned data, status;
bioscom(C0M-INIT,data,COMl); clrxr(); printf("Conectando al puerto serial COMl. <PRESIONE 'Q' PARA SALIR> \n");
status = (0x2000 8 bioscom(C0M-STATUS,O,COMl)); whilqstatus != O x z o o O )
status = Ox;Eooo 8 bioscom(C0M-STAfUS,O,COMl);
bioscom(COM_SEND,b,COMl);
printf("ERR0R TRANSMITIENDO: %d\n",b);
f
f
1
if((status 8 Oxsooa)= o x m )
while(1) {
i l (statUs==Ox100) status = 0x100 8 bioscom(C0M-STATUS,O,COMl);
f c=Oxff 8 bioscom(C0M-RECIM,O,COMl); printf("%d ",c);
1
f if(( "q') 11 ("CY)) {
it(bioskeflKEYBRD-READY))
c=bioskey(KEYBRD-READ) 8 Oxff;
printf("SALIEND0 ...h.') ; exit(0); 1 1
1
U