Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica"

Transcripción

1 Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica IE 0502 Proyecto Eléctrico Implementación de un codificador y decodificador fuente utilizando el algoritmo de codificación aritmética Por: Oscar Andrés Morales Chacón Ciudad Universitaria Rodrigo Facio Junio del 2008

2 Implementación de un codificador y decodificador fuente utilizando el algoritmo de codificación aritmética Por: Oscar Andrés Morales Chacón Sometido a la Escuela de Ingeniería Eléctrica de la Facultad de Ingeniería de la Universidad de Costa Rica como requisito parcial para optar por el grado de: BACHILLER EN INGENIERÍA ELÉCTRICA Aprobado por el Tribunal: Ing. Diego Castro Hernández Profesor Guía Ing. Victor Hugo Chacón Prendas, M.Sc. Profesor lector Ing. Andrew Sheehy Protti Profesor lector

3 DEDICATORIA A mis padres y abuelos, por su apoyo incondicional, esfuerzo y trabajo. iii

4 RECONOCIMIENTOS iv

5 ÍNDICE GENERAL ÍNDICE GENERAL...v ÍNDICE DE FIGURAS...viii ÍNDICE DE TABLAS...x NOMENCLATURA...xi RESUMEN...xii CAPÍTULO 1: Introducción Metodología Objetivos Objetivo general Objetivos específicos...6 CAPÍTULO 2: Desarrollo teórico Probabilidad, espacio muestral y eventos Probabilidad de un evento Probabilidad condicional Independencia entre eventos Medida de la información Codificación fuente Teorema de codificación fuente Conversión de señales continúas a señales discretas Señal PCM Muestreo Muestreo de Nyquist Cuantización Cuantización uniforme Cuantización no uniforme Codificación Técnicas de compresión de la información Técnicas de compresión estadísticas Codificación Huffman Codificación Aritmética Proceso de codificación aritmética Proceso de decodificación aritmética...25 v

6 Ejemplo de codificación y decodificación aritmética Codificación Shannon-Fano Técnicas de compresión basadas en diccionario Codificación Run length Codificación LZ Codificación LZ CAPÍTULO 3: Microcontrolador MC68HC Introducción Descripción general del microcontrolador Familia MC68HC Estructura del microcontrolador Unidad de procesamiento central del MC68HC Tipos de datos Registros de la CPU Registros acumuladores Registros índices Puntero de pila Contador de programa Registro de Banderas (CCR) Modos de direccionamiento Direccionamiento inherente Direccionamiento inmediato Direccionamiento directo y extendido Direccionamiento indexado Direccionamiento relativo Puertos de entrada/salida del microcontrolador Puerto A Puerto B Puerto C Puerto D Puerto E Convertidor analógico-digital (A/D) Registros del convertidor A/D Registro OPTION Registro ADCTL Registros de resultados del convertidor A/D...59 vi

7 3.8 Comunicación serial asincrónica (SCI) Operación de transmisión Operación de recepción Registros de la interfaz de comunicación serial Registro BAUD Registro SCCR Registro SCCR Registro de estado Registro de datos Comunicación entre el PC y el microcontrolador MC68HC Tarjeta Adapt11C24DX...68 CAPÍTULO 4: Implementación del codificador fuente Probabilidad de los símbolos fuente Obtención de las probabilidades de los símbolos fuente Implementación del circuito de codificación fuente Algoritmos de codificación y decodificación Algoritmo de asignación de tarea Algoritmo generación de señal PCM Algoritmo codificación aritmética Algoritmo decodificación aritmética Manual de usuario Programa interfaz con el usuario Funciones Generación de la señal PCM Codificación Fuente Decodificación Fuente Fuentes de error Resultados obtenidos...92 CAPÍTULO 5: Conclusiones y Recomendaciones...97 BIBLIOGRAFIA APÉNDICES ANEXO vii

8 ÍNDICE DE FIGURAS Figura 2.1 Plano de información según Schouten...9 Figura 2.2 Distribución de la entropía para las probabilidades p y (1-p)...11 Figura 2.3 Mecanismo de generación de señales PCM...14 Figura 2.4 Espectro de la señal muestreada...15 Figura 2.5 Generación de señal PCM...19 Figura 2.6 Ejemplo de codificación Huffman...22 Figura 2.7 Ejemplo del proceso de codificación Shannon - Fano...31 Figura 2.8 Codificador predictivo...32 Figura 2.9 Decodificador predictivo...33 Figura 2.10 Diccionario del método de compresión LZ Figura 2.11 Diccionario LZ78 como un árbol...37 Figura 3.1 Diagrama de bloques de la serie E...41 Figura 3.2 Registros del modelo de programación...42 Figura 3.3 Registro de datos del puerto A...49 Figura 3.4 Registro de datos del puerto B para distintos modos de operación...50 Figura 3.5 Registro de datos del puerto C para distintos modos de operación...51 Figura 3.6 Registro DDRC...51 Figura 3.7 Registro de datos del puerto D...52 Figura 3.8 Registro DDRD...52 Figura 3.9 Registro de datos del puerto E...52 Figura 3.10 Diagrama de bloques del convertidor analógico digital...53 Figura 3.11 Secuencia de conversión del convertidor analógico digital...55 Figura 3.12 Registro OPTION...56 Figura 3.13 Registro ADCTL...56 Figura 3.14 Diagrama de bloques para el sistema de transmisión...60 Figura 3.15 Diagrama de bloques para el sistema de recepción...61 viii

9 Figura 3.16 Registro BAUD...62 Figura 3.17 Registro SCCR Figura 3.18 Registro SCCR Figura 3.19 Registro de estado...65 Figura 3.20 Modulo de la tarjeta Adapt11C24DX...68 Figura 3.21 Mapa de memoria...69 Figura 3.22 Asignación de pines...70 Figura 4.1 Circuito implementado para la codificación de la señal de voz...74 Figura 4.2 Diagrama de flujo algoritmo de asignación de tarea...77 Figura 4.3 Diagrama de flujo algoritmo generación de la señal PCM...79 Figura 4.4 Diagrama de flujo subrutina lazo de espera...80 Figura 4.5 Diagrama de flujo algoritmo de codificación aritmética...82 Figura 4.6 Diagrama de flujo algoritmo decodificación aritmética...86 Figura 4.7 Menú de tareas...88 Figura 4.8 Prueba codificación fuente...92 Figura 4.9 Prueba decodificación fuente...94 ix

10 ÍNDICE DE TABLAS Tabla 2.1 Ejemplo de codificación y decodificación aritmética...27 Tabla 3.1 Familia del microcontrolador MC68HC Tabla 3.2 Asignación de canales...58 Tabla 3.3 Valores de baud-rate...63 Tabla 3.4 Selección del modo de operación...67 Tabla 4.1 Probabilidad de los símbolos fuente...72 x

11 NOMENCLATURA Señal PCM Corresponde a una señal digital, constituida por una secuencia de unos y ceros, y por sus siglas en ingles Pulse Code Modulation, recibe este nombre específico. A/D Analógico-Digital. Se utiliza comúnmente para referenciar la codificación de la señal analógica. D/A Digital-Analógico. Se utiliza comúnmente para referenciar la decodificación de la señal digital a una señal analógica. xi

12 RESUMEN El objetivo principal de este proyecto es implementar un codificador y decodificador fuente utilizando el algoritmo de codificación aritmética por medio del microcontrolador MC68HC11. La implementación del circuito codificador fuente se realizó por medio del módulo Adapt11C24DX y circuitería externa conformada por etapas de amplificadores operacionales. Para el desarrollo del trabajo se realizó una breve investigación bibliográfica de las técnicas de codificación más utilizadas en la actualidad, considerando las ventajas y desventajas de cada método, así como también sus principios de funcionamiento y aéreas de aplicación. El microcontrolador MC68HC11 se programó en lenguaje ensamblador, utilizando recursos como la interfaz de comunicación serial, el convertidor A/D, entre otros. Se implementó el algoritmo de codificación y decodificación aritmética para comprimir la señal de voz, utilizando un conjunto total de 60 símbolos fuente, los cuales corresponden a los niveles de cuantización del convertidor A/D. Finalmente se escribió un manual de usuario para el sistema de codificación fuente implementado, desarrollando de esta manera una herramienta útil para la utilización del codificador y decodificador fuente, en futuras aplicaciones. xii

13 CAPÍTULO 1: Introducción La evolución de las telecomunicaciones a lo largo de los años ha impulsado un desarrollo importante en los sistemas de comunicaciones para la transmisión de información. Para lograr alcanzar un desarrollo óptimo en el tema de las comunicaciones, se requieren de muchas aéreas dentro de la ingeniería eléctrica, entre las cuales se encuentran: la electrónica digital, procesamiento de señales digitales, electromagnetismo, entre otras. Por lo tanto el objetivo es aplicar todas estas teorías para el diseño de sistemas de comunicación, de modo que la información presente el mínimo deterioro cuando se transmite a través de un medio particular, al mismo tiempo en que se satisfacen las limitantes de diseño, como energía transmitida, ancho de banda y el costo permisible. La comunicación constituye una transferencia o intercambio de información entre dos puntos a través de un canal. Todo el proceso de comunicación puede representarse por medio de un sistema de comunicaciones digital, el cual se encuentra conformado básicamente por los siguientes bloques. Inicialmente se encuentra el bloque fuente, en el cual se origina el mensaje que debe transmitirse, como por ejemplo la voz humana, una imagen de televisión o datos, entre otras. Esta señal de entrada al sistema de comunicación debe ser digital, muchas fuentes cumplen con esta condición mientras que otras de naturaleza continua pueden transformarse en señales digitales mediante un muestreo seguido de una cuantización y codificación, como es el caso de la señal PCM. La salida de este bloque consiste en 1

14 símbolos binarios, los cuales se transmiten a una determinada tasa de transmisión en unidades de bit/segundo. Seguidamente se encuentra el bloque de codificación fuente, donde entran los símbolos emitidos por la fuente, los cuales son transformados en símbolos de código binario con una longitud media mucho menor, reduciendo de esta forma el índice de transmisión, permitiendo así que estos puedan ser transmitidos rápidamente a través de canales con limitado ancho de banda, como por ejemplo el aire, el cobre, etc. Para lograr esta reducción en la longitud media de los códigos de cada símbolo, el codificador fuente elimina la redundancia e irrelevancia. Por otro lado, el decodificador fuente en el receptor reconstruye los símbolos codificados a los originales que fueron transmitidos por el emisor, únicamente hay que tomar en cuenta que en esta etapa no se restituye la irrelevancia sino exclusivamente la redundancia, pero esto no representa ningún problema para el sistema de comunicaciones ya que la irrelevancia no puede ser percibida por el destino. Durante el proceso de trasmisión de la información a través de un canal, se producen errores debido a influencias externas como es el caso de la diafonía e interferencias con la señal que transmite la información, por lo tanto antes de enviar los símbolos de salida en el codificador fuente es necesario que estos entren al bloque de codificación de canal, el cual corresponde a una de las etapas en el sistema de comunicaciones. El codificador de canal realiza una nueva codificación orientada a que el receptor pueda detectar y corregir los errores producidos en el canal, logrando esto con solo agregar bits de chequeo a cada uno de los símbolos binarios. Luego el decodificador de canal utiliza estos bits de chequeo con el fin de detectar o corregir errores del flujo binario de información. 2

15 Finalmente el sistema de comunicación digital presenta un bloque de canal discreto, en el cual se realiza la transmisión de información de un punto a otro, tomando en cuenta que se tienen canales continuos para la transmisión. Cuando se presentan estos tipos de canales, se utilizan moduladores para realizar el cambio de la señal digital a una señal analógica que pueda ser transmitida por el medio, luego esta señal es recibida por el demodulador, el cual realiza de nuevo la conversión de la señal analógica a una señal digital, logrando de esta forma la transmisión. Es importante reducir la longitud media del código de símbolos binarios codificados con respecto a los códigos de longitud fija, esto al eliminar la redundancia e irrelevancia de la información que se desea transmitir, y es precisamente en este punto en que radica el objetivo principal de la codificación fuente. Logrando obtener una representación eficiente de los símbolos del alfabeto fuente, es decir que cada palabra del código debe codificarse y decodificarse de forma única, de tal manera que la secuencia original sea reconstruida perfectamente. Para ello es necesario conocer probabilidades de cada uno de los símbolos del alfabeto fuente. En la actualidad se utilizan varios algoritmos de codificación fuente para la transmisión de la información, entre los cuales se encuentran los siguientes: Huffman, Shannon-Fano, Coma, adaptiva y aritmética. En el proyecto se trabajara con el algoritmo de codificación aritmética, el cual consiste en codificar una secuencia de símbolos de entrada mediante un número representado en punto flotante; por otro lado para este tipo de codificación no se requiere de algún criterio para 3

16 establecer un orden entre los símbolos fuente, pero el orden establecido debe ser conocido por el decodificador para que realice una correcta decodificación en la recepción. Un pilar importante en el desarrollo de este tema corresponde a la teoría de la información, la cual consiste en una teoría basada en fundamentos y leyes matemáticas, las cuales conforman las bases teóricas de transmisión y procesamiento de la información. Esta teoría fue creada por Claude E. Shannon en el año 1948 en uno de sus artículos llamado Teoría matemática de la comunicación, en la cual se ha desarrollado hoy en día toda la teoría de la comunicación y codificación. Esta surgió como una necesidad de establecer la base teórica a partir del avance tecnológico en las telecomunicaciones, con respecto a la complejidad y el crecimiento de las vías de comunicación. Esencialmente esta teoría se desarrolla en términos de probabilidades, ya que la información tiene una naturaleza aleatoria, donde establece los límites para la compresión de la información y la de máxima velocidad a la que se puede transmitir esta. De aquí su gran utilidad y aplicación en distintas áreas científicas alrededor del mundo. En este proyecto se implementan dos bloques del sistema de comunicación, estos son: el bloque fuente, cuya señal de entrada corresponde a la voz humana, y al bloque de codificación fuente. Este sistema esta conformado por un microcontrolador, el cual se encarga de codificar la señal analógica de entrada, además de estar programado para realizar la codificación y decodificación aritmética. 4

17 1.1 Metodología En el siguiente trabajo se realiza una investigación bibliográfica acerca de los principales algoritmos de codificación y decodificación fuente utilizados en la actualidad, así como una investigación sobre la teoría de la información aplicada a la codificación fuente. Se implementa un codificador y decodificador fuente que utilice el algoritmo de codificación aritmética, utilizando el microcontrolador MC68HC11, el cual se encuentra conectado a la tarjeta Adapt11C24DX. El algoritmo de codificación se programa en el lenguaje ensamblador de este microcontrolador, utilizando el software MiniIDE para el proceso de ensamblaje. La entrada de este sistema consiste en la voz humana, por lo tanto esta señal se va a codificar con ayuda del convertidor analógico digital que presenta este microcontrolador. Luego las muestras codificadas se almacenan en el espacio de memoria RAM, para luego aplicar el proceso de codificación y decodificación. Se determinará la probabilidad de cada uno de los símbolos fuente, los cuales corresponden a los niveles de cuantización que presenta el convertidor A/D, con ayuda de un programa en lenguaje ensamblador y un programa en Borland C++. Finalmente se realizará un programa en Borland C++, para crear una interfaz entre el usuario y el sistema de comunicación implementado, además de un manual de usuario del sistema desarrollado en el proyecto. 5

18 1.2 Objetivos Objetivo general Implementar un codificador y decodificador fuente que utilice el algoritmo de codificación aritmética, utilizando un microcontrolador Objetivos específicos Realizar una breve investigación bibliográfica acerca de los algoritmos de codificación y decodificación fuente utilizados en la actualidad. Implementar el algoritmo de codificación aritmética para codificar o decodificar una señal digital. Implementar un sistema de prueba del codificador/decodificador implementado, que consista en un sistema de conversión analógica/digital y digital/analógico de la voz de una persona. Desarrollar un manual de usuario para el sistema implementado, donde se describa el uso del sistema codificador y decodificador, así como el uso del mecanismo de prueba implementado. 6

19 CAPÍTULO 2: Desarrollo teórico 2.1 Probabilidad, espacio muestral y eventos En el estudio de la probabilidad se trabaja con la presentación e interpretación matemática de resultados aleatorios. El conjunto de todos los resultados posibles de un experimento aleatorio se llama espacio muestral, representado con el símbolo I, y a cada resultado del espacio muestral se le llama elemento del espacio muestral, el cual se representa como. Si el espacio muestral contiene un numero finito de elementos, estos se pueden representar como. Un evento X es un subconjunto de un espacio muestral, por lo tanto X está contenido en el espacio muestral I. El complemento de un evento X con respecto a I es el subconjunto de todos los elementos de I que no están en X, denotándolo como X Probabilidad de un evento Si un determinado experimento tiene como resultado cualquiera de N diferentes resultados, y si n de estos resultados corresponde al evento X, entonces la probabilidad corresponde a: Probabilidad condicional La probabilidad de que ocurra un evento Y luego de ocurrido un evento anterior X, se denomina probabilidad condicional, y se representa por medio de la expresión. Esta probabilidad se define a partir de la siguiente expresión: 7

20 Donde representa la intersección entre los eventos muestrales Independencia entre eventos La independencia estadística radica en que la ocurrencia de un determinado evento Y no tiene impacto en las probabilidades de ocurrencia de otro evento X, por lo tanto se dice que la ocurrencia del evento Y es independiente a la ocurrencia del evento X. Entonces se tiene que dos eventos son independientes si y solo si se satisface la siguiente relación. Si no se llegan a satisfacer las relaciones anteriores se tiene que los eventos son dependientes. 2.2 Medida de la información La información se puede dividir en cuatro planos distintos, según Schouten, como se muestra en la siguiente figura. La idea consiste en separar la información de acuerdo a que esta sea conocida, desconocida, significativa o no significativa. Al final del proceso se obtendrá un plano que se encuentra conformado por la parte desconocida y significativa de la información, y es precisamente esta parte de la información la que se debe transmitir. Cada una de las partes de la información cuenta con un modelo matemático que las describe por medio de la teoría de la información. 8

21 Figura 2.1 Plano de información según Schouten Una fuente se caracteriza por un alfabeto de k símbolos de un alfabeto fuente que son transmitidos, además de la probabilidad asociada a cada uno de estos símbolos. Sea una secuencia aleatoria de símbolos generados por una fuente discreta sin memoria, por lo tanto los símbolos generados son estadísticamente independientes, entonces se tiene: El contenido de información de una fuente discreta que contiene un conjunto de n símbolos, se calcula como sigue: Por otro lado el contenido de decisión se encuentra conformado por la redundancia de la fuente y el contenido medio de la información respectivamente, como se indica en la siguiente ecuación: 9

22 El concepto de información está muy relacionado con el concepto de probabilidad, por lo tanto cuanto más probable es un mensaje menos información contiene y entre mayor sea la inseguridad mayor será el contenido de información. De acuerdo con lo mencionado anteriormente Shannon definió el contenido de información de cada uno de los símbolos fuente a partir de la siguiente ecuación: A pesar de que se puede utilizar cualquier base para el logaritmo en los casos anteriores, comúnmente se utiliza base 2 o e. Cuando la base es 2 la unidad esta en bits y cuando la base esta en e la unidad esta en nats (natural units). La entropía de una fuente discreta sin memoria X se definirá como el contenido medio de información, el cual se calcula de acuerdo a la probabilidad de ocurrencia de cada uno de los símbolos fuente, esto es: Donde X representa el alfabeto de los posibles símbolos de salida de la fuente, por otro lado H(X) representa el promedio de información por símbolo. Por otro lado la entropía presenta propiedades importantes, las cuales corresponde a: La entropía de una fuente presentara siempre un valor mayor a cero, entonces: El contenido de decisión de una fuente siempre será mayor que la entropía de una fuente: 10

23 En la siguiente figura se muestra la distribución del contenido de información al considerar únicamente dos probabilidades. Figura 2.2 Distribución de la entropía para las probabilidades p y (1-p) Codificación fuente La codificación fuente se encarga básicamente de eliminar la parte irrelevante y redundante de la información a transmitir para que esta pueda ser transmitida por limitados anchos de banda. Considérese una fuente discreta sin memoria de alfabeto de símbolos, ocurriendo con probabilidades, y sean las las longitudes de las palabras de código asociadas a cada uno de los símbolos correspondientes, tal que, entonces la longitud media del código se define como: 1 C. E. Shannon, A mathematical theory of communication. Bell System Technical Journal, October 1948, p.11 11

24 Una condición necesaria que se debe satisfacer para la existencia de un código binario con palabras de código que presenten un tamaño de corresponde a: Donde D representa los símbolos de código. La desigualdad anterior asegura que una secuencia de palabras de código se pueda decodificar en forma única, tal que el principio o fin de todas las palabras es reconocible; esta condición la satisfacen los códigos de prefijo Teorema de codificación fuente El teorema de codificación fuente afirma que cualquier conjunto de códigos de prefijo usados para representar los símbolos fuente, deben presentar una longitud media de las palabras de código de al menos igual a la entropía de la fuente. Sea X una fuente discreta sin memoria con una entropía H(X) y con un alfabeto de D símbolos de código, entonces dados estos parámetros es posible construir un código que satisface la siguiente desigualdad. 12

25 Por lo tanto este teorema asegura que para representar la información sin perdidas, es necesario tener como mínimo un índice H(X) bits/símbolo, donde la redundancia se puede eliminar mediante técnicas de codificación. La ecuación anterior se puede simplificar al sustituir la variable D por el número 2, debido a que usualmente se trabaja con elementos de código binario. El teorema también muestra que una fuente que presenta una alta entropía requiere un promedio mayor en el número de bits para representar los símbolos fuente en términos de prefijo de código. Se define la redundancia absoluta de una fuente discreta con un alfabeto de K símbolos fuente, como la diferencia entre el contenido de decisión y el contenido medio de información por símbolo, donde se obtiene siempre un resultado positivo. Por otro lado se define la redundancia residual de la siguiente forma: Donde el primer termino de la expresión anterior se le denomina contenido de decisión medio de las palabras de código. 2.3 Conversión de señales continúas a señales discretas 13

26 2.3.1 Señal PCM La modulación por impulsos codificados (PCM por sus siglas en ingles: Pulse Code Modulation) consiste en un proceso en que se transforma una señal analógica en una señal digital, representada por una secuencia de datos binarios. La señal cuantizada consiste en una señal digital sin compresión, donde a cada muestra cuantizada se le asigna una palabra de código de longitud constante, con una determinada cantidad de bits, los cuales se ven determinados por los niveles de cuantización a partir de la siguiente ecuación: Donde N corresponde a la cantidad de bits que se utilizan para representar una muestra codificada, mientras M representa los niveles de cuantización. Básicamente la señal PCM se genera por medio de tres operaciones básicas, las cuales corresponden a: muestreo, cuantización y codificación. Figura 2.3 Mecanismo de generación de señales PCM

27 Muestreo Consiste en muestrear una señal de tiempo y valor continuo en un número determinado de veces por unidad de tiempo, obteniendo a partir de esta técnica diferentes niveles que representan la señal de entrada, convirtiendo una señal en tiempo continuo en una señal de tiempo discreto, generando de esta forma la modulación por amplitud de pulso (PAM por sus siglas en ingles: Pulse Amplitud Modulation). Existen dos tipos de señales PAM, una que utiliza muestro uniforme, donde se toman muestras cada T segundos y otra que utiliza muestreo instantáneo, en donde se aplican una secuencia de pulsos instantáneos Muestreo de Nyquist Considere una señal, que varía continuamente en el tiempo, limitada a un ancho de banda hertz, la cual se desea convertir a una señal digital. De acuerdo al teorema de Nyquist se tiene que mientras la velocidad de muestreo sea, no se destruye ningún contenido de la información de la señal. La frecuencia de Nyquist corresponde a veces por segundo, mientras que el intervalo de muestro de Nyquist corresponde a. Figura 2.4 Espectro de la señal muestreada 15

28 En la figura anterior se muestra el espectro de una señal muestreada, donde la señal original se encuentra centrada en el origen, mientras que las copias atenuadas se ubican en los múltiplos de la frecuencia de muestreo. En caso de que disminuyera progresivamente la velocidad de muestreo, esto provocaría que las armónicas se acercaran unas con otras, hasta el punto en que los componentes espectrales se traslapen entre si, la distorsión que resulta se denomina interferencia de colas espectrales (aliasing). De acuerdo a la figura anterior la frecuencia límite en la que se produce interferencia corresponde a: Como la frecuencia de muestreo es igual al ancho de banda, entonces se obtiene finalmente: Que corresponde efectivamente a la velocidad de muestro de Nyquist que se comento inicialmente Cuantización En el proceso de cuantización se realiza una conversión de una señal de tiempo discreto y valor continuo a una señal de tiempo y valor discreto. Esto se logra efectuando previamente un proceso de redondeo a los valores continuos de la amplitud de la señal para generar un conjunto de valores fijos o niveles, por lo tanto se transforman un conjunto infinito de amplitudes en un conjunto finito de N amplitudes. Como consecuencia, después de la conversión la señal nunca podrá ser recuperada exactamente en su forma original aún en el 16

29 caso de que el ruido de transmisión sea nulo. El proceso de cuantización se puede dividir en dos técnicas generales, las cuales corresponden a cuantización uniforme y no uniforme Cuantización uniforme En este tipo de cuantización se determina un intervalo I en el cual oscila la señal de tiempo y valor continuo, dividiendo luego este intervalo entre el número de niveles de cuantización, el resultado obtenido corresponde al espaciamiento uniforme que se debe de presentar entre cada uno de los niveles de cuantización para el proceso de codificación Cuantización no uniforme En diferentes tipos de señales no se conoce con anticipación la amplitud máxima a la cual puede llegar la señal, además de que los niveles alcanzados pueden variar en forma aleatoria. Por lo tanto si en estos casos se utilizara cuantización uniforme se obtendrían errores considerablemente grandes. A partir de esto resulta necesario utilizar otra técnica de cuantificación llamada cuantización no uniforme, la cual consiste en asignar un espaciamiento pequeño entre niveles de baja amplitud y un espaciamiento grande entre niveles de mayor amplitud. Un ejemplo importante en que se utiliza esta técnica se presenta con la señal de voz, donde la intensidad puede variar en aproximadamente 40 db entre personas que hablan alto y bajo. Para efecto de cuantización no uniforme se utilizan dos técnicas distintas de compresión. La 17

30 primera se denomina compresión tipo ley µ, la cual se encuentra definida por la siguiente ecuación. Donde µ es una constante positiva, a la cual se le asigna un valor típico de 255, mientras que corresponde a la señal de entrada no cuantizada, y es la señal de salida cuantizada. Otra ley de compresión utilizada corresponde a la ley A; esta se define mediante: Tal que, mientras que A es una constante positiva, con un valor nominal de Codificación La codificación binaria es el proceso en el cual se transforma una señal de tiempo y valor discreto en secuencias de n impulsos binarios conocidas como grupos de codificación; donde a cada nivel de cuantización se le asigna un determinado grupo de codificación 18

31 distinto, obteniendo de esta forma la señal PCM. En la siguiente figura se muestra el mecanismo de generación de señales PCM, considerando cada una de las etapas involucradas en el proceso. Figura 2.5 Generación de señal PCM Técnicas de compresión de la información El proceso de compresión de la información consiste básicamente en un conjunto de técnicas que permiten transformar una secuencia de símbolos fuente en códigos claves, los cuales presentaran una longitud media de palabra menor con respecto a los símbolos originales. La codificación de los símbolos fuente esta determinada por un modelo, el cual consiste en la recolección de datos y reglas para procesar la información de entrada y determinar su correspondiente codificación. Por lo tanto, el modelo define las probabilidades para cada símbolo fuente, mientras que el codificador realiza una codificación adecuada de acuerdo con las probabilidades establecidas. Entonces, en el

32 proceso de compresión de datos la codificación corresponde a una etapa y no a todo el proceso. Dentro de las técnicas de compresión de datos se cuentan con dos familias: Técnicas de compresión sin pérdida, utilizadas cuando es imprescindible que se recupere toda la información, como es el caso de las cuentas bancarias, bases de datos, entre otras. Los tipos de compresión que se tienen con esta técnica consisten en técnicas de compresión estadísticas y basadas en diccionario. Técnicas de compresión con pérdida, utilizadas en los casos en que se permite cierta pérdida de información, asegurando a la vez que se pueda recuperar la mayor parte de la información procesada Técnicas de compresión estadísticas Estas técnicas de compresión utilizan las propiedades estadísticas de la fuente para realizar el proceso de codificación, esto al conocer de antemano la frecuencia de ocurrencia de cada uno de los símbolos del código original. Estas técnicas hacen uso de la redundancia de la información para efectuar la codificación, asignando codificaciones largas a aquellos símbolos que tienen menor frecuencia de aparición, y cortas a los símbolos que presentan una mayor frecuencia de aparición. Entre las más importantes se encuentran las siguientes. 20

33 Codificación Huffman El algoritmo fue desarrollo por David A. Huffman y publicado en el año 1952 en el documento "A Method for the Construction of Minimum-Redundancy Codes. La codificación Huffman consiste en un procedimiento sistemático para la construcción de códigos compactos, asignándole a cada símbolo fuente una secuencia de bits cuya longitud esté relacionada con la probabilidad de ocurrencia de ese símbolo. El algoritmo consiste en los siguientes pasos: 1. Al tener una secuencia de códigos fuente se realiza un ordenamiento de cada uno de los símbolos de acuerdo con las probabilidades, en sentido de mayor a menor probabilidad. 2. Luego se combinan los dos últimos símbolos menos probables para construir otro símbolo llamado símbolo de ayuda con una nueva probabilidad asociada. 3. Ubicar correctamente el símbolo de ayuda de acuerdo a su probabilidad con respecto a los otros símbolos fuente, para mantener el orden de mayor a menor probabilidad. 4. Formar otro símbolo de ayuda cuya probabilidad corresponde a la suma de las probabilidades de los símbolos anteriores menos probables, se repite el paso 3 para los dos símbolos que presenten menor probabilidad, creando un nuevo símbolo, hasta que se llegue a tener un único símbolos con probabilidad 1. 21

34 5. Una vez que se alcanzó a tener el símbolo, se obtiene un árbol con K nodos de terminación, los cuales presentan dos ramas, luego a cada rama le asigna un 0 o 1 respectivamente y se procede hacia atrás consecutivamente de manera que cuando dos símbolos hayan dado origen a un símbolo, estos mantendrán la codificación asignada por este símbolo, asignando un 1 para la codificación de uno de los símbolos y un 0 para la codificación del otro símbolo, construyendo de esta forma la palabra de código de cada símbolo fuente. Es importante que la manera escogida de colocar un 0 o 1 en cada uno de los nodos se aplique por igual en todos los casos, de lo contrario se obtendrán resultados erróneos. Un ejemplo a este método se muestra en la siguiente figura, donde se consideran cinco símbolos fuente con sus respectivas probabilidades. Figura 2.6 Ejemplo de codificación Huffman

35 Codificación Aritmética Esta técnica de codificación es diferente al resto de métodos de codificación fuente utilizados en la actualidad. Fundamentalmente, el algoritmo de codificación aritmética consiste en un proceso en el cual se construye una secuencia de intervalos de la forma, tal que S corresponde a la secuencia de símbolos fuente. En la codificación aritmética no se realiza una asignación de palabra de código a cada uno de los símbolos fuente, en lugar de eso se codifica una secuencia de símbolos fuente mediante un número representado en punto flotante, asignando a cada símbolo fuente un intervalo entre 0 y 1, de tal manera que la probabilidad de cada símbolo corresponde a la amplitud de su respectivo intervalo, creando de esta forma una lista original de símbolos. El número en punto flotante obtenido en la compresión se denomina valor de código por secuencia de entrada comprimida, el cual corresponde a un número real con únicamente dígitos fraccionales. Para efectos de interpretación se puede convertir el valor de secuencia a un valor de código con tan solo adherir un cero en el bit más significativo del valor de secuencia, aunque en realidad no siempre es necesario ya que se puede considerar la presencia de un cero imaginario al inicio de la secuencia codificada sin que esto afecte los resultados. Por ejemplo si se cuenta con: Este código se puede convertir al siguiente valor de código. 23

36 El cual representa al numero fraccional respectivamente. La representación del valor de código puede ser utilizada por cualquier sistema de codificación, además de proveer un método universal para representar grandes cantidades de información Proceso de codificación aritmética Resulta conveniente representar los intervalos considerando únicamente el punto de inicio o la base de cada uno de estos, además del ancho que debe presentar cada intervalo, adoptando de esta forma la siguiente notación. Los intervalos utilizados durante el proceso de codificación aritmética se encuentran definidos por las siguientes ecuaciones: De acuerdo con las ecuaciones anteriores se cumple que, mientras que. Donde representa la probabilidad asociada a cada símbolo, mientras que ) corresponde a la suma acumulativa de las probabilidades hasta el símbolo especificado, tal que: Básicamente el proceso de codificación consiste en seleccionar el primer símbolo de la cadena y asignarle el intervalo asociado de acuerdo con su probabilidad, posteriormente se selecciona el segundo símbolo de entrada y se determina el intervalo asociado a este, multiplicando la probabilidad acumulada hasta este símbolo por la longitud del intervalo asociado al símbolo anterior, para luego sumar los resultados al extremo inferior del 24

37 intervalo asociado al símbolo anterior, obteniendo de esta forma el nuevo limite inferior, luego para el calculo del limite superior únicamente es necesario multiplicar la probabilidad asociada al símbolo por la longitud del intervalo anterior y finalmente sumar el resultado al extremo inferior del intervalo anterior, este procedimiento se repite hasta que todos los símbolos se hayan procesado. Finalmente se escoge un valor que se encuentre dentro del último intervalo calculado, para que represente la secuencia que se va a enviar por el canal, lo ideal es que este valor presente un mayor número de decimales conforme mayor sea la información de los datos a comprimir. Para obtener la mejor representación del valor de trama es necesario considerar la cantidad mínima de bits requeridos para representarla. Esta cantidad de bits se calcula a partir de la longitud del último intervalo asociado, como se muestra en la siguiente ecuación Proceso de decodificación aritmética En el proceso de decodificación únicamente es necesario considerar el valor que represente la secuencia de símbolos comprimidos. Por lo tanto la secuencia de decodificación se puede representar como: En este proceso se recupera los símbolos de datos en la misma secuencia en que estos fueron codificados. De nuevo se hace uso de los intervalos asignados a cada símbolo antes del proceso de codificación, cuando el receptor le llega un número decimal en punto 25

38 flotante, este determina a que intervalo es que pertenece ese valor y al símbolo que le corresponde ese intervalo será el primer símbolo transmitido. Formalmente para encontrar una solución numérica se define una secuencia de valores de código, iniciando con el valor y se continúa secuencialmente para encontrar el símbolo asociado a respectivamente, y por último se realiza el cálculo del nuevo valor a partir del símbolo y valor anteriores. Las ecuaciones se muestran a continuación. El proceso se repite hasta que todos los símbolos del mensaje se hayan procesado. En realidad el valor del código corresponde a una secuencia infinita de símbolos, por lo tanto en el proceso de decodificación se puede realizar una decodificación infinita de una secuencia particular, entonces es indispensable indicarle al decodificador la cantidad de símbolos a decodificar, para esto se cuentan con dos métodos en los cuales se indica cuando debe detenerse el proceso. Estos corresponden a: 1. Proveer al decodificador el número de símbolos fuente al inicio de la compresión del archivo. 26

39 2. Utilizar un símbolo especial como fin del mensaje, el cual es codificado al final de la secuencia de datos y asignando a los símbolos con la probabilidad más pequeña permitida por el codificador y decodificador Ejemplo de codificación y decodificación aritmética Para realizar un ejemplo del algoritmo de codificación y decodificación aritmética es necesario considerar un conjunto de símbolos fuente con sus respectivas probabilidades asociadas, tomando en cuenta que el orden de estos símbolos puede ser aleatorio, pero una vez que ya se ha establecido un orden este debe mantenerse. Para el ejemplo se cuenta con 4 símbolos fuente, la distribución de las probabilidades es [ ], c = [ ], tal que la secuencia de símbolos que se codificara es S = {2, 1, 0, 3}. Inicialmente se ordenan los símbolos fuente como se muestra en la siguiente tabla. Tabla 2.1 Ejemplo de codificación y decodificación aritmética. Símbolos Probabilidad b k l k x 0 0,2 0,0 0,2 x 1 0,5 0,2 0,5 x 2 0,2 0,7 0,2 x 3 0,1 0,9 0,1 Utilizando las ecuaciones 2.4-1, 2.4-2, 2.4-3, se realizan los cálculos iterativos de acuerdo con la secuencia a codificar, como se muestra a continuación. 27

40 Finalmente se selecciona un valor que se encuentre dentro del último intervalo calculado, para que represente de forma única la secuencia de entrada de los símbolos fuente. En este caso el valor de trama se encuentra entre y 0.76 respectivamente. De acuerdo con la ecuación (2.4-4), se requiere de una cantidad de bits igual a: Para constituir la mejor representación binaria del valor de trama que será enviada por el canal. Para efectos de ejemplo se elije el siguiente valor de trama. En el proceso de decodificación es necesario conocer inicialmente el valor de trama transmitido por el canal. Una vez que inicia el proceso de decodificación se realiza una búsqueda en la tabla de símbolos originales el intervalo en el que se encuentra el valor 28

41 transmitido, para encontrar el primer símbolo fuente. De acuerdo con las ecuaciones y se encuentran los nuevos valores de trama con los que se obtienen los restantes símbolos fuente, como se muestra a continuación De los resultados obtenidos en los cálculos anteriores se muestra que la secuencia decodificada corresponde a S = {2, 1, 0, 3}, que es precisamente la secuencia codificada. 29

42 Codificación Shannon-Fano La codificación Shannon-Fano fue la primera técnica de compresión desarrollada para obtener códigos de prefijo. Fue desarrollada por C.E Shannon en el año A continuación se indicaran los pasos a seguir para realizar la codificación a partir de esta técnica. 1. El primer paso consiste en ordenar los símbolos fuente de mayor a menor frecuencia de aparición. 2. Luego se deben separar el conjunto de símbolos en dos subgrupos de manera que la suma de las frecuencias de cada mitad sea lo más semejante posible. Si se lograra obtener dos subconjuntos con un 50% de probabilidad esto seria lo ideal. 3. Los símbolos en el primer subconjunto se les asigna un código que empieza con 1, indicando mayor probabilidad que el segundo subconjunto, seguido a esto es necesario asignarles la cantidad binaria de acuerdo a como estos encuentren ordenados, considerando que esta cantidad se encuentra ordenada de mayor a menor probabilidad, alcanzando de esta forma la codificación del primer subgrupo. Mientras que para el segundo subconjunto únicamente es necesario asignarles un El segundo subconjunto es dividido en dos, considerando de nuevo que la suma de las frecuencias de cada mitad sea lo mas cercana posible. 5. De igual forma a lo planteado en el tercer y cuarto paso se procede de la misma manera en este punto, hasta que se logre codificar todos los símbolos fuente. 30

43 En la siguiente figura se muestra un ejemplo del proceso de codificación de Shannon-Fano para un alfabeto de siete símbolos. Figura 2.7 Ejemplo del proceso de codificación Shannon - Fano 5 Entre mejor sea la división realizada entre los símbolos, mejores resultados se obtendrán y esto se logra cuando la división es lo mas pareja posible. Cuando los dos subconjuntos iníciales tienen la misma proporción se produce un código con el mínimo tamaño promedio alcanzando una redundancia de cero. Este método produce mejores resultados cuando el símbolo tiene probabilidades de ocurrencia que son potencias de dos Codificación Predictiva Con esta técnica se busca predecir la siguiente información de entrada de acuerdo a la información que se ha procesado con anterioridad, en caso de que el mensaje de la entrada actual coincida con el predicho la codificación se realizara con una menor cantidad de bits, en caso contrario se hará con una cantidad mayor de bits. A diferencia de las técnicas

44 anteriores esta es adaptiva y más rápida, tanto para codificación como para decodificación. Cuando se presenta mucha redundancia, esta técnica no es eficiente, así que en la práctica se suele utilizar en conjunción con otras técnicas de compresión para tratar los casos en que hay excesiva redundancia. En las siguientes figuras se muestran los componentes de un sistema de codificación predictiva. Este sistema esta compuesto por un codificador y decodificador, los cuales tienen un predictor idéntico. sucesivamente cada símbolo de entrada representado por Conforme se va introduciendo, en el codificador, el predictor genera el valor anticipado de cada símbolo en función de la información de entrada anterior. La salida del predictor se redondea después al entero más cercano, representado por, y se utiliza para construir el error de predicción, el cual se codifica utilizando un código de longitud variable para generar el siguiente elemento del flujo de datos comprimidos. Figura 2.8 Codificador predictivo 32

45 El decodificador reconstruye la información comprimida a partir de las palabras código de longitud variable y realiza la operación inversa. Figura 2.9 Decodificador predictivo Técnicas de compresión basadas en diccionario Estas técnicas de compresión están basados en los métodos de codificación desarrollados por Jacob Ziv y Abraham Lempel en los años 70`s. En estas técnicas se remplazan las cadenas de datos por palabras de código que identifican a una cadena determinada dentro de un diccionario, el cual contiene una lista de subgrupos de cadenas y palabras de código relacionadas a cada una de ellas, este diccionario puede ser estático o dinámico. En estas técnicas se utilizan palabras de código de longitud fija, además de que la codificación no depende de las estadísticas de los símbolos. 33

46 Codificación Run length Esta técnica busca secuencias consecutivas de caracteres en que la ocurrencia es de tres o más caracteres iguales. Cuando se presenta esta secuencia, esta se sustituye por un carácter especial, el cual indica la compresión y almacena en un byte, luego se tiene la cantidad de caracteres que se comprimen los cuales se almacenan en otro byte. Este método tiene gran eficiencia cuando se presenta un alto número de repeticiones continuas de un determinado símbolo, pero en caso contrario resultaría muy ineficiente su utilización. Cuando llegan el conjunto de datos al receptor, este identifica el carácter especial, el cual indica que se ha realizado la compresión, posteriormente se recibe el símbolo que indica cuantos caracteres fueron comprimidos, permitiendo de esta forma reconstruir la secuencia original Codificación LZ77 Esta técnica de codificación se aplica en gran cantidad de modelos de compresión pues tiene tantas decisiones de diseño que cada uno es implementado de manera distinta. Básicamente en esta técnica se mantiene un registro de los últimos caracteres procesados de la entrada, el algoritmo se encuentra procesando en un punto de la entrada la cantidad de caracteres anteriores que forman la historia del algoritmo ó ventana, la cual se divide en dos partes, la parte de la izquierda se llama buffer de búsqueda y es el diccionario actual, y la parte de la derecha se llama buffer hacia el frente y contiene símbolos aun no codificados. 34

47 Figura 2.10 Diccionario del método de compresión LZ77 6 En el proceso de codificación se busca la cadena más grande en el buffer de búsqueda de derecha a izquierda, que sea el prefijo del buffer hacia el frente, donde pueden dar los siguientes eventos: Si la cadena existe, la codificación consiste de una tripleta T = (O, L, C), donde O es la distancia en símbolos desde inicio de la cadena encontrada hasta el final del buffer de búsqueda, L es la longitud de la cadena encontrada y C es el símbolo siguiente a la cadena encontrada en el buffer hacia el frente. Si la cadena no existe, O y L son puestos a cero y C es el primer símbolo del buffer hacia el frente (en la figura 2. 4, el símbolo ak+n+1). Finalmente en el proceso de codificación los buffers se recorren hacia la izquierda L + 1 posiciones. En la práctica, el buffer de búsqueda es de algunos cientos de bytes mientras que el buffer hacia el frente es de decenas de bytes. Para el proceso de decodificación se lee la tripleta T = (O, L, C). En el caso en que L presente un valor de cero se siguen los siguientes pasos: C se escribe al archivo de salida 35

48 El buffer se recorre a la izquierda una posición y se rellena con C Para el caso en que L es distinto de cero, se tiene entonces: La cadena S en el buffer iniciando en la posición O, contando de derecha a izquierda y de longitud L se copia al archivo de salida. C se escribe al archivo de salida El buffer se recorre L posiciones a la izquierda, se rellena con la cadena L. El buffer se recorre 1 posición a la izquierda y se rellena con el símbolo C Codificación LZ78 Esta técnica no utiliza una ventana sobre los datos a comprimirse, en lugar de eso cuenta con un diccionario que contiene las cadenas que han ocurrido previamente. El diccionario inicialmente se encuentra vacío y para inicializarse únicamente guarda en la posición cero la cadena vacía, su tamaño esta limitado por la memoria disponible. Para ilustrar la forma en la que el método funciona, considérese un arreglo lineal de N localidades con la capacidad de almacenar una cadena de símbolos en cada una de ellas. El proceso de codificación es iterativo y termina cuando ya no existen más símbolos de entrada. En cada iteración S se inicializa a Null, indicando que una cadena vacía esta siempre en la posición cero del diccionario. El símbolo X del archivo de entrada se lee y se busca la cadena S X en el diccionario, si la cadena se encuentra en el diccionario, S es ahora S X y se lee un nuevo símbolo X. Seguidamente se busca S X en el diccionario y si la cadena se encuentra, se 6 Miguel Morales Sandoval, Notas sobre compresión de datos, Diciembre 2003, p.8 36

49 vuelve a leer otro símbolo de entrada y el proceso se repite buscando nuevamente S X en el diccionario. Si la cadena S X no se encuentra en el diccionario, se guarda la cadena S X en una posición disponible en el diccionario y se escribe al archivo de salida la posición de S dentro del diccionario y el símbolo X. La representación del diccionario puede ser una estructura de árbol llamada, el cual se compone únicamente de un nodo raíz que representa la cadena vacía. Todas las cadenas que comienzan con la cadena vacía se agregan al árbol como hijos de la raíz. Cada uno de los símbolos que son hijos de la raíz se convierten ahora en la raíz de un subárbol para todas las cadenas que comienzan con ese símbolo. En la siguiente figura se muestra la representación en forma de árbol. Figura 2.11 Diccionario LZ78 como un árbol 7 La representación de árbol tiene dos ventajas principales: la asignación de memoria se realiza conforme nuevos símbolos se agreguen al árbol y la búsqueda de cadenas se realiza más rápido. Cuando el espacio de memoria asignado se agota, las nuevas cadenas ya no se agregan pero el árbol aún sirve para continuar con la codificación. El árbol puede vaciarse 7 Miguel Morales Sandoval, Notas sobre compresión de datos, Diciembre 2003, p.10 37

50 por completo y reiniciar una construcción con los nuevos símbolos de entrada o se pueden eliminar del árbol solo aquellas cadenas que sean menos utilizadas. El decodificador debe construir y mantener el diccionario de la misma forma que lo realizo el codificador. CAPÍTULO 3: Microcontrolador MC68HC Introducción En este capitulo se realiza una descripción general de la arquitectura y de los recursos internos de la serie E de los microcontroladores MC68HC11, sin tomar en cuenta los detalles de operación de cada uno de los subsistemas del microcontrolador para esta serie. 38

51 3.2 Descripción general del microcontrolador El MC68HC11 es un microcontrolador de 8 bits, fabricado con tecnología HCMOS, a una alta escala de integración. Esto le permite operar en un amplio rango de frecuencias que van desde los 3 MHz hasta un nivel dc en la señal del bus; alcanzando niveles bajos en el consumo de energía, además de una alta inmunidad al ruido. Presenta una gran cantidad de subsistemas internos como lo son el convertidor analógico digital, interfaz de comunicación, temporizadores, puertos de entrada y salida, entre otros. Cuenta con un amplio conjunto de instrucciones y registros internos para la programación, lo cual facilita su manejo, haciéndolo flexible para que pueda ser utilizado en gran variedad de aplicaciones. 3.3 Familia MC68HC11 Motorola fabrica una amplia variedad de modelos del microcontrolador MC68HC11. Básicamente las diferencias entre cada uno de los miembros de la familia radica principalmente en la cantidad disponible del espacio de memoria que se cuenta para memoria RAM, ROM, EPROM y EEPROM, además de la presencia de diferentes subsistemas internos que contiene cada miembro en particular. Estos se muestran en la siguiente tabla, en la cual se consideran los modelos más importantes que componen esta familia de microcontroladores. 39

52 Tabla 3.1 Familia del microcontrolador MC68HC Estructura del microcontrolador En la siguiente figura se muestra el diagrama de bloques de la arquitectura que presentan los microcontroladores MC68HC11. En este diagrama se considera cada uno de los distintos subsistemas que conforman la estructura del microcontrolador, así como la conexión presente entre cada uno de los diferentes sistemas internos a partir de las líneas de control, el bus de datos y el bus de direcciones. Por otro lado se puede observar que este 8 Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p. 40

53 microcontrolador cuenta con una gran cantidad de pines externos, los cuales comunican este dispositivo con el mundo exterior. Con esta descripción se busca brindar una perspectiva general del hardware del microcontrolador, y de sus salidas directas al exterior a través del encapsulado, a lo largo del desarrollo del capítulo se describirán con mas detalle los bloques utilizados en el proyecto. Figura 3.1 Diagrama de bloques de la serie E Unidad de procesamiento central del MC68HC11 En esta sección se realiza una descripción de cada una de las partes ligadas a la programación, además de los tipos de datos que puede manejar el microcontrolador, así como también los métodos con los que cuenta la CPU para obtener los operandos que se encuentran ubicados en una determinada posición de memoria. 41

54 3.5.1 Tipos de datos El MC68HC11 maneja 4 tipos distintos de datos, los cuales corresponden a: 8 bits y 16 bits para números enteros con signo o sin signo, 16 bits para números fraccionarios sin signo, 16 bits para direcciones y finalmente 1 bit de datos Registros de la CPU El MC68HC11 tiene en total con siete registros internos, localizados dentro de la unidad central de proceso. Figura 3.2 Registros del modelo de programación 10 Estos registros no pueden direccionarse como si se trataran de posiciones de memoria particulares Registros acumuladores La CPU del microcontrolador cuenta con dos registros acumuladores llamados A y B de 8 bits cada uno, estos registros son de propósito general, por lo tanto son indispensables para 9 Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p.65 42

55 la programación ya que son utilizados en la manipulación de datos, almacenamiento de resultados de operaciones aritméticas, operandos, entre otros. Estos dos acumuladores se concatenan para conformar el registro acumulador D, que presenta un tamaño de 16 bits, siendo el acumulador A la parte más significativa y el acumulador B la parte menos significativa de este registro Registros índices Se dispone de dos registros índices denominados IX y IY, los cuales presentan una longitud de 16 bits cada uno. Estos registros son utilizados para el direccionamiento indexado de una localidad de memoria, en un rango de 64 kbytes, con solo agregar un offset para producir el desplazamiento requerido. A pesar de que ambos registros son iguales, no comparten las mismas funciones específicas. El registro IX es utilizado como un registro auxiliar en operaciones de división, mientras que el registro IY no es utilizado en ninguna operación aritmética, pero el conjunto de instrucciones que hacen uso de este registro, necesitan un byte y un ciclo de reloj mas para la ejecución de la instrucción, debido a que las instrucciones exceden la pagina principal de instrucciones y por lo tanto necesitan un byte mas para la codificación Puntero de pila La CPU cuenta un registro llamado puntero de pila (SP por sus siglas en ingles: stack pointer, el cual tiene un tamaño de 16 bits, y almacena cualquier dirección del espacio de 43

56 memoria donde se encuentra apuntando. Este registro debe ser inicializado por el programador al inicio del programa, donde se define el área de memoria del stack pointer. Cuando se introduce un dato en la dirección en que esta apuntando, se decrementa en 1 la dirección que almacena, de tal manera que quede apuntando a la próxima dirección inferior. El proceso es contrario cuando se saca un dato, ya que el stack pointer queda apuntando a la próxima localidad superior. Cuando se presentan llamados a subrutinas dentro de un programa, se almacena dentro del área del stack la dirección de la instrucción que se encuentra después de la instrucción de salto, luego cuando finaliza la ejecución de la subrutina se carga automáticamente la dirección de la siguiente instrucción para que sea ejecutada, asegurando de esta forma que el programa no salte a posiciones de memoria desconocidas. Por otro lado cuando se presenta un proceso de interrupción se realiza el mismo proceso anterior, solamente que en este caso se cargan todos los valores de los registros de la CPU en el área del stack antes de atender la interrupción. Luego de finalizada la atención a la interrupción se regresan todos los valores a los registros asegurando de esta forma que no sean afectados, y el programa continua con su ejecución en el lugar donde fue interrumpido Contador de programa El MC68HC11 dispone de un registro de 16 bits llamado contador de programa (PC por siglas en ingles: program counter), el cual almacena la dirección de la próxima instrucción 44

57 a ser ejecutada. El PC se va incrementando durante la ejecución de la instrucción y finalmente el registro contiene la dirección que apunta a la siguiente instrucción Registro de Banderas (CCR) Este registro de banderas (CCR por sus siglas en ingles: Condition Code Register), tiene la función de almacenar información importante para la programación, relacionada al contenido del acumulador y el estado de la CPU. Para el MC68HC11 el registro de estado cuenta con 8 bits, de los cuales 5 bits retienen información acerca del resultado de la ultima operación realizada, estos corresponden a C, V, Z, N y H, luego se tiene un bit global de habilitación de interrupciones enmascarables I, un bit de habilitación de requerimiento de interrupción no enmascarable X, y por ultimo un bit de deshabilitación del modo STOP. A continuación se realiza una descripción de cada una de las banderas que tiene el CCR. Bandera de signo (N) Esta bandera es utilizada para verificar si el resultado obtenido es negativo, esto al observar el bit más significativo, luego de que se realizo una operación aritmética, de manipulación de datos o lógica. Este bit representa el signo del número si se interpreta como un número en complemento a dos. Bandera de rebase (V) Esta bandera sirve para detectar condiciones de rebase en operaciones aritméticas con signo. Bandera de cero (Z) 45

58 Esta bandera sirve para detectar la condición de resultado cero después de realizada una operación aritmética, de manipulación de datos o lógica. Bandera de acarreo (C) La bandera C se utiliza como una extensión de los acumuladores para almacenar el rebase que se genera después de realizar una operación aritmética ya que se supera la capacidad de 8 bits para representar el resultado. También se utiliza para conectar en lazo, el digito mas significativo y el menos significativo de cada uno de los acumuladores con tan solo utilizar las instrucciones de corrimiento y rotación. Bandera de acarreo intermedio (H) Esta bandera es puesta en alto cuando se produce un acarreo entre los bits 3 y 4, cuando se realiza una operación aritmética, en caso contrario la bandera es limpiada. Bandera de enmascaramiento de interrupción (I) Este bit es una máscara global de solicitudes de interrupción para los sistemas internos del microcontrolador. Cuando este bit esta en 1, deshabilita todas las fuentes de interrupción enmascarable, y en caso de que exista una solicitud de interrupción, esta queda pendiente, y el microcontrolador continúa ejecutando el programa sin atender la interrupción, hasta que este bit sea limpiado. Bandera de interrupción (X) Este bit enmascara el requerimiento de una interrupción en la línea XIRQ, en caso de que se encuentre en 1, deshabilita las interrupciones de esta entrada. Cuando una interrupción XIRQ es reconocida, los bits X e I son puestos en 1, después de que los registros son guardados, y posteriormente se salta a la rutina de atención 46

59 Bandera de STOP (S) Esta bandera es utilizada para deshabilitar el modo STOP, con solo poner un 1 en la bandera S, asegurando de esta forma que el microcontrolador trabaje en condición de bajo consumo con tan solo ejecutar la instrucción STOP Modos de direccionamiento Este microcontrolador cuenta básicamente con 6 modos de direccionamiento, los cuales se describen a continuación Direccionamiento inherente Este direccionamiento se refiere a los operandos que están almacenados en los registros internos del modelo de programación de la CPU. La misma instrucción indica de donde se deben de tomar los operandos. Estas instrucciones son de 1 byte Direccionamiento inmediato En este tipo de direccionamiento se busca un operando de 1 o 2 bytes que viene con la instrucción de la CPU, por lo tanto el operando es parte de la instrucción y se encuentra almacenado en memoria principal. Las instrucciones con este modo de direccionamiento son de 2 bytes. 47

60 Direccionamiento directo y extendido En estos modos de direccionamiento, un operando se lee o guarda en la memoria principal. Si se utiliza una dirección de un byte, el tipo de direccionamiento es directo, en caso de que la dirección sea de 2 bytes el tipo de direccionamiento es extendido, esto para especificar adecuadamente la posición de memoria Direccionamiento indexado Con este direccionamiento, un operando se lee o guarda en la memoria principal. La forma de ubicarse en una localidad de memoria se da por medio de los registros índices, donde el contenido de cada uno de estos registros corresponde a una dirección de memoria para localizar el operando, pero además de esto es necesario considerar un desplazamiento sin signo, para obtener la dirección efectiva Direccionamiento relativo Este direccionamiento es usado por instrucciones de saltos condicionales y saltos a subrutinas. En caso de que se realice el salto se considera un desplazamiento +127 y -128 posiciones de memoria desde la instrucción de salto respectivo. 48

61 3.6 Puertos de entrada/salida del microcontrolador La serie E de los microcontroladores cuentan con 5 puertos de entrada y salida, 4 de estos puertos presentan 8 líneas, mientras que un puerto presenta 6 líneas. Cada uno de estos puertos comparten funciones con otros procesos dependiendo del modo de operación Puerto A El puerto A se encuentra mapeado en la posición de memoria $1000, cuenta con 3 pines de entrada y 3 pines de salida, además de dos pines bidireccionales que pueden ser configurados para utilizarlos como pines de entrada o salida respectivamente. Este puerto comparte funciones con el sistema temporizador. Figura 3.3 Registro de datos del puerto A Puerto B Este puerto se encuentra mapeado en la posición de memoria $1004. Los 8 bits que presenta son únicamente bits de salida, pero dependiendo del modo de operación en que se trabaje estos son utilizados para aplicaciones distintas. Por ejemplo para el modo de operación simple, el puerto es utilizado como un puerto de salida, mientras que en el modo 11 Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p.98 49

62 de operación expandido este se utiliza con bus de la parte alta de las direcciones. El registro de datos para el puerto B se muestra en la siguiente figura. Figura 3.4 Registro de datos del puerto B para distintos modos de operación Puerto C Este puerto a diferencia de los anteriores puede ser configurado para utilizarlo como puerto de entrada o puerto de salida en sus 8 pines. Esto se logra en la programación, con solo configurar los bits del registro DDRC que se encuentra ubicado en la posición de memoria $1007, por lo tanto un 0 en un bit de este registro configura el pin correspondiente para entrada, mientras que en un 1 lo configura para salida. Esto siempre y cuando se trabaja en modo simple, ya que en modo expandido este puerto es utilizado como el bus de datos multiplexado con la parte baja del bus de direcciones. Tanto el registro DDRC como el registro del puerto C se muestran en las siguientes figuras. 12 Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p.99 50

63 Figura 3.5 Registro de datos del puerto C para distintos modos de operación 13 Figura 3.6 Registro DDRC Puerto D El puerto D presenta únicamente seis pines, los cuales pueden ser configurados como pines de entrada o pines de salida, con tan solo asignar ceros o unos a los bits correspondientes del registro DDRD, es básicamente el mismo proceso que se realiza para la configuración del puerto C. Por otro lado este puerto comparte funciones con el SCI y el SPI para la comunicación serial. 13 Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p.99 51

64 Figura 3.7 Registro de datos del puerto D 15 Figura 3.8 Registro DDRD Puerto E El MC68HC11 cuenta con un puerto E, mapeado en la posición de memoria $100A. Es un puerto de entrada, que comparte funciones con el convertidor analógico digital, por lo tanto cuando se requiera utilizar este puerto como un puerto de entrada es necesario asegurar que el convertidor se encuentre apagado, que por defecto lo esta. Figura 3.9 Registro de datos del puerto E Convertidor analógico-digital (A/D) El convertidor analógico digital convierte señales analógicas en valores digitales de 8 bits de resolución, mediante una técnica similar a la de aproximaciones sucesivas. Utiliza los pines del puerto E como canales analógicos de entrada. Las señales analógicas de entrada 14 Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p

65 pueden ser bipolares en código binario desplazado, alcanzando valores de -128 a +127, o unipolares en código binario sin signo, obteniendo valores que van desde 0 a 256. El sistema del convertidor se puede sincronizar por medio de un oscilador interno de tipo RC, o por el reloj interno. Figura 3.10 Diagrama de bloques del convertidor analógico digital 18 De acuerdo con el diagrama anterior, el sistema convertidor analógico digital se puede dividir en los siguientes bloques funcionales: control del convertidor A/D, multiplexor analógico, convertidor A/D y los registros de almacenamiento de las conversiones realizadas. 17 Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p

66 Con respecto al proceso de conversión, la primera etapa a tomar en cuenta corresponde al multiplexor analógico, el cual se encarga de seleccionar una de las posibles 8 entradas analógicas. Para controlar la acción del multiplexor se utiliza el registro de control ADCTL con sus bits CD, CC, CB, CA. Seguidamente en el proceso se cuenta con el convertidor A/D, en esta etapa se realiza la conversión del valor analógico muestreado, utilizando la técnica de aproximaciones sucesivas. Luego de realizada la conversión, el resultado se almacena en el registro de aproximaciones sucesivas (SAR por sus siglas en ingles. Successive Approximation Register). Después de almacenada la conversión en el registro SAR, esta se envía a uno de los cuatro registros de resultados denominados ADR1, ADR2, ADR3 y ADR4, los cuales presentan un tamaño de 8 bits cada uno. El control de todas las tareas asignadas al convertidor A/D se controlan por medio del registro ADTL. El tiempo estimado en que se realiza una conversión se encuentra entre los 32 ciclos de reloj del bus, siempre y cuando esta frecuencia presente un valor mayor a los 0.75 MHz, en otro caso la frecuencia es tomada de una señal producida por un circuito interno RC, el cual se activa al poner en cero la bandera CSEL del registro OPTION. El método de conversión consiste en secuencias de 4 conversiones que se toman de 4 canales analógicos adyacentes. 18 Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p.58 54

67 Figura 3.11 Secuencia de conversión del convertidor analógico digital Registros del convertidor A/D El convertidor A/D cuenta con dos registros de control, y cuatro registros de resultados de conversión, cada uno de estos se explica en detalle a continuación Registro OPTION Este registro se encuentra mapeado en la posición de memoria $1039, y es el encargado de encender el convertidor A/D, al poner en alto el bit 7 de este registro, llamado ADPU, por lo tanto es el programador quien lo debe de activar. Cuando se pone la bandera ADPU en alto es necesario esperar un pequeño lapso de tiempo para que se pueda utilizar correctamente el convertidor. En caso de que la frecuencia del bus sea menor a 0.75 MHz, resulta necesario modificar la frecuencia del bus para realizar el proceso de conversión. 19 Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p.59 55

68 Para alcanzar esta condición de funcionamiento se utiliza el circuito interno RC, el cual se activa poniendo en alto la bandera CSEL de este registro, donde se genera una frecuencia propia de aproximadamente 2 MHz, en caso contrario se maneja la velocidad del bus. Figura 3.12 Registro OPTION Registro ADCTL Este registro se encarga de controlar exclusivamente el convertidor A/D, esta conformado por 8 bits, de los cuales 7 son utilizados como banderas de control. Se encuentra mapeado en la posición de memoria $1030, en la siguiente figura se muestra la asignación hecha por el fabricante a cada uno de los bits que contiene, así como también del nombre respectivo de cada bandera. Figura 3.13 Registro ADCTL Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p.62 56

69 A continuación se realizara una breve explicación de la función que desempeña cada una de las banderas del registro de control ADCTL. Bandera CCF Este es un bit de solo lectura, y se pone en alto cuando se presenta un dato valido en los registros de conversión. Para ponerlo a cero basta con sobrescribir en este registro, indicando que se inicia otra conversión, en caso de que el convertidor trabaje en modo discreto. Si el convertidor trabaja en modo continuo la puesta en nivel bajo de esta bandera hace que se abandone la conversión en proceso, para iniciar otra nueva conversión. Bandera SCANF Con esta bandera se controla el modo de operación en que trabaja el convertidor A/D. Si la bandera esta en nivel alto, se realizan conversiones continuamente, y los resultados son actualizados constantemente en los registros de conversión. En caso contrario, el convertidor realizara únicamente cuatro conversiones. Bandera MULT Con esta bandera se realiza el control de conversión de múltiples canales o un canal sencillo. Para realizar una conversión consecutiva de cuatro canales seleccionados únicamente es necesario poner en alto esta bandera, y el resultado de la conversión se almacena en el registro correspondiente al canal. Cuando esta bandera es puesta en bajo, el convertidor únicamente realiza la conversión de la señal analógica que ingresa por uno de los ocho canales, el cual se selecciona a partir de los bits CD, CC, CB y CA. 57

70 Banderas CD, CC, CB, CA Estas banderas cumplen una función muy importante, ya que a partir de ellas se selecciona el canal o el conjunto de canales en los cuales se va capturar la señal analógica para su conversión respectiva. En caso de que la bandera MULT este en alto, únicamente los bits CD y CC van a seleccionar el grupo de canales analógicos, por otro lado cuando MULT esta en nivel bajo, a cada una de las cuatro banderas tienen efecto, ya que se selecciona un canal entre los disponibles. En la siguiente tabla se muestra la asignación realizada por el fabricante para la selección de los canales. Tabla 3.2 Asignación de canales Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p.63 58

71 Registros de resultados del convertidor A/D En estos 4 registros se almacena el resultado de 8 bits, de cada una de las conversiones realizadas; donde la bandera CCF se pone a uno indicando que la conversión se ha completado. Estos registros están mapeados a partir de la dirección $1031 hasta $ Comunicación serial asincrónica (SCI) La serie E de los microcontroladores 68HC11 tienen una interface de comunicaciones serie (SCI por sus siglas en ingles: Serial Communication Interface). Esta conformada por una transmisor/receptor universal serie asíncrona (UART), el receptor y el transmisor son independientes, pero trabajan bajo el mismo formato y velocidad, permitiendo comunicaciones bidireccionales. Las comunicaciones asíncronas se pueden realizar a distintas velocidades, con 8 o 9 bits de datos, los paquetes mandados tienen un bit de inicio y un bit de parada para indicar el final del paquete de información. Para que el formato de transmisión y recepción de datos sea correcto se deben de satisfacer los siguientes requerimientos: un bit de inicio en bajo recibido o transmitido, que indique el inicio de cada carácter, un bit de parada en alto para indicar el fin de la palabra transmitida, por otro lado el dato se recibe o transmite iniciando con el bit menos significativo, tomando en cuenta que la línea debe estar en estado alto antes de la transmisión o recepción. 59

72 3.8.1 Operación de transmisión El sistema de transmisión del lo representa el fabricante por medio de la siguiente figura. Figura 3.14 Diagrama de bloques para el sistema de transmisión 23 En la figura se observa que el sistema cuenta con un registro paralelo llamado SCDR, cuya función es transmitir datos, además cuenta con un registro de corrimiento serie llamado Shift Register, el cual puede ser escrito únicamente por el registro de transmisión. El proceso de transmisión consiste en escribir el dato en el registro SCDR, para que luego este se escriba en el registro de corrimiento, y de esta forma sea enviado por medio de la línea 23 Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p

73 TxD bit a bit. Esto permite una doble operación, ya que mientras un dato esta siendo enviado, otro dato esta siendo escrito en el registro SCDR, para ser transferido Operación de recepción En este proceso inicialmente el registro de corrimiento recibe el dato bit a bit de la línea RxD, para luego transmitirlo al registro SCDR, y pueda ser leído. Figura 3.15 Diagrama de bloques para el sistema de recepción Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p

74 3.8.3 Registros de la interfaz de comunicación serial El sistema SCI dispone de cinco registros asociados al puerto de comunicaciones asincrónico. Únicamente un registro se encarga de almacenar el dato a transmitir o recibir, mientras que otro proporciona el estado del puerto serie, por ultimo se cuenta con tres registros de control del sistema Registro BAUD Con este registro se configuran las velocidades de transmisión y recepción del sistema SCI, cuya unidad de medida es el baudio. Figura 3.16 Registro BAUD 25 La velocidad se selecciona por las banderas SCP2 y SCP1, las cuales asignan una velocidad base, esta puede ser modificada por la configuración que presenten las banderas SCR2, SCR1, SCR0. Las banderas TCLR y RCKB deben permanecer en bajo, ya que estas son usadas por el fabricante. En la siguiente tabla se muestra la división de la velocidad de acuerdo a la codificación de las banderas de este registro. 25 Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p

75 Tabla 3.3 Valores de baud-rate Registro SCCR1 Con este primer registro de control se selecciona el tamaño de datos, además del tipo de transmisión que se va a realizar. Figura 3.17 Registro SCCR Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p

76 Usualmente los datos presentan un tamaño de 8 bits, pero el tamaño se puede seleccionar de acuerdo al estado de la bandera M. Si esta bandera está en bajo se manejan datos de 8 bits, mientras que si está en alto, los datos presentan un tamaño de 9 bits. En caso de que se presente esta última condición, el noveno bit se escribe o lee de los bits T8 y R Registro SCCR2 Con este registro se configura el proceso de transmisión y recepción del sistema de comunicación serie asincrónico. Figura 3.18 Registro SCCR2 28 A partir de las banderas TE y RE se habilita la transmisión y recepción de datos, al estar estas banderas en alto. Si se presentara esta condición los pines 1 y 0 del puerto D serían utilizados como señales Rx y Tx para establecer la comunicación serie. Las banderas TIE y TCIE son mascaras que permiten que las interrupciones de transmisión ocurran. Para el caso en que TIE este en alto se permite la interrupción de transmisión, y con TCIE en alto se enmascara la interrupción cuando se ha quedado vacía la línea. De igual manera para el proceso de recepción se cuenta con las banderas RIE e ILIE, para enmascarar interrupciones. Si RIE esta en alto se habilita la interrupción que indica la recepción de un 28 Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p

77 dato; para el caso de ILIE se habilita la interrupción cuando la línea de recepción se ha quedado vacía, siempre y cuando esta bandera este en alto. De acuerdo con la bandera SBK se mandan señales de BREAK, en caso de que esta bandera este en alto. Finalmente si la bandera RWU esta en nivel alto, habilita el modo especial WAKE-UP Registro de estado Es un registro de solo lectura, muestra el estado en que se encuentra el sistema de comunicación serie asincrónico. Figura 3.19 Registro de estado 29 Los bits TDRE y TC son banderas de transmisión. Cuando TDRE esta en nivel alto indica que un dato se ha enviado exitosamente y la el registro de transmisión esta vacio. Cuando la línea de transmisión se ha quedado vacía y se ha terminado de enviar un dato, la bandera TC inmediatamente se pone en alto; estas banderas corresponden a los bits de estado asociado de las banderas TIE y TCIE del registro SCCR2, para el proceso de interrupciones en la transmisión. La función de cada una de las banderas RDRF y IDLE es análoga a las anteriores, ya que en caso de que se haya recibido un dato nuevo en el registro de recepción la bandera RDRF se pone en alto, mientras que la bandera IDLE se pone en alto cuando se 29 Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p

78 detecta que la línea de recepción se ha quedado vacía, estas banderas son los bits de estado asociado de las bandera RIE e ILIE para el proceso de interrupciones en la recepción. La bandera OR se pone en alto cuando se ha recibido un carácter por el puerto serie y el anterior dato recibido todavía no se había leído. Por otro lado la bandera NF se activa cuando se ha detectado un error en el dato que se acaba de recibir, mientras que sea bandera FE se activa cuando se ha detectado un error en la trama enviada Registro de datos El registro de datos es un registro paralelo ya que ejecuta las funciones de transmisión y recepción en caso de que se haya escrito o leído en el registro, esto a una velocidad y configuración establecida. Este registro se encuentra mapeado en la posición de memoria $102F. 3.9 Comunicación entre el PC y el microcontrolador MC68HC11 La familia de microcontroladores MC68HC11 cuenta con un modo de funcionamiento llamado bootstrap, el cual permite cargar programas a la memoria RAM, ROM, EPROM o EEPROM del 68HC11 por medio de la interfaz de comunicación serial. El MC68HC11 presenta tres modos de operación más, los cuales corresponden a: single chip, expanded y special test, conformando en total cuatro modos de operación distintos. El modo activo se puede determinar por medio de los bits de control MDA y SMOD que se encuentran en el 66

79 registro de control HPRIO y los pines de entrada MODB y MODA. En la siguiente tabla se muestra como se selecciona un modo de operación, de acuerdo al estado de los bits de control y los pines de entrada. Tabla 3.4 Selección del modo de operación 30 Una vez que se ha seleccionado el modo bootstrap, el vector de reset apunta a la dirección donde se encuentra una pequeña memoria ROM llamada bootstrap ROM, donde en esta memoria se encuentra almacenado el programa encargado de controlar el proceso de iniciación. Este consiste en inicializar el SCI, tal que el primer carácter recibido determina cual de los dos posibles valores de velocidad deben ser utilizados, luego el programa es recibido por la interfaz de comunicación para almacenarla en la memoria respectiva que seleccione el programador; finalmente se realiza un salto para transferir el control al programa cargando por el usuario al microcontrolador, después de que se ejecuto una reposición en el sistema. 30 Freescale semiductor, MC68HC11E Family Data Sheet, July 2005, p

80 3.10 Tarjeta Adapt11C24DX La tarjeta Adapt11C24DX pertenece a una familia de tarjetas que fueron diseñadas para adaptar los microcontroladores MC68HC11, considerando toda la circuitería necesaria para poner a funcionar el microcontrolador, tal como el circuito de reloj y de reset, un interruptor que permita modificar el modo de operación, un regulador de 5 V, y uno de los aspectos más importantes corresponde a la interfaz de comunicación serial. En la siguiente figura se muestra la arquitectura que presenta esta tarjeta con cada uno de los componentes que brinda el fabricante. Figura 3.20 Modulo de la tarjeta Adapt11C24DX Technological Arts, Adapt11C24DXEVB Module Mechanical Data and Pin Configuration, p.1 68

81 En la figura anterior se puede observar que esta tarjeta cuenta con memoria externa expandida, debido a que ciertas aplicaciones lo requieren; pero de acuerdo al tipo de modulo que se utilice el tamaño de la memoria va a variar como se muestra a continuación: El modulo #AD11C24DXM8K, cuenta con 8 Kbyte de memoria EEPROM. El modulo #AD11C24DXM32K, cuenta con 32 Kbyte de memoria EEPROM. El modulo #AD11C24DXM60K, cuenta con 32 Kbyte de memoria EEPROM y 28 Kbyte de memoria SRAM. Es importante analizar de antemano cual de estos módulos se debe de adquirir, dependiendo del tipo de aplicación que se desee desarrollar, para que no se presenten problemas con el espacio de memoria. En la siguiente figura se muestra el mapa de memoria que brinda el fabricante para cualquiera de estas tres posibles configuraciones. Figura 3.21 Mapa de memoria Technological Arts, Adapt11C24DXEVB Module Mechanical Data and Pin Configuration, p.1 69

82 Una de las mayores ventajas que presenta esta tarjeta consiste en que ninguno de los puertos se encuentra ocupado, trabajando ya sea como bus de datos o como la parte alta o baja del bus de direcciones. Por lo tanto todos los pines de los puertos de entrada y salida se encuentran disponibles, así como también líneas de control, permitiendo una mayor flexibilidad a nivel de hardware. La asignación de los pines que realiza el fabricante para esta tarjeta se muestra en la siguiente figura. Figura 3.22 Asignación de pines Technological Arts, Adapt11C24DXEVB Module Mechanical Data and Pin Configuration, p.1 70

83 CAPÍTULO 4: Implementación del codificador fuente 4.1 Probabilidad de los símbolos fuente El punto de partida para la implementación del codificador fuente consiste en definir el rango de voltaje en que se amplificará la señal de voz, ya que a partir de los límites del rango se determina la cantidad de niveles de cuantización que serán utilizados para obtener la señal PCM, así como también la cantidad de símbolos fuente, ya que cada símbolo esta asociado a un nivel de cuantización. Para efectos de implementación, se amplificó la señal analógica de entrada en un rango de ±1 V, este rango puede aumentarse o disminuirse dependiendo del valor de la ganancia en que se amplifique la señal de entrada, que por tratarse de la señal de voz presenta niveles de voltaje muy bajos y siempre resulta necesario amplificarla. Un aspecto importante a considerar consiste en definir el rango de voltaje en que el convertidor A/D del microcontrolador realizará la codificación, donde se trabajó con un rango de 0 a 9 V, el cual corresponde al voltaje de alimentación de la tarjeta Adapt11C24DX; por lo tanto para un voltaje de 0 V el nivel de cuantización es $00, mientras que para el voltaje de 9 V se cuenta con un nivel de cuantización de $FF. Por esta razón se seleccionó un nivel de referencia de 5 V para la señal analógica de entrada, asegurando que se encuentre dentro del rango de 0 V a 9 V. De acuerdo con la selección del rango de voltaje para la amplificación de la señal de voz y el nivel de referencia, se tiene que los niveles de cuantización máximo y mínimo corresponden a: $AB para un voltaje de 6 V y $72 para un voltaje de 4 V, alcanzando a obtener un rango dinámico de 57 niveles de cuantización, a pesar de esto se trabajó con 60 niveles de cuantización. En la siguiente tabla 71

84 se muestran las probabilidades obtenidas de cada uno de los símbolos fuente, de acuerdo al nivel de cuantización asociado. Tabla 4.1 Probabilidad de los símbolos fuente Nivel de cuantización Símbolo Probabilidad Nivel de cuantización Símbolo Probabilidad $70 0 0, $8E 30 0, $71 1 0, $8F 31 0, $72 2 0, $ , $73 3 0, $ , $74 4 0, $ , $75 5 0, $ , $76 6 0, $ , $77 7 0, $ , $78 8 0, $ , $79 9 0, $ , $7A 10 0, $ , $7B 11 0, $ , $7C 12 0, $9A 42 0, $7D 13 0, $9B 43 0, $7E 14 0, $9C 44 0, $7F 15 0, $9D 45 0, $ , $9E 46 0, $ , $9F 47 0, $ , $A0 48 0, $ , $A1 49 0, $ , $A2 50 0, $ , $A3 51 0, $ , $A4 52 0, $ , $A5 53 0, $ , $A6 54 0, $ , $A7 55 0, $8A 26 0, $A8 56 0, $8B 27 0, $A9 57 0, $8C 28 0, $AA 58 0, $8D 29 0, $AB 59 0,

85 Para los niveles de cuantización extremos, las probabilidades presentan los valores más pequeños, mientras que para los niveles de cuantización intermedios las probabilidades son relativamente altas. El contenido de decisión de esta fuente discreta sin memoria, de acuerdo con la ecuación (2.2-2), para 60 símbolos fuente corresponde a: Por lo tanto se necesitan aproximadamente 5,9068 bits por cada símbolo fuente para describir la información. Considerando ahora la ecuación (2.2-5) para el cálculo de la entropía de la fuente, se tiene que el mínimo índice de transmisión en bit por símbolo que se necesita para transmitir la información sin pérdidas corresponde a: Finalmente calculando la redundancia de los símbolos fuente a partir de la ecuación (2.2-11) y de los resultados anteriores, se obtiene aproximadamente: Obtención de las probabilidades de los símbolos fuente Para obtener las probabilidades de los símbolos fuente se codificó la señal de entrada analógica para diferentes conversaciones, en las cuales se varío la intensidad de la voz, obteniendo la señal PCM en cada una de las pruebas realizadas. Como cada muestra codificada es igual a un nivel de cuantización, y cada nivel esta asociado a un símbolo fuente, entonces para el cálculo de la probabilidad únicamente se determino la frecuencia 73

86 de aparición de cada una de las muestras codificadas. Para determinar las probabilidades se programó el MC68HC11 para codificar la señal analógica, y almacenar las muestras codificadas en memoria RAM. Una vez terminado el espacio de memoria disponible, se envían las muestras codificadas a través del puerto serial, para que sean recibidas por un programa en C, que se encarga de calcular la probabilidad de cada muestra. Debido a que el espacio de memoria RAM interna que tiene el microcontrolador no es suficiente, ya que apenas se puede codificar como máximo un tiempo de 64 ms de conversación, entonces en cada una de las pruebas realizadas el programador puede definir cuantas señales PCM desea obtener, de esta forma se llega a codificar una mayor cantidad de muestras, además de que la conversación se establece en un tiempo más prolongado, obteniendo de esta manera resultados más veraces en cada una de las pruebas. 4.2 Implementación del circuito de codificación fuente El circuito implementado en el proceso de codificación, se muestra en la siguiente figura. Figura 4.1 Circuito implementado para la codificación de la señal de voz 74

87 El microcontrolador cuenta con dos pines de entrada denominados VRH y VRL, los cuales definen el rango dinámico en que se muestreará la señal de entrada analógica. Para el caso de la tarjeta Adapt11C24DX se tiene que el pin VRL se encuentra cortocircuitado a un nivel de 0 V, por lo tanto si se desea codificar adecuadamente la señal de entrada analógica es necesario trasladar su nivel de referencia de cero voltios a un nivel que se encuentre dentro del rango dinámico, asegurando que el voltaje más alto y más bajo no superen los niveles de voltaje de VRH y VRL. Para alcanzar estas condiciones de funcionamiento se conectaron tres etapas de amplificadores operacionales LM-741. La primera etapa consiste en una configuración de amplificación no inversora, ya que lo único que se desea es amplificar la señal de entrada analógica sin invertirla. El usuario puede modificar la ganancia con tan solo variar la resistencia del potenciómetro R2, por otro lado en la entrada se conecta un capacitor para filtrar el ruido que presenta la señal de entrada. En la segunda etapa se cuenta con un amplificador sumador, en donde se suma el voltaje de salida de la primera etapa de amplificación con un nivel de voltaje DC denominado Vcc2, de esta forma se logra modificar el nivel de referencia de la señal analógica, pero es necesario que este voltaje Vcc2 presente un valor de aproximadamente VRH/2, para ubicar el nivel de referencia de la señal de entrada a la mitad del rango dinámico, por otro lado en esta etapa no se desea amplificar la señal analógica por lo tanto el valor de las resistencias R3, R4 y R5 debe ser el mismo. A pesar de que se logra modificar el nivel de referencia de la señal analógica esta se invierte en la segunda etapa, por lo tanto es necesario conectar un tercer amplificador operacional en configuración 75

88 inversora para recuperar la señal que debe ser muestreada; al igual que en el caso anterior en esta etapa no se desea amplificar la señal, de tal manera que las resistencias R6 y R7 deben de presentar el mismo valor. Se conectó el circuito integrado 7407, el cual es utilizado únicamente para encender los leds que se encuentran conectados en sus salidas respectivas, debido a que la carga que maneja la tarjeta Adapt11CD24DX no es capaz de encender los leds conectados a la salida de un puerto. Cada uno de los leds conectados se va a encontrar encendido dependiendo del tipo de tarea que este ejecutando el microcontrolador, de esta forma el usuario puede identificar el tipo de tarea con solo observar el encendido y apagado de los leds. El programador definirá cuales leds se encenderán o apagarán de acuerdo a la tarea asignada. Con respecto a la programación del microcontrolador para la aplicación, se realizo la siguiente asignación para el encendido de los leds: Encendido del led conectado a la resistencia R8, cuando se ejecuta la tarea de obtención de la señal PCM. Encendido del led conectado a la resistencia R9, cuando se ejecuta la tarea de codificación fuente. Encendido del led conectado a la resistencia R10, cuando se ejecuta la tarea de decodificación fuente. 76

89 4.3 Algoritmos de codificación y decodificación A continuación se realiza una descripción de cada uno de los algoritmos utilizados en el proceso de codificación y decodificación fuente, por medio de diagramas de flujo Algoritmo de asignación de tarea En el algoritmo de asignación de tarea se selecciona la tarea que debe ejecutar el microcontrolador MC68HC11. La idea consiste en que el usuario elija la tarea correspondiente de acuerdo al número asociado. En este algoritmo se encuentra la rutina de iniciación, donde se deshabilitan las interrupciones, se define la posición de memoria a la que apunta el stack pointer al inicio del programa, y se configura la interfaz de comunicación serial. Figura 4.2 Diagrama de flujo algoritmo de asignación de tarea 77

90 Después de la etapa de iniciación se pregunta si ha llegado o no algún carácter al SCI del microcontrolador, mientras no se presente esta condición el proceso entra un lazo de interrogación. Cuando el SCI del microcontrolador ha recibido algún carácter se sale del lazo y se entra en una etapa de interrogación de tarea, en la cual se compara el carácter recibido con las opciones de tarea definidas, si el carácter recibido es igual al número asociado a alguna de estas tareas, el microcontrolador realiza la operación respectiva, pero en caso contrario de nuevo salta al lazo de interrogación a esperar a que llegue otro carácter. De esta forma el programador se asegura que el microcontrolador no realice ninguna tarea que no se le haya asignado previamente por el usuario Algoritmo generación de señal PCM Considerando la secuencia a seguir para realizar la conversión A/D de la señal de entrada. Inicialmente se define la cantidad de conversiones A/D que se realizarán, y se almacenará el valor en el registro índice Y, por otro lado el programador define la posición de memoria donde se iniciará el almacenamiento de las muestras codificadas por medio del puntero VEC_MUEST_COD. Luego se procede a encender el convertidor A/D y a configurarlo de acuerdo a la implementación, en donde se define el canal analógico de entrada y los modos de conversión. Cuando se alcanzan las condiciones de funcionamiento requeridas se procede a realizar el muestreo de la señal de entrada. El diagrama de flujo para este algoritmo se muestra en la siguiente figura. 78

91 Figura 4.3 Diagrama de flujo algoritmo generación de la señal PCM La subrutina llamada lazo de espera, ejecuta dos funciones importantes, las cuales corresponden a: Crear un retardo mayor a los 32 ciclos de reloj, para asegurar que la muestra codificada se almacene en el registro ADR1 del convertidor, para que luego esta pueda ser leída y almacenada en la posición de memoria respectiva. 79

92 Definir la frecuencia de muestreo de la señal de entrada analógica, a partir de la constante CONST_FRECUENCIA, la cual la define el programador, ya que a partir de esta constante se establece el retardo tiempo que se debe de presentar. Figura 4.4 Diagrama de flujo subrutina lazo de espera De acuerdo con el programa realizado para obtener la señal PCM, se tiene que la cantidad de ciclos de reloj que se presentan cada vez que se muestrea la señal de entrada se calcula a partir de la siguiente ecuación. Esto permite calcular la frecuencia de muestreo de la señal analógica de entrada, la cual corresponde a: Por lo tanto como en esta aplicación se requiere muestrear a una frecuencia de 8 khz, y de acuerdo con la ecuación (4.3 2), se tiene que la cantidad de ciclos de reloj que se deben de presentar corresponden a 250 ciclos. Ahora despejando el valor de la constante CONST_FRECUENCIA de la ecuación (4.3 1), se obtiene un valor para esta constante 80

93 igual a , como el valor que debe presentar debe ser entero, entonces se elige un valor para la constante de 28 unidades, nótese que no se realiza un redondeo hacia arriba, debido a que se obtendría una mayor cantidad de ciclos de reloj, lo cual provocaría un mayor retardo y una menor frecuencia de muestreo. Luego de almacenar la muestra obtenida, se incrementa el puntero VEC_MUEST_COD en una unidad para que apunte a la siguiente posición de memoria donde se almacenará la siguiente muestra codificada. Después se decrementa el registro índice Y en una posición indicando que se ha completado una conversión; cuando el valor en el registro Y llega a ser cero se envían por el SCI todas las muestras codificadas para que sean almacenadas en un archivo, en caso contrario se realizará el salto para obtener una nueva conversión de la señal de entrada analógica Algoritmo codificación aritmética Con este algoritmo se codifica una secuencia de entrada mediante un número fraccional. Las probabilidades y los intervalos asociados a cada símbolo fuente se almacenan en memoria EEPROM, a partir de una determinada posición de memoria que debe definir el programador antes de iniciar el proceso de codificación. El orden asignado a los símbolos fuente dentro de la memoria EEPROM corresponde al orden creciente de los niveles de cuantización utilizados para la obtención de la señal PCM. Debido a que las probabilidades de los símbolos fuente presentan valores pequeños, se debe definir una cantidad máxima de símbolos a codificar por secuencia de entrada, ya que el número fraccional que representa la trama codificada puede llegar a necesitar una precisión muy, esto dependiendo de la 81

94 cantidad de símbolos y de las probabilidades. Por lo tanto por medio del registro CONT_SIMB, se almacena la cantidad de símbolos que se codificaran por secuencia. Figura 4.5 Diagrama de flujo algoritmo de codificación aritmética 82

95 Inicialmente se define la cantidad de secuencias de trama que serán codificadas, luego por medio del SCI se carga en memoria RAM los símbolos fuente por secuencia de entrada, después se almacena el primer símbolo de la trama en el acumulador A del MC68HC11 para luego multiplicar el contenido del acumulador por la cantidad de espacios que requiere cada uno de los símbolos fuente dentro de la memoria EEPROM, obteniendo como resultado la dirección en donde se encuentra la información correspondiente al símbolo fuente, la cual consiste en la probabilidad y los límites asociados; posteriormente se almacenan estos datos en los registros de cálculo del primer símbolo. Por medio del registro ENVIO_PRIMER_SIMB, se verifica si se ha cargado únicamente los datos de un símbolo, si se presenta está condición se salta de nuevo a cargar el segundo símbolo en el acumulador A, y se procede a encontrar la dirección donde se encuentran los datos del símbolo asociado, almacenando luego la información respectiva en los registros de cálculo del segundo símbolo, en caso contrario se procede a realizar el cálculo del nuevo límite superior e inferior del valor de trama codificada, tomando en cuenta que para el proceso de codificación se trabajó en múltiple precisión ya que se manejan datos de 16 bits y 32 bits; los resultados obtenidos se almacenan en los registros de cálculo del primer símbolo, ya que estos resultados serán utilizados para calcular el siguiente límite superior e inferior en caso de que sea necesario. Luego se decrementa en una unidad el contenido del registro CONT_SIMB y se interroga si este registro ha alcanzado un valor de cero, indicando que la codificación de la secuencia de entrada se ha completado, en caso contrario el programa realiza un salto para cargar el siguiente símbolo fuente y repetir el proceso anterior. Si ya se 83

96 ha codificado completamente una trama, entonces se procede a enviar el valor obtenido que representa la secuencia codificada a través del SCI, para que luego este valor sea recibido por el computador y sea almacenado en un determinado archivo de escritura que selecciona el usuario. Finalmente se decrementa en una unidad el registro CONT_TRAMA y se interroga para determinar si se codificará otra trama Algoritmo decodificación aritmética En el proceso de decodificación se utilizan las probabilidades y los intervalos almacenados en memoria EEPROM. Inicialmente se define la cantidad de secuencias de entrada que se decodificaran y por medio del SCI se recibe el valor de trama el cual se almacena en el registro VAL_TRA_AUX. Para encontrar el intervalo asociado se utiliza el puntero VEC_LIM_INF, el cual apunta inicialmente al límite inferior del último símbolo fuente, después se realiza la resta entre VAL_TRA_AUX y el límite apuntado por VEC_LIM_INF, y a partir de la bandera C se verifica si el resultado es positivo o negativo, en caso de que este sea negativo, el puntero VEC_LIM_INF pasa a apuntar al siguiente límite inferior, mientras que se decrementa en una unidad el registro SIMBOLO, el cual almacena el símbolo a ser enviado, de nuevo el programa salta a realizar la operación de resta hasta que se logré encontrar el intervalo asociado. Una vez encontrado este intervalo se almacena el símbolo a ser transmitido en memoria RAM, luego se pregunta si la cantidad de símbolos por trama ya se han decodificado, en caso de que no se haya presentado esta condición se toma el resultado de la ultima resta realizada y se divide por la probabilidad del símbolo, 84

97 obteniendo de esta forma el nuevo valor de trama que servirá para encontrar el siguiente símbolo fuente. 85

98 Figura 4.6 Diagrama de flujo algoritmo decodificación aritmética Si se ha terminado de decodificar una secuencia entonces se envía esta a través del SCI para que la reciba el computador y la guarde en algún archivo de destino. 4.4 Manual de usuario Para utilizar el codificador fuente es necesario que el usuario cuente con el siguiente equipo: Computadora con Microsoft Windows. Puerto de comunicación serial. Micrófono. Fuentes DC de 5V, 9V y ±12V. Para utilizar adecuadamente el codificador y decodificador fuente, es necesario seguir los siguientes pasos: 86

99 1. Conectar el cable serial entre el puerto COM del PC que será utilizado y el conector serial que presenta la tarjeta Adapt11C24DX, para que se pueda establecer la comunicación entre el microcontrolador y el PC. 2. Antes de correr la aplicación, el usuario debe asegurarse de que el switch SW4 que presenta la tarjeta Adapt11C24DX, se encuentre en la posición PROT, de tal manera que se proteja la memoria EEPROM de una escritura no deseada, evitando problemas ocasionados por código modificado. 3. Verificar que el switch SW2, se encuentre en la posición RUN mode, para que el programa empiece a ejecutarse una vez encendida la tarjeta Adapt11C24DX, aunque es recomendable presionar el botón RESET antes de utilizar la aplicación, estableciendo de esta forma una condición inicial. 4. Para alimentar la tarjeta Adapt11C24DX, se pueden utilizar voltajes de 5 a 15 VDC, a través del conector externo de alimentación, tomando ventaja del regulador de 5 VDC que presenta la tarjeta. Se recomienda utilizar una fuente de 9 VDC para alimentar la tarjeta, la cual puede obtenerse a partir de una batería cuadrada Programa interfaz con el usuario La interfaz con el usuario es una herramienta útil para que el usuario tenga la facilidad de utilizar el codificador fuente sin preocuparse por problemas de programación y comunicación entre el microcontrolador y el PC. A continuación se realiza una descripción 87

100 de las funciones, así como también de las posibles fuentes de error que se pueden presentar cuando se esté utilizando el codificador fuente. En la siguiente figura se muestra la captura de pantalla del menú de tareas con las que cuenta el usuario. Figura 4.7 Menú de tareas Funciones El programa que interactúa con el usuario despliega las funciones programadas que realiza el microcontrolador MC68HC11, donde a cada una de las tareas se le asocia un número para que el usuario pueda seleccionar cualquiera de ellas Generación de la señal PCM A esta tarea se le asocia el numero 1, por lo tanto para ejecutarla es necesario presionar esta tecla. Si el usuario desea obtener la señal PCM de la señal de entrada analógica, debe cerciorarse inicialmente de que el micrófono se encuentre conectado, además debe 88

101 prepararse para iniciar la conversación, una vez pulsada la tecla 1 se desplegará un mensaje en pantalla pregúntale al usuario el nombre del archivo en el que almacenará la señal PCM, el usuario debe seguir el siguiente formato para definir la ruta de almacenamiento: <unidad de almacenamiento> :\ <directorio 1> \...\ <directorio N> \<nombre_archivo>.doc Tomando en cuenta que el nombre del archivo no debe exceder los 80 caracteres. Una vez hecho esto el microcontrolador empezara a realizar el muestreo de la señal analógica de entrada y la almacenara en el archivo respectivo Codificación Fuente Esta tarea está asociada con el número 2. Si el usuario desea codificar la señal PCM debe definir inicialmente dos rutas, una encontrar el archivo donde esta almacenada la señal PCM y otra para asignar el archivo de escritura donde guardaran los resultados obtenidos de la codificación. El formato a seguir para definir la ruta de almacenamiento es el mismo que se utiliza para almacenar la señal PCM en la tarea 1. Luego de que se realizó la asignación de archivos, el microcontrolador iniciará el proceso de codificación aritmética, el tiempo de duración dependerá de la cantidad de muestras codificadas así como también de la cantidad de tramas. Al final del proceso de codificación se imprimirá en pantalla el valor de la compresión obtenida. 89

102 Decodificación Fuente Esta tarea está asociada con el numero 3. Para ejecutar la tarea de decodificación el usuario debe definir al igual que en proceso de codificación dos rutas, una para encontrar el archivo donde están almacenados los resultados de codificación y otra asignar el archivo destino donde se almacenaran los símbolos fuente, siguiendo el mismo formato para definir las rutas de almacenamiento. Una vez hecho esto el microcontrolador iniciará el proceso de decodificación, cuyo tiempo de ejecución es variable dependiendo de los símbolos fuente que fueron codificados Fuentes de error Entre las posibles fuentes de error en el programa se encuentran las siguientes: Se presentan errores con la apertura de los archivos de lectura, cuando el usuario a digitado incorrectamente la dirección del archivo o el nombre del mismo, por lo tanto es importante conocer con antelación la ubicación de los archivos. Si el usuario introduce una dirección que supere los 80 caracteres, esta dirección se cortará a la cantidad máxima de caracteres establecidos. En cualquiera de los dos casos anteriores se presentará un mensaje en pantalla para indicarle al usuario que hubo problemas con la apertura de los ficheros y debe introducir de nuevo la dirección. Para la apertura de archivos de escritura no es necesario que estos existan, los mismos se crean una vez insertada la dirección y el nombre del archivo. 90

103 Con respecto a la comunicación entre el microcontrolador y la computadora se pueden presentar errores de conexión antes, durante y después de la comunicación entre ambos. En caso de que se presente este tipo de error se desplegará un mensaje en pantalla indicando al usuario que hubo un problema de comunicación. Básicamente esto se da por las siguientes razones: falta de alimentación a la tarjeta Adap11C24DX, el cable serial esta desconectado o no se encuentra bien conectado a la tarjeta y al modulo respectivamente, el puerto serial COM seleccionado no es el correcto para la comunicación; en cualquiera de estos casos el usuario debe verificar cada una de las condiciones anteriores para asegurar que se establezca la comunicación. Al crear un archivo para lectura o escritura hay que cerciorarse de guardar este archivo como texto sin formato, de tal manera que los caracteres sean entendidos de acuerdo a la codificación ASCII, y no por otro tipo de codificación que introduce errores. 91

104 4.5 Resultados obtenidos En el siguiente apartado se presentan capturas de pantalla del sistema, mostrando las secuencias codificadas y decodificadas, así como también la tasa de compresión alcanzada. Esta prueba consta de una secuencia codificada y decodificada de 5 tramas, tal que se codificaron 4 símbolos fuente por trama. Figura 4.8 Prueba codificación fuente De acuerdo con la figura anterior los primeros 4 datos de cada una de las filas corresponden a la secuencia de símbolos fuente que se codificaran, mientras que los últimos 4 datos de cada una de las filas corresponden a el valor de trama que se enviará por el canal. Conforme 92

105 el microcontrolador codifica una secuencia de entrada esta se imprime en pantalla, y no se imprime la siguiente hasta que no se haya codificado la anterior; el programador define la cantidad de tramas que se codificaran en un proceso de codificación. Al final del proceso de codificación se muestra la compresión obtenida, la cual corresponde en esta prueba a %. El resultado de compresión es un promedio de las compresiones obtenidas en cada uno de los procesos de codificación para una secuencia de entrada. De acuerdo con este resultado se tendería a pensar que la compresión es casi nula, pero hay que tomar en cuenta que se están codificando 32 bits y el valor de trama puede tener una cantidad máxima de 32 bits, lo cual justifica el resultado obtenido. Si se llegará a codificar un símbolo fuente más en la secuencia de entrada, se tendría que manejar una cantidad de bits superior a 32 bits para representar el valor de trama y de esta manera asegurar que no se presente pérdida en la información. Si se llegará a requerir una compresión mayor a los 4 símbolos fuente, entonces se tendría que incrementar el valor de trama en 16 bits, debido que resulta mas eficiente aumentar en esta cantidad el número de bits por el modelo de programación que presenta el microcontrolador, forzando a codificar al menos 6 símbolos fuente por secuencia de entrada, donde se obtendría un resultado en la compresión muy similar al anterior. Si se manejaran 48 bits por valor de trama, es posible representar una secuencia codificada de 7 símbolos fuente, sin que se pierda información, además de alcanzar un nivel de compresión de aproximadamente igual a %, el problema que se presenta consiste en que los registros con los que cuenta el microcontrolador para realizar las operaciones de división entre números fraccionales y números enteros son de 93

106 apenas 16 bits, entonces aunque se llegará a normalizar en un tamaño de 16 bits los registros de cálculo que presentan un tamaño de 48 bits, quedarían por fuera los bits menos significativos, los cuales representan información valiosa, lo cual ocasionaría una pérdida de información importante, por lo tanto entre mayor sea la cantidad de bits por secuencia de trama mayor va a ser la cantidad de bits que se perderán en las operaciones de normalización, resta, entre otras. Por esta razón se manejan 32 bits para representar el valor de trama y asegurar que las pérdidas sean mínimas, ya que siempre las hay debido ha que se pierden los bits menos significativos. En la siguiente figura se muestra la captura de pantalla del proceso de decodificación. Figura 4.9 Prueba decodificación fuente Al igual que en el proceso de codificación, se van imprimiendo en pantalla una por una las secuencias decodificadas. Los primeros 4 datos de cada fila corresponden a el valor de 94

Comunicaciones I. Capítulo 4 CODIFICACIÓN Y MODULACIÓN

Comunicaciones I. Capítulo 4 CODIFICACIÓN Y MODULACIÓN Comunicaciones I Capítulo 4 CODIFICACIÓN Y MODULACIÓN 1 Resumen de lo visto en el Capítulo 4 Se analizó la diferencia entre datos analógicos y digitales, y entre señales analógicas y digitales. A partir

Más detalles

CAPITULO 1 INTRODUCCION AL PROYECTO

CAPITULO 1 INTRODUCCION AL PROYECTO CAPITULO 1 INTRODUCCION AL PROYECTO 1 INTRODUCCION AL PROYECTO 1.1 Marco Teórico Los procesadores digitales de señales ganaron popularidad en los años sesentas con la introducción de la tecnología de estado

Más detalles

Unidad 3. Técnicas de Modulación

Unidad 3. Técnicas de Modulación Unidad 3. 3.1 Modulación de Onda Continua. 3.2 Modulación por Pulsos. 1 Antes de transmitir una señal con información a través de un canal de comunicación se aplica algun tipo de modulación. Esta operación

Más detalles

TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN

TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN 1. INTRODUCCIÓN. SISTEMAS DE NUMERACIÓN EN. Sistema binario. Sistema octal. Sistema hexadecimal. 2. REPRESENTACIÓN DE TEXTOS.. Números naturales. Números enteros.

Más detalles

3 SISTEMAS DE PROCESAMIENTO DIGITAL DE SEÑALES. ha desarrollado durante los últimos 30 años gracias a los avances tecnológicos de

3 SISTEMAS DE PROCESAMIENTO DIGITAL DE SEÑALES. ha desarrollado durante los últimos 30 años gracias a los avances tecnológicos de 3 SISTEMAS DE PROCESAMIENTO DIGITAL DE SEÑALES 3.1 Introducción al procesamiento digital de señales Una alternativa para el procesado analógico de señales es el procesado digital. Esta área se ha desarrollado

Más detalles

Guía práctica de estudio 06: Lenguaje binario

Guía práctica de estudio 06: Lenguaje binario Guía práctica de estudio 06: Lenguaje binario Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 06: Lenguaje binario

Más detalles

Guía práctica de estudio 06: Lenguaje binario

Guía práctica de estudio 06: Lenguaje binario Guía práctica de estudio 06: Lenguaje binario Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 06: Lenguaje binario

Más detalles

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES I CAPÍTULO III ARITMÉTICA Y CODIFICACIÓN

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES I CAPÍTULO III ARITMÉTICA Y CODIFICACIÓN ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES I CAPÍTULO III ARITMÉTICA Y CODIFICACIÓN TEMA 3. Aritmética y codificación 3.1 Aritmética binaria 3.2 Formatos de los números y su representación 3.3 Definiciones

Más detalles

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus

Más detalles

EL4005 Principios de Comunicaciones Clase No.22: Señalización Ortogonal

EL4005 Principios de Comunicaciones Clase No.22: Señalización Ortogonal EL4005 Principios de Comunicaciones Clase No.22: Señalización Ortogonal Patricio Parada Departamento de Ingeniería Eléctrica Universidad de Chile 29 de Octubre de 2010 1 of 34 Contenidos de la Clase (1)

Más detalles

Representación de datos y aritmética básica en sistemas digitales

Representación de datos y aritmética básica en sistemas digitales Representación de datos y aritmética básica en sistemas digitales DIGITAL II - ECA Departamento de Sistemas e Informática Escuela de Ingeniería Electrónica Rosa Corti 1 Sistemas de Numeración: Alfabeto:

Más detalles

4. NÚMEROS PSEUDOALEATORIOS.

4. NÚMEROS PSEUDOALEATORIOS. 4. NÚMEROS PSEUDOALEATORIOS. En los experimentos de simulación es necesario generar valores para las variables aleatorias representadas estas por medio de distribuciones de probabilidad. Para poder generar

Más detalles

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Arquitectura de Ordenadores Tutor: Antonio Rivero Cuesta Unidad Didáctica 1 Representación de la Información y Funciones Lógicas Tema 1 Representación de la Información

Más detalles

&217$'25(6',*,7$/(6. Figura 1.

&217$'25(6',*,7$/(6. Figura 1. &217$'25(6',*,7$/(6 En casi todos los tipos de equipo digital se encuentran flip-flops programados o conectados como contadores, usándose no solamente como contadores sino como equipo para dar la secuencia

Más detalles

FUNDAMENTOS DE TELECOMUNICACIONES MULTIPLEXACIÓN. Marco Tulio Cerón López

FUNDAMENTOS DE TELECOMUNICACIONES MULTIPLEXACIÓN. Marco Tulio Cerón López FUNDAMENTOS DE TELECOMUNICACIONES MULTIPLEXACIÓN Marco Tulio Cerón López QUE ES LA MULTIPLEXACIÓN? La multiplexación es la combinación de dos o más canales de información en un solo medio de transmisión

Más detalles

Universidad de Alcalá

Universidad de Alcalá Universidad de Alcalá Departamento de Electrónica CONVERSORES ANALÓGICO-DIGITALES Y DIGITALES-ANALÓGICOS Tecnología de Computadores Ingeniería en Informática Sira Palazuelos Manuel Ureña Mayo 2009 Índice

Más detalles

Última modificación: 1 de julio de

Última modificación: 1 de julio de Contenido SEÑALES DIGITALES Y CAPACIDAD DE CANAL 1.- Señales digitales de 2 y más niveles. 2.- Tasa de bit e intervalo de bit. 3.- Ancho de banda de una señal digital. 4.- Límites en la tasa de transmisión.

Más detalles

CEDEHP Profesor: Agustín Solís M. CUESTIONARIO NRO. 2

CEDEHP Profesor: Agustín Solís M. CUESTIONARIO NRO. 2 CUESTIONARIO NRO. 2 1.- Represente esquemáticamente en la siguiente figura cada elemento esencial en el proceso de comunicación. 2.- Defina Brevemente Fuente de información. La información o inteligencia

Más detalles

Aritmética de Enteros

Aritmética de Enteros Aritmética de Enteros La aritmética de los computadores difiere de la aritmética usada por nosotros. La diferencia más importante es que los computadores realizan operaciones con números cuya precisión

Más detalles

Tipos de Filtros Introducción

Tipos de Filtros Introducción Tipos de Filtros Introducción Tanto en los circuitos eléctricos como los sistemas de comunicaciones, se desea manejar información la cual debe estar dentro de ciertas frecuencias. Pero, ciertos grupos

Más detalles

AUDIO DIGITAL. Diego Cabello Ferrer Dpto. Electrónica y Computación Universidad de Santiago de Compostela

AUDIO DIGITAL. Diego Cabello Ferrer Dpto. Electrónica y Computación Universidad de Santiago de Compostela AUDIO DIGITAL Diego Cabello Ferrer Dpto. Electrónica y Computación Universidad de Santiago de Compostela 1. Introducción Señal de audio: onda mecánica Transductor: señal eléctrica Las variables físicas

Más detalles

Nombre de la asignatura : Teleproceso. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCB-9340

Nombre de la asignatura : Teleproceso. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCB-9340 1. D A T O S D E L A A S I G N A T U R A Nombre de la asignatura : Teleproceso Carrera : Ingeniería en Sistemas Computacionales Clave de la asignatura : SCB-9340 Horas teoría-horas práctica-créditos :

Más detalles

Compresión de Datos. Método de Huffman. Dpto. Informática

Compresión de Datos. Método de Huffman. Dpto. Informática Compresión de Datos Método de Huffman Manipulación y Preservación de Datos Dpto. Informática Ing. Mariano D'Agostino Introducción La compresión de datos es el proceso de convertir una cadena de datos de

Más detalles

Una dirección IP es una secuencia de unos y ceros de 32 bits. La Figura muestra un número de 32 bits de muestra.

Una dirección IP es una secuencia de unos y ceros de 32 bits. La Figura muestra un número de 32 bits de muestra. DIRECCIONAMIENTO IP Un computador puede estar conectado a más de una red. En este caso, se le debe asignar al sistema más de una dirección. Cada dirección identificará la conexión del computador a una

Más detalles

Tema 3. Electrónica Digital

Tema 3. Electrónica Digital Tema 3. Electrónica Digital 1.1. Definiciones Electrónica Digital La Electrónica Digital es la parte de la Electrónica que estudia los sistemas en los que en cada parte del circuito sólo puede haber dos

Más detalles

SISTEMAS ELECTRÓNICOS DIGITALES

SISTEMAS ELECTRÓNICOS DIGITALES SISTEMAS ELECTRÓNICOS DIGITALES PRÁCTICA 6 SISTEMA DE ENCRIPTACIÓN 1. Objetivos - Estudio del funcionamiento de memorias RAM y CAM. - Estudio de métodos de encriptación y compresión de datos. 2. Enunciado

Más detalles

Proyecto PropULSA: Estadística y Probabilidad Breviario Académico

Proyecto PropULSA:  Estadística y Probabilidad Breviario Académico Estadística y Probabilidad Breviario Académico Estadística: Es la ciencia que tiene por objetivo recolectar, escribir e interpretar datos, con la finalidad de efectuar una adecuada toma de decisiones en

Más detalles

https://dac.escet.urjc.es/docencia/etc-sistemas/teoria-cuat1/tema2.pdf

https://dac.escet.urjc.es/docencia/etc-sistemas/teoria-cuat1/tema2.pdf 1.3 Sistemas numéricos 1.3.1. Introducción Un sistema de representación numérica es un lenguaje que consiste en: Un conjunto ordenado de símbolos (dígitos o cifras) y otro de reglas bien definidas para

Más detalles

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo.

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo. Capítulo 5 Campos finitos 5.1. Introducción Presentaremos algunos conceptos básicos de la teoría de los campos finitos. Para mayor información, consultar el texto de McEliece [61] o el de Lidl y Niederreiter

Más detalles

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para

Más detalles

TEMA 1 LOS NÚMEROS REALES

TEMA 1 LOS NÚMEROS REALES TEMA 1 LOS NÚMEROS REALES 1.1 LOS NÚMEROS REALES.-LA RECTA REAL Los NÚMEROS RACIONALES: Se caracterizan porque pueden expresarse: En forma de fracción, es decir, como cociente b a de dos números enteros:

Más detalles

Representación de números enteros: el convenio exceso Z

Representación de números enteros: el convenio exceso Z Representación de números enteros: el convenio exceso Z Apellidos, nombre Martí Campoy, Antonio (amarti@disca.upv.es) Departamento Centro Informàtica de Sistemes i Computadors Escola Tècnica Superior d

Más detalles

Redes y Comunicaciones

Redes y Comunicaciones Departamento de Sistemas de Comunicación y Control Redes y Comunicaciones Solucionario Tema 3: Datos y señales Tema 3: Datos y señales Resumen La información se debe transformar en señales electromagnéticas

Más detalles

Electrónica Digital - Guión

Electrónica Digital - Guión Electrónica Digital - Guión 1. Introducción. 2. El álgebra de Boole. 3. Propiedades del álgebra de Boole. 4. Concepto de Bit y Byte. 5. Conversión del sistema decimal en binario y viceversa. 6. Planteamiento

Más detalles

INDICE 1. Operación del Computador 2. Sistemas Numéricos 3. Álgebra de Boole y Circuitos Lógicos

INDICE 1. Operación del Computador 2. Sistemas Numéricos 3. Álgebra de Boole y Circuitos Lógicos INDICE Prólogo XI 1. Operación del Computador 1 1.1. Calculadoras y Computadores 2 1.2. Computadores digitales electrónicos 5 1.3. Aplicación de los computadores a la solución de problemas 7 1.4. Aplicaciones

Más detalles

EIE SISTEMAS DIGITALES Tema 8: Circuitos Secuenciales (Síntesis) Nombre del curso: Sistemas Digitales Nombre del docente: Héctor Vargas

EIE SISTEMAS DIGITALES Tema 8: Circuitos Secuenciales (Síntesis) Nombre del curso: Sistemas Digitales Nombre del docente: Héctor Vargas EIE 446 - SISTEMAS DIGITALES Tema 8: Circuitos Secuenciales (Síntesis) Nombre del curso: Sistemas Digitales Nombre del docente: Héctor Vargas OBJETIVOS DE LA UNIDAD Entender el concepto de Máquina de estados

Más detalles

Computadora y Sistema Operativo

Computadora y Sistema Operativo Computadora y Sistema Operativo Según la RAE (Real Academia de la lengua española), una computadora es una máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos

Más detalles

5.2. Sistemas de codificación en binario

5.2. Sistemas de codificación en binario 5.2. Sistemas de codificación en binario 5.2.1. Sistemas numéricos posicionales [ Wakerly 2.1 pág. 26] 5.2.2. Números octales y hexadecimales [ Wakerly 2.2 pág. 27] 5.2.3. Conversión general de sistemas

Más detalles

COMUNICACIÓN DE DATOS

COMUNICACIÓN DE DATOS DEPARTAMENTO DE CIENCIA Y TECNOLOGÍA UNIVERSIDAD NACIONAL DE QUILMES Roque Sáenz Peña 352 (B1876BXD) Bernal Buenos Aires Argentina COMUNICACIÓN DE DATOS CODIFICACIÓN DE FUENTE Un problema de interés dentro

Más detalles

Trabajo opcional tema 4: modulación

Trabajo opcional tema 4: modulación Trabajo opcional tema 4: modulación Alberto Mateos Checa I. Telecomunicación 2 Trabajo opcional tema 4: modulación angular ÍNDICE DE CONTENIDOS: 1. Introducción.... 3 2. Diseño.... 3 2.1. Sistema completo....

Más detalles

Sistemas Numéricos Transversal de Programación Básica Proyecto Curricular de Ingeniería de Sistemas

Sistemas Numéricos Transversal de Programación Básica Proyecto Curricular de Ingeniería de Sistemas 1 Sistemas Numéricos 2013 Transversal de Programación Básica Proyecto Curricular de Ingeniería de Sistemas 2 Introducción Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar

Más detalles

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros

Más detalles

Introducción al PLC Simatic Siemens S7-200.

Introducción al PLC Simatic Siemens S7-200. Francisco J. Jiménez Montero. Málaga, Febrero de 2007. Revisado: Noviembre de 2010. Ciclo Formativo de Grado Medio de Instalaciones Eléctricas y Automáticas. Introducción al PLC Simatic Siemens S7-200.

Más detalles

OPERACIONES CON POLINOMIOS

OPERACIONES CON POLINOMIOS 4. 1 UNIDAD 4 OPERACIONES CON POLINOMIOS Objetivo general. Al terminar esta Unidad resolverás ejercicios y problemas en los que apliques las operaciones de suma, resta, multiplicación y división de polinomios.

Más detalles

Circuito de Offset

Circuito de Offset Figura 3.3 Conexión del Amplificador Los cálculos para la ganancia son simples y se muestran en la ecuación (3.), en estas se puede observar que para el cálculo de la ganancia es necesario establecer el

Más detalles

Guía práctica de estudio 05: Diagramas de flujo

Guía práctica de estudio 05: Diagramas de flujo Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de

Más detalles

PRÁCTICA 1 MODULACIONES LINEALES Modulación en doble banda Lateral: DBL Modulación en banda Lateral Única: BLU

PRÁCTICA 1 MODULACIONES LINEALES Modulación en doble banda Lateral: DBL Modulación en banda Lateral Única: BLU PRÁCTICA 1 MODULACIONES LINEALES 1.1.- Modulación de Amplitud: AM 1.2.- Modulación en doble banda Lateral: DBL 1.3.- Modulación en banda Lateral Única: BLU Práctica 1: Modulaciones Lineales (AM, DBL y

Más detalles

Introducción a los Sistemas Digitales. Conceptos básicos de matemática aplicada a los sistemas digitales

Introducción a los Sistemas Digitales. Conceptos básicos de matemática aplicada a los sistemas digitales Curso-0 1 Introducción a los Sistemas Digitales Conceptos básicos de matemática aplicada a los sistemas digitales 2 Contenidos Conjuntos numéricos Notación científica Redondeo Logaritmos Resumen 3 Conjuntos

Más detalles

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones Introducción a la Computación Capítulo 10 Repertorio de instrucciones: Características y Funciones Que es un set de instrucciones? La colección completa de instrucciones que interpreta una CPU Código máquina

Más detalles

Generación de Variables Aleatorias. UCR ECCI CI-1453 Investigación de Operaciones Prof. M.Sc. Kryscia Daviana Ramírez Benavides

Generación de Variables Aleatorias. UCR ECCI CI-1453 Investigación de Operaciones Prof. M.Sc. Kryscia Daviana Ramírez Benavides Generación de Variables Aleatorias UCR ECCI CI-453 Investigación de Operaciones Prof. M.Sc. Kryscia Daviana Ramírez Benavides Introducción Las variables aleatorias se representan por medio de distribuciones

Más detalles

Clasificación de sistemas

Clasificación de sistemas Capítulo 2 Clasificación de sistemas 2.1 Clasificación de sistemas La comprensión de la definición de sistema y la clasificación de los diversos sistemas, nos dan indicaciones sobre cual es la herramienta

Más detalles

29-05-2015 20-06-2015 1 20-06-2015 2 IV Unidad Se entiende por codificación en el contexto de la Ingeniería, al proceso de conversión de un sistema de datos de origen a otro sistema de datos de destino.

Más detalles

CAPÍTULO 4 TÉCNICA PERT

CAPÍTULO 4 TÉCNICA PERT 54 CAPÍTULO 4 TÉCNICA PERT Como ya se mencionó en capítulos anteriores, la técnica CPM considera las duraciones de las actividades como determinísticas, esto es, hay el supuesto de que se realizarán con

Más detalles

No tienen componente en continua: Lo que implica todas las ventajas mencionadas anteriormente.

No tienen componente en continua: Lo que implica todas las ventajas mencionadas anteriormente. No tienen componente en continua: Lo que implica todas las ventajas mencionadas anteriormente. Detección de errores: Se pueden detectar errores si se observa una ausencia de transición esperada en mitad

Más detalles

ASÍ FUNCIONA LA CONVERSIÓN ANALÓGICO- DIGITAL DIGITALIZACIÓN DE LA SEÑAL ANALÓGICA

ASÍ FUNCIONA LA CONVERSIÓN ANALÓGICO- DIGITAL DIGITALIZACIÓN DE LA SEÑAL ANALÓGICA ASÍ FUNCIONA LA CONVERSIÓN ANALÓGICO- DIGITAL DIGITALIZACIÓN DE LA SEÑAL ANALÓGICA En una señal eléctrica analógica, los valores de tensión positivos y negativos pueden mantenerse con un valor constante,

Más detalles

Trabajo opcional tema 3: modulación lineal

Trabajo opcional tema 3: modulación lineal Trabajo opcional tema 3: modulación lineal Alberto Mateos Checa I. Telecomunicación 2 Trabajo opcional tema 3: modulación lineal ÍNDICE DE CONTENIDOS: 1. Introducción.... 3 2. Diseño.... 3 2.1. Sistema

Más detalles

Resumen de CONVERSORES ANALÓGICO DIGITALES Y DIGITALES ANALÓGICOS

Resumen de CONVERSORES ANALÓGICO DIGITALES Y DIGITALES ANALÓGICOS Universidad De Alcalá Departamento de Electrónica Resumen de CONVERSORES ANALÓGICO DIGITALES Y DIGITALES ANALÓGICOS Tecnología de Computadores Almudena López José Luis Martín Sira Palazuelos Manuel Ureña

Más detalles

Sistemas Numéricos y Códigos Binarios

Sistemas Numéricos y Códigos Binarios Sistemas Numéricos y Códigos Binarios Marcelo Guarini Departamento de Ingeniería Eléctrica, 5 de Abril, 5 Sistemas Numéricos en Cualquier Base En el sistema decimal, cualquier número puede representarse

Más detalles

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a.

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a. Sistemas Operativos. Unidad V Entrada Salida. Programación de Entrada y Salida Introducción. Comunicación de los procesos con el mundo externo : Mecanismo de E/S de información. Aspectos que diferencian

Más detalles

ELECTIVA I PROGRAMA DE FISICA Departamento de Física y Geología Universidad de Pamplona Marzo de 2010 NESTOR A. ARIAS HERNANDEZ - UNIPAMPLONA

ELECTIVA I PROGRAMA DE FISICA Departamento de Física y Geología Universidad de Pamplona Marzo de 2010 NESTOR A. ARIAS HERNANDEZ - UNIPAMPLONA ELECTIVA I PROGRAMA DE FISICA Departamento de Física y Geología Universidad de Pamplona Marzo de 2010 PDS Señal Analoga Señal Digital Estabilidad y Repetibilidad condiciones externa) Inmunidad al ruido

Más detalles

Tema 2 Introducción a la Programación en C.

Tema 2 Introducción a la Programación en C. Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes

Más detalles

4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC:

4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC: 4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC: A continuación se muestran los objetivos así como los mapas funcionales según la línea de acentuación y la línea

Más detalles

PLAN DE REFUERZO NOMBRE ESTUDIANTE: Nº

PLAN DE REFUERZO NOMBRE ESTUDIANTE: Nº COLEGIO BETHLEMITAS PLAN DE REFUERZO Fecha: Dia 01 Mes 04 Año 2016 META DE COMPRENSIÓN: Desarrolla comprensión acerca de la evolución histórica de los sistemas de numeración, para ubicar dentro de ellos

Más detalles

Redes y Servicios. Módulo I. Fundamentos y modelos de red. Tema 2. Fundamentos. Parte B. Nivel de enlace

Redes y Servicios. Módulo I. Fundamentos y modelos de red. Tema 2. Fundamentos. Parte B. Nivel de enlace 1 Redes y Servicios Módulo I. Fundamentos y modelos de red Tema 2. Fundamentos Parte B. Nivel de enlace 2 Introducción Dos funciones básicas del nivel de enlace: Motivación? Control de flujo Motivación?

Más detalles

Bloque 1. Contenidos comunes. (Total: 3 sesiones)

Bloque 1. Contenidos comunes. (Total: 3 sesiones) 4º E.S.O. OPCIÓN A 1.1.1 Contenidos 1.1.1.1 Bloque 1. Contenidos comunes. (Total: 3 sesiones) Planificación y utilización de procesos de razonamiento y estrategias de resolución de problemas, tales como

Más detalles

Tema Contenido Contenidos Mínimos

Tema Contenido Contenidos Mínimos 1 Estadística unidimensional - Variable estadística. - Tipos de variables estadísticas: cualitativas, cuantitativas discretas y cuantitativas continuas. - Variable cualitativa. Distribución de frecuencias.

Más detalles

Tema 3. 2 Sistemas Combinacionales

Tema 3. 2 Sistemas Combinacionales Tema 3. 2 Sistemas Combinacionales Índice Circuitos combinacionales: concepto, análisis y síntesis. Métodos de simplificación de funciones lógicas. Estructuras combinacionales básicas Multiplexores Demultiplexores

Más detalles

Complejidad computacional (Análisis de Algoritmos)

Complejidad computacional (Análisis de Algoritmos) Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución

Más detalles

Representación de la Información en los Sistemas Digitales

Representación de la Información en los Sistemas Digitales Representación de la Información en los Sistemas Digitales Luis Entrena, Celia López, Mario García, Enrique San Millán Universidad Carlos III de Madrid 1 Introducción a los computadores Computador: Máquina

Más detalles

Codificación de Fuente y de Canal

Codificación de Fuente y de Canal Codificación de Fuente y de Canal PRÁCTICA 7 ( 2 sesiones) Laboratorio de Señales y Comunicaciones 3 er curso, Ingeniería Técnica de Telecomunicación Javier Ramos López, Fernando Díaz de María, Fernando

Más detalles

UT01 03 Sistemas de codificación

UT01 03 Sistemas de codificación UT01 03 Sistemas de codificación Cap 1 Introducción a los Sistemas Informáticos IES Barajas - JRGRL Tipo de software y tipos de datos Tipos de software de un SI Aplicaciones (no forman parte del SO) Datos

Más detalles

13. Utilizar la fórmula del término general y de la suma de n términos consecutivos

13. Utilizar la fórmula del término general y de la suma de n términos consecutivos Contenidos mínimos 3º ESO. 1. Contenidos. Bloque I: Aritmética y álgebra. 1. Utilizar las reglas de jerarquía de paréntesis y operaciones, para efectuar cálculos con números racionales, expresados en forma

Más detalles

4 CAJA DE POLINOMIOS C A P Í T U L O 4.1 MANUAL BÁSICO DE LA CAJA DE POLINOMIOS

4 CAJA DE POLINOMIOS C A P Í T U L O 4.1 MANUAL BÁSICO DE LA CAJA DE POLINOMIOS C A P Í T U L O 4 CAJA DE POLINOMIOS Por: Jhon Fredy Saavedra Delgado Licenciatura en Matemáticas Universidad del Tolima jfredymatematico@gmail.com En este capítulo se mostrará el manejo básico del demo

Más detalles

Sumario. Presentación... 15

Sumario. Presentación... 15 Sumario Presentación... 15 1. INTRODUCCIÓN A LA TELEVISIÓN... 17 1.0. Introducción... 17 1.1. El contexto de la televisión... 18 1.2. Resumen histórico... 21 1.3. Estructura general del sistema de televisión...

Más detalles

El Espectro Electromagnético Radiación Ionizante y NO Ionizante

El Espectro Electromagnético Radiación Ionizante y NO Ionizante El Espectro Electromagnético Radiación Ionizante y NO Ionizante El Espectro Electromagnético Radiación Ionizante y NO Ionizante Las radiaciones, atendiendo a su energía, se clasifican en radiaciones ionizantes

Más detalles

TÉCNICAS DIGITALES SISTEMAS NUMÉRICOS

TÉCNICAS DIGITALES SISTEMAS NUMÉRICOS Universidad Nacional de Quilmes Diplomatura en Ciencia y Tecnología TÉCNICAS DIGITALES Los sistemas numéricos. SISTEMAS NUMÉRICOS La necesidad de contar objetos llevó a distintas culturas a simbolizar

Más detalles

Profesor(a): Ing. Miriam Cerón Brito

Profesor(a): Ing. Miriam Cerón Brito Área Académica: Informática Tema: Hoja electrónica Profesor(a): Ing. Miriam Cerón Brito Periodo: Enero Junio 2014 Abstract: This presentation show the spreadsheet's characteristics and show the principals

Más detalles

Cuando se enumeran todos los elementos que componen el conjunto. A = { 1, 2, 3, 4, 5 }

Cuando se enumeran todos los elementos que componen el conjunto. A = { 1, 2, 3, 4, 5 } LOS NÚMEROS REALES TEMA 1 IDEAS SOBRE CONJUNTOS Partiremos de la idea natural de conjunto y del conocimiento de si un elemento pertenece (* ) o no pertenece (* ) a un conjunto. Los conjuntos se pueden

Más detalles

ARITMÉTICA MODULAR. Unidad 1

ARITMÉTICA MODULAR. Unidad 1 Unidad 1 ARITMÉTICA MODULAR 9 Capítulo 1 DE LA TEORÍA DE CONJUNTOS Objetivo general Presentar y afianzar algunos conceptos de la Teoría de Conjuntos relacionados con el estudio de la matemática discreta.

Más detalles

PLANES CURRICULARES GRADO9º/ 01 PERIODO

PLANES CURRICULARES GRADO9º/ 01 PERIODO PLANES CURRICULARES GRADO9º/ 01 PERIODO Grado: 9º Periodo: 01 PRIMERO Aprobado por: G. Watson - Jefe Sección Asignatura: MATEMATICAS Profesor: Gloria rueda y Jesús Vargas ESTANDARES P.A.I. I.B. A. Conocimiento

Más detalles

Tema 2. Regresión Lineal

Tema 2. Regresión Lineal Tema 2. Regresión Lineal 3.2.1. Definición Mientras que en el apartado anterior se desarrolló una forma de medir la relación existente entre dos variables; en éste, se trata de esta técnica que permite

Más detalles

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

Tutoría 2. Banco de memoria de 8 y 16 bits (8086) Tutoría 2. Banco de memoria de 8 y 16 bits (8086) RESUMEN Cuando el procesador opera en modo mínimo, éste genera las señales de control para la memoria y los dispositivos de E/S. [1, pág. 292]. Para utilizar

Más detalles

BIBLIOGRAFIA TEORIA DE CIRCUITOSY DISPOSOTIVOS BOYLESTAD ELECTRONICA DIGITAL TOKHEIM SISTEMAS DIGITALES TOCCI

BIBLIOGRAFIA TEORIA DE CIRCUITOSY DISPOSOTIVOS BOYLESTAD ELECTRONICA DIGITAL TOKHEIM SISTEMAS DIGITALES TOCCI Guía de preparación para el examen ELECTRONICA CxTx En esta materia básicamente se evalúan temas tales como son: MULTIVIBRADORES, MEMORIAS, CONTADORES Y COMPUERTAS LOGICAS, SUMADOR RESTADOR Y MICROPOCESADORES

Más detalles

DIRECCIONAMIENTO IP TECNOLOGÍA E INFORMÁTICA (ONCE)

DIRECCIONAMIENTO IP TECNOLOGÍA E INFORMÁTICA (ONCE) DIRECCIONAMIENTO IP TECNOLOGÍA E INFORMÁTICA (ONCE) QUÉ ES EL NÚMERO IP (1)? El número IP permite identificar cada posible dispositivo que se encuentra conectado a una red, como por ejemplo un PC, aunque

Más detalles

TEMA II: SISTEMAS DE NUMERACIÓN

TEMA II: SISTEMAS DE NUMERACIÓN 2012 UNAN LEÓN Departamento de Computación Autor: Ing: Karina Esquivel Alvarado. Asignatura: FUNDAMENTOS DE INFORMÁTICA TEMA II: SISTEMAS DE NUMERACIÓN 2.1 INTRODUCCIÓN: TEMA 2: SISTEMAS DE NUMERACIÓN

Más detalles

Definición. Vista general.

Definición. Vista general. L M G E / 2012 Profesor Federico Olarte Código ASCII Definición. ASCII (del inglés de American Standard Code for Information Interchange - Código Estándar Estadounidense para el Intercambio de Información),

Más detalles

PROTOCOLO IP. Vicente Sánchez Patón. I.E.S Gregorio Prieto. Tema 1 SRI

PROTOCOLO IP. Vicente Sánchez Patón. I.E.S Gregorio Prieto. Tema 1 SRI PROTOCOLO IP Tema 1 SRI Vicente Sánchez Patón I.E.S Gregorio Prieto Cada dispositivo de una red debe definirse en forma exclusiva. En la capa de red, es necesario identificar los paquetes de la transmisión

Más detalles

ESCUELA DE INFORMÁTICA

ESCUELA DE INFORMÁTICA TÉCNICO EN SISTEMAS LABORAL SUBMODULO TEMA 1 (Visual Basic for Application) Microsoft VBA (Visual Basic for Applications) es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar

Más detalles

Definición de Memoria

Definición de Memoria Arquitectura de Ordenadores Representación de Datos en Memoria Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Definición de Memoria DRM-1 La memoria

Más detalles

Conversión Analógica a Digital

Conversión Analógica a Digital Índice Conversión analógica a digital Señales básicas de tiempo discreto Relación Exponencial Discreta con sinusoides Relación Exponencial discreta con sinusoides Propiedades exponenciales complejas continuas

Más detalles

PROGRAMA INSTRUCCIONAL ESTADÍSTICA

PROGRAMA INSTRUCCIONAL ESTADÍSTICA UNIVERSIDAD FERMIN TORO VICE RECTORADO ACADEMICO FACULTAD DE INGENIERIA ESCUELA DE MANTENIMIENTO MECÁNICO ESCUELA DE TELECOMUNICACIONES ESCUELA DE COMPUTACIÓN ESCUELA DE ELÉCTRICA PROGRAMA INSTRUCCIONAL

Más detalles

CAPÍTULO 1 INTRODUCCIÓN

CAPÍTULO 1 INTRODUCCIÓN CAPÍTULO 1 INTRODUCCIÓN INTRODUCCIÓN La UDLA en colaboración con el IMTA, se han planteado el objetivo de desarrollar un prototipo de globo meteorológico. Será un equipo que pueda ser enviado hacia cualquier

Más detalles

Fibra óptica (Calculos) Ing. Waldo Panozo

Fibra óptica (Calculos) Ing. Waldo Panozo Fibra óptica (Calculos) Ing. Waldo Panozo Cálculos de enlace - Requerimientos Ancho de banda: La fibra óptica proporciona un ancho de banda significativamente mayor que los cables de pares (UTP / STP)

Más detalles

UNIDAD 8 INECUACIONES. Objetivo general.

UNIDAD 8 INECUACIONES. Objetivo general. 8. 1 UNIDAD 8 INECUACIONES Objetivo general. Al terminar esta Unidad resolverás inecuaciones lineales y cuadráticas e inecuaciones que incluyan valores absolutos, identificarás sus conjuntos solución en

Más detalles

Tema 5 Algunas distribuciones importantes

Tema 5 Algunas distribuciones importantes Algunas distribuciones importantes 1 Modelo Bernoulli Distribución Bernoulli Se llama experimento de Bernoulli a un experimento con las siguientes características: 1. Se realiza un experimento con dos

Más detalles

Medidas de Tendencia Central

Medidas de Tendencia Central Medidas de Tendencia Central En cualquier análisis o interpretación, se pueden usar muchas medidas descriptivas que representan las propiedades de tendencia central, variación y forma para resumir las

Más detalles

Matemáticas UNIDAD 1 CONSIDERACIONES METODOLÓGICAS. Material de apoyo para el docente. Preparado por: Héctor Muñoz

Matemáticas UNIDAD 1 CONSIDERACIONES METODOLÓGICAS. Material de apoyo para el docente. Preparado por: Héctor Muñoz CONSIDERACIONES METODOLÓGICAS Material de apoyo para el docente UNIDAD 1 Preparado por: Héctor Muñoz Diseño Gráfico por: www.genesisgrafica.cl 1. BREVE PRESENTACIÓN DE LA UNIDAD AMPLIACIÓN DE CONOCIMIENTOS

Más detalles

Computación I Sistemas de Numeración. Curso 2015 Facultad de Ingeniería Universidad de la República

Computación I Sistemas de Numeración. Curso 2015 Facultad de Ingeniería Universidad de la República Computación I Sistemas de Numeración Curso 2015 Facultad de Ingeniería Universidad de la República Definición Conjunto de símbolos y reglas sobre ellos, que se utilizan para la representación de cantidades.

Más detalles

CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER

CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER ENTREGA: 26/11/2010 1 INTRODUCCIÓN La tecnología es cada vez más sencilla de

Más detalles

MONITOREO REMOTO MODULACIÓN Y DEMODULACION FM. INTRODUCCIÓN.

MONITOREO REMOTO MODULACIÓN Y DEMODULACION FM. INTRODUCCIÓN. MONITOREO REMOTO MODULACIÓN Y DEMODULACION FM. INTRODUCCIÓN. El importante desarrollo y avance de las telecomunicaciones ha tenido varios factores influyentes en su progreso, una de las principales ayudas

Más detalles