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.

miércoles, 3 de noviembre de 2021

Tarjeta FPGA

 La tarjeta FPGA permite desarrollar proyectos como: control con compuertas lógicas, máquinas de estados, procesamiento de señales serial y paralelo real, cálculos matemáticos, emulación de procesadores y más.


¿Qué se puede hacer con un FPGA?
FPGA son las siglas de Field Programmable Gate Array.

Eso significa que podrás implementar una CPU, una memoria, un controlador, cualquier lógica, etc., consiguiendo un funcionamiento muy rápido y con todas las ventajas de tenerlo integrado en un chip y no con elementos electrónicos.
Los FPGA se utilizan para probar nuevas funcionalidades a nivel de hardware antes de su implementación en un procesador. Esto significa que la funcionalidad es escrita en un lenguaje de descripción del hardware como puede ser Verilog o VHDL y el FPGA se configura para trabajar como ese hardware en concreto.



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...