desarrollo de una práctica de codificación por modulación...

241
Desarrollo de una Práctica de Codificación por Modulación AM Titulación: Enginyeria Tècnica industrial en electrònica Industrial AUTOR: Miguel Ángel Bonache Gómez DIRECTORES: Abdelali El Aroudi, Enrique Cantó Navarro FECHA: Enero de 2005

Upload: vumien

Post on 18-Oct-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM

Titulación: Enginyeria Tècnica industrial en electrònica Industrial

AUTOR: Miguel Ángel Bonache Gómez DIRECTORES: Abdelali El Aroudi, Enrique Cantó Navarro

FECHA: Enero de 2005

Page 2: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

i

Índice General Memoria Descriptiva 1 1 Objeto del Proyecto 2

2 Titular 2

3 Destinatarios 2

4 Antecedentes 2

5 Análisis de Fourier 3 5.1 Introducción 3

5.2 Las Series de Fourier 3

5.3 La Transformada de Fourier 5

5.4 Función Delta de Dirac 9

5.5 Transformada de Fourier de una Señal Periódica 10

5.6 Transformadas de las relaciones en los elementos pasivos 10

6 Estudio de la Modulación AM 12 6.1 Introducción 12

6.2 Métodos de Modulación AM 12

6.2.1 Modulación AM con una Portadora Exponencial Compleja 12

6.2.2 Modulación AM con una Portadora Sinusoidal 14

6.2.3 Modulación AM con una Portadora de Tren de Pulsos 20

6.2.4 Modulación AM con una Portadora Cuadrada Bipolar 23

6.3 Aplicación de la Modulación AM en la Codificación de Audio 26

7 Estudio del Sistema de Cifrado y Descifrado Basado en LFSR 27 7.1 Descripción del sistema 27

7.2 Los LFSR como generadores pseudoaleatorios 28

8 Descripción General del Sistema a Diseñar 31

9 Módulo Emisor 32 9.1 Arquitectura 32

9.2 Solución Adoptada del Subsistema Analógico 33

9.2.1 Alimentación 33

9.2.2 Señales de Entrada 33

9.2.3 Acondicionador de señal 33

Page 3: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

ii

9.2.4 Modulador 34

9.2.5 Acondicionador a Línea de Salida 35

9.3 Solución Adoptada del Subsistema Digital 35

9.3.1 Cifrador y Selector de fp 35

9.3.2 Unidad de entrada 36

9.3.3 Unidad de Visualización 36

9.3.4 Generación de Relojes 36

10 Módulo Receptor 37 10.1 Arquitectura 37

10.2 Solución Adoptada del Subsistema Analógico. 38

10.2.1 Alimentación 38

10.2.2 Acondicionador de señal 38

10.2.3 Demodulador 38

10.2.4 Acondicionador a Línea de Salida 39

10.3 Solución Adoptada del Subsistema Digital 39

10.3.1 Descifrador y Selector de fp 39

10.3.2 Unidad de Visualización 39

10.3.3 Recuperador de Reloj 39

11 Visualización de señales 40

12 Ajustes 41

Memoria de Cálculo 42 1 Módulo Emisor 43 1.1 Diseño y Simulación del Subsistema Analógico 43

1.1.1 Alimentación 43

1.1.2 Señales de Entrada 44

1.1.3 Acondicionador de Señal 44

1.1.4 Modulador 51

1.1.5 Acondicionador a Línea de Salida 56

Page 4: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

iii

1.2 Descripción del Hardware 57

1.2.1 Microcontrolador PIC 16F876 y Circuiteria Adicional 57

1.2.2 Display LCD 60

1.3 Descripción del Software. Diagramas de Flujo 62

1.3.1 Subrutina de configuración del Sistema (CONFIG) 63

1.3.2 Subrutina de Inicialización del LCD (INI_LCD) 63

1.3.3 Programa Principal 65

1.3.4 Subrutina de Selección de Frecuencias (SE_FREC) 72

1.3.5 Subrutina de Selección de Secuencia de Frecuencias (SE_SECU) 72

1.3.6 Subrutina de Selección del Intervalo de Cambio de las

Frecuencias (SE_CAMB) 72

1.3.7 Subrutina de Selección de la Semilla Inicial (SE_SEMI) 72

1.3.8 Subrutina de Inicio del Sistema (EMPIEZA) 85

1.3.9 Subrutina de Funcionamiento Automático (AUTO) 85

1.3.10 Subrutina de Funcionamiento Manual (PASO_PA) 85

1.3.11 Subrutina de Atención a la Interrupción (INTERRU) 95

1.3.12 Subrutina de Cifrado de la Frecuencia de Modulación (CIFRADO) 96

1.3.13 Subrutina de Cálculo del Período (CAL_PER) 96

1.3.14 Subrutina de Preparación del Duty Cycle (CARG_DU) 96

1.3.15 Subrutina de Multiplicación (MULTI) 101

1.3.16 Subrutina de División (DIVIDE) 101

1.3.17 Otras subrutinas 104

2 Módulo Receptor 113 2.1 Diseño y Simulación del Subsistema Analógico 113

2.1.1 Alimentación 113

2.1.2 Acondicionador de Señal 114

2.1.3 Demodulador 116

2.1.4 Acondicionador a Línea de Salida 118

2.2 Descripción del Hardware 118

2.3 Descripción del Software. Diagramas de Flujo. 120

2.3.1 Programa principal 120

Page 5: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

iv

2.3.2 Subrutina de Atención a la Interrupción (INTERRU) 120

2.3.3 Subrutina de Descifrado de la Frecuencia de Modulación (D_CIFRA) 120

2.3.4 Subrutina de Recepción de Datos del Módulo Emisor (RECIBE) 120

2.3.5 Subrutina de Selección de la Salida a Visualizar (S_SALID) 121

3 Visualización de señales 130 3.1 Descripción del programa 130

4 Listado de Componentes 133 4.1 Módulo Emisor 133

4.2 Módulo Receptor 134

Planos 1 Módulo Emisor 1.1 Esquema Subsistema Analógico Emisor Lámina 1

1.2 Esquema Subsistema Digital y Visualizador LCD Emisor Lámina 2

1.3 Esquema Alimentación Emisor Lámina 3

1.4 Circuito Impreso Placa Emisor Lámina 4

1.5 Situación Componentes Placa Emisor Lámina 5

1.6 Situación Componentes y Circuito Impreso Placa LCD Emisor Lámina 6

1.7 Mecanizado Caja Módulo Emisor Lámina 7

1.8 Conexionado Interior Módulo Emisor Lámina 8

2 Módulo Receptor 2.1 Esquema Subsistema Analógico Receptor Lámina 9

2.2 Esquema Subsistema Digital Receptor Lámina 10

2.3 Esquema Alimentación Receptor Lámina 11

2.4 Circuito Impreso Placa Receptor Lámina 12

2.5 Situación Componentes Placa Receptor Lámina 13

2.6 Mecanizado Caja Módulo Receptor Lámina 14

2.7 Conexionado Interior Módulo Receptor Lámina 15

Page 6: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

v

Presupuesto 152 1 Precios Elementales 1.1 Capítulo 1. Diseño, Simulación e Implementación del Módulo Emisor 153 1.2 Capítulo 2. Material del Módulo Emisor 153 1.3 Capítulo 3. Diseño, Simulación e Implementación del Módulo Receptor 155 1.4 Capítulo 4. Material del Módulo Receptor 155 2 Cantidades 158 2.1 Capítulo 1. Diseño, Simulación e Implementación del Módulo Emisor 158 2.2 Capítulo 2. Material del Módulo Emisor 158 2.3 Capítulo 3. Diseño, Simulación e Implementación del Módulo Receptor 160 2.4 Capítulo 4. Material del Módulo Receptor 160 3 Aplicación de Precios 163 3.1 Capítulo 1. Diseño, Simulación e Implementación del Módulo Emisor 163 3.2 Capítulo 2. Material del Módulo Emisor 163 3.3 Capítulo 3. Diseño, Simulación e Implementación del Módulo Receptor 165 3.4 Capítulo 4. Material del Módulo Receptor 166 4 Resumen del Presupuesto 167 4.1 Precio de Ejecución por Material 167 4.2 Precio de Ejecución por Contrato 167 4.3 Precio de Licitación 168

Pliego de Condiciones 169 1 Disposición y Alcance del Pliego de Condiciones 170 1.1 Objetivo del Pliego 170

1.2 Descripción General del Montaje 170

2 Condiciones de los Materiales 171 2.1 Especificaciones Eléctricas 171

2.1.1 Placas de Circuito Impreso 171

2.1.2 Conductores 171

2.1.3 Zócalos de Circuito Integrado 171

2.1.4 Reglamento Electrotécnico de Baja Tensión 171

2.1.5 Resistencias 172

2.1.6 Condensadores 173

2.1.7 Circuitos Integrados y Semiconductores 173

2.2 Especificaciones Mecánicas 173

Page 7: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

vi

2.2.1 Interconexionado de Placas 173

2.2.2 Ensayos, Verificaciones y Ajustes 174

3 Condiciones de la Ejecución 174 3.1 Descripción del Proceso 174

3.1.1 Encargo y Compra del Material 174

3.1.2 Fabricación del Circuito Impreso 174

3.2 Soldadura de los Componentes 175

4 Condiciones Facultativas 176

Bibliografía 177 Anexo 178 A1 Código del Programa 179 A1.1 Módulo Emisor 179

A1.2 Módulo Receptor 215

A2 Manuales de Funcionamiento 227 A2.1 Manual de Usuario de los Módulos Emisor / Receptor 227

A.2.1.1 Conexionado y Puesta en Marcha 227

A2.1.2 Funcionamiento del sistema 228

A2.1.3 Ejemplo de Configuración del Sistema 231

A2.2 Utilización de Labview 233

Page 8: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Memoria Descriptiva

Page 9: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

2

1 Objeto del Proyecto El presente proyecto tiene como objetivo el estudio, simulación, diseño y montaje de un módulo didáctico para el estudio de la codificación/decodificación de señales analógicas por modulación AM. La modulación se realizará de forma analógica, pero también se añadirán elementos de cifrado digital. También se realizará un programa en Labview para poder visualizar las señales, además de un manual de prácticas. 2 Titular El titular del presente proyecto es el Departament d´Enginyeria Electrònica, Elèctrica y Automática (DEEEA), de la Escola Tècnica Superior d´Enginyeria de la Universitat Rovira i Virgili situado en la Avenida Països Catalans num. 26, Campus Sescelades, 43007 de Tarragona. Como representantes del departamento se encuentran Abdelali El Aroudi y Enrique Cantó Navarro. 3 Destinatarios Este proyecto está dirigido principalmente a los estudiantes de segundo curso de Informática de la asignatura Sistemas y Señales, aunque también puede ser útil para cualquier estudiante que esté cursando una asignatura relacionada con las señales y sistemas. 4 Antecedentes Uno de los mayores problemas a los que se debe enfrentar un alumno que estudia una asignatura que se basa en fundamentos matemáticos, es que a menudo desconoce el significado verdadero que tienen las fórmulas y teoremas y su aplicación práctica en el mundo físico. Mediante este proyecto se pretende dar una solución a este problema, de modo que el alumno pueda entender mejor lo aprendido mediante formulación matemática al ver una aplicación real.

Page 10: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

3

5 Análisis de Fourier 5.1 Introducción Antes de empezar el estudio de los diferentes métodos de modulación AM se realizará una pequeña descripción del Análisis de Fourier. Este estudio es necesario ya que los conceptos y técnicas que en él se desarrollan, juegan un papel fundamental en el análisis y diseño de los sistemas que posteriormente se diseñarán. La mayoría de las señales, se describen en el dominio temporal. Es decir, lo que normalmente se representa es la forma de onda de una señal a lo largo del tiempo. Pero, esa representación, puede que no sea la mejor que se pueda dar de la información contenida en una señal. Hay determinada información que no puede observarse en el dominio temporal y que sí se puede ver en el de la frecuencia. Por este motivo es importante el estudio de las señales en el dominio de la frecuencia. Para realizarlo se utiliza el Análisis de Fourier, el cual consta de dos métodos: - Series de Fourier, que se utiliza para señales periódicas. - Transformada de Fourier, que se utiliza para señales no periódicas y periódicas. El análisis que se realizará a continuación es para señales de tiempo continuo. 5.2 Las Series de Fourier Mediante las series de Fourier se pueden describir señales periódicas por una combinación de señales armónicas (sinusoides). Gracias a esta herramienta se puede analizar una señal periódica observando su contenido frecuencial o espectro. Esto permite establecer la dualidad entre tiempo y frecuencia, de forma que operaciones realizadas en el dominio temporal tienen su dual en el dominio frecuencial. Las series de Fourier permiten escribir cualquier señal periódica s(t) de periodo T en la forma:

(1)

El coeficiente del desarrollo en serie de Fourier Cn se obtiene mediante la siguiente fórmula:

(2)

La expresión (1) se puede escribir como:

(3)

TeCts

n

tjnn

πωω 2

,)( 00 == ∑

+∞

−∞=

dtetsT

CT tjn

n ∫ −=0

0)(1 ω

∑+∞

−∞=

+=n

Ctnjn

neCts ))arg(( 0)( ω

Page 11: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

4

De las expresiones anteriores se observa que: - s(t) se puede expresar como una suma ponderada de fasores en las frecuencias 0, ±ω0, ±2ω0, ±3ω0, ±4ω0 ... - La amplitud correspondiente a cada frecuencia nω0 es Cn y la fase correspondiente es arg(Cn). - Cn no depende del tiempo t y sólo toma valores para frecuencias múltiplos enteros de la frecuencia fundamental ω0. - De (2) se puede demostrar que si la señal es real C-n = Cn (simetría par) y arg(C-n) = - arg(Cn) (simetría impar). Se tiene un espectro bilateral en el que Cn proporciona la amplitud y arg(Cn) la fase. - De (2) también se puede demostrar que la componente continua C0 coincide con el valor medio de la señal s(t). La expresión (1) se denomina serie exponencial de Fourier, pero también es posible representar la serie de Fourier en forma trigonométrica. Hay dos formas trigonométricas:

(4)

donde A0 = C0 , An = 2Re(Cn) y Bn = -2Im(Cn)

La segunda forma trigonométrica es:

(5)

La forma exponencial origina un espectro bilateral y las formas trigonométricas originan un espectro unilateral. Para el cálculo de Cn y teniendo en cuenta que la señal es real y su simetría, se puede hacer mas sencillo su cálculo. El tipo de simetría también nos dice si el coeficiente Cn es real o complejo. - Simetría par de s(t):

(6)

Se observa que el coeficiente Cn es real, lo que implica que

<±>

=000

)arg(n

nn Csi

CsiC

π

∑+∞

=

++=1

000 )()cos()(n

nn tnsinBtnAAts ωω

))arg(cos(2)(1

00 ∑+∞

=

++=n

nn CtnCCts ω

dttntsT

CT

n ∫=2/

0 0 )cos()(2

ω

Page 12: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

5

- Simetría impar de s(t):

(7) Se observa que el coeficiente es un imaginario puro, lo que implica que

<−

>+=

0)Im(2

0)Im(2)arg(

n

n

n

Csi

CsiC π

π

5.3 La Transformada de Fourier En el apartado anterior se ha visto el desarrollo en serie de Fourier como un método de análisis de señales periódicas. Pero cuando las señales no son periódicas, ya no es posible utilizar el análisis anterior. Para el análisis de señales no periódicas se utiliza la transformada de Fourier. Para aclarar cómo se produce el cambio del espectro discreto (de la serie de Fourier), al espectro continuo (de la transformada de Fourier) se puede considerar la señal s’(t) representada en la siguiente figura: (a) (b)

Figura 1. (a) señal periódica de período T, (b) señal periódica con período infinito

Si se va aumentando el período T manteniendo inalterada la anchura de la señal s’(t), hasta T→ ∞ , sólo queda un pulso, ya que el resto se ha desplazado al infinito, y se obtiene la señal s(t). Aumentar T tiene dos efectos sobre el espectro de s’(t): decrece la amplitud del espectro como 1/T, y también decrece la separación entre líneas como 2π/T. Cuando T tiende a inifinito, la separación entre líneas tiende a cero, con lo cual se tiene un espectro continuo. Matemáticamente lo que sucede es lo siguiente: Como s’(t) es periódica con periodo T, entonces s’(t) se puede expresar como

(8)

donde

(9)

s(t)

t 0

s’(t)

t 0 T

dttnsintsT

jC

T

n ∫−=2/

0 0 )()(2

ω

TeCts

n

tjnn

πωω 2

,)(' 00 == ∑

+∞

−∞=

dtetsT

CT

T

tjnn ∫−

−=2/

2/0)(

1 ω

Page 13: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

6

→+∞−∞→−

→∆→

∞→

∫∑,2/,2/

0

TTd

n

Tωωωω

Por tanto la transformada de Fourier es:

(10)

y su transformada inversa es:

(11)

A continuación se describen algunos de los teoremas de la transformada de Fourier: Linealidad Si

)()(

)()(

22

11

ω

ω

Xtx

Xtx

→←

→←F

F

entonces

(12) donde a y b son valores constantes. Es decir una combinación en el dominio del tiempo origina una combinación lineal en el dominio de la frecuencia. Desplazamiento temporal Si

)()( ωXtx →←F

entonces (13)

Es decir desplazar una señal en el tiempo no altera la amplitud del espectro de la señal. Su único efecto es que introduce un desplazamiento de fase en el espectro de fase.

dtetsS tj∫+∞

∞−

−= ωω )()(

ωωπ

ω deStS tj∫∞+

∞−= )(

21

)(

)()()()( 2121 ωω XbXatxbtxa +→←+ F

0tjeXttx ωω −→←− )()( 0F

Page 14: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

7

Dualidad Si

)()( ωXtx →←F

entonces (14)

Esta propiedad es útil cuando se quiere encontrar la transformada de Fourier de una señal que es similar a alguna de las transformadas conocidas. Desplazamiento en frecuencia Si

)()( ωXtx →←F

entonces (15)

Es decir, multiplicar la señal x(t) por ejω

0t en el dominio del tiempo equivale a un

desplazamiento en el dominio de la frecuencia. Esta propiedad también se llama teorema de modulación porque se logra un desplazamiento en el rango de frecuencias mediante una modulación de la función de la que se calcula la transformada de Fourier. En este caso la señal portadora es ejω0t. Convolución en el dominio temporal Si

)()( ωXtx →←F

)()( ωHth →←F

entonces (16)

Es decir la convolución de dos señales en el dominio temporal se transforma en la multiplicación de sus transformadas de Fourier en el dominio de la frecuencia Esta propiedad es una de las más importantes en el análisis de sistemas, ya que permite obtener su respuesta de una forma mucho más sencilla.

)(2)( ωπ −→← xtX F

)()( 00 ωωω −→← Xetx tj F

)()()()( ωω HXthtx →←∗ F

Page 15: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

8

Multiplicación en el dominio temporal Si

)()(

)()(

ω

ω

Mtm

Xtx

→←

→←F

F

entonces

(17)

La multiplicación de dos señales en el dominio temporal se traduce en la convolución de sus transformadas de Fourier en el dominio de la frecuencia. Esta propiedad se puede ver como una generalización del teorema de desplazamiento en la frecuencia. La forma de calcular la transformada de Fourier cuando se multiplican dos señales en el dominio del tiempo, es mediante la convolución de las mismas en el dominio de la frecuencia. Esta propiedad es muy importante en la modulación de señales. En el dominio del tiempo se está multiplicando las señales, pero en el de la frecuencia lo que se hace es una convolución. Diferenciación en el dominio del tiempo Si

)()( ωXtx →←F

y suponiendo que la primera derivada de x(t) existe entonces

(18) del mismo modo se puede generalizar para la n-sima derivada:

(19) Integración en el dominio del tiempo Si

)()( ωXtx →←F

entonces

(20) Si X(0)=0 se obtiene que

(21)

[ ])()(21

)()( ωωπ

MXtmtx ∗→←F

)()( ωω Xjtxdtd

→←F

)()()( ωω Xjtxdtd n

n

n

→←F

)()0()(

)( F ωπδωω

ττ Xj

Xdx

t+→←∫ ∞−

ωω

ττj

Xdx

t )()( →←∫ ∞−

F

Page 16: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

9

5.4 Función Delta de Dirac La función delta de Dirac o impulso unitario, se define como:

(22)

Sus propiedades más relevantes son:

(23)

(24) También presenta unas propiedades muy características que la hacen muy interesante para el estudio de los sistemas lineales:

- La convolución de cualquier señal con la delta de Dirac es la propia señal:

(25)

- Su transformada de Fourier es:

(26)

- Aplicando el teorema de dualidad se obtiene fácilmente que:

(27)

- Si al resultado anterior se le aplica la propiedad de desplazamiento en frecuencia, entonces

se obtiene que: (28)

Es decir la exponencial compleja en el dominio del tiempo, se transforma en el dominio de la frecuencia en una función delta desplazada.

∫∞

∞=

=∞≠

=-

1)( quecumplir debe sey 000

)( dtttsitsi

t δδ

)()0()()( txtxt δδ =

∫∞

∞=

-)0()()( xdtttx δ

∫ ∫∞

∞=−=−=∗

- -)()()()()()()( txdtxdtxttx ττδτττδτδ

]∫∞

∞ =−− ===

- 0 1)()( ttjtj edtett ωωδδ ]F[

)(21 ωδπ→←F

)(21 00 ωωδπω −→←⋅ Ftje

Page 17: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

10

5.5 Transformada de Fourier de una Señal Periódica Se sabe que una señal s(t) periódica se puede representar en la forma:

∑+∞

−∞=

=n

tjnn eCts 0)( ω

También se sabe que:

)(2 00 ωωδπω ne tjn −→←F

Por lo tanto la transformada de Fourier de s(t) será:

(29)

Es decir para una señal periódica la transformada de Fourier consiste en deltas situadas en la frecuencia fundamental y en los múltiplos enteros de la misma. La magnitud de cada impulso es igual a la magnitud del coeficiente Cn respectivo en la serie de Fourier. Para señales de un solo pulso, la transformada de Fourier tiene la misma forma que la envolvente de magnitud de la serie de Fourier de una señal periódica del mismo pulso. 5.6 Transformadas de las relaciones en los elementos pasivos A continuación se calcula la transformada de Fourier de las expresiones de las variables en función del tiempo, de los elementos pasivos, en variables expresadas en función de la frecuencia. Aplicando estas transformaciones, se facilita mucho el análisis de los circuitos ya que en lugar de trabajar con integrales y derivadas, se trabaja con impedancias. En un resistor la tensión en función del tiempo es: v(t) = R · i(t) (30) y aplicando la transformada de Fourier se obtiene:

V(ω) = R · I(ω) (31)

∑+∞

−∞=

−=n

n nCS )(2)( 0ωωδπω

Page 18: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

11

)()0()(

)( ωπδω

ωω I

CjI

V +=

ωω

ωCjI

V)(

)( =

En una bobina la tensión en función del tiempo (considerando condiciones iniciales nulas) es:

(32) aplicando la transformada de Fourier se obtiene:

(33) Se puede observar que existe una relación de proporcionalidad entre V(ω) e I(ω). El factor de proporcionalidad es Ljω. Por similitud a lo que ocurre entre v(t) e i(t) en un resistor, este factor se denomina impedancia compleja Z(ω) de la bobina. En un condensador la tensión en función del tiempo (también considerando condiciones iniciales nulas) es:

(34) y aplicando la transformada de Fourier se tiene:

(35) Como I(0)=0, ya que las condiciones iniciales son nulas, finalmente queda:

(36) Como en el caso de la bobina también se observa que existe una relación de proporcionalidad entre V(ω) e I(ω). El factor de proporcionalidad es 1/Cjω y se denomina impedancia compleja Z(ω) del condensador.

dtdi

Ltv =)(

)()( ωωω IjLV ⋅⋅=

∫= dttiC

tv )(1

)(

Page 19: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

12

6 Estudio de la Modulación AM 6.1 Introducción La modulación es el proceso en el cual una señal que contiene información (señal moduladora) se inserta en una segunda señal (señal portadora). Al proceso inverso, es decir extraer la señal que contiene la información, se llama demodulación. Existen muchos métodos de modulación, pero este estudio se centrará exclusivamente en la modulación de amplitud, también conocido como amplitud modulada o AM. En este método, la señal que se desea transmitir se usa para modular la amplitud de otra señal que es la portadora. El análisis se realizará en todo momento para señales en tiempo continuo. 6.2 Métodos de Modulación AM A continuación se estudiarán los métodos de modulacion AM más conocidos y utilizados en la práctica. 6.2.1 Modulación AM con una Portadora Exponencial Compleja En este método de modulación se utiliza como señal portadora una exponencial compleja de la forma:

(37)

Si se quiere realizar la modulación de una señal s(t) con p(t), o lo que es lo mismo una multiplicación de ambas señales, se tiene:

(38) La frecuencia ωp se conoce como la frecuencia portadora. Por facilidad se escoge Ap=1 y φp=0. De este modo la señal modulada queda así:

(39) Como se ha visto anteriormente una multiplicación en el dominio del tiempo equivale a una convolución en la frecuencia. Por lo tanto utilizando esta propiedad se obtiene:

(40)

La transformada de Fourier de p(t) es:

(41) y sustituyendo en (40) se obtiene:

)()( pptjp eAtp φω +=

)()()( tptstm =

)()()( tj petstm ω=

)()(21

)( ωωπ

ω PSM ∗=

)(2)( pP ωωδπω −=

Page 20: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

13

)(2)(21

)()(21

)( pSPSM ωωδπωπ

ωωπ

ω −∗=∗=

(42) Como se puede observar, el espectro de la señal modulada m(t) es el de la entrada desplazado en frecuencia por una cantidad igual a la frecuencia portadora ω0. En la siguiente figura se muestra un ejemplo:

(a)

(b) (c)

Figura 2. (a) espectro de la señal moduladora s(t), (b) espectro de la portadora p(t),

(c) espectro de la señal de amplitud modulada m(t) Observando la ecuación (39) resulta evidente que la señal s(t) puede recuperarse a partir de la señal modulada m(t) si se multiplica por la exponencial compleja e-jωpt, es decir:

(43) En el dominio de la frecuencia, esto tiene el efecto de desplazar el espectro de la señal modulada a su posición original. A este proceso de recuperar la señal original a partir de la señal modulada se le conoce como demodulación. El análisis anterior se ha realizado considerando que la portadora del modulador y la del demodulador están sincronizadas en fase y en frecuencia. Por este motivo este método se llama demodulación síncrona.

ωp ω

P(ω)

ω ωM -ωM

S(ω)

1

ωp

(ωp+ωM) (ωp-ωM) ω

M(ω)

1

)()( pSM ωωω −=

tj petmts ω−= )()(

Page 21: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

14

6.2.2 Modulación AM con una Portadora Sinusoidal En este caso la frecuencia portadora es una señal sinusoidal de la forma:

(44) Tambien por simplicidad se hace Ap=1 y φp=0. De este modo la señal modulada queda así:

(45) Teniendo en cuenta que:

tjtjp

pp eet ωωω −+=21

21

)cos(

El espectro de la señal portadora es:

(46)

Aplicando el teorema de convolución en frecuencia se obtiene:

[ ])()()(21

)( ppSM ωωδπωωδπωπ

ω −+−∗=

(47)

En la figura (3) se muestra este sistema de modulación en el dominio de la frecuencia. Se puede observar que en este caso hay dos réplicas del espectro de la señal original, una centrada en +ωp y la otra en -ωp. En el caso de la modulación utilizando como portadora una exponencial compleja, la señal s(t) siempre se puede recuperar a partir de la señal modulada para cualquier valor de la frecuencia de la portadora. Es importante destacar que en este caso, debido a la existencia de dos réplicas, s(t) se puede recuperar a partir de m(t) sólo si ωp >ωM , ya que de lo contrario las dos réplicas se solaparían en frecuencia. En la figura (4) se puede apreciar claramente este efecto. En ella se representa M(ω) para un valor de frecuencia portadora de ωp= ωM/2. Se puede ver que en este caso la señal s(t) ya no se puede recuperar a partir de m(t) ya que las réplicas del espectro de la señal original se solapan.

)cos()( ppp tAtp φω +=

)cos()()( ttstm pω=

)()()( ppP ωωδπωωδπω −+−=

)(21

)(21

)( ppM ωωδωωδω ++−=

Page 22: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

15

(a) (b) (c)

Figura 3. (a) espectro de la señal moduladora s(t), (b) espectro de la portadora p(t), (c) espectro de la señal de amplitud modulada m(t)

(a) (b)

Figura 4. (a) espectro de la señal moduladora s(t), (b) espectro de la señal modulada

con las réplicas solapadas

ω ωM -ωM

S(ω)

1

π π

ωp -ωp

P(ω)

ω

ω ωp

(ωp+ωM) (ωp-ωM)

M(ω)

1/2

-ωp

(ωp+ωM) (ωp-ωM)

1

ω ωM -ωM

S(ω)

ω

M(ω)

1/2

ωp -ωp (ωp+ωM)

(-ωp-ωM)

Page 23: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

16

El proceso de demodulación de una señal que ha sido modulada con una portadora sinusoidal (suponiendo que ωp >ωM ) consiste en volver a modular la señal obtenida y aplicar luego un filtro paso bajo. Si se considera una señal modulada:

(48) Entonces volviendo a modular la señal m(t) se obtiene:

(49)

Haciendo uso de la identidad trigonométrica del coseno del ángulo doble: )(sen)(cos)2cos( 22 xxx −=

y teniendo en cuenta que: 1)(cos)(sen 22 =+ xx

se obtiene que:

( ))2cos(121

)()( ttstf pω+=

(50)

Se observa que f(t) está formada por dos términos, uno que es un medio de la señal original y otro que que es un medio de la señal original modulada con una portadora sinusoidal de frecuencia el doble de la frecuencia portadora original ωp. Haciendo la transformada de Fourier de f(t) se obtiene:

(51)

)cos()()( ttstm pω=

)(cos)()( 2 ttstf pω=

)2cos()(21

)(21

)( ttststf pω+=

)2(41

)2(41

)(21

)( pp SSSF ωωωωωω ++−+=

Page 24: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

17

En la figura (5) se puede ver el espectro de f(t). Esta claro que para poder obtener la señal original hay que filtrar paso bajo la señal f(t). (a) (b) (c)

Figura 5. (a) espectro de la señal modulada m(t), (b) espectro de la señal portadora (c) espectro de la señal modulada multiplicada por la portadora.(La línea punteada

indica el filtro paso bajo.) El análisis anterior se ha realizado considerando que la portadora del modulador y la del demodulador están sincronizadas en fase y en frecuencia. Por este motivo este método se llama demodulación síncrona. Para el caso de modulación de amplitud sinusoidal, se suele utilizar un procedimiento alternativo de demodulación conocido como demodulación asíncrona. De este modo se evita la necesidad de que el modulador y el demodulador estén sincronizados. Para poder utilizar este método de demodulación es necesario que : - la señal moduladora s(t) sea siempre positiva, que se consigue sumandole un valor constante apropiado A en el modulador. - la frecuencia ωp de la señal portadora sea mucho más alta que ωM (frecuencia más alta en la señal moduladora).

ω ωp

(ωp+ωM) (ωp-ωM)

M(ω)

1/2

-ωp

(ωp+ωM) (ωp-ωM)

π π

ωp -ωp

P(ω)

ω

ω ωM -ωM

F(ω)

1/2

1/4 1/4

(2ωp-ωM) (-2ωp+ωM) 2ωp -2ωp

Page 25: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

18

Un ejemplo de modulación asíncrona de una señal s(t) se muestra en la figura (6).

Figura 6. Señal s(t) modulada en un sistema asíncrono.

Se observa que la envolvente de la señal modulada (curva punteada) , es una curva suave que conecta sus picos, lo cual se puede utilizar como una aproximación razonable de la señal moduladora s(t). Por lo tanto s(t) puede recuperarse en forma aproximada mediante el uso de un sistema que rastree estos picos para extraer la envolvente. A este tipo de sistema se le conoce como detector de envolvente. Un ejemplo sencillo de un circuito que cumple este fin se observa en la figura (7). Este circuito también suele ir seguido de un filtro paso bajo para reducir las variaciones que aparecen en la frecuencia portadora.

D

C R

Figura 7. Circuito para detección de envolvente. Para utilizar el detector de envolvente para demodulación asíncrona, se necesita que el valor A sea lo suficientemente grande como para que s(t)+A sea positivo. Si Vm es la amplitud máxima de s(t), entonces para que s(t)+A sea positivo, se necesita que A>Vm. La razón Vm/A se conoce como el índice de modulación m. Expresado en porcentaje se le conoce como porcentaje de modulación. En la figura (8) se muestra un ejemplo de modulación asíncrona de una señal s(t) sinusoidal para diferentes porcentajes de modulación. Y en la figura (9) se observa el espectro de las señales moduladas anteriores. Se puede observar que una señal modulada con un sistema asíncrono tiene la componente adicional Acosωt (donde ω es la frecuencia de la señal portadora) la cual no está presente y no es necesaria en los sistema de modulación síncronos vistos anteriormente. También se puede observar que a medida que el porcentaje de modulación aumenta, la cantidad relativa de la portadora presente en la salida modulada disminuye. Puesto que la componente de la portadora en la salida no contiene información, su presencia representa una ineficacia y, por lo tanto , en este sentido es conveniente que el índice de modulación resulte tan grande como sea posible. Pero también hay que tener en cuenta, que la capacidad de un detector de envolvente como el de la figura (7) para seguir la envolvente y de ahí extraer s(t), mejora conforme el índice de modulación disminuye. Por lo tanto, hay un compromiso entre la eficiencia del sistema, en términos de la potencia en la salida del modulador, y la calidad de la señal demodulada.

Page 26: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

19

Figura 8. Señal modulada en un sistema asíncrono con diferentes

porcentajes de modulación.

Figura 9. Espectro de una señal modulada en un sistema asíncrono

con diferentes porcentajes de modulación.

Page 27: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

20

6.2.3 Modulación AM con una Portadora de Tren de Pulsos Este método de modulación AM consiste en utilizar una portadora que es un tren de pulsos, como se muestra en la figura (10). Como se puede apreciar consiste en enviar secciones de s(t) igualmente espaciadas en el tiempo. (a) (b) (c)

Figura 10. (a) señal original s(t), (b) señal portadora

(c) señal modulada La señal modulada será:

(52) La transformada de Fourier de p(t) es:

(53)

Para el cálculo de Cn y teniendo en cuenta que p(t) es una señal real y con simetría par se puede simplificar y hacer:

(54)

s(t)

t 0

m(t)

t 0

p(t)

t 0 T

)()()( tptstm =

∑+∞

−∞=

−=n

pn nCP )(2)( ωωδπω

p

p

p

pp

T

pn n

n

TA

n

tn

TA

dttnAT

dttntsT

τω

ω

ωωω

τ

τ )sen(2)sen(2)cos(

2)cos()(

2 2

0

2/

0

2/

0=

=== ∫∫

Page 28: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

21

Ahora se hace aparecer la función sinc(x), y finalmente se obtiene:

(55)

La representación de P(ω) se muestra en la figura (11.b) Una vez sabida la transformada de Fourier de p(t) ya se puede calcular la transformada de Fourier de M(ω) teniendo en cuenta la propiedad de multiplicación en en el tiempo:

(56) Es decir M(ω) es una suma de réplicas de S(ω) y desplazadas. M(ω) se puede observar en la figura (11.c) Para recuperar la señal s(t) basta con realizar un filtrado paso bajo de la señal m(t), con una frecuencia de corte mayor que ωM y menor que ωp-ωM. Pero para que lo anterior se pueda realizar, la frecuencia de la señal portadora debe ser como mínimo, el doble de la máxima frecuencia de la señal s(t), es decir , que ωp>2ωM. Si no se cumple esta condición las réplicas de S(ω) se solapan y entonces ya no es posible recuperar la señal original s(t). Esta condición se puede observar claramente en la figura (11.c)

=

2

τωτ pn

nsinc

TA

C

∑+∞

−∞=

−=∗=n

pnSCPSM )()()(21

)( ωωωωπ

ω

Page 29: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

22

(a) (b) (c)

Figura 11. (a) espectro de la señal original s(t), (b) espectro de la señal portadora (c) espectro de la señal modulada

S(ω)

ω ωM -ωM

1

M(ω)

P(ω)

ωM -ωM

Page 30: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

23

6.2.4 Modulación AM con una Portadora Cuadrada Bipolar En este caso la señal portadora es una señal cuadrada bipolar con un ciclo de trabajo del 50%. En la figura (12) se muestra el proceso en el dominio del tiempo. (a) (b) (c)

Figura 12. (a)señal original s(t), (b) señal portadora (c) señal modulada

s(t)

t 0

m(t)

t 0

T

p(t)

t 0

A

-A

Page 31: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

24

La señal modulada será: (57)

La transformada de Fourier de p(t) es:

(58)

Para el cálculo de Cn y teniendo en cuenta que p(t) es una señal real y con simetría impar se puede simplificar y hacer:

2

0

2/

0

2/

0

)cos(2)sen(

2)sen()(

2T

p

pp

T

pn ntn

TAj

dttnAT

jdttnts

Tj

C

−−=

−=

−= ∫∫ ω

ωωω

τ

(59)

Teniendo en cuenta que T=2π/ωp se obtiene:

(60)

Finalmente se tiene que:

(61)

La transformada de Fourier de m(t) es:

(62)

En la figura (13) se puede observar que la señal portadora está formada por una sucesión de deltas en frecuencias múltiplos impares de la frecuencia fundamental de la señal portadora, y que después de realizar la modulación, se obtiene el espectro de la señal s(t) replicado en cada componente frecuencial de la portadora.

)()()( tptstm =

∑+∞

−∞=

−=n

pn nCP )(2)( ωωδπω

−=

−= 1)

2cos(

2)0cos()

2cos(

2 Tn

TnAjT

nTn

AjC p

pp

pn ω

ωω

ω

[ ]1)cos(1)22

cos(2

2−=

−= π

πωπ

ωω

ωπ

nn

Ajn

n

AjC

pp

pp

n

[ ]

−=

=−= impar esn si

2par esn si0

1)cos(nAjn

nAj

Cn

ππ

π

∑+∞

−∞=

−−=∗=n

pnSjn

APSM )(

2)()(

21

)( ωωπ

ωωπ

ω

Page 32: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

25

(a) (b) (c)

Figura 13. (a) espectro de la señal original s(t), (b) espectro de la señal portadora (c) espectro de la señal modulada

Para recuperar la señal original basta con volver a multiplicar la señal obtenida m(t) por la misma señal portadora p(t), de este modo se tiene:

(63)

Se observa que al elevar la señal portadora (señal cuadrada bipolar) al cuadrado se obtiene una función constante de amplitud A2. Por tanto se tiene:

(64) Teniendo en cuenta que la transformada de Fourier de la señal constante es 2πδ(ω), se obtiene la transformada de f(t):

(65)

S(ω)

ω ωM -ωM

1

ω

|P(ω)|

ωp 3ωp 5ωp -ωp -3ωp -5ωp

4A/π 4A/3π

4A/5π

4A/π 4A/3π

4A/5π

ωp+ωM 3ωp 5ωp -ωp -3ωp -5ωp ωp-ωM

|M(ω)|

ω

2A/π 2A/3π

2A/5π

2A/π 2A/3π

2A/5π

)()()()()()()()( 2 tptstptptstptmtf ===

)(1)()( 2 tAtstf =

)()(2

2)(2)(

21

)(2

2 ωδωπ

πωπδω

πω ∗=∗= S

AASF

Page 33: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

26

Y teniendo en cuenta que la convolución de cualquier señal con la delta de Dirac es la propia señal, finalmente se tiene que:

(66) Es decir se obtiene el espectro de la señal original centrado en el origen, pero su amplitud está modificado por el valor de A2 ( donde A es la amplitud de la señal portadora). Para que la amplitud del espectro obtenido después de realizar la demodulación, sea igual a la amplitud del espectro de la señal original simplemente hay que hacer A=1. Pero para que lo anterior se pueda realizar, la frecuencia de la señal portadora debe ser como mínimo, mayor que la máxima frecuencia de la señal s(t), es decir , que ωp>ωM. Si no se cumple esta condición las réplicas de S(ω) se solapan y entonces ya no es posible recuperar la señal original s(t). Esta condición se puede observar claramente en la figura (13.c) 6.3 Aplicación de la Modulación AM en la Codificación de Audio La Modulación AM suele utilizarse en la transmisión de señales de audio (como la voz o la música) a través de la atmósfera. De este modo, mediante la modulación AM, la señal a transmitir (señal moduladora) se inserta en otra señal de frecuencia más alta (señal portadora). La necesidad de insertar la señal a transmitir en otra de mayor frecuencia, se debe a que la atmósfera atenúa rápidamente las señales en el intervalo de frecuencia audible (20 Hz a 20 kHz), pero en cambio propaga señales en un intervalo de frecuencia más alto a través de distancias más grandes. La aplicación anterior es la habitual, para la cual se utiliza la modulación AM. Pero también es posible, utilizarla para distorsionar una señal de una manera sencilla. Esta distorsión se lleva a cabo modulando la señal a codificar con una frecuencia determinada. Como se ha visto en apartados anteriores, la modulación provoca un desplazamiento del espectro de la señal, aunque dependiendo del método utilizado se producen algunos efectos particulares para cada uno de ellos. Al provocar este desplazamiento la señal se vuelve razonablemente ininteligible. Como el oído humano sólo puede percibir señales de frecuencia comprendidas entre 20 Hz y 20 kHz aproximadamente, esto implica, que si se quiere oír la señal codificada, la frecuencia de modulación no deberá superar la frecuencia de 20 kHz. De lo contrario no se podría oír la señal de audio codificada. También mencionar, que el método de modulación AM con una portadora de tren de pulsos, no es el más indicado para codificar una señal, ya que como se puede apreciar en la figura (11), al realizar la modulación, una de las copias que se producen no sufre ningún desplazamiento. Por lo tanto de todos los métodos de modulación estudiado, éste será el que provoque una menor distorsión de la señal.

)()( 2 ωω SAF =

Page 34: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

27

7 Estudio del Sistema de Cifrado y Descifrado Basado en LFSR 7.1 Descripción del Sistema Este sistema de cifrado opera sobre unidades de información pequeñas, usualmente bits, cifrando de uno en uno y obteniendo un nuevo dato (bit) en su salida, en cada pulso de reloj. Este tipo de cifrado se denomina continuo. Este sistema de cifrado está formado por un generador pseudoaleatorio de bits, que se utilizan para realizar una XOR con el conjunto de bits que constituyen el mensaje a cifrar, tal y como se muestra en la figura (14). La operación de cifrado se realiza bit a bit, con la temporización controlada por un reloj. El generador pseudoaleatorio puede verse como una fuente de ruido que sirve para agregar confusióna al mensaje a transmitir. El generador está parametrizado por una clave inicial que define su estado inicial. Para implentar este tipo de generadores pseudoaleatorios se suelen emplear registros de desplazamiento con realimentación lineal (LFSR), en las versiones más simples. Las más complicadas utilizan también alguna función no lineal para mejorar sus propiedades de aleatoriedad. El procedimiento de descrifado es muy similar al de cifrado, y se muestra en la figura (15). En este caso se vuelve a realizar una XOR entre el mensaje cifrado recibido y el valor que proporciona el generador aleatorio. El único requisito a imponer para asegurar el correcto descifrado del mensaje transmitido (mensaje original) es que la clave sea conocida en ambos extremos. Esto supone que antes de empezar el cifrado, el emisor (cifrador) debe enviar la clave inicial al receptor (descifrador).

Figura 14. Esquema genérico de un cifrador continuo

Generador pseudoaleatorio

de bits Clave inicial

Fuente de bits (mensaje original) + Mensaje cifrado

Page 35: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

28

Figura 15. Esquema genérico de un descifrador continuo 7.2 Los LFSR como Generadores Pseudoaleatorios Los circuitos LFSR (Linear Feedback Shift Registers) se utilizan en muchos sistemas electrónicos para generar secuencias pseudoaleatorias con un período garantizado arbitrariamente largo, de forma simple y eficiente. El esquema más habitual de un circuito LFSR es el siguiente:

Figura 16. Estructura genérica de un LFSR de 4 bits Las etapas R son biestables, y las etapas X son funciones XOR. Como se puede observar en la figura (16), un LFSR está formado por un registro de desplazamiento (etapas R), el cual se realimenta mediante una combinación lineal (módulo 2) de los bits que forman el estado interno del registro. La última etapa del registro de desplazamiento (R4) es la salida. Aunque en la figura (16) se ha colocado una XOR (etapa X) para cada bit de estado, en la práctica sólo se emplean algunos de ellos. La forma de elegir cuáles se usan no es arbitaria, sino que se basa en una teoría matemática compleja (teoría de campos finitos de Galois). Por este motivo, en la práctica se utiliza la tabla (1), la cual indica para un LFSR de m etapas R, qué realimentación de bits del registro de desplazamiento, produce una secuencia de bits de salida de longitud máxima 2m-1.

R1

X X X

Salida R2 R3 R4

Generador pseudoaleatorio

de bits Clave inicial

+ Mensaje cifrado Mensaje original

Page 36: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

29

m Bits de Realimentación m Bits de

realimentación 3 3, 2 10 10, 7 4 4, 3 11 11, 9 5 5, 3 12 12, 6, 4, 1 6 6, 5 13 13, 4, 3, 1 7 7, 6 14 14, 5, 3, 1 8 8, 6, 5, 4 15 15, 14 9 9, 5 16 16, 15, 13, 14

Tabla 1. Elección de los bits de realimentación para conseguir una

secuencia de bits de longitud máxima 2m-1. A continuación se realiza un ejemplo concreto para aclarar lo explicado anteriormente. Se va a suponer que se quiere realizar un LFSR de m=4 (es decir 4 etapas R) y que se quiere obtener una secuencia de salida de longitud máxima 2m-1. Consultando la tabla (1), se obtiene que para obtener una secuencia de longitud máxima 2m-1 con un LFSR de 4 etapas, se deben realimentar los bits 4 y 3 del registro de desplazamiento. Por lo tanto se tiene lo siguiente:

Figura 17. Estructura de un LFSR de 4 bits para conseguir una secuencia

de bits de longitud máxima 2m-1. La secuencia de salida en función de los bits que forman el estado interno del registro de desplazamiento, se muestra en la tabla (2). Se supone que la carga inicial del registro de desplazamiento es ‘0001’. Efectivamente se observa que la longitud de la secuencia es 24-1=15. Es decir se obtiene una secuencia de salida de periodo 2m-1. Es importante destacar que si la carga inicial del registro de desplazamiento es ‘0000’, la salida que se genera es siempre cero. En la figura (18) se observa claramente que la salida es una secuencia de periodo 2m-1= 15.

Salida R1 R2 R3 R4

+

Page 37: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

30

R1 R2 R3 R4 Salida 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0

Tabla 2. Secuencia de salida en función de los estados internos

del registro de desplazamiento del LFSR de la figura 17.

Figura 18. Secuencia de salida del LFSR de la figura 17.

2m-1

Salida

t

Page 38: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

31

8 Descripción General del Sistema a Diseñar El sistema a diseñar es un codificador y un descodificador de audio, basándose en la modulación AM. En la siguiente figura se muestra un esquema simplificado del sistema que se pretende diseñar:

Figura 19. Esquema simplificado del sistema

Se puede observar que el sistema está compuesto por un módulo emisor y un módulo receptor. El mecanismo de codificación básico estará basado en la modulación AM, pero para hacer más robusto al sistema, la frecuencia de modulación (fp) podrá ser modificada por el módulo emisor, a intervalos de tiempo dados, de acuerdo a una secuencia de frecuencias predeterminada, haciendo más difícil por tanto su decodificación ilegal. El emisor recibe la señal a emitir, la codifica y la envia al receptor, junto con la frecuencia de modulación utilizada (pero cifrada) , y el receptor descifra la frecuencia de modulación que ha utilizado el emisor y decodifica la señal recibida y, de este modo recupera la señal original. El sistema dispondrá de dos frecuencias con las que realizar la codificación / decodificación. Dichas frecuencias podrán cambiar a lo largo de una emisión, siendo necesario que las utilizadas en el proceso de codificación y decodificación coincidan. La selección de la frecuencia de modulación a utilizar en cada instante se hace en el módulo emisor, que es el que controla el sistema en todo momento. Ello implica la necesidad de que el emisor envie al receptor la frecuencia que esta utilizando en cada momento. Antes de enviar la frecuencia utilizada, esta se cifra mediante un sistema de cifrado digital (basado en LFSR).

canal transmisión

Acondicionador de señal

Generador fp

Codificador de audio

Acondicionador a línea de salida

Cifrador fp

señal a emitir

Decodificador de audio

Acondicionador de salida

Acondicionador de línea de entrada

Generador fp Descifrador fp

señal recuperada

Emisor

Receptor

Page 39: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

32

9 Módulo Emisor 9.1 Arquitectura Los bloques que lo forman se observan en la siguiente figura:

Figura 20. Esquema de bloques del módulo emisor - Unidad de entrada: A través de ella el usuario puede seleccionar la secuencia de frecuencias de modulación en el resto del sistema, el intervalo de cambio de dichas frecuencias y la clave inicial del algoritmo de cifrado. También es posible seleccionar que el sistema funcione de modo manual o automático. - Unidad de visualización: Proporciona información sobre el estado del cifrador, la frecuencia portadora y la cifrada. También permite visualizar los parámetros que se modifican mediante la unidad de entrada. - Selector de fp: Se encarga de decidir cuál de las frecuencias portadoras se utilizará en el modulador, generando la secuencia deseada de valores. - Cifrador de fp: Cifra adecuadamente la frecuencia de modulación a utilizar antes de introducirla en el sistema de transmisión, para ocultar su verdadero valor ante posibles espías en el canal de transmisión. - Acondicionador de señal: Adapta los niveles de tensión de la señal procedente de la fuente de audio a los necesarios en el resto del sistema, ofrece una impedancia de entrada adecuada a dicha fuente y fija el ancho de banda de la señal a procesar. - Modulador: Genera una señal conteniendo toda la información frecuencial de la original, pero lo suficiente deformada como para que sea razonablemente ininteligible, si no se dispone del descifrador correspondiente. - Acondicionador a línea de salida: Para que la señal de salida no se vea afectada por la impedancia de los elementos que se conecten a la salida. - Generador de relojes: Se encarga de generar las señales que sincronizan los procesos digitales y de generar las frecuencias de modulación.

Selector de fp

fp cifrada

señal original

señal original codificada

Unidad de visualización

Unidad de entrada

Modulador

Generador de relojes

Acondicionador a línea de salida

Cifrador de fp

Acondicionador de señal

Page 40: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

33

Para facilitar el diseño del sistema, se hará una división entre parte analógica y parte digital. Se considerará que la parte analógica está formada por los bloques acondicionador de señal, modulador y acondicionador a línea de salida. El resto de bloques, cifrador de fp, selector de fp, unidad de visualización, unidad de entrada y generador de relojes se considerarán pertenecientes a la parte digital. 9.2 Solución Adoptada del Subsistema Analógico 9.2.1 Alimentación La alimentación del sistema será simétrica, ±5V para el subsistema analógico y +5V para el digital. Se han escogido estos valores, ya que de este modo se aprovechará la misma tensión para el sistema analógico y digital. 9.2.2 Señales de Entrada La elección de las señales a tratar es importante, ya que al tratarse de un prototipo didáctico, se ha buscado que mediante las señales de entrada introducidas, el alumno pueda visualizar y también escuchar el efecto que provoca la codificación sobre las mismas. Por este motivo se han decidido tres posibles fuentes de entrada: - Micrófono - Fuente de audio convencional, procedente de un walkman o CD. - Generador de funciones, disponible en el laboratorio. 9.2.3 Acondicionador de señal Antes de poder realizar la modulación de la señal de entrada, es necesario adaptar sus niveles de tensión a unos valores apropiados para evitar que se produzcan distorsiones de la señal. Para ello se ha utilizado un filtro pasivo paso alto de primer orden y un filtro activo paso bajo de cuarto orden, para fijar el ancho de banda de la señal de entrada y un amplificador no inversor para conseguir los niveles de tensión adecuados. Lo anterior se puede observar en la siguiente figura:

Figura 21. Esquema del bloque acondicionador de señal

filtro paso-bajo

amplificador no inversor

filtro paso-alto

señal de entrada

señal limitada en banda y con niveles adecuados

Page 41: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

34

9.2.4 Modulador El modulador será el encargado de multiplicar la señal de entrada ( ya limitada en banda y con la amplitud requerida) por la señal portadora. Normalmente, la señal portadora suele ser sinusoidal, pero para evitar tener que diseñar un oscilador sinusoidal de frecuencia variable y así facilitar el diseño, se ha optado por utilizar una señal portadora cuadrada bipolar de ciclo de trabajo del 50%. Por lo tanto se necesita un circuito que sea capaz de realizar la multiplicación entre la señal de entrada y la portadora. En el mercado existen circuitos integrados que efectúan esta operación (como el MC1496, de motorola), pero el diseño de la red de polarización no es sencillo. Por este motivo se ha buscado un método alternativo que consiga el mismo efecto. Como el método de modulación a utilizar, consiste en multiplicar la señal de entrada con una portadora cuadrada bipolar. Esto es lo mismo que trocear la señal de entrada de acuerdo al período de la señal portadora, y seleccionar la misma señal de entrada en un semiperiodo (en ciclos positivos) y la señal invertida en otro semiperiodo (ciclos negativos). Para ello se utilizará un multiplexor analógico tal y como se indica en la siguiente figura.

Figura 22. Esquema de un modulador equivalente con portadora cuadrada bipolar, sin usar un multiplicador analógico

Como se puede observar en la figura (22), una de las entradas del multiplexor analógico se conecta con la señal de entrada, y la otra con la señal de entrada invertida. En la salida del multiplexor se obtiene alternativamente una de las dos entradas, de acuerdo con el valor de una señal cuadrada (señal digital) que se aplica en la pata de control del multiplexor. El multiplexor utilizado es el 74HC4053.

+G

-G

Señal de entrada

control

Señal modulada MUX

Page 42: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

35

9.2.5 Acondicionador a Línea de Salida Como se puede apreciar en la figura (23), la señal ya modulada se envía al canal de transmisión a través de un amplificador de ganancia unidad, para adaptar la impedancia de salida de la señal modulada. También se observa que las señales de entrada, señal de entrada acondicionada y señal modulada se conectan a un multiplexor analógico. De este modo se puede seleccionar digitalmente la señal que se quiere visualizar u oír. Justo a la salida del multiplexor se filtra la señal con un filtro paso alto, para eliminar alguna posible componente de continua. Para atacar los auriculares se hace pasar la señal a través de un amplificador de ganancia unidad, para adaptar su impedancia. Para el caso del osciloscopio no es necesario un adaptador de impedancia, ya que como su impedancia de entrada es elevada no provocará ninguna atenuación en la señal de salida.

Figura 23. Esquema del bloque acondicionador de señal 9.3 Solución Adoptada del Subsistema Digital 9.3.1 Cifrador y Selector de fp

El sistema de cifrado, para la frecuencia portadora, que se ha decidido utilizar es el basado en LFSR´s (Linear Feedback Shift Registers) que ya se ha estudiado anteriormente. Se han descartado otros métodos de cifrado debido a que éste es muy sencillo de implementar. Para su implementación se podría haber utilizado un registro de desplazamiento integrado, pero se ha rechazado esta opción y se ha decidido implementar este sistema de cifrado mediante software en un microcontrolador PIC, concretamente el 16F876. Se ha decidido utilizar un microcontrolador, debido a que este mismo microcontrolador se encargará de controlar más dispositivos que a continuación se verán. De este modo se ahorrará espacio y circuiteria. Se ha escogido este microcontrolador en concreto, ya que dispone de un número de entradas y salidas suficientes para nuestro propósito, además de diversos módulos integrados que facilitan el diseño de aplicaciones. El selector de la frecuencia a utilizar (fp), que es quien decide que frecuencia se utiliza en cada momento, también se ha decidido implementarlo mediante software con el PIC 16F876, ya que de este modo se ahorra espacio y se gana fiabilidad.

1 canal transmisión

Señal de entrada acondicionada

control digital

MUX

Señal de entrada

Señal modulada

filtro paso-alto 1

osciloscopio

Page 43: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

36

9.3.2 Unidad de entrada Como unidad de entrada se ha decidido utilizar cuatro pulsadores, mediante los cuales se podrán modificar los parámetros del sistema. También se podría haber utilizado un teclado hexadecimal, pero se ha descartado esta segunda opción debido a su mayor precio y sus mayores dimensiones. 9.3.3 Unidad de Visualización Como unidad de visualización se ha decidido utilizar un display LCD, mediante el cual, a través de un menú se podrán visualizar los diferentes parámetros del sistema, para facilitar así su selección por parte del usuario. También se ha decidido colocar 6 diodos LED mediante los cuales se podrá visualizar en todo momento el estado del LFSR, la frecuencia portadora que se está utilizando y la frecuencia portadora cifrada. 9.3.4 Generación de Relojes Como se ha decidido utilizar un microcontrolador, todas las señales de sincronización se realizarán mediante el mismo microcontrolador. De este modo no será necesario utilizar diferentes relojes para las frecuencias portadoras, tan sólo será necesario generar una señal de reloj para el funcionamiento del microcontrolador. Para ello se ha utilizado un oscilador implementado con un cristal de cuarzo. Se ha decidido utlizar un cristal de cuarzo debido a su mayor estabilidad y precisión.

Page 44: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

37

10 Módulo Receptor 10.1 Arquitectura La siguiente figura muestra los bloques que componen el módulo receptor:

Figura 24. Esquema de bloques del módulo emisor - Unidad de visualización: Proporciona información sobre el estado del cifrador, la frecuencia portadora y la cifrada. - Descifrador de fp: Descifra adecuadamente la frecuencia cifrada que recibe del módulo emisor, a través del canal de comunicación. - Selector de fp: Decide qué frecuencia se utilizará en el demodulador, a partir de los datos que provienen del descifrador de fp. - Acondicionador de señal: Adapta los niveles de tensión de la señal recibida, a través del canal de comunicación y fija el ancho de banda a procesar. - Demodulador: Recupera la señal original que ha sido enviada en el emisor. - Acondicionador a línea de salida: Para que la señal de salida no se vea afectada por la impedancia de los elementos que se conecten a la salida. - Generador de relojes: En este caso, el reloj se recupera a partir del que se recibe del módulo emisor a través del canal de transmisión. Se utiliza el mismo reloj tanto en el módulo emisor como en el receptor, para evitar problemas de sincronismo.

Unidad de visualización

Selector de fp

Demodulador

Generador de relojes

Acondicionador a línea de salida

Descifrador de fp

Acondicionador de señal

señal original

señal original cifrada

fp cifrada

Page 45: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

38

10.2 Solución Adoptada del Subsistema Analógico 10.2.1 Alimentación Al igual que en el módulo emisor, la alimentación del sistema será simétrica, ±5V para el subsistema analógico y +5V para el digital. 10.2.2 Acondicionador de señal Debido a que la señal a tratar viaja junto con la señal de reloj por dos cables de comunicaciones que están unidos físicamente, ésta sufre interferencias de alta frecuencia debido a la señal del reloj. Por ello es necesario filtrar la señal recibida para eliminar las componentes de alta frecuencia debidas al reloj (4 MHz). También se filtra con un filtro paso alto para eliminar posibles componentes de continua. En la siguiente figura se observa el diagrama de bloques:

Figura 25. Esquema del bloque acondicionador de señal 10.2.3 Demodulador El demodulador se encargará de multiplicar la señal recibida del módulo emisor (ya modulada) por la misma frecuencia portadora que se utilizó en el módulo emisor. Al igual que se hacia en el emisor, aquí también se utiliza como señal portadora una señal cuadrada bipolar de ciclo de trabajo del 50%. El esquema y funcionamiento del demodulador es exactamente igual que el del modulador de la figura (22) tal y como se puede apreciar en la figura (26). La única diferencia es que ahora como señal de entrada se introduce la señal recibida del módulo emisor (señal modulada). También cabe destacar que será necesario filtrar la señal mediante un filtro paso-bajo para eliminar las componentes de alta frecuencia.

Figura 26. Esquema de un demodulador equivalente con portadora bipolar,

sin usar un multiplicador analógico

filtro paso-alto

filtro paso-bajo

señal recibida

señal acondicionada

MUX

Señal demodulada

+G

-G

Señal modulada

control

filtro paso-bajo

Señal demodulada filtrada

Page 46: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

39

10.2.4 Acondicionador a Línea de Salida Este bloque se encarga de seleccionar que señal se quiere visualizar u oír. Como se puede apreciar en la figura (27), en la entrada del multiplexor analógico se conectan la señal recibida del módulo emisor (señal modulada), la señal demodulada sin filtrar y la señal demodulada filtrada. A la salida del multiplexor la señal se filtra con un filtro paso-alto para eliminar posibles componentes de continua. Para atacar los auriculares se hace pasar la señal a través de un amplificador de ganancia unidad, para adaptar su impedancia. Para el caso del osciloscopio no es necesario adaptar su impedancia, ya que como su impedancia de entrada es elevada no provocará ninguna atenuación en la señal de salida. Como se puede apreciar el esquema es parecido al de la figura (23).

Figura 27. Esquema del bloque acondicionador de señal 10.3 Solución Adoptada del Subsistema Digital 10.3.1 Descifrador y Selector de fp El sistema de descifrado también se ha implementado, al igual que en el emisor, mediante software con un microcontrolador PIC 16F876. El selector de la frecuencia portadora a utilizar, también se ha implementado mediante software con el mismo microcontrolador. De este modo se reduce el espacio utilizado y se gana fiabilidad. 10.3.2 Unidad de Visualización Como unidad de visualización se ha decidido utilizar 6 diodos LED mediante los cuales se podrá visualizar en todo momento el estado del LFSR, la frecuencia portadora que se está utilizando y la frecuencia portadora cifrada. 10.3.3 Recuperador de Reloj Para evitar problemas de sincronismos entre el módulo emisor y el módulo receptor, el reloj utilizado será el mismo para los dos casos. Por ello el reloj generado en el módulo emisor, es enviado a través del canal de comunicaciones al módulo receptor, donde es recuperado.

Señal demodulada sin filtrar

control digital

MUX

Señal recibida (modulada)

Señal demodulada filtrada

filtro paso-alto 1

osciloscopio

Page 47: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

40

11 Visualización de Señales Para poder apreciar los efectos que produce la modulación en el espectro de las señales, es necesario disponer de un aparato de medida capaz de visualizar el espectro frecuencial de una señal. Un analizador de espectros es capaz de visualizar las señales en el dominio frecuencial, pero debido a que, este proyecto ha sido realizado para una aplicación docente, y en el laboratorio de prácticas no se dispone de un analizador de espectros, se ha decidido visualizar las señales mediante el programa Labview 6.1 y la tarjeta de adquisición de datos 6023E de National Instruments, disponibles en el laboratorio docente. Labview es un sistema de programación gráfica para aplicaciones que involucren adquisición, control, análisis y presentación de datos. Las ventajas que proporciona el empleo de Labview son las siguientes: - Se reduce el tiempo de desarrollo de las aplicaciones al menos de 4 a 10 veces, ya que es muy intuitivo y fácil de aprender - Dota de gran flexibilidad al sistema, permitiendo cambios y actualizaciones tanto del hardware como del software - Da la posibilidad a los usuarios de crear soluciones completas y complejas - Con un único sistema de desarrollo se integran las funciones de adquisición, análisis y presentación de datos - Tiene la posibilidad de incorporar aplicaciones escritas en otros lenguajes - A diferencia de los lenguajes de programación convencionales (C, Basic…), que se basan en líneas de texto para crear el código fuente del programa, Labview emplea la programación gráfica o lenguaje G para crear programas basados en diagramas de bloques - Posee extensas librerías de funciones y subrutinas. Además de las funciones básicas de todo lenguaje de programación, incluye librerías específicas para la adquisición de datos, control de instrumentación VXI, GPIB y comunicación serie, análisis, presentación y almacenamiento de datos Los programas desarrollados mediante LabVIEW se denominan Instrumentos Virtuales (VIs), porque su apariencia y funcionamiento imitan los de un instrumento real. Sin embargo son análogos a las funciones creadas con los lenguajes de programación convencionales. Los VIs tienen una parte interactiva con el usuario (panel frontal) y otra parte de código fuente (diagrama de bloques), y aceptan parámetros procedentes de otros VIs.

Page 48: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria Descriptiva

41

12. Ajustes Una vez montadas las placas hay que hacer algunos ajustes para que el sistema funcione correctamente. Los pasos a seguir son los siguientes: Módulo Emisor: 1.- Alimentar la placa con ±15V. 2.- Desoldar la pata, que se encuentra conectada en el pin 7 del integrado U1, de la resistencia R14. (Es recomendable a la hora de realizar la soldadura dejar ésta sin soldar). 3.- Aplicar en la pata desoldada una señal sinusoidal de 1 kHz de 1V de amplitud. 4.- Visualizar con el osciloscopio la amplitud de la señal en la otra pata de la resistencia R14, y ajustar el potenciómetro P2 hasta conseguir una amplitud de 0,5 V. 5.- Visualizar con el osciloscopio la amplitud de la señal en el pin 8 del integrado U2 y en el pin 14, e ir ajustar el potenciómetro P3 hasta conseguir que la amplitud de la señal en los dos pines sean iguales. 6.- Volver a soldar la pata de la resistencia R14. Módulo Receptor: 1.- Alimentar la placa con ±15V. 2.- Desoldar la pata, que se encuentra conectada con el condensador C2, de la resistencia R2. (Es recomendable a la hora de realizar la soldadura dejar ésta sin soldar). 3.- Aplicar en la pata desoldada una señal sinusoidal de 1 kHz de 1V de amplitud. 4.- Visualizar con el osciloscopio la amplitud de la señal en la otra pata de la resistencia R2, y ajustar el potenciómetro P1 hasta conseguir una amplitud de 0,5 V. 5.- Visualizar con el osciloscopio la amplitud de la señal en el pin 1 del integrado U1 y en el pin 14, e ir ajustar el potenciómetro P2 hasta conseguir que la amplitud de la señal en los dos pines sean iguales. 6.- Volver a soldar la pata de la resistencia R2. Es importante realizar estos ajustes, ya que de lo contrario, el sistema no funcionaria correctamente. Una vez realizados los ajustes ya se puede proseguir con el conexionado de las placas con los cajas mecanizadas.

Page 49: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Memoria de Cálculo

Page 50: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

43

1 Módulo Emisor 1.1 Diseño y Simulación del Subsistema Analógico 1.1.1 Alimentación Como se ha dicho anteriormente la alimentación es simétrica, y se ha realizado mediante dos reguladores de tensión integrados. Concretamente se han utilizado el 7805 y el 7905. El 7805 proporciona a su salida una tensión regulada de +5 V y el 7905 de –5 V. Ambos integrados se alimentan a una tensión de +15 V y –15 V respectivamente. La siguiente figura muestra el esquema del circuito de alimentación:

Figura 28. Circuito de alimentación del módulo emisor

Se puede observar que se han colocado dos diodos a la entrada de cada uno de los dos reguladores. Su misión es proteger al integrado en el caso de que se conecte al revés la alimentación de +15 V y –15 V. También se han colocado unos condensadores de diferentes valores, para filtrar posibles variaciones de la tensión debidas a ruidos. Concretamente el condensador electrolítico de 100 uF presenta una baja impedancia para bajas frecuencias, el condensador plástico de 100 nF presenta una baja impedancia para las frecuencias medias y el condensador cerámico de 100 pF presenta una baja imepdancia para las altas frecuencias. De este modo se pretenden minimizar los efectos de posibles ruidos en el circuito, cosa importante para los circuitos analógicos. Como la alimentación es simétrica, es necesario filtrar las dos tensiones.

Figura 29. Filtrado de la alimentación de los circuitos integrados del módulo emisor

0

HI

LO

0

U8

LM7905

2 3

1

IN OUT

GN

D

U7LM7805

1 32

IN OUTG

ND

CON8

123

C11100nF

C15100nF

C17100pF

D111N4004

C16100nF

C18100pF

C12100nF

+ C13100uF

D121N4004

+ C14100uF

+5V

-5V

+15V

-15V

0+ C22

47uF

C2810nF

+ C24

47uF

+ C19

47uF

+ C26

47uF

+ C21

47uF

+ C23

47uF

+ C25

47uF

+ C20

47uF

C2710nF

U1 U2 U3 U4

U1 U2 U3 U4

U5 U6

+Vcc

-Vcc

Page 51: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

44

Esta alimentación sirve para alimentar tanto el subsistema analógico, como el subsistema digital. En el caso del subsistema análogico se utiliza alimentación simétrica y para alimentar el subsistema digital tan solo se utiliza +5 V. Es importante destacar, que también se han colocado condensadores de desacoplo, cerca de los terminales de alimentación del resto de los circuitos integrados utilizados, tal y como se indica en la figura (29). Concretamente, en los integrados análogicos se han colocado condensadores electrolíticos de 47 uF y en los digitales cerámicos de 10 nF. 1.1.2 Señales de Entrada Debido a que se utilizan diferentes señales de entrada, hay que conseguir que solamente se pueda seleccionar una sola señal al mismo tiempo. Para conseguir esto, se ha realizado lo que se indica en la siguiente figura.

Figura 30. Esquema de la selección de las señales de entrada del módulo emisor Las señales procedentes del generador de funciones y del walkman o CD, se conectan en las entradas de un conmutador, tal como se observa en la figura (30). De este modo, solamente una de las dos señales podrá ser seleccionada al mismo tiempo. La salida de este conmutador se introduce en un amplificador operacional, en configuración seguidor de tensión. Así, se consigue que las señales vean una alta impedancia de entrada, y se evitan posibles atenuaciones, debidas a efectos de carga. En las entradas del siguiente conmutador se conectan la salida del seguidor de tensión (que será la señal procedente del generador de funciones, o del walkman o CD) y la señal generada por el microfóno. Se puede observar que la salida del conmutador, se conecta a una resistencia conectada a +5 V. Esta resistencia es necesaria para alimentar el micrófono. La presencia de esta resistencia, implica la aparición de un nivel de tensión continua que posteriormente debe ser eliminado. En la figura (31) se puede ver el circuito realizado para obtener la solución anterior. Se han utilizado unos conectores jack hembra estéreos (aunque sólo se utiliza un canal), que ya están provistos de un pequeño conmutador, el cual es accionado cuando se introduce el jack macho. Observando el conector JACK2 (ver figura 31), se ve que en el estado de reposo (sin introducir el conector macho), por el terminal de salida del JACK2 ( terminal 1) sale la señal aplicada en el terminal 2 (señal del generador de funciones). En cambio, cuando el conector

1 generador de funciones

walkman o CD micrófono

+5V

señal de entrada

10K

Page 52: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

45

jack macho es introducido en el JACK2, provoca que el terminal 2 deje de estar en contacto con el terminal 1( terminal de salida). De este modo el terminal 1 (de salida) recibirá la señal procedente del jack macho (señal de walman o CD). Esta señal se aplica a un amplificador operacional en configuración seguidor de tensión, y la salida de éste se aplica al terminal 2 del JACK1 (ver figura 31). Del mismo modo, mientras no se introduzca el jack macho, la señal aplicada en el terminal 2 sale por el terminal 1 (terminal de salida). Pero cuando se introduce el conector macho, por el terminal 1 sale la señal del micrófono. Es fácil observar, que en el caso de que se introduzcan las tres señales al mismo tiempo, la señal que se aplicará al resto del sistema será la del micrófono.

Figura 31. Circuito del conexionado de las señales de entrada del módulo emisor 1.1.3 Acondicionador de Señal Como se ha visto en el apartado anterior, la señal de entrada contiene una componente continua, debido a la resistencia de polarización del micrófono. Por este motivo en primer lugar se realiza el filtrado de la señal de entrada mediante un filtro paso-alto de primer orden. De este modo, se elimina la componente continua. A continuación, se realiza la amplificación de la señal de entrada (en el caso que sea necesario), mediante un amplificador no inversor de ganancia ajustable por el usuario, para posteriormente filtrar la señal mediante un filtro paso-bajo de cuarto orden, para fijar el ancho de banda a unos 3 kHz. Se ha escogido esta frecuencia de corte, ya que la voz humana no suele contener componentes frecuenciales por encima de este valor. En la figura (32) se observa el esquema del circuito. El filtrado paso-bajo es importante (tal y como se estudió en el método de modulación con una señal cuadrada bipolar), ya que si en la señal a modular existen componentes frecuenciales superiores a la frecuencia de la señal portadora, es decir ωp<ωM, entonces al realizar la

-5V

5V

5V

0

Entrada de Señal

Entrada Audio

12345

+

-

U1DTL084

12

1314

411 Entrada Micrófono

12345

R110K

JACK1

JACK2

señal entrada

Page 53: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

46

modulación, las múltiples réplicas del espectro que se obtienen se solapan, y entonces ya no es posible recuperar la señal original.

Figura 32. Circuito acondicionador de señal del módulo emisor

El filtro paso-alto de primer orden está formado por C1 y R2 . Como se puede ver se trata de un filtro pasivo. Aplicando la transformada de Fourier se puede calcular fácilmente su función de transferencia:

(67) Haciendo una aproximación se tiene que: - Para bajas frecuencias (ω<<1/R2C1)

º90)(,1

log20log20)(12

+=∠

−= ωωω H

CRH

dB

- Para altas frecuencias (ω>>1/ R2C1))

º0)(,0)( =∠= ωω HdBHdB

- Para la frecuencia de corte (ω =1/ R2C1) ) se tiene una caída en la ganancia de –3 dB y la fase vale +45º. Se observa que para frecuencias bajas (ω <<1/ R2C1) ) la ganancia tiene una pendiente de

12

1)(

CRj

jH

+=

ω

ωω

Page 54: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

47

+20 dB/década, y que a partir de la frecuencia de corte la ganancia deja de incrementarse y se mantiene constante. Los valores de C1 y R2 se calculan a partir de la expresión (68) y fijando el valor de C1 y la frecuencia de corte.

(68) La frecuencia de corte se fija a 3 Hz y el condensador se fija a 47 uF. Dando valores se obtiene:

Ω=⋅⋅

=⋅⋅

= 11294732

12

1

12 FHzCf

Rc µππ

Se escoge una valor de R2=1 kΩ. En la figura (33) se muestra la simulación, de la respuesta frecuencial de la ganancia en dB, del filtro paso-alto diseñado. Se observa que para la frecuencia de corte fijada (3 Hz) se tiene aproximadamente los –3 dB esperados y que también se consigue una pendiente de +20 dB/ década.

Figura 33. Respuesta frecuencial del filtro paso-alto de primer orden diseñado. El amplificador no inversor está formado por U1A, R3, R4, R5 y P1. Mediante el potenciómetro P1 el usuario podrá regular la amplitud de la señal de entrada. Ésta amplificación será necesaria principalmente cuando la señal de entrada sea la procedente de un

12 2

1Cf

Rcπ

=

Page 55: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

48

micrófono, ya que su amplitud es muy pequeña para poder ser tratada adecuadamente. La ganancia máxima del amplificador será de 50 aproximadamente. La expresión de la tensión de salida (Vo) en función de la tensión de entrada (Vi), del amplificador no inversor anterior es la siguiente:

(69) Como se quiere tener una ganancia de 50, se fija P1= 47 kΩ y R5= 10Ω y aislando R4 finalmente se obtiene: Y se escoge un valor comercial de R4= 1 kΩ R3 se coloca para compensar las corrientes de offset y de polarización del amplificador operacional, y se le da un valor de 10 kΩ. El amplificador operacional utilizado es el TL084, ya que tiene unas corrientes de polarización y de entrada muy pequeñas, además de un slew-rate y ancho de banda elevados y un bajo nivel de ruido. El filtro paso-bajo, es un filtro de Butterworth de cuarto orden y está formado por dos filtros activos paso-bajo de segundo orden conectados en cascada (R6, R7, R8, R9 , C2, C3 ,U1C

y R10, R11, R12, R13 , C4, C5 ,U1B ). La implementación de los filtros de segundo orden se ha realizado mediante el circuito de Sallen-Key. Para calcular la función de transferencia del filtro de cuarto orden, se calcula primero la respuesta de uno de los filtros de segundo orden. El circuito de Sallen-Key se muestra en la figura (34). La realimentación se escoge unitaria y las dos resistencias y condensadores se consideran iguales.

Figura 34. Circuito de Sallen-Key

-VCC

VCC

C

+

-

5

67

411

C

RR

ViVo

VaVb

+

+= 1

4

51

RRP

VV io

Ω=+

= 95949

514

RPR

Page 56: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

49

Haciendo KCL en Vb se obtiene:

(70)

(71) Haciendo KCL en Va se obtiene:

(72)

(73) sustituyendo (71) en (73) se obtiene:

(74)

(75)

Si se calculan los polos de la función de transferencia se obtiene un polo real doble en la frecuencia de ω =1/ RC. Por lo tanto, haciendo una aproximación se tiene que: - Para bajas frecuencias (ω<<1/RC) la ganancia son 0 dB y la fase 0º. - Para altas frecuencias (ω>>1/ RC)) la ganancia decae con una pendiente de –40 dB/década (ya que cada polo introduce una pendiente de –20 dB/década) y la fase vale –180º (ya que cada polo introduce un desfase de –90º) - Para la frecuencia de corte (ω =1/ RC) ) se tiene una caída en la ganancia de –6 dB y la fase vale +90º.

( )ωCjV

RVV

bba =

( )ωRCjVV oa += 1

( ) ( ) ( ) ωCjVVR

VVR

VVoa

baai −+−

=−

( ) ωω RCjVVRCjVV ooai −−+= 2

( )( ) ωωω RCjVVRCjRCjVV oooi −−++= 21

( )22

2

22

12

1

CRj

RCj

CRVV io

++=

ωω

Page 57: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

50

Como el filtro diseñado está fomado por 2 circuitos de Sallen-Key en cascada, se trata de un filtro de cuarto orden, con lo cual se tienen 4 polos reales en ω =1/ RC. De este modo se obtiene que: - Para bajas frecuencias (ω<<1/RC) la ganancia son 0 dB y la fase 0º. - Para altas frecuencias (ω>>1/ RC)) la ganancia decae con una pendiente de –80 dB/década y la fase vale –360º. - Para la frecuencia de corte (ω =1/ RC) ) se tiene una caída en la ganancia de –12 dB y la fase vale +180º. Para calcular los componentes del filtro se utiliza la expresión (76) y se fija el valor del condensador y de la frecuencia de corte.

(76)

La frecuencia de corte se fija a 3 KHz y el condensador se fija a 10 nF. Dando valores se obtiene: Para obtener un valor comercial lo más cercano posible se ha decidido conectar en serie dos resistores de R= 4700 Ω y R= 560 Ω. De este modo se consigue un valor de R=5260 Ω. Por lo tanto los valores del resto de componentes serán serán:

R6= R8= R10= R12= 4700 Ω R7= R9= R11= R13= 560 Ω C2= C3= C4= C5= 10 nF

En la figura (35) se puede ver la simulación de la respuesta frecuencial de la ganancia en dB del filtro paso-bajo de cuarto orden diseñado. Se puede observar que en la frecuencia de corte (3 kHz) la caída es de aproximadamente –12 dB y que luego se tiene una pendiente de –80 dB/década tal y como se esperaba. El amplificador utilizado para la implementación del filtro también es el TL084 ya que tiene unas buenas características para nuestro propósito, que ya se comentarón anteriormente.

CfR

cπ21

=

Ω=⋅⋅

=⋅⋅

= 53051032

12

1nFKHzCf

Rc ππ

Page 58: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

51

Figura 35. Respuesta frecuencial del filtro paso-bajo de cuarto orden diseñado.

1.1.4 Modulador Como ya se dijo anteriormente, el modulador está formado básicamente por un multiplexor análogico, concretamente el 74HC4053, el cual dispone de tres multiplexores de 2 canales cada uno. Nosotros solamente utilizaremos uno de los tres multiplexores. En uno de los canales se conecta la señal que se quiere modular y en el otro la misma señal pero invertida. Una señal digital se encarga de que en la salida del multiplexor se tenga durante un determinado tiempo la señal sin invertir y durante otro tiempo la misma señal, pero invertida. Esta señal digital, será una señal cuadrada de frecuencia igual a la de la frecuencia portadora. De este modo, en la salida del multiplexor se obtendrá una señal modulada con una señal cuadrada bipolar. En la figura (36) se muestra el circuito encargado de realizar la modulación. Para conseguir la inversión y no inversión de la señal, se utiliza un amplificador inversor, formado por R19, R20, R21, P3, U2D, y otro no inversor, formado por R16, R17, R18, U2C. La ganancia de los dos amplificadores se han fijado en G = 2, debido a que la ganancia mínima que se puede conseguir con un amplificador no inversor (sin utilizar valores de resistencia muy elevados o muy bajos, cosa no recomendable) es 2. En el amplificador inversor, se puede observar que también se ha colocado una resistencia ajustable, para ajustar su ganancia y así conseguir que sea la misma que la del amplificador no inversor. Que las dos ganancias sean iguales es importante, como más adelante se verá.

Page 59: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

52

La expresión de la tensión de salida en función de la tensión de entrada del amplificador inversor está expresada por la expresión (77).

(77) Como se quiere tener una ganancia de 2, se fija R19= 10 kΩ y R20= 10 kΩ y aislando P3 finalmente se obtiene que: Por lo tanto se escoge un valor de P3= 10 kΩ R21 se coloca para compensar las corrientes de offset y de polarización del amplificador operacional, y se le da un valor de 4,7 kΩ. La expresión de la tensión de salida en función de la tensión de entrada del amplificador no inversor está expresada por la expresión (78).

(78) Como se quiere una ganancia de 2, se ve claramente que fijando R18= 10 kΩ y R17= 10 kΩ ya se obtiene esta ganancia. R16 se coloca para compensar las corrientes de offset y de polarización del amplificador operacional, y se le da un valor de 4,7 kΩ. Para compensar el aumento de amplitud que sufrirá la señal a modular,debido a la amplificación anterior, se ha colocado un atenuador resistivo justo antes de amplificar la señal, que se encargará de atenuar la amplitud de la señal a la mitad. De este modo la amplitud de la señal modulada no sufrirá ninguna variación. Este atenuador está formado por R14, R15 y P2. Como se quiere atenuar la señal a la mitad, bastará con colocar dos resistencias en serie del mismo valor. En este caso también se ha colocado una resistencia ajustable para compensar la tolerancia de las resistencias y el pequeño efecto de carga que pueda provocar la impedancia de entrada del amplificador inversor. Idealmente se colocarían dos resistencias de 1 KΩ, pero debido a lo anterior finalmente se ha escogido R14= 1 kΩ, R15= 560 Ω y P2= 1 kΩ. En la figura (36) también se observa que en la salida de cada uno de los dos amplificadores se ha colocado un filtro paso-alto. Estos filtros se han colocado para evitar que la presencia de una componente continua (debida a tensiones de offset), pueda provocar que en la salida del multiplexor análogico se tenga una señal cuadrada, no deseada, de la misma frecuencia que la de la señal modulada. Este efecto no deseado se comentará más adelante. La expresión de la respuesta frecuencial de un filtro paso-alto de primer orden se puede ver en (67), y la expresión de su frecuencia de corte en (68). Para este caso se fija la frecuencia de corte a 6 Hz y el condensador a 470 nF. Hay que destacar que este condensador no puede ser

io VR

PRV

+−=

19

320

Ω=−= KRRP 102 20193

io VRR

V

+= 1

17

18

Page 60: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

53

electrolítico, ya que como la alimentación del operacional es simétrica, no sabemos si la tensión de offset será positiva o negativa. Dando valores se obtiene:

Ω=⋅⋅

=⋅⋅

= 5643847062

12

1, 2322 nFHzCfRR

c ππ

Se escoge una valor de R22= R23=56 kΩ.

Figura 36. Circuito encargado de realizar la modulación del módulo emisor

En la figura (37) se muestra la evolución temporal de una señal sinusoidal de 1 V de amplitud y frecuencia 1 kHz, modulada con una portadora cuadrada bipolar de amplitud ±1 V y frecuencia 10 kHz. Se observa claramente que la señal sinusoidal está troceada de acuerdo al período de la señal portadora. En la figura (38) se muestra el espectro de la señal modulada anterior. Se observa que el espectro de la señal sinusoidal está replicado en la frecuencia fundamental de la portadora (10 kHz), y en las frecuencias múltiples impares de la frecuencia fundamental (30 kHz, 50 kHz, 70 kHz...).

Page 61: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

54

Figura 37. Simulación de la modulación de un señal sinusoidal con una portadora cuadrada bipolar.

Figura 38. Simulación del espectro de una señal sinusoidal modulada con una portadora cuadrada bipolar.

Page 62: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

55

En la figura (39) se observa lo que sucede cuando la ganancia de los dos amplificadores no son iguales. Se observa que la amplitud de los diferentes espectros replicados varía respecto a los valores anteriores. Pero esto no provocará ninguna diferencia en la distorsión. El efecto verdaderamente importante es que aparece el espectro de la señal, también en la banda base, con lo cual la distorsión de esta señal será menor.

Figura 39. Simulación del espectro de una señal sinusoidal modulada con una portadora cuadrada bipolar,

haciendo la ganancia de los amplificadores ligeramente diferentes. En la figura (40) se muestra el efecto que se produce cuando no se colocan los filtros paso-alto a la salida de los amplificadores. En el caso que la tensión de offset sea cero en los dos amplificadores, no hay ningún problema. Pero cuando existe una tensión de offset, esto provoca que en las entradas del multiplexor hayan dos niveles de tensión continua diferentes, aparte de la señal a modular. Esto provoca que al ir alternando la salida entre una entrada y otra, provoque que aparezca una señal cuadrada en la salida no deseada de la misma frecuencia que la señal portadora. La presencia de esta señal cuadrada no deseada se ve claramente en la simulación de la figura (40). En ella se observa el valor medio (en 0 Hz) de la señal cuadrada no deseada, y el resto de sus componentes frecuenciales.

Page 63: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

56

Figura 40. Simulación del espectro de una señal sinusoidal modulada con una portadora cuadrada bipolar,

quitando el filtro paso-alto de salida y con una pequeña tensión de offset añadida. Los amplificadores operacionales utilizados en este caso son también el TL084, ya que tiene unas corrientes de polarización y de entrada muy pequeñas, además de un slew-rate y ancho de banda elevados y un bajo nivel de ruido, como ya se comentó anteriormente. 1.1.5 Acondicionador a Línea de Salida Este circuito se encarga de adaptar la señal de salida, para que no sufra ninguna distorsión al ser aplicada a otros elementos. En la figura (41) se muestra el circuito diseñado. El operacional U2B está configurado como seguidor de tensión para adaptar la impedancia de salida del multiplexor analógico 74HC4053. Así la señal no sufrirá ninguna atenuación al ser aplicada en el canal de transmisión (para enviar la señal al receptor). El multiplexor análogico 74HC4052 se utiliza para poder seleccionar digitalmente que señal se quiere visualizar u oír. Es decir en la salida se puede tener la señal de entrada, la señal de entrada acondicionada o bien la señal modulada. En la salida del multiplexor se coloca un filtro paso-alto para eliminar alguna posible componente continua en la señal. Recordando la expresión de la frecuencia de corte de un filtro paso-alto y fijando la frecuencia de corte a 6 Hz y C8= 470 nF se obtiene.

Ω=⋅⋅

=⋅⋅

= 5643847062

12

1

825 nFHzCf

Rc ππ

y se esocoge un valor de R25= 56 kΩ.

Page 64: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

57

Después del filtro paso-alto, la señal se aplica a través del operacional U2A (en configuración seguidor de tensión) a una salida para auricular. También se conecta directamente a una salida para sonda de osciloscopio o instrumento de medida. En este caso, no hace falta adaptar su impedancia mediante un operacional, ya que la impedancia de entrada del osciloscopio o instrumento de medida ya es elevada.

Figura 41. Circuito acondicionador a línea de salida del módulo emisor

1.2 Descripción del Hardware 1.2.1 Microcontrolador PIC 16F876 y Circuitería Adicional El elemento principal del subsistema digital es el microcontrolador PIC 16F876. Éste pertenece a la familia microchip. Se trata de un microcontrolador de 8 bits con las siguientes caraterísticas: - Juego reducido de 35 instrucciones. - 14 bits de palabra de instrucción. - Memoria de programa de 8192 palabras. - 368 bytes de EEPROM interna. - 368 bytes de memoria RAM interna. - Tres puertos de entrada/salida de 8 bits bidireccionales (RA, RB y RC). - 14 fuentes de interrupción. - 2 contadores ascendentes de 8 bits. - 1 contador ascendente de 16 bits. - 2 módulos Captura, Comparación y PWM (CCP). - Covertidor A/D de 5 canales y 10 bits de resolución. - 1 puerto serie síncrono (SSP) con SPI (Master Mode) y I2C (Mater Slave) - Puerto USART.

-Vcc

+Vcc

+Vcc

-Vcc

Sonda Osciloscopio

PORTB7

PORTB6

SEÑAL

.

.

.

U4 4052

12141511

15246

109

13

3

X0X1X2X3

Y0Y1Y2Y3INHAB

X

Y

+

-

U2BTL084

5

67

411

R241K

C8470nF

R2556K CON3

123456

+

-

U2ATL084

3

21

411

Salida Auricular

12345

JACK3

Señal de entrada

Señal de entradaacondicionada

Señal modulada

Page 65: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

58

En la siguiente figura se observa el patillaje del PIC 16F876.

Figura 42. Patillaje del microcontrolador PIC 16F876 Se ha elegido este microcontrolador, ya que dispone del número de líneas de entrada/salida necesarias para nuestro propósito, además de disponer de módulos integrados que facilitan el diseño de aplicaciones. En la figura (43) se observa el esquema del circuito del subsistema digital. El reloj para el microcontrolador se ha implementado mediante el oscilador formado por un cristal de cuarzo de 4 MHz, C9, C10, R36 y el inversor U6F. A la salida del inversor se ha colocado otro inversor para regenerar la señal generada por el oscilador. A continuación la señal de reloj regenerada se introduce en el microcontrolador y se envía al subsistema digital del módulo receptor. Los diodos LED’s D1, D2, D3 y D4 indican el contenido del LFSR, D5 indica la frecuencia portadora y D6 indica la frecuencia cifrada. Se observa que el conexionado de D5 es diferente del resto de los diodos anteriores. Esto se debe a que todas las salidas digitales del Puerto A son CMOS, excepto la del pin PORTA<4> (es en drenador abierto), al cual se conecta el diodo D6. Todos los diodos LED se han conectado a sus respectivos pines del “Puerto A” mediante una resistencia de 1 kΩ para limitar la intensidad. El pulsador PUL5 es el encargado de realizar el reset por hardware del microcontrolador. Debido a que la entrada de reset del microcontrolador (MCLR) es de lógica negada, ésta se conecta mediante R27 a VCC. Al pulsar PUL5 se conecta a masa MCLR y por lo tanto se realizará el reset del micro. Mediante los pines PORTB<1:4> se testean los pulsadores PUL1, PUL2, PUL3 y PUL4. Para ello se han habilitado las resistenias de pull-up de PORTB<1:4>. PORTB<5> se utiliza como salida digital para comunicarse con el módulo receptor, PORTB<6> y PORTB<7> se utilizan para seleccionar la salida del multiplexor analógico (U4) y a través de PORTC<2> se obtiene la señal PWM que se aplica al multiplexor analógico (U3) para conseguir la modulación.

Page 66: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

59

Los didos LED’s D7, D8 y D9 se utilizan para indicar que señal se está seleccionada en la salida del módulo emisor, y están conectados en PORTC<5:7> respectivamente, a través de una resistencia de 1 kΩ para limitar la intensidad. Los pines PORTC<4:7> también se utilizan para enviar los datos al display LCD. Se puede observar que los pines PORTC<5:7> se utilizan tanto para enviar datos al LCD como para contrrolar los diodos D7, D8 y D9. Los pines PORTC<3> y PORTC<0:1> se utilizan para las líneas de control del display LCD.

Figura 43. Subsistema digital del módulo emisor

VCC

+Vcc

PORTB5

PORTB6

PORTB7

CCP1

RELOJ

U5 PIC16F876

1

234567

9

10

1112131415161718

2122232425262728

8

MCLR

RA0/AN0RA1/AN1RA2/AN2

RA3/AN3/VREFRA4/TOCKI

RA5/AN4/SS

OSC1/CLKIN

OSC2/CLKOUT

RC0/T1OSO/T1CKIRC1/T1OSIRC2/CCP1

RC3/SCK/SCLRC4/SDI/SDA

RC5/SDORC6RC7

RB0/INTRB1RB2RB3RB4RB5RB6RB7

Vss

CON6

13579111315

2468

10121416

CON4

12345678910

U6F74HCT04

13 12

U6E74HCT04

11 10

Y14 MHz

CON3

123456

CON5

123456

D6

R28 1K

R29 1K

R30 1K

R31 1K

C10

22pF

R361M

C9

22pF

R32 1K

D1

D2

D3

D4

D5

R35 1K D9

R33 1K

R34 1K D8

D7

R26 1K

R27 10K

PUL2

1 2

PUL1

1 2

PUL4

1 2

PUL3

1 2

PUL5

1 2

Page 67: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

60

1.2.2 Display LCD El LCD utilizado es el JM162A. Este LCD dispone de la posibilidad de comunicarse con un microncontralor utilizando un intefice de 4 bits o 8 bits. Para nuestro caso utilizaremos un interfice de 4 bits para ahorrar líneas. En la figura (44) se observa su conexionado. Los pines del display se conectaran a un conector macho para cable plano de 16 vias. De este modo el display se comunicará mediante un cable plano de 16 vias con la placa en donde se encuentra el microcontrolador PIC 16F876. Mediante el potenciómetro P4 se ajusta el contraste del LCD y mediante el diodo D10 se protege contra una inversión de polaridad en la alimentación.

Figura 44. Circuito para el LCD del módulo emisor La asignación de los pines se observa en la tabla (2)

D10

1N4004

CON9

1 3 5 7 9 11 13 15

2 4 6 8 10 12 14 16

P410K

13

2

1 5 10 15

VSS

VDD

VEE RS

R/W E

DB0

DB1

DB2

DB3

DB4

DB5

DB6

DB7 A K

VISUALIZADOR LCD

Page 68: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

61

Pin Nombre Función 1 VSS masa (0V) 2 VDD Alimentación (+5V) 3 VEE Contraste (VSS=VEE=VDD) 4 RS Selección de modo (dato=1/comando=0) 5 R/W Lectura/escritura (lectura=1/escritura=0) 6 E Enable (validación DB<7:0> en flanco 1->0) 7 DB0 Bit 0 (LSB) de dato 8 DB1 Bit 1 de dato 9 DB2 Bit 2 de dato 10 DB3 Bit 3 de dato 11 DB4 Bit 4 de dato 12 DB5 Bit 5 de dato 13 DB6 Bit 6 de dato 14 DB7 Bit 7 (MSB) de dato 15 A Anodo (+) retroiluminación 16 K Cátodo (-) retroiluminación

Tabla 2. Asignación de los pines del display LCD

Page 69: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

62

1.3 Descripción del Software. Diagramas de Flujo El programa principal se encarga básicamente de inicializar el sistema y de mostrar los diferentes mensajes del menú de configuración de los parámetros del sistema a través del display LCD. Para ello está contínuamente testeando los pulsadores PUL1, PUL2, PUL3 y PUL4 para decidir que mensaje escribir en el LCD o que subrutina ejecutar. Desde el programa principal se llama a las subrutinas de configuración de los parámetros del sistema (SE_FREC, SE_SECU, SE_CAMB y SE_SEMI) y a la subrutina puesta en funcionamiento del sistema (EMPIEZA). También desde el programa principal se selecciona si el sistema funcionará en modo automático o manual. A continuación se explicará el funcionamiento de éstas y otras subrutinas. El funcionamiento básico del programa es el siguiente: - En el programa principal se seleccionan los parámetros del sistema, frecuencias de modulación a utilizar, secuencia de frecuencias, intervalo de cambio, semilla inicial para el cifrado digital y el modo de funcionamiento (automático o manual). Esta selección de hace llamando a las subrutinas SE_FREC, SE_SECU, SE_CAMB y SE_SEMI respectivamente. - Una vez se han seleccionado los parámetros anteriores, cuando el usuario selecciona empezar el funcionamiento del sistema se llama a la subrutina EMPIEZA, en la cual se envían los parámetros seleccionados al receptor y se calcula el periodo y duty cycle de la señal PWM que se generará (para realizar la modulación). A continuación se sincroniza con el módulo receptor para conseguir que las señales PWM que generarán Emisor y Receptor estén en fase. Dependiendo del modo de funcionamiento escogido, se llama a la subrutina PASO_PA (funcionamiento manual) o AUTO (funcionamientoAutomático). El sistema realizará la codificación/decodificación de las señales introducidas hasta que el usuario escoja finalizar el proceso.

Page 70: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

63

1.3.1 Subrutina de Configuración del Sistema (CONFIG) Esta subrutina se encarga de configurar adecuadamente los pines del PIC, para conseguir una correcta inicialización del sistema. 1.3.2 Subrutina de Inicialización del LCD (INI_LCD) Con la siguiente subrutina se inicializa el LCD. Se ha utilizado el modo de interfaz de 4 bits, para utilizar menos líneas.

CONFIG

PORTC<7:3>=0 PORTC<1:0>=0 PORTC como salida

PORTA<7:5>=0 PORTA<4>=1 PORTA<3:0>=0 Configura PORTA como E/S digital PORTA como salida

Habilita resistencias de pull-up de PORTB PORTB<4:1> como entrada PORTB<7:6> como salida PORTB<0> como salida

RETURN

Apaga diodos D7,D8,D9 Conecta la señal de salida a masa SEL_SALIDA=0

Page 71: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

64

INI_LCD

Retardo de 32 ms

PORTC<7:4>=B’0010’

ENABLE

PORTC<7:4>=B’1000’ (2 líneas, 5x7 Dots)

ENABLE

Retardo de 60 us

PORTC<7:4>=B’0000’

ENABLE

PORTC<7:4>=B’1100’ (display ON, cursor OFF, blink OFF)

ENABLE

Retardo de 60 us

PORTC<7:4>=B’0000’ (clear display)

ENABLE

PORTC<7:4>=B’0001’

ENABLE

Retardo de 2,56 ms

A

PORTC<0>=0 (RS=0, ejecución de comando) PORTC<1>=0 (R/W=0, como escritura)

Page 72: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

65

1.3.3 Programa Principal El programa principal se encarga de escribir en el Display LCD los diferentes mensajes del menú y también de seleccionar las subrutinas encargadas de seleccionar las frecuencias utilizadas (SE_FREC), la secuencia de frecuencias (SE_SECU), el intervalo de cambio (SE_CAMB) y la semilla inicial (SE_SEMI). Para ello está contínuamente testeando los cuatro pulsadores PUL1, PUL2, PUL3 y PUL4. También selecciona si el funcionamiento es manual o automático. Cuando se produce un reset debido a la conexión de la alimentación, el programa da unos valores por defecto para las frecuencias utilizadas, la secuencia de frecuencias, el intervalo de cambio y la semilla inicial. En cambio, cuando se realiza un reset por hardware, los últimos valores almacenados se conservan.

PORTC<7:4>=B’0000’ (entry mode set)

ENABLE

PORTC<7:4>=B’0110’ (increment mode, entire shift off)

ENABLE

Retardo de 60 us

RETURN

A

Page 73: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

66

B

A

No

PROGRAMA PRINCIPAL

PORTB<5>=1 PORTB<5> como salida

Borra flag de POR (reset por conexión) FREC1=64, FREC2=128 SEMILLA=B’00000001’ SECU_FREC=B’10101010’ T_CAMBIO=5 Funcionamiento manual (CONTROL<1>=0)

Deshabilita interrupciones globales

Establece comunicación con receptor

Habilita interrupciones globales CONTROL<7:2>=0, CONTROL<0>=0

RETARDA 4s PCLATH=0, SE_MENU=1 NIVEL=1, MIN_MEN=1, MIN_NIV=1 MAX_MEN=4, MAX_NIV=3

CONFIG

INI_LCD

C_PORTB=0x00 MEN_AN=0x00 AN_MENU=0x00

reset por conexión de la alimentación

No

SE_MENU=AN_MENU

Borra el LCD

OFFSET=1 Indica el envío de un mensaje al LCD PRODUCT=SE_MENU*2

PCL=PRODUCT

TRANS (envía el carácter al LCD)

Incrementa OFFSET

M1 Si SE_MENU=1

M2 Si SE_MENU=2

M9 Si SE_MENU=9

AN_MENU=SE_MENU

Mensaje finalizado

No

Page 74: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

67

C_PORTB<2>=1

No

No

Retardo 10 ms

Incrementa SE_MENU

SE_MENU=MAX_MEN Sí

No

PUL2 pulsado

Pulsado por primera vez

SE_MENU=MIN_MEN

C_PORTB<3>=1

No

No

Retardo 10 ms

Decrementa SE_MENU

SE_MENU=MIN_MEN Sí

No

PUL3 pulsado

Pulsado por primera vez

SE_MENU=MAX_MEN

A

C

Page 75: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

68

Retardo 10 ms

C_PORTB<1>=1

Decrementa NIVEL

NIVEL=MIN_NIV

No

PUL1 pulsado

No

Pulsado por primera vez

No

Retardo 10 ms

C_PORTB<4>=1

Incrementa NIVEL

NIVEL=MAX_NIV

No

PUL4 pulsado

No

Pulsado por primera vez

No

C

D

Page 76: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

69

MEN_AN=4

SE_MENU=4

MEN_AN=3

SE_MENU=3

MEN_AN=1

SE_MENU=1

SE_MENU=2

MEN_AN=2

No

No

No

No

MIN_MEN=1 MAX_MEN=3 MEN_AN=0x00

NIVEL=1 Sí

No

NIVEL=2

EMPIEZA

MEN_AN=3 NIVEL=1 AN_MENU=0x00

MEN_AN=2 SE_MENU=9 MIN_MEN=9 MAX_MEN=10

MEN_AN=1 SE_MENU=5 MIN_MEN=5 MAX_MEN=8

SE_MENU=1 Sí

No

SE_MENU=2 Sí

No

SE_MENU=3

No

No

NIVEL=3 No

D

F E

Page 77: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

70

SE_FREC

NIVEL=2 AN_MENU=0x00

SE_MENU=5 Sí

No

SE_SECU

NIVEL=2 AN_MENU=0x00

SE_MENU=6 Sí

No

SE_CAMB

NIVEL=2 AN_MENU=0x00

SE_MENU=7 Sí

No

SE_SEMI

NIVEL=2 AN_MENU=0x00

SE_MENU=8 Sí

No

Funcionamiento automático NIVEL=2 AN_MENU=0x00

SE_MENU=9 Sí

No

E

G

Page 78: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

71

Funcionamiento automático NIVEL=2 AN_MENU=0x00

SE_MENU=10 Sí

No

C_PORTB<1>=0

PUL1 pulsado Sí

No

C_PORTB<2>=0

PUL2 pulsado Sí

No

C_PORTB<3>=0

PUL3 pulsado Sí

No

C_PORTB<4>=1

PUL4 pulsado Sí

No

G

F

B

Page 79: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

72

1.3.4 Subrutina de Selección de Frecuencias (SE_FREC) Se encarga de seleccionar las dos frecuencias que se van a utilizar en la modulación. Cada vez que se pulsa PUL2 se incrementa el valor de la frecuencia seleccionada, y cada vez que se pulsa PUL3 el valor se decrementa. Este valor se visualiza en todo momento en el LCD. Si PUL2 o PUL3 se mantinen pulsados, el valor se incrementa o decrementa rápidamente. Cuando se pulsa PUL4 el valor de frecuencia seleccionado se guarda. Cuando se han introducido los dos valores de frecuencias a utilizar, se sale de la subrutina. 1.3.5 Subrutina de Selección de Secuencia de Frecuencias (SE_SECU) Mediante esta subrutina se introduce la secuencia de frecuencias a utilizar, en el sistema. Cada vez que se pulsa PUL2 o PUL3 se cambia el valor de la frecuencia (dos valores posibles) que se muestra en el LCD. Cuando se pulsa PUL4 el valor de frecuencia que se está visualizando en el LCD queda guardado. Cuando se tiene la secuencia de 8 frecuencias, se sale de la subrutina. 1.3.6 Subrutina de Selección del Intervalo de Cambio de las Frecuencias (SE_CAMB) Con esta subrutina se selecciona el valor del intervalo de cambio entre las frecuencias a utilizar, cuando se trabaja en modo automático. Cada vez que se pulsa PUL2 se produce un incremento de 50 ms, y cuando se pulsa PUL3 se produce un decremento de 50 ms. El valor mínimo són 50 ms y el máximo 1s. Cuando se pulsa PUL4 se guarda el valor seleccionado, y se sale de la subrutina. Cuando se pulsa PUL1 también se sale de la subrutina. 1.3.7 Subrutina de Selección de la Semilla Inicial (SE_SEMI) En esta subrutina, se selecciona el valor de la semilla inicial del algoritmo de cifrado digital. Esta semilla puede contener un valor comprendido entre 0 y 15, el cual se representa en binario por el LCD. Cuando se pulsa PUL2 se incrementa el valor, y cuando se pulsa PUL3 se decrementa el valor. Cuando se pulsa PUL4 se guarda el valor y se sale de la subrutina. Cuando se pulsa PUL1 también se sale de la subrutina. A continuación se muestran los diagramas de flujo de las cuatro subrutinas anteriores.

Page 80: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

73

Retardo de 10 ms

CONTROL<6>=1

SE_FREC

Para Timer 1 Borra flag interrupción Timer1 Habilita interrupciones periféricos Habilita interrupción Timer1 Prescaler Timer1 = 1:1 T_PULSADO=0x00 CONTROL<7:5>=0 FREC=FREC1 NUM_FRE=1

BO_LCD

Escribe en el LCD “Frecuencia 0: “

CONTROL<7>=1

BO_LIN

DESCOMP

Escribe en el LCD el valor de la frecuencia seleccionada

CONTROL<7>=0

No

T_PULSADO=8

No

PUL2 pulsado

No

C

Pulsado por primera vez

No

B

A

Page 81: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

74

Borra flag interrupción Timer1 Timer1=65535 Activa Timer1

Borra flag interrupción Timer1 Timer1=65535 Activa Timer1

C_PORTB<2>=1 CONTROL<7>=0 T_PULSADO=0x00

B

Incrementa FREC

FREC<FREC_MAX

No

CONTROL<6>=0

No

FREC=FREC_MIN

C

Retardo de 10 ms

CONTROL<5>=1

PUL3 pulsado

No

T_PULSADO=8

No

Pulsado por primera vez

No

C_PORTB<3>=1 CONTROL<7>=0 T_PULSADO=0x00

CONTROL<5>=0

No

D E

Page 82: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

75

Decrementa FREC

FREC>FREC_MIN

No

FREC=FREC_MAX

E

D

Retardo 10 ms

C_PORTB<4>=1

FREC1=FREC Incrementa NUM_FRE

Escribe en el LCD “Frecuencia 1: “

FREC=FREC2 CONTROL<7>=0

Retardo 10 ms

C_PORTB<4>=0

PUL4 pulsado Sí

No

Pulsado por primera vez

No

PUL4 pulsado

No

NUM_FRE=1

No

F

FREC2=FREC Deshabilita interrupción Timer1 Deshabilita interrupción periféricos Para Timer1

RETURN

Page 83: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

76

PUL1 pulsado

No

C_PORTB<1>=0

PUL2 pulsado

No

PUL3 pulsado

No

C_PORTB<2>=0 CONTROL<6>=0 T_PULSADO=0x00 Para Timer1

PUL3 pulsado

No

PUL2 pulsado

No

C_PORTB<3>=0 CONTROL<5>=0 T_PULSADO=0x00 Para Timer1

PUL4 pulsado

No

C_PORTB<4>=0

A

F

Page 84: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

77

SE_SECU

BO_LCD

CONTROL<7>=1

Escribe el valor de la frecuencia seleccionada en el LCD

CONTROL<7>=0

No

Retardo 10 ms

C_PORTB<2>=1 CONTROL<7>=0

Pulsado por primera vez

No

PUL2 pulsado

No

FREC=FREC2

FREC=FREC1

No

FREC=FREC1

A

BO_LIN (Borra la segunda línea del LCD

DESCOMP

CONTROL<7>=0 NUM_FRE=1 FREC=FREC1

B

Page 85: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

78

B

C_PORTB<3>=1 CONTROL<7>=0

Pulsado por primera vez

No

PUL3 pulsado

No

FREC=FREC2

FREC=FREC1

No

FREC=FREC1

Retardo 10 ms

Retardo 10 ms

Pulsado por primera vez

No

PUL4 pulsado

No

C_PORTB<4>=1

FREC=FREC1

No

C D

F_SECU_FREC<7>=0 F_SECU_FREC<7>=1

Page 86: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

79

C

RETURN

PUL2 pulsado

No

C_PORTB<2>=0

PUL3 pulsado

No

C_PORTB<3>=0

PUL4 pulsado

No

C_PORTB<4>=0

A

Rota a la derecha F_SECU_FREC Incrementa NUM_FRE Escribe en el LCD el número de la frecuencia

D

NUM_FRE=8 Sí

No

Page 87: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

80

SE_CAMB

BO_LCD

CONTROL<7>=0

CONTROL<7>=1

Escribe en el LCD el intervalo de cambio seleccionado

CONTROL<7>=0

No

Retardo 10 ms

C_PORTB<2>=1

Pulsado por primera vez

No

PUL2 pulsado

No

CONTROL<7>=0

T_CAMBIO=5

T_CAMBIO=100

No

T_CAMBIO=T_CAMBIO+5

PUL3 pulsado

No

CONTROL<7>=0

Retardo 10 ms

B C

A

Page 88: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

81

T_CAMBIO=100

C_PORTB<3>=1

Pulsado por primera vez

No

T_CAMBIO=5

No

T_CAMBIO=T_CAMBIO-5

B C

PUL4 pulsado

No

Retardo 10 ms

Retardo 10 ms

C_PORTB<4>=1

C_PORTB<1>=1

Pulsado por primera vez

No

RETURN

RETURN

PUL1 pulsado

No

C_PORTB<1>=0

PUL2 pulsado

No

C_PORTB<2>=0

PUL3 pulsado

No

C_PORTB<3>=0

PUL4 pulsado

No

C_PORTB<4>=0

PUL1 pulsado

No

A

Pulsado por primera vez

No

Page 89: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

82

SE_SEMI

BO_LCD

CONTROL<7>=0

Escribe en el LCD el valor de la semilla actual

CONTROL<7>=0

No

CONTROL<7>=1

PUL2 pulsado

No

CONTROL<7>=0

Retardo 10 ms

C_PORTB<2>=1

Pulsado por primera vez

No

SEMILLA=0

SEMILLA=16

No

Incrementa SEMILLA

B

A

Page 90: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

83

PUL3 pulsado

No

CONTROL<7>=0

Retardo 10 ms

C_PORTB<3>=1

Pulsado por primera vez

No

SEMILLA=16

SEMILLA=0

No

Decrementa SEMILLA

B

PUL4 pulsado

No

Retardo 10 ms

Pulsado por primera vez

No

C_PORTB<4>=1

RETURN

C

Page 91: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

84

PUL1 pulsado

No

C_PORTB<1>=0

PUL2 pulsado

No

C_PORTB<2>=0

PUL3 pulsado

No

C_PORTB<3>=0

PUL4 pulsado

No

C_PORTB<4>=0

PUL1 pulsado

No

Retardo 10 ms

Pulsado por primera vez

No

C_PORTB<1>=1

RETURN

C

A

Page 92: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

85

1.3.8 Subrutina de Inicio del Sistema (EMPIEZA) En esta subrutina se envía al receptor las frecuencias a utilizar y la semilla inicial del sistema de cifrado digital, y se calcula el periodo y duty cycle (50%) de las dos frecuencias seleccionadas. También se configura el PWM utilizado para la modulación. Una vez que se han enviado al receptor las frecuencias y la semilla inicial, se realiza la sincronización con el receptor, y dependiendo de que opción se haya escogido en el menú, se llama a la subrutina de ejecución Manual o de ejecución Automático. 1.3.9 Subrutina de Funcionamiento Automático (AUTO) En esta subrutina el emisor está enviando, cada cierto tiempo (intervalo de cambio escogido), al receptor la frecuencia portadora utilizada, pero cifrada. Al mismo tiempo testea los pulsadores PUL1, PUL2 y PUL3. Cuando se pulsa PUL1, se envía al receptor la orden de finalizar el proceso, y se sale de la subrutina. Al pulsar PUL2 se cambia la señal que se obtiene en la salida (señal de entrada, acondicionada o modulada). Y al pulsar PUL3 se envía al receptor la orden de que cambie la señal que se obtiene en la salida. 1.3.10 Subrutina de Funcionamiento Manual (PASO_PA) Cada vez que se pulsa PUL4 se envía al receptor la frecuencia portadora cifrada. Cuando se pulsa PUL1 se envía al receptor la orden de finalizar el proceso, y se sale de la subrutina. Al pulsar PUL2 se cambia la señal que se obtiene en la salida (señal de entrada, acondicionada o modulada). Y al pulsar PUL3 se envía al receptor la orden de que cambie la señal que se obtiene en la salida. Los diagramas de flujo de las subrutinas anteriores, se muestran a continuación.

Page 93: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

86

EMPIEZA

BO_LCD

SEL_SALIDA=0x00 Habilita diodos D7, D8, D9 Enciende D9, Apaga D8, D7 Selecciona como salida la señal de entrada

Envía al receptor SEMILLA, FREC1, FREC2

REG_LFSR=SEMILLA SECU_FREC=F_SECU_FREC

SECU_FREC<0>=1

No

FREC_P<0>=1

FREC<0>=(FREC_P<0>) ⊕ (REG_LFSR<0>)

Envía al receptor FREC_C<0>

Calcula el periodo y duty cycle de FREC1

Calcula el periodo y duty cycle de FREC2

Prepara el valor del duty cycle de FREC1 para que pueda ser cargado directamente en el PWM

Prepara el valor del duty cycle de FREC2 para que pueda ser cargado directamente en el PWM

FREC_P<0>=0

A

Page 94: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

87

Periodo PWM=PERIODO de FREC2 DC del PWM= DC de FREC2

FREC_P<0>=1

No

Timer2=0x00

FREC_P<0>=1

No

Prescaler Timer2 = Prescaler de FREC2

Configura CCP1 como PWM Indica al receptor que empiece el proceso Activa Timer 2 (PWM)

Periodo PWM=PERIODO de FREC1 DC del PWM= DC de FREC1

Prescaler Timer2 = Prescaler de FREC1

AUTO

Para Timer2 (PWM)

PORTA<7:0>=0, PORTA<4>=1 Deshabilita diodos D7, D8, D9 Conecta la salida de señal a masa SEL_SALIDA=0x00

RETURN

funcionamiento automático

No

PASO_PA

A

Habilita interrupciones globales Habilita interrupciones periféricos Borra flag interrupción Timer 0 Deshabilita interrupción timer 2

Page 95: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

88

AUTO

PORTA<3:0>=REG_LFSR<3:0>

FREC_P<0>=1

No

PORTA<4>=0 PORTA<4>=1

FREC_C<0>=1

No

PORTA<5>=1 PORTA<5>=0

Aux=T_CAMBIO

Borra flag interrupción Timer 0

Retardo 10 ms

PUL1 pulsado

No

C_PORTB<1>=0

PUL2 pulsado

No

C_PORTB<2>=0

PUL3 pulsado

No

C_PORTB<3>=0

C

A

B

Page 96: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

89

PUL1 pulsado Sí

No

PUL2 pulsado

No

Pulsado por primera vez

No

C_PORTB<2>=1 Incrementa SEL_SALIDA

SEL_SALIDA=0

No

SEL_SALIDA=3

No

SEL_SALIDA=0

SEL_SALIDA=2

No

SEL_SALIDA=1

No

Enciende D9, apaga D7, D8 Salida = señal de entrada

Enciende D8, apaga D7, D9 Salida = señal acondicionada

Enciende D7, apaga D8, D9 Salida = señal modulada

C

D

C_PORTB<1>=1 CONTROL<2>=1

Envía al receptor la orden de finalizar el proceso

RETARDO_CARGA=0x00

RETURN

Pulsado por primera vez

No

Page 97: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

90

PUL3 pulsado

No

Pulsado por primera vez

No

C_PORTB<3>=1 CONTROL<2>=1

Envía la orden al receptor de que cambie la salida

Decrementa AUX

AUX=0

No

CIFRADO

Envía la frecuencia cifrada al receptor

RETARDO_CARGA=0x01 Borra flag interrupción Timer 2 Habilita interrupción Timer 2

PORTA<3:0>=REG_LFSR<3:0>

PORTA<4>=0 PORTA<4>=1

FREC_P<0>=1

No

PORTA<5>=1 PORTA<5>=0

FREC_C<0>=1

No

D

B

A

Page 98: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

91

PORTA<5>=1

PASO_PA

BO_LCD

PORTA<3:0>=REG_LFSR<3:0>

FREC_P<0>=1

No

PORTA<4>=0 PORTA<4>=1

FREC_C<0>=1

No

PORTA<5>=0

PUL4 pulsado

No

Retardo 10 ms

C_PORTB<4>=1

Pulsado por primera vez

No

CIFRADO

ES_LCD

Envía al receptor la frecuencia cifrada

RETARDO_CARGA=0x01 Borra flag interrupción Timer 2 Habilita interrupción Timer 2 PORTA<3:0>=REG_LFSR<3:0>

A

B C

Page 99: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

92

PORTA<4>=0 PORTA<4>=1

FREC_P<0>=1

No

PORTA<5>=1 PORTA<5>=0

FREC_C<0>=1

No

PUL1 pulsado

No

Retardo 10 ms

Pulsado por primera vez

No

C

B

PUL2 pulsado

No

Retardo 10 ms

Pulsado por primera vez

No

C_PORTB<2>=1 Incrementa SEL_SALIDA

D E

C_PORTB<1>=1 CONTROL<2>=1

Envía al receptor la orden de finalizar el proceso

RETURN

Page 100: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

93

Enciende D7, apaga D8, D9 Salida = señal modulada

SEL_SALIDA=0

No

Retardo 10 ms

Pulsado por primera vez

No

C_PORTB<3>=1 CONTROL<2>=1

Envía la orden al receptor de que cambie la salida

SEL_SALIDA=3

No

SEL_SALIDA=0

PUL3 pulsado

No

SEL_SALIDA=2

No

SEL_SALIDA=1

No

D

Enciende D9, apaga D7, D8 Salida = señal de entrada

Enciende D8, apaga D7, D9 Salida = señal acondicionada

E

F

Page 101: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

94

C_PORTB<1>=0

PUL2 pulsado

No

C_PORTB<2>=0

PUL3 pulsado

No

C_PORTB<3>=0

PUL4 pulsado

No

C_PORTB<4>=0

A

PUL1 pulsado

No

F

Page 102: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

95

t

PWM E1 E2

3 E3

Emisor

t

PWM R1 R2 R3

Receptor

TMR2=PR2

TMR2=Duty Cycle

1.3.11 Subrutina de Atención a la Interrupción (INTERRU) Esta subrutina es muy importante para el funcionamiento del sistema, ya que gracias a ella se consigue que el emisor y el receptor cambien al mismo tiempo la frecuencia de modulación. Cuando el emisor envía una frecuencia de modulación cifrada nueva al receptor, en el emisor se habilitan las interrupciones que provoca el timer 2. Cada vez que el PWM inicia un ciclo, el timer 2 provoca una interrupción. El receptor al recibir la frecuencia cifrada, la descifra, y se queda esperando a que el emisor ponga a cero PORTB<5>. En el siguiente ciclo de PWM el emisor pone a cero PORTB<5> y el receptor al detectarlo habilita también la interrupción del timer 2. Entonces al siguiente ciclo de PWM, el emisor y el receptor cambian la mismo tiempo la frecuencia utilizada. Ya que, el reloj utilizado para el emisor y el receptor es el mismo, el cambio de frecuencia se produce al mismo tiempo. De este modo se evita que se produzca un desfase entre las dos ondas generadas por los PWM’s de los 2 micros. En la siguiente figura se muestra un diagrama de lo explicado anteriormente:

Figura 45. Subsistema digital del módulo emisor

E1è Petición de cambio de frecuencia, envia frecuencia cifrada al receptor y habilita la interrupción del Timer 2. E2è Entra en la rutina de atención a la interrupción y pone a “0” PORTB<5> durante unos micro segundos. E3è Entra en la rutina de atención a la interrupción, realiza la carga de la nueva frecuencia, y deshabilita la interrupción del Timer 2. R1è El receptor recibe la frecuencia cifrada. (el tiempo transcurrido entre el envío y la recepción de la frecuencia cifrada pueden ser de varios ciclos del PWM, dependiendo de la frecuencia utilizada). R2è El receptor detecta el “0” producido en PORTB<5> y habilita la interrupción del Timer 2. R3è Entra en la rutina de atención a la interrupción,realiza la carga de la nueva Frecuencia y deshabilita la interrupción del Timer 2.

Page 103: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

96

La rutina de atención a la interrupción también se utiliza para el retardo del tiempo de pulsado de los pulsadores, durante la selección del menú. Para ello se utiliza la petición de interrupción que provoca el Timer 1. 1.3.12 Subrutina de Cifrado de la Frecuencia de Modulación (CIFRADO) En esta subrutina se cifra la frecuencia que se envía al receptor. El sistema de cifrado es el basado en registros de desplazamiento con realimentación lineal, que se ha estudiado anteriormente. 1.3.13 Subrutina de Cálculo del Período (CAL_PER) En esta subrutina se calcula el período de la frecuencia a utilizar. Las frecuencias de modulación que se pueden utilizar están comprendidas entre 1000 Hz y 20000 Hz. Para evitar tener que utilizar un registro de 16 bits para guardar el valor de la frecuencia, las frecuencias se guardan sin tener en cuenta las decenas y las unidades. Así se pueden guardar en un registro de 8 bits. Por este motivo para calcular el periodo, se multiplica el valor de la frecuencia por 100, para así obtener el valor real. Posteriormente se divide 10000000 entre la frecuencia utilizada, de este modo se obtiene directamente el resultado en micro segundos. Luego si el valor del periodo es mayor de 255 us, se divide entre 4 y se escoge un preescaler de 1:4, en caso contrario se escoge un preescaler de 1:1. A continuación se calcula el duty cycle (en ns), ya que el valor del duty cycle del PWM hay que introducirlo en ns. Por ello el valor del periodo obtenido en micro segundos se multiplica por 1000. Después si el preescaler escogido ha sido 1:4 se divide entre (2*4*250), y se ha escogido como preescaler 1:1 se divide entre (2*250). 1.3.14 Subrutina de Preparación del Duty Cycle (CARG_DU) En esta subrutina se colocan los bits del duty cycle calculado correctamente para poder ser cargados directamente en CCPR1L <7:0>,CCP1CON<5:4>, ya que el duty cycle esta formado por 10 bits. A continuación se observan los diagramas de flujo de las cuatro subrutinas anteriores.

Page 104: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

97

INTERRU

TMP_W=W TMP_STATUS=STATUS Selección banco 0

TMR2IF=1 No

Carry=0 Rota a la izquierda RETARDO_CARGA

RETARDO_CARGA<2>=0

No

RETARDO_CARGA<1>=1

No

PORTB<5>=0 Retardo de 3 us PORTB<5>=1

TMR1IF=1 No

Incrementa T_PULSADO

CONTROL<6>=0

No

CONTROL<5>=0

No

C_PORTB<2>=0

C_PORTB<3>=0

TMR1F=0

TMR2IF=0 STATUS=TMP_STATUS W=TMP_W

RETIE

A

B

Page 105: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

98

CCPR1L=DUTYH1 CCP1CON<5:4>=DUTYL1<5:4>

CCPR1L=DUTYH2 CCP1CON<5:4>=DUTYL2<5:4>

Prescaler Timer2=PREESCALER1 Prescaler Timer2=PREESCALER2

PR2=PERIODO1 PR2=PERIODO2

Deshabilita interrupciones Timer 2

SECU_FREC<0>=0 No

SECU_FREC<0>=0 No

SECU_FREC<0>=0 No

A

B

Page 106: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

99

CIFRADO

Carry=0

SECU_FREC<0>=0

No

Carry=1

FREC_P=SECU_FREC

FREC_C=(REG_LFSR) ⊕ (SECU_FREC)

RETURN

REG_LFSR<4>=(REG_LFSR<1>) ⊕ (REG_LFSR<0>) Rota a la derecha REG_LFSR

Page 107: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

100

CAL_PER

AUXH=0 AUXL=frecuencia (W) NH=0; NL=100

<AUXHH,AUXLL,AUXH,AUXL>=<RESULTHH,RESULTLL,RESULTH,RESULTL>

<RESULTHH,RESULTLL,RESULTH,RESULTL>=AUX*100

<AUXHH,AUXLL,AUXH,AUXL>=1000000 <NH,NL>=<RESULTH,RESULTL>

<AUX,AUX1>=<RESULTH,RESULTL> PERIODO=RESULTL

<RESULTH,RESULTL>=(<AUXHH,AUXLL,AUXH,AUXL>) / (<NH,NL>)

PREESCALER=0

RESULTH=0

No

<AUXHH,AUXXLL>=0; <AUXH,AUXL>=<RESULTH,RESUTL> PREESCALER=1; <NH,NL>=4 RESULTL=(<AUXH,AUXL>) / (<NH,NL>) PERIODO=RESULTL

<AUXH, AUXL>=<AUX, AUX1> <NH,NL>=1000

<RESULTHH,RESULTLL,RESULTH,RESULTL>=(<AUXH,AUXL>) * (<NH,NL>)

<NH,NL>=2 x 250

PREESCALER=1

No

<RESULTHH,RESULTLL,RESULTH,RESULTL>=(<AUXHH,AUXLL,AUXH,AUXL>) / (<NH,NL>)

<DUTYH,DUTYL>=<RESULTH,RESULTL>

RETURN

<NH,NL>=2 x 4 x 250

Page 108: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

101

1.3.15 Subrutina de Multiplicación (MULTI) En esta subrutina se realiza la multiplicación de dos registros de 16 bits, y el resultado se guarda en un registro de 32 bits. La multiplicación se ha realizado mediante sumas, es decir el multiplicando se suma tantas veces como indique el multiplicador y el resultado se va guardando en un registro de 32 bits. 1.3.16 Subrutina de División (DIVIDE) Mediante esta subrutina se realiza la división de un registro de 32 bits entre un registro de 16 bits, y el resultado se guarda en un registro de 16 bits. El método utilizado consiste en ir restando el divisor al dividendo, hasta que éste sea menor que el divisor. El número de veces que se haya restado es el resultado de la división. A continuación se muestran las dos subrutinas anteriores.

CARG_DU

DUTYH<7:6>=DUTYH<1:0>

DUTYH<5:0>=DUTYL<7:2>

DUTYL<5:4>=DUTYL<1:0>

DUTYL<7:6>=0 DUTYL<3:0>=0

RETURN

Page 109: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

102

MULTI

<RESULTHH,RESULTLL,RESULTH,RESULTL>=0

NL=NL-1

RESULTL>255 Sí

No

RESULTH=RESULTH+1

RESULTH>255 Sí

No

RESULTLL=RESULTLL+1

RESULTLL>255 Sí

No

Incrementa RESULTHH

RESULTH>255 Sí

No

RESULTLL=RESULTLL+1

RESULTLL>255 Sí

No

Incrementa RESULTHH

RESULTL=RESULTL+AUXL

RESULTH=RESULTH+AUXH

NL < 0 Sí

No

NH=NH-1

NH = 0

No

RETURN

Page 110: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

103

DIVIDE

<RESULTH,RESULTL>=0

AUXH=AUXH-NH

AUXL < 0 Sí

No

AUXH = AUXH-1

AUXH < 0 Sí

No

AUXLL = AUXLL-1

AUXLL < 0 Sí

No

AUXHH=AUXHH-1

AUXL=AUXL-NL

AUXH < 0 Sí

No

AUXLL < 0 Sí

No

AUXHH=AUXHH-1

AUXLL=AUXLL-1

AUXHH = 0

No

Incrementa RESULTL

RESULTL > 255 Sí

No Incrementa RESULTH

AUXHH = 0

No

RETURN

Page 111: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

104

1.3.17 Otras subrutinas A continuación se describen el resto de subrutinas del programa, que al no ser tan complejas, tan solo se da una breve explicación de lo que hacen y se muestra su diagrama de flujo correspondiente. - ES_LCD: Escribe en el display LCD la secuencia de frecuencias y la frecuencia portadora utilizada. - ENVIA_D: Se encarga de enviar los datos al receptor mediante una comunicación serie asíncrona a través de PORTB<5>. Se envía bit de start, 8 bits de datos y bit de stop. - TRANS: Envía una orden o un dato al LCD. - ES_BIN: Escribe en binario en el display LCD el nibble bajo de un registro de 8 bits. - DESCOMP: Descompone un número decimal en Centenas, Decenas y Unidades y las pasa a código ASCII. - E_BINA: Escribe en binario en el LCD el contenido de un registro de 8 bits. - BO_LIN: Borra una línea del display LCD. - BO_LCD: Borra lo que hay escrito en el display LCD. - ENABLE: Valida los datos que se envían al display LCD. - TEMP: Retardo por software el tiempo cargado en el registro TMR0 del Timer 0. - PRESC1: Selecciona el prescaler 1:256 para el timer 0. - PRESC2: Selecciona el prescaler 1:2 para el timer 0. - SELECT: Escribe en el LCD el caracter ‘*’.

Page 112: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

105

ES_LCD

AUX_PORTC=PORTC

FREC_P<0>=0 No

FREC=FREC1 FREC=FREC2

DESCOMP

PORTB<0>=1 (deshabilita diodos D7,D8,D9)

BO_LCD

Escribe en el LCD ‘Se: ‘

Escribe en el LCD la secuencia de frecuencias

Escribe en el LCD el valor de la frecuencia portadora actual

PORTB<0>=0 (habilita diodos D7,D8 y D9) PORTC<7:4>=AUX_PORTC<7:4>

RETURN

Escribe en el LCD ‘fp: ‘

Page 113: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

106

ENVIA_D

DATOS = W (byte a enviar)

Preescaler Timer 0 = 1:2 Deshabilita interrupciones Timer 0

NUM_BITS=1 PORTB<5>=0 (Bit de start)

Timer 0 = 210 (para retardar 100 us) Limpia flag interrupción Timer 0 (T0IF)

PORTB<5>=DATOS<0> rota a la derecha DATOS

Timer 0 = 214 (para retardar 100 us) Limpia flag interrupción Timer 0 (T0IF)

NUM_BITS=8

No

PORTB<5>=1

Incrementa NUM_BITS

T0IF = 1 No

T0IF = 1 No

Timer 0 = 160 (para retardar 160 us) Limpia flag interrupción Timer 0 (T0IF)

T0IF = 1 No

RETURN

Page 114: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

107

TRANS

AUX2=W

AUX2=DATO

No

AUX2=’#’ Sí

No

CONTROL<0>=0

AUX2=COMANDO Sí

No

PORTC<0>=0 (RS=0)

PORTC<7:4>=0 PORTC<7:4>=AUX2<7:4> PORTC<3:0> no cambian

ENABLE

PORTC<7:4>=0 PORTC<7:4>=AUX2<3:0> PORTC<3:0> no cambian

ENABLE

Retardo de 60 us

PORTC<0>=1 (RS=1)

RETURN

Page 115: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

108

ES_BIN

AUX=W (bits a escribir)

AUX<3>=0 No

W=ASCII de ‘0’ W=ASCII de ‘1’

TRANS

AUX<2>=0 No

W=ASCII de ‘0’ W=ASCII de ‘1’

TRANS

AUX<1>=0 No

W=ASCII de ‘0’ W=ASCII de ‘1’

TRANS

AUX<0>=0 No

W=ASCII de ‘0’ W=ASCII de ‘1’

TRANS

RETURN

Page 116: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

109

DESCOMP

CENTE=0; DECE=0; UNI=0 NUM_DEC=W

W=NUM_DEC-100

W = 0

No

NUM_DEC=W Incrementa CENTE

W=NUM_DEC-10

W = 0

No

NUM_DEC=W Incrementa DECE

W=NUM_DEC-1

W = 0

No

NUM_DEC=W Incrementa UNI

W=código ASCII de ‘0’ CENTE=CENTE+W DECE=DECE+W UNI=UNI+W

RETURN

Page 117: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

110

E_BINA

AUX=W (8 bits a escribir)

AUX1=8

AUX<7>=0 No

W=Código ASCII de ’0’

TRANS

Rota a la izquierda AUX Decrementa AUX1

AUX1=0

No

W=Código ASCII de ’1’

RETURN

Page 118: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

111

BO_LIN

AUX=0 AUX1=W (línea a borrar)

AUX1<1>=0 No

AUX<7>=1 AUX<6>=1

AUX1=0

AUX1=16 Sí

No

Escribe en la posición de memoria del LCD Indicada por AUX el carácter ‘ ‘

Incrementa AUX1 Incrementa AUX

RETURN

BO_LCD

PORTC<7:4>=B’0000’ (clear display)

ENABLE

PORTC<7:4>=B’0001’

ENABLE

Retardo de 2,56 ms

RETURN

Page 119: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

112

ENABLE

RETURN

PORTC<3>=1

Retardo de 1us

PORTC<3>=0

Retardo de 1us

TEMP

RETURN

TMR0=W

TMR0<7>=0 No

PRESC1

Prescaler Timer 1 = 1:256

RETURN

PRESC2

Prescaler Timer 1 = 1:2

RETURN

SELECT

Sitúa el cursor del LCD en la posición adecuada

Escribe en el LCD el carácter ‘*’

RETURN

Page 120: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

113

0

HI

LO

0

U7LM7805

1 3

2

IN OUT

GN

D

U8

LM7905

2 3

1

IN OUT

GN

DCON5

123

D101N4004

C16100pF

C14100nF

C10100nF

D111N4004

+ C12100uF

C11100nF

C17100pF

C15100nF+ C13

100uF

+15V

-15V

+5V

-5V

0+ C21

47uF

C2710nF

+ C23

47uF

+ C18

47uF

+ C25

47uF

+ C20

47uF

+ C22

47uF

+ C24

47uF

+ C19

47uF

C2610nF

U1 U2 U3 U4

U1 U2 U3 U4

U5 U6

+Vcc

-Vcc

2 Módulo Receptor 2.1 Diseño y Simulación del Subsistema Analógico 2.1.1 Alimentación En este caso la alimentación también es simétrica y se ha realizado mediante dos reguladores de tensión integrados, el 7805 y el 7905. El circuito se muestra en la figura (46), y se puede observar que es idéntico al circuito de la figura (28).

Figura 46. Circuito de alimentación del módulo receptor

En la siguiente figura se muestra el filtrado de la alimentación de los diferentes circuitos integrados.

Figura 47. Filtrado de la alimentación de los circuitos integrados del módulo receptor

Page 121: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

114

. SEÑAL

C1

10nF

C2

1uF

R1 10Señalacondicionada

2.1.2 Acondicionador de Señal Como ya se vió en el apartado 10.2.2, como la señal de información viaja por un cable que se encuentra junto al cable que transmite el reloj, se produce una interferencia de la señal de reloj sobre la señal de información. Para disminuir estos efectos se filtra la señal recibida mediante un filtro paso-bajo de primer orden. En la siguiente figura se muestra el circuito. A la salida del filtro también se ha colocado un condensador de 1 µF para eliminar posibles componentes de tensión continua.

Figura 48. Circuito acondicionador de señal del módulo receptor

El filtro paso-bajo de primer orden está formado por C1 y R1 . Como se puede ver se trata de un filtro pasivo. Aplicando la transformada de Fourier se puede calcular fácilmente su función de transferencia:

(79) Haciendo una aproximación se tiene que: - Para bajas frecuencias (ω<<1/R1C1)

º0)(,0)( =∠= ωω HdBHdB

- Para altas frecuencias (ω>>1/ R1C1))

º90)(,log201

log20)(11

−=∠−

= ωωω H

CRH

dB

- Para la frecuencia de corte (ω =1/ R1C1) ) se tiene una caída en la ganancia de –3 dB y la fase vale -45º.

11

11

1

1

)(

CRj

CRH

+=

ωω

Page 122: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

115

Los valores de C1 y R1 se calculan a partir de la expresión (80) y fijando el valor de C1 y la frecuencia de corte.

(80) La frecuencia de corte se fija a 1,6 MHz y el condensador se fija a 10nF. Dando valores se obtiene:

Ω=⋅⋅

=⋅⋅

= 94,9106,12

12

1

11 nFMHzCf

Rc ππ

Se escoge una valor de R2=10 ? . En la figura (49) se muestra la simulación, de la respuesta frecuencial de la ganancia en dB, del filtro paso-bajo diseñado. Se observa que para la frecuencia de corte fijada (1,6 MHz) se tiene aproximadamente los –3 dB esperados y que también se consigue una pendiente de -20 dB/ década.

Figura 49. Circuito acondicionador de señal del módulo receptor

11 2

1Cf

Rcπ

=

Page 123: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

116

-VCC

-VCC

VCC

VCC

CCP1

U2 74HC4053

1213

21

53

61110

9

14

15

4

X0X1

Y0Y1

Z0Z1

INHABC

X

Y

Z

R1056K

C3

470nF R1156K

R21K

R3560

R810K

+

-

U1DTL084

12

1314

411

R74K7

C4

470nF

R910K

P210K

1 3

2R5 18K

+

-

U1ATL084

3

21

411

R64K7

P11K

13

2

R410K

Señalacondicionada

Señaldemodulada

2.1.3 Demodulador El circuito demodulador se muestra en la figura (50) y se puede comprobar que es idéntico al circuito modulador de la figura (36), que ya se ha analizado en el apartado 1.1.4. La explicación del funcionamiento del circuito y la metodología para el cálculo de los componenteses es similar a la del circuito modulador de la figura (36), por este motivo se ha obviado su explicación. La única diferencia es que, como señal de entrada se tiene la señal modulada recibida del módulo emisor.

Figura 50. Circuito encargado de realizar la demodulación en el módulo receptor En la salida del circuito demodulador teóricamente se debería obtener la señal original, pero debido a que en la salida del mutiplexor analógico 74HC4053, se produce la alternancia rápida entre la salida del amplificador inversor (U1A) y la salida del amplificador no inversor (U1D), se producen unos picos al producirse la conmutación entre una salida y otra. Este efecto puede observarse en la simulación de la figura (51). En la parte de arriba se observa una señal sinusoidal de 1 kHz modulada con una señal portadora cuadrada bipolar de 10 kHz, y en la parte de abajo se observa la señal demodulada, en la cual se pueden apreciar los picos que se generan al conmutar tan rápido entre la salida de un operacional y otro. Para eliminar estos picos, después de realizar la modulación, se filtra la señal demodulada mediante un filtro paso-bajo de cuarto orden. El esquema del circuito se observa en la figura (52).

Page 124: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

117

-VCC-VCC

VCCVCC

C610nF

R124K7

R13560

C5 10nF

+

-

U1CTL084

10

98

411

R15560

R144K7

C810nF

+

-

U1BTL084

5

67

411

R164K7

R17560

C7 10nF

R19560

R184K7Señal

demodulada Señaldemoduladaf iltrada

Figura 51. Demodulación de una señal modulada, sin filtrado posterior

El filtro de cuarto orden se ha realizado mediante dos circuitos de Sallen-Key en cascada. El análisis del circuito es idéntico al que se hizo en el apartado 1.1.3, por este motivo se ha obviado su explicación.

Figura 52. Circuito de filtrado de la señal demodulada en el módulo receptor

Señal modulada

Señal demodulada

Page 125: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

118

+Vcc

-Vcc

PORTB7

PORTB6

Sonda Osciloscopio

PORTB6

PORTB6

señal demodulada f iltrada

CON2

1234C9

470nF

R2056K

U4LF356

3

2

74

6

1

5+

-

V+

V-

OUT

OS1

OS2

Salida Auricular

12345

U3 74HC4052

12141511

15246

109

13

3

X0X1X2X3

Y0Y1Y2Y3INHAB

X

Y

JACK3

Señal demoduladaf iltrada

Señal demodulada

Señal recibida

2.1.4 Acondicionador a Línea de Salida Este circuito se encarga de adaptar la señal de salida, para que no sufra ninguna distorsión al ser aplicada a otros elementos. En la figura (53) se muestra el circuito diseñado. El multiplexor análogico 74HC4052 se utiliza para poder seleccionar digitalmente que señal se quiere visualizar u oír. Es decir en la salida se puede tener la señal recibida del emisor, la señal de demodulada o bien la señal demodulada filtrada. En la salida del multiplexor se coloca un filtro paso-alto para eliminar alguna posible componente continua en la señal. Recordando la expresión de la frecuencia de corte de un filtro paso-alto y fijando la frecuencia de corte a 6 Hz y C9= 470 nF se obtiene.

Ω=⋅⋅

=⋅⋅

= 5643847062

12

1

920 nFHzCf

Rc ππ

y se escoge un valor de R20= 56 kΩ. Después del filtro paso-alto, la señal se aplica a través del operacional U4 (en configuración seguidor de tensión) a una salida para auricular. También se conecta directamente a una salida para sonda de osciloscopio o instrumento de medida. En este caso, no hace falta adaptar su impedancia mediante un operacional, ya que la impedancia de entrada del osciloscopio o instrumento de medida ya es elevada.

Figura 53. Circuito acondicionador a línea de salida del módulo receptor 2.2 Descripción del Hardware

Al igual que en el módulo emisor, el elemento principal del subsistema digital es el microcontrolador PIC 16F876.

En la figura (54) se muestra el esquema del circuito del subsistema digital. El reloj del

sistema es enviado por el módulo emisor y es regenerado por los inversores U6E y U6D.

Los diodos LED’s D1, D2, D3 y D4 indican el contenido del LFSR, D5 indica la frecuencia cifrada y D6 indica la frecuencia portadora. Se observa que el conexionado de D5

Page 126: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

119

+Vcc

CCP1

PORTB7

PORTB6

PORTB5

RELOJ

CON4

12345678910

U6E74HCT04

11 10

U6D74HCT04

9 8

D6

R21 1K

R22 1K

R23 1K

R24 1K

R25 1K

D1

U5 PIC16F876

1

234567

9

10

1112131415161718

2122232425262728

8

MCLR

RA0/AN0RA1/AN1RA2/AN2

RA3/AN3/VREFRA4/TOCKI

RA5/AN4/SS

OSC1/CLKIN

OSC2/CLKOUT

RC0/T1OSO/T1CKIRC1/T1OSIRC2/CCP1

RC3/SCK/SCLRC4/SDI/SDA

RC5/SDORC6RC7

RB0/INTRB1RB2RB3RB4RB5RB6RB7

Vss

D2

D3

D4

D5

R26 1K D7

R28 1K

R27 1K D8

D9

R30 1K

R29 10K

CON3

1234

PUL1

1 2

es diferente del resto de los diodos anteriores. Esto se debe a que todas las salidas digitales del Puerto A son CMOS, excepto la del pin PORTA<4> (es en drenador abierto), al cual se conecta el diodo D6. Todos los diodos LED se han conectado a sus respectivos pines del “Puerto A” mediante una resistencia de 1 kΩ para limitar la intensidad. El pulsador PUL5 es el encargado de realizar el reset por hardware del microcontrolador. Debido a que la entrada de reset del microcontrolador (MCLR) es de lógica negada, ésta se conecta mediante R29 a VCC. Al pulsar PUL5 se conecta a masa MCLR y por lo tanto se realizará el reset del micro. PORTB<5> se utiliza como salida digital para comunicarse con el módulo emisor. PORTB<6> y PORTB<7> se utilizan para seleccionar la salida del multiplexor analógico (U3) y a través de PORTC<2> se obtiene la señal PWM que se aplica al multiplexor analógico (U2) para conseguir la modulación. Los didos LED’s D9, D8 y D7 se utilizan para indicar que señal se está seleccionada en la salida del módulo emisor, y están conectados en PORTC<5:7> respectivamente, a través de una resistencia de 1 kΩ para limitar la intensidad.

Figura 54. Subsistema digital del módulo receptor

Page 127: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

120

2.3 Descripción del Software. Diagramas de Flujo. El programa principal se encarga de inicializar el sistema y está continuamente recibiendo las órdenes que le envía el módulo emisor. Éste le indica en cada momento que frecuencia debe utilizar para la modulación y también que señal debe aparecer en su salida. A continuación se explicará el funcionamiento del programa principal y del resto de subrutinas (INTERRU, D_CIFRA, RECIBE y S_SALID). Las subrutinas CARG_DU, CAL_PER, MULTI, DIVIDE, PRESC1, PRESC2 Y TEMP son idénticas a las del módulo emisor, por lo tanto no se han explicado. 2.3.1 Programa principal En primer lugar configura adecuadamente los pines del PIC, para conseguir una correcta inicialización del sistema y establece comunicación con el módulo emisor. A continuación recibe los datos (las dos frecuencias de modulación y la semilla del sistema de cifrado digital) y calcula el periodo de las dos frecuencias y su duty cycle. Una vez realizado todo esto, espera a recibir la orden del módulo emisor para empezar la decodificación. A partir de este momento está continuamente recibiendo del módulo emisor que frecuencia debe utilizar en todo momento y que señal debe aparecer en la salida. También se encarga de visuliazar el contenido del LFSR a través de los LED’s D1, D2, D3 y D4, y la frecuencia portadora y la cifrada a través de los LED’s D6 y D5 respectivamente. Finalmente el proceso de decodificación finaliza cuando se recibe la orden por del módulo emisor. 2.3.2 Subrutina de Atención a la Interrupción (INTERRU) Esta subrutina está relacionada con la rutina de atención de a la interrupción del módulo emisor. Su funcionamiento está explicado en el apartado 1.3.11 2.3.3 Subrutina de Descifrado de la Frecuencia de Modulación (D_CIFRA) En esta subrutina se descifra la frecuencia cifrada que se recibe del módulo emisor. El sistema de descifrado también se basa en registros de desplazamiento con realimentación lineal, al igual que en el módulo emisor. 2.3.4 Subrutina de Recepción de Datos del Módulo Emisor (RECIBE) Se encarga de recibir los datos enviados por el módulo emisor a través de PORTB<5>. Se utiliza una comunicación serie asíncrona. El receptor espera recibir bit de start, 8 bits de datos y bit de stop.

Page 128: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

121

2.3.5 Subrutina de Selección de la Salida a Visualizar (S_SALID) Esta subrutina se encarga de que en la salida aparezca la señal indicada por el módulo emisor. Para ello configura correctamente los pines del PIC. A continuación se muestran los diagramas de flujo de las subrutinas anteriores

Page 129: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

122

PROGRAMA PRINCIPAL

RECIBE

Puerto A como E/S digital Puerto A como salida

Deshabilita interrupciones globales PORTA<7:5>=0, PORT<4>=1, PORTA<3:0>=0 RETARDO_CARGA=0x00 CONTROL<7:0>=0, PORTC<7:0>=0, PORTB<7:6>=0 DATOS<7:0>=0 Habilita resistencias pull-up de PORTB PORTB<5> como entrada PORTB<7:6> como salida PORTC<7:5> como salida

SEL_SALIDA=0x00 Deshabilita interrupciones globales PORTA<7:5>=0 PORTA<4>=1 PORTA<3:0>=0 RETARDO_CARGA=0x00 CONTROL<7:0>=0x00 PORTC<7:0>=0x00 PORTB<7:6>=como salida la señal recibida

Prescaler Timer0=1:256

Enciende D1,D2,D3,D4,D5,D6 durante 0,5s y los apaga durante 0,5s, tres veces seguidas para indicar que ha establecido comunicación con el emisor

RECIBE

TRAMA=10101010

No

TRAMA=10101010

No

SEMILLA=Semilla recibida del emisor

FREC1=frecuencia 0 recibida del emisor

FREC2=frecuencia 1 recibida del emisor

C A B

Page 130: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

123

FREC_C=frecuencia cifrada recibida del emisor

REG_LFSR=SEMILLA FREC_P<0>=(REG_LFSR<0>) ⊕ (FREC_C<0>)

Calcula el periodo y duty cycle de FREC1

Calcula el periodo y duty cycle de FREC2

Prepara el valor del duty cycle de FREC1 para poder ser cargado directamente

Prepara el valor del duty cycle de FREC2 para poder ser cargado directamente

Habilita interrupciones globales y periféricos Borra flag interrupción Timer2 Deshabilita interrupción Timer2

PORTC<2>=0 PORTC<2> como salida

Periodo PWM=PERIODO de FREC2 DC del PWM= DC de FREC2

FREC_P<0>=1

No

Timer2=0x00

FREC_P<0>=1

No

Prescaler Timer2 = Prescaler de FREC2

Periodo PWM=PERIODO de FREC1 DC del PWM= DC de FREC1

Prescaler Timer2 = Prescaler de FREC1

Configura el CCP1 como PWM

D

C

Page 131: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

124

RECIBE

PORTB<5>=0

No

D

Activa Timer2 (PWM)

Enciende D7, apaga D5,D6 Salida=señal recibida (modulada)

PORTA<3:0>=REG_LFSR<3:0>

FREC_P<0>=1

No

PORTA<4>=0 PORTA<4>=1

FREC_C<0>=1

No

PORTA<5>=1 PORTA<5>=0

TRAMA=10101010

No

DATOS<1>=0

DATOS<0>=1

Para Timer2 y deshabilita interrupciones globales Apaga D1, D2, D3, D4, D5, D6 Conecta la salida a masa

S_SALID

E

F

A

B

Page 132: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

125

D_CIFRA

PORTB<5>=0

No

Borra flag interrupción Timer2 Habilita interrupción Timer2

PORTA<3:0>=REG_LFSR<3:0>

FREC_P<0>=1

No

PORTA<4>=0 PORTA<4>=1

FREC_C<0>=1

No

PORTA<5>=1 PORTA<5>=0

E

F

Page 133: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

126

INTERRU

TMP_W=W TMP_STATUS=STATUS Selección banco 0

TMR2IF=1 Sí

No

CCPR1L=DUTYH1 CCP1CON<5:4>=DUTYL1<5:4>

CCPR1L=DUTYH2 CCP1CON<5:4>=DUTYL2<5:4>

Prescaler Timer2=PREESCALER1 Prescaler Timer2=PREESCALER2

PR2=PERIODO1 PR2=PERIODO2

Deshabilita interrupciones Timer 2

FREC_P<0>=0 No

FREC_P<0>=0 No

FREC_P<0>=0 No

TMR2IF=0 STATUS=TMP_STATUS W=TMP_W

RETIE

Page 134: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

127

D_CIFRA

FREC_C=DATOS

FREC_P=(REG_LFSR) ⊕ (FREC_P)

RETURN

REG_LFSR<4>=(REG_LFSR<1>) ⊕ (REG_LFSR<0>) Rota a la derecha REG_LFSR

Page 135: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

128

RECIBE

NUM_BITS=1

Timer 0 = 234 (para retardar 50 us) Limpia flag interrupción Timer 0 (T0IF)

NUM_BITS=8

No

PORTB<5>=0 No

T0IF = 1 No

W=DATOS Limpia flag interrupción Timer 0 (T0IF)

T0IF = 1 No

RETURN

PORTB<5> como entrada Prescaler Timer 0 = 1:2 Deshabilita interrupciones Timer 0

DATOS<7>=PORTB<5> Timer 0 = 210 (para retardar 100 us)

T0IF = 1 No

Timer 0 = 210 (para retardar 100 us)

Limpia flag interrupción Timer 0

Incrementa NUM_BITS rota a la derecha DATOS

Page 136: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

129

Enciende D9, apaga D7, D8 Salida = señal demod filtrada

SEL_SALIDA=0

No

SEL_SALIDA=3

No

SEL_SALIDA=0

SEL_SALIDA=2

No

SEL_SALIDA=1

No

Enciende D7, apaga D8, D9 Salida = señal recibida

Enciende D8, apaga D7, D9 Salida = señal demodulada

RETURN

S_SALID

Incrementa SEL_SALIDA

Page 137: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

130

3 Visualización de señales 3.1 Descripción del programa El programa ha sido diseñado para realizar la adquisición y visualización de las señales (en el dominio temporal y frecuencial) adquiridas de los módulos didácticos. El diagrama de bloques del programas puede verse en la figura 55.

Figura 55. Diagrama de bloques del programa de adquisición y visualización de señales El diagrama de bloques está dividido en tres partes principales. La primera de ellas, situada en la parte superior izquierda (AI MULT PT), se encarga de adquirir la señal generada por los módulos didácticos. La segunda, situada en la parte central (Amplitude Spectrum) realiza la FFT de la señal adquirida. La tercera, situada en la parte derecha, se encarga de visualizar la señal adquirida. Concretamente permite visualizar la señal en el dominio del tiempo, y también en el dominio de la frecuencia.

Page 138: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

131

A continuación se indican detalladamente los parámetros de cada una de los bloques utilizados mas importantes:

AI Acquire Waveform Device: es el número que ha recibido la tarjeta en la configuración inicial Channel: es el canal análogico que será utilizado en la adquisición de la señal. Number of samples: es el número de muestras Sample rate: es la frecuencia de muestreo High limit: es el nivel de tensión superior para el canal Low limit: es el nivel inferior de tensión para el canal Waveform: contiene la señal de salida

Amplitude and base spectrum

Signal: es la señal de entrada en el dominio del tiempo. Amp Sepctrum: es la amplitud del espectro de la señal. Df: contiene las componentes frecuenciales de la señal.

Spectrum Unit Conversion Spectrum in: contiene el espectro de la señal Spectrum type: especifica el tipo de espectro, potencia (0), amplitud (1), ganancia (2) log/linear: especifica si la salida es lineal (0) o logarítmica (1) display unit: especifica la unidad del espectro de salida. Para nuestro caso hemos escogido voltios de pico (1) Spectrum out: es el espectro de salida con la especificaciones que hemos escogido.

Page 139: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

132

Iniciar programa

Parar programa

Representación temporal

Representación frecuencial (lineal)

Representación frecuencial (dB)

controles

En la figura 57 se observa el panel frontal del diagrama de bloques anterior. En él se observan, los tres paneles mediante los cuales se pueden visualizar una señal en el dominio del tiempo y en el dominio de la frecuencia, tanto de forma lineal como logarítmica.

Figura 56. Panel frontal del programa de adquisición y visualización de señales

Page 140: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

133

4 Listado de componentes 4.1 Módulo Emisor

Componentes Valor Descripción

R1, R3, R17, R18, R19, R27 10 k?

R2, R4, R14, R24, R26, R28, R29 R30, R31, R32, R33, R34, R35

1 k?

R5 10 ?

R6, R8, R10, R12, R16, R21 4,7 k?

R7, R9, R11, R13, R15 560 ?

R20 18 k?

R22, R23, R25 56 k?

R36 1 M?

Resistores de carbón, 5% de tolerancia, ¼ W

P1 47 k? Potenciómetro plástico de montaje superficial

P2 1 k? Potenciómetro multivuelta ajustable vertical

P3 10 k? Potenciómetro multivuelta ajustable vertical

P4 10 k? Potenciómetro ajustable horizontal

C1, C19, C20, C21, C22, C23, C24 C25, C26 47µF Condensador electrolítico, 25 V

C2, C3, C4, C5, C27, C28 10 nF

C6, C7, C8 470 nF Condensador de poliéster

C9, C10 22 pF Condensador cerámico

C11, C12, C15, C16 100 nF Condensador poliéster

C13, C14 100 µF Condensador electrolítico, 25 V

C17, C18 100 pF Condensador cerámico

U1, U2 TL084 Amplificador operacional con entrada JFET cuádruple

U3 74HC4053 Multiplexor analógico de 2 canales triple

U4 74HC4052 Multiplexor analógico de 4 canales doble

U5 PIC 16F876 Microcontrolador PIC

U6 74HCT04 Puerta lógica inversora séxtuple

U7 LM7805 Regulador lineal, 1 A

Page 141: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

134

U8 LM7905

Y1 4 MHz Cristal de cuarzo

D1, D2, D3, D4, D5, D6 Diodo LED 5 mm rojo

D7, D8, D9 Diodo LED 3mm rojo

D10, D11, D12 1N4004 Diodo rectificador

4.2 Módulo Receptor

Componentes Valor Descripción

R1 10 ?

R2, R21, R22, R23, R24, R25, R26 R27, R28, R30

1 k?

R3, R13, R15, R17, R19 560 ?

R4, R8, R9, R29 10 k?

R5 18 k?

R6, R7, R12, R14, R16, R18 4,7 k?

R10, R11, R20 56 k?

Resistores de carbón, 5% de tolerancia, ¼ W

P1 1 k? Potenciómetro multivuelta ajustable vertical

P2 10 k? Potenciómetro multivuelta ajustable vertical

C1, C5, C6, C7, C8, C26, C27 10 nF

C2 1 µF

C3, C4, C9 470 nF

C10, C11, C14, C15 100 nF

Condensador de poliéster

C16, C17 100 pF Condensador cerámico

C18, C19, C20, C21, C22, C23 C24, C26 47 µF Condensador electrolítico, 25 V

C12, C13 100 µF Condensador electrolítico, 25 V

U1 TL084 Amplificador operacional con entrada JFET cuádruple

U2 74HC4053 Multiplexor analógico de 2 canales triple

U3 74HC4052 Multiplexor analógico de 4 canales doble

U4 LF356 Amplificador operacional con entrada JFET

Page 142: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Memoria de Cálculo

135

U5 PIC 16F876 Microcontrolador PIC

U6 74HCT04 Puerta lógica inversora séxtuple

U7 LM7805

U8 LM7905 Regulador lineal, 1 A

D1, D2, D3, D4, D5, D6 Diodo LED 5 mm rojo

D7, D8, D9 Diodo LED 3mm rojo

D10, D11 1N4004 Diodo rectificador

Page 143: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Planos

Page 144: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto
Page 145: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto
Page 146: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto
Page 147: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto
Page 148: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto
Page 149: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto
Page 150: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto
Page 151: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto
Page 152: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto
Page 153: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto
Page 154: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto
Page 155: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto
Page 156: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto
Page 157: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto
Page 158: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto
Page 159: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Presupuesto

Page 160: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

153

1 Precios Elementales 1.1 Capítulo 1. Diseño, Simulación e Implementación del Módulo Emisor

Código Unidad Descripción Precio

A001 h Estudio teórico y simulación 28 €

A002 h Diseño del hardware 28 €

A003 h Desenvolupamiento del software 28 €

A004 h Mecanizado de la caja 13,50 €

A005 h Montaje de las placas 13,50 €

A006 h Pruebas de funcionamiento y puesta en marcha 28 €

1.2 Capítulo 2. Material del Módulo Emisor

Código Unidad Descripción Precio

B001 u Resistores de carbón, 5% de tolerancia, ¼ W, diferentes valores 0,02 €

B002 u Potenciómetro plástico de montaje superficial, 47 kΩ 0,94 €

B003 u Botón mando potenciómetro de montaje superficial 1,38 €

B004 u Potenciómetro multivuelta ajustable vertical, ¼ W, 1 kΩ 1,14 €

B005 u Potenciómetro multivuelta ajustable vertical, ¼ W, 10 kΩ 1,17 €

B006 u Potenciómetro ajustable horizontal, ¼ W, 10 kΩ 0,26 €

B007 u Condensador electrolítico 47 µF, 25 V 0,08 €

B008 u Condensador electrolítico 100 µF, 25 V 0,12 €

B009 u Condensador de poliéster de 10 nF 0,14 €

B010 u Condensador de poliéster de 100 nF 0,15 €

B011 u Condensador de poliéster de 470 nF 0,20 €

B012 u Condensador cerámico de 22 pF 0,03 €

B013 u Condensador cerámico de 100 pF 0,12 €

B014 u Amplificador Operacional con entrada JFET cuádruple TL084 0,54 €

B015 u Multiplexor analógico de 4 canales doble 74HC4052 1,13 €

B016 u Multiplexor analógico de 2 canales triple 74HC4053 0,45 €

B017 u Microcontrolador PIC 16F876 14,24 €

Page 161: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

154

B018 u Puerta lógica inversora séxtuple 74HCT04 0,21 €

B019 u Regulador lineal, 1 A, LM7805 0,43 €

B020 u Regulador lineal, 1 A, LM7905 0,28 €

B021 u Cristal de cuarzo de 4 MHz 2,05 €

B022 u Diodo LED rojo de 5mm 0,09 €

B023 u Diodo LED rojo de 3 mm 0,06 €

B024 u Diodo rectificador 1N4004 0,02 €

B025 u Mirilla empotrar LED de 5mm 0,18 €

B026 u Mirilla empotrar LED de 3 mm 0,16 €

B027 u Visualizador LCD 22,14 €

B028 u Jack chasis estéreo de 3,5 mm 0,69 €

B029 u Zócalo circuito integrado DIP 14 vias 0,08 €

B030 u Zócalo circuito integrado DIP 16 vias 0,10 €

B031 u Zócalo circuito integrado DIP 28 vias 0,27 €

B032 u Conector banana hembra de 4 mm 1,03 €

B033 u Pulsador de montaje superficial rojo 1,73 €

B034 u Pulsador de montaje superficial negro 1,73 €

B035 u Placa de fibra de vidrio positiva 125x165 6,85 €

B036 u Placa de fibra de vidrio positiva 100x160 5,24 €

B037 u Regleta de 3 polos para PCB 0,75 €

B038 u Conector macho para PCB de 2 vias 0,14 €

B039 u Conector macho para PCB de 4 vias 0,16 €

B040 u Conector macho para PCB de 6 vias 0,18 €

B041 u Conector macho para PCB de 10 vias 0,23 €

B042 u Conector hembra de 2 vias 0,10 €

B043 u Conector hembra de 4 vias 0,12 €

B044 u Conector hembra de 6 vias 0,14 €

B045 u Conector hembra de 10 vias 0,16 €

B046 u Conector macho para PCB para cable plano de 16 vias 0,85 €

B047 u Conector hembra para cable plano de 16 vias 0,60 €

Page 162: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

155

B048 u Conector para cable telefónico para PCB 0,85 €

B049 u Conector 4 polos para cable telefónico 0,12 €

B050 m Cable plano de 16 vias 1,10 €

B051 m Cable telefónico de 4 vias 0,21 €

B052 m Cable conexión flexible 0,41 €

B053 u Caja de PVC 190x110x60 13,30 €

B054 u Separador hexagonal 3x10 0,10 €

B055 u Tornillo métrica 3mm 0,02 €

B056 u Tuerca métrica 3 mm 0,02 €

1.3 Capítulo 3. Diseño, Simulación e Implementación del Módulo Receptor

Código Unidad Descripción Precio

C001 h Estudio teórico y simulación 28 €

C002 h Diseño del hardware 28 €

C003 h Desenvolupamiento del software 28 €

C004 h Mecanizado de la caja 13,50 €

C005 h Montaje de la placa 13,50 €

C006 h Pruebas de funcionamiento y puesta en marcha 28 €

1.4 Capítulo 4. Material del Módulo Receptor

Código Unidad Descripción Precio

D001 u Resistores de carbón, 5% de tolerancia, ¼ W, diferentes valores 0,02 €

D002 u Potenciómetro multivuelta ajustable vertical, ¼ W, 1 kΩ 1,14 €

D003 u Potenciómetro multivuelta ajustable vertical, ¼ W, 10 kΩ 1,17 €

D004 u Condensador electrolítico 47 µF, 25 V 0,08 €

D005 u Condensador electrolítico 100 µF, 25 V 0,12 €

D006 u Condensador de poliéster de 10 nF 0,14 €

D007 u Condensador de poliéster de 100 nF 0,15 €

Page 163: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

156

D008 u Condensador de poliéster de 470 nF 0,20 €

D009 u Condensador de poliéster de 1 µF 0,24 €

D010 u Condensador cerámico de 100 pF 0,12 €

D011 u Amplificador Operacional con entrada JFET cuádruple TL084 0,54 €

D012 u Amplificador Operacional con entrada JFET LF356 0,84 €

D013 u Multiplexor analógico de 4 canales doble 74HC4052 1,13 €

D014 u Multiplexor analógico de 2 canales triple 74HC4053 0,45 €

D015 u Microcontrolador PIC 16F876 14,24 €

D016 u Puerta lógica inversora séxtuple 74HCT04 0,21 €

D017 u Regulador lineal, 1 A, LM7805 0,43 €

D018 u Regulador lineal, 1 A, LM7905 0,28 €

D019 u Diodo LED rojo de 5mm 0,09 €

D020 u Diodo LED rojo de 3 mm 0,06 €

D021 u Diodo rectificador 1N4004 0,02 €

D022 u Mirilla empotrar LED de 5mm 0,18 €

D023 u Mirilla empotrar LED de 3 mm 0,16 €

D024 u Jack chasis estéreo de 3,5 mm 0,69 €

D025 u Zócalo circuito integrado DIP 4 vias 0,04 €

D026 u Zócalo circuito integrado DIP 14 vias 0,08 €

D027 u Zócalo circuito integrado DIP 16 vias 0,10 €

D028 u Zócalo circuito integrado DIP 28 vias 0,27 €

D029 u Conector banana hembra de 4 mm 1,03 €

D030 u Pulsador de montaje superficial rojo 1,73 €

D031 u Placa de fibra de vidrio positiva 100x160 5,24 €

D032 u Regleta de 3 polos para PCB 0,75 €

D033 u Conector macho para PCB de 4 vias 0,16 €

D034 u Conector macho para PCB de 10 vias 0,23 €

D035 u Conector hembra de 4 vias 0,12 €

D036 u Conector hembra de 10 vias 0,16 €

D037 u Conector para cable telefónico para PCB 0,85 €

Page 164: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

157

D038 m Cable conexión flexible 0,41 €

D039 u Caja de PVC 155x90x50 9,66 €

D040 u Separador hexagonal 3x10 0,10 €

D041 u Tornillo métrica 3mm 0,02 €

D042 u Tuerca métrica 3 mm 0,02 €

Page 165: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

158

2 Cantidades 2.1 Capítulo 1. Diseño, Simulación e Implementación del Módulo Emisor

Código Unidad Descripción Cantidad

A001 h Estudio teórico y simulación 20

A002 h Diseño del hardware 30

A003 h Desenvolupamiento del software 30

A004 h Mecanizado de la caja 10

A005 h Montaje de las placas 8

A006 h Pruebas de funcionamiento y puesta en marcha 10

2.2 Capítulo 2. Material del Módulo Emisor

Código Unidad Descripción Cantidad

B001 u Resistores de carbón, 5% de tolerancia, ¼ W, diferentes valores 36

B002 u Potenciómetro plástico de montaje superficial, 47 kΩ 1

B003 u Botón mando potenciómetro de montaje superficial 1

B004 u Potenciómetro multivuelta ajustable vertical, ¼ W, 1 kΩ 1

B005 u Potenciómetro multivuelta ajustable vertical, ¼ W, 10 kΩ 1

B006 u Potenciómetro ajustable horizontal, ¼ W, 10 kΩ 1

B007 u Condensador electrolítico 47 µF, 25 V 9

B008 u Condensador electrolítico 100 µF, 25 V 2

B009 u Condensador de poliéster de 10 nF 6

B010 u Condensador de poliéster de 100 nF 4

B011 u Condensador de poliéster de 470 nF 3

B012 u Condensador cerámico de 22 pF 2

B013 u Condensador cerámico de 100 pF 2

B014 u Amplificador Operacional con entrada JFET cuádruple TL084 2

B015 u Multiplexor analógico de 4 canales doble 74HC4052 1

B016 u Multiplexor analógico de 2 canales triple 74HC4053 1

B017 u Microcontrolador PIC 16F876 1

Page 166: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

159

B018 u Puerta lógica inversora séxtuple 74HCT04 1

B019 u Regulador lineal, 1 A, LM7805 1

B020 u Regulador lineal, 1 A, LM7905 1

B021 u Cristal de cuarzo de 4 MHz 1

B022 u Diodo LED rojo de 5mm 6

B023 u Diodo LED rojo de 3 mm 3

B024 u Diodo rectificador 1N4004 3

B025 u Mirilla empotrar LED de 5mm 6

B026 u Mirilla empotrar LED de 3 mm 3

B027 u Visualizador LCD 1

B028 u Jack chasis estéreo de 3,5 mm 3

B029 u Zócalo circuito integrado DIP 14 vias 3

B030 u Zócalo circuito integrado DIP 16 vias 2

B031 u Zócalo circuito integrado DIP 28 vias 1

B032 u Conector banana hembra de 4 mm 7

B033 u Pulsador de montaje superficial rojo 1

B034 u Pulsador de montaje superficial negro 4

B035 u Placa de fibra de vidrio positiva 125x165 1

B036 u Placa de fibra de vidrio positiva 100x160 1

B037 u Regleta de 3 polos para PCB 1

B038 u Conector macho para PCB de 2 vias 1

B039 u Conector macho para PCB de 4 vias 1

B040 u Conector macho para PCB de 6 vias 2

B041 u Conector macho para PCB de 10 vias 1

B042 u Conector hembra de 2 vias 1

B043 u Conector hembra de 4 vias 1

B044 u Conector hembra de 6 vias 2

B045 u Conector hembra de 10 vias 1

B046 u Conector macho para PCB para cable plano de 16 vias 2

B047 u Conector hembra para cable plano de 16 vias 2

Page 167: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

160

B048 u Conector para cable telefónico para PCB 1

B049 u Conector 4 polos para cable telefónico 2

B050 m Cable plano de 16 vias 0,30

B051 m Cable telefónico de 4 vias 1

B052 m Cable conexión flexible 3

B053 u Caja de PVC 190x110x60 1

B054 u Separador hexagonal 3x10 4

B055 u Tornillo métrica 3mm 12

B056 u Tuerca métrica 3 mm 12

2.3 Capítulo 3. Diseño, Simulación e Implementación del Módulo Receptor

Código Unidad Descripción Cantidad

C001 h Estudio teórico y simulación 15

C002 h Diseño del hardware 20

C003 h Desenvolupamiento del software 30

C004 h Mecanizado de la caja 8

C005 h Montaje de las placa 6

C006 h Pruebas de funcionamiento y puesta en marcha 5

2.4 Capítulo 4. Material del Módulo Receptor

Código Unidad Descripción Cantidad

D001 u Resistores de carbón, 5% de tolerancia, ¼ W, diferentes valores 30

D002 u Potenciómetro multivuelta ajustable vertical, ¼ W, 1 kΩ 1

D003 u Potenciómetro multivuelta ajustable vertical, ¼ W, 10 kΩ 1

D004 u Condensador electrolítico 47 µF, 25 V 8

D005 u Condensador electrolítico 100 µF, 25 V 2

D006 u Condensador de poliéster de 10 nF 7

D007 u Condensador de poliéster de 100 nF 4

Page 168: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

161

D008 u Condensador de poliéster de 470 nF 3

D009 u Condensador de poliéster de 1 µF 1

D010 u Condensador cerámico de 100 pF 2

D011 u Amplificador Operacional con entrada JFET cuádruple TL084 1

D012 u Amplificador Operacional con entrada JFET LF356 1

D013 u Multiplexor analógico de 4 canales doble 74HC4052 1

D014 u Multiplexor analógico de 2 canales triple 74HC4053 1

D015 u Microcontrolador PIC 16F876 1

D016 u Puerta lógica inversora séxtuple 74HCT04 1

D017 u Regulador lineal, 1 A, LM7805 1

D018 u Regulador lineal, 1 A, LM7905 1

D019 u Diodo LED rojo de 5mm 6

D020 u Diodo LED rojo de 3 mm 3

D021 u Diodo rectificador 1N4004 2

D022 u Mirilla empotrar LED de 5mm 6

D023 u Mirilla empotrar LED de 3 mm 3

D024 u Jack chasis estéreo de 3,5 mm 1

D025 u Zócalo circuito integrado DIP 4 vias 1

D026 u Zócalo circuito integrado DIP 14 vias 2

D027 u Zócalo circuito integrado DIP 16 vias 2

D028 u Zócalo circuito integrado DIP 28 vias 1

D029 u Conector banana hembra de 4 mm 5

D030 u Pulsador de montaje superficial rojo 1

D031 u Placa de fibra de vidrio positiva 100x160 1

D032 u Regleta de 3 polos para PCB 1

D033 u Conector macho para PCB de 4 vias 2

D034 u Conector macho para PCB de 10 vias 1

D035 u Conector hembra de 4 vias 2

D036 u Conector hembra de 10 vias 1

D037 u Conector para cable telefónico para PCB 1

Page 169: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

162

D038 m Cable conexión flexible 2

D039 u Caja de PVC 155x90x50 1

D040 u Separador hexagonal 3x10 4

D041 u Tornillo métrica 3mm 4

D042 u Tuerca métrica 3 mm 4

Page 170: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

163

3 Aplicación de Precios 3.1 Capítulo 1. Diseño, Simulación e Implementación del Módulo Emisor

Código Unidad Descripción Precio Cantidad Importe

A001 h Estudio teórico y simulación 28 € 20 560 €

A002 h Diseño del hardware 28 € 30 840 €

A003 h Desenvolupamiento del software 28 € 30 840 €

A004 h Mecanizado de la caja 13,50 € 10 135 €

A005 h Montaje de las placas 13,50 € 80 135 €

A006 h Pruebas de funcionamiento y puesta en marcha

28 € 10 280 €

Total capítulo 1 - Diseño, Simulación e Implementación del Módulo Emisor: 2790 €

El presupuesto del capítulo asciende a DOS MIL SETECIENTOS NOVENTA EUROS. 3.2 Capítulo 2. Material del Módulo Emisor

Código Unidad Descripción Precio Cantidad Importe

B001 u Resistores de carbón, 5% de tolerancia, ¼ W, diferentes valores 0,02 € 36 0,72 €

B002 u Potenciómetro plástico de montaje superficial, 47 kΩ

0,94 € 1 0,94 €

B003 u Botón mando potenciómetro de montaje superficial 1,38 € 1 1,38 €

B004 u Potenciómetro multivuelta ajustable vertical, ¼ W, 1 kΩ

1,14 € 1 1,14 €

B005 u Potenciómetro multivuelta ajustable vertical, ¼ W, 10 kΩ

1,17 € 1 1,17 €

B006 u Potenciómetro ajustable horizontal, ¼ W, 10 kΩ

0,26 € 1 0,26 €

B007 u Condensador electrolítico 47 µF, 25 V 0,08 € 9 0,72 €

B008 u Condensador electrolítico 100 µF, 25 V 0,12 € 2 0,24 €

B009 u Condensador de poliéster de 10 nF 0,14 € 6 0,84 €

B010 u Condensador de poliéster de 100 nF 0,15 € 4 0,6 €

B011 u Condensador de poliéster de 470 nF 0,20 € 3 0,6 €

B012 u Condensador cerámico de 22 pF 0,03 € 2 0,06 €

B013 u Condensador cerámico de 100 pF 0,12 € 2 0,24 €

B014 u Amplificador Operacional con entrada JFET cuádruple TL084 0,54 € 2 1,08 €

B015 u Multiplexor analógico de 4 canales doble 74HC4052 1,13 € 1 1,13 €

B016 u Multiplexor analógico de 2 canales triple 74HC4053

0,45 € 1 0,45 €

Page 171: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

164

B017 u Microcontrolador PIC 16F876 14,24 € 1 14,24 €

B018 u Puerta lógica inversora séxtuple 74HCT04 0,21 € 1 0,21 €

B019 u Regulador lineal, 1 A, LM7805 0,43 € 1 0,43 €

B020 u Regulador lineal, 1 A, LM7905 0,28 € 1 0,28 €

B021 u Cristal de cuarzo de 4 MHz 2,05 € 1 2,05 €

B022 u Diodo LED rojo de 5mm 0,09 € 6 0,54 €

B023 u Diodo LED rojo de 3 mm 0,06 € 3 0,18 €

B024 u Diodo rectificador 1N4004 0,02 € 3 0,06 €

B025 u Mirilla empotrar LED de 5mm 0,18 € 6 1,08 €

B026 u Mirilla empotrar LED de 3 mm 0,16 € 3 0,48 €

B027 u Visualizador LCD 22,14 € 1 22,14 €

B028 u Jack chasis estéreo de 3,4 mm 0,69 € 3 2,07 €

B029 u Zócalo circuito integrado DIP 14 vias 0,08 € 3 0,24 €

B030 u Zócalo circuito integrado DIP 16 vias 0,10 € 2 0,20 €

B031 u Zócalo circuito integrado DIP 28 vias 0,27 € 1 0,27 €

B032 u Conector hembra de 4 mm 1,03 € 7 7,21 €

B033 u Pulsador de montaje superficial rojo 1,73 € 1 1,73 €

B034 u Pulsador de montaje superficial negro 1,73 € 4 6,92 €

B035 u Placa de fibra de vidrio positiva 125x165 6,85 € 1 6,85 €

B036 u Placa de fibra de vidrio positiva 100x160 5,24 € 1 5,24 €

B037 u Regleta de 3 polos para PCB 0,75 € 1 0,75 €

B038 u Conector macho para PCB de 2 vias 0,14 € 1 0,14 €

B039 u Conector macho para PCB de 4 vias 0,16 € 1 0,16 €

B040 u Conector macho para PCB de 6 vias 0,18 € 2 0,36 €

B041 u Conector macho para PCB de 10 vias 0,23 € 1 0,23 €

B042 u Conector hembra de 2 vias 0,10 € 1 0,10 €

B043 u Conector hembra de 4 vias 0,12 € 1 0,12 €

B044 u Conector hembra de 6 vias 0,14 € 2 0,28 €

B045 u Conector hembra de 10 vias 0,16 € 1 0,16 €

B046 u Conector macho para PCB para cable plano de 16 vias 0,85 € 2 1,7 €

Page 172: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

165

B047 u Conector hembra para cable plano de 16 vias 0,60 € 2 1,2 €

B048 u Conector para cable telefónico para PCB 0,85 € 1 0,85 €

B049 u Conector 4 polos para cable telefónico 0,12 € 2 0,24 €

B050 m Cable plano de 16 vias 1,10 € 0,30 0,33 €

B051 m Cable telefónico de 4 vias 0,21 € 1 0,21 €

B052 m Cable conexión flexible 0,41 € 3 1,23 €

B053 u Caja de PVC 190x110x60 13,30 € 1 13,30 €

B054 u Separador hexagonal 3x10 0,10 € 4 0,4 €

B055 u Tornillo métrica 3mm 0,02 € 12 0,24 €

B056 u Tuerca métrica 3 mm 0,02 € 12 0,24 €

Total capítulo 2 – Material del Módulo Emisor: 106,23 €

El presupuesto del capítulo asciende a CIENTO SEIS EUROS CON VEINTITRÉS CÉNTIMOS 3.3 Capítulo 3. Diseño, Simulación e Implementación del Módulo Receptor

Código Unidad Descripción Precio Cantidad Importe

C001 h Estudio teórico y simulación 28 € 15 420 €

C002 h Diseño del hardware 28 € 20 560 €

C003 h Desenvolupamiento del software 28 € 30 840 €

C004 h Mecanizado de la caja 13,50 € 8 108 €

C005 h Montaje de las placas 13,50 € 6 81 €

C006 h Pruebas de funcionamiento y puesta en marcha

28 € 5 140 €

Total capítulo 3- Diseño, Simulación e Implementación del Módulo Receptor: 2149 €

El presupuesto del capítulo asciende a DOS MIL CIENTO CUARENTA Y NUEVE EUROS

Page 173: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

166

3.4 Capítulo 4. Material del Módulo Receptor

Código Unidad Descripción Precio Cantidad Importe

D001 u Resistores de carbón, 5% de tolerancia, ¼ W, diferentes valores 0,02 € 30 0,6 €

D002 u Potenciómetro multivuelta ajustable vertical, ¼ W, 1 kΩ

1,14 € 1 1,14 €

D003 u Potenciómetro multivuelta ajustable vertical, ¼ W, 10 kΩ

1,17 € 1 1,17 €

D004 u Condensador electrolítico 47 µF, 25 V 0,08 € 8 0,64 €

D005 u Condensador electrolítico 100 µF, 25 V 0,12 € 2 0,24 €

D006 u Condensador de poliéster de 10 nF 0,14 € 7 0,98 €

D007 u Condensador de poliéster de 100 nF 0,15 € 4 0,6 €

D008 u Condensador de poliéster de 470 nF 0,20 € 3 0,60 €

D009 u Condensador de poliéster de 1 µF 0,24 € 1 0,24 €

D010 u Condensador cerámico de 100 pF 0,12 € 2 0,24 €

D011 u Amplificador Operacional con entrada JFET cuádruple TL084 0,54 € 1 0,54 €

D012 u Amplificador Operacional con entrada JFET LF356 0,84 € 1 0,84 €

D013 u Multiplexor analógico de 4 canales doble 74HC4052 1,13 € 1 1,13 €

D014 u Multiplexor analógico de 2 canales triple 74HC4053 0,45 € 1 0,45 €

D015 u Microcontrolador PIC 16F876 14,24 € 1 14,24 €

D016 u Puerta lógica inversora séxtuple 74HCT04 0,21 € 1 0,21 €

D017 u Regulador lineal, 1 A, LM7805 0,43 € 1 0,43 €

D018 u Regulador lineal, 1 A, LM7905 0,28 € 1 0,28 €

D019 u Diodo LED rojo de 5mm 0,09 € 6 0,54 €

D020 u Diodo LED rojo de 3 mm 0,06 € 3 0,18 €

D021 u Diodo rectificador 1N4004 0,02 € 2 0,04 €

D022 u Mirilla empotrar LED de 5mm 0,18 € 6 1,08 €

D023 u Mirilla empotrar LED de 3 mm 0,16 € 3 0,48 €

D024 u Jack chasis estéreo de 3,5 mm 0,69 € 1 0,69 €

D025 u Zócalo circuito integrado DIP 4 vias 0,04 € 1 0,04 €

D026 u Zócalo circuito integrado DIP 14 vias 0,08 € 2 0,16 €

D027 u Zócalo circuito integrado DIP 16 vias 0,10 € 2 0,20 €

D028 u Zócalo circuito integrado DIP 28 vias 0,27 € 1 0,27 €

Page 174: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

167

D029 u Conector banana hembra de 4 mm 1,03 € 5 5,15 €

D030 u Pulsador de montaje superficial rojo 1,73 € 1 1,73 €

D031 u Placa de fibra de vidrio positiva 100x160 5,24 € 1 5,24 €

D032 u Regleta de 3 polos para PCB 0,75 € 1 0,75 €

D033 u Conector macho para PCB de 4 vias 0,16 € 2 0,32 €

D034 u Conector macho para PCB de 10 vias 0,23 € 1 0,23 €

D035 u Conector hembra de 4 vias 0,12 € 2 0,24 €

D036 u Conector hembra de 10 vias 0,16 € 1 0,16 €

D037 u Conector para cable telefónico para PCB 0,85 € 1 0,85 €

D038 m Cable conexión flexible 0,41 € 2 0,82 €

D039 u Caja de PVC 155x90x50 9,66 € 1 9,66 €

D040 u Separador hexagonal 3x10 0,10 € 4 0,4 €

D041 u Tornillo métrica 3mm 0,02 € 4 0,08 €

D042 u Tuerca métrica 3 mm 0,02 € 4 0,08 €

Total capítulo 4 – Material del Módulo Receptor: 53,96

El presupuesto del capítulo asciende a CINCUENTA Y TRES EUROS CON NOVENTA Y SEIS CÉNTIMOS 4 Resumen del Presupuesto 4.1 Precio de Ejecución por Material Total capítulo 1 .............................................................................................................2790 € Total capítulo 2 ..........................................................................................................106,23 € Total capítulo 3 .............................................................................................................2149 € Total capítulo 4 ............................................................................................................53,96 € Total Precio de Ejecución por Material (PEM) ....................................................5099,19 € 4.2 Precio de Ejecución por Contrato Total presupuesto de ejecución por material (PEM) ...............................................5099,19 € Gastos generales (13,00 % sobre PEM) ....................................................................662,89 € Beneficio industrial (6,00 % sobre PEM) ..................................................................305,95 € Total Precio de Ejecución por Contrato (PEC) .....................................................6068,03 €

Page 175: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Presupuesto

168

4.3 Precio de Licitación Total precio de ejecución por contrato (PEC) .........................................................6068,03 € I.V.A. (16,00 % sobre PEC) ....................................................................................970,88 € Precio Total de Licitación ......................................................................................7038,91 € El precio total del presupuesto asciende a SIETE MIL TREINTA Y OCHO EUROS CON NOVENTA Y UN CÉNTIMO Tarragona, 10 de Enero de 2005

El Ingeniero Técnico Industrial Miguel Ángel Bonache Gómez

Page 176: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Pliego de Condiciones

Page 177: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Pliego de Condiciones

170

1 Disposición y Alcance del Pliego de Condiciones 1.1 Objetivo del Pliego El objetivo de este proyecto es el estudio y montaje de un codificador/decodificador de audio para una aplicación docente. Por lo tanto, la utilidad del presente proyecto se centra en crear una base experimental para ser utilizado con fines educativos, este hecho implica que el prototipo no se ha diseñado para un desarrollo industrial. En caso de una futura aplicabilidad industrial se tendría que tener en cuenta el siguiente pliego de condiciones, que tiene como principal función regular las condiciones entre las partes contratadas considerando los aspectos técnicos, facultativos, económicos y legales. El presente pliego de condiciones contempla los aspectos siguientes: - Obras que componen el proyecto - Características exigibles a los materiales y componentes - Detalles de la ejecución. - Programa de obras. 1.2 Descripción General del Montaje A continuación se enumeran las diferentes partes que componen la obra, poniendo especial énfasis en el orden establecido, no efectuando una actividad concreta sin haber realizado previamente la anterior.

- Encargo y compra de los materiales y componentes - Fabricación de las placas de circuito impreso - Montaje de los componentes en las placas - Montaje de los módulos - Ajuste y comprobación de los parámetros de cada módulo - Interconexionado de los módulos - Puesta en marcha y mantenimiento Todas las partes que en su conjunto forman la obra del proyecto, deben ser ejecutadas por montadores cualificados, que se someterán a las normas y reglas que la comunidad autónoma, país o bien comunidades internacionales tengan previstas para estos tipos de montajes, no haciéndose cargo el proyectista de los desperfectos ocasionados por su incumplimiento.

Page 178: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Pliego de Condiciones

171

2 Condiciones de los Materiales En este apartado se indican las características técnicas exigibles a los componentes en la ejecución de la obra. 2.1 Especificaciones Eléctricas 2.1.1 Placas de Circuito Impreso Todos los circuitos se realizarán sobre placas de fibra de vidrio de sensibilidad positiva, en diferentes medidas, utilizándose una sola cara. 2.1.2 Conductores El conexionado de los módulos se hará con cable de sección 0,5 mm2, ya que se trata de señales o de alimentación de poca potencia.

2.1.3 Zócalos de Circuito Integrado Todos los circuitos integrados dispondrán de un zócalo para su inserción en la placa de circuito impreso. Se utilizarán zócalos tipo DIL (Dual-In-Line). Las caraterísticas serán las siguientes: - Contacto mecanizado (torneado) de gran calidad y perfil bajo, de cobre al berilio niquelado, con una resistencia de contacto máxima de 10 mO - Aislante de poliéster negro con fibra de vidrio. Resistencia de aislamiento de 1010 O. - Rango de temperaturas de 55 a 125 ºC - Fuerzas (por contacto): inserción de 120 gr, extracción de 80 gr, retención de 400 gr. 2.1.4 Reglamento Electrotécnico de Baja Tensión Todos los aspectos técnicos de la instalación que directa o indirectamente estén incluidos en el reglamento Electrotécnico de Baja Tensión, tendrán que cumplir lo que disponen las respectivas normas.

Las instrucciones más importantes relacionadas con la realización del Proyecto son las siguientes:

- M.I.B.T. 017 Instalaciones interiores o receptores. Prescripciones de carácter general - M.I.B.T. 029 Instalaciones a pequeñas tensiones - M.I.B.T. 030 Instalaciones a tensiones especiales - M.I.B.T. 031 Receptores. Prescripciones generales. - M.I.B.T. 035 Receptores. Transformadores y autotransformadores. Reactáncias y rectificadores. Condensadores. - M.I.B.T. 044 Normas U.N.E. de obligado cumplimiento.

Page 179: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Pliego de Condiciones

172

2.1.5 Resistencias

Es necesario establecer los extremos máximos y mínimos entre los que estarán comprendidos las resistencias. La tolerancia marca estos valores que se expresan normalmente como porcentajes del valor en ohmios asignados teóricamente. Para obtener estos valores se tendrá que multiplicar el valor nominal de la resistencia por su tolerancia y luego sumar este resultado al valor nominal para saber el valor máximo que se puede obtener y restar al valor nominal para saber el valor mínimo.

Existen resistencias con una gran precisión en el valor, lo que implica fijar tolerancias muy bajas, pero se tendrá en cuenta que su precio aumenta considerablemente y solamente serán necesarias en aplicaciones muy específicas estando normalmente destinadas a usos generales. Las tolerancias estandarizadas son 5%,10% y 20%.

Según el valor óhmico y la tolerancia, se establecen de forma estándar una serie de valores, de forma que con ellos se pueda tener toda una gama de resistencias desde 1 ohmio en adelante, estos valores son los siguientes:

Serie Tolerancia Valores

E6 20 % 1, 1.5, 2.2, 3.3, 4.7, 6.8

E12 10 % 1, 1.5, 1.8, 2.2, 2.7, 3.3, 3.9, 4.7, 5.6, 6.8, 8.2

E24 5 % 1, 1.2, 1.3, 1.5, 1.6, 1.8, 2, 2.2, 2.4, 2.7, 3, 3.3, 3.6, 3.9, 4.3, 4.7, 5.1, 5.2, 5.6, 6.8, 7.5, 8.2, 9.8

El conjunto total de valores de toda la gama se obtiene multiplicando por 0.1 , 1 , 10 , 100, 103 , 104 ,105 , 106 o 107 la tabla anterior. Para evitar la utilización de un número elevado de ceros en la designación del valor de una resistencia se utilizan las letras: k y M que designan un factor multiplicador de 103 y 106 respectivamente. Para identificar el valor de una resistencia se utiliza un código de colores que permite cubrir toda la tabla anterior. Este sistema consiste en pintar alrededor de la resistencia, en un extremo, cuatro anillos de unos colores determinados. Los dos primeros colores identifican el valor dentro de las series E6, E12 y E24, el tercer color el número de ceros que es necesario añadir y el cuarto la tolerancia.

Page 180: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Pliego de Condiciones

173

2.1.6 Condensadores La capacidad de los condensadores se mide en Faradios, pero debido a que la unidad es muy grande, en la práctica se utilizan otras unidades más pequeñas que son fracciones de la anterior. Las más usuales son: - Microfaradio=1µF=10-6F - Nanofaradio=1nF=10-9F. Se suele abreviar como KpF o K de kilopicofaradios.

- Picofaradio=1pF=10-12F

Otro aspecto a tener en cuenta es la tolerancia de los condensadores, los cuales pueden tener unas tolerancias de 5, 10, 20 %.

2.1.7 Circuitos Integrados y Semiconductores

Los circuitos integrados se deberán alimentar adecuadamente atendiendo las especificaciones del “datasheet”. Tanto los circuitos integrados como los semiconductores nunca se deberán de exponer a valores de tensión y corriente superiores a los indicados en el “datasheet”. Otro aspecto importante a tener en cuenta será los daños que se pueden producir a estos elementos a causa de la electricidad estática. Para reducir el riesgo que se produzca este efecto será necesario la utilización de guantes de Látex , de esta forma evitaremos cualquier descarga indeseada a los circuitos integrados ya que éstos son los mas sensibles a este tipo de descargas. 2.2 Especificaciones Mecánicas Todos los materiales escogidos son de una calidad que se adapta al objetivo del proyecto que se persigue. No obstante, en el caso de que no se encuentre en el mercado algún producto, ya sea por estar agotado o porque se haya dejado de fabricar, el encargado del montaje tendrá que estar capacitado para substituirlo por uno similar o equivalente.

Las placas de circuito impreso se realizarán en fibra de vidrio. Se recomienda el uso de zócalos torneados, para la inserción de los componentes. De esta forma se reduce el tiempo de reparación y además se disminuye el calentamiento de los pines de los componentes electrónicos en el proceso de soldadura que podría producir su deterioro.

2.2.1 Interconexionado de Placas El conexionado de alimentación utilizará cables de laboratorio con el terminal de banana de 4 mm. El conexionado de las señales se hará mediante sondas de cable coaxial, en un extremo de la cual tendrá un conector BNC y en el otro bananas de 4 mm. Ademas los dos módulos estarán conectados entre ellos mediante un cable de tipo telefónico.

Page 181: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Pliego de Condiciones

174

2.2.2 Ensayos, Verificaciones y Ajustes Antes de proceder a alimentar cada módulo se verificará que todas las conexiones internas estén bien realizadas. A continuación se alimentará con las tensiones adecuadas cada uno de los módulos, y se verificará su correcto funcionamiento, realizando los ajustes necesarios. El posible funcionamiento inadecuado del equipo puede ser debido a múltiples causas que pueden ser resumidas en los tres puntos siguientes: - Conexionado defectuoso dentro de los módulos, entre los módulos o de alimentación - Componentes defectuosos. Una vez localizado se procederá a su sustitución - Conexión defectuosa del componente en la placa de circuito impreso. 3 Condiciones de la Ejecución 3.1 Descripción del Proceso 3.1.1 Encargo y Compra del Material La compra de los materiales, componentes y aparatos necesarios tendrán que realizarse con el tiempo necesario, de manera que estén disponibles en el momento que comience el ensamblado de componentes.

3.1.2 Fabricación del Circuito Impreso A continuación se detallan los pasos a seguir para la fabricación del circuito impreso. - Los materiales y aparatos para la realización de la placa de circuito impreso son: la insoladora ,si puede ser con lámpara de luz actínica. El revelador (o en su defecto disolución de sosa cáustica y agua). El atacador rápido que se puede sustituir por una disolución con la siguiente composición: 33% de HLC, 33% de agua oxigenada de 110 volúmenes y 33% de agua destilada y finalmente se necesitan las placas de circuito impreso de material fotosensible positivo de simple cara.

- La forma de operar será la siguiente: en primer lugar se efectuará una copia de los planos de la placa(Cara componentes y cara soldura) en papel de acetato.

Posteriormente se unirán las dos copias procurando la correspondencia entre pistas de las dos caras, dejando una ranura sin unir por donde se introducirá la placa.

- El conjunto (copias en papel de acetato y placa) se expondrán a la luz ultravioleta de la insoladora. Ésta recubre la placa y las copias en acetato con un material plástico al cual se le aplica el vacío evitando que se formen burbujas de aire en el papel de

acetato y la placa. A continuación se expone el conjunto a la luz ultravioleta durante el tiempo que aconseje el fabricante. Este tiempo de exposición depende de la lámpara utilizada, de la distancia de ésta a la placa, del material fotosensible y el envejecimiento del mismo. El fabricante recomendará cual es el tiempo óptimo.

Page 182: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Pliego de Condiciones

175

- Una vez acabada la exposición, se retira la placa y se coloca dentro del líquido revelador, el tiempo de revelado depende del fabricante de la placa de circuito impreso, quien indicará cuál es el más adecuado. De todas formas el proceso puede

darse por acabado cuando las pistas se vean nítidamente, y el resto de la superficie se aprecie libre de cualquier sustancia fotosensible (se observa el cobre limpio).

- Una vez revelada, la placa se lava con agua abundante, de forma que se acaba el proceso de revelado. - Una vez limpia, la placa se puede atacar. Se sumerge en el líquido atacador hasta que haya desaparecido el cobre sobrante (solo deben quedar las pistas). Finalmente se lava la placa con agua y se seca. - Una vez atacada la placa, tan solo queda eliminar el material fotosensible que ha quedado encima de las pistas. Se puede disolver con acetona o alcohol o bien mediante exposición en la insoladora y revelado. - Finalmente se procede al mecanizado de la placa (realización de taladros, vias y recorte del contorno si es necesario) y al montaje de los componentes.

3.2 Soldadura de los Componentes Existen diversos métodos para poner en contacto permanente dos conductores eléctricos, o lo que es lo mismo, realizar entre ellos una conexión eléctrica, pero el más útil, por sus excelentes características de sencillez, seguridad y rapidez es la soldadura realizada mediante la fusión de una aleación metálica. El proceso de soldadura consiste por lo tanto, en unir dos conductores de tipos y formas diferentes (terminales de componentes entre si) de forma que mediante la adicción de un tercer material conductor en estado líquido, por fusión a una determinada temperatura, se cree un compuesto intermetálico entre los tres conductores de tal forma que al enfriarse y llegar a temperatura ambiente se obtenga una unión rígida permanente.

La realización de la soldadura requiere unas condiciones iniciales para las superficies conductoras que se van a unir, así como para los útiles para soldar. Se debe vigilar las condiciones de limpieza de los conductores que se pretenden soldar, ya que la presencia de óxidos, grasas o cualquier otro tipo de suciedad impiden que la soldadura realizada sea de la calidad necesaria de manera que pueda mantenerse sin ningún tipo de degradación con el tiempo.

Page 183: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Pliego de Condiciones

176

4 Condiciones Facultativas

Los permisos de carácter obligatorio necesarios para llevar a término la obra o la utilización de la misma, se tendrán que obtener por parte de la empresa contratante, quedando la empresa contratista al margen de todas las consecuencias derivadas de la misma. Cualquier retardo producido en el proceso de fabricación por causas debidamente justificadas, siendo éstas ajenas a la empresa contratista, serán aceptadas por el contratante, no teniendo éste último derecho a reclamaciones por daños y perjuicios.

Cualquier retraso no justificado supondrá el pago de una multa por valor del 6% del importe total de fabricación, por cada fracción de retardo temporal (acordado en el contrato).

La empresa contratante se compromete a proporcionar las mayores facilidades al contratista para que la obra se realice de una forma rápida y adecuada.

El aparato cumplirá los requisitos mínimos respecto al Proyecto encargado, cualquier variación o mejora substancial en el conjunto del mismo deberá ser consultado con el técnico diseñador (proyectista). Durante el tiempo que se tenga estimado en la instalación, el técnico proyectista podrá anunciar la suspensión momentánea si así lo estimase oportuno.

Las características de los elementos y componentes serán los especificados en la memoria y el pliego de condiciones, teniendo en cuenta su perfecta colocación y posterior uso.

La contratación de este proyecto se considerará válida una vez las dos partes implicadas, propiedad y contratista, se comprometan a concluir las cláusulas del contrato, para el cual tendrán que ser firmados los documentos adecuados en una reunión conjunta al llegar a un acuerdo.

Los servicios de la empresa contratista se consideran finalizados desde el mismo momento de la puesta en funcionamiento del aparato, después de la previa comprobación de su correcto funcionamiento.

El presupuesto no incluye los gastos de tipo energético ocasionados por el proceso de instalación, ni las obras que fuesen necesarias, que irán a cargo de la empresa contratante.

El cumplimiento de las elementales comprobaciones por parte de la empresa instaladora, no será competencia del proyectista, el cual queda fuera de toda responsabilidad derivada del incorrecto funcionamiento del equipo como consecuencia de esta omisión.

Page 184: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Bibliografía

177

Bibliografia [1] Samir S. Soliman, “Señales y sistemas continuos y discretos”., Prentice Hall, 1999 [2] Douglas K. Lindnen, “Introducción a las señales y los sistemas”, Mc Grawhill [3] Hwi. P.HSU, “Análisis de Fourier”, Prentice Hall [4] A. El Aroudi, “Apuntes de señales y sistemas I”, U.R.V. 2001 [5] E. Cantó, “Apuntes de sistemas electrónicos con microcontrolador”, U.R.V. 2001 [6] Antonio Manuel Lázaro, “Labview 6.1 programación gráfica para el control

de instrumentación”, Paraninfo 2001

Page 185: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Anexo

Page 186: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

179

A1 Código del Programa A1.1 Módulo Emisor ;************************************************************************ ;*** PRÁCTICA DE CODIFICACIÓN POR MODULACIÓN AM *** ;*** *** ;*** PROGRAMA DEL MÓDULO EMISOR *** ;*** *** ;*** Autor: Miguel Ángel Bonache Gómez *** ;*** Fecha: Enero de 2005 *** ;*** Escrito para un microcontralor 16F876 de la familia Microchip *** ;*** con un reloj de 4 MHz *** ;*** *** ;************************************************************************ list P=16F876 #include <P16F876.inc> __config B'0011111101110011' ;bits de configuración del PIC ;Oscilador externo,Watchdog disable, ;Power-up timer enable, ;code protection off, brown-out ;reset enable,RB6 y RB7 como pin I/O ;*************************** CONSTANTES ********************************* DATO equ 0xFF ;indicativo de dato COMANDO equ 0xFE ;indicativo de comando FREC_MAX equ D'200' ;x100= 20000 Hz FREC_MIN equ D'10' ;x100= 1000 Hz SECUENCIA_FREC equ 0x60 TOSC equ D'250' ;ciclo de reloj en ns ;*********************** VARIABLES GENERALES **************************** SE_MENU equ 0x20 ;contiene el número del mensaje que se ;escribe en el LCD SE_NIV equ 0x24 ;contiene el nivel actual del menu CONTROL equ 0x21 ;contiene los bits de control del sistema AUX equ 0x22 ;variables auxiliares AUX1 equ 0x46 AUX2 equ 0x23 AUX3 equ 0x26 CARACT equ 0x28 ;contiene el caracter leído de la tabla OFFSET equ 0x29 ;contiene el offset de la tabla T_PULSADO equ 0x2A ;para el testeo de los pulsadores F_SECU_FREC equ 0x2B ;contiene la secuencia inicial de frecuencias SEL_SALIDA equ 0x2C ;para la selección de la salida de señal AUX_PORTC equ 0x2D ;guarda una copia de PORTC C_PORTB equ 0x30 ;utilizado para el control de los pulsadores MAX_MEN equ 0x31 ;variables para el control del menú MIN_MEN equ 0x32 MAX_NIV equ 0x33 MIN_NIV equ 0x34 NIVEL equ 0x35 AN_MENU equ 0x27 PRODUCT equ 0x25 MEN_AN equ 0x36 ;contiene el último mensaje del nivel CENTE equ 0x37 ;guarda las centenas de un número decimal DECE equ 0x38 ;guarda las decenas de un número decimal UNI equ 0x39 ;guarda las unidades de un número decimal NUM_DEC equ 0x41 NUM_FRE equ 0x43 ;contiene el número de frecuencias que se ;utilizarán, hasta un máximo de 2 FREC1 equ 0x47 ;contiene la frecuencia 0 FREC2 equ 0x48 ;contiene la frecuencia 1 FREC equ 0x4A ;variable auxiliar para las frecuencias FREC_P equ 0x6A ;indica la frecuencia portadora FREC_C equ 0x6B ;indica la frecuencia portadora cifrada

Page 187: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

180

;************** VARIABLES DE CALCULOS DE FRECUENCIA,PERIODO Y DC ******** PERIODO equ 0x54 PERIODO1 equ 0x55 PERIODO2 equ 0x56 PREESCALER equ 0x57 PREESCALER1 equ 0x58 PREESCALER2 equ 0x59 DUTYH equ 0x5A DUTYL equ 0x5B DUTYH1 equ 0x5C DUTYL1 equ 0x5D DUTYH2 equ 0x5E DUTYL2 equ 0x5F ;************* VARIABLES DE MULTI, DIVIDE Y PERIOD ********************** AUXHH equ 0x60 AUXLL equ 0x61 AUXH equ 0x62 AUXL equ 0x63 NH equ 0x64 NL equ 0x65 RESULTHH equ 0x66 RESULTLL equ 0x67 RESULTH equ 0x68 RESULTL equ 0x69 PERIODOH equ 0x6C PERIODOL equ 0x6D ;************** VARIABLES DE COMUNICACIÓN ******************************* DATOS equ 0x72 ;contiene el dato que se envia al receptor NUM_BITS equ 0x73 ;cuenta el número de bits enviados ;************** VARIABLES DE ATENCIÓN A LA INTERRUPCIÓN ***************** TMP_W equ 0x74 ;deben estar en common memory TMP_STATUS equ 0x75 ;deben estar en common memory ;************** VARIABLES DE PROCESO DE LA MODULACIÓN ******************* SEMILLA equ 0x50 ;contiene la semilla inicial del LFSR T_CAMBIO equ 0x52 ;contiene el número de tiempo de cambio SECU_FREC equ 0x49 ;guarda la secuencia de frecuencia actual REG_LFSR equ 0x76 ;contiene el valor actual del LFSR RETARDO_CARGA equ 0x77 ;para sincronización con el receptor DATOS_F equ 0x78 ;************************************************************************ ;************************** PROGRAMA PRINCIPAL ************************** ;************************************************************************ org 0x00 goto MAIN org 0x04 goto INTERRU MAIN org 0x05 ;********* INICIALIZACIÓN DE COMUNICACIÓN CON RECEPTOR ****************** bsf PORTB,5 ;bit de comunicación digital se pone a 1 bcf STATUS,RP1 ;Banco 1 bsf STATUS,RP0 bcf TRISB,5 ;RB<5> como salida bcf STATUS,RP0 ;Banco 0 call CONFIG ;configuración de PORTA, PORTB y PORTC call INI_LCD ;inicializa display LCD ;************** INICIALIZACIÓN DE PARÁMETROS GENERALES ****************** bsf STATUS,RP0 ;selección Banco1 btfsc PCON,1 ;si reset por conexión de la alimentación goto RESET ;entonces salta bsf PCON,1 ;borra el flag de reset bcf STATUS,RP0 ;selección Banco0

Page 188: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

181

movlw D'64' movwf FREC1 ;FREC1=64 ==> 64x100= 6400 Hz movlw D'128' movwf FREC2 ;FREC2=128 ==> 128x100= 12800 Hz movlw B'00000001' movwf SEMILLA ;SEMILLA inicial del LFSR = 0001 movlw B'10101010' movwf F_SECU_FREC movlw D'5' movwf T_CAMBIO ;T_cambio=5 ==> 5x10ms=50ms bcf CONTROL,1 ;funcionamiento manual RESET bcf STATUS,RP0 ;selección Banco0 bcf INTCON,GIE ;deshabilita interrupciones globales movlw B'10101010' ;trama de comunicación con receptor call ENVIA_D ;envia la trama de comunicación ;******** INICIALIZACIONES DEL MENU SELECCION DE FRECUENCIAS ************ bsf INTCON,GIE ;habilita interrupciones globales bcf CONTROL,7 ;reset de los bits del registro de control bcf CONTROL,6 ;el bit 1 no se resetea bcf CONTROL,5 bcf CONTROL,4 bcf CONTROL,3 bcf CONTROL,2 bcf CONTROL,0 ;******** RETARDO DE 4 s PARA COMPENSAR EL RETARDO DE 3 s DEL RECEPTOR ** call PRESC1 ;preescaler 1:256 clrf TMR0 ;carga timer0 con el máximo valor 256 movlw D'62' movwf AUX N_ESP bcf INTCON,T0IF ESP_T btfss INTCON,T0IF ;retarda 1us*256*256=65ms goto ESP_T decf AUX,F btfss STATUS,Z ;retarda 65ms*62=4s goto N_ESP movlw D'1' movwf SE_MENU ;selecciona el mensaje 1 movwf NIVEL ;selecciona el primer nivel del menu ;******** RESET DE VARIABLES DEL MENÚ *********************************** clrf PCLATH ;aseguración de estar en la página 0 movlw D'1' ;selección del valor de los niveles del menú movwf MIN_MEN ;y de los mensajes que se mínimo y máximo movwf MIN_NIV ;que se pueden escribir para ese nivel movlw D'4' movwf MAX_MEN movlw D'3' movwf MAX_NIV clrf C_PORTB ;resetea la copia del Puerto C clrf MEN_AN bcf CONTROL,7 ;dato a escribir en el LCD no es repetido clrf AN_MENU ;******** SELECCIÓN DEL MENÚ A ESCRIBIR EN EL LCD *********************** MENU movf SE_MENU,W ;si el mensaje que se debe escribir es subwf AN_MENU,W ;el mismo que se esta visualizando, no btfsc STATUS,Z ;se vuelve a escribir y salta al testeo de goto INCRE ;los pulsadores call BO_LCD ;borra el LCD movlw D'1' movwf OFFSET bsf CONTROL,0 ;transmisión empieza clrf PRODUCT movf SE_MENU,W movwf AUX3

Page 189: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

182

MENU1 movlw D'2' ;multiplica SE_MENU*2 addwf PRODUCT,F decf AUX3,F btfss STATUS,Z goto MENU1 MENU2 movf PRODUCT,W ;PRODUCT=resultado de la multiplicación addwf PCL,F ;dependiendo del valor de SE_MENU escribirá nop ;un mensaje u otro. Suma al PCL el valor nop ;de PRODUCT call M1 goto MENU3 call M2 goto MENU3 call M3 goto MENU3 call M4 goto MENU3 call M5 goto MENU3 call M6 goto MENU3 call M7 goto MENU3 call M8 goto MENU3 call M9 goto MENU3 call M10 goto MENU3 MENU3 call TRANS ;escribe el caracter leído en la tabla incf OFFSET,F ;apunta al siguiente caracter de la tabla btfsc CONTROL,0 ;si mensaje escrito salta goto MENU2 movf SE_MENU,W ;AN_MENU=SE_MENU movwf AN_MENU ;******** TESTEO DE LOS PULSADORES ************************************** INCRE btfsc PORTB,2 ;si se pulsa PUL2 entra goto DECRE call PRESC1 ;pre-escaler=256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,2 goto DECRE bsf C_PORTB,2 ;si pulsado por primera vez C_PORTB<2>=1 movf MAX_MEN,W subwf SE_MENU,W btfss STATUS,Z ;si el mensaje es el máximo del goto INCRE1 ;nivel entonces SE_MENU=MIN_MEN movf MIN_MEN,W movwf SE_MENU goto DECRE INCRE1 incf SE_MENU,F ;incrementa el número del mensaje DECRE btfsc PORTB,3 ;si se pulsa PUL3 entra goto AVANCE call PRESC1 ;pre-escaler=256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,3 goto AVANCE bsf C_PORTB,3 ;si pulsado por primera vez C_PORTB<3>=1 movf MIN_MEN,W subwf SE_MENU,W btfss STATUS,Z ;si el mensaje del nivel 1 es el mínimo del goto DECRE1 ;nivel entonces SE_MENU=MAX_MEN

Page 190: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

183

movf MAX_MEN,W movwf SE_MENU goto AVANCE DECRE1 decf SE_MENU,F ;decrementa el número del mensaje AVANCE btfsc PORTB,4 ;si se pulsa PUL4 entra goto ATRAS call PRESC1 ;pre-escaler=256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,4 goto ATRAS bsf C_PORTB,4 ;si pulsado por primera vez C_PORTB<4>=1 movf MAX_NIV,W subwf NIVEL,W ;sube de nivel si no es el máximo btfss STATUS,Z incf NIVEL,F ATRAS btfsc PORTB,1 ;si se pulsa PUL1 goto NIVEL1 call PRESC1 ;pre-escaler=256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,1 goto NIVEL1 bsf C_PORTB,1 ;si pulsado por primera vez C_PORTB<1>=1 movf MIN_NIV,W subwf NIVEL,W btfss STATUS,Z ;baja de nivel si no es el mínimo decf NIVEL,F ;******** PASO A NIVEL 1 ************************************************ NIVEL1 movlw D'1' ;si (NIVEL==1) entra subwf NIVEL,W ;en caso contrario salta a NIVEL2 btfss STATUS,Z goto NIVEL2 movlw D'1' ;si (MEN_AN==1) ==> SE_MENU=1 subwf MEN_AN,W ;y salta a FNIVEL1 btfss STATUS,Z goto NIV1_1 movlw D'1' movwf SE_MENU goto FNIVEL1 NIV1_1 movlw D'2' ;si (MEN_AN==2) ==> SE_MENU=2 subwf MEN_AN,W ;y salta a FNIVEL1 btfss STATUS,Z goto NIV1_2 movlw D'2' movwf SE_MENU goto FNIVEL1 NIV1_2 movlw D'3' ;si (MEN_AN==3) ==> SE_MENU=3 subwf MEN_AN,W ;y salta a FNIVEL1 btfss STATUS,Z goto NIV1_3 movlw D'3' movwf SE_MENU goto FNIVEL1 NIV1_3 movlw D'4' ;si (MEN_AN==4) ==> SE_MENU=4 subwf MEN_AN,W ;en caso contrario salta a FNIVEL1 btfss STATUS,Z goto FNIVEL1 movlw D'4'

Page 191: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

184

movwf SE_MENU FNIVEL1 movlw D'1' movwf MIN_MEN ;MIN_MENU=1 movlw D'3' movwf MAX_MEN ;MAX_MENU=4 clrf MEN_AN goto F_PULSA ;salta al final del testeo de los pulsadores ;******** PASO A NIVEL 2 ************************************************ NIVEL2 movlw D'2' ;si (NIVEL==2) entra subwf NIVEL,W ;en caso contrario salta a NIVEL3 btfss STATUS,Z goto NIVEL3 movlw D'1' ;si (SE_MENU==1) entra subwf SE_MENU,W ;en caso contrario salta a NIV2_1 btfss STATUS,Z goto NIV2_1 movlw D'1' movwf MEN_AN ;MEN_AN=1 movlw D'5' movwf SE_MENU ;SE_MENU=5 movwf MIN_MEN ;MIN_MEN=5 movlw D'8' movwf MAX_MEN ;MAX_MEN=8 goto F_PULSA ;salta al final del testeo de los pulsadores NIV2_1 movlw D'2' ;si (SE_MENU==2) entra subwf SE_MENU,W ;en caso contrario salta a NIV2_2 btfss STATUS,Z goto NIV2_2 movlw D'2' movwf MEN_AN ;MEN_AN=2 movlw D'9' movwf SE_MENU ;SE_MENU=9 movwf MIN_MEN ;MIN_MEN=9 movlw D'10' movwf MAX_MEN ;MAX_MEN=10 goto F_PULSA ;salta al final del testeo de los pulsadores NIV2_2 movlw D'3' ;si (SE_MENU==3) entra subwf SE_MENU,W ;en caso contrario salta a NIV2_3 btfss STATUS,Z goto NIV2_3 call EMPIEZA movlw D'3' movwf MEN_AN ;MEN_AN=3 movlw D'1' movwf NIVEL clrf AN_MENU goto F_PULSA ;salta al final del testeo de los pulsadores NIV2_3 nop ;******** PASO A NIVEL 3 (VALIDACIÓN DE LA OPCIÓN SELECCIONADA ********** NIVEL3 movlw D'3' ;si (NIVEL==3) entra subwf NIVEL,W ;en caso contrario salta a F_PULSA btfss STATUS,Z goto F_PULSA movlw D'5' ;si (SE_MENU==5) entra subwf SE_MENU,W ;en caso contrario salta a NIV3_1 btfss STATUS,Z goto NIV3_1 call SE_FREC ;llama a la rutina de selección de las movlw D'2' ;frecuencias a utilizar. movwf NIVEL ;vuelve al nivel 2 clrf AN_MENU NIV3_1 movlw D'6' ;si (SE_MENU==6) entra

Page 192: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

185

subwf SE_MENU,W ;en caso contrario salta a NIV3_2 btfss STATUS,Z goto NIV3_2 call SE_SECU ;llama a la rutina de selección de la movlw D'2' ;secuencia de frecuencias movwf NIVEL ;vuelve al nivel 2 clrf AN_MENU NIV3_2 movlw D'7' ;si (SE_MENU==7) entra subwf SE_MENU,W ;en caso contrario salta a NIV3_3 btfss STATUS,Z goto NIV3_3 call SE_CAMB ;llama a la rutina de selección del movlw D'2' ;intervalo de cambio movwf NIVEL ;vuelve al nivel 2 clrf AN_MENU NIV3_3 movlw D'8' ;si (SE_MENU==8) entra subwf SE_MENU,W ;en caso contrario salta a NIV3_4 btfss STATUS,Z goto NIV3_4 call SE_SEMI ;llama a la rutina de selección de la movlw D'2' ;semilla inicial movwf NIVEL ;vuelve al nivel 2 clrf AN_MENU NIV3_4 movlw D'9' ;si (SE_MENU==9) entra subwf SE_MENU,W ;en caso contrario salta a NIV3_5 btfss STATUS,Z goto NIV3_5 bsf CONTROL,1 ;selecciona funcionamiento automático movlw D'2' movwf NIVEL ;vuelve al nivel 2 clrf AN_MENU NIV3_5 movlw D'10' ;si (SE_MENU==10) entra subwf SE_MENU,W ;en caso contrario salta a NIV3_6 btfss STATUS,Z goto NIV3_6 bcf CONTROL,1 ;selecciona funcionamiento manual movlw D'2' movwf NIVEL ;vuelve al nivel 2 clrf AN_MENU NIV3_6 nop F_PULSA btfsc PORTB,1 ;si PUL1 no está pulsado ==>C_PORTB<1>=0 bcf C_PORTB,1 btfsc PORTB,2 ;si PUL2 no está pulsado ==>C_PORTB<2>=0 bcf C_PORTB,2 btfsc PORTB,3 ;si PUL3 no está pulsado ==>C_PORTB<3>=0 bcf C_PORTB,3 btfsc PORTB,4 ;si PUL4 no está pulsado ==>C_PORTB<4>=0 bcf C_PORTB,4 goto MENU ;************************************************************************ ;************************************************************************ ; SE_FREC - SELECCIÓN DE LAS FRECUENCIAS A UTILIZAR ; Los valores de guardan en FREC1 y FREC2. El valor que se ; guarda es [frecuencia(Hz)/100]. ;************************************************************************ SE_FREC bcf T1CON,TMR1ON ;para Timer1 bcf PIR1,TMR1IF ;limpia el flag de interrupción del Timer1 bsf INTCON,PEIE ;habilita interrupciones periféricos bsf STATUS,RP0

Page 193: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

186

bsf PIE1,TMR1IE ;habilita interrupciones Timer1 bcf STATUS,RP0 bcf T1CON,5 ;Preescaler Timer1 = 1:1 bcf T1CON,4 clrf T_PULSADO ;T_PULSADO=0 bcf CONTROL,7 bcf CONTROL,6 bcf CONTROL,5 movf FREC1,W movwf FREC ;FREC=FREC1 movlw D'1' movwf NUM_FRE ;NUM_FRE=1 call BO_LCD ;borra la pantalla del display LCD call M20 ;escribe 'Frecuencia 0:' en el LCD SEFREC2 btfsc CONTROL,7 ;si hay cambio en el valor de la frecuencia goto INC_F ;se escribe en el display LCD bsf CONTROL,7 ;indica que el nuevo valor ha sido escrito movlw D'2' call BO_LIN ;borra la segunda linea del display LCD movf FREC,W ;escribe el valor de la frecuencia actual call DESCOMP ;descompone FREC en Centena,Decena,Unidad movlw COMANDO ;envío de una orden al display call TRANS movlw B'11000100' ;situa el cursor en la posición adecuada call TRANS movlw DATO ;envío de un dato al display call TRANS movlw D'100' subwf FREC,W ;si FREC contiene Centenas se escriben en btfss STATUS,C ;el display. En caso contario no se escriben goto SIN_CEN movf CENTE,W call TRANS ;envío de las centenas al display SIN_CEN movf DECE,W call TRANS ;envío de las decenas al display movf UNI,W call TRANS ;envío de las unidades al display movlw A'0' ;escribe dos ceros en el display call TRANS movlw A'0' call TRANS movlw A' ' call TRANS movlw A'H' call TRANS movlw A'z' call TRANS INC_F btfsc PORTB,2 ;si se pulsa PUL2 entra goto DEC_F ;en caso contrario salta a DEC_F call PRESC1 ;pre-escaler Timer0 = 1:256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes movlw D'8' ;tiempo de pulsado para empezar a subwf T_PULSADO,W ;incrementar rápido 8*65ms=0,52s btfsc STATUS,C ;cuando (T_PULSAOD>8) ==> CONTROL<6>=1 bsf CONTROL,6 btfsc C_PORTB,2 goto DEC_F bsf C_PORTB,2 ;para indicar que el pulsador se mantiene ;pulsado bcf CONTROL,7 ;indica que hay un nuevo valor que escribir clrf T_PULSADO

Page 194: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

187

btfsc CONTROL,6 goto MAN_PUL bcf PIR1,TMR1IF ;borra flag de interrupción del Timer1 clrf TMR1L ;carga el Timer1 con el máximo valor 65536 clrf TMR1H ;el tiempo será de 65536*1us*1= 65ms bsf T1CON,TMR1ON ;activa timer1 MAN_PUL movlw FREC_MAX subwf FREC,W ;si (FREC<FREC_MAX) se incrementa el valor btfss STATUS,2 ;de FREC goto INC_F1 ;si (FREC==FREC_MAX) ==> FREC=FREC_MIN movlw FREC_MIN ; y salta a DEC_F movwf FREC goto DEC_F INC_F1 incf FREC,F DEC_F btfsc PORTB,3 ;Si se pulsa PUL3 entra goto VALIDA ;en caso contrario salta a VALIDA call PRESC1 ;pre-escaler Timer0 = 1:256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes movlw D'8' ;tiempo de pulsado para empezar a subwf T_PULSADO,W ;decrementar rápido 8*65ms=0,52s btfsc STATUS,C bsf CONTROL,5 btfsc C_PORTB,3 goto VALIDA bsf C_PORTB,3 bcf CONTROL,7 clrf T_PULSADO btfsc CONTROL,5 goto MAN_PU2 bcf PIR1,TMR1IF clrf TMR1L clrf TMR1H bsf T1CON,TMR1ON ;activa Timer1 MAN_PU2 movlw FREC_MIN ;si (FREC>FREC_MIN) se decrementa el valor subwf FREC,W ;de FREC btfss STATUS,2 ;si (FREC==FREC_MIN) ==> FREC=FREC_MAX goto DEC_F1 ; y salta a VALIDA movlw FREC_MAX movwf FREC goto VALIDA DEC_F1 decf FREC,F VALIDA btfsc PORTB,4 ;si se pulsa PUL4 entra goto F_SEFRE call PRESC1 ;pre-escaler Timer0 = 1:256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,4 ;para que no entre si se mantiene pulsado goto F_SEFRE bsf C_PORTB,4 movlw D'1' subwf NUM_FRE,W btfss STATUS,Z goto VALIDA2 movf FREC,W movwf FREC1 incf NUM_FRE,F call M21 ;escribe 'Frecuencia 1:' en la primera linea movf FREC2,W movwf FREC

Page 195: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

188

bcf CONTROL,7 ;para que escriba el valor de la frecuencia VALIDA1 btfss PORTB,4 goto VALIDA1 call PRESC1 ;pre-escaler Timer0 = 1:256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes bcf C_PORTB,4 goto F_SEFRE VALIDA2 movf FREC,W movwf FREC2 bsf STATUS,RP0 bcf PIE1,TMR1IE ;deshabilita interrupciones Timer1 bcf STATUS,RP0 bcf INTCON,PEIE ;deshabilita interrupciones periféricos bcf T1CON,TMR1ON ;para Timer1 return ;sale de la rutina F_SEFRE btfsc PORTB,1 ;si (PORTB<1>==1) ==> C_PORTB<1>=0 bcf C_PORTB,1 btfss PORTB,2 ;si ((PORTB<2>==1) y (PORTB<3>==1)) goto PIN_3 ; C_PORTB<2>=0, CONTROL<6>=0, T_PULSADO=0 btfss PORTB,3 goto PIN_3 bcf C_PORTB,2 bcf CONTROL,6 clrf T_PULSADO ;borra contador de tiempo pulsado bcf T1CON,TMR1ON ;para Timer1 PIN_3 btfss PORTB,3 goto PIN_4 btfss PORTB,2 goto PIN_4 bcf C_PORTB,3 bcf CONTROL,5 clrf T_PULSADO bcf T1CON,TMR1ON ;para Timer1 PIN_4 btfsc PORTB,4 ;si (PORTB<4>==1) ==> C_PORTB<4>=0 bcf C_PORTB,4 goto SEFREC2 ;************************************************************************ ;************************************************************************ ; SE_SECU - SELECCIÓN DE SECUENCIA DE FRECUENCIAS ; ;************************************************************************ SE_SECU call BO_LCD ;borra el display LCD bcf CONTROL,7 movlw D'1' movwf NUM_FRE ;selecciona la frecuencia 0 movf FREC1,W movwf FREC ;FREC=FREC1 SECU2 btfsc CONTROL,7 ;si hay cambio en el valor de la frecuencia goto IN_SEC ;se escribe en el display el nuevo valor bsf CONTROL,7 ;indica que se ha escrito el nuevo valor movlw D'2' call BO_LIN ;borra la segunda línea del display movlw COMANDO call TRANS movlw B'11000011' ;sitúa el cursor en la posición adecuada call TRANS movlw DATO call TRANS movf NUM_FRE,W ;indica la primera frecuencia addlw A'0' call TRANS

Page 196: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

189

movlw A'.' call TRANS movlw A' ' call TRANS movf FREC,W ;escribe el valor de la frecuencia call DESCOMP ;en la segunda linea movlw D'100' subwf FREC,W ;si FREC contiene Centenas se escriben en btfss STATUS,C ;el display. En caso contario no se escriben goto SIN_CE1 movf CENTE,W call TRANS ;envío de las centenas SIN_CE1 movf DECE,W call TRANS ;envío de las decenas movf UNI,W call TRANS ;envío de las unidades movlw A'0' call TRANS movlw A'0' call TRANS movlw A' ' call TRANS movlw A'H' call TRANS movlw A'z' call TRANS IN_SEC btfsc PORTB,2 ;si se pulsa PUL2 entra goto DE_SEC call PRESC1 ;pre-escaler Timer0 = 1:256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,2 goto DE_SEC bsf C_PORTB,2 bcf CONTROL,7 ;indica que la frecuencia ha cambiado movf FREC1,W subwf FREC,W ;si (FREC==FREC1) ==> FREC=FREC2 btfss STATUS,Z goto IN_SEC2 movf FREC2,W movwf FREC goto DE_SEC IN_SEC2 movf FREC1,W ;si (FREC!=FREC1) FREC=FREC1 movwf FREC DE_SEC btfsc PORTB,3 ;si se pulsa PUL3 entra goto VALID call PRESC1 ;pre-escaler Timer0 = 1:256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,3 goto VALID bsf C_PORTB,3 bcf CONTROL,7 movf FREC1,W subwf FREC,W btfss STATUS,Z goto DE_SEC2 movf FREC2,W movwf FREC goto VALID DE_SEC2 movf FREC1,W movwf FREC

Page 197: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

190

VALID btfsc PORTB,4 ;si se pulsa PUL4 entra goto F_SECU call PRESC1 ;pre-escaler Timer0 = 1:256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,4 ;para que no entre si se mantiene pulsado goto F_SECU bsf C_PORTB,4 movf FREC1,W subwf FREC,W btfss STATUS,Z ;si (FREC==FREC1) se guarda la frecuencia 0 goto VALID2 ;si (FREC!=FREC1) se guarda la frecuencia 1 bcf F_SECU_FREC,7 goto VALID3 VALID2 bsf F_SECU_FREC,7 ;memoriza la frecuencia 1 VALID3 movlw D'8' subwf NUM_FRE,W btfss STATUS,C ;para que solo rote 7 veces y no ocho goto VALID4 return ;sale de la rutina VALID4 rrf F_SECU_FREC,F incf NUM_FRE,F movlw COMANDO call TRANS movlw B'11000011' call TRANS movlw DATO call TRANS movf NUM_FRE,W addlw A'0' call TRANS movlw A'.' call TRANS movlw A' ' call TRANS F_SECU btfsc PORTB,2 ;si PUL2 no está pulsado ==>C_PORTB<2>=0 bcf C_PORTB,2 btfsc PORTB,3 ;si PUL3 no está pulsado ==>C_PORTB<3>=0 bcf C_PORTB,3 btfsc PORTB,4 ;si PUL4 no está pulsado ==>C_PORTB<4>=0 bcf C_PORTB,4 goto SECU2 ;************************************************************************ ;************************************************************************ ; SE_CAMB - SELECCIÓN DEL INTERVALO DE CAMBIO ENTRE LA FRECUNCIA 0 Y ; LA FRECUENCIA 1 ;************************************************************************ SE_CAMB call BO_LCD ;limpia el LCD bcf CONTROL,7 CAMB2 btfsc CONTROL,7 ;si el valor a escribir es el mismo goto IN_CAMB ;salta a IN_CAMB bsf CONTROL,7 movf T_CAMBIO,W ;escribe el valor en el display call DESCOMP ;en la segunda linea movlw COMANDO call TRANS movlw B'11000101' ;se sitúa el cursor en posición call TRANS movlw DATO call TRANS

Page 198: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

191

movf CENTE,W call TRANS ;envío de las centenas movf DECE,W call TRANS ;envío de las decenas movf UNI,W call TRANS ;envío de las unidades movlw A'0' call TRANS movlw A' ' call TRANS movlw 'm' call TRANS movlw 's' call TRANS IN_CAMB btfsc PORTB,2 ;si se pulsa PUL2 entra goto DE_CAMB ;en caso contrario salta a DE_CAMB bcf CONTROL,7 call PRESC1 ;pre-escaler=256 movlw 0xD0 ; call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,2 goto DE_CAMB bsf C_PORTB,2 movlw D'100' subwf T_CAMBIO,W ;si (T_CAMBIO<100) ==>T_CAMBIO=T_CAMBIO+5 btfss STATUS,2 ;en caso contrario T_CAMBIO=5 y salta goto IN_CAM1 ;a DE_CAMB movlw D'5' movwf T_CAMBIO goto DE_CAMB IN_CAM1 movlw D'5' addwf T_CAMBIO,F DE_CAMB btfsc PORTB,3 ;si se pulsa PUL3 entra goto VAL ;en caso contrario salta a VAL bcf CONTROL,7 call PRESC1 ;pre-escaler=256 movlw 0xD0 ; call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,3 goto VAL bsf C_PORTB,3 movlw D'5' subwf T_CAMBIO,W ;si (T_CAMBIO>5) ==> T_CAMBIO=T_CAMBIO-5 btfss STATUS,2 ;en caso contrario T_CAMBIO=100 y salta goto DE_CAM1 ;a VAL movlw D'100' movwf T_CAMBIO goto VAL DE_CAM1 movlw D'5' subwf T_CAMBIO,F VAL btfsc PORTB,4 ;si se pulsa PUL4 entra goto S_CAMB ;en caso contrario salta a S_CAMB call PRESC1 ;pre-escaler=256 movlw 0xD0 ; call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,4 ;para que no entre si se mantiene pulsado el pulsador goto S_CAMB bsf C_PORTB,4 return

Page 199: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

192

S_CAMB btfsc PORTB,1 ;si se pulsa PUL1 entra goto F_CAMB ;en caso contrario salta a F_CAMB call PRESC1 ;pre-escaler=256 movlw 0xD0 ; call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,1 goto F_CAMB bsf C_PORTB,1 return ;sale de la rutina F_CAMB btfsc PORTB,1 bcf C_PORTB,1 btfsc PORTB,2 bcf C_PORTB,2 btfsc PORTB,3 bcf C_PORTB,3 btfsc PORTB,4 bcf C_PORTB,4 goto CAMB2 ;************************************************************************ ;************************************************************************ ; SE_SEMI - SELECCIÓN DE LA SEMILLA INICIAL ;************************************************************************ SE_SEMI call BO_LCD ;limpia el LCD bcf CONTROL,7 SEMI2 btfsc CONTROL,7 ;si el valor es el mismo que el anterior goto IN_SEMI ;salta a IN_SEMI bsf CONTROL,7 movlw COMANDO call TRANS movlw B'11000110' ;se sitúa el cursor en posición call TRANS movlw DATO call TRANS movf SEMILLA,W call ES_BIN ;escribe el nibble bajo de SEMILLA en el LCD IN_SEMI btfsc PORTB,2 ;si se pulsa PUL2 entra goto DE_SEMI ;en caso contrario salta a DE_SEMI bcf CONTROL,7 call PRESC1 ;pre-escaler=256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,2 goto DE_SEMI bsf C_PORTB,2 movlw D'16' subwf SEMILLA,W ;si (SEMILLA<16) ==> SEMILLA=SEMILLA+1 btfss STATUS,2 ;en caso contrario SEMILLA=0 y salta goto IN_SEM1 ;a DE_SEMI movlw D'0' movwf SEMILLA goto DE_SEMI IN_SEM1 incf SEMILLA,F DE_SEMI btfsc PORTB,3 ;si se pulsa PUL3 entra goto VALE ;en caso contrario salta a VALE bcf CONTROL,7

Page 200: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

193

call PRESC1 ;pre-escaler=256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,3 goto VALE bsf C_PORTB,3 movlw D'0' subwf SEMILLA,W ;si (SEMILLA>0) ==> SEMILLA=SEMILLA-1 btfss STATUS,2 ;en caso contrario SEMILLA=16 y salta goto DE_SEM1 ;a VALE movlw D'16' movwf SEMILLA goto VALE DE_SEM1 decf SEMILLA,F VALE btfsc PORTB,4 ;si se pulsa PUL4 entra goto S_SEMI ;en caso contrario salta a S_SEMI call PRESC1 ;pre-escaler=256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,4 ;para que no entre si se mantiene pulsado el pulsador goto S_SEMI bsf C_PORTB,4 return ;sale de la rutina S_SEMI btfsc PORTB,1 ;si se pulsa PUL1 entra goto F_SEMI ;en caso contrario salta a F_SEMI call PRESC1 ;pre-escaler=256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,1 goto F_SEMI bsf C_PORTB,1 return ;sale de la rutina F_SEMI btfsc PORTB,1 bcf C_PORTB,1 btfsc PORTB,2 bcf C_PORTB,2 btfsc PORTB,3 bcf C_PORTB,3 btfsc PORTB,4 bcf C_PORTB,4 goto SEMI2 ;************************************************************************ ;************************************************************************ ; ES_BIN - ESCRIBE EN EL LCD EL NIBBLE BAJO DE UN REGISTRO EN BINARIO ; El registro se recibe en w ;************************************************************************ ES_BIN movwf AUX movlw A'0' btfsc AUX,3 movlw A'1' call TRANS movlw A'0' btfsc AUX,2 movlw A'1' call TRANS movlw A'0' btfsc AUX,1 movlw A'1' call TRANS movlw A'0'

Page 201: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

194

btfsc AUX,0 movlw A'1' call TRANS return ;************************************************************************ ;************************************************************************ ; E_BINA - ESCRIBE EN EL LCD EL CONTENIDO DE UN REGISTRO EN BINARIO ; El registro se recibe en w ;************************************************************************ E_BINA movwf AUX movlw D'8' movwf AUX1 ROTA movlw A'0' btfsc AUX,7 movlw A'1' call TRANS rlf AUX,F decf AUX1,F btfss STATUS,Z goto ROTA return ;************************************************************************ ;************************************************************************ ; EMPIEZA - RUTINA DONDE SE PREPARA EL FUNCIONAMIENTO DEL SISTEMA DE ; MODULACIÓN ;************************************************************************ EMPIEZA call BO_LCD ;limpia el LCD clrf SEL_SALIDA bcf PORTB,0 ;habilita diodos D7, D8 y D9 bsf PORTC,7 ;enciende didodo D9 bcf PORTC,6 ;apaga diodo D8 bcf PORTC,5 ;apaga diodo D7 bcf PORTB,7 ;selecciona en el multiplexor 74HC4052 como bsf PORTB,6 ;salida la señal de entrada movlw B'00000000' ;envía al receptor trama para indicar que se call ENVIA_D ;van a enviar datos movf SEMILLA,W ;envia al receptor SEMILLA (semilla inicial) call ENVIA_D ;FREC1(frecuencia 0) y FREC2(frecuencia 1) movf FREC1,W call ENVIA_D movf FREC2,W call ENVIA_D movf SEMILLA,W movwf REG_LFSR ;carga REG_LFSR con la semilla inicial movf F_SECU_FREC,W movwf SECU_FREC ;SECU_FREC=F_SECU_FREC bcf FREC_P,0 btfsc SECU_FREC,0 ;en FREC_P<0> se guarda la frecuencia actual bsf FREC_P,0 movf FREC_P,W xorwf REG_LFSR,W ;cifrado de la frecuencia actual movwf FREC_C ;En FREC_C<0> se encuentra la frecuencia ;cifrada movf FREC_C,W ;Envío de la frecuencia cifrada al receptor call ENVIA_D movf FREC1,W call CAL_PER ;Calcula el periodo y Duty Cycle de la movf PERIODO,W ;frecuencia 0 movwf PERIODO1 movf PREESCALER,W movwf PREESCALER1 movf DUTYH,W

Page 202: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

195

movwf DUTYH1 movf DUTYL,W movwf DUTYL1 movf FREC2,W call CAL_PER ;Calcula el periodo y Duty Cycle de la movf PERIODO,W ;frecuencia 1 movwf PERIODO2 movf PREESCALER,W movwf PREESCALER2 movf DUTYH,W movwf DUTYH2 movf DUTYL,W movwf DUTYL2 movf DUTYH1,W ;Prepara DUTYH1,DUTYL1 con el valor adecuado movwf DUTYH ;para poder ser cargado directamente en movf DUTYL1,W ;CCPR1L,CCP1CON movwf DUTYL call CARG_DU movf DUTYH,W movwf DUTYH1 movf DUTYL,W movwf DUTYL1 movf DUTYH2,W ;Prepara DUTYH2,DUTYL2 con el valor adecuado movwf DUTYH ;para poder ser cargado directamente en movf DUTYL2,W ;CCPR1L,CCP1CON movwf DUTYL call CARG_DU movf DUTYH,W movwf DUTYH2 movf DUTYL,W movwf DUTYL2 bsf INTCON,7 ;Habilita interrupciones globales bsf INTCON,6 ;Habilita interrupciones periféricos bcf PIR1,TMR2IF ;borra flag interrupción Timer0 bsf STATUS,RP0 ;banco 1 bcf PIE1,TMR2IE ;deshabilita interrupción TIMER2 bcf STATUS,RP0 ;banco 0 movf PERIODO1,W ;inicialización del PWM btfsc FREC_P,0 ;por defecto carga el periodo de la movf PERIODO2,W ;frecuencia 0 bcf STATUS,RP1 ;banco 1 bsf STATUS,RP0 movwf PR2 ;carga del periodo bcf STATUS,RP0 ;banco 0 movf DUTYH1,W ;Carga del Duty Cycle de la frecuencia 0 btfsc FREC_P,0 ;o la frecuencia 1, dependiendo del valor movf DUTYH2,W ;de FREC_P<0> movwf CCPR1L movf DUTYL1,W btfsc FREC_P,0 movf DUTYL2,W bcf CCP1CON,5 bcf CCP1CON,4 iorwf CCP1CON,F clrf TMR2 movf PREESCALER1,W ;Carga del preescaler adecuado dependiendo btfsc FREC_P,0 ;del valor de FREC_P<0> movf PREESCALER2,W movwf T2CON bsf CCP1CON,CCP1M3 ;Configura el CCP1 como PWM bsf CCP1CON,CCP1M2

Page 203: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

196

bcf PORTB,5 ;sincronización con el receptor nop bsf T2CON,TMR2ON ;activa Timer 2 y se empieza a funcionar nop ;el PWM nop nop bsf PORTB,5 ;sincronización con receptor btfsc CONTROL,1 ;si funcionamiento automático salta EMP2 goto EMP2 call PASO_PA ;llama a la rutina de modo manual goto EMP3 EMP2 call AUTO ;llama a la rutina de modo Automático EMP3 bcf T2CON,TMR2ON ;para el PWM clrf PORTA ;pone a cero el puerto A bsf PORTA,4 bsf PORTB,0 ;deshabilita diodos D7, D8 y D9 bcf PORTB,7 bcf PORTB,6 clrf SEL_SALIDA return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; AUTO - FUNCIONAMIENTO AUTOMATICO DEL SISTEMA DE CAMBIO DE LAS ; FRECUENCIAS DE MODULACIÓN. ;************************************************************************ AUTO movf REG_LFSR,W ;Escribe el contenido del LFSR en PORTA<3:0> movwf PORTA bsf PORTA,4 ;Escribe el valor de la frecuencia portadora btfsc FREC_P,0 ;en PORTA<4> bcf PORTA,4 bcf PORTA,5 ;Escribe el valor de la frecuencia cifrada btfsc FREC_C,0 ;en PORTA<5> bsf PORTA,5 movf T_CAMBIO,W movwf AUX ;AUX=T_CAMBIO RETARDO bcf INTCON,T0IF ;borra el flag de interrupción del Timer0 call PRESC1 movlw D'218' movwf TMR0 TARDA btfss INTCON,T0IF ;retardo de 10ms goto TARDA btfsc PORTB,1 ;si PORTB<1> no está pulsado ==>C_PORTB<1>=0 bcf C_PORTB,1 btfsc PORTB,2 ;si PORTB<2> no está pulsado ==>C_PORTB<2>=0 bcf C_PORTB,2 btfsc PORTB,3 ;si PORTB<3> no está pulsado ==>C_PORTB<3>=0 bcf C_PORTB,3 btfsc PORTB,1 ;si se pulsa PORTB<1> entra goto AUTO2 ;por el contrario salta a AUTO2 btfsc C_PORTB,1 ;si (C_PORTB<1>==1) entra goto AUTO2 ;por el contrario salta a AUTO2 bsf C_PORTB,1 bsf CONTROL,2 bsf DATOS,1 ;Indica que se envia una orden bcf DATOS,0 movf DATOS,W call ENVIA_D ;envía al receptor la orden de finalizar clrf RETARDO_CARGA return ;sale de la rutina AUTO2 btfsc PORTB,2 ;si se pulsa PORTB<2> entra

Page 204: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

197

goto AUTO3 ;por el contrario salta a AUTO3 btfsc C_PORTB,2 goto AUTO3 bsf C_PORTB,2 incf SEL_SALIDA,F ;cada vez que entra cambia de salida en el movlw D'3' ;multiplexor 74HC4052 subwf SEL_SALIDA,W btfsc STATUS,Z clrf SEL_SALIDA movlw D'0' ;configura los bits del puerto C para subwf SEL_SALIDA,W ;que salga por la salida del multiplexor btfss STATUS,Z ;74HC4052 la señal de entrada goto AUTO2_1 bsf PORTC,7 ;D9 encendido, D8 y D7 apagados bcf PORTC,6 bcf PORTC,5 bcf PORTB,7 bsf PORTB,6 goto AUTO3 AUTO2_1 movlw D'1' ;configura los bits del puerto C para subwf SEL_SALIDA,W ;que salga por la salida del multiplexor btfss STATUS,Z ;74HC4052 la señal de entrada acondicionada goto AUTO2_2 bcf PORTC,7 ;D9 y D7 apagados, D8 encendido bsf PORTC,6 bcf PORTC,5 bsf PORTB,7 bcf PORTB,6 goto AUTO3 AUTO2_2 movlw D'2' ;configura los bits del puerto C para que subwf SEL_SALIDA,W ;salga por la salida del multiplexor btfss STATUS,Z ;74Hc4052 la señal modulada goto AUTO3 bcf PORTC,7 ;D9 y D8 apagados, D7 encendido bcf PORTC,6 bsf PORTC,5 bsf PORTB,7 bsf PORTB,6 AUTO3 btfsc PORTB,3 ;si se pulsa PORTB<3> entra goto AUTO4 ;por el contrario salta a AUTO4 btfsc C_PORTB,3 goto AUTO4 bsf C_PORTB,3 bsf CONTROL,2 bsf DATOS,1 ;indica que se envía una orden bsf DATOS,0 ;indica que se cambia la salida del receptor movf DATOS,W call ENVIA_D ;envía la orden al receptor AUTO4 decf AUX,F ;retardo de T_CAMBIO*50ms btfss STATUS,Z goto RETARDO call CIFRADO ;cifra el valor de la frecuencia portadora bcf DATOS,1 ;indica que se envía una frecuencia bcf DATOS,0 btfsc FREC_C,0 ;indica que frecuencia se envía bsf DATOS,0 movf DATOS,W call ENVIA_D ;envío de la frecuencia al receptor movlw B'00000001' movwf RETARDO_CARGA bcf PIR1,TMR2IF ;borra el flag de interrupción del timer2 bsf STATUS,RP0 ;banco 1

Page 205: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

198

bsf PIE1,TMR2IE ;habilita interrupción TIMER2 bcf STATUS,RP0 ;banco 0 movf REG_LFSR,W ;Escribe el contenido del LFSR en PORTA<3:0> movwf PORTA bsf PORTA,4 ;Escribe el valor de la frecuencia portadora btfsc FREC_P,0 ;en PORTA<4> bcf PORTA,4 bcf PORTA,5 ;Escribe el valor de la frecuencia cifrada btfsc FREC_C,0 ;en PORTA<5> bsf PORTA,5 goto AUTO ;************************************************************************ ;************************************************************************ ; PASO_PA - FUNCIONAMIENTO MANUAL DEL SISTEMA DE CAMBIO DE LAS ; FRECUENCIAS DE MODULACIÓN ;************************************************************************ PASO_PA call ES_LCD ;escribe secu. frecuencia, fp y fc en el LCD movf REG_LFSR,W ;escribe el contenido del LFSR en PORTA<3:0> movwf PORTA bsf PORTA,4 ;Escribe el valor de la frecuencia portadora btfsc FREC_P,0 ;en PORTA<4> bcf PORTA,4 bcf PORTA,5 ;Escribe el valor de la frecuencia portadora btfsc FREC_C,0 ;cifrada en PORTA<5> bsf PORTA,5 PASO_P2 btfsc PORTB,4 ;si se pulsa PUL4 entra goto PASO_P3 ;por el contrario salta a PASO_P3 call PRESC1 ;pre-escaler=256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,4 ;para que no entre si se mantiene pulsado el goto PASO_P3 ;pulsador bsf C_PORTB,4 call CIFRADO ;cifra la frecuencia portadora actual call ES_LCD ;escribe en el LCD la frecuencia portadora, ;la cifrada y la secuencia de frecuencias bcf DATOS,1 ;Indica que se envia una frecuencia contenida bcf DATOS,0 ;en DATOS<0> btfsc FREC_C,0 ;Indica que frecuencia se envía bsf DATOS,0 movf DATOS,W call ENVIA_D ;envío de la frecuencia cifrada al receptor movlw B'00000001' movwf RETARDO_CARGA bcf PIR1,TMR2IF ;borra flag de interrupción del Timer2 bsf STATUS,RP0 ;banco1 bsf PIE1,TMR2IE ;habilita interrupción TIMER2 bcf STATUS,RP0 ;banco0 movf REG_LFSR,W ;escribe el contenido del LFSR en PORTA<3:0> movwf PORTA bsf PORTA,4 ;escribe el valor de la frecuencia portadora btfsc FREC_P,0 ;en PORTA<4> bcf PORTA,4 bcf PORTA,5 ;escribe el valor de la frecuencia cifrada btfsc FREC_C,0 ;en PORTA<5> bsf PORTA,5 PASO_P3 btfsc PORTB,1 ;si se pulsa PUL1 entra

Page 206: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

199

goto PASO_P4 ;por el contrario salta a PASO_P4 call PRESC1 ;pre-escaler=256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,1 goto PASO_P4 bsf C_PORTB,1 bsf CONTROL,2 bsf DATOS,1 ;Indica que se envía una orden bcf DATOS,0 ;Indica que se finaliza movf DATOS,W call ENVIA_D ;envía al receptor la orden de finalizar clrf RETARDO_CARGA return ;sale de la rutina PASO_P4 btfsc PORTB,2 ;Si se pulsa PUL2 entra goto PASO_P5 ;por el contrario salta a PASO_P5 call PRESC1 ;pre-escaler=256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes btfsc C_PORTB,2 goto PASO_P5 bsf C_PORTB,2 incf SEL_SALIDA,F ;cada vez que entra cambia de salida en el movlw D'3' ;multiplexor 74HC4052 subwf SEL_SALIDA,W btfsc STATUS,Z clrf SEL_SALIDA movlw D'0' ;configura los bits del puerto C para subwf SEL_SALIDA,W ;que salga por la salida del multiplexor btfss STATUS,Z ;74HC4052 la señal de entrada goto PAS_4_1 bsf PORTC,7 ;D9 encendido, D8 y D7 apagados bcf PORTC,6 bcf PORTC,5 bcf PORTB,7 bsf PORTB,6 goto PASO_P5 PAS_4_1 movlw D'1' ;configura los bits del puerto C para subwf SEL_SALIDA,W ;que salga por la salida del multiplexor btfss STATUS,Z ;74HC4052 la señal de entrada acondicionada goto PAS_4_2 bcf PORTC,7 ;D9 y D7 apagados, D8 encendido bsf PORTC,6 bcf PORTC,5 bsf PORTB,7 bcf PORTB,6 goto PASO_P5 PAS_4_2 movlw D'2' ;configura los bits del puerto C para subwf SEL_SALIDA,W ;que salga por la salida del multiplexor btfss STATUS,Z ;74Hc4052 la señal modulada goto PASO_P5 bcf PORTC,7 ;D9 y D8 apagados, D7 encendido bcf PORTC,6 bsf PORTC,5 bsf PORTB,7 bsf PORTB,6 PASO_P5 btfsc PORTB,3 ;si se pulsa PUL3 entra goto PASO_P6 ;por el contrario se salta a PASO_P6 call PRESC1 ;pre-escaler=256 movlw 0xD0 call TEMP ;retardo de 10ms para evitar rebotes

Page 207: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

200

btfsc C_PORTB,3 goto PASO_P6 bsf C_PORTB,3 bsf CONTROL,2 bsf DATOS,1 ;Indica que se envía una orden bsf DATOS,0 ;Indica que se cambia la salida en el receptor movf DATOS,W call ENVIA_D ;se envía la orden al receptor PASO_P6 btfsc PORTB,1 bcf C_PORTB,1 btfsc PORTB,2 bcf C_PORTB,2 btfsc PORTB,3 bcf C_PORTB,3 btfsc PORTB,4 bcf C_PORTB,4 goto PASO_P2 ;************************************************************************ ;************************************************************************ ; ES_LCD - ESCRIBE LA SECUENCIA DE FRECUENCIAS, LA FRECUENCIA PORTADORA ; ACTUAL Y LA CIFRADA EN EL LCD ;************************************************************************ ES_LCD movf PORTC,W ;salva el valor del PORTC movwf AUX_PORTC ;AUX_PORTC=PORTC movf FREC1,W btfsc FREC_P,0 movf FREC2,W ;si (FREC_P<0>==0) ==> FREC=FREC1 movwf FREC ;por el contrario FREC=FREC2 call DESCOMP ;descompone FREC en Centena,Decena,Unidad bsf PORTB,0 ;deshabilita los diodos D9, D8 y D7 call BO_LCD ;borra el LCD movlw COMANDO ;indica al LCD el envío de un comando call TRANS movlw B'10000010' ;se sitúa el cursor en posición call TRANS movlw DATO ;indica al LCD el envio de un dato call TRANS movlw A'S' ;escribe en el LCD "Se: " call TRANS movlw A'e' call TRANS movlw A':' call TRANS movlw A' ' call TRANS movf SECU_FREC,W call E_BINA ;escribe la secuencia de frecuencias en el LCD movlw COMANDO ;indica al LCD el envio de un comando call TRANS movlw B'11000010' ;situa el cursor en la posición adecuada call TRANS movlw DATO ;indica al LCD el envío de un dato call TRANS movlw A'f' ;escribe en el LCD "fp: " call TRANS movlw A'p' call TRANS movlw A':' call TRANS movlw A' ' call TRANS movlw D'100' ;escribe en el LCD la frecuencia portadora

Page 208: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

201

subwf FREC,W ;si FREC contiene Centenas se escriben en btfss STATUS,C ;el display. En caso contario no se escriben goto S_CEN movf CENTE,W call TRANS ;envío de las centenas al LCD S_CEN movf DECE,W call TRANS ;envío de las decenas al LCD movf UNI,W call TRANS ;envío de las unidades al LCD movlw A'0' ;escribe en el LCD "00 Hz" call TRANS movlw A'0' call TRANS movlw A' ' call TRANS movlw A'H' call TRANS movlw A'z' call TRANS bcf PORTB,0 ;habilita los diodos D9, D8 y D7 movlw B'00001111' ;borra el nibble alto del PORTC andwf PORTC,F movf AUX_PORTC,W ;el nibble alto de PORTC recupera el valor iorwf PORTC,F ;que tenía antes de entrar en la rutina ;************************************************************************ ;************************************************************************ ; INTERRU - RUTINA DE TRATAMIENTO DE LAS INTERRUPCIONES ;************************************************************************ INTERRU movwf TMP_W ;salva W y STATUS swapf STATUS,W movwf TMP_STATUS bcf STATUS,RP0 ;aseguración de estar en el banco 0 bcf STATUS,RP1 btfss PIR1,TMR2IF ;si interrupción de Timer2 no salta a INT_T1 goto INT_T1 bcf STATUS,C ;atiende petición de Timer2 rlf RETARDO_CARGA,F btfsc RETARDO_CARGA,2 ;si (RETARDO_CARGA<2>==1) goto INTER2 ;entonces salta a INTER2 btfss RETARDO_CARGA,1 ;si (RETARDO_CARGA<1>==0) goto INTER_F ;entonces salta a INTER_F bcf PORTB,5 ;en caso contrario indica al receptor nop ;que se prepare para realizar la carga nop ;del PWM con el valor adecuado nop bsf PORTB,5 goto INTER_F ;finaliza la rutina de interrupción INTER2 ;carga del duty cycle y el periodo movf DUTYH1,W ;carga del Duty Cycle btfsc SECU_FREC,0 movf DUTYH2,W movwf CCPR1L movf DUTYL1,W btfsc SECU_FREC,0 movf DUTYL2,W bcf T2CON,T2CKPS0 movf PREESCALER1,W ;carga del preescaler adecuado btfsc SECU_FREC,0 movf PREESCALER2,W iorwf T2CON,F bcf CCP1CON,5 bcf CCP1CON,4

Page 209: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

202

iorwf CCP1CON,F movf PERIODO1,W ;por defecto carga el periodo de frecuencia0 btfsc SECU_FREC,0 movf PERIODO2,W bsf STATUS,RP0 ;banco 1 movwf PR2 ;carga del periodo bcf PIE1,TMR2IE ;deshabilita interrupción TIMER2 bcf STATUS,RP0 ;banco 0 goto INTER_F ;finaliza la rutina de interrupción INT_T1 btfss PIR1,TMR1IF ;si no es una interrupción del Timer1 goto INTER_F ;entonces sala a INTER_F incf T_PULSADO,F ;atiende la petición del Timer1 btfsc CONTROL,6 ;si (CONTROL<6>==1) ==> C_PORTB<2>=0 bcf C_PORTB,2 btfsc CONTROL,5 ;si (CONTROL<5>==1) ==> C_PORTB<3>=0 bcf C_PORTB,3 bcf PIR1,TMR1IF ;limpia flag Timer1 INTER_F bcf PIR1,TMR2IF ;borra flag Timer2 swapf TMP_STATUS,W ;restaura W y STATUS movwf STATUS swapf TMP_W,F swapf TMP_W,W retfie ;finaliza la interrupción ;************************************************************************ ;************************************************************************ ; CIFRADO - REALIZA LA XOR ENTRE SECU_FREC<0> y REG_LFSR<0> (CIFRADO DE ; LA FRECUENCIA), ROTA A LA DERECHA SECU_FREC Y ACTUALIZA EL ; LFSR. ; En FREC_P<0> se guarda la frecuencia actual y la cifrada ; en FREC_C<0> ;************************************************************************ CIFRADO bcf STATUS,C ;rota a la derecha SECU_FREC y vuelve btfsc SECU_FREC,0 ;a cargarlo por la izquierda bsf STATUS,C rrf SECU_FREC,F rrf REG_LFSR,W ;actualización del LFSR andlw B'00000001' xorwf REG_LFSR,F ;x-or entre REG_LFSR<1> y REG_LFSR<0> bcf REG_LFSR,4 btfsc REG_LFSR,0 bsf REG_LFSR,4 rrf REG_LFSR,F ;coloca REG_LFSR<4> en LFSR<3> movf SECU_FREC,W ;en FREC_P<0> se guarda la frecuencia movwf FREC_P ;portadora movf SECU_FREC,W ;cifrado de la frecuencia portadora xorwf REG_LFSR,W ;en FREC_C<0> se guarda la frecuencia movwf FREC_C ;cifrada return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; CARG_DU - COLOCA LOS BITS CORRESPONDIENTES AL DUTY CYCLE CORRECTAMENTE ; PARA PODER SER CARGADOS EN CCPR1L,CCP1CON<5:4> ; El valor del duty cycle con los bits correctamente colocados ; se guarda en DUTYH,DUTYL. ;************************************************************************ CARG_DU swapf DUTYH,F ;coloca los bits DUTYH<1:0> en DUTYH<7:6> rlf DUTYH,F rlf DUTYH,F btfsc DUTYL,2 ;coloca los bits DUTYL<7:2> en DUTYH<5:0>

Page 210: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

203

bsf DUTYH,0 btfsc DUTYL,3 bsf DUTYH,1 btfsc DUTYL,4 bsf DUTYH,2 btfsc DUTYL,5 bsf DUTYH,3 btfsc DUTYL,6 bsf DUTYH,4 btfsc DUTYL,7 bsf DUTYH,5 bcf DUTYL,4 ;coloca los bits DUTYL<1:0> en DUTYL<5:4> bcf DUTYL,5 btfsc DUTYL,0 bsf DUTYL,4 btfsc DUTYL,1 bsf DUTYL,5 movlw B'00110000' ;deja los bits DUTYL<5:4> con el mismo valor andwf DUTYL,F ;y pone el resto de bits de DUTYL a cero. return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; CAL_PER - CALCULA EL VALOR QUE SE DEBE CARGAR EN EL TIMER2, ADEMAS DE SU ; PREESCALER PARA OBTENER LA FRECUENCIA DESEADA. TAMBIÉN CALCULA ; EL DUTY CYCLE PARA EL PWM. ; El valor de la frecuencia se recibe a través de w. ; En PERIODO se guarda el valor del periodo. ; En PREESCALER se guarda el valor del prescaler que se debe ; cargar en Timer2 para conseguir el periodo calculado. ; En DUTYH,DUTYL se guarda el duty cycle para el PWM. ;************************************************************************ CAL_PER clrf AUXH ;valor de la frecuencia a multiplicar movwf AUXL clrf NH movlw D'100' ;multiplica por 100 para obtener el movwf NL ;el valor real de la frecuencia call MULTI ;multiplica (AUXH,AUXL)x100 clrf AUXHH ;Coloca un 1000000 en el Dividendo movlw 0x0F ;para calcular el periodo y obtener movwf AUXLL ;el resultado directamente en us movlw 0x42 movwf AUXH movlw 0x40 movwf AUXL movf RESULTH,W ;coloca el valor real de la frecuencia movwf NH ;calculado anteriormente en el divisor movf RESULTL,W movwf NL call DIVIDE ;divide (1000000/frecuencia) movf RESULTH,W ;en RESULTH,RESULTL se tiene el valor del movwf AUX ;período en microsegundos movf RESULTL,W ;en AUX,AUX1 se guarda RESULTH,RESULTL movwf AUX1 ; movwf PERIODO ;en PERIODO se guarda RESULTL movlw 0x01 ;Si el valor del periodo es mayor que 255 subwf RESULTH,W ;se divide entre 4 y se escoge un btfss STATUS,C ;un prescaler de 1:4 goto CAL_PE2 clrf AUXHH ;Divide el periodo obtenido clrf AUXLL ;entre 4 movf RESULTH,W movwf AUXH movf RESULTL,W movwf AUXL

Page 211: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

204

clrf NH movlw D'1' ;Indica que el preescaler es 1:4 movwf PREESCALER movlw D'4' movwf NL call DIVIDE movf RESULTL,W movwf PERIODO ;contiene el período de la frecuencia goto CAL_PE3 ;dividido entre 4 CAL_PE2 movlw D'0' ;Indica que el preescaler es 1:1 movwf PREESCALER CAL_PE3 movf AUX,W ;Calculo del Duty Cycle movwf AUXH ;Multiplica el periodo inicial por 1000 movf AUX1,W ;para pasarlo a ns movwf AUXL movlw 0x03 movwf NH movlw 0xE8 movwf NL call MULTI movf RESULTHH,W movwf AUXHH ;AUXHH=RESULTHH movf RESULTLL,W movwf AUXLL ;AUXLL=RESULTLL movf RESULTH,W movwf AUXH ;AUXH=RESULTH movf RESULTL,W movwf AUXL ;AUXL=RESULTL movlw D'1' subwf PREESCALER,W btfsc STATUS,C goto CAL_PE4 movlw 0x01 ;selección prescaler 1:1 movwf NH ;[NH,NL]=2*250 movlw 0xF4 movwf NL goto CAL_PE5 CAL_PE4 movlw 0x07 ;selección prescaler 1:4 movwf NH ;[NH,NL]=2*4*250 movlw 0xD0 movwf NL CAL_PE5 call DIVIDE ;divide el DC entre el prescaler movf RESULTH,W ;seleccionado y guarda el resultado movwf DUTYH ;en DUTYH,DUTYL movf RESULTL,W movwf DUTYL return ;sale de la rutina ;******************************************************************** ;************************************************************************ ; ENVIA_D - ENVIA EL BYTE RECIBIDO EN w AL RECEPTOR MEDIANTE UNA ; COMUNICACIÓN SERIE ASÍNCRONA. ; Envia bit de start, 8 bits de datos y bit de stop. ; Cada 100us se envia un nuevo bit. ;************************************************************************ ENVIA_D clrf DATOS movwf DATOS ;DATOS=w bsf STATUS,RP0 ;banco 1 movlw B'11000000' andwf OPTION_REG,F ;prescaler Timer0= 1:2 bcf STATUS,RP0 ;banco 0 bcf INTCON,T0IE ;interrupción TMR0 deshabilitada ;cada 100us cambia de bit ENVIA movlw D'1'

Page 212: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

205

movwf NUM_BITS bcf PORTB,5 ;Bit start movlw D'210' movwf TMR0 ;carga en Timer0 un 210 bcf INTCON,T0IF ;borra el flag de interrupción del Timer0 ESPERA btfss INTCON,T0IF ;espera 100us goto ESPERA ENVIA1 bcf PORTB,5 ;coloca en PORTB<5> el bit a enviar btfsc DATOS,0 ;contenido en DATOS<0> bsf PORTB,5 rrf DATOS,F movlw D'214' movwf TMR0 ;carga el Timer0 con un 214 bcf INTCON,T0IF ;borra el flag de interrupción del Timer0 ESPERA1 btfss INTCON,T0IF ;espera 100us goto ESPERA1 movlw D'8' subwf NUM_BITS,W btfsc STATUS,Z ;si ya se han enviado los ocho bits de goto F_ENVIA ;datos salta a F_ENVIA incf NUM_BITS,F goto ENVIA1 F_ENVIA nop nop nop nop bsf PORTB,5 ;bit stop movlw D'160' movwf TMR0 ;carga en Timer0 un 160 bcf INTCON,T0IF ESPERA2 btfss INTCON,T0IF ;espera 200us goto ESPERA2 return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; MULTI - REALIZA EL PRODUCTO ENTRE EL VALOR CONTENIDO EN <AUXH, AUXL> ; (16 bits) y <NH,NL> ( 16 bits). ; EL RESULTADO SE GUARDA EN <RESULTHH,RESULTLL,RESULTH,RESULTL> ; ( 32 bits) ; Consiste en sumar el valor contenido en AUXH,AUXL tantas veces ; como indica NH,NL y el resultado se va acumulando en <RESULT..> ;************************************************************************ MULTI clrf RESULTHH ;reset de la variable <RESULT..> donde se clrf RESULTLL ;guardará el resultado clrf RESULTH clrf RESULTL MULTI2 movlw D'1' ;decrementa <NH,NL> subwf NL,F btfsc STATUS,C goto MULTI3 movlw D'1' subwf NH,F btfss STATUS,C goto F_MULT MULTI3 movf AUXH,W ;realiza la suma de <AUXH,AUXL> con addwf RESULTH,F ;<RESULTHH,RESULTLL,RESULTH,RESULTL> y btfss STATUS,C ;guarda el resultado en <RESULT..> goto MULTI4

Page 213: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

206

movlw D'1' ;Si RESULTH desborda se incrementa RESULTLL addwf RESULTLL,F btfsc STATUS,C incf RESULTHH,F ;Si RESULTLL desborda se incrementa RESULTHH MULTI4 movf AUXL,W addwf RESULTL,F btfss STATUS,C goto MULTI5 movlw D'1' ;Si RESULTL desborda se incrementa RESULTH addwf RESULTH,F btfss STATUS,C goto MULTI5 movlw D'1' ;Si RESULTH desborda se incrementa RESULTLL addwf RESULTLL,F btfsc STATUS,C incf RESULTHH,F ;Si RESULTLL desborda se incrementa RESULTHH MULTI5 goto MULTI2 F_MULT return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; DIVIDE - REALIZA LA DIVISIÓN ENTRE EL VALOR CONTENIDO EN ; <AUXHH, AUXLL,AUXH, AUXL> (dividendo de 16 bits) y ; <NH,NL> ( divisor de 16 bits). ; EL RESULTADO SE GUARDA EN <RESULTH,RESULTL> (16 bits) ; Consiste en ir restando al dividendo el divisor hasta que el ; dividendo sea mas pequeño que el divisor. El número de veces ; que se ha restado es el resultado de la división. ;************************************************************************ DIVIDE clrf RESULTH ;reset de <RESULTH,RESULTL> clrf RESULTL DIVIDE1 movf NH,W subwf AUXH,F btfsc STATUS,C goto DIVIDE2 movlw D'1' ;si AUXH desborda se decrementa AUXLL subwf AUXLL,F btfsc STATUS,C goto DIVIDE2 movlw D'1' ;si AUXLL desborda se decrementa AUXHH subwf AUXHH,F ;Si AUXHH también desborda indica que el btfss STATUS,C ;dividendo es menor que el divisor y se goto F_DIVID ;deja de dividir DIVIDE2 movf NL,W subwf AUXL,F btfsc STATUS,C goto DIVIDE3 movlw D'1' ;si AUXL desborda se decrementa AUXH subwf AUXH,F btfsc STATUS,C goto DIVIDE3 movlw D'1' ;si AUXH desborda se decrementa AUXLL subwf AUXLL,F btfsc STATUS,C goto DIVIDE3 movlw D'1' ;si AUXLL desborda se decrementa AUXHH subwf AUXHH,F ;si AUXHH tambien desborda indica que btfss STATUS,C ;dividendo<divisor y se deja de dividir goto F_DIVID DIVIDE3 incf RESULTL,F ;cuenta cuantas veces se ha restado el

Page 214: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

207

btfsc STATUS,Z ;divisor al dividendo. incf RESULTH,F goto DIVIDE1 F_DIVID return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; BO_LIN - BORRA UNA LINEA DEL LCD ; Recibe en w que línea se quiere borrar. La 1ª o la 2ª ;************************************************************************ BO_LIN clrf AUX bsf AUX,7 ;borra la primera línea movwf AUX1 btfsc AUX1,1 ;borra la segunda línea bsf AUX,6 clrf AUX1 BO_LIN2 movlw D'16' subwf AUX1,W btfsc STATUS,Z return ;sale de la rutina movlw COMANDO call TRANS movf AUX,W call TRANS movlw DATO call TRANS movlw A' ' call TRANS incf AUX1,F incf AUX,F goto BO_LIN2 ;************************************************************************ ;************************************************************************ ; DESCOMP - DESCOMPONE UN NUMERO DECIMAL EN CENTENAS, DECENAS Y UNIDADES ; Y LO CONVIERTE A CODIGO ASCII. ; El número se recibe en w. ;************************************************************************ DESCOMP clrf CENTE ;reset de las centenas clrf DECE ;reset de las decenas clrf UNI ;reset de las unidades movwf NUM_DEC ;NUM_DEC=número en decimal a convertir DESCO1 movlw D'100' ;obtención de las centenas subwf NUM_DEC,W ;Realiza (NUM_DEC=NUM_DEC-100) hasta que btfss STATUS,0 ;(NUM_DEC<100) y en CENTE guarda cuantas goto DESCO2 ;veces se ha restado movwf NUM_DEC incf CENTE,F goto DESCO1 DESCO2 movlw D'10' ;obtención de las decenas subwf NUM_DEC,W ;Realiza (NUM_DEC=NUM_DEC-10) hasta que btfss STATUS,0 ;(NUM_DEC<10) y en DECE guarda cuantas goto DESCO3 ;veces se ha restado movwf NUM_DEC incf DECE,F goto DESCO2 DESCO3 movlw D'1' ;obtención de las unidades subwf NUM_DEC,W ;Realiza (NUM_DEC=NUM_DEC-1) hasta que btfss STATUS,0 ;(NUM_DEC<1) y en UNI guarda cuantas goto F_DESCO ;veces se ha restado movwf NUM_DEC incf UNI,F goto DESCO3

Page 215: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

208

F_DESCO movlw A'0' ;convierte los valores obtenidos addwf CENTE,F ;a código ASCII addwf DECE,F addwf UNI,F return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; BO_LCD - BORRA EL CONTENIDO DEL LCD ;************************************************************************ BO_LCD bcf PORTC,0 movlw 0x00 ;CLEAR DISPLAY (1) movwf PORTC call ENABLE movlw 0x10 ;CLEAR DISPLAY (2) movwf PORTC call ENABLE call PRESC1 movlw 0xF6 ;-10 call TEMP ;2.56 ms return ;************************************************************************ ;************************************************************************ ; LLAMADA A LOS MENSAJES DE LA TABLA ;************************************************************************ ;************************ llamada a mensaje 1 *************************** M1 movf OFFSET,W movwf AUX ;AUX=offset para acceder a la tabla movlw LOW MENSA1 ;coge la parte baja de la dirreción de addwf AUX,F ;MENSA1 y se lo suma a AUX movlw HIGH MENSA1 ;w=parte alta de la dirección de MENSA1 btfsc STATUS,C ;si al sumar el offset se pasa de página addlw D'1' ;entonces se incrementa la parte alta de movwf PCLATH ;la dirección y se guarda en PCLATH movf AUX,W ;w=valor a cargar en el PCL call MENSA1 ;salta a la dirección inicial de la tabla clrf PCLATH ;reset del PCLATH return ;sale de la rutina ;************************ llamada a mensaje 2 *************************** M2 movf OFFSET,W movwf AUX movlw LOW MENSA2 addwf AUX,F movlw HIGH MENSA2 btfsc STATUS,C addlw D'1' movwf PCLATH movf AUX,W call MENSA2 clrf PCLATH return ;************************ llamada a mensaje 3 *************************** M3 movf OFFSET,W movwf AUX movlw LOW MENSA3 addwf AUX,F movlw HIGH MENSA3 btfsc STATUS,C addlw D'1' movwf PCLATH movf AUX,W call MENSA3 clrf PCLATH return

Page 216: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

209

;************************ llamada a mensaje 4 *************************** M4 movf OFFSET,W movwf AUX movlw LOW MENSA4 addwf AUX,F movlw HIGH MENSA4 btfsc STATUS,C addlw D'1' movwf PCLATH movf AUX,W call MENSA4 clrf PCLATH return ;************************ llamada a mensaje 5 *************************** M5 movf OFFSET,W movwf AUX movlw LOW MENSA5 addwf AUX,F movlw HIGH MENSA5 btfsc STATUS,C addlw D'1' movwf PCLATH movf AUX,W call MENSA5 clrf PCLATH return ;************************ llamada a mensaje 6 *************************** M6 movf OFFSET,W movwf AUX movlw LOW MENSA6 addwf AUX,F movlw HIGH MENSA6 btfsc STATUS,C addlw D'1' movwf PCLATH movf AUX,W call MENSA6 clrf PCLATH return ;************************ llamada a mensaje 7 *************************** M7 movf OFFSET,W movwf AUX movlw LOW MENSA7 addwf AUX,F movlw HIGH MENSA7 btfsc STATUS,C addlw D'1' movwf PCLATH movf AUX,W call MENSA7 clrf PCLATH return ;************************ llamada a mensaje 8 *************************** M8 movf OFFSET,W movwf AUX movlw LOW MENSA8 addwf AUX,F movlw HIGH MENSA8 btfsc STATUS,C addlw D'1' movwf PCLATH movf AUX,W call MENSA8 clrf PCLATH return ;************************ llamada a mensaje 9 ***************************

Page 217: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

210

M9 movlw D'1' subwf OFFSET,W btfss STATUS,Z goto MM9 btfsc CONTROL,1 call SELECT MM9 movf OFFSET,W movwf AUX movlw LOW MENSA9 addwf AUX,F movlw HIGH MENSA9 btfsc STATUS,C addlw D'1' movwf PCLATH movf AUX,W call MENSA9 clrf PCLATH return ;************************ llamada a mensaje 10 ************************** M10 movlw D'1' subwf OFFSET,W btfss STATUS,Z goto MM10 btfss CONTROL,1 call SELECT MM10 movf OFFSET,W movwf AUX movlw LOW MENSA10 addwf AUX,F movlw HIGH MENSA10 btfsc STATUS,C addlw D'1' movwf PCLATH movf AUX,W call MENSA10 clrf PCLATH return ;************************ llamada a mensaje 20 ************************** M20 bsf CONTROL,0 ;transmisión empieza movlw D'1' movwf OFFSET SIGUE movf OFFSET,W movwf AUX movlw LOW MENSA20 addwf AUX,F movlw HIGH MENSA20 btfsc STATUS,C addlw D'1' movwf PCLATH movf AUX,W call MENSA20 clrf PCLATH call TRANS incf OFFSET,F btfsc CONTROL,0 goto SIGUE return ;************************ llamada a mensaje 21 ************************** M21 bsf CONTROL,0 ;transmisión empieza movlw D'1' movwf OFFSET SIGUE1 movf OFFSET,W movwf AUX movlw LOW MENSA21 addwf AUX,F movlw HIGH MENSA21 btfsc STATUS,C

Page 218: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

211

addlw D'1' movwf PCLATH movf AUX,W call MENSA21 clrf PCLATH call TRANS incf OFFSET,F btfsc CONTROL,0 goto SIGUE1 return ;************************ llamada a mensaje 22 ************************** M22 bsf CONTROL,0 ;transmisión empieza movlw D'1' movwf OFFSET SIGUE2 movf OFFSET,W movwf AUX movlw LOW MENSA22 addwf AUX,F movlw HIGH MENSA22 btfsc STATUS,C addlw D'1' movwf PCLATH movf AUX,W call MENSA22 clrf PCLATH call TRANS incf OFFSET,F btfsc CONTROL,0 goto SIGUE2 return ;************************************************************************ ;************************************************************************ ; SELECT - INDICADOR DE SELECCIÓN ; Escribe en el display LCD el carácter '*' para indicar que un ; parámetro ha sido seleccionado ;************************************************************************ SELECT movlw COMANDO ;indicación de envío de una orden al LCD call TRANS movlw B'11000011' ;situa el cursor en la posición adecuada call TRANS ;transmisión de la orden movlw DATO ;indicación de envio de un dato al LCD call TRANS movlw A'*' ;envío del código ASCII del carácter '*' call TRANS return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; TRANS - TRANSMITE UN COMANDO O DATO AL LCD ;************************************************************************ TRANS movwf AUX2 movlw '#' ;# Indica que la cadena de caracteres ha subwf AUX2,W ;finalizado btfss STATUS,2 ;si el caracter leido = # se sale de la goto TRANS1 ;función y se indica en CONTROL que ha bcf CONTROL,0 ;finalizado la cadena de caracteres goto F_TRANS TRANS1 movlw COMANDO ;si el caracter recibido es un comando subwf AUX2,W ;se pone la linea RS=0 y se sale de la btfss STATUS,2 ;función sin enviar nada al LCD goto TRANS2 bcf PORTC,0 ;RS=0 envío de un comando goto F_TRANS TRANS2 movlw DATO ;si el caracter recibido es un dato subwf AUX2,W ;se pone la linea RS=1 y se sale de la

Page 219: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

212

btfss STATUS,2 ;función sin enviar nada al LCD goto C_TRANS bsf PORTC,0 ;RS=1 envío de un dato goto F_TRANS C_TRANS movlw B'00001111' andwf PORTC,F ;RC<8:4>=0 movf AUX2,W andlw B'11110000' ;W<4:0>=0 iorwf PORTC,F ;solo cambia el nibble del PORTC call ENABLE ;envío del nibble alto movlw B'00001111' andwf PORTC,F swapf AUX2,W andlw B'11110000' iorwf PORTC,F call ENABLE ;envío del nibble bajo call PRESC2 movlw 0xE0 ;-30 call TEMP ;60us F_TRANS return ;sale de la rutina ;************************************************************************ ;************************************************************************** ; CONFIG - CONFIGURACIÓN DE PORTA, PORTB Y PORTC ;************************************************************************** CONFIG bcf PORTC,7 ;nibble alto del puerto C se pone a cero bcf PORTC,6 bcf PORTC,5 bcf PORTC,4 bcf PORTC,0 ;Los tres bits bajos del puerto C a cero bcf PORTC,1 bcf PORTC,3 bcf STATUS,6 ;selección del banco 1 bsf STATUS,5 bcf TRISC,7 ;nibble alto del puerto C como salida bcf TRISC,6 bcf TRISC,5 bcf TRISC,4 bcf TRISC,0 ;nibble bajo del puerto C como salida bcf TRISC,1 bcf TRISC,3 bcf TRISC,2 bcf STATUS,5 ;vuelve al Banco 0 clrf PORTA ;puerto A a cero bsf PORTA,4 ;PORTA<4> a uno bcf STATUS,6 ;Selección del banco 1 bsf STATUS,5 bcf ADCON1,PCFG3 ;bits del puerto A como digitales bsf ADCON1,PCFG2 bsf ADCON1,PCFG1 bsf ADCON1,PCFG0 clrf TRISA ;puerto A como salida bcf OPTION_REG,7 ;resistencias pull-ups habilitadas bsf TRISB,1 ;PORTBB<4:1> como entradas bsf TRISB,2 bsf TRISB,3 bsf TRISB,4 bcf TRISB,0 ;PORTB<0> como salida bcf TRISB,7 ;PORTB<7:6> como salida bcf TRISB,6 bcf STATUS,5 ;Vuelve al Banco 0 bsf PORTB,0 ;apaga diodos D9,D8,D7 bcf PORTB,7

Page 220: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

213

bcf PORTB,6 clrf SEL_SALIDA ;reset de la selección de salida return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; INI_LCD - INICIALIZACIÓN DEL LCD ;************************************************************************ INI_LCD bcf PORTC,0 ;RS=0 bcf PORTC,1 ;R/W= como escritura call PRESC1 ;pre-escaler=256 movlw 0x83 ;-125 call TEMP ;retardo=1us*256*125= 32ms movlw 0x20 movwf PORTC call ENABLE movlw 0x80 ;Modo 2 lineas; 5x7 Dots movwf PORTC call ENABLE call PRESC2 movlw 0xE0 ;-30 call TEMP ;60us movlw 0x00 ;DISPLAY ON/OFF CONTROL (1) movwf PORTC call ENABLE movlw 0xC0 ;DISPLAY ON/OFF CONTROL (2) movwf PORTC ;DISPLAY ON, CURSOR ON, BLINK OFF call ENABLE movlw 0xE0 ;-30 call TEMP ;60us movlw 0x00 ;CLEAR DISPLAY (1) movwf PORTC call ENABLE movlw 0x10 ;CLEAR DISPLAY (2) movwf PORTC call ENABLE call PRESC1 movlw 0xF6 ;-10 call TEMP ;2.56 ms movlw 0x00 ;ENTRY MODE SET (1) movwf PORTC call ENABLE movlw 0x60 ;ENTRY MODE SET (1) movwf PORTC call ENABLE call PRESC2 movlw 0xE0 ;-30 call TEMP ;60us return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; ENABLE - ENABLE PARA VALIDAR EL DATO ENVIADO AL LCD ;************************************************************************ ENABLE bsf PORTC,3 ;ENABLE=1 nop bcf PORTC,3 ;ENABLE=0 nop return ;************************************************************************

Page 221: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

214

;************************************************************************ ; PRESC1 - SELECCIÓN DEL PRESCALER 1:256 PARA EL TIMER 0 ;************************************************************************ PRESC1 bsf STATUS,5 ;cambiamos de banco 1 bcf STATUS,6 movlw 0x07 movwf OPTION_REG ;prescaler Interno,1->0,1:256 bcf STATUS,5 ;cambiamos de banco 0 return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; PRESC2 - SELECCIÓN DEL PRESCALER 1:2 PARA EL TIMER 0 ;************************************************************************ PRESC2 bsf STATUS,5 ;cambiamos de banco 1 bcf STATUS,6 movlw 0x00 movwf OPTION_REG ;prescaler Interno,1->0,1:2 bcf STATUS,5 ;cambiamos de banco 0 return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; TEMP - RETARDO DEL TIEMPO CARGADO EN EL TIMER 0 ;************************************************************************ TEMP movwf TMR0 t0 btfsc TMR0,7 ;tiempo será 1us*(-TMR0)*N goto t0 return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; TABLA DE MENSAJES DEL MENÚ ;************************************************************************ org 0x0800 MENSA1 movwf PCL dt DATO," Parametros",COMANDO,0xC0,DATO," Generales#" MENSA2 movwf PCL dt DATO," Modo de",COMANDO,0xC0,DATO," Funcionamiento#" MENSA3 movwf PCL dt DATO," Iniciar",COMANDO,0xC0,DATO," Proceso#" MENSA4 movwf PCL dt DATO," Parar",COMANDO,0xC0,DATO," Proceso#" MENSA5 movwf PCL dt DATO," Frecuencias ",COMANDO,0xC0,DATO," a utilizar#" MENSA6 movwf PCL dt DATO," Secuencia de",COMANDO,0xC0,DATO," frecuencias#" MENSA7 movwf PCL dt DATO," Intervalo de",COMANDO,0xC0,DATO," Cambio#" MENSA8 movwf PCL dt DATO," Semilla",COMANDO,0xC0,DATO," Inicial#" MENSA9 movwf PCL dt COMANDO,0xC5,DATO,"Automatico#" MENSA10 movwf PCL dt COMANDO,0xC5,DATO,"Manual#" MENSA20 movwf PCL dt COMANDO,0x80,DATO," Frecuencia 0:#" MENSA21 movwf PCL dt COMANDO,0x80,DATO," Frecuencia 1:#" MENSA22 movwf PCL dt COMANDO,0x80,DATO," Seleccionar",COMANDO,0xC0,DATO," salidas#" end

Page 222: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

215

A1.2 Módulo Receptor ;************************************************************************ ;*** PRÁCTICA DE CODIFICACIÓN POR MODULACIÓN AM *** ;*** *** ;*** PROGRAMA DEL MÓDULO RECEPTOR *** ;*** *** ;*** Autor: Miguel Ángel Bonache Gómez *** ;*** Fecha: Enero de 2005 *** ;*** Escrito para un microcontralor 16F876 de la familia Microchip *** ;*** con un reloj de 4 MHz *** ;*** *** ;************************************************************************ list P=16F876 #include <P16F876.inc> __config B'0011111101110011' ;bits de configuración del PIC ;Oscilador externo,Watchdog disable, ;Power-up timer enable, ;code protection off, brown-out ;reset enable,RB6 y RB7 como pin I/O CONTROL equ 0x20 ;contiene los bits de control del sistema FREC1 equ 0x52 ;contiene la frecuencia 0 FREC2 equ 0x53 ;contiene la frecuencia 1 FREC_P equ 0x21 ;indica la frecuencia portadora FREC_C equ 0x22 ;indica la frecuencia portadora cifrada SECU_FREC equ 0x23 ;guarda la secuencia de frecuencias SEL_SALIDA equ 0x24 ;selección de la señal de salida ;************** variables auxiliares ************************************ AUX equ 0x50 AUX1 equ 0x51 ;************** variables de calculos de frecuenci,periodo y DC ********* PERIODO equ 0x54 PERIODO1 equ 0x55 PERIODO2 equ 0x56 PREESCALER equ 0x57 PREESCALER1 equ 0x58 PREESCALER2 equ 0x59 DUTYH equ 0x5A DUTYL equ 0x5B DUTYH1 equ 0x5C DUTYL1 equ 0x5D DUTYH2 equ 0x5E DUTYL2 equ 0x5F ;************* variables de MULTI, DIVIDE Y PERIOD ******************* AUXHH equ 0x60 AUXLL equ 0x61 AUXH equ 0x62 AUXL equ 0x63 NH equ 0x64 NL equ 0x65 RESULTHH equ 0x66 RESULTLL equ 0x67 RESULTH equ 0x68 RESULTL equ 0x69 PERIODOH equ 0x6C PERIODOL equ 0x6D ;************* variables de comunicación ******************************** DATOS equ 0x71 ;contiene los datos recibidos del emisor NUM_BITS equ 0x72 ;cuenta el número de bits recibidos SEMILLA equ 0x73 ;contiene la semilla inicial del LFSR

Page 223: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

216

REG_LFSR equ 0x75 ;contiene el valor actual del LFSR DATOS_F equ 0x76 ; RETARDO_CARGA equ 0x77 ;para sincronización con emisor TMP_W equ 0x78 ;deben estar en common memory TMP_STATUS equ 0x79 ;deben estar en common memory ;************************************************************************ ;************************** PROGRAMA PRINCIPAL ************************** ;************************************************************************ org 0x00 goto MAIN org 0x4 goto INTERRU MAIN org 0x05 ;***************** INICIALIZACIONES GENERALES *************************** bcf STATUS,6 ;Selección del banco 1 bsf STATUS,5 bcf ADCON1,PCFG3 bsf ADCON1,PCFG2 ;bits del puerto A como digitales bsf ADCON1,PCFG1 bsf ADCON1,PCFG0 clrf TRISA ;Puerto A como salida bcf STATUS,5 ;Vuelve al Banco 0 clrf INTCON ;deshabilita interrupciones globales clrf PORTA ;Pone el puerto A a cero bsf PORTA,4 clrf RETARDO_CARGA clrf CONTROL clrf PORTC ;pone el puerto C a cero bcf PORTB,7 ;selecciona como salida la señal modulada bcf PORTB,6 clrf DATOS bsf STATUS,RP0 bcf OPTION_REG,7 ;resistencias pull-ups habilitadas bsf TRISB,5 ;PORTB<5> como entrada bcf TRISB,7 ;PORTB<7:6> como salida bcf TRISB,6 bcf TRISC,7 ;PORTC<7:5> como salida bcf TRISC,6 bcf TRISC,5 bcf STATUS,RP0 ;banco 0 ;************ ESTABLECIMIENTO DE COMUNICACIÓN CON EMISOR **************** COMUNI call RECIBE ;lee la trama que envía el emisor movlw B'10101010' ;si la trama recibida no coincide con subwf DATOS,W ;B'10101010' entonces vuelve a esperar otra btfss STATUS,Z ;trama hasta que coincida goto COMUNI RESET clrf SEL_SALIDA clrf INTCON ;deshabilita interrupciones globales clrf PORTA ;Pone el puerto A a cero bsf PORTA,4 clrf RETARDO_CARGA clrf CONTROL clrf PORTC bcf PORTB,7 bcf PORTB,6 bsf STATUS,RP0 ; Banco 1 bsf OPTION_REG,PS2 bsf OPTION_REG,PS1 bsf OPTION_REG,PS0 bcf STATUS,RP0 movlw D'3'

Page 224: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

217

movwf AUX AC_LED movlw 0xFF ;enciende los LEDS D1,D2,D3,D4,D5,D6 movwf PORTA bcf PORTA,4 clrf TMR0 movlw D'8' ;retarda 0,5 s movwf AUX1 N_ESP bcf INTCON,T0IF ESP_T btfss INTCON,T0IF goto ESP_T decf AUX1,F btfss STATUS,Z goto N_ESP clrf PORTA ;apaga los LEDs D1,D2,D3,D4,D5,D6 movwf PORTA bsf PORTA,4 clrf TMR0 ;retarda 0,5s movlw D'8' movwf AUX1 N_ESP2 bcf INTCON,T0IF ESP_T2 btfss INTCON,T0IF goto ESP_T2 decf AUX1,F btfss STATUS,Z goto N_ESP2 decf AUX,F btfss STATUS,Z goto AC_LED NU_PRO call RECIBE movlw B'10101010' subwf DATOS,W btfsc STATUS,Z goto RESET call RECIBE ;Recibe Datos del emisor movwf SEMILLA call RECIBE movwf FREC1 call RECIBE movwf FREC2 call RECIBE movwf FREC_C movf SEMILLA,W movwf REG_LFSR ;Carga REG_LFSR con la semilla inicial movwf FREC_C xorwf REG_LFSR,W movwf FREC_P ;FREC_P<0>=frecuencia descifrada movf FREC1,W ;Calcula el periodo y DC de la frecuencia 0 call CAL_PER movf PERIODO,W movwf PERIODO1 movf PREESCALER,W movwf PREESCALER1 movf DUTYH,W movwf DUTYH1 movf DUTYL,W movwf DUTYL1 movf FREC2,W ;Calcula el periodo y DC de la frecuencia 1 call CAL_PER movf PERIODO,W movwf PERIODO2 movf PREESCALER,W movwf PREESCALER2 movf DUTYH,W movwf DUTYH2 movf DUTYL,W movwf DUTYL2

Page 225: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

218

movf DUTYH1,W ;Prepara DUTYH1,DUTYL1 con el valor adecuado movwf DUTYH ;para poder ser cargado directamente en movf DUTYL1,W ;CCPR1L,CCP1CON movwf DUTYL call CARG_DU movf DUTYH,W movwf DUTYH1 movf DUTYL,W movwf DUTYL1 movf DUTYH2,W ;Prepara DUTYH1,DUTYL1 con el valor adecuado movwf DUTYH ;para poder ser cargado directamente en movf DUTYL2,W ;CCPR1L,CCP1CON movwf DUTYL call CARG_DU movf DUTYH,W movwf DUTYH2 movf DUTYL,W movwf DUTYL2 bsf INTCON,7 ;habilita interrupciones globales bsf INTCON,6 ;habilita interrupciones periféricos bcf PIR1,TMR2IF ;borra flag interrupción Timer 0 bsf STATUS,RP0 ;banco 1 bcf PIE1,TMR2IE ;deshabilita interrupción TIMER2 bcf STATUS,RP0 ;banco 0 bcf PORTC,2 bcf STATUS,6 ;Selección del banco 1 bsf STATUS,5 bcf TRISC,2 ;CCP1 como salida bcf STATUS,5 ;Vuelve al Banco 0 ;inicialización del PWM movf PERIODO1,W ;Por defecto carga el periodo de la frecuencia 1 btfsc FREC_P,0 movf PERIODO2,W bcf STATUS,RP1 ;Banco 1 bsf STATUS,RP0 movwf PR2 ;Carga del periodo bcf STATUS,RP0 movf DUTYH1,W ;Carga del Duty Cycle btfsc FREC_P,0 movf DUTYH2,W movwf CCPR1L movf DUTYL1,W btfsc FREC_P,0 movf DUTYL2,W bcf CCP1CON,5 bcf CCP1CON,4 iorwf CCP1CON,F clrf TMR2 movf PREESCALER1,W ;Carga del preescaler adecuado btfsc FREC_P,0 movf PREESCALER2,W movwf T2CON bsf CCP1CON,CCP1M3 ;Configura el CCP1 como PWM bsf CCP1CON,CCP1M2 ESP_INI btfsc PORTB,5 ;espera a que el emisor de la orden de goto ESP_INI ;empezar el proceso bsf T2CON,TMR2ON bsf PORTC,7 ;enciede D7, apaga D6,D5 bcf PORTC,6 bcf PORTC,5 bcf PORTB,7 ;selecciona como salida la señal recibida

Page 226: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

219

bsf PORTB,6 movf REG_LFSR,W ;Escribe el contenido del LFSR en PORTA<3:0> movwf PORTA bsf PORTA,4 ;Escribe el valor de la frecuencia portadora btfsc FREC_P,0 bcf PORTA,4 bcf PORTA,5 ;Escribe el valor de la frecuencia cifrada btfsc FREC_C,0 bsf PORTA,5 ESP_FRE call RECIBE movlw B'10101010' subwf DATOS,W btfsc STATUS,Z goto RESET btfsc DATOS,1 ; Si DATOS_F<1>==0 se recibe una frecuencia goto ORDEN ; Si DATOS_F<0>==1 se recibe una orden call D_CIFRA ESP_HA btfsc PORTB,5 goto ESP_HA bcf PIR1,TMR2IF bsf STATUS,RP0 bsf PIE1,TMR2IE bcf STATUS,RP0 movf REG_LFSR,W ;Escribe el contenido del LFSR en PORTA<3:0> movwf PORTA bsf PORTA,4 ;Escribe el valor de la frecuencia portadora btfsc FREC_P,0 bcf PORTA,4 bcf PORTA,5 ;Escribe el valor de la frecuencia cifrada btfsc FREC_C,0 bsf PORTA,5 goto ESP_FRE ORDEN btfss DATOS,0 goto ORDEN2 call S_SALID goto ESP_FRE ORDEN2 bcf T2CON,TMR2ON ; Para el TIMER2 clrf INTCON clrf PORTA bsf PORTA,4 clrf PORTC bcf PORTB,7 bcf PORTB,6 goto NU_PRO ;************************************************************************ ;************************************************************************ ; S_SALID - CAMBIA LA SEÑAL QUE SE OBTIENE EN LA SALIDA ; En la salida se puede tener la señal modulada, la señal ; demodulada y la señal demodulada filtrada paso bajo. ;************************************************************************ S_SALID incf SEL_SALIDA,F movlw D'3' subwf SEL_SALIDA,W btfsc STATUS,Z clrf SEL_SALIDA movlw D'0' ;configura los bits del puerto C para subwf SEL_SALIDA,W ;que salga por la salida del multiplexor btfss STATUS,Z ;74HC4052 la señal recibida goto S_SAL2 bsf PORTC,7 ;D7 encendido, D8 y D9 apagados

Page 227: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

220

bcf PORTC,6 bcf PORTC,5 bcf PORTB,7 bsf PORTB,6 goto S_SAL5 S_SAL2 movlw D'1' ;configura los bits del puerto C para subwf SEL_SALIDA,W ;que salga por la salida del multiplexor btfss STATUS,Z ;74HC4052 la señal demodulada goto S_SAL3 bcf PORTC,7 ;D9 y D7 apagados, D8 encendido bsf PORTC,6 bcf PORTC,5 bsf PORTB,7 bcf PORTB,6 goto S_SAL5 S_SAL3 movlw D'2' ;configura los bits del puerto C para subwf SEL_SALIDA,W ;que salga por la salida del multiplexor btfss STATUS,Z ;74HC4052 la señal demodulada filtrada goto S_SAL5 bcf PORTC,7 ;D7 y D8 apagados, D9 encendido bcf PORTC,6 bsf PORTC,5 bsf PORTB,7 bsf PORTB,6 S_SAL5 return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; INTERRU - RUTINA DE TRATAMIENTO DE LAS INTERRUPCIONES ;************************************************************************ INTERRU movwf TMP_W ;Salva W y STATUS swapf STATUS,W movwf TMP_STATUS bcf STATUS,RP0 ;aseguración de estar en el banco 0 bcf STATUS,RP1 btfss PIR1,TMR2IF ;si no hay petición de interrupción de goto INTER_F ;Timer0 salta a INTER_F nop nop nop nop nop INTER2 ;carga del duty cycle y el periodo movf DUTYH1,W ;carga del Duty Cycle btfsc FREC_P,0 movf DUTYH2,W movwf CCPR1L movf DUTYL1,W btfsc FREC_P,0 movf DUTYL2,W bcf T2CON,T2CKPS0 movf PREESCALER1,W ;carga del preescaler adecuado btfsc FREC_P,0 movf PREESCALER2,W iorwf T2CON,F bcf CCP1CON,5 bcf CCP1CON,4 iorwf CCP1CON,F movf PERIODO1,W ;por defecto carga el periodo de frecuencia0 btfsc FREC_P,0 movf PERIODO2,W

Page 228: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

221

bsf STATUS,RP0 ;banco 1 movwf PR2 ;carga del periodo bcf PIE1,TMR2IE ;deshabilita interrupción TIMER2 bcf STATUS,RP0 ;banco 0 INTER_F bcf PIR1,TMR2IF ;borra flag interrupción timer2 swapf TMP_STATUS,W ;restaura W y STATUS movwf STATUS swapf TMP_W,F swapf TMP_W,W retfie ;finaliza la interrupción ;************************************************************************ ;************************************************************************ ; D_CIFRA - REALIZA LA XOR ENTRE DATOS_F<0> y REG_LFSR<0> (descifrado ; de la frecuencia) Y ACTUALIZA EL LFSR ; En FREC_P<0> se guarda la frecuencia descifrada ; En FREC_C<0> se guarda la frecuencia cifrada recibida ;************************************************************************ D_CIFRA rrf REG_LFSR,W ;Coje el bit REG_LFSR<1> andlw B'00000001' xorwf REG_LFSR,F ;x-or entre REG_LFSR<1> y REG_LFSR<0> bcf REG_LFSR,4 btfsc REG_LFSR,0 bsf REG_LFSR,4 rrf REG_LFSR,F ;Coloca REG_LFSR<4> en LFSR<3> movf DATOS,W movwf FREC_C ;FREC_C<0>= frecuencia cifrada xorwf REG_LFSR,W ;En FREC_P<0> se encuentra la frecuencia movwf FREC_P ;descifrada return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; RECIBE - RECIBE EL BYTE ENVIADO POR EL EMISOR MEDIANTE UNA ; COMUNICACIÓN SERIE ASÍNCRONA. ; Espera el bit de start, 8 bits de datos y bit de stop. ;************************************************************************ RECIBE bsf STATUS,RP0 ;Banco 1 bsf TRISB,5 ;PORTB<5> como entrada movlw B'11000000' andwf OPTION_REG,F ;prescaler Timer0= 1:2 bcf STATUS,RP0 bcf INTCON,T0IE ;Interrupcion TMR0 deshabilitada movlw D'1' movwf NUM_BITS TESTEA btfsc PORTB,5 ;espera bit de start goto TESTEA movlw D'234' movwf TMR0 bcf INTCON,T0IF ;borra flag interrupción del Timer0 ESPERA btfss INTCON,T0IF ;espera 50us goto ESPERA movlw D'210' movwf TMR0 RECIBE2 bcf INTCON,T0IF ;borra flag interrupción del Timer0 ESPERA2 btfss INTCON,T0IF ;retarda 100us

Page 229: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

222

goto ESPERA2 bcf DATOS,7 ;coloca el bit leído en DATOS<7> y lo rota btfsc PORTB,5 ;a la derecha bsf DATOS,7 movlw D'210' ;Carga retardo de 100us movwf TMR0 movlw D'8' subwf NUM_BITS,W ;si ya se han recibido los ocho bits btfsc STATUS,Z ;salta a F_RECIB goto F_RECIB incf NUM_BITS,F rrf DATOS,F goto RECIBE2 F_RECIB movf DATOS,W bcf INTCON,T0IF ESPERA3 btfss INTCON,T0IF ;retarda 100us goto ESPERA3 return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; CARG_DU - COLOCA LOS BITS CORRESPONDIENTES AL DUTY CYCLE CORRECTAMENTE ; PARA PODER SER CARGADOS EN CCPR1L,CCP1CON<5:4> ; El valor del duty cycle con los bits correctamente colocados ; se guarda en DUTYH,DUTYL. ;************************************************************************ CARG_DU swapf DUTYH,F ;coloca los bits DUTYH<1:0> en DUTYH<7:6> rlf DUTYH,F rlf DUTYH,F btfsc DUTYL,2 ;coloca los bits DUTYL<7:2> en DUTYH<5:0> bsf DUTYH,0 btfsc DUTYL,3 bsf DUTYH,1 btfsc DUTYL,4 bsf DUTYH,2 btfsc DUTYL,5 bsf DUTYH,3 btfsc DUTYL,6 bsf DUTYH,4 btfsc DUTYL,7 bsf DUTYH,5 bcf DUTYL,4 ;coloca los bits DUTYL<1:0> en DUTYL<5:4> bcf DUTYL,5 btfsc DUTYL,0 bsf DUTYL,4 btfsc DUTYL,1 bsf DUTYL,5 movlw B'00110000' ;deja los bits DUTYL<5:4> con el mismo valor andwf DUTYL,F ;y pone el resto de bits de DUTYL a cero. return ;sale de la rutina ;************************************************************************

Page 230: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

223

;************************************************************************ ; CAL_PER -CALCULA EL VALOR QUE SE DEBE CARGAR EN EL TIMER2, ADEMAS DE SU ; PREESCALER PARA OBTENER LA FRECUENCIA DESEADA. TAMBIÉN CALCULA ; EL DUTY CYCLE PARA EL PWM. ; El valor de la frecuencia se recibe a través de w. ; En PERIODO se guarda el valor del periodo. ; En PREESCALER se guarda el valor del prescaler que se debe ; cargar en Timer2 para conseguir el periodo calculado. ; En DUTYH,DUTYL se guarda el duty cycle para el PWM. ;************************************************************************ CAL_PER clrf AUXH ;valor de la frecuencia a multiplicar movwf AUXL clrf NH movlw D'100' ;multiplica por 100 para obtener el movwf NL ;el valor real de la frecuencia call MULTI ;multiplica (AUXH,AUXL)x100 clrf AUXHH ;Coloca un 1000000 en el Dividendo movlw 0x0F ;para calcular el periodo y obtener movwf AUXLL ;el resultado directamente en us movlw 0x42 movwf AUXH movlw 0x40 movwf AUXL movf RESULTH,W ;coloca el valor real de la frecuencia movwf NH ;calculado anteriormente en el divisor movf RESULTL,W movwf NL call DIVIDE ;divide (1000000/frecuencia) movf RESULTH,W ;en RESULTH,RESULTL se tiene el valor del movwf AUX ;período en microsegundos movf RESULTL,W ;en AUX,AUX1 se guarda RESULTH,RESULTL movwf AUX1 ; movwf PERIODO ;en PERIODO se guarda RESULTL movlw 0x01 ;Si el valor del periodo es mayor que 255 subwf RESULTH,W ;se divide entre 4 y se escoge un btfss STATUS,C ;un prescaler de 1:4 goto CAL_PE2 clrf AUXHH ;Divide el periodo obtenido clrf AUXLL ;entre 4 movf RESULTH,W movwf AUXH movf RESULTL,W movwf AUXL clrf NH movlw D'1' ;Indica que el preescaler es 1:4 movwf PREESCALER movlw D'4' movwf NL call DIVIDE movf RESULTL,W movwf PERIODO ;contiene el período de la frecuencia goto CAL_PE3 ;dividido entre 4 CAL_PE2 movlw D'0' ;Indica que el preescaler es 1:1 movwf PREESCALER CAL_PE3 movf AUX,W ;Calculo del Duty Cycle movwf AUXH ;Multiplica el periodo inicial por 1000 movf AUX1,W ;para pasarlo a ns movwf AUXL movlw 0x03 movwf NH movlw 0xE8 movwf NL call MULTI movf RESULTHH,W

Page 231: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

224

movwf AUXHH ;AUXHH=RESULTHH movf RESULTLL,W movwf AUXLL ;AUXLL=RESULTLL movf RESULTH,W movwf AUXH ;AUXH=RESULTH movf RESULTL,W movwf AUXL ;AUXL=RESULTL movlw D'1' subwf PREESCALER,W btfsc STATUS,C goto CAL_PE4 movlw 0x01 ;selección prescaler 1:1 movwf NH ;[NH,NL]=2*250 movlw 0xF4 movwf NL goto CAL_PE5 CAL_PE4 movlw 0x07 ;selección prescaler 1:4 movwf NH ;[NH,NL]=2*4*250 movlw 0xD0 movwf NL CAL_PE5 call DIVIDE ;divide el DC entre el prescaler movf RESULTH,W ;seleccionado y guarda el resultado movwf DUTYH ;en DUTYH,DUTYL movf RESULTL,W movwf DUTYL return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; MULTI - REALIZA EL PRODUCTO ENTRE EL VALOR CONTENIDO EN <AUXH, AUXL> ; (16 bits) y <NH,NL> ( 16 bits). ; EL RESULTADO SE GUARDA EN <RESULTHH,RESULTLL,RESULTH,RESULTL> ; ( 32 bits) ; Consiste en sumar el valor contenido en AUXH,AUXL tantas veces ; como indica NH,NL y el resultado se va acumulando en <RESULT..> ;************************************************************************ MULTI clrf RESULTHH ;reset de la variable <RESULT..> donde se clrf RESULTLL ;guardará el resultado clrf RESULTH clrf RESULTL MULTI2 movlw D'1' ;decrementa <NH,NL> subwf NL,F btfsc STATUS,C goto MULTI3 movlw D'1' subwf NH,F btfss STATUS,C goto F_MULT MULTI3 movf AUXH,W ;realiza la suma de <AUXH,AUXL> con addwf RESULTH,F ;<RESULTHH,RESULTLL,RESULTH,RESULTL> y btfss STATUS,C ;guarda el resultado en <RESULT..> goto MULTI4 movlw D'1' ;Si RESULTH desborda se incrementa RESULTLL addwf RESULTLL,F btfsc STATUS,C incf RESULTHH,F ;Si RESULTLL desborda se incrementa RESULTHH MULTI4 movf AUXL,W addwf RESULTL,F btfss STATUS,C goto MULTI5 movlw D'1' ;Si RESULTL desborda se incrementa RESULTH addwf RESULTH,F btfss STATUS,C goto MULTI5

Page 232: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

225

movlw D'1' ;Si RESULTH desborda se incrementa RESULTLL addwf RESULTLL,F btfsc STATUS,C incf RESULTHH,F ;Si RESULTLL desborda se incrementa RESULTHH MULTI5 goto MULTI2 F_MULT return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; DIVIDE - REALIZA LA DIVISIÓN ENTRE EL VALOR CONTENIDO EN ; <AUXHH, AUXLL,AUXH, AUXL> (dividendo de 16 bits) y ; <NH,NL> ( divisor de 16 bits). ; EL RESULTADO SE GUARDA EN <RESULTH,RESULTL> (16 bits) ; Consiste en ir restando al dividendo el divisor hasta que el ; dividendo sea mas pequeño que el divisor. El número de veces ; que se ha restado es el resultado de la división. ;************************************************************************ DIVIDE clrf RESULTH ;reset de <RESULTH,RESULTL> clrf RESULTL DIVIDE1 movf NH,W subwf AUXH,F btfsc STATUS,C goto DIVIDE2 movlw D'1' ;si AUXH desborda se decrementa AUXLL subwf AUXLL,F btfsc STATUS,C goto DIVIDE2 movlw D'1' ;si AUXLL desborda se decrementa AUXHH subwf AUXHH,F ;Si AUXHH también desborda indica que el btfss STATUS,C ;dividendo es menor que el divisor y se goto F_DIVID ;deja de dividir DIVIDE2 movf NL,W subwf AUXL,F btfsc STATUS,C goto DIVIDE3 movlw D'1' ;si AUXL desborda se decrementa AUXH subwf AUXH,F btfsc STATUS,C goto DIVIDE3 movlw D'1' ;si AUXH desborda se decrementa AUXLL subwf AUXLL,F btfsc STATUS,C goto DIVIDE3 movlw D'1' ;si AUXLL desborda se decrementa AUXHH subwf AUXHH,F ;si AUXHH tambien desborda indica que btfss STATUS,C ;dividendo<divisor y se deja de dividir goto F_DIVID DIVIDE3 incf RESULTL,F ;cuenta cuantas veces se ha restado el btfsc STATUS,Z ;divisor al dividendo. incf RESULTH,F goto DIVIDE1 F_DIVID return ;sale de la rutina ;************************************************************************

Page 233: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

226

;************************************************************************ ; PRESC1 - SELECCIÓN DEL PRESCALER 1:256 PARA EL TIMER 0 ;************************************************************************ PRESC1 bsf STATUS,5 ;cambiamos de banco 1 bcf STATUS,6 movlw 0x07 movwf OPTION_REG ;prescaler Interno,1->0,1:256 bcf STATUS,5 ;cambiamos de banco 0 return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; PRESC2 - SELECCIÓN DEL PRESCALER 1:2 PARA EL TIMER 0 ;************************************************************************ PRESC2 bsf STATUS,5 ;cambiamos de banco 1 bcf STATUS,6 movlw 0x00 movwf OPTION_REG ;prescaler Interno,1->0,1:2 bcf STATUS,5 ;cambiamos de banco 0 return ;sale de la rutina ;************************************************************************ ;************************************************************************ ; TEMP - RETARDO DEL TIEMPO CARGADO EN EL TIMER 0 ;************************************************************************ TEMP movwf TMR0 t0 btfsc TMR0,7 ;tiempo será 1us*(-TMR0)*N goto t0 return ;sale de la rutina ;************************************************************************ end

Page 234: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

227

A2 Manuales de Funcionamiento A2.1 Manual de Usuario de los Módulos Emisor / Receptor A2.1.1 Conexionado y Puesta en Marcha El sistema codificador/decodificador está formado por dos módulos. Uno emisor y otro receptor. Para asegurar un correcto funcionamiento del sistema hay seguir los siguientes pasos, manteniendo el orden indicado: 1.- Coger el cable de comunicaciones (de tipo telefónico) y conectar los dos módulos a través de los conectores habilitados para tal fin (ver figura 57).

2.- La fuente de alimentación a utilizar debe ser simétrica ± 15 V. Realizar la conexión de los módulos con la fuente de alimentación, estando ésta apagada. Se utiliza una sola fuente de alimentación para conectar los dos módulos, aunque también es posible alimentarlos con fuentes independientes. Asegurarse de que el conexionado de los cables de alimentación sea correcto y encender la fuente de alimentación.

3.- Una vez alimentado el sistema, los LED’s del receptor se apagan y se encienden durante tres veces consecutivas y a través del display del módulo emisor

se visualiza el mensaje < Parametros Generales >. Estos dos indicativos nos aseguran que el sistema se ha sido inicializado correctamente.

4.- Si en algún otro momento se quisiera inicializar de nuevo el sistema se debe pulsar el pulsador de reset del módulo emisor.

Figura 57. Conexionado de los módulos Emisor / Receptor

Cable de comunicación

+15V -15V

0V

+15V -15V 0V

Emisor Receptor

Page 235: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

228

A2.1.2 Funcionamiento del Sistema La configuración del sistema se realiza mediante cuatro pulsadores y la ayuda de un display, situados en el módulo emisor. En la figura (59) se pueden observar los pulsadores ( PUL1, PUL2, PUL3 y PUL4 ) y el display LCD. A través del display se visualiza un menú a mediante el cual se pueden configurar fácilmente los parámetros del sistema. El menú es el siguiente:

Figura 58. Menú del módulo emisor

El desplazamiento a través del menú se realiza a través de los cuatro pulsadores indicados en la figura (59). En la figura (58) se muestra el menú que se visualiza a través del display LCD. Se puede observar que consta de dos niveles. Pulsando PUL4 se aumenta de nivel y pulsando PUL1 se disminuye de nivel. Los pulsadores PUL2 y PUL3 se utilizan para escoger una función u otra dentro de un mismo nivel, y pulsando PUL4 se selecciona la función. A continuación se describen la utilidad de cada una de las funciones.

Primer Nivel Segundo Nivel

Parámetros Generales

Iniciar Proceso

Modo de Funcionamiento

Frecuencias a utilizar

Semilla Inicial

Intervalo de Cambio

Secuencia de frecuencias

Automático

Manual

Page 236: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

229

Mediante “parámetros generales” se pueden escoger las siguientes funciones: - “Frecuencias a utilizar”, selecciona las dos frecuencias de modulación a utilizar (Frecuencia 0 y Frecuencia 1). Los valores están comprendidos entre 1000 Hz y 20000 Hz.

- “Semilla inicial”, selecciona la semilla incial del sistema de cifrado digital basado en LFSR’s. El valor se introduce en binario y está comprendido entre ‘0000’ y ‘1111’.

- “Intervalo de cambio”, selecciona el intervalo de cambio entre las dos frecuencias escogidas (Frecuencia 0 y Frecuencia 1). El valor está comprendido entre 50 ms y 1 s.

- “Secuencia de frecuencias”, selecciona la secuencia de frecuencias de modulación. En total se tiene una secuencia de 8 valores a escoger entre Frecuencia 0 y Frecuencia 1. Seleccionando la función “Iniciar proceso”, se inicia la codificación / decodificación. Mediante “Modo de funcionamiento”, se escoge si el sistema funcioanará en modo manual o automático. El modo manual implica que el usuario tiene que pulsar el pulsador “PUL4” cada vez que quiera cambiar de frecuencia. En cambio en modo automático, es el propio sistema quien se encarga de ir cambiando la frecuencia de modulación cada cierto tiempo (el cual ha sido seleccionado previamente en la función intervalo de cambio). (En el siguiente apartado se muestra un ejemplo de configuración del sistema.)

Figura 59. Descripción del módulo emisor

PUL1 PUL2

PUL4 PUL3

Reset

Control Volumen

Salida para sonda

Salida para auriculares

Entrada para sonda

Entrada de audio

Entrada para microfono

Page 237: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

230

Una vez el sistema ha sido configurado (ver apartado A2.1.3) el funcionamiento del sistema es el siguiente: - Mediante PUL2 se puede ir cambiando la señal obtenida en la salida del módulo emisor. Los tres LED’s de la parte superior derecha indican que señal (señal de entrada, señal filtrada o señal modulada) se obtiene en la salida del módulo emisor.

- Pulsando PUL4 se cambia el valor de la frecuencia portadora. Un LED se encarga de indicar el valor de la frecuencia portadora, que puede ser Frecuencia 0 (se representa mediante un 0, diodo apagado) o bien Frecuencia 1 (se representa con un 1, diodo encendido). Otro LED indica el valor de la frecuencia cifrada, el cual se obtiene de realizar una OR exclusiva entre la frecuencia portadora (0 ó 1) y el valor proporcionado por el LFSR (0 ó 1). Cuatro LED’s indican en todo momento el contenido del LFSR. (Funcionando en modo automático, PUL4 no tiene ninguna función, ya que el cambio de frecuencia se realiza automáticamente).

- Mediante PUL3 se puede puede ir cambiando la señal obtenida en la salida del módulo receptor. Los tres LED’s de la parte superior izquierda indican qué señal (señal recibida, señal demodulada o señal original) se obtiene en la salida del módulo receptor. (ver figura 60).

Figura 60. Descripción del módulo receptor

Señal demodulada

Señal original

Señal recibida

Frecuencia cifrada recibida

Frecuencia portadora

Sistema de descifrado basado en LFSR

Reset

Salida para sonda

Cable de comunicaciones

Salida para auriculares

Page 238: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

231

A2.1.3 Ejemplo de Configuración del Sistema A continuación se muestra un ejemplo práctico, con el cual se configuran todos los parámetros del sistema. Los pasos a seguir son los siguientes: En primer lugar configuramos los parámetros generales, para ello debemos estar en el Nivel 1. Si no lo estamos, pulsar PUL1, hasta llegar a él. Una vez en el Nivel 1, visualizar el mensaje “Parámetros Generales”, pulsando PUL2 o PUL3. Cuando esté visualizado, pulsar PUL4. Nos aparece el mensaje “Frecuencias a utilizar”, volver a pulsar PUL4, y entonces nos pide que introduzcamos la “frecuencia 0” (se observa que ya existe un valor). Mediante los pulsadores PUL2 o PUL3 se puede aumentar o disminuir respectivamente el valor de la frecuencia (si se mantiene pulsado el pulsador, el valor aumenta o disminuye más rápidamente). Una vez obtenido el valor deseado, pulsar PUL4 para guardar el valor. Acontinuación nos pide el valor de la “frecuencia 1”. Igual que antes, mediante los pulsadores PUL2 y PUL3 se escoge el valor deseado. Una vez obtenido se guarda pulsando PUL4, tras lo cual se vuelve a visualizar el mensaje “Frecuencias a utilizar”. A continuación pulsando sobre PUL3 se visualiza el mensaje “Semilla Inicial”. Pulsamos PUL4 y se visualiza un número en binario de 4 bits. Se trata de la semilla inicial del sistema de cifrado. Pulsando PUL2 o PUL3 se aumenta o decrementa este valor (hay que recordar que si se escoge el valor “0000” el sistema de cifrado no funciona). Una vez escogido el valor se pulsa PUL4 para guardarlo, y de este modo se vuelve a visualizar el mensaje “Semilla Inicial”. Pulsando PUL3 se visualiza el mensaje “Intervalo de Cambio”. Pulsamos PUL4 y entonces mediante los pulsadores PUL2 y PUL3 debemos seleccionar el tiempo de cambio entre cada una de las frecuencias de modulación (cuando el sistema esté funcionando en modo automático). El tiempo puede estar comprendido entre 50 ms y 1s. Una vez escogido el valor deseado pulsar PUL4 para guardar el valor, y entonces se vuelve a visualizar el mensaje “Intervalo de Cambio”. Pulsando PUL3 se visualiza el mensaje “Secuencia de frecuencias”. Pulsamos PUL4 y entramos en esta función, en la cual debemos escoger una secuencia de 8 frecuencias (los valores posibles serán los escogidos en “Frecuencias a utilizar”). En primer lugar aparece en el display LCD el número 1 seguido del valor de una de las dos frecuencias escogidas anteriormente. Pulsando PUL2 o PUL3 se puede ir alternando entre los dos valores. Cuando se tenga el valor deseado, pulsar PUL4 para guardarlo. Entonces nos aparece el número 2 seguido también de uno de los dos valores. Seleccionar también el valor deseadado y pulsar PUL4. Hay que repetir el mismo proceso 8 veces (secuencia de 8 frecuencias). Una vez completada la introducción de la secuencia de frecuencias, se vuelve a visualizar el mensaje “Secuencia de frecuencias”. Pulsar PUL1 para volver al Nivel 1 y entonces se visualiza el mensaje “Parámetros Generales”. A continuación seleccionaremo si queremos que el sistema funcione en modo manual o modo automático. Para ello vamos pulsando PUL2 o PUL3 hasta visualizar el mensaje “Modo de funcionamiento”. Una vez visualizado el mensaje pulsamos PUL4 y entonces se visualiza

Page 239: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

232

el mensaje “Automático”. Pulsando PUL2 o PUL3 se va alternando entre los mensajes “Automático” y “Manual”. Para seleccionar el modo deseado, mientras se visualiza el mensaje deseado, pulsar PUL4. La aparición de un asterisco delante del mensaje indica que la selección ha sido realizada. Para salir de la función, pulsar PUL1, de este modo se vuelve a visualizar el mensaje “Modo de Funcionamiento”. Habiendo realizado correctamente los pasos anteriores, el sistema ya queda configurado. Pulsando PUL2 o PUL3 visualizar el mensaje “Iniciar Proceso”, y cuando se esté visualizando pulsar PUL4, y así el sistema comienza a funcionar. Cuando se conecta la alimentación por primera vez al sistema, estos parámetros contienen unos valores por defecto que son los siguientes: Frecuencia 0: 6400 Hz

Frecuencia 1:12800 Hz

Semilla inicial: 0001

Intervalo de Cambio: 50 ms

Secuencia de frecuencias: 6400Hz: 12800Hz: 6400Hz: 12800Hz: 6400Hz: 12800Hz: 6400Hz: 12800Hz:

Modo de funcionamiento: Manual Si se realiza un reset del sistema los últimos valores utilizados quedan guardados.

Page 240: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

233

Señal a visualizar Masa

Conector para conectar en el ordenador

A2.2 Utilización de Labview La visualización de las señales se realiza mediante Labview 6.1, el cual es un sistema de programación gráfica para aplicaciones que involucran adquisición, control, análisis y presentación de datos. Para la adquisición de las señales se utiliza la tarjeta 6023E de National Instruments. Los pasos a seguir son los siguientes:

- Copiar el archivo “Niconfig.daq” (proporcionado por el profesor) en C:\windows y el archivo “analizador.vi” en el escritorio.

- Conectar el cable plano de la placa de la figura (61) a la tarjeta de adquisición de datos NI 6023E. El conector se encuentra ubicado en la parte trasera del ordenador. Mediante esta

placa se obtendrá la señal que se enviará a la tarjeta de adquisición de datos.

- Hacer doble clic sobre el archivo “analizador.vi” y el programa Labview arranca automáticamente.

- Al abrir el archivo anterior, aparece una ventana con el panel principal de la figura (62). Además en la parte izquierda, también aparecen dos ventanitas (Tools y Controls), hacer clic en la ‘x’ para cerrarlas.

- Finalmente nos tiene que quedar la ventana de la figura (62).

Figura 61. Placa para adquirir las señales y enviarlas a la tarjeta NI 6023E

Page 241: Desarrollo de una Práctica de Codificación por Modulación AMsauron.etse.urv.es/public/PROPOSTES/pub/pdf/704pub.pdf · i Índice General Memoria Descriptiva 1 1 Objeto del Proyecto

Desarrollo de una Práctica de Codificación por Modulación AM Anexo

234

Iniciar programa

Parar programa ¡No pulsar el botón de Pausa!

Representación temporal

Representación frecuencial (lineal)

Representación frecuencial (dB)

controles

En la figura (6) se observa el panel frontal del analizador de señales. Se observa que se realiza la represenatción de la señal en el tiempo, en la frecuencia (de forma lineal) y en la frecuencia (en dB y de forma logarítmica).

Figura 62. Panel frontal del visualizador de señales Para iniciar y parar la representación de las señales hay que hacer clic sobre los botones indicados en la figura (6) para tal fin. Es importante no pulsar el botón de pausa, ya que si se pulsa, el programa se para y se pasa al diagrama del programa. En este caso, para volver otra vez al panel principal hay que hacer clic sobre “Windowsè Show Panel” o bien en la barra de tareas inferior, hacer clic sobre “analizador.vi”. Como se puede observar, a la izquierda de cada una de las tres gráficas hay un control que se utiliza para variar la representación de las señales.