SlideShare una empresa de Scribd logo
Estudiante eliecer falcon
Cedula 17783327
100% saia
son circuitos  integrados,  que 
proporcionan  una  solución  al  diseño  de 
forma análoga.
La estructura básica de una PLD permite 
realizar  cualquier  tipo  de  circuito 
combinacional  basándose  en  una  matriz 
formada por puertas AND, seguida de una 
matriz de puertas OR. Tres son los tipos 
más  extendidos  de  PLD’s,  la  PROM, 
PLA, y la GAL.
Fuente
•Los microprocesadores Intel 286, 386 y 
486. 2002.
•P. Karen and M. Nick “Introduction to 
Programmable Logic” Abril 2004.
Los PLD´s están desplazando, cada vez más, a 
la  lógica  discreta  y  a  otros  tipos  de circuitos 
ASIC debido  a  las  múltiples  ventajas  que 
ofrecen. Algunas de estas son:
•Reducción de espacio.
•Reducción del número de conexiones.
•Reducción de la potencia de consumo.
•Disminución del coste.
•Aumento de la fiabilidad.
•La  mayor  parte  de  ellos  ofrecen  una  gran 
flexibilidad al permitir  reprogramar el circuito 
lógico a la medida, pudiendo obtener diferentes 
configuraciones para un mismo dispositivo.
•Esta posibilidad que brindan algunos PLD´s de 
ser  reprogramados,  permite  que  se  elimine  el 
riesgo de errores a la hora de la grabación. 
•Gran  facilidad  de  diseño  porque  las  herramientas 
disponibles  para  este  fin  simplifican 
considerablemente el proceso de diseño, haciendo que 
la implementación al más bajo nivel sea transparente 
para el usuario
Algunos  aspectos  negativos  a  señalar  en 
estos  circuitos  vienen  dado  en  que  las 
técnicas de los circuitos impresos cambian 
considerablemente,  la  selección  del 
encapsulado  no  es  trivial,  las  conexiones 
entre terminales son muy pequeñas y surge 
la  necesidad  de  utilizar  una  circuitería 
adicional para el control de la calida. 
El  sistema  de  desarrollo  consiste  en  un 
software de diseño y un programador, donde el 
software,  es  en  esencia,  un ensamblador que 
transforma el diseño de alto nivel que hace el 
usuario  a  bajo  nivel  o  nivel  de  programación 
del dispositivo
El I²C bus,  no tan  sólo  son dos cables, usados 
para  realizar  una  transmisión  bidireccional  de 
datos  entre  distintos  sistemas  gobernados  por 
microcontroladores  de  forma  eficaz.  Veremos, 
cómo podemos controlar un importante número 
de dispositivos con nuestro Arduino, aunque, no 
es  fácil  de  dominar.  Se  trata  de,  un  bus 
bidireccional que utiliza dos líneas, una de datos 
serie  (SDA)  y  otra  de  reloj  serie  (SCL),  que 
requiere  resistencias  de  polarización  a  positivo 
(RPA). SCL es la línea de reloj, se utiliza para 
sincronizar  todos  los  datos  SDA  de  las 
transferencias durante I²C bus. SDA es la línea 
de datos.
Las líneas SCL y SDA están conectadas a todos 
los  dispositivos  en  el I²C bus.  Ambas  líneas 
SCL  y  SDA  son  del  tipo  drenador  abierto 
asociados a un transistor de efecto de campo (o 
FET), es decir, un estado similar al de colector 
abierto. Esto significa que el chip puede manejar 
su  salida  a  BAJO,  pero  no  puede  manejar  a 
ALTO. 
Para que la línea pueda ir a ALTO, se deben 
proporcionar resistencias de polarización a 5V. 
Necesita de una resistencia de la línea SCL a la 
línea de 5V y otra de la línea SDA a la línea de 
5V.. Sólo necesita un conjunto de resistencias 
de RPA (pull-up) para todo el I²C bus, no son 
necesarias para cada dispositivo. La 
alimentación del sistema, debe tener una masa 
común, también puede haber una alimentación 
compartida que, se distribuye entre los distintos 
dispositivos
Cuando se envía la dirección de 7 bits, siempre seguimos enviando 8 bits. El bit extra (bit 8º) se usa 
para informar al esclavo si el maestro está escribiendo o leyendo de él. Si el bit 8º es 0, el maestro 
está  escribiendo  al  esclavo.  Si  el bit 8º  es  1,  el  maestro  esta  en  la  lectura  del  esclavo.  Existen 
disposiciones en la norma de I²C para entornos multi-master, así como de 10 bits frente a la más 
simple  y  la  más  comúnmente  usada,  es  la  configuración  de  un  solo  maestro,  de  7  bits  de 
direccionamiento.Yo se que, la localización de la dirección de 7 bits en la parte superior del byte, es 
una fuente de confusión para los recién llegados, pero intentaré hacer un esfuerzo para dejar lo más 
claro  posible  este  punto.  No  debería  haber  ningún  problema  en  que,  los  tres  bits  A0,  A1  y  A2 
correspondientes a los pines 1, 2 y 3 seleccionan la dirección del dispositivo, del P0 al P7 son los 
puertos de E/S e INT, es una salida de interrupción que no lo usaremos. De modo que, para poner en 
servicio un PDF8574, son necesarias dos cosas, la dirección del dispositivo (b0100000) y un byte de 
datos para el pin de salida que se necesita.
De modo que, si ponemos los pines A0 ~ A2 a masa o GND, la dirección de nuestro
dispositivo en el sistema binario será 0100000, o 0x20 en formato hexadecimal. Y con los bytes
de datos, haremos lo mismo, configurando así los pines de salida, por ejemplo: si queremos
poner todos a Alto (H), enviamos 0 en binario que, en hexadecimal es 0, o bien para poner los
cuatro primeros a H y los segundos cuatro a L. Se utiliza 00001111 en binario que, en
hexadecimal es 0x0F.
los cuatro pasos que sigue el inicio de una transmisión, son 
los 4 bytes de inicio, vea la figura anterior
•En el primer paso, el byte que se envía es START, después 
de la condición de Bit inicio (START) se envía un byte que, 
contiene siete  bits que  componen  la  dirección  del 
dispositivo que se quiere seleccionar y un octavo bit R/W 
•El  segundo  paso,  este byte,  contiene  la  dirección  del 
registro  que  se  desea  leer/escribir.  Puede  realizarse  un 
reinicio como se muestra en la figura.
•El tercer paso, aquí se escribe la dirección con el bit menos 
significativo LSB a nivel 1, para indicar que se lee.
•El cuarto paso y siguientes continúan la misma función de 
lectura, no tiene por qué ser sólo uno.
•A cada byte transferido al bus, le sigue un noveno pulso de 
reloj durante el cual, el dispositivo receptor, debe generar un 
pulso de reconocimiento
Para  pasar  a  la  función  de  escritura  en  el  mismo 
dispositivo,  puede  realizarse,  enviando  un  bit 
de STOP o  de  reinicio,  considerado  como  parada  e 
inicio
.  El  paso  que  sigue  es,  escribir  el  byte  que 
contiene siete bits que componen la dirección 
del dispositivo que se quiere seleccionar y un 
octavo bit a 0 que corresponde a la operación 
que se quiere realizar con él, ahora escritura. Y 
los  pasos  siguientes  pueden  ser  como  en  el 
caso anterior.
Dicho esto, se debe resaltar que en el I²C-bus 
se definen tres tipos básicos de mensajes, cada 
uno de los cuales comienza con un START y se
termina con una STOP
En un mensaje combinado, cada uno, sea de 
lectura o escritura comienza con un START 
y la dirección de esclavo. Después del primer 
START,  también  se  pueden  hacer  llamados 
repetidos bits de START, esto confirma que 
repetidos bits  START no vienen precedidos 
por bits de STOP, que es como los esclavos 
conocen  la  próxima  transferencia  que,  es 
parte  del  mismo  mensaje.  Todo  esclavo 
puede sólo responder a mensajes particulares, 
tal como se define por su documentación de 
producto.
Cuando el maestro ha terminado de escribir 
todos  los  datos  en  el  esclavo,  se  envía  una 
secuencia  de  parada  que  completa  la 
transacción.  Así  que  para  escribir  en  un 
dispositivo esclavo:
Para lograr este propósito, se parte de una palabra de
dirección, un byte, en los que debemos distinguir: el bit
START, con dirección del esclavo al que interrogará. Esta
dirección está formada por 4 bits de código de control más
tres bits (A0..A2) de selección de dispositivo y el bit de
escritura /lectura (R/W), por último se envía el bit ACK
(reconocer) por que es el maestro el que está transmitiendo
es un sistema basado en un procesador
o microprocesador que posee un conjunto de
instrucciones, un hardware y
un software optimizados para aplicaciones que
requieran operaciones numéricas a muy alta
velocidad. Debido a esto es especialmente útil para el
procesado y representación de señales analógicas en
tiempo real: en un sistema que trabaje de esta forma
(tiempo real) se reciben muestras (samples en inglés),
normalmente provenientes de un conversor
analógico/digital (ADC).
Las aplicaciones más habituales en las que se
emplean DSP son el procesado de audio y vídeo; y
cualquier otra aplicación que requiera el procesado
en tiempo real. Con estas aplicaciones se puede
eliminar el eco en las líneas de comunicaciones,
lograr hacer más claras imágenes de órganos internos
en los equipos de diagnóstico médico, cifrar
conversaciones en teléfonos celulares para mantener
privacidad, analizar datos sísmicos para encontrar
nuevas reservas de petróleo, hace posible las
comunicaciones wirelessLAN, el reconocimiento de
voz, los reproductores digitales de audio, los módems
inalámbricos, las cámaras digitales, y una larga lista
de elementos que pueden ser relacionados con el
proceso de señales.
Un DSP está diseñado teniendo en cuenta las tareas más
habituales del procesado digital: sumas, multiplicaciones y
retrasos (almacenar en memoria).
Los DSP abandonan la arquitectura clásica de Von
Neumann, en la que datos y programas están en la misma
zona de memoria, y apuestan por la
denominada Arquitectura Harvard. En una arquitectura
Harvard existen bloques de memoria físicamente separados
para datos y programas. Cada uno de estos bloques de
memoria se direcciona mediante buses separados (tanto de
direcciones como de datos), e incluso es posible que la
memoria de datos tenga distinta anchura de palabra que la
memoria de programa (como ocurre en ciertos
microcontroladores).
Los elementos básicos que componen un DSP son:
•Conversores en las entradas y salidas
•Memoria de datos, memoria de programa y DMA.
•MACs: multiplicadores y acumuladores.
•ALU: Unidad aritmético-lógica.
•Registros.
•PLL: Bucles enganchados en fase.
•PWM: Módulos de control de ancho de pulso.
Se ha dicho que puede trabajar con señales analógicas,
pero el DSP es un sistema digital, por lo tanto
necesitará un conversor analógico/digital a su entrada y
digital/analógico en la salida. Como todo sistema
basado en procesador programable necesita
una memoria donde almacenar los datos con los que
trabajará y el programa que ejecuta.
Si se tiene en cuenta que un DSP puede trabajar con
varios datos en paralelo y un diseño e instrucciones
específicas para el procesado digital, se puede dar una
idea de su enorme potencia para este tipo de
aplicaciones. Estas características constituyen la
principal diferencia de un DSP y otros tipos de
procesadores.
Para adentrar en su funcionamiento se pondrá el
ejemplo de un filtro
: el DSP recibirá valores digitales o samples
procedentes de la señal de entrada, calcula qué
salida se obtendrá para esos valores con el filtro
que se le ha programado y saca esa salida. Un
posible sistema basado en un DSP puede ser el
siguiente:
La señal entrante entra directamente en un filtro
antialiasing para evitar frecuencias superiores a la
muestreada del conversor analógico-digital. Después
se lleva a cabo el procesado digital en el módulo DSP,
para después volverse a convertir en analógico y dar
paso a la salida.
Un DSP se  puede  programar  tanto 
en ensamblador como  en C.  Cada  familia 
de DSP tiene su propio lenguaje ensamblador y sus 
propias  herramientas  suministradas  por  el 
fabricante.  Gracias  a  la  colaboración  entre 
fabricantes, existen lenguajes de más alto nivel (y 
por lo tanto, más sencillos y rápidos de usar) que 
incorporan la capacidad de programar los DSP, en 
general  pasando  por  un  precompilado  automático 
en C. Son los casos de LabVIEW y Matlab
 ejemplo se presenta la programación de un filtro digital 
en script m. El parámetro "entrada" es un valor que hay 
que darle al programa. Cabe destacar que los coeficientes 
del  filtro  están  en  los  arrays den y num.  Nótese  que 
todas  las  operaciones  son  sumas  (o  restas), 
multiplicaciones  y  almacenamiento  en  memoria 
(variable w).
w=[0 0 0 0 0]; y=zeros(1,length(entrada)); for 
i=1:length(entrada) w(5)=entrada(i)-den(2)*w(4)-
den(3)*w(3)-den(4)*w(2)-den(5)*w(1); y(i)= 
num(1)*w(5)+num(2)*w(4)+num(3)*w(3)+num(4)*w(2)
; w(1)=w(2); w(2)=w(3); w(3)=w(4); w(4)=w(5); end;
Circuito Integrado para Aplicaciones Específicas   es  un circuito  integrado hecho  a  la  medida  para  un  uso  en 
particular, en vez de ser concebido para propósitos de uso general. Se usan para una función específica. Por ejemplo, 
un chip diseñado únicamente para ser usado en un teléfono móvil es un ASIC. Por otro lado, los circuitos integrados 
de la serie 7400 son circuitos lógicos (combinacionales o secuenciales) que se pueden utilizar para una multiplicidad 
de aplicaciones. En un lugar intermedio entre los ASIC y los productos de propósito general están los Productos
Estándar para Aplicaciones Específicas,  o ASSP por  sus  siglas  en  inglés.
Con  los  avances  en  la  miniaturización  y  en  las  herramientas  de  diseño,  la  complejidad  máxima,  y  por  ende  la 
funcionalidad,  un  ASIC  ha  crecido  desde  5.000  puertas  lógicas  a  más  de  100  millones.  Los  ASIC  modernos  a 
menudo incluyen procesadores de 32-bit, bloques de memoria RAM, ROM, EEPROM y Flash, así como otros tipos 
de módulos. Este tipo de ASIC frecuentemente es llamado Sistema en un Chip, o SoC, por sus siglas en inglés. Los 
diseñadores de ASIC digitales usan lenguajes descriptores de hardware (HDL), tales como Verilog o VHDL, para 
describir la funcionalidad de estos dispositivos.
Las FPGA (Field Programmable Gate Arrays,  matriz  de  puertas  programables)  son  la  versión  moderna  de  los 
prototipos  con  puertas  lógicas  de  la  serie  7400.  Contienen  bloques  de  lógica  programable  e  interconexiones 
programables que permiten a un modelo de FPGA ser usada en muchas aplicaciones distintas. Para los diseños más 
pequeños  o  con  volúmenes  de  producción  más  bajos,  las  FPGAs  pueden  tener  un  costo  menor  que  un  diseño 
equivalente basado en ASIC, debido a que el costo fijo (el costo para preparar una línea de producción para que 
fabrique un ASIC en particular), es muy alto, especialmente en las tecnologías más densas, más de un millón de 
dólares para una tecnología de 90nm o menor.
Las FPGA se asemejan a las matrices de puertas pero son programables por el usuario en lugar de fabricadas a medida 
para cada aplicación. Aunque su densidad siempre será menor consiguen integrar un gran número de puertas, en el 2008 
son  asumibles  diseños  en  65nm  con  más  de  10  millones  de  puertas, decenas de megabits de RAM e incluso  varios 
procesadores, esto las hace suficientes para la mayoría de aplicaciones. La ley de Moore y el creciente coste de inversión 
de las tecnologías juega a su favor y hace que su cuota de mercado crezca consistentemente cada año. Ver el artículo 
dedicado a las FPGAs
Chartered
IBM
LSI Logic
Microchip Technology
SMIC
Texas Instruments
TSMC
UMC
Agere Systems
Algunos fabricantes ofrecen obleas multiproyecto, MPW por sus siglas en inglés, como 
un método para obtener prototipos de bajo costo. A menudo llamados ""shuttles"", 
estos MPW, que contienen varios diseños, se fabrican a intervalos regulares, 
comúnmente con poca responsabilidad por parte del fabricante. El contrato incluye el 
ensamblaje de un puñado de dispositivos. El servicio incluye el suministro de una base 
de datos de diseños físicos. El fabricante es a menudo llamado como "fundición de 
silicio", debido a la poca participación que tienen durante el proceso.

Más contenido relacionado

PPTX
Tcp ip
PPT
Capa Internet
PPTX
ACTIVIDAD INDIVIDUAL REDES LOCALES BASICO
PPT
Redes
PPT
Capa Internet
PPT
9 modelo tcp-ip
DOCX
Informe de redes i
PPS
Versiones TCP/IP
Tcp ip
Capa Internet
ACTIVIDAD INDIVIDUAL REDES LOCALES BASICO
Redes
Capa Internet
9 modelo tcp-ip
Informe de redes i
Versiones TCP/IP

La actualidad más candente (19)

PPSX
PPT
comparacion de tcp/ip version 4 y 6 con la comparacion del modelo osi con tcp
PDF
Programacion de puertos e interrupciones
DOCX
Qué Significa T C P
PDF
Programacion en WinCupl
PPTX
Protocolo tc pultimate presentacion1
PPTX
Dispositivo logico programable
DOCX
Dispositivos lógicos programables
PPTX
Protocolos de la comunicación.diogenes dora
DOCX
Proyinv5 aprogrameq3
PPTX
Direccionamiento IPV4
DOC
Proyecto, investigacion equipo #1 5°B programacion
PDF
Investigación IPv4
PDF
Análisis de ataques/vulnerabilidades SS7/Sigtran empleando Wireshark (y/o tsh...
PDF
Uso de Puerto paralelo en C
PPTX
Comunicación tcp ip
PPT
Funcionamiento Interno
PPTX
Protocolo Tcp
comparacion de tcp/ip version 4 y 6 con la comparacion del modelo osi con tcp
Programacion de puertos e interrupciones
Qué Significa T C P
Programacion en WinCupl
Protocolo tc pultimate presentacion1
Dispositivo logico programable
Dispositivos lógicos programables
Protocolos de la comunicación.diogenes dora
Proyinv5 aprogrameq3
Direccionamiento IPV4
Proyecto, investigacion equipo #1 5°B programacion
Investigación IPv4
Análisis de ataques/vulnerabilidades SS7/Sigtran empleando Wireshark (y/o tsh...
Uso de Puerto paralelo en C
Comunicación tcp ip
Funcionamiento Interno
Protocolo Tcp
Publicidad

Similar a Tecnologia dsp,, i2c,pld,asic (20)

DOCX
Circuitos logicos
PPTX
Microprocesadores
 
PPTX
upc algoritmos 02
 
PPTX
Microprocesadores
 
ODP
Bollilla 2
PPTX
Tcp ip
PPT
PDF
Revista digital
PDF
Resumen del modulo 1 cisco networking academy program
PPTX
Capa física
PPTX
Alugunos estandares antonio
PPT
Tcpip
PPTX
construir una red de area local
PPT
Elienny dispositivos
PPTX
Expocición tcp ip
PPT
Redes wan
PPT
Expo diseno
PDF
8.- DISPO LOG PROG.pdf
PDF
8.- DISPO LOG PROG.pdf
Circuitos logicos
Microprocesadores
 
upc algoritmos 02
 
Microprocesadores
 
Bollilla 2
Tcp ip
Revista digital
Resumen del modulo 1 cisco networking academy program
Capa física
Alugunos estandares antonio
Tcpip
construir una red de area local
Elienny dispositivos
Expocición tcp ip
Redes wan
Expo diseno
8.- DISPO LOG PROG.pdf
8.- DISPO LOG PROG.pdf
Publicidad

Más de eliecerdfy (17)

PPT
Elecer falcon
PPT
Josemanuelteoria
DOC
Eliecer falcon
PDF
Respuesta de frecuencia eliecer falcon
PPT
Eliecerfalcon
DOC
Tarea 1 saia digitales
DOC
Tarea1 circuito2
PDF
Eliecer falcon
DOC
PDF
Analisiseliecer
DOC
Eliecer teoria
DOC
Eliecer teoria 1
DOCX
Pratica6eliecer
PDF
Eliecer
PDF
Nuevo documento 21
PDF
DOCX
Trabajo de bobinas y condensadores
Elecer falcon
Josemanuelteoria
Eliecer falcon
Respuesta de frecuencia eliecer falcon
Eliecerfalcon
Tarea 1 saia digitales
Tarea1 circuito2
Eliecer falcon
Analisiseliecer
Eliecer teoria
Eliecer teoria 1
Pratica6eliecer
Eliecer
Nuevo documento 21
Trabajo de bobinas y condensadores

Último (20)

PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
PDF
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
PDF
Lección 6 Escuela Sab. A través del mar rojo.pdf
PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
PDF
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
PDF
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
DOCX
2 GRADO UNIDAD 5 - 2025.docx para primaria
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
DOCX
Tarea De El Colegio Coding For Kids 1 y 2
PDF
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
Lección 6 Escuela Sab. A través del mar rojo.pdf
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
2 GRADO UNIDAD 5 - 2025.docx para primaria
Punto Critico - Brian Tracy Ccesa007.pdf
Tarea De El Colegio Coding For Kids 1 y 2
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Didactica de la Investigacion Educativa SUE Ccesa007.pdf

Tecnologia dsp,, i2c,pld,asic

  • 1. Estudiante eliecer falcon Cedula 17783327 100% saia
  • 2. son circuitos  integrados,  que  proporcionan  una  solución  al  diseño  de  forma análoga. La estructura básica de una PLD permite  realizar  cualquier  tipo  de  circuito  combinacional  basándose  en  una  matriz  formada por puertas AND, seguida de una  matriz de puertas OR. Tres son los tipos  más  extendidos  de  PLD’s,  la  PROM,  PLA, y la GAL. Fuente •Los microprocesadores Intel 286, 386 y  486. 2002. •P. Karen and M. Nick “Introduction to  Programmable Logic” Abril 2004.
  • 3. Los PLD´s están desplazando, cada vez más, a  la  lógica  discreta  y  a  otros  tipos  de circuitos  ASIC debido  a  las  múltiples  ventajas  que  ofrecen. Algunas de estas son: •Reducción de espacio. •Reducción del número de conexiones. •Reducción de la potencia de consumo. •Disminución del coste. •Aumento de la fiabilidad. •La  mayor  parte  de  ellos  ofrecen  una  gran  flexibilidad al permitir  reprogramar el circuito  lógico a la medida, pudiendo obtener diferentes  configuraciones para un mismo dispositivo. •Esta posibilidad que brindan algunos PLD´s de  ser  reprogramados,  permite  que  se  elimine  el  riesgo de errores a la hora de la grabación.  •Gran  facilidad  de  diseño  porque  las  herramientas  disponibles  para  este  fin  simplifican  considerablemente el proceso de diseño, haciendo que  la implementación al más bajo nivel sea transparente  para el usuario Algunos  aspectos  negativos  a  señalar  en  estos  circuitos  vienen  dado  en  que  las  técnicas de los circuitos impresos cambian  considerablemente,  la  selección  del  encapsulado  no  es  trivial,  las  conexiones  entre terminales son muy pequeñas y surge  la  necesidad  de  utilizar  una  circuitería  adicional para el control de la calida.  El  sistema  de  desarrollo  consiste  en  un  software de diseño y un programador, donde el  software,  es  en  esencia,  un ensamblador que  transforma el diseño de alto nivel que hace el  usuario  a  bajo  nivel  o  nivel  de  programación  del dispositivo
  • 4. El I²C bus,  no tan  sólo  son dos cables, usados  para  realizar  una  transmisión  bidireccional  de  datos  entre  distintos  sistemas  gobernados  por  microcontroladores  de  forma  eficaz.  Veremos,  cómo podemos controlar un importante número  de dispositivos con nuestro Arduino, aunque, no  es  fácil  de  dominar.  Se  trata  de,  un  bus  bidireccional que utiliza dos líneas, una de datos  serie  (SDA)  y  otra  de  reloj  serie  (SCL),  que  requiere  resistencias  de  polarización  a  positivo  (RPA). SCL es la línea de reloj, se utiliza para  sincronizar  todos  los  datos  SDA  de  las  transferencias durante I²C bus. SDA es la línea  de datos. Las líneas SCL y SDA están conectadas a todos  los  dispositivos  en  el I²C bus.  Ambas  líneas  SCL  y  SDA  son  del  tipo  drenador  abierto  asociados a un transistor de efecto de campo (o  FET), es decir, un estado similar al de colector  abierto. Esto significa que el chip puede manejar  su  salida  a  BAJO,  pero  no  puede  manejar  a  ALTO.  Para que la línea pueda ir a ALTO, se deben  proporcionar resistencias de polarización a 5V.  Necesita de una resistencia de la línea SCL a la  línea de 5V y otra de la línea SDA a la línea de  5V.. Sólo necesita un conjunto de resistencias  de RPA (pull-up) para todo el I²C bus, no son  necesarias para cada dispositivo. La  alimentación del sistema, debe tener una masa  común, también puede haber una alimentación  compartida que, se distribuye entre los distintos  dispositivos
  • 5. Cuando se envía la dirección de 7 bits, siempre seguimos enviando 8 bits. El bit extra (bit 8º) se usa  para informar al esclavo si el maestro está escribiendo o leyendo de él. Si el bit 8º es 0, el maestro  está  escribiendo  al  esclavo.  Si  el bit 8º  es  1,  el  maestro  esta  en  la  lectura  del  esclavo.  Existen  disposiciones en la norma de I²C para entornos multi-master, así como de 10 bits frente a la más  simple  y  la  más  comúnmente  usada,  es  la  configuración  de  un  solo  maestro,  de  7  bits  de  direccionamiento.Yo se que, la localización de la dirección de 7 bits en la parte superior del byte, es  una fuente de confusión para los recién llegados, pero intentaré hacer un esfuerzo para dejar lo más  claro  posible  este  punto.  No  debería  haber  ningún  problema  en  que,  los  tres  bits  A0,  A1  y  A2  correspondientes a los pines 1, 2 y 3 seleccionan la dirección del dispositivo, del P0 al P7 son los  puertos de E/S e INT, es una salida de interrupción que no lo usaremos. De modo que, para poner en  servicio un PDF8574, son necesarias dos cosas, la dirección del dispositivo (b0100000) y un byte de  datos para el pin de salida que se necesita. De modo que, si ponemos los pines A0 ~ A2 a masa o GND, la dirección de nuestro dispositivo en el sistema binario será 0100000, o 0x20 en formato hexadecimal. Y con los bytes de datos, haremos lo mismo, configurando así los pines de salida, por ejemplo: si queremos poner todos a Alto (H), enviamos 0 en binario que, en hexadecimal es 0, o bien para poner los cuatro primeros a H y los segundos cuatro a L. Se utiliza 00001111 en binario que, en hexadecimal es 0x0F.
  • 6. los cuatro pasos que sigue el inicio de una transmisión, son  los 4 bytes de inicio, vea la figura anterior •En el primer paso, el byte que se envía es START, después  de la condición de Bit inicio (START) se envía un byte que,  contiene siete  bits que  componen  la  dirección  del  dispositivo que se quiere seleccionar y un octavo bit R/W  •El  segundo  paso,  este byte,  contiene  la  dirección  del  registro  que  se  desea  leer/escribir.  Puede  realizarse  un  reinicio como se muestra en la figura. •El tercer paso, aquí se escribe la dirección con el bit menos  significativo LSB a nivel 1, para indicar que se lee. •El cuarto paso y siguientes continúan la misma función de  lectura, no tiene por qué ser sólo uno. •A cada byte transferido al bus, le sigue un noveno pulso de  reloj durante el cual, el dispositivo receptor, debe generar un  pulso de reconocimiento Para  pasar  a  la  función  de  escritura  en  el  mismo  dispositivo,  puede  realizarse,  enviando  un  bit  de STOP o  de  reinicio,  considerado  como  parada  e  inicio .  El  paso  que  sigue  es,  escribir  el  byte  que  contiene siete bits que componen la dirección  del dispositivo que se quiere seleccionar y un  octavo bit a 0 que corresponde a la operación  que se quiere realizar con él, ahora escritura. Y  los  pasos  siguientes  pueden  ser  como  en  el  caso anterior. Dicho esto, se debe resaltar que en el I²C-bus  se definen tres tipos básicos de mensajes, cada  uno de los cuales comienza con un START y se termina con una STOP En un mensaje combinado, cada uno, sea de  lectura o escritura comienza con un START  y la dirección de esclavo. Después del primer  START,  también  se  pueden  hacer  llamados  repetidos bits de START, esto confirma que  repetidos bits  START no vienen precedidos  por bits de STOP, que es como los esclavos  conocen  la  próxima  transferencia  que,  es  parte  del  mismo  mensaje.  Todo  esclavo  puede sólo responder a mensajes particulares,  tal como se define por su documentación de  producto. Cuando el maestro ha terminado de escribir  todos  los  datos  en  el  esclavo,  se  envía  una  secuencia  de  parada  que  completa  la  transacción.  Así  que  para  escribir  en  un  dispositivo esclavo:
  • 7. Para lograr este propósito, se parte de una palabra de dirección, un byte, en los que debemos distinguir: el bit START, con dirección del esclavo al que interrogará. Esta dirección está formada por 4 bits de código de control más tres bits (A0..A2) de selección de dispositivo y el bit de escritura /lectura (R/W), por último se envía el bit ACK (reconocer) por que es el maestro el que está transmitiendo
  • 8. es un sistema basado en un procesador o microprocesador que posee un conjunto de instrucciones, un hardware y un software optimizados para aplicaciones que requieran operaciones numéricas a muy alta velocidad. Debido a esto es especialmente útil para el procesado y representación de señales analógicas en tiempo real: en un sistema que trabaje de esta forma (tiempo real) se reciben muestras (samples en inglés), normalmente provenientes de un conversor analógico/digital (ADC). Las aplicaciones más habituales en las que se emplean DSP son el procesado de audio y vídeo; y cualquier otra aplicación que requiera el procesado en tiempo real. Con estas aplicaciones se puede eliminar el eco en las líneas de comunicaciones, lograr hacer más claras imágenes de órganos internos en los equipos de diagnóstico médico, cifrar conversaciones en teléfonos celulares para mantener privacidad, analizar datos sísmicos para encontrar nuevas reservas de petróleo, hace posible las comunicaciones wirelessLAN, el reconocimiento de voz, los reproductores digitales de audio, los módems inalámbricos, las cámaras digitales, y una larga lista de elementos que pueden ser relacionados con el proceso de señales. Un DSP está diseñado teniendo en cuenta las tareas más habituales del procesado digital: sumas, multiplicaciones y retrasos (almacenar en memoria). Los DSP abandonan la arquitectura clásica de Von Neumann, en la que datos y programas están en la misma zona de memoria, y apuestan por la denominada Arquitectura Harvard. En una arquitectura Harvard existen bloques de memoria físicamente separados para datos y programas. Cada uno de estos bloques de memoria se direcciona mediante buses separados (tanto de direcciones como de datos), e incluso es posible que la memoria de datos tenga distinta anchura de palabra que la memoria de programa (como ocurre en ciertos microcontroladores). Los elementos básicos que componen un DSP son: •Conversores en las entradas y salidas •Memoria de datos, memoria de programa y DMA. •MACs: multiplicadores y acumuladores. •ALU: Unidad aritmético-lógica. •Registros. •PLL: Bucles enganchados en fase. •PWM: Módulos de control de ancho de pulso.
  • 9. Se ha dicho que puede trabajar con señales analógicas, pero el DSP es un sistema digital, por lo tanto necesitará un conversor analógico/digital a su entrada y digital/analógico en la salida. Como todo sistema basado en procesador programable necesita una memoria donde almacenar los datos con los que trabajará y el programa que ejecuta. Si se tiene en cuenta que un DSP puede trabajar con varios datos en paralelo y un diseño e instrucciones específicas para el procesado digital, se puede dar una idea de su enorme potencia para este tipo de aplicaciones. Estas características constituyen la principal diferencia de un DSP y otros tipos de procesadores. Para adentrar en su funcionamiento se pondrá el ejemplo de un filtro : el DSP recibirá valores digitales o samples procedentes de la señal de entrada, calcula qué salida se obtendrá para esos valores con el filtro que se le ha programado y saca esa salida. Un posible sistema basado en un DSP puede ser el siguiente: La señal entrante entra directamente en un filtro antialiasing para evitar frecuencias superiores a la muestreada del conversor analógico-digital. Después se lleva a cabo el procesado digital en el módulo DSP, para después volverse a convertir en analógico y dar paso a la salida.
  • 10. Un DSP se  puede  programar  tanto  en ensamblador como  en C.  Cada  familia  de DSP tiene su propio lenguaje ensamblador y sus  propias  herramientas  suministradas  por  el  fabricante.  Gracias  a  la  colaboración  entre  fabricantes, existen lenguajes de más alto nivel (y  por lo tanto, más sencillos y rápidos de usar) que  incorporan la capacidad de programar los DSP, en  general  pasando  por  un  precompilado  automático  en C. Son los casos de LabVIEW y Matlab  ejemplo se presenta la programación de un filtro digital  en script m. El parámetro "entrada" es un valor que hay  que darle al programa. Cabe destacar que los coeficientes  del  filtro  están  en  los  arrays den y num.  Nótese  que  todas  las  operaciones  son  sumas  (o  restas),  multiplicaciones  y  almacenamiento  en  memoria  (variable w). w=[0 0 0 0 0]; y=zeros(1,length(entrada)); for  i=1:length(entrada) w(5)=entrada(i)-den(2)*w(4)- den(3)*w(3)-den(4)*w(2)-den(5)*w(1); y(i)=  num(1)*w(5)+num(2)*w(4)+num(3)*w(3)+num(4)*w(2) ; w(1)=w(2); w(2)=w(3); w(3)=w(4); w(4)=w(5); end;
  • 11. Circuito Integrado para Aplicaciones Específicas   es  un circuito  integrado hecho  a  la  medida  para  un  uso  en  particular, en vez de ser concebido para propósitos de uso general. Se usan para una función específica. Por ejemplo,  un chip diseñado únicamente para ser usado en un teléfono móvil es un ASIC. Por otro lado, los circuitos integrados  de la serie 7400 son circuitos lógicos (combinacionales o secuenciales) que se pueden utilizar para una multiplicidad  de aplicaciones. En un lugar intermedio entre los ASIC y los productos de propósito general están los Productos Estándar para Aplicaciones Específicas,  o ASSP por  sus  siglas  en  inglés. Con  los  avances  en  la  miniaturización  y  en  las  herramientas  de  diseño,  la  complejidad  máxima,  y  por  ende  la  funcionalidad,  un  ASIC  ha  crecido  desde  5.000  puertas  lógicas  a  más  de  100  millones.  Los  ASIC  modernos  a  menudo incluyen procesadores de 32-bit, bloques de memoria RAM, ROM, EEPROM y Flash, así como otros tipos  de módulos. Este tipo de ASIC frecuentemente es llamado Sistema en un Chip, o SoC, por sus siglas en inglés. Los  diseñadores de ASIC digitales usan lenguajes descriptores de hardware (HDL), tales como Verilog o VHDL, para  describir la funcionalidad de estos dispositivos. Las FPGA (Field Programmable Gate Arrays,  matriz  de  puertas  programables)  son  la  versión  moderna  de  los  prototipos  con  puertas  lógicas  de  la  serie  7400.  Contienen  bloques  de  lógica  programable  e  interconexiones  programables que permiten a un modelo de FPGA ser usada en muchas aplicaciones distintas. Para los diseños más  pequeños  o  con  volúmenes  de  producción  más  bajos,  las  FPGAs  pueden  tener  un  costo  menor  que  un  diseño  equivalente basado en ASIC, debido a que el costo fijo (el costo para preparar una línea de producción para que  fabrique un ASIC en particular), es muy alto, especialmente en las tecnologías más densas, más de un millón de  dólares para una tecnología de 90nm o menor. Las FPGA se asemejan a las matrices de puertas pero son programables por el usuario en lugar de fabricadas a medida  para cada aplicación. Aunque su densidad siempre será menor consiguen integrar un gran número de puertas, en el 2008  son  asumibles  diseños  en  65nm  con  más  de  10  millones  de  puertas, decenas de megabits de RAM e incluso  varios  procesadores, esto las hace suficientes para la mayoría de aplicaciones. La ley de Moore y el creciente coste de inversión  de las tecnologías juega a su favor y hace que su cuota de mercado crezca consistentemente cada año. Ver el artículo  dedicado a las FPGAs