0% encontró este documento útil (0 votos)
34 vistas312 páginas

Máquinas Secuenciales Síncronas

Este documento presenta una introducción a los circuitos secuenciales síncronos. Explica que estos circuitos tienen salidas que dependen del comportamiento pasado y de los valores presentes de entrada, y usan señales de reloj para controlar su operación. Describe los modelos Mealy y Moore, indicando que en Mealy las salidas dependen del estado y las entradas, mientras que en Moore solo del estado. También menciona que utilizará diagramas de estado para representar gráficamente las transiciones entre estados.

Cargado por

Daniel Erazo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
34 vistas312 páginas

Máquinas Secuenciales Síncronas

Este documento presenta una introducción a los circuitos secuenciales síncronos. Explica que estos circuitos tienen salidas que dependen del comportamiento pasado y de los valores presentes de entrada, y usan señales de reloj para controlar su operación. Describe los modelos Mealy y Moore, indicando que en Mealy las salidas dependen del estado y las entradas, mientras que en Moore solo del estado. También menciona que utilizará diagramas de estado para representar gráficamente las transiciones entre estados.

Cargado por

Daniel Erazo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

ÍNDICE

1. Unidad 3: Máquinas secuenciales Síncronas y Asíncronas ...................................3

Tema 1: Circuitos secuenciales síncronos ..................................................................... 3

Objetivos: ...................................................................................................................... 3

Introducción: ................................................................................................................. 3

2. Información de los subtemas .............................................................................5

2.1 Subtema 1: MSS modelo Mealy ......................................................................... 5

2.2 Subtema 2: MSS modelo Moore ........................................................................ 6

2.3 Subtema 3: Diagramas de estado ...................................................................... 7

2.4 Subtema 4: Análisis de circuitos secuenciales síncronos ................................. 11

3. Bibliografía ......................................................................................................15

2
Circuitos secuenciales síncronos

1. Unidad 3: Maquinas secuenciales


Síncronas y Asíncronas
Tema 1: Circuitos secuenciales síncronos
Objetivos:

Al finalizar el tema 5 el estudiante aprenderá a:

● Diseñar circuitos con Flip Flops.


● Entender el concepto de estados y su implementación con Flip Flops.
● Sincronismo usando señales de reloj.
● Comportamiento secuencial de circuitos digitales.
● Procedimiento completo para un diseño de circuitos secuenciales síncronos.

Introducción:
Dentro Hasta el momento hemos revisado circuitos combinacionales cuyas salidas son
determinadas por el valor presente de sus entradas. Además se ha revisado de
elementos de memoria conocidos como flip flops. La salida del FF depende del estado
del FF mas que el valor de las entradas en cualquier instante de tiempo.

En el presente subtema revisaremos circuitos cuyas salidas dependen del


comportamiento pasado del circuito como también de los valores presentes de
entrada. Estos circuitos son llamados circuitos secuenciales. En alguno de estos casos
se utilizan señales de reloj para controlar la operación del circuito secuencial, y estos
son conocidos como circuitos secuenciales síncronos. Por otro lado tenemos los que no
usan señal de reloj, estos son llamados circuitos secuenciales asíncronos.

Los circuitos secuenciales sincrónicos son más fáciles de diseñar y son usados en la
© Universidad Estatal de Milagro – UNEMI

mayoría de aplicaciones prácticas. Estas máquinas secuenciales son conocidas también


como maquinas de estado finito (MEF). El nombre se deriva dado que su
funcionamiento puede ser representado por un numero finito de estados.

En la figura 1 mostramos un esquema de circuito secuencial representando una


máquina de Mealy (con el conector rosado) y una maquina de Moore (sin el conector
rosado), la diferencia radica en que los circuitos Mealy las salidas dependen del estado
presente del circuito y de sus entradas, mientras que las máquinas de Moore
dependen únicamente del estado presente del circuito.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 3


Circuitos secuenciales síncronos

FIGURA 1: Diagrama de bloques de máquina de Mealy y Moore


Fuente: Fundamentals of Digital Logic with VHDL Design 3er edition. Pág. 486
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 4


Circuitos secuenciales síncronos

2. Informacion de los subtemas


2.1 Subtema 1: MSS modelo Mealy
Como se mencionó antes, una MSS modelo Mealy tiene la característica de que sus
salidas dependen del estado presente del circuito y de sus entradas, tal como vemos a
mayor detalle en la figura 2.

FIGURA 2: Diagrama de bloques de máquina de Mealy


Fuente: AUTOR

La estructura de una MSS se constituye por un conjunto de Circuitos Combinatoriales y


algunos flip-flops que constituyen el Bloque de Memoria de Estados. El circuito recibe
un grupo de entradas In y produce otro grupo de salidas Out. Los valores de salidas de
los flip-flops representan el Estado Presente y.H del circuito.

Bajo el control de la señal de Clock, las salidas de los flip-flops cambian de un estado a
otro, éstos estados generan la lógica combinatorial llamada Decodificador de Estado
Siguiente/Decodificador de Entrada dependiendo de los valores de entradas y del valor
de Estado Presente realimentado. De esta manera el circuito se mueve de un estado al
otro. Para asegurar que solo una transición de un estado al otro puede tener lugar
durante un periodo de Clock, los flip-flops deben ser de disparo por flanco (edge-
triggered).
© Universidad Estatal de Milagro – UNEMI

Las salidas son generadas por otro circuito combinatorial llamado Decodificador de
Salida. Las salidas son una función de Estado Presente de los flip-flops y de las entradas
In.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 5


Circuitos secuenciales síncronos

2.2 Subtema 2: MSS modelo Moore


Aunque las salidas siempre dependen del Estado Presente, ellas no siempre dependen
de las entradas, y este es el caso de las MSS (Máquinas Secuenciales Sincrónicas)
modelo Moore. Ambos tipos de máquinas fueron bautizadas de esta manera en honor
a George Mealy y Edward Moore que investigaron la conducta de estos circuitos en los
años 1950s. En la figura 3 vemos la representación de una máquina modelo Moore.

FIGURA 3: Diagrama de bloques de máquina de Moore


Fuente: AUTOR
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 6


Circuitos secuenciales síncronos

2.3 Subtema 3: Diagramas de estado


El Diagrama de Estados es una herramienta gráfica que describe las transiciones paso a
paso de una MSS.
El Diagrama de Estados para un circuito secuencial ocupa el mismo lugar que la Tabla
de Verdad para los circuitos combinatoriales.

Se representa como un arreglo de círculos (óvalos) interconectados con segmentos con


flechas.
Cada círculo (óvalo) representa un estado (Estado Presente) de la MSS y las flechas
representan los flancos de Reloj que hacen que la MSS cambie a otro estado (Estado
Siguiente).

Estados: Representan
situaciones diferentes de
una secuencia en el tiempo

Segmentos: Representan la
transición de estado en
estado.
Solo se ejecutan en el
instante del flanco positivo
de Reloj

Los diagramas de estado relacionan las entradas versus las salidas de la MSS. No debe
incluir ni la señal de CLK ni la de Reset/Clear que se suponen implícitas en el diagrama
de estados. Esto quiere decir queda de la siguiente manera de acuerdo a la figura 4.
© Universidad Estatal de Milagro – UNEMI

FIGURA 4: Representación de señales en diagrama de bloques


Fuente: AUTOR

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 7


Circuitos secuenciales síncronos

Cada estado debe mostrar la siguiente información:

● Nombre del estado.


● Código binario de identificación.

Cada segmento debe incluir un formato valorado que represente:

● Condiciones de entradas para ir al estado siguiente (Transición)


● Qué valor toma de salida en ese estado y bajo esa condición de entrada.

Tomemos a continuación el siguiente ejemplo:

Sea una máquina secuencial sincrónica que tiene una entrada de control X y otra de
reloj CLOCK. Dos salidas A y B. En flancos positivos consecutivos de CLOCK el código en
AB cambia de 00 a 01 a 10 a 11 y se repite. Todos esto si X es verdadera, si X es falsa la
máquina mantiene su estado presente.

FIGURA 5: Diagrama de máquina secuencial sincrónica


Fuente: AUTOR
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 8


Circuitos secuenciales síncronos

FIGURA 5: Diagrama de estados y de entradas y salidas.


Fuente: AUTOR

En este caso vemos que la transición de estados depende únicamente del estado
presente del circuito, quiere decir que el circuito tiene por default que estando en un
estado tiene que hacer la transición al siguiente, a este tipo de máquinas se las conoce
como máquinas Moore.

Ahora revisemos el siguiente ejemplo:

Dibuje el diagrama de estados para una máquina secuencial sincrónica que debe
detectar la secuencia 1 0 1 en la entrada DT. Cada vez que se detecta la secuencia se
© Universidad Estatal de Milagro – UNEMI

debe generar inmediatamente un pulso en la salida P. Asuma que si puede existir


“traslape” de la secuencia, es decir una nueva secuencia puede empezar con el mismo
“1” con que termina la anterior.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 9


Circuitos secuenciales síncronos

FIGURA 6: Ejemplo diagrama de bloques de MSS.


Fuente: AUTOR

FIGURA 7: Diagrama de estados y de entradas y salidas.


Fuente: AUTOR
© Universidad Estatal de Milagro – UNEMI

Vemos ahora que la salida de este circuito varía dependiendo de la entrada y su estado
se mantiene si su entrada se mantiene, quiere decir que depende tanto de la entrada
como del estado presente, están relacionadas entre sí. A este tipo de máquinas se las
conoce como modelo Mealy.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 10


Circuitos secuenciales síncronos

2.4 Subtema 4: Análisis de circuitos secuenciales


síncronos
Vamos a tomar ahora el caso que nos pidan diseñar un circuito secuencial en base a
ciertas premisas que tienen que cumplirse. Vamos a enumerar los pasos a seguir y que
se recomienda implementar al momento de diseñar un circuito secuencial.

1. Estudiar las especificaciones que pide el circuito y entender cómo va funcionar.

2. Crear un diagrama de bloques que identifique las entradas y salidas del circuito.
Se recomienda tener claro cuando se generan las salidas y en qué condiciones.

3. Diseñar un diagrama de estados donde se identifique correctamente sus


estados y se defina de manera correcta las transiciones, detallando la entrada y
el resultado a la salida. Se debe iniciar con el estado de reset.

4. Desarrollar una tabla de estados presentes y siguientes. Seleccionar el


elemento de memoria adecuado (flip flop) para el bloque de memoria de
estados. Para cada bit del código de estado, debe agregar tantas columnas
como entradas tenga el FF seleccionado. Estas columnas se llenan usando la
función de excitación del elemento de memoria escogido (flip flop).

5. Elaborar los mapas de Karnaugh de los estados siguientes para implementar el


decodificador de estado siguiente.

6. Elaborar los mapas de Karnaugh para implementar el Decodificador de Salida.

7. Graficar el diagrama de conexiones.

8. Graficar el diagrama de tiempo.


© Universidad Estatal de Milagro – UNEMI

Con este procedimiento, realizaremos un ejemplo a continuación aplicando la


metodología.

Diseñar una MSS que tiene siguientes especificaciones: El circuito tiene una entrada w
y una salida z. Inicialmente la salida z es igual 0. La salida z se hace igual a 1 si durante
de dos periodos consecutivos de Clock la entrada w es igual a 1.

1.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 11


Circuitos secuenciales síncronos

Es recomendable primero graficar lo que podría ser el funcionamiento de la máquina


de estado, realizar trenes de impulsos aleatorios para la entrada y un tren de impulsos
constante para el reloj, de ahí graficar la salida para cada caso.

2.

Hacer un diagrama de bloques donde se identifiquen las entradas y salidas, para este
caso tenemos la entrada W y la señal de reloj Clock, ambas entradas trabajan con
lógica positiva. Por último, tenemos la salida Z que igualmente tiene una lógica
positiva.

3.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 12


Circuitos secuenciales síncronos

Se realiza un diagrama de estados detallando cada estado y qué condición de entrada


requiere para realizar la transición de un estado a otro. Para este caso etiquetaremos
los estados con código binario, a (00), b (01), c (10) y dont care (11).

4.

Observando la tabla de estados presente y siguientes podemos definir que los


elementos de memoria serán flip flops tipo D de disparo por flanco positivo. En este
caso D1 es igual a Y1 y D0 es igual a Y0.

5. y 6.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 13


Circuitos secuenciales síncronos

Realizamos mapas de Karnaugh para cada uno de los estados siguientes y obtener su
expresión de salida sumarizada.

7.

Graficamos las expresiones de salida con las compuertas combinatoriales que hemos
aprendido en capítulos anteriores, se utiliza como variables de entradas los estados
presentes.

8.
© Universidad Estatal de Milagro – UNEMI

Con la obtención de las expresiones de salidas obtenemos mediante un software o


simulador de circuitos secuenciales las salidas de estado siguiente para cada entrada.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 14


Circuitos secuenciales síncronos

3. Bibliografía

» Stephen Brown, Zvonko Vranesic (2009). Fundamentals of Digital Logic with


VHDL Design 3er edition. Mc Graw Hill.
» Widmer, Ronald tocci - Neals. (2007). sistemas Digitales Principios y
Aplicacion. Mexico: Pearson Educacion.
» Floyd. (2004). Fundamentos de Electrónica Digital. Mexico. Pearson
Educacion.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 15


ÍNDICE

1. Unidad 3: Máquinas secuenciales Síncronas y Asíncronas ...................................3

Tema 2: Circuitos secuenciales asíncronos ................................................................... 3

Objetivos: ...................................................................................................................... 3

2. Información de los subtemas .............................................................................4

2.1 Subtema 1: Comportamiento asincrónico ......................................................... 4

2.2 Subtema 2: Análisis de circuitos asincrónicos .................................................... 6

2.3 Subtema 3: Diagramas de estados .................................................................... 8

2.4 Subtema 4: Convertidores A/D y D/A............................................................... 17

3. Bibliografía ......................................................................................................25

2
Circuitos secuenciales asíncronos

1. Unidad 3: Maquinas secuenciales


Síncronas y Asíncronas
Tema 2: Circuitos secuenciales asíncronos
Objetivos:

Al finalizar el tema 6 el estudiante aprenderá a:

• Analizar circuitos secuenciales asíncronos.


• Sintetizar circuitos secuenciales asíncronos.
• Diferenciar entre estados estables e inestables.
• Conocer la diferencia entre convertidores A/D y D/A

En el tema pasado cubrimos lo que son los circuitos secuenciales síncronos en donde
sus estados eran representados por flip flops que a su vez eran controlados por reloj.
Los cambios de estado ocurrían en el flanco positivo o negativo del pulso del reloj
dependiendo de su lógica. En este tema veremos circuitos secuenciales que no
dependen de un pulso de reloj y que utilizan flip flops, a estos circuitos los vamos a
llamar secuenciales asíncronos.

En vez de ser sus estados cambiados por pulsos de reloj, los circuitos secuenciales
asincrónicos cambian sus estados dependiendo de sus entradas si son 1 o 0 en
cualquier instante de tiempo. Para alcanzar un funcionamiento adecuado, las entradas
deben cambiar una a la vez. Además, debe haber suficiente tiempo entre los cambios
de valores de entrada para permitir al circuito alcanzar un valor estable. Es decir, no
debe producirse ningún cambio en las entradas mientras la maquina secuencial está en
transición de un estado a otro.

Cuando se cumplen estas condiciones, se dice que la maquina secuencial asincrónica


© Universidad Estatal de Milagro – UNEMI

opera en un modo fundamental.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 3


Circuitos secuenciales asíncronos

2. Informacion de los subtemas


2.1 Subtema 1: Comportamiento asincrónico
Para explicar el comportamiento asincrónico, vamos a considerar el circuito del FF SR
expresado en la figura 1. El lazo en el circuito le da esa característica secuencial. Este es
un circuito secuencial asincrónico porque no necesita de un pulso de reloj para que
ocurran cambios en la salida Q, tal como vemos en la figura 1. Lo que sucede es que
las compuertas NOR combinadas generan un retraso y este retraso es representado
por la caja con el triángulo en la figura 1. Entonces, vemos que el valor de y (estado
presente) es retroalimentado hacia la entrada del circuito y este a su vez genera el
valor del estado siguiente Y, añadiendo el retraso al estado Y obtenemos el nuevo
estado presente “y” que es el mismo estado “Y”.

FIGURA 1: “Fundamentals of Digital Logic with VHDL Design 3er edition” Pag 585

Analizando el FF SR, podemos derivar la tabla de estados como se ilustra en la figura 2.


Cuando el estado presente es y = 0 y las entradas S y R = 0, el circuito produce una
salida de Y = 0. Por lo tanto y = Y, el estado del circuito no cambia. Decimos entonces
que el circuito es estable bajo estas condiciones de entrada.
© Universidad Estatal de Milagro – UNEMI

FIGURA 2: “Fundamentals of Digital Logic with VHDL Design 3er edition” Pag 585

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 4


Circuitos secuenciales asíncronos

Ahora asumamos que R cambia a 1 mientras S se mantiene en 0. El circuito sigue


generando salida Y = 0 y continua estable. Ahora con R igual a 0 y S igual a 1 vemos que
a la salida se genera Y = 1, por lo tanto, el circuito ya no es estable. Luego del retraso
generado a la salida, el nuevo estado presente es igual a 1 y se mantendrá así mientras
SR = 10. El circuito vuelve a ser estable.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 5


Circuitos secuenciales asíncronos

2.2 Subtema 2: Análisis de circuitos asincrónicos


Para Para familiarizarnos un poco más con los circuitos asíncronos, vamos a diseñar
uno tomando un dispositivo sincrónico como los es el flip flop tipo D, como vimos en
capítulos anteriores este flip flop genera como salida el mismo valor de entrada
cuando se activa el flanco de reloj, pero como este caso vamos a diseñarlo como una
maquina asíncrona, el reloj pasa a ser una entrada más junto a la entrada D,
obviamente ambas entradas no se encuentran sincronizadas.

Como primer paso vamos a evaluar la expresión Y que es el estado siguiente para
todas las condiciones de entrada C (clock) y D, para esto nos vamos a referir a la figura
3 donde se muestra la tabla de excitación. Observamos que el circuito cambia su
estado únicamente cuando C= 1 y D difiere del estado presente (y), en otros casos el
circuito es estable. Se usarán los símbolos A y B para representar los estados presentes
y=0 y y=1, con esto obtendremos la tabla de flujo y el diagrama de estados como se
muestra en la figura 4.

FIGURA 3: “Fundamentals of Digital Logic with VHDL Design 3er edition” Pag 589
© Universidad Estatal de Milagro – UNEMI

FIGURA 4: “Fundamentals of Digital Logic with VHDL Design 3er edition” Pag 589

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 6


Circuitos secuenciales asíncronos

Con la tabla de excitación podemos proceder a realizar el mapa de Karnaugh para


obtener la expresión de Y sumarizada a continuación.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 7


Circuitos secuenciales asíncronos

2.3 Subtema 3: Diagramas de estados


Para los circuitos asíncronos es muy útil reducir el número de estados porque se
termina implementando circuitos más sencillos. Para esto vamos a presentar el
proceso de fusión.

En una tabla de flujo con gran cantidad de filas, existen muchas posibles para fusionar
sus estados. En este caso existe un procedimiento más estructurado para tomar
decisiones. Un procedimiento valido es definido con el concepto de “estados
compatibles” o “estados equivalentes”.

Dos estados (filas en la tabla de flujo), Si y Sj, dicen ser compatibles o equivalentes si no
hay conflicto de estados para cualquier valor de entrada. Para cualquier valor de
entrada, una de las siguientes condiciones debe ser verdad:

• Ambos Si y Sj deben tener el mismo estado siguiente.


• Ambos Si y Sj son estables.
• El estado siguiente de Si o Sj, o ambos tiene valor dont care.

Sin embargo, lo que se debe cumplir para los dos estados es que deben tener la misma
salida para cualquier valor de entrada.

Consideremos como ejemplo la tabla de flujos de la figura 5. Vamos a examinar la


compatibilidad entre todos los estados. El estado A es compatible con el estado H. El
estado B es compatible con los estados F y G. El estado C no es compatible con ningún
estado. El estado D es compatible con el estado E. Lo mismo para los estados F y G, y
los estados G y H. En resumen los estados compatibles son: (A, H), (B, F), (B, G), (D, E),
(F, G) y (G, H).
© Universidad Estatal de Milagro – UNEMI

FIGURA 5: “Fundamentals of Digital Logic with VHDL Design 3er edition” Pag 613

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 8


Circuitos secuenciales asíncronos

Ahora identificados los estados compatibles, realizaremos el diagrama de estados


compatibles siguiendo los siguientes pasos:

• Cada fila de la tabla de estados es representada por un punto etiquetado con el


nombre de la fila.
• Una línea es dibujada conectando los puntos que corresponden a los estados
compatibles.

En base a las dos premisas y para el ejemplo que estamos llevando a cabo obtenemos
el diagrama de compatibilidad detallado en la figura 6.

FIGURA 6: “Fundamentals of Digital Logic with VHDL Design 3er edition” Pag 614

En base al diagrama de compatibilidad podemos entonces reemplazar filas A y H con


una nueva fila A siendo estable cuando tengamos las siguientes entradas w2w1= 00 y
01. Además, se dejará B como estado siguiente cuando w2w1= 10 y E cuando w2w2=
1. Por lo tanto, el nuevo estado A y sus estados siguientes quedaran como se muestra
en la nueva tabla de flujos detallada en la figura 7. Ahora reemplazaremos las filas B, G
y F con el nuevo estado B que requiere estabilidad cuando w2w1= 00 y 10. El estado
siguiente para la entrada w2w1= 01 debe ser D para satisfacer el requerimiento del
antiguo estado F. El estado siguiente para la entrada w2w1 = 11 debe ser C, para
satisfacer al viejo estado B. Observar que el estado G antiguo no tiene requerimientos
© Universidad Estatal de Milagro – UNEMI

de transición de estados para las entradas w2w1= 01 y 11. La fila C se mantiene por no
tener compatibilidad con ningún estado, excepto para la entrada w2w1= 01 tiene que
cambiar su estado siguiente de H a A. Filas D y E son reemplazadas por la nueva
columna D, siguiendo el mismo razonamiento.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 9


Circuitos secuenciales asíncronos

FIGURA 7: “Fundamentals of Digital Logic with VHDL Design 3er edition” Pag 614

Revisaremos ahora un ejemplo de diseño de celda binaria especial. En la celda binaria


básica la combinación de entradas Set = 1 y Reset = 1 no está permitida. En esta celda
binaria especial para la misma combinación se desea tener la salida Q=1 y la salida
Qn=0 (operación Set) tal como se muestra en la figura 8.
Por lo tanto, cuando las entradas Set = Reset =1 pasan a Set = Reset = 0, las salidas
deben conservar los valores Q=1 y Qn=0.

FIGURA 8: AUTOR

Pero hay que considerar el hecho que en el diseño de una MSA en modo fundamental
solo una de las entradas puede cambiar a la vez. Esto significa que el cambio de las
entradas de la combinación 11 a la combinación 00 debe ejecutarse en dos pasos: 11-
10- 00 o 11- 01- 00. Se debe tener esto presente en el momento de diseñar el
Diagrama de Estados Primitivo, tal como se muestra en la figura 9.
© Universidad Estatal de Milagro – UNEMI

FIGURA 9: AUTOR

Comenzamos por la condición Q=1 por cuanto es el caso especial mencionado.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 10


Circuitos secuenciales asíncronos

Se tiene los mismos 4 estados básicos que antes (a, b, c. d). El estado “e”, se define
para la nueva condición SET.
El camino de los estados e – f – a, realiza la transición de 11 a 00 suponiendo que lo
que se desea es mantener la salida set (10) durante todo el cambio.
Procederemos ahora a realizar el estado de flujos donde definiremos en las filas todos
los estados con sus valores de estado que los mantiene estable (encerrados en círculo)
y sus estados de valor siguiente que realizan la transición a otro estado, así mismo se
observa del lado derecho las salidas Q y Qn, como se pueden apreciar en la figura 10.

FIGURA 10: AUTOR

Aplicaremos ahora las reglas para obtener los estados compatibles para esto deberán
cumplir una de las premisas vistas anteriormente, por ejemplo si tomamos los estados
cuyas salidas son 1 tenemos los estados a,b,e,f. Si tomamos el estado a vemos que es
compatible con el estado b, puesto a que en todas las combinaciones de entrada se
tiene los mismos estados siguientes, recordar que el valor dont care lo podemos
utilizar como comodín y puede tomar cualquier valor de estado. Luego vemos que se
cumple la misma condición b con e, b con f y e con f. Ahora veamos los 2 únicos
estados c y d que tienen valor de salida 0, observamos que los 2 son compatibles
debido a que tienen los mismos valores de estado siguiente. Por lo tanto con estas
compatibilidades, graficamos lo que es el diagrama de máxima equivalencia como se
© Universidad Estatal de Milagro – UNEMI

observa en la figura 11.

FIGURA 11: AUTOR

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 11


Circuitos secuenciales asíncronos

Basado en las equivalencias podemos sacar los 6 estados con 3 parejas, de la siguiente
manera:

A (a,b) C (c,d) E (e,f)

Pasamos a obtener el diagrama de flujos que se muestra en la FIGURA 12.

FIGURA 12: AUTOR

Tenemos ahora el diagrama de flujos reducido, con esto podemos diagramar el


diagrama de estados reducido que quedaría como se muestra en la figura 13.

FIGURA 13: AUTOR


© Universidad Estatal de Milagro – UNEMI

Condiciones de carrera critica y no critica

Al cambiar una de las entradas puede producirse un cambio en la MSA de un estado a


otro. En el Mapa de Excitación el cambio de una de las entradas, se representa
mediante el movimiento horizontal de una columna a la otra. El cambio de estado, se
representa mediante el movimiento vertical de una fila a la otra. La MSA pasa de un
estado estable al otro a través de la celda de estado de transición. El código en el
estado de transición indica a que fila se dirige la MSA.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 12


Circuitos secuenciales asíncronos

FIGURA 14: AUTOR

Si al cambiar una entrada, más de una variable de Estado Siguiente (variable de


excitación) cambia, se presentan las condiciones de carrera.

Condiciones de carrera no critica

FIGURA 15: AUTOR

Las dos variables de excitación (y las de estado siguiente) no pueden cambiarse al


mismo tiempo. Por lo tanto, la MSA en el paso de estado con el código 11 al estado
© Universidad Estatal de Milagro – UNEMI

con el código 00, puede dirigirse por uno de los dos caminos: 11- 01- 00 o 11-10-00.
No se puede predecir qué camino va a tomar la MSA. Esto depende de los retardos
que experimentan las señales de las variables al pasar por sus respectivos circuitos. Por
lo tanto, ambos caminos deben estar libres de estados estables.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 13


Circuitos secuenciales asíncronos

Condiciones de carrera critica

FIGURA 16: AUTOR

Si en paso del estado que tiene código 11 al estado con código 00 se encuentra otro
estado estable, la MSA puede quedarse en este estado. Es decir, la MSA no va a
funcionar correctamente. Por lo tanto, la asignación de los códigos de estados tiene
extrema importancia.

Las carreras no críticas se utilizan para evitar carreras críticas o para introducir
retardos de tiempo adicionales en transiciones secundarias. No existe una regla en
este caso, pero ayuda mucho tratar de conservar la distancia unitaria entre los códigos
de estados que tienen doble enlace.
© Universidad Estatal de Milagro – UNEMI

FIGURA 17: AUTOR

Por ejemplo, analizando el Diagrama de Estados Reducido podemos observar que


existe doble enlace entre los estados T0 y T1. También entre T0 y T2.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 14


Circuitos secuenciales asíncronos

• Asignación de códigos de estados.

FIGURA 18: AUTOR

• Mapas de excitación

FIGURA 19: AUTOR

• Mapas de las variables de excitación


© Universidad Estatal de Milagro – UNEMI

FIGURA 20: AUTOR

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 15


Circuitos secuenciales asíncronos

Resultado de la agrupación:

• Mapa para la salida Q.H

FIGURA 21: AUTOR


© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 16


Circuitos secuenciales asíncronos

2.4 Subtema 4: Convertidores A/D y D/A


En esencia la conversión digital a analógico +}}, tal como se aprecia en la figura 22.

FIGURA 22: “Convertidores digital a analógico y analógico a digital (Gutiérrez, Gil)” Pag 1

La mayoría de las señales de audio modernas se almacenan de forma digital, por


ejemplo, CD, MP3. Para ser escuchadas a través de altavoces deben ser convertidas en
analógicas. Lectores de CD, reproductores digitales de la música y tarjetas de sonido de
los PC montan por ello un dispositivo de este tipo de forma interna.

Tomemos ahora el ejemplo de un convertidor DAC (Digital Analogic Converter) de 4


bits. Observe en la figura 23 que hay una entrada de referencia de voltaje Vref; esta
entrada se utiliza para determinar la salida a escala completa o valor máximo que
puede producir el convertidor DAC.

Las entradas digitales D, C, B, A se derivan por lo general del registro del registro de
salida de un sistema digital. Los 16 (24) números binarios representados por estos 4
bits. Para cada numero de entrada, el voltaje de salida del convertidor DAC es un valor
único. Para este caso el voltaje de salida Vsal es igual en voltios al número binario, la
misma idea se aplicaría si su salida fuera corriente.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 17


Circuitos secuenciales asíncronos

FIGURA 23: “Convertidores digital a analógico y analógico a digital (Gutiérrez, Gil)” Pag
2

Para la implementación tenemos 3 métodos: Método de las corrientes ponderadas,


redes escalera y redes R-2R.

Para el primer método como vemos en la figura 24, cada interruptor S simboliza un
conmutador, el cual puede ser implementado por transistores JFET y en cuya
compuerta está relacionada electrónicamente con la salida de un bit de un circuito
digital. Siendo Sn-1 el bit con mayor peso ponderado MSB y So LSB el bit con menor
peso de ponderación del bit estas conectan a cada resistencia a dos posibles tensiones.
Si las dos posibles tensiones son iguales y de signo contrario permitirán unas tensiones
de salida simétricas, si una de las tensiones es positiva Vref y la otra tierra permitirá
únicamente un rango positivo de señal de salida.
© Universidad Estatal de Milagro – UNEMI

FIGURA 24: “Electrónica Digital (González)” Pag 309

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 18


Circuitos secuenciales asíncronos

El segundo método convertidor DAC con redes escalera, estas permiten reducir rango
de valores de las resistencias. En la figura 25 se muestra un ejemplo, aunque no se
profundizará en el tema porque estas se ven superadas por las redes R-2R.

FIGURA 25: “Convertidores digital a analógico y analógico a digital (Gutiérrez, Gil)” Pag 3

Como tercer y último método, tenemos las redes R-2R, esta red resistiva tiene la
particularidad de que cualquiera que sea el número de secciones la resistencia vista
(excepto la final) es R. este circuito puede usarse como se muestra en la figura 26 para
obtener un conversor digital analógico muy eficiente.

FIGURA 26: “Convertidores digital a analógico y analógico a digital (Gutiérrez, Gil)” Pag
© Universidad Estatal de Milagro – UNEMI

Ahora se revisará lo que son los convertidores analógicos a digitales ADC (Analogic
Digital Converter), este convertidor es un dispositivo electrónico capaz de convertir
una señal analógica, ya sea de tensión o corriente, en una señal digital mediante un
cuantificador y codificándose en muchos casos en un código binario en particular, tal
como vemos en el caso práctico mostrado en la figura 27.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 19


Circuitos secuenciales asíncronos

FIGURA 27: “Convertidores digital a analógico y analógico a digital (Gutiérrez, Gil)” Pag
4

Toda tecnología digital (audio, video) está basado por la técnica de muestreo o
sampling en inglés (figura 28). En música, cuando una grabadora digital toma una
muestra, toma una fotografía fija en forma de onda y convierte en bits, que pueden ser
almacenados y procesados.

Comparado con la grabación analógica, está basada en registros de voltaje como


patrones de magnetización en las partículas de óxido de la cinta magnética, el
muestreo digital convierte el voltaje en dígito 0s y 1s y pueden ser representados y
vueltos nuevamente a la forma original.

FIGURA 28: “Convertidores digital a analógico y analógico a digital (Gutiérrez, Gil)” Pag
© Universidad Estatal de Milagro – UNEMI

La cuantización como proceso hace convertir valores continuos, por ejemplo: voltajes
en serie de valores discretos.

Por ejemplo, el audio digital (MP4, WAV, etc) tiene dos características, el muestreo
(tiempo) que representa el tiempo de captura de una señal y la cuantización (nivel) es
el complemento de amplitud del muestreo; es decir, el muestreo mide el tiempo, la
cuantización es la técnica donde un evento analógico es medido dado un valor
numérico.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 20


Circuitos secuenciales asíncronos

Debe tomarse muestras a tiempos menores y cuantizar a mayores niveles (bits), en


caso de suceder lo contrario suceden errores de cuantización. Se hace referencia a
este proceso en la figura 29.

FIGURA 29: “Convertidores digital a analógico y analógico a digital (Gutiérrez, Gil)” Pag
5

Existen 4 tipos de ADC y son: Convertidor ADC de aproximaciones sucesivas, de doble


rampa, de ancho de rampa y delta.

El primero convertidor ADC de aproximaciones sucesivas logra el resultado final


sumando o restando la mitad del ultimo bit introducido como se observa en la figura
30.

Desde el punto de vista de HW se utiliza un registro, que almacenará el valor digital y


un circuito de control. El registro se inicializará con la combinación 100…00, que es el
valor medio de la salida digital. El comparador indicará si el valor analógico de la
entrada está por encima o por debajo del valor analógico equivalente a esa salida. Si
está por encima, el circuito de control introduce un 1 en el segundo bit de registro
(110..00), lo que equivale a sumarle la mitad del valor inicial. Si el valor analógico de
entrada estuviese por debajo se introduce un 0 en el primer bit y un 1 en la siguiente
© Universidad Estatal de Milagro – UNEMI

posición (010….00), lo que equivale a restarle la mitad del valor añadido o restado en
función de la salida del comparador. El proceso finaliza cuando todos los bits
cambiado.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 21


Circuitos secuenciales asíncronos

FIGURA 30: “Convertidores digital a analógico y analógico a digital (Gutiérrez, Gil)” Pag
5

Tenemos ahora el convertidor ADC de doble rampa, este tipo de conversores no


incluyen ni un tipo de realimentación. Se utiliza en aplicaciones donde se requiere
precisión y en los que el tiempo de conversión no es muy importante. El esquema
general se puede ver en la figura 31.

La característica mas importante de este tipo de convertidores es la precisión, como


resultado de la independencia de su salida al respecto a la estabilidad del valor del
condensador o frecuencia del reloj, con tal que se mantengan constantes durante el
periodo de conversión. Por consiguiente, la precisión solo será función de la linealidad
de las rampas que entregue el integrador y de la precisión de la referencia. La principal
desventaja es que el tiempo de conversión es largo y variable, por lo que se utiliza en
aplicaciones donde la velocidad de conversión no es muy importante.
© Universidad Estatal de Milagro – UNEMI

FIGURA 31: “Electrónica Digital (González)” Pag 321

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 22


Circuitos secuenciales asíncronos

Tenemos ahora el convertidor ancho de rampa, se denomina también como


convertidor AD con integrador de simple rampa o convertidor con conversión tensión
a tiempo. En el momento de inicio de la conversión, el contador se pone a cero y se
comienza a integrar la señal de referencia. Cuando la rampa generada es mayor que la
señala de entrada se detiene la cuenta y el resultado del contador será una relación
entre la señal de entrada y la referencia.

Los inconvenientes de este convertidor son, la falta de linealidad del generador de


rampa y el offset de entrada del comparador de tensión, así como la posible variación
de la frecuencia del reloj. El esquema general de este tipo de conversores se puede ver
en la figura 32.

FIGURA 32: “Electrónica Digital (González)” Pag 323


© Universidad Estatal de Milagro – UNEMI

El último convertidor ADC está compuesto por un sumador analógico, un integrador,


un comparador, un DAC de un bit y un filtro (figura 33). Cuando comienza la
conversión tanto a la salida del DAC como del integrador tenemos 0 voltios. Los 0V del
DAC se suman a la entrada analógica y se integran, si el resultado es mayor a 0V a la
salida del comparador tenemos un 1 lógico, caso contrario un 0. La salida del
comparador entra al DAC, si tenemos un 1 a la salida tendremos la tensión de
referencia (Vref) y si tenemos un 0 Vref. Este proceso se repite continuamente hasta
obtener la precisión deseada. La salida digital que indica el valor de la entrada
analógica se obtiene mediante el filtrado digital de la serie de bits que se obtiene del
comparador, puede ser desde contar el número de unos hasta filtros de tercer orden.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 23


Circuitos secuenciales asíncronos

La principal ventaja de estos convertidores es su precisión, ya que si aumentamos el


número de muestras que se filtran aumentamos la precisión del sistema. Su principal
desventaja es el tiempo de conversión ya que necesita gran cantidad de muestras para
obtener un valor adecuado. En general, los conversores delta son programables
pudiéndose elegir diferentes precisiones con los que se puede llegar a un compromiso
entre precisión y velocidad de muestreo.

FIGURA 33: “Electrónica Digital (González)” Pag 324


© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 24


Circuitos secuenciales asíncronos

3. Bibliografía

» Stephen Brown, Zvonko Vranesic (2009). Fundamentals of Digital Logic


with VHDL Design 3er edition. Mc Graw Hill.
» Widmer, Ronald tocci - Neals. (2007). sistemas Digitales Principios y
Aplicación. México: Pearson Educación.
» Floyd. (2004). Fundamentos de Electrónica Digital. México. Pearson
Educación.
» González (2018). Convertidores Digital a Analógico y Analógico a Digital.
Universidad Yacambú.
» González, Pérez (2007). Electrónica Digital. Madrid. Delta publicaciones.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 25


ÍNDICE

1. Unidad 4: Procesamiento digital de datos...........................................................3

Tema 1: Fundamentos de FPGA .................................................................................... 3

Objetivos: ...................................................................................................................... 3

2. Información de los subtemas .............................................................................5

2.1 Subtema 1: Arquitectura .................................................................................... 5

2.2 Subtema 2: Lenguaje VHDL ................................................................................ 9

2.3 Subtema 3: Aplicaciones .................................................................................. 17

3. Bibliografía ......................................................................................................20

2
Fundamentos de FPGA

1. Unidad 4: Procesamiento digital


de datos
Tema 1: Fundamentos de FPGA
Objetivos:

Al finalizar el tema 7 el estudiante aprenderá a:

• Describir la arquitectura de una FPGA.


• Explicar el funcionamiento básico de una tabla de consulta LUT.
• Explicar las funciones integradas que tienen el FPGA.
• Representar señales en VHDL, escribir código simple VHDL.

Antes de hablar de FPGA y su arquitectura revisaremos un poco del concepto de lógica


programable que es el objetivo final de aprendizaje, de poder programar los FPGA
mediante lenguajes de programación a nivel de hardware y construir diversas
aplicaciones.

“La lógica programable requiere tanto de hardware como de software. Los dispositivos
lógicos programables pueden programarse para que el fabricante o el usuario pueda
llevar a cabo funciones lógicas específicas. Una ventaja de la lógica programable frente
a la lógica fija es que los dispositivos utilizan menos espacio de la tarjeta de circuito
impreso para una cantidad equivalente de lógica. Otra ventaja es que, con la lógica
programable, los diseños se pueden modificar fácilmente sin tener que recablear o
reemplazar componentes.” (Floyd, 2006, pág. 26)

“Existen muchos tipos de dispositivos lógicos programables, desde pequeños


dispositivos que pueden reemplazar a algunos de los dispositivos de función fija hasta
© Universidad Estatal de Milagro – UNEMI

complejos dispositivos de alta densidad que pueden reemplazar a miles de dispositivos


de función fija. Las dos principales categorías de los dispositivos lógicos programables
de usuario son los PLD (Programmable Logic Device, dispositivo lógico programable) y
las FPGA (Field Programmable Gate Array, matrices de puertas programable por
campo), que se muestran en la figura 1. Los PLD pueden ser SPLD (Simple PLD, PLD
simple) o CPLD (Complex PLD, PLD complejo).” (Floyd, 2006, pág. 26)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 3


Fundamentos de FPGA

FIGURA 1: Clasificación de dispositivos lógicos programables


Fuente: “Fundamentos de Sistemas Digitales, Floyd, 9na edición” Pag 26
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 4


Fundamentos de FPGA

2. Informacion de los subtemas


2.1 Subtema 1: Arquitectura
“La FPGA (Field Programmable Gate Array) tiene una estructura interna (arquitectura)
diferente como se ilustra en la figura 2. Los tres elementos básicos en una FPGA son el
bloque lógico configurable (CLB, Configurable Logic Block), las interconexiones y los
bloques de entrada/salida (E/S). Los bloques CLB de una FPGA no son tan complejos
como los bloques LAB o FB de un CPLD, pero suele haber muchos más bloques CLB.
Cuando los bloques CLB son relativamente simples, decimos que la arquitectura FPGA
es de granularidad fina. Cuando los bloques CLB son de mayor tamaño y más
complejos, decimos que la arquitectura es de granularidad gruesa.” (Floyd, 2006, pág.
27)

“Los bloques de E/S situados alrededor del perímetro de la estructura proporcionan un


acceso de entrada/salida o bidireccional, individualmente seleccionable, hacia el
mundo exterior. La matriz distribuida de interconexiones programables permite
interconectar los bloques CLB entre sí y conectarlos a las entradas y a las salidas. Los
dispositivos FPGA de gran tamaño pueden tener decenas de miles de bloques CLB,
además de memoria y otros recursos.” (Floyd, 2006, pág. 27)
© Universidad Estatal de Milagro – UNEMI

FIGURA 2: Estructura interna de la FPGA


Fuente: “Fundamentos de Sistemas Digitales, Floyd, 9na edición” Pág. 707

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 5


Fundamentos de FPGA

En la Figura 3 se muestra un encapsulado BGA (Ball-Grid Array) típico para FPGA. Estos
tipos de encapsulados pueden tener unos 1.000 pines de entrada y salida.

FIGURA 3: Encapsulado BGA


Fuente: “Fundamentos de Sistemas Digitales, Floyd, 9na edición” Pág. 29

Las FPGA son reprogramables y utilizan tecnología de proceso SRAM o de antifusibles


para implementar las conexiones programables. Las densidades pueden ir desde los
centenares de módulos lógicos hasta aproximadamente 180.000 módulos lógicos, en
encapsulados de hasta más de 1000 pines. Las tensiones de alimentación continua
están comprendidas habitualmente entre 1,2 V y 2,5 V, dependiendo del dispositivo
específico.

Bloques lógicos configurables

“Normalmente, un bloque lógico de FPGA está compuesto por varios módulos lógicos
más pequeños, que son las unidades componentes básicas y que en cierto modo
resultan análogos a las macroceldas de un CPLD.
La Figura 4 muestra los bloques lógicos configurables fundamentales (CLB) dentro de la
© Universidad Estatal de Milagro – UNEMI

matriz global de interconexiones programables dispuestas en filas/columnas y que se


utilizan para conectar entre sí los bloques lógicos. Cada CLB está formado por múltiples
módulos lógicos más pequeños y por una serie de interconexiones programables
locales que se emplean para conectar entre sí los módulos lógicos que componen el
CLB.” (Floyd, 2006, pág. 30)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 6


Fundamentos de FPGA

FIGURA 4: Bloques lógicos configurables


Fuente: “Fundamentos de Sistemas Digitales, Floyd, 9na edición” Pag 708

Módulos lógicos. “Un módulo lógico de un bloque lógico de una FPGA puede
configurarse para implementar lógica combinacional, lógica registrada o una
combinación de ambas. Se emplea un flip-flop que forma parte de la lógica asociada
para implementar lógica registrada. En la Figura 5 se muestra un diagrama de bloques
de un módulo lógico típico basado en LUT. Como ya sabemos, una LUT (Look-Up Table)
es un tipo de memoria programable que se utiliza para generar funciones lógicas
combinacionales suma de productos. La LUT realiza, esencialmente, el mismo trabajo
que una PAL o una PLA.” (Floyd, 2006, pág. 686)
© Universidad Estatal de Milagro – UNEMI

FIGURA 5: Módulo lógico basado en LUT


Fuente: dx“Fundamentos de Sistemas Digitales, Floyd, 9na edición” Pag 708

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 7


Fundamentos de FPGA

Generalmente, la organización de una LUT consiste en una serie de 2n celdas de


memoria, siendo n el número de variables de entrada. Por ejemplo, mediante tres
entradas se pueden seleccionar hasta ocho celdas de memoria, por lo que una LUT con
tres variables de entrada permite generar una suma de productos con hasta ocho
términos.
Dentro de las celdas de memoria LUT puede programarse un patrón de 1s y 0s, como
se ilustra en la Figura 6 para una función suma de productos especificada. Cada 1
significa que el término producto asociado aparecerá en la salida suma de producto
mientras que un 0 significa que dicho término producto asociado no aparecerá en la
salida suma de productos. La expresión de la salida suma de productos resultante es:
© Universidad Estatal de Milagro – UNEMI

FIGURA 6: Suma de productos en LUT


Fuente: “Fundamentos de Sistemas Digitales, Floyd, 9na edición” Pag 709

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 8


Fundamentos de FPGA

2.2 Subtema 2: Lenguaje VHDL


Un lenguaje de descripción de hardware (HDL) es una herramienta formal que sirve
para describir el comportamiento y la arquitectura de un circuito o sistema electrónico
utilizando diferentes niveles de abstracción y en muchos casos de modo jerárquico.
El VHDL Very High Speed Integrated Circuit Hardware Desing/Description Language.
surge de Intermetrics, Texas Instruments e IBM. Inicialmente fue llamado VHD2L. Es un
lenguaje amplio y prolijo; tanto así que algunos le han adjudicado un segundo
significado: Very Hard Description Language.
A mediados de los años 80 y desde 1987 se convirtió en un estándar de la IEEE.
Utilizando VHDL se puede diseñar, simular y sintetizar desde un CLC sencillo, hasta
sistemas digitales de gran complejidad tal como un microprocesador.

El Lenguaje VHDL ha ganado mucha popularidad entre los diseñadores de sistemas


digitales en los últimos años gracias a la aparición en el mercado de variadas
herramientas de diseño que utilizan el VHDL.
Numerosas firmas han adoptado el lenguaje VHDL como herramienta básica y lo han
incorporado a sus productos. Entre las mismas están: Altera [Quartus Prime], Xilinx
[Vivado]

Dentro de la estructura, VHDL está formado por la pareja Entidad-Arquitectura (Entity-


Architecture). A la pareja entidad-arquitectura se le llama modelo en VHDL. Un fichero
nombre.vhd puede contener uno o varios modelos.
© Universidad Estatal de Milagro – UNEMI

Por lo tanto, un diseño en VHDL será un fichero texto (no un dibujo), escrito en
cualquier editor, donde en la primera parte aparece la declaración de la entidad
(entity) y a continuación la definición de la arquitectura (architecture).

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 9


Fundamentos de FPGA

Entidad

“En la declaración (Carpio, 2000) de entidades, se definen las entradas, salidas y


tamaño de un circuito, explicitando cuáles son, de qué tamaño (de 0 a n bits), modo
(entrada, salida, ...) y tipo (integer, bit,...) .

• Las entidades pueden definir bien las entradas y salidas de un diseño más grande o
las entradas y salidas de un chip directamente.

• La declaración de entidades es análoga al símbolo esquemático de lo que queremos


implementar, el cual describe las conexiones de un componente al resto del proyecto,
es decir, si hay una entrada o puerto de 8 bits, o dos salidas o puertos de 4 bits, etc.”
(Carpio, 2000, pág. 40)

Entity. Cabecera del programa

“Port. Se indica que a continuación viene los puertos (o grupos señales) de entrada y/o
salida. Aquí se declaran las entradas y/o salidas con la sintaxis que se verá a
continuación. Las líneas empezadas por dos guiones son ignoradas por el compilador.
Así mismo, recordamos que el compilador no distingue las mayúsculas de las
minúsculas.
© Universidad Estatal de Milagro – UNEMI

End. Se indica que se ha acabado la declaración de puertos de entrada y/o salida, y que
se ha acabado la entidad” (Carpio, 2000, pág. 41)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 10


Fundamentos de FPGA

En VHDL las señales puede ser de cuatro modos diferentes:

Los tipos de señales posibles se muestran a continuación:


© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 11


Fundamentos de FPGA

Veremos ahora un ejemplo de designación de puertos:

“nombre_variable: modo tipo; Forma genérica de designar un puerto

Puertoa: in bit; El primer puerto es un bit de entrada, y su nombre es "puertoa"

Puertob: in bit_vector(0 to 7); El segundo puerto es un vector de 8 bits de entrada


siendo el MSB el puertob(0) y el LSB el puertob(7)

Puertoc: out bit_vector(3 downto 0); El tercer puerto es un vector de 4


bits de salida siendo el MSB el puertoc(3) y el LSB el puertoc(0)

Puertod: buffer bit; El cuarto puerto es un buffer de un solo bit, cuyo nombre es
"puertod"

Puertoe: inout std_logic; El quinto puerto es una entrada/salida del tipo estándar logic
de un solo bit” (Carpio, 2000, pág. 83)

Ahora que ya hemos revisado como declarar entradas y los tipos disponibles, vamos a
realizar a modo de ejemplo una declaración de entidad.

Escriba la declaración de identidad para un circuito digital con dos entradas (a, b) y una
salida f, como el mostrado:

Solución:
ENTITY ejemplo1 IS
© Universidad Estatal de Milagro – UNEMI

PORT ( x, y : IN std_logic ;
f : OUT std_logic ) ;
END ejemplo1 ;

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 12


Fundamentos de FPGA

Arquitectura

“La arquitectura indica el tipo de procesado que se realiza con la información


correspondiente a las señales de entrada, (declarados previamente en la entidad) para
llegar a tener los puertos de salida (también declarados en la entidad). En la
declaración de arquitecturas es donde reside todo el funcionamiento de un circuito, ya
que es ahí donde se indica que hacer con cada entrada, para obtener la salida. Si la
entidad es vista como una "caja negra", para la cual lo único importante son las
entradas y las salidas, entonces, la arquitectura es el conjunto de detalle interiores de
la caja negra.” (Carpio, 2000, pág. 102)

Cabecera de la arquitectura

Declaraciones de apoyo que se verán más


adelante.

Se da comienzo al programa.

Conjunto de sentencias, bucles, procesos,


funciones, que dan operatividad al
programa.

Fin del programa.

La estructura más común de un programa VHDL consiste en tres partes:


© Universidad Estatal de Milagro – UNEMI

1. Declaración de las bibliotecas utilizadas (library).

2. Una entidad (entity)

3. Una arquitectura (arquitecture)

Además, los comentarios se inician con dos guiones seguidos y terminan al final de la
línea.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 13


Fundamentos de FPGA

“El lenguaje VHDL se organiza y trabaja con bibliotecas. Una biblioteca VHDL es un
lugar donde el compilador VHDL almacena información referente a un proyecto de
diseño particular, incluyendo documentos intermedios que son usados en el análisis, la
simulación y la síntesis.” (Carpio, 2000, pág. 102)

Una biblioteca estándar muy usada es la biblioteca IEEE. La biblioteca IEEE es solo de
lectura y es del tipo global pues permite ser usada por varios programas a la vez. El
diseñador no puede interactuar con ella ni modificar su contenido. Para usarla se debe
escribir al inicio del programa:

library ieee;

Veremos ahora unos cuantos operadores básicos con la nomenclatura VHDL.


© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 14


Fundamentos de FPGA

Declaraciones concurrentes

La descripción por flujo de datos utiliza en su escritura ecuaciones simples de


asignación de señales, declaraciones de asignación condicional de señales (usando
when-else) o de asignación de señales seleccionadas (usando with-select-when).

Asignación de señales

El miembro de la derecha del operador de asignación <= se le conoce como expresión,


cuyo valor se obtiene evaluándola completa. Luego ese valor se deposita
en el miembro de la izquierda. En la implementación de circuitos simples, el miembro
de la derecha es la función minimizada, que asigna un valor de verdad a la salida.

Asignación de condición de señales

“Cuando una señal cambia de valor se dice que se ha producido un evento. La


existencia de eventos da lugar a otro evento. De esta manera se actualizan los valores
de las señales” (Carpio, 2000, pág. 110). De esta manera cuando la expresión booleana
cambie de valor, la expresión que se le asigne a la señal será distinta.

Asignación de condición de señales


“Este tipo de declaración de asignación evalúa la expresión que acompaña a la
© Universidad Estatal de Milagro – UNEMI

declaración with y cuando el valor coincide con una de las alternativas señaladas
después de la palabra clave when, entonces el valor correspondiente a esta alternativa
se le asigna al nombre de la señal.” (Carpio, 2000, pág. 103)

Cuando el valor de la señal para varias alternativas es el mismo, pueden ser expresadas
como una lista de valores separadas por barras verticales “|” La palabra clave others
sirve para cubrir todos los casos posibles faltantes.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 15


Fundamentos de FPGA

Ejercicio

Realizar la descripción en VHDL de tipo flujo de datos de la compuerta XOR.


© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 16


Fundamentos de FPGA

2.3 Subtema 3: Aplicaciones


“El rango de aplicaciones de las FPGA es muy amplio, debido a la versatilidad y a la
flexibilidad de estos dispositivos; siendo la principal aplicación de las FPGAs
el procesamiento digital de señales (DSP), comunicaciones, procesado de datos, etc.
La elección de una FPGA para aplicaciones de tratamiento de señal se debe a su alta
frecuencia de trabajo, a su capacidad de procesamiento en paralelo, y a su bajo precio
en comparación con los ASICs. En general, la lógica de un CPLD es insuficiente para
realizar dicho procesamiento.” (Carpio, 2000, pág. 201)

En la siguiente ilustración puede apreciarse la distribución de las aplicaciones de las


FPGA.

FIGURA 7: Distribución de aplicaciones de las FPGA


“VHDL: Lenguaje para síntesis y modelado de circuitos, 9na edición” Pag 250

De esta aplicación se derivan una gran variedad de aplicaciones de las FPGA, citándose
algunas de ellas a continuación:

▪ “Sistemas de visión artificial: En el mundo actual existen cada vez en más números
dispositivos que disponen de un sistema de visión artificial. Ejemplo de esto son las
© Universidad Estatal de Milagro – UNEMI

cámaras de videovigilancia, robots, etc. Muchos de estos dispositivos precisan de


un sistema para conocer su posición, reconocer los objetos de su entorno,
reconocer rostros de personas, y poder actuar e interactuar con ellos de la forma
adecuada. Esta característica requiere manejar unos volúmenes de imágenes muy
elevados, tratar dichas imágenes para detectar objetos, reconocer rostros, etc., en
la gran mayoría de ocasiones en tiempo real.” (Carpio, 2000, pág. 210)

▪ “Sistemas de imágenes médicas: Cada vez con más frecuencia se están empleando
las FPGAs para el tratamiento de imágenes biomédicas obtenidas mediante

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 17


Fundamentos de FPGA

procesos de PET, escáner CT, rayos X, imágenes tridimensionales, etc. Estos


sistemas de visión médica cada vez precisan de más resolución y de una capacidad
de procesamiento mayor, incluso muchas necesitan poder desarrollarse en tiempo
real, por lo que las prestaciones que ofrecen las FPGAs de frecuencia y
procesamiento en paralelo se adaptan muy bien a estas necesidades.” (Carpio,
2000, pág. 210)

▪ “Radio definida por software (SDR): De forma tradicional, una radio consistía en
una antena, encargada de recibir y enviar una señal, y un hardware encargado de
procesar esa señal, filtrarla, modificar su frecuencia, etc. Este hardware no podía
modificar de forma notable la funcionalidad para la cual había sido diseñada. En la
actualidad gran parte de esta funcionalidad se traslada a un dispositivo electrónico,
que con frecuencia suele ser una FPGA, pudiendo limitarse la parte analógica a una
antena y a los convertidores ADC y DAC.” (Carpio, 2000, pág. 211)

▪ “Codificación y encriptación: La seguridad en el envío de mensajes es fundamental


en la vida diaria, por ejemplo, a la hora de enviar un email o de realizar una compra
por internet, y lo es más aún en el ámbito militar, aeronáutico y gubernamental. En
este terreno, la encriptación eficiente y segura de mensajes se convierte en un
objetivo prioritario. Las FPGA pueden aportar en este terreno su capacidad de
manejar grandes volúmenes de información y sus bloques optimizados para realizar
operaciones aritméticas.” (Carpio, 2000, pág. 211)

▪ “Radioastronomía: La radioastronomía es la ciencia que se encarga de estudiar los


fenómenos que ocurren en el espacio mediante la captación de la radiación
electromagnética procedente de éste. De forma similar a las aplicaciones
anteriores, precisa del procesamiento de una gran cantidad de información en el
que la FPGA puede aportar todo su potencial.” (Carpio, 2000, pág. 211)

▪ “Reconocimiento de voz: El reconocimiento de la persona que habla es una técnica


© Universidad Estatal de Milagro – UNEMI

empleada en seguridad, sistemas de recuperación de información, etc., y se espera


que en el futuro su ámbito de aplicación aumente. En este contexto, la FPGA
resulta muy eficiente a la hora de realizar la comparación de la voz de una persona
con unos patrones previamente almacenados.” (Carpio, 2000, pág. 211)

▪ “Aeronáutica y defensa: Además de las mencionadas previamente, existen


multitud de aplicaciones aeronáuticas y de defensa que emplean FPGA debido a las
buenas características que éstas ofrecen.” (Carpio, 2000, pág. 211)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 18


Fundamentos de FPGA

FIGURA 8: Diagrama de bloques de FPGA


“VHDL: Lenguaje para síntesis y modelado de circuitos, 9na edición” Pag 250

“La principal ventaja de este tipo de radio es que su funcionalidad viene definida por el
diseño del software, de forma que su modificación o actualización es sencilla y no
precisa de la sustitución de ningún elemento de hardware.” (Carpio, 2000, pág. 212)

Data Center / Cloud: El internet de las cosa (IoT), y en general el big data, están
generando un crecimiento exponencial de los datos adquiridos y procesados, que
junto con el análisis computacional de los mismos mediante técnicas de aprendizaje
profundo de múltiples operaciones paralelas/concurrentes, están conllevando una alta
demanda de capacidad computacional de baja latencia, flexible y segura que no se
resuelve añadiendo más servidores / blades, debido al disparatado incremento del
coste en espacio, consumo y dinero. Bajo este panorama, las puertas del mundo del
Data Center se están abriendo de manera masiva a las FPGAs, debido a su capacidad
de aceleración computacional, flexibilidad de configuración y la seguridad que
garantiza el hardware frente al software.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 19


Fundamentos de FPGA

3. Bibliografía

» Carpio, F. P. (2000). VHDL: Lenguaje para sintesis y modelado de circuitos.


Madrid: Alfaomega.

» Floyd, T. L. (2006). FUNDAMENTOS DE SISTEMAS DIGITALES. Madrid: PEARSON


EDUCACIÓN.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 20


ÍNDICE

1. Unidad 4: Procesamiento digital de datos...........................................................3

Tema 2: Fundamentos de microcontroladores y sistemas embebidos ......................... 3

Objetivos: ...................................................................................................................... 3

2. Información de los subtemas .............................................................................4

2.1 Subtema 1: Funcionamiento .............................................................................. 4

2.2 Subtema 2: Tipo de microcontroladores ............................................................ 8

2.3 Subtema 3: Aplicaciones de microcontroladores ............................................. 12

2.4 Subtema 4: Aplicaciones de sistemas embebidos ............................................ 13

3. Bibliografía ......................................................................................................16

2
Fundamentos de microcontroladores y sistemas embebidos

1. Unidad 4: Procesamiento digital


de datos
Tema 2: Fundamentos de microcontroladores y
sistemas embebidos
Objetivos:

Al finalizar el tema 8 el estudiante aprenderá:

• Funcionalidades del microcontrolador.


• Arquitectura del microcontrolador.
• Aplicaciones del microcontrolador.
• Tipos de sistemas embebidos.

En este tema se estudiarán las características generales comunes de los


microcontroladores. En primer lugar, se define lo que se entiende por
microcontrolador y se establece su diferencia con el microprocesador. Seguidamente
se exponen los recursos comúnmente disponibles en un microcontrolador, haciendo
énfasis en aquellos recursos propios de estos dispositivos y que no se encuentran en
los microprocesadores en general. Se presenta también las arquitecturas Von
Neumann y Harvard empleadas en el diseño de microcontroladores, así como las
arquitecturas CISC y RISC, diferenciadas fundamentalmente por la forma de concebir el
repertorio de instrucciones del microcontrolador (Valdés, 2008).
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 3


Fundamentos de microcontroladores y sistemas embebidos

2. Informacion de los subtemas


2.1 Subtema 1: Funcionamiento
La figura 1 muestra el esquema general básico de un microcomputador. Se compone
de tres bloques fundamentales: La CPU (Central Processing Unit), la memoria, y la
entrada y salida. Los bloques se conectan entre sí mediante grupos de líneas eléctricas
denominados buses. Los buses pueden ser de direcciones (si transportan direcciones
de memoria o de entrada y salida), de datos (si transportan datos o instrucciones) o de
control (si transportan señales de control diversas) (Valdés, 2008).

FIGURA 1: Esquema básico general de un microcomputador, La CPU es el


microprocesador.
Carlos A. Reyes (2008), Microcontroladores PIC Programación en Basic (Pág. 224)

La CPU es el “cerebro” del microcomputador y actúa bajo el control del programa


almacenado en la memoria. La CPU se ocupa básicamente de traer las instrucciones
del programa a la memoria, interpretarlas y hacer que se ejecuten. La CPU también
incluye los circuitos para realizar operaciones aritméticas y lógicas elementales con los
© Universidad Estatal de Milagro – UNEMI

datos binarios, en la denominada Unidad Aritmética y Lógica (ALU: Arithmetic and


Logic Unit) (Valdés, 2008)

En un microcomputador, la CPU no es otra cosa que el microprocesador, el circuito


integrado capaz de realizar las funciones antes mencionadas. Un microcontrolador es
un microcomputador realizado en un circuito integrado (chip). Históricamente, los
microcontroladores aparecieron con posterioridad a los microprocesadores y han
tenido evoluciones independientes.

Los microcontroladores están concebidos fundamentalmente para ser utilizados en


aplicaciones puntuales, es decir aplicaciones puntuales, donde el microcontrolador

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 4


Fundamentos de microcontroladores y sistemas embebidos

debe realizar un pequeño número de tarea, al menor costo posible. En esas


aplicaciones, el microcontrolador ejecuta un programa almacenado permanentemente
en su memoria, el cual trabaja con algunos datos almacenados temporalmente e
interactúa con el exterior a través de líneas de entrada y salidas de que dispone.

Un microcontrolador combina los recursos fundamentales disponibles en un


microcomputador, es decir, la unidad central de procesamiento (CPU), la memoria y
los recursos de entrada y salida, en un único circuito integrado. La figura 2 muestra el
diagrama de bloques general de un microcontrolador.

FIGURA 2: Esquema de bloques general de un microcontrolador


Carlos A. Reyes (2008), Microcontroladores PIC Programación en Basic (Pág. 225)

Los microcontroladores disponen de un oscilador que generan pulsos que sincronizan


todas las operaciones internas. El oscilador puede ser del tipo RC, aunque
generalmente se prefiere que esté controlado por un cristal de cuarzo (XTAL) debido a
su gran estabilidad de frecuencia. La velocidad de ejecución de las instrucciones del
programa está en relación directa con la frecuencia del oscilador (Valdés, 2008).

La CPU al igual que un microcomputador trae las instrucciones del programa, una a
una, desde la memoria donde están almacenadas, las interpreta (decodifica) y hace
© Universidad Estatal de Milagro – UNEMI

que se ejecuten. En la CPU se incluyen los circuitos de la ALU para realizar operaciones
aritméticas y lógicas elementales con los datos binarios.

La CPU de un microcontrolador dispone de diferentes registros, algunos de propósito


general y otros para propósitos específicos. Entre ellos últimos están el Registro de
instrucción, el Acumulador, el Registro de Estado, el Contador de Programa, el Registro
de Direcciones de Datos y puntero de la Pila.
El Registro de Instrucción (RI) almacena la instrucción que está siendo ejecutada por la
CPU. El RI es invisible para el programador.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 5


Fundamentos de microcontroladores y sistemas embebidos

El acumulador (ACC) es el registro asociado de las operaciones aritméticas y lógicas


que se pueden realizar en la ALU. En cualquier operación, uno de los datos debe estar
en el ACC y el resultado se obtiene en el ACC. El ACC no existe en los
microcontroladores PIC, que tienen el cambio de registro W (Working Register), con
características muy parecidas a las del ACC.

El registro de estado (STATUS) agrupa los bits indicadores de las características del
resultado de las operaciones aritméticas y lógicas realizadas en la ALU. Entre estos
indicadores están el signo, el resultado (si es positivo o negativo), si el resultado es
cero, si hay acarreo o préstamo, el tipo de paridad (par o impar) del resultado, etc.

El Contador de Programa (Program Counter) es el registro de la CPU donde se


almacenan direcciones de instrucciones. Cada vez que la CPU busca una instrucción en
la memoria, el PC se incrementa, apuntando así a la siguiente instrucción. En un
instante de tiempo dado, el PC contiene la dirección de la instrucción que será
ejecutada a continuación. Las instrucciones de transferencia de control modifican el
valor del PC.

El Registro de Direcciones de Datos (RDD) almacena direcciones de datos situados en la


memoria. Este registro es indispensable para el direccionamiento indirecto de datos en
la memoria. El RDD toma diferentes nombres según el microcontrolador. En los PIC, el
RDD es el registro FSR (File Select Register).
El puntero de la Pila (Stack Pointer) es el registro que almacena direcciones de datos
en la pila. Los microcontroladores PIC carecen de registro SP (Valdés, 2008).

La memoria del microcontrolador es el lugar donde son almacenadas las instrucciones


del programa y los datos que manipula. En un microcontrolador siempre hay dos tipos
de memoria: La memoria RAM (Random Access Memory) y la memoria ROM (Read
Only Memory). La memoria RAM es una memoria de lectura y escritura, que además
es volátil, es decir, pierde la información almacenada cuando falta la energía que
alimenta la memoria. La memoria ROM es una memoria de solo lectura y no volátil.
© Universidad Estatal de Milagro – UNEMI

Tanto la memoria RAM como las memorias ROM son de acceso aleatorio, pero la
costumbre ha dejado el nombre de RAM para las memorias de lectura y escritura. El
término “acceso aleatorio” se refiere a que el tiempo necesario para localizar un dato
no depende del lugar de la memoria donde está almacenado. En las memorias de
acceso secuencial, en cambio, cuando más alejado este un dato de la posición a la que
se ha accedido por última vez, más se tarda en localizarlo.

La memoria ROM se usa para almacenar permanentemente el programa que debe


ejecutar el microcontrolador. En la memoria RAM se almacena temporalmente los
datos con los que trabaja el programa. Un gran número de microcontroladores

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 6


Fundamentos de microcontroladores y sistemas embebidos

dispone de una memoria no volátil del tipo EEPROM para almacenar datos fijos o que
solo sean cambiados esporádicamente.

Los puertos paralelos se organizan en grupos de hasta 8 líneas de entradas y salidas


digitales. Normalmente es posible manipular individualmente las líneas de los puertos
paralelos. Los puertos serie pueden ser de varios tipos, según la norma de
comunicación que implementen: RS-232C, I2C, USB, Ethernet.

Un requisito general para que un microcontrolador se pueda utilizar en un gran


número de aplicaciones es que tenga muchos recursos de entrada y salida. Este
requisito está relacionado con el número de terminales del circuito integrado. A la vez
se desea tener esos recursos en un circuito integrado lo más pequeño posible. Si cada
bloque de entrada y salida tuviera terminales exclusivos en el microcontrolador,
posiblemente no alcanzarían los terminales o habría que fabricar microcontroladores
con muy pocos recursos de entrada y salida, en contra del interés general. La solución
para este problema es que un número importante de terminales del circuito integrado
sean compartidos por unidades de entrada y salidas diferentes. Es decir, un mismo
terminal puede estar conectado internamente a más de un bloque de entrada y salida.
Por ejemplo, las líneas de entrada y salida de un puerto serie pueden ser parte de las
líneas de un puerto paralelo (Valdés, 2008).
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 7


Fundamentos de microcontroladores y sistemas embebidos

2.2 Subtema 2: Tipo de microcontroladores


En la memoria de un ordenador, un microcomputador o un microcontrolador, se
almacenan instrucciones y datos. Las instrucciones deben pasar secuencialmente a la
CPU para su decodificación y ejecución, en tanto que algunos datos en memoria son
leídos por la CPU y otros son escritos en la memoria desde la CPU. Puede intuirse que
la organización de la memoria y su comunicación con la CPU son dos aspectos que
influyen en el nivel de prestaciones del ordenador. (Valdés, 2008).

Las arquitecturas Von Neumann y Harvard son modelos generales del hardware de los
ordenadores que representan dos soluciones diferentes al problema de la conexión de
la CPU con la memoria y a la organización de la memoria como almacén de
instrucciones y datos.

La figura 3 muestra estos dos modelos de ordenadores. La arquitectura Von Neumann


utiliza una memoria única para instrucciones y datos. Esto significa que con un mismo
bus de direcciones se localizan (direccionan) instrucciones y datos que por un único
bus de datos transitan tanto instrucciones como datos. La misma señal de control que
emite la CPU para leer un dato, sirve para leer una instrucción. No hay señales de
control diferentes para datos e instrucciones. Debe quedar claro que, aunque se use
memoria ROM para almacenar el programa y RAM para los datos, para la CPU no hay
tal distinción, sino que ROM y RAM forman un conjunto único (una memoria de lectura
y escritura) para el cual la CPU emite señales de control, de direcciones y datos
(Valdés, 2008).

La arquitectura Harvard utiliza memorias esperadas para instrucciones y datos. En este


caso la memoria del programa (que almacena instrucciones) tiene su bus de
direcciones, su propio bus de datos y su bus de control. Por otra parte, la memoria de
datos tiene sus propios buses de direcciones, datos y control, independientes de los
buses de memoria de programa. La memoria de programa es solo de lectura, mientras
que en la de datos se puede leer y escribir.

La arquitectura Von Neumann requiere menos líneas que la Harvard para conectar la
© Universidad Estatal de Milagro – UNEMI

CPU con la memoria, lo cual significa una conexión más simple entre ambas. Pero con
esta arquitectura es imposible manipular simultáneamente datos e instrucciones,
debido a la estructura de buses únicos, algo que, si es posible en la arquitectura
Harvard, porque tiene buses separados. Esto confiere a la arquitectura Harvard la
ventaja de una mayor velocidad de ejecución de los programas.

FIGURA 3: Arquitecturas (a) Von Neumann y (b) Harvard. La arquitectura Von


Neumann utiliza una memoria única que se conecta a la CPU mediante los buses de
direcciones (BDIR), datos (BDAT) y control (BCON). La arquitectura Harvard utiliza
memorias separadas para instrucciones y datos, las cuales se conectan a la CPU

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 8


Fundamentos de microcontroladores y sistemas embebidos

mediante los buses de direcciones de instrucciones (BDIR – I) y de direcciones de datos


(BDIR – I), los buses de instrucciones (BINST) y de datos (BDAT) y los buses de control
de instrucciones (BCON -I) y de datos.

Carlos A. Reyes (2008), Microcontroladores PIC Programación en Basic (Pág. 228)

En los microcontroladores al estar todos los componentes del sistema dentro del
circuito integrado, desaparece la necesidad de minimizar el número de terminales de
la CPU, de modo que en ellos ha predominado la arquitectura Harvard. Los
microcontroladores PIC son un ejemplo de sistemas con arquitectura Harvard.

Los microcontroladores de un mismo tipo forman una familia, que se caracteriza, en


general, por tener la misma CPU y ejecutar el mismo repertorio de instrucciones. Es lo
que se conoce como “núcleo” (core) del microcontrolador. Los miembros de una
familia de microcontroladores tienen el mismo núcleo, pero se diferencian de la
entrada y salida y en la memoria. Por ejemplo, todos los microcontroladores de la
familia 8051 (MCS51) tienen una CPU semejante, con un grupo de registros comunes a
todos los miembros de la familia, y ejecutan el mismo repertorio de instrucciones. En
© Universidad Estatal de Milagro – UNEMI

cambio, los distintos miembros de la familia tienen puertos de entrada y salida y


memoria diferentes, en cantidad y tipo.

Los microprocesadores y microcontroladores se fabrican como circuitos integrados


independientes (standa - alone devices). Pero también el núcleo del procesador puede
esta embebido en un circuito integrado de alta escala de integración, cuya función es,
en general, configurable por el usuario. Tal es el caso de los denominados Dispositivos
Lógicos Programables (PLD: Programmable Logic Devices), entre los que están los FPGA
(Field Programmable Gate Array). Los PLD en general y los FPGA en particular, son
circuitos de alta escala de integración que disponen de un conjunto de elementos,
cuya interconexión es programable por el usuario. Así se pueden configurar un

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 9


Fundamentos de microcontroladores y sistemas embebidos

microcontrolador “a la medida” de la necesidad de la aplicación, con la ventaja de ser


compatible con un microprocesador o un microcontrolador “estándar”, como el 8051 o
un PIC, pues tiene su mismo núcleo.

Los microcontroladores PIC se pueden clasificar, atendiendo el tamaño de las


instrucciones, en tres grandes grupos o gamas:

• Gama baja: microcontroladores con instrucciones de 12 bits.


• Gama media: microcontroladores con instrucciones de 14 bits.
• Gama alta: microcontroladores con instrucciones de 16 bits.

Los microcontroladores PIC también se agrupan en cinco grandes familias: PIC10,


PIC12, PIC16, PIC17, PIC18. Los PIC10, son básicamente, microcontroladores de 6
terminales. La familia de los PIC12 agrupa los microcontroladores disponibles en
encapsulado de 8 terminales. Algunas de estas cinco familias tienen numerosas
subfamilias, como sucede con los PIC16. Además, algunas de estas familias incluyen
dispositivos de más de una gama, como los PIC16 y PIC12, que tienen dispositivos de
gama baja y media. Los PIC17 y PIC18 son de gama alta. El criterio empleado para
clasificar un PIC dentro de una familia es, pues, un tanto complejo. La figura 4 es una
ayuda para ubicar los PIC.

FIGURA 4: Tabla de resumen de la relación familia-gama de los microcontroladores.


Carlos A. Reyes (2008), Microcontroladores PIC Programación en Basic (Pág. 230)

Otras clasificaciones importantes pueden ser las que se mencionaran a continuación,


© Universidad Estatal de Milagro – UNEMI

aunque sigue siendo la clasificación mencionada anteriormente la más aceptada y


utilizada.

Según sus recursos

Los hay desde los que tienen los recursos mínimos hasta los que cuentan con los
periféricos más sofisticados, como módulos CAN (para comunicaciones robustas entre
varios microcontroladores), módulos para conectarse a los computadores vía USB o
funciones de hardware para el procesamiento digital de las señales, para trabajar con
datos multimedia. Los microcontroladores con esta última capacidad se conocen con el
nombre de DSP (Digital Signal Processor).

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 10


Fundamentos de microcontroladores y sistemas embebidos

Microcontroladores con instrucciones CISC

El set de instrucciones CISC (Complex Instruction Set Computer) es inherente a los


primeros microcontroladores que aparecieron en el mundo, los cuales estaban
inspirados en los procesadores de los grandes computadores de la época. Es complejo
porque consta de muchas instrucciones, complicadas y difíciles de recordar a la hora
de programar en lenguaje ensamblador. Además, al crecer el número de instrucciones
también crecerán los códigos de las instrucciones, lo cual deriva en una mella en la
diferencia del microcontrolador.

Microcontroladores con instrucciones RISC

RISC es sigla de Reduced Instruction Set Computer. Estos microcontroladores cuentan


con instrucciones sencillas y en un número mínimo. Ello permite que la programación
en ensamblador sea una labor cómoda y esté al alcance de todos.

Sin embargo, cuando se desarrollan proyectos mucho más complejos, el uso del
lenguaje ensamblador se torna cada vez más engorroso. Entonces se prefiere optar por
los compiladores de alto nivel, para los cuales un set RISC no es obstáculo.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 11


Fundamentos de microcontroladores y sistemas embebidos

2.3 Subtema 3: Aplicaciones de microcontroladores


Los microcontroladores están conquistando el mundo. Están presentes en nuestro
trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar
controlando el funcionamiento de los ratones y teclados de los computadores, en los
teléfonos, en los hornos microondas y los televisores de nuestro hogar. Pero la
invasión acaba de comenzar y el nacimiento del siglo XXI será testigo de la conquista
masiva de estos diminutos computadores, que gobernarán la mayor parte de los
aparatos que fabricaremos y usamos los humanos.

Cada vez existen más productos que incorporan un microcontrolador con el fin de
aumentar sustancialmente sus prestaciones, reducir su tamaño y coste, mejorar su
fiabilidad y disminuir el consumo. Algunos fabricantes de microcontroladores superan
el millón de unidades de un modelo determinado producidas en una semana. Este
dato puede dar una idea de la masiva utilización de estos componentes. Los
microcontroladores están siendo empleados en multitud de sistemas presentes en
nuestra vida diaria, como pueden ser juguetes, horno microondas, frigoríficos,
televisores, computadoras, impresoras, módems, el sistema de arranque de nuestro
coche, etc. Y otras aplicaciones con las que seguramente no estaremos tan
familiarizados como instrumentación electrónica, control de sistemas en una nave
espacial, etc.

Una aplicación típica podría emplear varios microcontroladores para controlar


pequeñas partes del sistema. Estos pequeños controladores podrían comunicarse
entre ellos y con un procesador central, probablemente más potente, para compartir
la información y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en
cualquier PC
© Universidad Estatal de Milagro – UNEMI

FIGURA 5: Aplicaciones de Microcontroladores


Fuente: https://images.app.goo.gl/oAihSzsCo2Gk6FEA8

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 12


Fundamentos de microcontroladores y sistemas embebidos

2.4 Subtema 4: Aplicaciones de sistemas embebidos


Los Sistemas Embebidos son dispositivos electrónicos usados para controlar y
operar equipos, dispositivos, máquinas, aparatos domésticos, equipos móviles, PDA's,
automóviles, instrumentos electrónicos, operar máquinas y hasta plantas industriales.
El término embebido está caracterizando que estos circuitos integrados son una
parte esencial e integral del sistema en que se encuentran.
Estos Circuitos Integrados son elementos que integran en sí, todos los subsistemas y
elementos necesarios para realizar la labor de operación, control e instrumentación
definida para el correcto funcionamiento de la maquinaria o dispositivo, siendo ésta
desde labores simples hasta de una alta complejidad.

En la actualidad los Sistemas Embebidos, tienen una capacidad de cálculo bastante alta
(varios MIPS) necesaria para realizar labores complejas tales como el cálculo de la FFT
(transformada rápida de Fourier) para realizar filtros digitales, análisis de señales,
cálculos matemáticos complejos para tomar decisiones en tiempo real, tan complejas
que eran imposibles de hacer en este tipo de dispositivos electrónicos de hace algunos
años.
Los Sistemas Embebidos son pequeños sistemas que se salen de la definición
tradicional de un Computador. Son sistemas que se diseñan pensando en
una aplicación concreta y por esa razón es posible realizar un desarrollo de una forma
tan ajustada a las necesidades, implicando un bajo tamaño, reducido costo y alta
repetitividad.

Sus aplicaciones abarcan un sin fin de sistemas y aparatos, los cuales se encuentran en
nuestra vida cotidiana, mucho más cerca de lo que creemos y el número de
aplicaciones aumenta día a día, encontrándose en áreas tan diversas como:

▪ Hogar, en nuestros hogares también tenemos sistemas Embebidos y nos cuesta


darnos cuenta, pero se encuentran dentro de las Lavadoras de Ropa, dentro de
© Universidad Estatal de Milagro – UNEMI

nuestros Televisores Digitales, Sistemas de Audio, Controles Remotos,


Reproductores de MP3, Sistemas de Video como grabadores y reproductores,
Alarmas Electrónicas, en los Sistemas de Climatización y Temperatura, Calefacción,
Teléfonos Celulares, en nuestros servicios de comunicaciones de internet como los
router, modems, entre otros más.
▪ Oficina, en nuestras oficinas han penetrado muchos aparatos de uso cotidiano
tales como los routers para conectividad a internet, cortafuegos, switch’s para
redes locales, impresoras, scanners, proyectores de video, digitalizadores de
imágenes, pizarras electrónicas, cámaras fotográficas digitales domésticas y

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 13


Fundamentos de microcontroladores y sistemas embebidos

profesionales, sistemas de vigilancia, alarmas digitales, sistemas de control de


acceso, aire acondicionado y climatización, y muchos otros.
▪ Transporte, uno de los ejemplos más comunes y que tenemos más a la mano hoy
en día, son los automóviles modernos, estos tienen más de 200 sistemas
embebidos para controlar muchas partes de los vehículos, sistemas tan críticos
como los frenos ABS, el sistema de inyección, combustible, aceleración,
carburación, sistema de luces y señalización, luces de cabina, sistema de
comandos, alza vidrios, climatización y aire acondicionado, limpia vidrios, entre
otros.
▪ Comunicaciones, en este ámbito hay muchos aparatos basados en sistemas
embebidos como los ya indicados routers, Access Point para comunicaciones WiFi,
sistemas de seguridad informática como los Cortafuegos, Switch de
comunicaciones administrables remotamente, Sistema de Filtrado de paquetes
TCP/IP, Modems alámbricos e Inhalámbricos, de fibra óptica, controles de acceso,
en fin, una gran gamma.
▪ Medicina, incluso en el área de la salud se han incorporado fuertemente para bajar
costos en instrumental médico, que van desde simples termómetros digitales hasta
sistemas de monitoreo de pacientes cardiacos, ecógrafos digitales, monitores de
apnea del sueño y en muchos otros aparatos electrónicos en esta área y seguirán
abordando en el futuro.
▪ Robótica, casi la totalidad de los robots de entretenimiento y muchos industriales
se basan en sistemas embebidos, capaces de manejar los sistemas de sensónica,
articulares, video, transporte por el control de velocidad y dirección de motores,
consumo de energía, comunicaciones, por dar algunas áreas dentro de estos
sistemas.
▪ Domótica, que son sistemas encargados de automatizar una vivienda, se basan
completamente en sistemas embebidos, los que cubren desde la climatización y
calefacción, sistemas de seguridad en el hogar, sistema de iluminación, control de
consumo de energía, comunicaciones del hogar, sistemas de entretenimiento,
multimedia, servicios de TV digital, Video sobre demanda, sensónica, telegestión
(mando a distancia), sistemas de riego, en fin, una gran gamma de aparatos en el
© Universidad Estatal de Milagro – UNEMI

hogar.

Existen muchas otras aplicaciones, pero con estos ejemplos basta para darse una idea
general de las posibilidades de desarrollo y de las aplicaciones existentes y futuras.

Los Sistemas Embebidos trabajan sobre una amplia gama de plataformas de


hardware que van desde los 8 hasta los 64 bits actualmente y su selección depende
exclusivamente de la aplicación final, es importante por consiguiente saber definir la
plataforma de desarrollo y los requerimientos específicos del sistema embebido que
será el producto final que se obtendrá.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 14


Fundamentos de microcontroladores y sistemas embebidos

Teniendo en cuenta esto y sabiendo la amplia gama de posibilidades de aplicaciones,


se hace necesario realizar una correcta selección de los elementos que formarán parte
del sistema embebido a desarrollar y de las herramientas disponibles a usar para
conseguirlo. Una mala elección en muchos casos hace inviable el término del sistema,
por lo que se debe tener especial cuidado en ello.

Por lo anterior, es importante contar con la experiencia necesaria en el desarrollo


de sistemas embebidos y conocer además no sólo de electrónica y software, si no de
materias más amplias como mecánica, química, física y otras técnicas, necesarias para
los profesionales que se desarrollan en este ámbito, lo que implica muchas veces en
disponer de ingenieros híbridos con conocimientos en más áreas o en su defecto
equipos de trabajo con especialistas en distintas ramas de la técnica.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 15


Fundamentos de microcontroladores y sistemas embebidos

3. Bibliografía

» Carlos A. Reyes (2008), Microcontroladores PIC Programación en Basic,


Ecuador; Microchip
» Santiago Corrales V. (2006), Electrónica Práctica con Microcontroladores PIC,
Ecuador; Microchip.
» José María Angulo U. (2007), Microcontroladores PIC Diseño práctico de
aplicaciones, España, McGraw-Hill
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 16


Sistemas Digitales

Unidad 3
Máquinas secuenciales síncronas y asíncronas

Tema 1
Circuitos secuenciales síncronos
Objetivos:

» Realizar el diseño de una maquina secuencial sincrónica en


base a un criterio correcto para implementar maquinas del tipo
Moore o Mealy.
Subtemas
» Subtema 1: MSS Modelo Mealy

» Subtema 2: MSS Modelo Moore


¿Qué vimos en la clase asíncrona?

4
EJEMPLO:

Especificaciones:

1.- Con Z=1, la máquina se pone en marcha y con Z=0 la máquina se para.
2.- Si al pulsar X y la máquina está parada, inmediatamente se pondrá en marcha.
3.- Si al pulsar X y la máquina está funcionando, inmediatamente se detendrá.

Si en un momento pulsamos X, ¿La máquina se detendrá o empezará a


funcionar?
CIRCUITOS SECUENCIALES
El valor de las salidas no depende únicamente del valor de las entradas, sino
también, de la historia o secuencia previa por la que han pasado dichas entradas.

En función de la entrada
(x) y de un estado actual
(y), el circuito suministra:
• La salida Z para
controlar el
funcionamiento.
• La información relativa
al estado al que debe
pasar la máquina.

6
CIRCUITOS SECUENCIALES ASÍNCRONOS
Una de sus principales características es que internamente tienen una secuencia
de estados libre, no requieren señales externas de control. Utilizan “Latches” como
elementos de memoria o conexiones de retroalimentación directa.

DESVENTAJAS:
• Se utilizan solo en
circuitos sencillos.
• Gran complejidad en el
diseño.
• Dificultad en la
codificación de los
estados internos.
• Sensibles a los
fenómenos aleatorios.

7
CIRCUITOS SECUENCIALES SÍNCRONOS
La evolución temporal entre estados internos no es libre, está controlada por una
señal externa denominada señal de reloj (CLK). Se utilizan Flip Flops como
elementos de memoria, las retroalimentaciones dejan de ser directas.

VENTAJAS:
• No hay restricción en la
codificación de los
estados internos.
• No hace falta eliminar
fenómenos aleatorios.
• El diseño es más
simple.

𝑇 ≥ 𝑡𝑃𝐷,𝐹𝐹 + 𝑡𝑃𝐷,𝐶𝑂𝑀𝐵 + 𝑡𝑆𝑒𝑡𝑢𝑝,,𝐹𝐹

8
Introducción
Las máquinas secuenciales síncronas (MSS) también son conocidas como
Maquinas de Estado Finito (MEF) o autómatas finitos. Este nombre se deriva del
hecho que el comportamiento funcional de estos circuitos puede ser presentado
con un numero finito de los estados y una vez diseñados reaccionan a las
diferentes secuencias de entrada.
Moore: Las salidas del circuito dependen únicamente del estado presente o
interno del circuito
Mealy: Las salidas dependen del estado presente y de las entradas

9
Subtema 1: MSS Modelo Mealy
Una MSS modelo Mealy tiene la característica de que sus salidas depende del
estado presente del circuito y de sus entradas, como se muestra en la figura:

10
Subtema 1: MSS Modelo Mealy
Funcionamiento: La estructura de una MSS se constituye por un conjunto de
Circuitos Combinatoriales y algunos flip-flops que constituyen el Bloque de
Memoria de Estados.

El circuito recibe un grupo de entradas In y produce otro grupo de salidas Out.


Los valores de salidas de los flip flops representan el estado presente y.H del
circuito.

Al momento de dispararse el flanco en la señal de reloj, las salidas de los flip


flops cambian de un estado a otro, generando la lógica combinatorial en el
decodificador de estado siguiente Y.H (entrada). Dependiendo de los valores de
entradas y del valor de Estado Presente realimentado

11
Subtema 2: MSS Modelo Moore
Aunque las salidas siempre dependen del Estado Presente, ellas no siempre
dependen de las entradas, y este es el caso de las MSS modelo Moore.

Ambos tipos de máquinas fueron bautizadas de esta manera


en honor a George Mealy y Edward Moore que investigaron
la conducta de estos circuitos en los años 1950s.

12
Subtema 2: MSS Modelo Moore
Cualquier sistema secuencial puede ser realizado mediante un Modelo Moore o
Mealy, a excepción de alguna especificación detallada. Se puede convertir de un
modelo a otro.

Normalmente el modelo Moore emplea más estados internos y


consecuentemente requiere más flip flops, sin embargo, en el modelo Mealy el
circuito combinacional para generar las salidas del sistema suele ser más
complejo.

Pueden existir máquinas híbridas siendo algunas salidas del tipo Moore y otras
del tipo Mealy.

13
Subtema 3: Diagrama de estado
El Diagrama de Estados es una herramienta gráfica que describe las transiciones paso a paso
de una MSS.
El Diagrama de Estados para un circuito secuencial ocupa el mismo lugar que la Tabla de
Verdad para los circuitos combinatoriales.
Se representa como un arreglo de círculos (óvalos) interconectados con segmentos con flechas.
Cada círculo (óvalo) representa un estado (Estado Presente) de la MSS y las flechas
representan los flancos de Reloj que hacen que la MSS cambie a otro estado (Estado
Siguiente).

14
Subtema 3: Diagrama de estado
Formato:
Relaciona las entradas versus las salidas de la MSS. No debe incluir ni la señal de CLK ni la de
Reset/Clear que se suponen implícitas en el diagrama de estados.

Cada estado debe mostrar la siguiente información:


 Nombre del estado.
 Código binario de identificación.
Cada segmento debe incluir un formato valorado que represente:
 Condiciones de entradas para ir al Estado siguiente (Transición)
Entonces el formato es:
 Especificaciones de salida del estado presente. Que valor toma de A, B / F1, F2
salida en ese estado y bajo esa condición de entrada.

15
Subtema 3: Diagrama de estado
Las condiciones de entradas y salidas se refieren a las variables especificadas en el
formato.

• Las condiciones de salida le pertenecen al estado saliente (de donde viene la flecha) y no
al estado entrante.
• Si existen “n” entradas, de cada estado deben salir “2n” segmentos.
• Si uno de los segmentos no es presentado, se asume que es una condición no existente
“don’t care”.
16
Ejemplo. Analizar el siguiente diagrama de estados:

17
Subtema 3: Diagrama de estado
Ejemplo Máquina de Moore
Una máquina secuencial síncrona funciona a través de una entrada “x” y genera dos
salidas “A” y “B”. En cada disparo de la señal de reloj se producen las transiciones
00, 01, 10, 11 y retorna a su estado inicial. Si x=0 no cambia de estado y mantiene el
código de A y B en la salida. Si x=1 cambia de estado y mantiene el código de A y B
durante la transición.

18
Subtema 3: Diagrama de estado

19
Subtema 3: Diagrama de estado
En este caso para cada estado las salidas se mantienen sin importar si cambian las
entradas, por lo tanto, se sugiere utilizar una MSS modelo Moore.

20
Subtema 3: Diagrama de estado
Ejemplo Máquina de Mealy
Dibuje el diagrama de estados para una máquina secuencial sincrónica que debe
detectar la secuencia 1 0 1 en la entrada DT. Cada vez que se detecta la secuencia
se debe generar inmediatamente un pulso en la salida P. Asuma que si puede existir
“traslape” de la secuencia, es decir una nueva secuencia puede empezar con el
mismo “1” con que termina la anterior.

21
Subtema 3: Diagrama de estado

22
Subtema 3: Diagrama de estado

23
Subtema 3: Diagrama de estado
Diseñar un circuito secuencial síncrono para el control de movimiento de un robot.
Teniendo en cuenta las siguientes especificaciones:

• Comenzará moviéndose en línea recta.


• Cuando encuentre el primer obstáculo girará hacia la derecha hasta evitarlo y
nuevamente avanzará en línea recta.
• Cuando encuentre el segundo obstáculo girará hacia la izquierda hasta evitarlo y
nuevamente avanzará en línea recta.
• Con los siguientes obstáculos girará de forma alternada a derecha y a izquierda
sucesivamente.
El robot recibe una señal de entrada del sensor
X, tal que X=0 si no existe obstáculo y X=1 si
existe obstáculo. Además, se mueve mediante
un motor controlado por dos señales Z1 y Z2.
Subtema 3: Diagrama de estado
Subtema 3: Diagrama de estado
ACTIVIDAD DE CIERRE

APLICACIONES CIRCUITOS SECUENCIALES

27
Bibliografía
» Floyd, T. (2006). Fundamentos de Sistemas Digitales. Madrid. Novena
Edición. Editorial Pearson.
» RONALD. (2007). Sistemas Digitales Principios y Aplicaciones.
Barcelona: Pearson, (2 Ejemplares disponibles en Biblioteca).
» 2.- Carmen Baena – Manuel Jesús Bellido. (2003). Problemas de
Circuitos y Sistemas Digitales. MadridMcGraw - -Hill.
» 3.- Carlos A. Reyes (2008), Microcontroladores PIC Programación en
Basic, Ecuador; Microchip
» 4.- Santiago Corrales V. (2006), Electrónica Práctica con
Microcontroladores PIC, Ecuador; Microchip
» 5.- Jose María Angulo U. (2007), Microcontroladores PIC Diseño
práctico de aplicaciones,
Sistemas Digitales

Unidad 3
Máquinas secuenciales síncronas y asíncronas

Tema 1
Circuitos secuenciales síncronos
SUBTEMAS

» Subtema 1: MSS Modelo Mealy


» Subtema 2: MSS Modelo Moore

» Subtema 3: Diagrama de estados


» Subtema 4: Análisis de circuitos
secuenciales síncronos

2
OBJETIVOS

 Entender el funcionamiento de los Modelos Mealy y Moore

 Realizar el diseño de una maquina secuencial sincrónica en base a un


criterio correcto para implementar maquinas del tipo Moore o Mealy.

3
¿Qué vimos la clase anterior?

4
Subtema 1: MSS Modelo Mealy

Una MSS modelo Mealy tiene la característica de que sus salidas depende del
estado presente del circuito y de sus entradas, como se muestra en la figura:

5
Subtema 2: MSS Modelo Moore
Las salidas dependen únicamente de las estados presentes.

6
Subtema 3: Diagrama de estado
El Diagrama de Estados es una herramienta gráfica que describe las transiciones paso
a paso de una MSS.
El Diagrama de Estados para un circuito secuencial ocupa el mismo lugar que la Tabla
de Verdad para los circuitos combinatoriales.
Se representa como un arreglo de círculos (óvalos) interconectados con segmentos con
flechas.
Cada círculo (óvalo) representa un estado (Estado Presente) de la MSS y las flechas
representan los flancos de Reloj que hacen que la MSS cambie a otro estado (Estado
Siguiente).

7
Ejemplo. Analizar el siguiente diagrama de estados:

8
Subtema 3: Diagrama de estado
Ejemplo Máquina de Moore
Una máquina secuencial síncrona funciona a través de una entrada “x” y genera dos
salidas “A” y “B”. En cada disparo de la señal de reloj se producen las transiciones
00, 01, 10, 11 y retorna a su estado inicial. Si x=0 no cambia de estado y mantiene el
código de A y B en la salida. Si x=1 cambia de estado y mantiene el código de A y B
durante la transición.

9
Subtema 3: Diagrama de estado

10
Subtema 3: Diagrama de estado
En este caso para cada estado las salidas se mantienen sin importar si cambian las
entradas, por lo tanto, se sugiere utilizar una MSS modelo Moore.

11
Subtema 3: Diagrama de estado
Ejemplo Máquina de Mealy
Dibuje el diagrama de estados para una máquina secuencial sincrónica que debe
detectar la secuencia 1 0 1 en la entrada DT. Cada vez que se detecta la secuencia
se debe generar inmediatamente un pulso en la salida P. Asuma que si puede existir
“traslape” de la secuencia, es decir una nueva secuencia puede empezar con el
mismo “1” con que termina la anterior.

12
Subtema 3: Diagrama de estado

13
Subtema 3: Diagrama de estado

14
Subtema 4: Análisis de circuitos secuenciales síncronos
1. Estudiar las especificaciones que pide el circuito y
entender como va funcionar.

2. Crear un diagrama de bloques que identifique las entradas


y salidas del circuito. Se recomienda tener claro cuando se
generan las salidas y en que condiciones.

3. Diseñar un diagrama de estados donde se identifique


correctamente sus estados y se defina de manera correcta
las transiciones, detallando la entrada y el resultado a la
salida. Se debe iniciar con el estado de reset.

15
Subtema 4: Análisis de circuitos secuenciales síncronos

4. Desarrollar una tabla de estados presentes y


siguientes.
5. Seleccionar el elemento de memoria adecuado (flip
flop) para el bloque de memoria de estados.

6. Elaborar los mapas de Karnaugh de los estados siguientes para implementar


el decodificador de estado siguiente y de salida.

7. Graficar el diagrama de conexiones.

16
Subtema 4: Análisis de circuitos secuenciales síncronos
• Crear una máquina detectora de secuencias de bits. Los datos binarios ingresarán a través de
una entrada “X” en sincronismo con una señal de reloj CLK. La salida “Z” funciona de tal
manera que se pondrá en 1 cuando detecte la secuencia 1011. Suponer que se pueden solapar
secuencias sucesivas. Implementar el circuito con flip flops JK

X
DETECTOR DE SECUENCIA
Z
1011
CLK

17
Subtema 4: Análisis de circuitos secuenciales síncronos
• Modelo Moore

• A: estado inicial aún no ha llegado ningún bit en la secuencia correcta (Z=0)


• B: ha llegado un bit en la secuencia correcta (Z=0)
• C: han llegado dos bits en la secuencia correcta(Z=0)
• D: han llegado tres bits en la secuencia correcta(Z=0)
• E: han llegado cuatro bits en la secuencia correcta(Z=1)

18
Subtema 4: Análisis de circuitos secuenciales síncronos

19
Subtema 4: Análisis de circuitos secuenciales síncronos

Est. Est.
Actual X 0 1 Z Actual X 0 1 Z

A A A B 0
B B C B 0
C C A D 0
D D C E 0
E E C B 1

20
Subtema 4: Análisis de circuitos secuenciales síncronos
• Simplificación de
estados
Est.
Actual X 0 1 Z

A A B 0
B C B 0
C A D 0
D C E 0
E C B 1

• Vertical: Todos los estados menos el


primero
• Horizontal: Todos los estados menos el
último

21
Subtema 4: Análisis de circuitos secuenciales síncronos
• Codificación de estados

• Tabla de estados
siguientes

22
Subtema 4: Análisis de circuitos secuenciales síncronos
• Ecuaciones de Salida con Mapas de Karnaugh

𝑍 = 𝑄2

23
Subtema 4: Análisis de circuitos secuenciales síncronos

24
Subtema 4: Análisis de circuitos secuenciales síncronos

25
Subtema 4: Análisis de circuitos secuenciales síncronos

26
Subtema 4: Análisis de circuitos secuenciales síncronos

27
Subtema 4: Análisis de circuitos secuenciales síncronos
𝑍 = 𝑄2

28
Subtema 4: Análisis de circuitos secuenciales síncronos
• Modelo Mealy

• A: estado inicial aún no ha llegado ningún bit en la secuencia correcta


• B: ha llegado un bit en la secuencia correcta
• C: han llegado dos bits en la secuencia correcta
• D: han llegado tres bits en la secuencia correcta

29
Subtema 4: Análisis de circuitos secuenciales síncronos
• Tabla de fases inicial, simplificación y
codificación

30
Subtema 4: Análisis de circuitos secuenciales síncronos
• Tabla de transiciones

31
Subtema 4: Análisis de circuitos secuenciales síncronos

32
Subtema 4: Análisis de circuitos secuenciales síncronos

33
Subtema 4: Análisis de circuitos secuenciales síncronos

34
Bibliografía
» Floyd, T. (2006). Fundamentos de Sistemas Digitales. Madrid. Novena
Edición. Editorial Pearson.
» RONALD. (2007). Sistemas Digitales Principios y Aplicaciones.
Barcelona: Pearson, (2 Ejemplares disponibles en Biblioteca).
» 2.- Carmen Baena – Manuel Jesús Bellido. (2003). Problemas de
Circuitos y Sistemas Digitales. MadridMcGraw - -Hill.
» 3.- Carlos A. Reyes (2008), Microcontroladores PIC Programación en
Basic, Ecuador; Microchip
» 4.- Santiago Corrales V. (2006), Electrónica Práctica con
Microcontroladores PIC, Ecuador; Microchip
» 5.- Jose María Angulo U. (2007), Microcontroladores PIC Diseño
práctico de aplicaciones,
Sistemas Digitales

Unidad 3
Máquinas secuenciales síncronas y asíncronas

Tema 2
Circuitos secuenciales asíncronos
SUBTEMAS

» Subtema 1: comportamiento asíncrono


» Subtema 2: análisis de circuitos secuenciales
asíncronos

2
OBJETIVOS
 Analizar el funcionamiento de los circuitos secuenciales asíncronos.

 Diseñar circuitos secuenciales asincrónicos considerando las diferencias


con respecto a diseñar un circuito secuencial sincrónico.

3
CIRCUITOS SECUENCIALES ASÍNCRONOS
Una de sus principales características es que internamente tienen una secuencia
de estados libre, no requieren señales externas de control. Utilizan “Latches” como
elementos de memoria o conexiones de retroalimentación directa.

DESVENTAJAS:
• Se utilizan solo en
circuitos sencillos.
• Gran complejidad en el
diseño.
• Dificultad en la
codificación de los
estados internos.

4 4
Subtema 1: Comportamiento Asíncrono

DEFINICIÓN

Los Circuitos Secuenciales


Asincrónicos (o MSA) no
usan flip-flops para
representar variables de
estado. Los cambios de
Las compuertas NOR combinadas generan un
estados no son disparados retraso y este retraso es representado por la caja
por pulsos de reloj (CLK), con el triángulo en la figura. Entonces, vemos que el
sino que dependen de los valor de y (estado presente) es retroalimentado
valores de las señales de hacia la entrada del circuito y este a su vez genera
entrada en cada instante de el valor del estado siguiente Y, añadiendo el retraso
al estado Y obtenemos el nuevo estado presente “y”
tiempo. que es el mismo estado “Y

5
Subtema 1: Comportamiento Asíncrono

MODO FUNDAMENTAL

Para tener una operación confiable solo una de las entradas debe cambiarse
a la vez. Además, debe haber suficiente tiempo entre los cambios de los
valores de entrada para permitir al circuito alcanzar un estado estable. Es
decir, no debe producirse ningún cambio en las entradas mientras la MSA
esta en transición de un estado estable al otro.

Cuando se cumplen estas condiciones, se dice que una MSA opera en modo
fundamental.

6
Subtema 1: Comportamiento Asíncrono
FUNCIONAMIENTO

7
Subtema 2: Análisis de circuitos secuenciales asíncronos
Diseño de MSA
1. Recepte las especificaciones del diseño y formule precisamente que es lo
que la maquina hará.
2. Desarrolle un diagrama de estados primitivo que defina la secuencia
requerida de salida para la secuencia de entrada prescrita, debe cumplir lo
siguiente:
a) Condición de retención “estable”00/0
a

b) Distancia unitaria entre la condición de retención y otros segmentos

01/0
10/0

8
Subtema 1: Comportamiento Asíncrono

Diseño de MSA

5. Asignación de códigos de estado


6. Mapa de excitación
7. Expresiones de variables de excitación
8. Expresiones (mapas de Karnaugh) para salidas
9. Diseño esquemático

9
Subtema 1: Comportamiento Asíncrono
REDUCCION DE ESTADOS
Para los circuitos asíncronos es muy útil
reducir el número de estados porque se
termina implementando circuitos más
sencillos. Para esto vamos a presentar el
proceso de fusión.

En una tabla de flujo con gran cantidad de


filas, existen muchas posibles para fusionar
sus estados. En este caso existe un
procedimiento más estructurado para tomar
decisiones. Un procedimiento valido es
definido con el concepto de “estados
compatibles” o “estados equivalentes”.
10
Subtema 1: Comportamiento Asíncrono
REDUCCION DE ESTADOS

Dos estados (filas en la tabla de flujo), Si y Sj, dicen ser compatibles o


equivalentes si no hay conflicto de estados para cualquier valor de
entrada. Se debe cumplir lo siguiente:

Lo que se debe cumplir para los dos estados es que deben tener la
misma salida para cualquier valor de entrada.

• Ambos Si y Sj deben tener el mismo estado siguiente.


• Ambos Si y Sj son estables.
• El estado siguiente de Si o Sj, tienen valores dont care.

11
EJEMPLO (A,H), (B,F), (B, G), (D,E), (F,G) y
(G,H).
En resumen los estados compatibles son:

12
Subtema 1: Comportamiento Asíncrono
En resumen los estados compatibles son: (A,H), (B,F), (B, G), (D,E),
(F,G) y (G,H). DIAGRAMA DE COMPATIBILIDAD

TABLA REDUCIDA

13
Subtema 3: Diagramas de estado

Diseñar una celda binaria especial.

Hay que considerar el hecho que en el diseño de una MSA en modo fundamental
solo una de las entradas puede cambiar a la vez. Esto significa que el cambio de las
entradas de la combinación 11 a la combinación 00 debe ejecutarse en dos pasos: 11-
10- 00 o 11- 01- 00. Se debe tener esto presente en el momento de diseñar el
Diagrama de Estados Primitivo.
14
Subtema 3: Diagramas de estado

15
Subtema 3: Diagramas de estado
TABLA DE ESTADOS PRIMITIVOS: Realizaremos una tabla de estados
primitivos indicando como el circuito se mueve de un estado a otro aplicando
cierta entrada, veremos además condiciones de estabilidad.
Est.
00 01 11 10 Q
Actual

16
Subtema 3: Diagramas de estado
REDUCCIÓN DE ESTADOS

17
Subtema 3: Diagramas de estado
DIAGRAMA DE EQUIVALENCIAS
Se tienen las siguientes equivalencias:
1. (a-b), (b-e), (b-f), (c-d), (e-f)

Podemos reemplazar los seis estados por tres de la siguiente manera:


T0 (a-b), T1 (c-d), T2 (e-f)

18
Subtema 3: Diagramas de estado To (a-b), T1 (c-d), T2 (e-f)

DIAGRAMA DE ESTADOS REDUCIDO


El siguiente paso es la asignación de
códigos de estados. Este paso es muy
importante para las MSS, porque afecta
el tamaño del circuito. Pero es aun más
importante para las MSA. De la elección
correcta de los códigos de estados
depende si la MSA va a funcionar
correctamente o no.

19
Subtema 3: Diagramas de estado
ASIGNACION DE CODIGO DE ESTADOS
Para la asignación de códigos de estados debemos considerar la condiciones de
carrera critica y no criticas.

T (y1, y0)

20
Subtema 3: Diagramas de estado
MAPA DE EXCITACION
Con la tabla primitiva reducida
procederemos a realizar el mapa
de excitación con los códigos de
estados asignados, tal como se
muestra en la tabla de la parte
inferior.

21
Subtema 3: Diagramas de estado
MAPA DE LAS VARIABLES DE EXCITACION

Procederemos ahora a generar un mapa de Karnaugh para cada variable de


estado presente y siguiente, obteniendo finalmente sus funciones minimizadas.

22
Subtema 3: Diagramas de estado
MAPA PARA LA SALIDA Q.H
De igual manera realizaremos un mapa de Karnaugh para minimizar la función
de salida, obteniendo finalmente su función minimizada

23
Subtema 3: Diagramas de estado
DIAGRAMA CIRCUITAL O ESQUEMATICO

24
Bibliografía
» Floyd, T. (2006). Fundamentos de Sistemas Digitales. Madrid. Novena
Edición. Editorial Pearson.
» RONALD. (2007). Sistemas Digitales Principios y Aplicaciones.
Barcelona: Pearson, (2 Ejemplares disponibles en Biblioteca).
» 2.- Carmen Baena – Manuel Jesús Bellido. (2003). Problemas de
Circuitos y Sistemas Digitales. MadridMcGraw - -Hill.
» 3.- Carlos A. Reyes (2008), Microcontroladores PIC Programación en
Basic, Ecuador; Microchip
» 4.- Santiago Corrales V. (2006), Electrónica Práctica con
Microcontroladores PIC, Ecuador; Microchip
» 5.- Jose María Angulo U. (2007), Microcontroladores PIC Diseño
práctico de aplicaciones,
Sistemas Digitales

Unidad 3
Máquinas secuenciales síncronas y asíncronas

Tema 2
Circuitos secuenciales asíncronos
SUBTEMAS

» Subtema 4: CONVERTIDORES A/D Y D/A

2
OBJETIVOS

• Analizar el funcionamiento y diferencias entre convertidores A/D y D/A

3
ACTIVIDAD DE INICIO
¿Cuál es la función de un ADC?

https://www.youtube.com/watch?v=2TlZgITmCVs
&ab_channel=Rinc%C3%B3nIngenieril

4
CIRCUITOS SECUENCIALES
GLITCH:
Una consideración a tener presente al diseñar e implementar la lógica combinacional
son los problemas técnicos relacionados con los intervalos de tiempo, denominados
“GLITCH”.

Estos ocurren cuando se tiene un retardo diferente que pasa a través de un circuito
que hace que la salida tenga un comportamiento erróneo antes de que llegue un
estado estacionario.

5
CIRCUITOS SECUENCIALES
Timing Hazards (Peligros de Sincronización/Tiempo)

El retardo de propagación de un sistema es el tiempo requerido para


generar a la salida un estado estable. Los Timing Hazards son las
fluctuaciones que ocurren durante el periodo de transición; en un sistema
digital muchos caminos pueden conducir al mismo puerto de salida, y dado
que el retraso de cada ruta es diferente, las señales pueden propagarse al
puerto de salida en diferentes tiempos. Por esta razón antes de que el
puerto de salida produzca un valor de estado estacionario (estable) debió
haber pasado por fluctuaciones (incertidumbres) varias veces.

Debido a que las variables de realimentación (de estado presente) no


pueden cambiar en el mismo instante, puesto que los retardos de los
circuitos que las que generan nunca son iguales, pueden producirse uno o
varios pulsos transitorios indeseables muy cortos que se denominan timing
hazards.

6
Tiempos involucrados en Hazards
Los peligros pueden ser estáticos o dinámicos. Los 4 tipos de peligros
estáticos y dinámicos son:

Static Hazards, son condiciones en las que la salida de un circuito produce un glitch cuando
debe permanecer en un valor constante, con frecuencia estos static hazards ocurren cuando
una señal y su complemento momentáneamente asumen el mismo valor.

Dynamic Hazards, son condiciones en las que la salida de un circuito tiene la posibilidad de
que su salida cambie más de una vez como el resultado de una única transición de entrada;
generalmente se producen cuando una señal asume múltiples valores, o también puede
ocurrir cuando hay varios caminos con diferentes retardos.

7
EJEMPLO:

8
Subtema 4: Convertidores A/D y D/A
CANTIDADES DIGITALES: tienen un valor
discreto (determinado), como una de dos
posibilidades: 0 o 1, bajo o alto, verdadero o
falso, etc.

Ejemplo: De 0 V a 0.8 V = 0 lógico


De 2 V a 5 V = 1 lógico

CANTIDADES ANALÓGICAS: puede tomar


cualquier valor sobre un intervalo continuo de
valores.

Ejemplo: 2.76 V = 27.6°C

9
Subtema 4: Convertidores A/D y D/A

TRANSDUCTOR: Convierte la variable física en eléctrica. (termistores,


fotoceldas, fotodiodos, medidores de flujo, presión, velocidad, etc.

CONVERTIDOR ANALÓGICO – DIGITAL (ADC): Convierte la entrada


analógica en una salida digital (1500 mV = 10101100)

10
Subtema 4: Convertidores A/D y D/A

SISTEMA DIGITAL: Procesamiento, almacenamiento, cálculos u otras


operaciones sobre la salida digital.

CONVERTIDOR DIGITAL ANALÓGICO (DAC): Convierte la señal digital en


un voltaje o corriente analógico proporcional. (11110000 = 5 V).

ACTUADOR: Controla la variable física, (válvula con control eléctrico que


regule el flujo de agua de acuerdo al voltaje analógico.

ADCs y DACs funcionan como interfaces entre el mundo digital y analógico

11
Subtema 4: Convertidores A/D y D/A
CONVERSIÓN DIGITAL – ANALÓGICO
(DAC)

12
Subtema 4: Convertidores A/D y D/A
Salida analógica = K * Entrada Digital; K (Constante) = Valor de
proporcionalidad
Cuando sea un voltaje K estará en Volts y cuando sea una corriente K estará
en Ampers

Si K=1V; Vsal = 1V * Entrada digital


Calcular para: 1100 Vsal = 1V * 12 = 12 [V]

EJERCICIO 1: Un DAC de 5 bits tiene una salida de corriente. Para una


entrada digital de 10100 se produce una corriente de salida de 10 mA. ¿Cuál
será el valor de la corriente de salida para una entrada digital de 11101? (R =
14.5 mA)

13
Subtema 4: Convertidores A/D y D/A
PESOS DE ENTRADA

Las entradas se ponderan


de acuerdo a su posición
en el número binario.
¿Cuál es el voltaje máximo
del circuito?

14
Subtema 4: Convertidores A/D y D/A

EJERCICIO 2: Un convertidor D/A de cinco bits produce un Vsal = 0.2 V para


una entrada digital de 00001. Encuentre el valor de Vsal para una entrada
11111

15
Subtema 4: Convertidores A/D y D/A
RESOLUCIÓN • Se define como el cambio
más pequeño que puede
ocurrir en la salida analógica
como resultado de un
cambio en la entrada digital.
• La resolución es igual a la
ponderación del LSB.
• Para un DAC de N bits el
número de niveles distintos
es 2𝑁 , y el número de pasos
es 2𝑁 − 1.
• La resolución es lo mismo
que el factor de
proporcionalidad.
16
Subtema 4: Convertidores A/D y D/A CIRCUITOS
CONVERTIDORES D/A

• Circuito básico DAC de 4


bits
• A,B,C,D entradas binarias
valores de 0 a 5 V.
• El amplificador operacional
produce la suma
ponderada de los voltajes
de entrada.

• ¿Cuál sería el voltaje


para 1010?

17
Subtema 4: Convertidores A/D y D/A
• ¿Cuál sería el voltaje para 1010?
Subtema 4: Convertidores A/D y D/A
DAC con salida de corriente

Determine la resolución y la
salida de escala completa
para un DAC de Vref = 10 V y
R=10 Kohm.

19
Subtema 4: Convertidores A/D y D/A
APLICACIONES

CONTROL: La salida digital de una computadora puede convertirse en una


señal de control analógica para ajustar la velocidad de un motor o la
temperatura de un horno.
PRUEBA AUTOMÁTICA: La computadora puede programarse para generar
señales analógicas necesarias para probar circuitos y analizar las señales.

RECONSTRUCCIÓN DE SEÑALES: Digitalizar la señal analógica y luego


convertir los datos digitalizados a datos analógicos. (Osciloscopios, grabación
de audio y video, etc)

20
Subtema 4: Convertidores A/D y D/A
CONVERSIÓN ANALÓGICO - DIGITAL
(ADC) CIRCUITOS
CONVERTIDORES A/D

• Toma un voltaje de entrada


analógico y después de
cierto tiempo produce un
código de salida digital.
• El proceso de conversión
A/D es más complejo y
consume más tiempo.
• Están disponibles como
unidades encapsulados en
CI

21
Subtema 4: Convertidores A/D y D/A
FUNCIONAMIENTO

1. Pulsar señal de INICIO


2. A una velocidad determinada por reloj, la unidad de control modifica
en forma continua el número binario que se almacena en un registro.
3. El DAC convierte el número binario del registro en un voltaje
analógico, VAX
4. El comparador compara VAX con la entrada analógica VA, VAX < VA, la
salida del comparador permanecerá en alto.
5. La lógica de control activa la señal de fin de conversión (EOC).

22
Subtema 4: Convertidores A/D y D/A
ADC DE RAMPA DIGITAL

23
Subtema 4: Convertidores A/D y D/A
ADQUISICIÓN DE DATOS
Existen muchas aplicaciones en donde los datos analógicos
deben digitalizarse y transferirse hacia la memoria de un
computador. El proceso mediante el cual el computador
adquiere esos datos analógico digitalizados se llama
adquisición.
Al proceso de adquirir un solo punto de datos se le conoce
como muestreo de la señal analógica, y a ese punto de
datos se le conoce
Existen muchas aplicaciones en donde los datos
analógicos deben digitalizarse y transferirse hacia la
memoria de un computador. El proceso mediante el cual
el computador adquiere esos datos analógico digitalizados
se llama adquisición.

24
¿Dudas o cometarios?

25 25
Bibliografía
» Floyd, T. (2006). Fundamentos de Sistemas Digitales. Madrid. Novena
Edición. Editorial Pearson.
» RONALD. (2007). Sistemas Digitales Principios y Aplicaciones.
Barcelona: Pearson, (2 Ejemplares disponibles en Biblioteca).
» 2.- Carmen Baena – Manuel Jesús Bellido. (2003). Problemas de
Circuitos y Sistemas Digitales. MadridMcGraw - -Hill.
» 3.- Carlos A. Reyes (2008), Microcontroladores PIC Programación en
Basic, Ecuador; Microchip
» 4.- Santiago Corrales V. (2006), Electrónica Práctica con
Microcontroladores PIC, Ecuador; Microchip
» 5.- Jose María Angulo U. (2007), Microcontroladores PIC Diseño
práctico de aplicaciones,
Sistemas Digitales

Unidad 4
Procesamiento digital de datos

Tema 1
Fundamentos de FPGAs
SUBTEMAS

» Subtema 1: Arquitectura
» Subtema 2: Lenguaje VHDL
» Subtema 3: Aplicaciones

2
OBJETIVOS

 Describir la arquitectura de una FPGA.


 Explicar el funcionamiento básico de una tabla de consulta LUT.
 Explicar las funciones integradas que tienen el FPGA.
 Representar señales en VHDL, escribir código simple VHDL

3
ACTIVIDAD DE INICIO
¿Qué es un PLD?

4
Introducción
CLASIFICACIÓN DE CI DE LÓGICA PROGRAMABLE
⦁ Los CI de Lógica Programable pueden ser clasificados de la siguiente
manera:

 SPLD (Dispositivos Lógicos Programables Simples):


⦁ PAL (AND – programable, OR – fijo)
⦁ PLA (AND – programable, OR – programable)

 CPLD (Dispositivos Lógicos Programables Complejos)

 FPGA (Arreglos de Puertas Programables por


Campos).

5
Subtema 1: Introducción

LOGICA PROGRAMABLE

6
Introducción

C.I. Estándar SPLD: ROM, Circuito Modelo


TTL: Lógica PAL, GAL Integrado para personalizado
transistor a CPLD: Varios aplicaciones
transistor SPLD específicas:
CMOS: FPGAs: Chip
semiconductor Lógico
de óxido metálico programable
complementario

7 7
Introducción

8 8
Introducción
Comparación de una estructura PAL (dispositivo lógico de matriz programable) y una GAL
(Dispositivo lógico de matríz genérica)

9
Introducción
Introducción
⦁ Los PAL se programaron eléctricamente
usando patrones binarios y un sistema de
programación electrónico especial
disponible del fabricante o de un tercero.

⦁ Aunque algunos ingenieros programaron


dispositivos PAL mediante la edición
manual de archivos que contenían los
datos del patrón de fusibles binarios, la
mayoría optó por diseñar su lógica
utilizando un lenguaje de descripción de
hardware (HDL) que traducían (o
"compilaban") las ecuaciones lógicas de
los diseñadores
Introducción
Ejercicio 1: Determinar la salida lógica de la compuerta OR

12
Introducción
Ejercicio 2: Determinar X
Introducción

⦁ 20-28 pines
⦁ Número de entradas y salidas
⦁ Número de compuertas
⦁ Frecuencia
⦁ Retardos
⦁ Voltaje

⦁ Empresas: Lattice, Actel, Atmel


y Cypress
⦁ Ejemplos: 16V8 y el 22V10

Diagrama de bloques PAL/GAL


14
Introducción
CPLD (COMPLEX PROGRAMMABLE LOGIC DEVICE)

⦁ CPLD es una colección de PLDs


individuales dentro de un chip,
acompañada por una estructura
programable de interconexión que
permite a los PLDs estar
conectados.

⦁ La gran cantidad de formas en que se


puede elevar la complejidad de los
CPLDs da lugar a arquitecturas
diferentes, orientadas a un cierto campo
de aplicaciones cada uno.

15
Introducción

CPLDS DE ALTERA Y XILINX

⦁ MAX 10 FPGA
⦁ MAX V CPLD
⦁ MAX II CPLD
⦁ COOLRUNNER-II
⦁ QUARTUS PRIME DEVELOPMENT SUITE

16
Subtema 1: Arquitectura FPGAs

FPGA
(Field-Programmable
Gate Array)

Single XC4010E FPGA showing 20 by 20 array of logic elements and interconnect.

17
Subtema 1: FPGAs

Son dispositivos semiconductores conformados


por una matríz de bloques lógicos configurables
(CBLs) conectados mediante interconexiones
programables.

Los FPGAs a diferencia de los PLD, su


estructura no está compuesta por compuertas
lógicas individuales (PAL/PLA) , en reemplazo
tienen blocks lógicos para implementar
funciones lógicas.

18
Subtema 1: Arquitectura FPGAs

ARQUITECTURA
Los tres elementos principales de una
FPGA son:

• CLB (Configurable Logic Block)


• E/S (Interconexiones y bloques de
entradas y salidas
• Interconexiones

Floyd, T. (2006). Estructura interna de una FPGA

19
Subtema 1: Arquitectura FPGAs
CARACTERÍSTICAS
• Cuando los bloques CLB son relativamente simples,
decimos que la arquitectura FPGA es de
granularidad fina.
• Cuando los bloques CLB son de mayor tamaño y
más complejos, decimos que la arquitectura es de
granularidad gruesa.
• Los bloques de E/S permiten una interfaz con el
mundo exterior
• Los dispositivos FPGA de gran tamaño pueden tener
decenas de miles de bloques CLB, además de memoria
y otros recursos.
• Las densidades pueden ir desde los centenares de
módulos lógicos hasta aproximadamente 180.000
módulos lógicos.
• Las tensiones de alimentación continua están
comprendidas habitualmente entre 1,2 V y 2,5 V.
20 20
Subtema 1: Arquitectura FPGAs
Bloques Lógicos Configurables (CLB)

Compuesto por varios módulos


lógicos más pequeños y por
una serie de interconexiones
locales.

Internamente puede contener


LUTs, FFs y multiplexores.

Loop up table: memorias que


almacenan tablas de verdad.

21
Subtema 1: Arquitectura FPGAs

Módulo lógico

Un módulo lógico de un bloque CBL de


una FPGA puede configurarse para
implementar lógica combinacional, lógica
registrada o una combinación de ambas.
Se emplea un flip-flop que forma parte de
la lógica asociada para implementar
lógica registrada

22
Subtema 1: Arquitectura FPGAs

• Mientras los CBLs proveen la


capacidad lógica las
interconexiones
programables rutean las
señales entre los bloques las
E/S.
• Los softwares de diseño
ocultan la tarea de
enrutamiento al usuario
disminuyendo la complejidad
del diseño.
Subtema 1: Arquitectura FPGAs

LUT (Look Up Table)

Generalmente, la organización de una


LUT (Look Up Table), es un tipo de
memoria programable que se utiliza para
generar funciones lógicas
combinacionales suma de productos.
Consiste en una serie de 2𝑛 celdas de
memoria, siendo n el número de
variables de entrada.

24 24
SUBTEMA 1: ARQUITECTURA
Por ejemplo, mediante tres entradas se
pueden seleccionar hasta ocho celdas
de memoria, por lo que una LUT con
tres variables de entrada permite
generar una suma de productos con
hasta ocho términos. Dentro de las
celdas de memoria LUT puede
programarse un patrón de 1s y 0s.
Cada 1 significa que el término
producto asociado aparecerá en la
salida suma de producto mientras que
un 0 significa que dicho término
producto asociado no aparecerá en la
salida suma de productos. La expresión
de la salida suma de productos
resultante es:
25
Subtema 1: Arquitectura FPGAs

DISPOSITIVOS FPGA BASADOS EN RAM


Los dispositivos FPGA pueden ser no
volátiles si están basados en tecnología anti
fusible, o volátiles, si están basados en
tecnología SRAM. El término volátil significa
que todos los datos programados en los
bloques lógicos configurables se pierden
cuando se desconecta la alimentación. Por
tanto, los dispositivos FPGA basados en
SRAM o incluyen una memoria de
configuración no volátil integrada en el chip
para almacenar los datos de programa y
reconfigurar el dispositivo cada vez que se
aplique la alimentación, o bien utilizan una
memoria externa
26
Subtema 1: Arquitectura FPGAs

⦁ En el mercado existen muchos FPGAs que pueden utilizar diferentes tipos de


CLB (Xilinx) / LAB (Altera).

⦁ Comúnmente se utilizan los que están basados en LUT (lookup table) o tabla de
búsqueda que contiene celdas de almacenamiento.
Una LUT de dos entradas

X1 X0
0 0
0 1
1 0
1 1

27
Subtema 1: Arquitectura FPGAs
RAM Contents
Address Data
A A B C D F
4 Input
B 0 0 0 0 0
LUT F
C 0 0 0 1 0
(16 x 1 RA M)
D
0 0 1 0 1
0 0 1 1 0
0 1 0 0 0
0 1 0 1 0
0 1 1 0 1

A 0 1 1 1 0

B 1 0 0 0 0
1 0 0 1 0
1 0 1 0 1
F 1 0 1 1 0
1 1 0 0 1
C 1 1 0 1 1
D 1 1 1 0 1
1 1 1 1 1

Using a lookup table (LUT) to model a gate network.

28
Subtema 1: Arquitectura FPGAs
• Es fácil entender que es una LUT si imaginamos una tabla de verdad almacenada
en una memoria.
• Usualmente las LUT tienen cuatro o cinco entradas, por lo tanto 16 o 32 celdas
de almacenamiento.
• Las celdas de almacenamiento son celdas tipo SRAM.
• Cada celda puede almacenar un 0 o un 1 lógico.
• En las salidas de los LUT se conecta la circuitería adicional

29
SUBTEMA 1: ARQUITECTURA
LUT (LOOKUP TABLE)
⦁ Como las celdas de almacenamiento son de tipo
SRAM, la información se pierde cuando se apaga la
fuente de alimentación.
⦁ A menudo una pequeña memoria PROM que
mantiene los datos se incluye en la misma tarjeta
donde esta el FPGA.
⦁ Cuando se enciende la fuente de poder los datos se
cargan automáticamente desde la PROM a las
celdas de almacenamiento de las LUT.

30
SUBTEMA 1: ARQUITECTURA

PRINCIPALES FABRICANTES DE CPLDS Y FPGAS

31
ACTIVIDAD DE INICIO

Observar el siguiente video:

¿Qué es VHDL?

https://www.youtube.com/watch?v=XFyu9JhG7Nw

32 32
SUBTEMA 2: LENGUAJE VHDL

FLUJO DE DISEÑO:

⦁ PROBLEMA – IDEA
⦁ HDL
⦁ HERRAMIENTA DE DESARROLLO
⦁ SIMULACIÓN
⦁ IMPLEMENTACIÓN
⦁ PRUEBAS
⦁ MEDICIONES
SUBTEMA 2: LENGUAJE VHDL

Un lenguaje de descripción de hardware (HDL) es


una herramienta formal que sirve para describir el
comportamiento y la arquitectura de un circuito o
sistema electrónico utilizando diferentes niveles de
abstracción y en muchos casos de modo jerárquico.

“Very High Speed Integrated Circuit Hardware


Description Language” (Lenguaje de Descripción
de Hardware para Circuitos Integrados de Muy Alta
Velocidad).

34
SUBTEMA 2: LENGUAJE VHDL

Las sentencias declaran objetos para su uso en el diseño.

Categorías de las sentencias de diseño:

• Sentencias concurrentes.

• Sentencias secuenciales.

En Verilog la sentencia “Module” es la unidad de diseño y permite desarrollar


subprogramas o sub circuitos para formar sistemas complejos.
SUBTEMA 2: LENGUAJE VHDL

Sentencias concurrentes: Sentencias secuenciales:

• Declaraciones que serán ejecutadas en • Son ejecutadas en función del flujo del
paralelo. programa.

• Representan circuitos independientes. • Los objetos de asignación son reg o


integer.
• Cada declaración se ejecuta de forma
asíncrona. • La declaración always puede ser
secuencial o recurrente.
SUBTEMA 2: LENGUAJE VHDL

Tipos de datos en Verilog:

0 representa un cero lógico o falso.

1 representa un uno lógico o verdadero

x representa un valor lógico desconocido

z representa un estado de alta impedancia

El diseño de Verilog consiste en la interconexión de módulos.

Un módulo puede ser un elemento o una colección de bloques de diseño.


SUBTEMA 2: LENGUAJE VHDL

Nivel de compuerta:

Consiste en describir circuitos


desde un diagrama esquemático
a su equivalente a nivel de
compuertas.

Ejemplos: and, not, or, nand,


nor, etc.

La sentencia “wire” es utilizada


para realizar interconexiones
internas.
SUBTEMA 2: LENGUAJE VHDL
Diseño a nivel de compuertas:

Assign es una secuencia


concurrente y utilizada
únicamente en circuitos
combinacionales.
SUBTEMA 2: LENGUAJE VHDL
Diseño a nivel de compuertas:

Assign es una secuencia


concurrente y utilizada
únicamente en circuitos
combinacionales.
SUBTEMA 2: LENGUAJE VHDL
SUBTEMA 2: LENGUAJE VHDL
Máquina de Moore:
SUBTEMA 2: LENGUAJE VHDL
SUBTEMA 2: LENGUAJE VHDL
SUBTEMA 3: APLICACIONES DE LOS FPGA
APLICACIONES

[FPGA]. Recuperado de
https://images.app.goo.gl/Hb1KmMPgAG2KL9hh7
Aplicaciones FPGAs
⦁ Aeroespacial
⦁ Defensa
⦁ Automotriz
⦁ Industria médica
⦁ Conexión alámbrica e inalámbrica
⦁ Seguridad
⦁ Visión artificial
¿Dudas o cometarios?

47 47
Bibliografía
» Floyd, T. (2006). Fundamentos de Sistemas Digitales. Madrid. Novena Edición. Editorial Pearson.
» VHDL. Recuperado de Google Images (https://images.app.goo.gl/D5efx7sbeuM1yFiJ8).
» FPGA. Recuperado de Google Images (https://images.app.goo.gl/Hb1KmMPgAG2KL9hh7).
Sistemas Digitales

Unidad 4
Procesamiento digital de datos

Tema 2
Fundamentos de microcontroladores y sistemas embebidos
SUBTEMAS

» Subtema 1: Funcionamiento
» Subtema 2: Microcontroladores

2
ACTIVIDAD DE INICIO
¿Qué es un Microcontrolador?
INTRODUCCION AL MICROCONTROLADOR

» Un poco de historia

Inicialmente cuando no existían los


microprocesadores, se requería para el
diseño de circuitos electrónicos muchos
componentes y cálculos matemáticos. Un
circuito lógico básico requería de una gran
cantidad de elementos electrónicos
basados en transistores, resistencias, etc.

4 4
INTRODUCCION AL MICROCONTROLADOR

 Un poco de historia

En el año 1971 apareció el primer


microprocesador el cual originó un
cambio decisivo en las técnicas de
diseño de la mayoría de los equipos.
Entre los microprocesadores más
conocidos tenemos el popular Z-80 y el
8085.

5 5
DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR

» Microprocesador
El microprocesador es el cerebro de
un sistema informático. Los
microprocesadores son los circuitos
integrados más complejos.
Las partes esenciales de un
microprocesador son los registros, la
sección de control que decodifica los
programas, los buses que
transportan información digital, y la
unidad aritmética/lógica que
proporciona la capacidad de cálculo
y de tomar decisiones lógicas.

6 6
DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR
» Microprocesador

7 7
INTRODUCCION AL MICROCONTROLADOR

Los diseñadores de sistemas


electrónicos mediante los circuitos
integrados tenían equipos que podían
realizar mayor cantidad de tareas en
menos tiempo y su tamaño se redujo
considerablemente.

Sin embargo, después de cierto


tiempo aparece una nueva tecnología
llamada microcontrolador que
simplifica aún más el diseño
electrónico.

8
DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR
» Microcontrolador (µC)
Es un circuito integrado que contiene
toda la estructura de una
microcomputadora, CPU, memorias
RAM, ROM, circuitos de entrada y salida
y módulos con aplicaciones especiales.
Micro por lo pequeño, y controlador por
que se utiliza para controlar dispositivos
eléctricos, mecánicos, etc.

9 9
DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR
A mediados de los años 70s los fabricantes
de circuitos integrados crearon un
dispositivo el cual contenía toda la
estructura de una micro computadora, es
decir, CPU, memoria RAM, ROM, Circuitos
de entrada y salida.
Cada fabricante de microcontroladores
oferta un elevado número de modelos
diferentes, desde los más sencillos hasta los
más sofisticados.

10 10
DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR
Características Microprocesador Microcontrolador
Función Ejecutar instrucciones de software para Controlar sistemas en tiempo real
procesar datos
Arquitectura Von Neumann o Harvard Harvard
Memoria Requiere memoria externa para almacenar Incluye memoria integrada
programas y datos

Periféricos Requiere componentes externos para Incluye periféricos integrados como puertos de
conectarse a dispositivos entrada y salida, conversores analógico-digitales,
temporizadores y comunicación serial

Velocidad Mayor velocidad de procesamiento Velocidad de procesamiento limitada para


minimizar el consumo de energía
Consumo de energía Requiere más energía debido a su alta Requiere menos energía debido a su velocidad
velocidad de procesamiento y la necesidad limitada y componentes integrados
de componentes externos

Aplicaciones Sistemas que requieren una alta velocidad Sistemas embebidos que requieren control en
de procesamiento y no necesitan control en tiempo real, como dispositivos médicos,
tiempo real, como ordenadores personales automóviles, electrodomésticos, entre otros
y servidores
» Subtema 1: Funcionamiento

• Muchos dispositivos digitales que los


utilizamos comúnmente trabajan con
microcontroladores.
• Obedecen a principios de funcionamiento
básico y arquitecturas internas.
• Electrodomésticos: microondas, lavadoras,
secadoras, aires acondicionados, entre otros.
• Automóviles: sistemas de frenos ABS, sistemas
de control de estabilidad, sistemas de
entretenimiento y navegación, entre otros.
• Dispositivos médicos: monitores de presión
arterial, glucómetros, bombas de insulina,
entre otros.
» Subtema 1: Funcionamiento

ARQUITECTURA INTERNA

Un microcontrolador posee todos los componentes de un


computador, pero con unas características fijas que no
pueden alterarse:

• Unidad Central de Procesamiento (CPU)


• Memoria de programa (No volátil)
• Memoria datos (lectura y escritura)
• Líneas E/S para los controladores de periféricos
• Recursos auxiliares

13
» Subtema 1: Funcionamiento

UNIDAD CENTRAL DE PROCESO - CPU


Es el elemento más importante del
microcontrolador y determina sus principales
características, tanto a nivel de hardware como de
software. Lee las instrucciones, las interpreta y las
ejecuta. Posee ALU.
Existen dos arquitecturas, se diferencian en la
forma de conexión de la memoria al procesador y
en los buses que cada una necesita:

» Arquitectura Von Neumann


» Arquitectura Harvard

14
» Subtema 1: Funcionamiento

ARQUITECTURA VON NEUMANN

Algunas familias de microcontroladores como INTEL-


51 y Z80.

15
» Subtema 1: Funcionamiento

ARQUITECTURA VON NEUMANN


Existe una sola memoria, en donde coexisten las instrucciones de
programa y los datos, accedidos con un bus de dirección, uno de
datos y uno de control.

Limitación:
 Longitud de las instrucciones por el bus de datos (varios accesos a
memoria para instrucciones complejas).
 velocidad de operación (bus único para datos e instrucciones) e
impide superponer ambos tiempos de acceso.

16
» Subtema 1: Funcionamiento

ARQUITECTURA HARVARD

Utilizada en sistemas embebidos en general.

17
» Subtema 1: Funcionamiento

ARQUITECTURA HARVARD

• Memoria de datos separada de la En resumen, la principal


memoria de instrucciones diferencia entre la arquitectura
• Palabra de datos Von Neumann y Harvard es
• Palabra de instrucción cómo se maneja la memoria
• Conjunto reducido de instrucciones en el procesador. Mientras que
(RISC) Von Neumann utiliza una
• Ejecución de instrucciones en un ciclo memoria unificada, Harvard
de instrucción. utiliza memorias separadas, lo
• Paralelismo implícito, segmentación
del procesador (pipe-line) que puede afectar la velocidad
y la capacidad de
procesamiento.

18 18
» Subtema 1: Funcionamiento

MEMORIA DE PROGRAMA (ROM)


Está diseñado para que en su memoria de
programa se almacenen todas las instrucciones
del programa de control.

1. ROM con máscara


2. OTP (One Time Programmable)
3. EPROM
4. EEPROM
5. FLASH

19 19
» Subtema 1: Funcionamiento

MEMORIA DE PROGRAMA (ROM)

1.- ROM con máscara


2.- OTP (One Time Programmable)
El contenido se graba durante el
proceso de fabricación mediante el Sólo se puede grabar una vez por parte
uso de “máscaras”. del usuario. Se aconseja este tipo de
memoria cuando el ciclo de diseño del
Se aconseja este tipo de memoria producto es muy corto y para prototipos
cuando se precisan cantidades muy finales.
grandes. (varios miles de unidades)

20
» Subtema 1: Funcionamiento

MEMORIA DE PROGRAMA (ROM)

3.- EPROM
(Erasable Programmable Read Only Memory), pueden
borrarse y grabarse muchas veces.
En la superficie de la cápsula del microcontrolador existe
una ventana de cristal por la que se puede someter al chip
de la memoria a rayos ultravioleta para producir su borrado
y emplearla nuevamente.

21
» Subtema 1: Funcionamiento

MEMORIA DE PROGRAMA (ROM)


4.- EEPROM
(Electrical Erasable Programmable Read OnIy
Memory). Se trata de memorias de sólo lectura,
programables y borrables eléctricamente.
La grabación es similar a las memorias OTP y EPROM,
pero el borrado es mucho más sencillo al poderse
efectuar de la misma forma que el grabado, o sea,
eléctricamente.
Garantiza entre 100 mil y un millón de ciclos de
escritura/borrado.

22
» Subtema 1: Funcionamiento

MEMORIA DE PROGRAMA (ROM)

5. FLASH
Se puede escribir y borrar en circuito al igual que la
EEPROM, pero suelen disponer de mayor
capacidad que estas últimas.
Pueden ser programadas con las mismas tensiones
de alimentación del microcontrolador.
La alternativa FLASH está recomendada frente a la
EEPROM cuando se precisa gran cantidad de
memoria de programa no volátil. Es más veloz y
tolera más ciclos de escritura/borrado.

23
» Subtema 1: Funcionamiento

MEMORIA DE DATOS (RAM)


Es una memoria volátil destinada al almacenamiento de información
temporal que será utilizada por el procesador para realizar cálculos u otro
tipo de operaciones lógicas. Los microcontroladores disponen de
capacidades de RAM comprendidas entre 20 y 512 bytes. Existen
microcontroladores que disponen de memoria EEPROM para contener
datos.

24
» Subtema 1: Funcionamiento

REGISTROS Y BITS

Un registro es una posición de memoria en la cual se


puede almacenar un dato. Es decir que la memoria está
dividida en pequeñas partes llamadas “Registros”.
El primer registro de una memoria corresponde a la
dirección 00H.
Hay un conjunto de registros que ya vienen
“Predefinidos” desde la fábrica.
Cada registro está dividido en 8 partes, Bits.

25
» Subtema 1: Funcionamiento

LINEAS DE ENTRADA/SALIDA (PUERTOS)

Los microcontroladores cuentan con una


serie de pines destinados a entrada y
salida de datos o señales digitales.
También conocidos como puertos de
E/S, generalmente agrupadas en puertos
de 8 bits de longitud, permiten leer
datos del exterior o escribir en ellos
desde el interior del microcontrolador,
el destino habitual es el trabajo con
dispositivos simples como relés, LED, o
cualquier otro dispositivo.

26
» Subtema 1: Funcionamiento

RECURSOS AUXILIARES
» Circuito de reloj.
» Temporizadores y contadores.
» Conversores AD y DA.
» Comparadores
» Modulador de ancho de pulsos (PWM)
» Puerto serie
» Otros puertos de comunicación (USB, CAN)
» Sistema de protección.

27
» Subtema 1: Funcionamiento

LOS MICROCONTROLADORES PIC

Los 'PIC' son una familia de microcontroladores tipo


RISC (Reduced Instruction Set Computer) fabricados
por Microchip Technology Inc. y derivados del
PIC1650, originalmente desarrollado por la división
de microelectrónica de General Instruments.
PIC “Peripheral Interface Controller”.
El PIC de 8 bits se desarrolló para el año 1975

28
» Subtema 2: Microcontroladores

Los microcontroladores PIC incorporan en su


procesador tres características:

 Procesador tipo RISC


 Procesador segmentado
 Arquitectura HARVARD

Con estos recursos los PIC son capaces de


ejecutar en un ciclo de instrucción todas las
instrucciones, excepto las de salto que tardan
el doble.

29
» Subtema 2: Microcontroladores

Se divide en cuatro gamas:


Gama enana, gama baja, gama media y
gama alta.

Sus diferencias radican en:


El número de instrucciones y longitud.
El número de puertos y funciones.

Lo cual se refleja en el encapsulado, la


complejidad interna y de programación, y
en el número de aplicaciones.

30
» Subtema 2: Microcontroladores

NOMENCLATURA DE LOS PIC’S


PIC nnLLLxxx
nn: Un número propio de la gama del PIC

LLL: Código de letras donde la primera


indica la tensión de alimentación y las
otras dos el tipo de memoria que utiliza

Xxx: Número que indica el modelo del PIC.

31 31
» Subtema 2: Microcontroladores

NOMENCLATURA DE LOS PIC’S

32
» Subtema 2: Microcontroladores

GAMA ENANA
PIC 12C(F)XXX, de 8 patas (pines)

Aunque solo tienen 8 pines, pueden destinar


hasta 6 como líneas de E/S para los
periféricos porque disponen de un oscilador
interno R-C.

33
» Subtema 2: Microcontroladores

GAMA ENANA

34
» Subtema 2: Microcontroladores

GAMA BAJA O BÁSICA

 Mejores relaciones coste/prestaciones.


 Encapsulados con 18 y 28 pines
 Pueden alimentarse con una tensión 2.5V
 33 instrucciones con formato de 12bits.
35 35
» Subtema 2: Microcontroladores

GAMA BAJA PIC16C5X

Principales características de los modelos de gama baja.

36 36
» Subtema 2: Microcontroladores

GAMA MEDIA

» Encapsulado desde 18 hasta 68 pines


» 35 instrucciones de 14 bits
37 37
» Subtema 2: Microcontroladores

GAMA MEDIA PIC16CXXX

Características relevantes de los modelos


PIC16X8X de la gama media
38 38
» Subtema 2: Microcontroladores

GAMA ALTA
» Alcanzan 58 instrucciones de 16 bits
» Sistema de gestión de interrupciones
vectorizadas
» Incluyen variados controladores de periféricos,
puertas de comunicación serie y paralelo
» Arquitectura abierta.

39 39
» Subtema 2: Microcontroladores

EL PIC16X84

» Pertenece a la familia de la gama media


» Tiene solo 18 pines
» Posee una memoria de programa de 1K
palabras de 14bits cada una
» 64 bytes como memoria de datos auxiliar y
opcional

40
» Subtema 2: Microcontroladores

TARJETA DE PRESENTACION DE PIC16X84


» Memoria de programa 1Kx14
» Memoria de datos RAM 36 byte-PIC16C84 y de
68 byte-PIC16F84
» Memoria de datos 64bytes/EEPROM
» Pila de 8 niveles
» Interrupciones 4 tipos diferentes
» Juego de instrucciones 35
» Encapsulado Platico DIP de 18 pines
» Frecuencia de trabajo 10MHz Máxima
41 41
» Subtema 2: Microcontroladores

TARJETA DE PRESENTACION DE PIC16X84

» Temporizadores : Solo uno TMR0


» Líneas E/S digitales : 13 Puerta A y Puerta B
» Voltaje de alimentación : VDD de 2 a 6VDC
» Corriente máxima absorbida : 80mA-Puerta A y
150mA-Puerta B
» Corriente máxima suministrada : 50mA-Puerta A
y 100mA-Puerta B

42 42
» Subtema 2: Microcontroladores

ASPECTO EXTERNO
•VDD
•VSS
•OSC1/CLKIN
•OSC2/CLKOUT
•MCLR9#
•RA0-RA4
•RA4/TOCKI
•RB0-RB7
•RB0/INT

43 43
¿Dudas o cometarios?

44 44
Bibliografía
» Carlos A. Reyes (2008), Microcontroladores PIC Programación en Basic, Ecuador; Microchip
Sistemas Digitales

Unidad 4
Procesamiento digital de datos

Tema 2
Fundamentos de microcontroladores y sistemas embebidos
SUBTEMAS

» Subtema 3: Aplicaciones de Microcontroladores.

» Subtema 4: Aplicaciones de Sistemas Embebidos.

2
OBJETIVOS

 Conocer aplicaciones del microcontrolador


 Revisar los tipos de sistemas embebidos

3
ACTIVIDAD DE INICIO
¿Cuáles son las aplicaciones del
microcontrolador?

4
» Subtema 2: Microcontroladores
PARÁMETROS TÉCNICOS

• Arquitectura del procesador:


• Velocidad de reloj:
• Memoria:
• Periféricos integrados:
• Consumo de energía:
• Interfaces de comunicación:
• Tamaño y encapsulado:
• Seguridad:
• Temperatura y rango de voltaje:
» Subtema 2: Microcontroladores

FRECUENCIA DE FUNCIONAMIENTO

» La frecuencia de funcionamiento de
un microcontrolador es la velocidad a
la que ejecuta las instrucciones del
programa.
» Esta velocidad depende del tipo de
oscilador que utiliza el
microcontrolador, que puede ser
interno o externo.
» La frecuencia de funcionamiento
puede variar desde unos pocos
kilohercios hasta varios gigahercios.

6
» Subtema 2: Microcontroladores

» Los osciladores de los microcontroladores


son circuitos que generan una señal
periódica que determina la velocidad de
ejecución del programa.
» Hay varios tipos de osciladores, como los
sintonizados, los de cuarzo o cerámicos, de
frecuencia sintetizada y los RC. Cada tipo
tiene sus ventajas y desventajas en
términos de estabilidad, precisión,
consumo y costo.
» Algunos microcontroladores permiten
escoger entre diferentes tipos de
osciladores según las necesidades del
proyecto.
» Subtema 2: Microcontroladores

TIPOS DE OSCILADORES
» Osciladores sintonizados, tanque o LC:
Son aquellos que utilizan un circuito
resonante formado por una bobina y uno o
más condensadores.

La frecuencia de oscilación depende de los


valores de estos componentes.

Algunos ejemplos son los osciladores


Hartley, Colpitts, Armstrong, Vackar, Seiler y
Clapppor una resistencia y un condensador.

8
» Subtema 2: Microcontroladores

» Osciladores Pierce, a cuarzo o


cerámicos:

Son aquellos que utilizan un cristal o un


resonador cerámico como elemento
determinante de la frecuencia.

Estos elementos tienen una alta estabilidad y


precisión. Los osciladores Pierce son muy
usados en microcontroladores y relojes
» Subtema 2: Microcontroladores

» Osciladores por frecuencia


sintetizada:

Son aquellos que generan una señal con


una frecuencia variable y controlada por
un circuito digital.

Estos osciladores pueden producir una


gran variedad de frecuencias con alta
resolución y exactitud. Se usan en
aplicaciones como comunicaciones, radar
y GPS
» Subtema 2: Microcontroladores

» Osciladores de relajación:

Son aquellos que generan una señal no


sinusoidal (como cuadrada, triangular o sierra)
mediante un proceso de carga y descarga de
un condensador.

La frecuencia de oscilación depende del tiempo


que tarda el condensador en alcanzar ciertos
umbrales de voltaje. Se usan en aplicaciones
como temporizadores, alarmas y generadores
de tonos
» Subtema 3: Aplicaciones de microcontroladores

CONSIDERACIONES BÁSICAS A LA HORA DE MONTAR UN PROYECTO

» 1. Recuerde que el PIC tiene tecnología


CMOS, esto quiere decir que consume
muy poca corriente pero que a la vez es
susceptible a daños por estática, se
recomienda utilizar pinzas para
manipular y así poder transportar desde
el grabador al protoboard o viceversa, o
a su vez utilizar una manilla antiestática.

12
» Subtema 3: Aplicaciones de microcontroladores

CONSIDERACIONES BÁSICAS A LA HORA DE MONTAR UN PROYECTO

» 2. Procure utilizar un regulador de » 3. No sobrepase los niveles de corriente, tanto


voltaje como el 7805 que nos de entrada como de salida, recuerde que el PIC
entrega exactamente 5V. y no un puede entregar por cada uno de sus pines una
adaptador de pared, ya que el corriente máxima de 25 mA. Así mismo soporta
voltaje de salida no siempre es el una corriente máxima de entrada de 25 mA.,
mismo del que indica su esto quiere decir que puede encender un led
fabricante, por último, puede con una resistencia de 330 Ω, revisemos:
utilizar un circuito con un diodo
zener de 5.1 V.

13
» Subtema 3: Aplicaciones de microcontroladores
CONSIDERACIONES BÁSICAS A LA HORA DE MONTAR UN PROYECTO

» 4. En algunos proyectos es » 5. Cuando se necesite precisión en el trabajo del


necesario conectar un capacitor de PIC (comunicación serial, tonos DTMF, etc.), se
0,1uF o 1 uF en paralelo al PIC, recomienda utilizar un cristal oscilador externo
este evita mal funcionamientos de 4 MHZ en adelante, ya que el oscilador
que podrían ocurrirle, en especial interno RC que posee no tiene muy buena
cuando se utiliza teclados precisión.
matriciales y se tiene conectado
adicionalmente un buzzer activo
(parlante activo) y relés.

14 14
» Subtema 3: Aplicaciones de microcontroladores

PROYECTOS DE APLICACIÓN
• Diagrama de conexión de un led en el puerto B.0 o
pin 6 para hacer un parpadeo de un led.

15
» Subtema 3: Aplicaciones de microcontroladores
PROYECTOS DE APLICACIÓN
• Diagrama esquemático de conexión para un semáforo de 2 intersecciones.

16 16
» Subtema 3: Aplicaciones de microcontroladores

PROYECTOS DE APLICACIÓN
• Diagrama esquemático de conexión de 8 LEDS, para el proyecto de luces con PIC. Debido a la
capacidad de corriente que puede entregar este PIC, no se necesita de buffers amplificadores..

17 17
» Subtema 3: Aplicaciones de microcontroladores
PROYECTOS DE APLICACIÓN
• Diagrama de conexión de 8 leds y un pulsador, cada que se pulsa el botón, los leds aumentan en
código binario.

18 18
» Subtema 3: Aplicaciones de microcontroladores
PROYECTOS DE APLICACIÓN
• Manejo de un display de 7 segmentos con el CI 7447

19 19
» Subtema 3: Aplicaciones de microcontroladores
PROYECTOS DE APLICACIÓN
• Manejo de 4 displays de 7 segmentos para rotulación

20 20
» Subtema 4: Aplicaciones de sistemas embebidos

» Los sistemas embebidos se definen como


un conjunto de componentes
electrónicos asociados para realizar
funciones dedicadas.
» En pocas palabras un sistema embebido
se diferencia de otro tipo de sistemas
principalmente por poseer un
procesador central, como se aprecia en
la figura, el cual es el encargado de
recibir, analizar y procesar los datos
admitidos por los sensores para,
posteriormente, enviar una señal a los
actuadores y que éstos realicen la
función o funciones específicas
requeridas.

21
» Subtema 4: Aplicaciones de sistemas embebidos

CARACTERÍSTICAS
■ Tienen un procesador central. Los módulos centrales de procesamiento pueden estar
formados por microcontroladores, FPGAS, microprocesadores o una mezcla de los
anteriores.
■ Son sistemas confiables.
■ Requieren poco o nulo mantenimiento. En su gran mayoría no exigen mantenimiento
dedicado.
■ Son sistemas seguros. Tienen protección del software incrustado, utilizan protocolos
encriptados, se diseñan para ser dispositivos Anti – Hacking. Aunque el gran auge de estos
sistemas y su uso masivo y muchas veces descuidado está abriendo una brecha en su
seguridad.
■ Son eficientes en cuanto al consumo de energía.
■ Son de propósito específico.

22
» Subtema 4: Aplicaciones de sistemas embebidos

PROYECTOS DE APLICACIÓN
» Diagrama de bloques de
un sistema de control de
entorno domótico.

23
» Subtema 4: Aplicaciones de sistemas embebidos

PROYECTOS DE APLICACIÓN

» Diagrama de bloques de
un huerto automatizado
mediante IoT.

24 24
» Subtema 4: Aplicaciones de sistemas embebidos

PROYECTOS DE APLICACIÓN
» Los microcontroladores, microprocesadores y sus
placas de desarrollo, permiten tener acceso a
una gran cantidad de datos, así como tele-
controlar diversos dispositivos.
» Al ser una tendencia a nivel mundial la conexión
de todos los dispositivos entre sí, se puede
generar un ecosistema IoT.

25
» Subtema 4: Aplicaciones de sistemas embebidos

IoT

» El Internet de las cosas (IoT) es un tipo de red


que conecta cualquier cosa con Internet. Dicha
red está basada en protocolos estipulados a
través de equipos de detección de información
para llevar a cabo el intercambio de información
y las comunicaciones, con el fin de lograr
reconocimientos inteligentes, posicionamiento,
rastreo, monitoreo y administración.

26
» Subtema 4: Aplicaciones de sistemas embebidos

Domótica e IoT
“Estos dispositivos IoT están revolucionando el mercado, por su bajo coste, por su concepto de plug
& play, su fácil instalación y porque resuelven soluciones sencillas sin tener que entrar en el mundo
profesional de los sistemas” (Carretero, 2017).
» DESVENTAJAS
» VENTAJAS ■ Al ser productos de bajo coste, la calidad y la
■ Inversión inicial baja.
estética dejan qué desear.
■ Dispositivos de fácil instalación y
■ Las actualizaciones pueden hacer que el
configuración (enfocados al cliente final).
producto deje de funcionar.
■ Fácil comunicación (wifi o radio).
■ Falta de comunicación entre marcas y/o
■ Ideal para pequeñas casas o pisos.
productos (falta de integración similar a sistemas
■ Productos novedosos e interesantes en
domóticos con estándares).
cada momento.
■ Baja fiabilidad (gran parte por la comunicación
■ Productos accesibles a nivel mundial.
inalámbrica).
■ Nivel de seguridad bajo.
27
¿Dudas o cometarios?

28 28
Bibliografía
» Carlos A. Reyes (2008), Microcontroladores PIC Programación en Basic, Ecuador; Microchip

También podría gustarte