martes, 7 de diciembre de 2021

Modulos embebidos DSP

 Componentes de un sistema embebido Un  estaría formando por un microprocesador y un software que se ejecute sobre éste. Sin embargo este software necesitará sin duda un lugar donde poder guardarse para luego ser ejecutado por el procesador. Esto podría tomar la forma de memoria RAM o ROM. Todo sistema embebido necesitará una cierta cantidad de memoria, la cual puede incluso encontrarse dentro del mismo chip del procesador. También contará con una serie de salidas y entradas necesarias para comunicarse con el mundo exterior. Debido a que las tareas realizadas por sistemas embebidos son de relativa sencillez, los procesadores comúnmente empleados cuentan con registros de 8 o 16 bits. En su memoria sólo reside el programa destinado a gobernar una aplicación concreta. Sus líneas de entrada/salida (I/O) soportan el conexionado de los sensores y actuadores del dispositivo a controlar y todos los recursos complementarios disponibles tienen como finalidad atender a sus requerimientos. Estas son las únicas características que tienen en común los sistemas embebidos, todo lo demás será totalmente diferente para cada sistema embebido en particular debido a la variedad de aplicaciones disponibles.

Estructura Las principales características de un sistema embebido son el bajo costo y consumo de potencia. Dado que muchos sistemas embebidos son concebidos para ser producidos en miles o millones de unidades, el costo por unidad es un aspecto importante a tener en cuenta en la etapa de diseño. Normalmente, los sistemas embebidos emplean procesadores muy básicos, relativamente lentos y memorias pequeñas para minimizar los costos. La velocidad no solo está dada por la velocidad del reloj del procesador, sino que la totalidad de la arquitectura se simplifica para reducir costos. Usualmente un ES (sistema embebido) utiliza periféricos controlados por interfaces seriales sincrónicas, las cuales son muchas veces más lentas que los periféricos de un PC. Un ES debe afrontar fuertes restricciones de recursos, por tanto normalmente deberá hacer uso de sistemas operativos especiales, denominados de tiempo real (RTOS Real time operating system), tal y como se mencionó en el apartado anterior en las características de un ES. Los sistemas embebidos deberán reaccionar a estímulos provenientes del entorno, respondiendo con fuertes restricciones de tiempo en muchos casos, por lo tanto, un sistema se dice que trabaja en tiempo real si la información después de la adquisición y tratamiento es todavía vigente. Es decir, que en el caso de una información que llega de forma periódica, los tiempos de adquisición y tratamiento deben ser inferiores al período de actualización de dicha información. Los programas en estos sistemas se ejecutan minimizando los tiempos muertos y afrontando fuertes limitaciones de hardware, ya que usualmente no tienen discos duros, ni teclados o monitores, una memoria flash reemplaza los discos

CIRCUITOS DE MUESTREO Y RETENCIÓN

 

 INTRODUCCIÓN Los circuitos de muestreo y retención se utilizan para muestrear una señal analógica en un instante dado y mantener el valor de la muestra durante tanto tiempo como sea necesario. Los instantes de muestreo y el tiempo de retención están determinados por una señal lógica de control, y el intervalo de retención depende de la aplicación a la que se destine el circuito. Por ejemplo, en los filtros digitales las muestras deben ser mantenidas durante el tiempo suficiente para que tenga lugar la conversión de analógica a digital. CIRCUITOS DE MUESTREO Y RETENCIÓN La mayoría de los circuitos de muestreo y retención utilizan un condensador para mantener la tensión de muestra. El interruptor controlado electrónicamente es el medio para cargar rápidamente el condensador hasta la tensión de muestra y luego suprimir la entrada de manera que el condensador pueda retener la tensión deseada. Tal circuito está representado en la Figura 1-1a, en la que V A es la fuente analógica y R g su impedancia interna. Las formas de onda ideales están representadas en la Figura 1b. El interruptor está cerrado mientras la forma de onda lógica de control v c está en nivel alto y, en el supuesto de que la constante de tiempo R g C sea muy pequeña, la tensión de salida seguirá muy estrechamente a la tensión de entrada y será igual a ella en el instante en que el circuito lógico de control esté a nivel bajo, abriendo el interruptor. Durante el intervalo de retención, mientras la señal de control está en nivel bajo, el interruptor está abierto y el condensador C mantendrá el último valor de la entrada. Idealmente la salida se mantendrá constante en ese valor durante todo el intervalo de retención.

Arquitectura de los DSP

 • DSP. Un procesador digital de señal es un dispositivo con capacidad de procesamiento en línea, o en tiempo real, de información que presenta, a la vez, características de microcontrolador y microprocesador. Posee una CPU de gran potencia de cálculo preparada para el tratamiento digital de señales en tiempo real y para la realización del mayor número de operaciones aritméticas en el menor tiempo posible. Por tanto, su circuitería interna ha sido optimizada para la implementación de funciones tales como el filtrado, la correlación, el análisis espectral, etc., de una señal digital de entrada al sistema

El procesamiento de señales digitales es una tecnología que podemos clasificar como «dominante» en nuestra sociedad actual. Constituye la base de lo que conocemos como electrónica de consumo, multimedia, telefonía IP, telefonía sin hilo de tipo digital, procesamiento de imágenes (especialmente con fines médicos), y actualmente se empieza a utilizar en automoción y en aplicaciones domésticas (domótica). El procesado de señales digitales en línea o en tiempo real, tal y como lo conocemos hoy día, comenzó realizándose en los años sesenta sobre máquinas VAX y DEC PDP (en 1965 se presenta el PDP-8, que podía colocarse en una mesa de laboratorio, cuando la mayoría de los computadores necesitaban una habitación con aire acondicionado y cuyas últimas versiones incorporan por primera vez estructura de bus). CAD DSP CDA Control del sistema Control digital Entrada analógica Salida analógica En la década de los años setenta aparecieron algunas máquinas de cálculo que usaban chips de lógica discreta en tecnología TTL y que iban acompañados por una unidad aritmética programable de cuatro bits, para realizar las funciones de procesamiento de los datos en tiempo real. Estos primeros sistemas eran lentos y muy voluminosos. El primer multiplicador integrado en un chip lo comercializa en 1973 la compañía TRW, aunque a un excesivo coste. Posteriormente, en 1978, AMI anuncia el primer circuito integrado diseñado específicamente para el procesado de señales en tiempo real, el S2811, con capacidad para procesar datos de 12 bits. Este dispositivo no llegó a alcanzar niveles importantes de venta en su comercialización. En 1979, Intel introduce el Intel 2920, al que denominó «chip procesador analógico de señales», dado que disponía de periféricos de conversión analógico-digital y digital-analógico (después de todo, se trataba de un dispositivo capaz de procesar digitalmente señales analógicas). El Intel 2920 no disponía de multiplicador interno y era extremadamente lento en la realización de cualquier operación aritmética (ciclo máquina de 600 ns) para hacerlo útil en el procesamiento de señales de audio (el ámbito de aplicación que inicialmente estaba reservado a los DSP). El primer DSP, con una unidad multiplicadora y otra acumuladora (MAC) integradas en el chip, lo comercializa a principios de 1980 NEC (el µPD7720). Tenía un ciclo máquina de 122 ns, operando su unidad MAC en dos ciclos máquina. Se trató del primer dispositivo comercial útil en el procesamiento de señales de audio y con aplicación en el espectro audible (hasta unos 20 kHz). Ese mismo año, Ed Cordell diseñó para Texas Instruments el boceto de lo que sería la primera arquitectura de DSP fabricada por la compañía. Dicha arquitectura fue posteriormente optimizada por Surendar Magar, para favorecer la ejecución de los algoritmos de procesamiento de la señal conocidos en la fecha. Así, en abril de 1982 se lanza comercialmente el primer DSP de la familia TMS320 de Texas Instruments, el TMS32010, diseñado en tecnología TTL. Posteriormente se incorpora la tecnología CMOS al proceso de fabricación y se complica el diseño del chip, hasta llegar a los potentes sistemas de 60 Procesadores digitales de señal de altas prestaciones de Texas InstrumentsTM hoy en día, optimizados en el hardware para el procesado de la señal. El desarrollo inicial de los DSP por parte de Texas Instruments se puede considerar casi como un trabajo visionario, dado que la rentabilidad de estos dispositivos no aparece hasta la década de los años noventa. Hoy en día, los DSP suponen un negocio anual para Texas Instruments que supera los 5.000 millones de dólares estadounidenses (sin contar los 10.000 millones de dólares que implica la venta de periféricos específicamente diseñados para ellos).

lunes, 6 de diciembre de 2021

Protocolo de comunicación SPI

 

El SPI permite la comunicación dúplex entre un dispositivo AVR y los dispositivos periféricos o entre varios microcontroladores. El periférico del SPI puede configurarse como maestro o secundario, que permite la comunicación entre microcontroladores.

Sensores basados en SPI

En complemento a la gran cantidad de microprocesadores y microcontroladores que incorporan SPI, se presenta una amplia variedad de sensores que ofrecen datos digitales a través de SPI. Por ejemplo, el sensor de temperatura digital TC77-3.3MCTTR de Microchip Technology es un sensor de temperatura digital de acceso serial previsto para aplicaciones de bajo costo y factor de forma pequeño. El TC77 cubre un rango de temperatura de -55 °C a +125 °C. Funciona con un suministro de 2,7 voltios a 5,5 voltios, emite 250 microamperios (µA) durante su funcionamiento y tiene un modo de apagado de baja energía disponible que emite 1 µA.

En una aplicación típica, el sensor de temperatura se conecta al procesador a través de una conexión SPI estándar. Sus datos de temperatura tiene el siguiente formato: una palabra digital de 13 bits

sábado, 4 de diciembre de 2021

Protocolo de Comunicación RS232

 

La interfaz RS232 o TIA/EIA-232 es un protocolo de transferencia de datos diseñado para controlar la comunicación serie. Se utiliza para organizar los datos que fluyen desde un equipo terminal de datos (DTE), como un terminal o transmisor, a un receptor u otro tipo de equipo de comunicaciones de datos (DCE).

La distancia entre los dispositivos afecta directamente la velocidad de comunicación. La comunicación serie se puede establecer en modo dúplex completo o semidúplex. El dúplex completo permite que los datos se envíen y reciban simultáneamente usando diferentes hilos para la transmisión y recepción. En una implementación semidúplex, se utiliza una sola línea para transmitir y recibir los datos, lo que resulta en una operación más limitada. El semidúplex se puede configurar para transmitir o recibir datos, pero no ambos al mismo tiempo.

MUESTREO

 Muestreo Definimos muestreo como la cantidad de veces que medimos el valor de la señal en un periodo de tiempo (usualmente en 1 segundo). Según el teorema de Nyquist-Shannon la cantidad de veces que debemos medir una señal para no perder información debe de ser al menos el doble de la frecuencia máxima que alcanza dicha señal. En otras palabras, si deseamos grabar una conversación telefónica, como el ancho de banda de la red telefónica es de 3khz, para no perder información deberemos tomar del orden de 6.000 muestras/segundo. Señal original

Conversión analógica-digital La conversión analógica-digital (CAD) consiste en la transcripción de señales analógicas en señales digitales, con el propósito de facilitar su procesamiento (codificación, compresión, etc.) y hacer la señal resultante (la digital) más inmune al ruido y otras interferencias a las que son más sensibles las señales analógicas. Procesos de la conversión A/D.  Comparación de las señales analógica y digital Una señal analógica es aquella cuya amplitud (típicamente tensión de una señal que proviene de un transductor y amplificador) puede tomar en principio cualquier valor, esto es, su nivel en cualquier muestra no está limitado a un conjunto finito de niveles predefinidos como es el caso de las señales cuantificadas. Esto no quiere decir que se traten, en la práctica de señales de infinita precisión (un error muy extendido): las señales analógicas reales tienen todas un ruido que se traduce en un intervalo de incertidumbre. Esto quiere decir que obtenida una muestra de una señal analógica en un instante determinado, es imposible determinar cuál es el valor exacto de la muestra dentro de un intervalo de incertidumbre que introduce el ruido. Por ejemplo, se mide 4,3576497 V pero el nivel de esa muestra de la señal de interés puede estar comprendida entre 4,35 V y 4,36 V y no es físicamente posible determinar ésta con total precisión debido a la naturaleza estocástica del ruido. Sólo el más puro azar determina qué valores se miden dentro de ese rango de incertidumbre que impone el ruido. Y no existe (ni puede existir) ningún soporte analógico sin un nivel mínimo de ruido, es decir, de infinita precisión. Por otro lado, si se pudiera registrar con precisión infinita una señal analógica significaría, de acuerdo con la Teoría de la Información, que ese medio serviría para registrar infinita información; algo totalmente contrario a las leyes físicas fundamentales de nuestro universo y su relación con la entropía de Shannon. En cambio, una señal digital es aquella cuyas dimensiones (tiempo y amplitud) no son continuas sino discretas, lo que significa que la señal necesariamente ha de tomar unos determinados valores fijos predeterminados en momentos también discretos. Las señales analógicas no se diferencian, por tanto, de las señales digitales en su precisión (precisión que es finita tanto en las analógicas como en las digitales) o en la fidelidad de sus formas de onda (distorsión). Con frecuencia es más fácil obtener precisión y preservar la forma de onda de la señal analógica original (dentro de los límites de precisión impuestos por el ruido que tiene antes de su conversión) en las señales digitales que en aquéllas que provienen de soportes analógicos, caracterizados típicamente por relaciones señal a ruido bajas en comparación.

http://serbal.pntic.mec.es/srug0007/archivos/radiocomunicaciones/3%20SE%D1ALES%20DIGITALES/Muestreo%20digital.pdf


viernes, 3 de diciembre de 2021

DSP

 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.

Programación

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 de un filtro con script m compatible con LabVIEW MathScript y con Matlab

En el siguiente 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;

Aplicaciones

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 wireless LAN, 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.


Funcionamiento

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:

Ejemplo de un filtrado antialiasing.

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.


https://es.wikipedia.org/wiki/Procesador_de_se%C3%B1ales_digitales

miércoles, 1 de diciembre de 2021

protocolo SPI

 

Estructura general del protocolo SPI.
SPI es un acrónimo para referirse al protocolo de comunicación serial Serial Peripherical Interface. Este protocolo nace casi a principios de 1980 cuando Motorola lo comienza a introducir y desarrollar en el primer microcontrolador derivado de la misma arquitectura del microcontrolador 680000. SPI se ha convertido es uno de los más populares protocolos para trabajar con comunicación serial debido a su velocidad de transmisión, simplicidad, funcionamiento y también gracias a que muchos dispositivos en el mercado como pantallas LCD, sensores, microcontroladores pueden trabajar con el.

El SPI es un protocolo síncrono que trabaja en modo full duplex para recibir y transmitir información, permitiendo que dos dispositivos pueden comunicarse entre sí al mismo tiempo utilizando canales diferentes o líneas diferentes en el mismo cable. Al ser un protocolo síncrono el sistema cuenta con una línea adicional a la de datos encarga de llevar el proceso de sincronismo. Veamos cómo funciona:

Estructura general del protocolo SPI.
Estructura general del protocolo SPI.

Dentro de este protocolo se define un maestro que será aquel dispositivo encargado de transmitir información a sus esclavos. Los esclavos serán aquellos dispositivos que se encarguen de recibir y enviar información al maestro. El maestro también puede recibir información de sus esclavos, cabe destacar. Para que este proceso se haga realidad es necesario la existencia de dos registros de desplazamiento, uno para el maestro y uno para el esclavo respectivamente. Los registros de desplazamiento se encargan de almacenar los bits de manera paralela para realizar una conversión paralela a serial para la transmisión de información.

Existen cuatro líneas lógicas encargadas de realizar todo el proceso:

  • MOSI (Master Out Slave In):. Línea utilizada para llevar los bits que provienen del maestro hacia el esclavo.
  • MISO (Master In Slave Out):. Línea utilizada para llevar los bits que provienen del esclavo hacia el maestro.
  • CLK (Clock):. Línea proviniente del maestro encarga de enviar la señal de reloj para sincronizar los dispositivos.
  • SS (Slave Select):. Línea encargada de seleccionar y a su vez, habilitar un esclavo.

Se presenta una imagen donde se tienen todas estas líneas con sus respectivos registros de desplazamiento y su dirección de flujo:

Distintos modos en SPI.
http://panamahitek.com/como-funciona-el-protocolo-spi/

lunes, 29 de noviembre de 2021

El protocolo RS-232

 

El protocolo RS-232 de 55 años de edad, es el método por defecto para hablar con los dispositivos Alicat. Además de RS-232, puede configurar su instrumento con protocolos RS-485, Profibus, ModBus RTU, DeviceNet y Ethernet IP. Sin embargo, para la mayoría de nuestros clientes, el estándar de comunicación RS-232C seguirá siendo el método ideal para ordenar y leer los dispositivos Alicat.

El estándar RS-232 no tan estándar

Una de las principales razones por las que el RS-232 ha sobrevivido durante más de cinco décadas es que se trata de una señal útil, pero de bajo nivel y rudimentaria, con unas directrices operativas bastante flexibles. En 1962, la única aplicación del estándar de comunicación RS-232 era la conexión de máquinas de escribir electromecánicas y sus ordenadores anfitriones centrales/módems, comúnmente conocidos como sistemas de “teletipo”.

Cuando posteriormente se desarrollaron máquinas electrónicas más avanzadas, las adaptaciones patentadas llevaron a asignaciones de pines, conectores y niveles de tensión de señal no estándar. Por ejemplo, la especificación original pedía un conector DB-15, pero en los últimos 30 años la mayoría de los productos RS-232 han adoptado un conector DB-9 (técnicamente llamado DE-9M).

Los ‘datos’ que se envían a través de las líneas RS232 son simplemente impulsos de tensión positivos (+) y negativos (-) relativos a una referencia de tierra. Un grupo de pulsos +/- enviados por un dispositivo son cuidadosamente cronometrados por el dispositivo receptor y decodificados en lo que los ajustes de hardware consideran paquetes de bits de datos. En otras palabras, la norma RS-232 sólo define un marco eléctrico general relativamente flexible para transmitir y recibir impulsos eléctricos. Lo que uno hace con todos estos pulsos depende en última instancia del hardware conectado. Cosas como la codificación de caracteres, el espaciado, los bits de inicio, los bits de parada, el orden de bits, la detección de errores, la velocidad de transmisión de bits, etc. no son responsabilidad del ámbito RS-232 y son establecidas por los circuitos conectados del usuario, normalmente en forma de un puerto de comunicación serial y sus chips y transistores asociados.

El trabajo del puerto COM es dar sentido a los pulsos en nombre del ordenador o periférico conectado. Para referencia, un sistema RS-232 debe transmitir de un dispositivo (enviado en su pin Tx), a un dispositivo receptor (recibiendo en su pin Rx) y viceversa. ¡No intente conectar Tx a Tx o Rx a Rx en un sistema de tres cables RS-232! El único pin que está conectado directamente es el conector de tierra, lo que da a ambos extremos un punto de referencia común para medir los impulsos. Cada controlador RS-232 utiliza lógica de inversión y emplea un solo terminal, voltaje de salida bipolar para alimentar a un UART (Receptor/Transmisor Asíncrono Universal). Debido a que el sistema tiene tres cables y dos canales de comunicación distintos, se considera un sistema “Full Duplex”. Los datos pueden transmitirse al mismo tiempo que se reciben.

RS-232, la manera de Alicat

Comprendiendo cuan suelto es realmente el “estándar” RS232, se preguntarán cómo lo utiliza Alicat. Alicat ofrece el ubicuo DB-9 o el conector DB-15 “estándar”, pero podemos proporcionar comunicación RS232 en cualquier conector que se ofrezca, como el DB-15, conectores de cierre industrial de 6 pines y, por supuesto, el conector mini DIN de 8 pines por defecto.

Sin embargo, nuestra verdadera diferencia con el estándar es que Alicat ha explotado los niveles de señal y ha permitido que varias unidades funcionen en el mismo puerto COM. Debido a que los dispositivos Alicat no aceptan ni producen tensiones negativas, un RS232 tradicional de +/- 15V no es posible. Afortunadamente, un pulso positivo de +5V puede ser hecho para replicar una forma de onda RS232 (lógica alta `marca vs. lógica baja `espacio’), legible por el 99% de todos los UART usados hoy en día.

Una vez que los puertos serie UART pasaron de moda a principios de los años 2000, los convertidores USB a serie ocuparon su lugar; la mayoría hoy en día utilizan el chipset FTDI para replicar el puerto COM. El perfil de señal único de Alicat también es totalmente compatible con estos dispositivos.

Además de doblar las reglas de nivel de señal y polaridad, Alicat también ha diseñado una solución inteligente para poder utilizar hasta 26 unidades a la vez en un solo puerto COM serial. El término técnico para esta capacidad se denomina comunicación ‘Multipunto’, y es soportado por todas las unidades Alicat equipadas con comunicación serial (ya sea RS-232, o RS-485 basada en señal diferencial). A través de la comunicación multipunto, cada dispositivo en la línea está configurado para tener una letra de identificación única (A-Z), y cada unidad escucha los comandos que se han enviado. Sin embargo, aunque cada dispositivo ‘escucha’ cada comando, una unidad en particular sólo aceptará y responderá al comando si la instrucción comienza con la letra de identificación única de ese instrumento.

De esta manera se puede leer el caudal actual en la unidad “A”, dar un nuevo valor punto de ajuste al MFC “B” y reajustar el totalizador en la unidad “C”; todo ello mientras se engancha en los mismos tres cables (eléctricamente en paralelo).

A pesar de que el “estándar” de comunicación RS-232 en sí mismo es lo suficientemente antiguo para un lugar en la Institución Smithsoniana, sigue siendo muy utilizado hoy en día para todo tipo de sistemas informáticos que hablan con varios componentes periféricos. Utilizando el juego de caracteres universal ASCII (American Standard Code for Information Interchange) como nuestro lenguaje, los instrumentos Alicat continuarán vendiéndose con el robusto, universal y fiable sistema RS-232 en un futuro próximo.


https://www.alicat.com/es/el-protocolo-de-comunicacion-rs-232-y-su-instrumento-alicat/

martes, 16 de noviembre de 2021

sistemas de procesamientos digitales de señales

 ¿Cómo funciona el procesamiento digital de señales?

Procesamiento Digital de Señales: Es la manipulación matemática y algorítmica de señales discretizadas y cuantizadas; con el fin de extraer la mayor cantidad de información importante, la cual esta contenida en la señal.
¿Cuáles son las aplicaciones del procesamiento digital de señales?
El procesado de señal y sus aplicaciones prácticas
  • Aprendizaje automático.
  • Procesamiento del sonido y reconocimiento de la voz.
  • Conducción autónoma.
  • Tecnología “ponible”
  • Procesado avanzado de señal para comunicaciones.
  • Sistemas y comunicaciones multimedia.

    ¿Qué es un sistema de procesamiento de señales?
  • El procesamiento de señal es la aplicación de una serie de operaciones lógicas y matemáticas a un conjunto de datos provenientes de una señal, y todo ello mediante la ayuda de un ordenador. Los objetivos de este procesamiento pueden ser diversos.

    ¿Qué es el muestreo en el campo del procesamiento digital de señales?
    El muestreo, también denominado “Discretización de señal”, es el primer paso en el proceso de conversión de una señal analógica (tiempo y amplitud continuos) en una señal digital (tiempo y amplitud discretos).

jueves, 11 de noviembre de 2021

SENTENCIA PROCESS

  VHDL presenta una estructura particular denominada process que define los límites de un dominio que se ejecutará (simulará) si y sólo si alguna de las señales de su lista de sensibilidad se ha modificado en el anterior paso de simulación. Un process tiene la siguiente estructura:

process (lista_de_sensibilidad) 
-- asignacion de variables 
-- opcional no recomendable 
begin 
-- Sentenicas condicionales 
-- Asignaciones end process; 


La sentencia process es una de las más utilizadas en programación con VHDL ya que tanto las sentencias condicionales como la descripción de HW secuencial se realiza dentro de él. Pero a la vez es, para aquellos que se acercan por primera vez a la simulación y síntesis con VHDL, el principal problema para un correcto diseño. Por eso a continuación se van a enumerar una serie de normas relacionadas directamente con las propiedades de la sentencia process, que serán de obligado cumplimiento para que el código generado simule y sintetice de manera correcta. 

Propiedad I: 

En una estructura process sólo se ejecutan las instrucciones internas en el instante 0 de simulación y cuando varía alguna de las señales de su lista de sensibilidad. 

Problema: El resultado de la simulación del circuito puede ser inesperada debido al efecto maligno de la lista de sensibilidad. 

Solución: En la lista de sensibilidad han de incluirse al menos todas las señales que se lean dentro del process (señal_escritura <= señal_lectura). 

------------------------- 
-- Efecto de la lista 
-- de sensibilidad 
------------------------- 
process (A) 
    begin 
    if B=’1’ then 
        C <= A; 
    end if; 
end process; -------------------------

Propiedad II: 
Las asignaciones a señales que se realizan dentro de un process tienen memoria. 

Problema: Si en un paso de simulación se entra dentro del process y debido a las sentencias internas se modifica el valor de la señal C, y en otro paso de simulación posterior se entra dentro del process pero no se modifica C, la señal C conservará el valor asignado con anterioridad. El resultado de la simulación del circuito puede ser inesperado debido al efecto maligno de la memoria del process.

Solución: Siempre que se escriba una sentencia condicional es obligatorio asegurar el valor que deben tener todas las señales en cada rama del árbol condicional. Además, excepto si la definición del diseño nos lo prohíbe (ver capítulo 5), toda condición debe tener su rama else.

---------------------------
-- Condicional completo
---------------------------
process (a, b)
begin
    if a = b then
         c <= a or b;
    elsif a<b then
         c <= b;
    else
         c <= “00”;
    end if;
end process;
--------------------------

--------------------------
-- Condicional incompleto
--------------------------
process (a, b)
begin
    if a = b then
        c <= a or b;
    elsif a<b then
        c <= b;
    end if;
end process;
--------------------------

En el primer código existe una rama else, lo que implica que en caso de que no se cumpla alguna de las dos condiciones existe un valor por defecto para C (en este caso en 5 ns). Sin embargo, en el segundo código la rama else ha desaparecido, eso hace que en el instante 5 ns para los mismos valores de A y de B se obtenga un resultado de C distinto (comparar resultados de caso 1 y caso 2 en el segundo código). Eso es debido a que los Introducción a la Programación en VHDL 26 F. Informática (UCM) process tienen memoria y como la relación entre A y B que se da en 5ns no está contemplada en el segundo código se guarda el valor obtenido con anterioridad. Obsérvese que en el ejemplo del condicional completo, el caso 1 y el caso 2 en 5ns tienen los mismos valores de A y B y se obtiene el mismo valor de C. 


https://eprints.ucm.es/id/eprint/26200/1/intro_VHDL.pdf

martes, 9 de noviembre de 2021

Sentencias condicionales

  VHDL permite utilizar otro tipo de sentencias condicionales más parecidas a los lenguajes de programación usados. Todas estas sentencias como se explicará la sección 3.3 tiene que ir obligatoriamente dentro de un process. Las sentencias condicionales más comunes en VHDL son las siguientes: 

IF – THEN – ELSE 

process (lista de sensibilidad) 
begin 
    if condición then 
        -- asignaciones 
    elsif otra_condición then 
        -- asignaciones 
    else 
        -- asignaciones 
    end if;
end process;

--------------------------------------------- 
-- Ejemplo 
--------------------------------------------- 
process (control, A, B) 
begin
    if control = “00” then 
        resultado <= A + B; 
    elsif control = “11” then 
        resultado <= A – B;
    else 
        resultado <= A; 
    end if; 
end process; 
---------------------------------------------- 

La sentencia if-else permite cualquier tipo de combinación y encadenamiento, exactamente igual que ocurre en C o PASCAL o cualquier otro lenguaje de programación de alto nivel. 



CASE – WHEN 
process (lista de sensibilidad) 
begin 
    case 
        señal_condición is 
    when valor_condición_l => 
         -- asignaciones 
         … 
    when valor_condición_n => 
         -- asignaciones 
    when others => 
         -- asignaciones 
    end case; 
end process; 

--------------------------------------------- 
-- Ejemplo 
--------------------------------------------- 
process (control, A, B) 
begin 
    case control is when “00” => 
        resultado <= A+B; 
    when “11” => 
        resultado <= A-B; 
    when others => 
        resultado <= A; 
    end case; 
end process; 
----------------------------------------------

Dentro de las asignaciones pueden parecer también sentencias if-else. Es necesario que aparezca en la estructura when others, pero no es necesario que tenga asignaciones, se puede dejar en blanco. 



Igual que en los lenguajes software, existen distintos tipos de bucles: 

FOR – LOOP 
process (lista de sensibilidad) 
begin 
for loop_var in range loop 
-- asignaciones 
end loop; 
end process;


Para el for range puede ser 0 to N o N downto 0. 

--------------------------------------------- 
-- Ejemplo 
--------------------------------------------- 
process (A) 
begin 
for i in 0 to 7 loop 
    B(i+1) <= A(i); 
end loop; 
end process; --------------------------------------------- 



WHILE – LOOP 
process (lista de sensibilidad) 
begin 
while 
condición loop 
-- asignaciones 
end loop; 
end process; 

--------------------------------------------- 
-- Ejemplo 
--------------------------------------------- 
process (A) 
variable i: natural := 0; 
begin 
    while i < 7 loop 
        B(i+1) <= A(i); 
        i := i+1; 
    end loop; 
end process; 
--------------------------------------------- 


https://eprints.ucm.es/id/eprint/26200/1/intro_VHDL.pdf

lunes, 8 de noviembre de 2021

MULTIPLEXORES

 Un multiplexor o también conocido como MUX o MPX es un dispositivo que sirve para transmitir datos de diferentes entradas a una sola salida, es decir, todos los datos que entran al circuito salen por el mismo lugar, dependiendo del tipo que se utilice, pueden manejar señales analógicas o digitales.

 
¿Cómo funciona un multiplexor?

El funcionamiento de los multiplexores se basa en circuitos de compuertas lógicas, en donde se conectan de tal forma que todas las entradas salen por la misma salida, con la única condición de que se debe de seleccionar la entrada que mandara los datos hacia la salida, es decir, que el circuito no puede leer todas las entradas al mismo tiempo, si no una por vez.

En palabras sencillas, este circuito funciona como un conmutador que solo permite seleccionar la lectura de una de las entradas, pero debido a la gran velocidad de conmutación que tiene el circuito, se puede llegar a creer que puede leer todas las entradas al mismo tiempo. 


Partes de los multiplexores

Al ser un circuito combinacional este dispositivo cuenta con pocas partes y su funcionamiento de cada parte es bastante sencilla de entender:

  • Entradas: Es por donde entran los datos y siempre tienen un número de entradas de 2^n (2,4,8,16, etc.).
  • Salida: Es la única vía para que salgan los datos del circuito, aunque cabe mencionar que también se incorpora una salida extra que prácticamente es el inverso, es decir, si en la salida tenemos un 1 en la inversa tenemos un 0.
  • Selectores: Los selectores sirven para elegir la entrada que queremos activar para leer datos, esta selección se hace a través de números binarios.
  • Enable: Sirve para activar o desactivar el circuito completo

Referencia

¿Qué es un multiplexor y cómo funciona? - Ingeniería Mecafenix. (s. f.). Ingeniería Mecafenix. https://www.ingmecafenix.com/electronica/multiplexor/


viernes, 5 de noviembre de 2021

LOS DEMULTIPLEXORES

 También existen circuitos que hacen la función inversa de los multiplexores, es decir que, tienen una sola entrada, varias salidas y los selectores, pero en esta ocasión los selectores se utilizan para elegir hacia que salida queremos que fluyan los datos.

Demultiplexor

Aplicaciones de los demultiplexores

A grandes rasgos estos dispositivos tienen 2 funciones principales:

Transmitir datos a largas distancias

Existen ocasiones en las que se tiene que transmitir algún tipo de información a través de largas distancias, pero el tener que conectar diferentes cables tiene muchas desventajas como; elevar los costos, que se puedan dañar los cables o algún tipo de interferencia, pero con los multiplexores y demultiplexores se solucionan todos estos problemas ya que, en lugar de tener varios cables para la transmisión se utiliza un multiplexor para que mande todos los datos a través de un cable y en el otro extremo se coloca un demultiplexor que vuelva a traducir todos esos datos a diferentes salidas o cables.

aplicacion multiplexor

Mandar señales a diferentes dispositivos

Con la ayuda de estos dispositivos es posible mandar instrucciones a diferentes dispositivos y/o meter diferentes funciones al mismo dispositivo.

Por ejemplo:

De una misma señal podemos mandar instrucciones a diferentes dispositivos como una computadora, una cámara, una televisión, etc.

Aplicación demultiplexor

También podemos darle diferentes funciones como por ejemplo un componente de audio tiene la capacidad de leer CD’s, memorias USB, memorias de teléfono e incluso captar las señales de radio, siempre y cuando utilicemos los selectores de que es lo que queremos hacer.

Referencia

¿Qué es un multiplexor y cómo funciona? - Ingeniería Mecafenix. (s. f.-a). Ingeniería Mecafenix. https://www.ingmecafenix.com/electronica/multiplexor/

Xilinx ventajas y desventajas FPGA

 ¿Qué es FPGA Xilinx?

Una matriz de puertas lógicas programable en campo​​ o FPGA (del inglés field-programmable gate array), es un dispositivo programable que contiene bloques de lógica cuya interconexión y funcionalidad puede ser configurada en el momento, mediante un lenguaje de descripción especializado.

Las FPGA se utilizan en aplicaciones similares a los ASIC pero tienen una serie de inconvenientes históricos así como de ventajas respecto a estos últimos:

Inconvenientes:

  • Son más lentas.
  • Consumen mayor potencia.
  • No pueden realizar sistemas excesivamente complejos.

Ventajas:

  • Son reprogramables.
  • Los costes de desarrollo y adquisición son mucho menores.
  • El tiempo de diseño y manufacturación es menor.

Los inconvenientes listados aquí se mantienen más por razones históricas que por motivos reales, actualmente existen FPGAs lo suficientemente grandes para contener sistemas complejos, la velocidad de recursos de interconexión han aumentado exponencialmente y se ha reducido su consumo energético sobre todo para FPGAs destinadas especialmente para dispositivos de bajo consumo.

Modulos embebidos DSP

  Componentes de un sistema embebido Un  estaría formando por un microprocesador y un software que se ejecute sobre éste. Sin embargo este...