Hardware, Firmware, Software

4. Hardware, Firmware, Software

Tras la lectura completa de este resumen el lector podría repasar la Tabla 1, y ahora si que debería entender todo su contenido. Construyendo desde el más bajo nivel, el electrón, se han ido explicando los distintos niveles de abstracción con los que se trabaja en cada especialidad de la electrónica. Esta perspectiva también sirve para comprender otra terminología que se usa típicamente en la industria para diferenciar los elementos que componen un producto electrónico. Nos referimos al hardware, firmware y software:

  • Hardware: está formado por las elementos físicos y tangibles, que se pueden tocar. Incluyen la tarjeta sobre la que se sueldan todos los componentes y los propios componentes ya sean activos, pasivos o circuitos integrados. A nivel electrónico, son las partes diseñadas a más bajo nivel, ya sea a nivel de integración de materiales o teniendo en cuenta tensiones y corrientes.
  • Software: es el conjunto de instrucciones que se ejecutan en un dispositivo, típicamente uP o uC. Cada aplicación de alto nivel tiene su propio software. Es, por tanto, un elemento completamente intangible. Programando a alto nivel se consigue el máximo nivel de abstracción con respecto a la lógica, los circuitos, corrientes y voltajes, y el electrón. Aunque a veces no es nada óptimo, un programador puede diseñar aplicaciones sin conocer ni entender nada de lo que hay debajo, más allá del lenguaje de programación.
  • Firmware: típicamente se ha denominado firmware al software de más bajo nivel que suministra el control para un determinado hardware. Con esta perspectiva, se trata de un software permanente, no cambiante, que se almacena en memoria no volátil de solo lectura y que permite al software de aplicación de alto nivel utilizar el dispositivo. El término firmware también se emplea para hacer referencia al HDL, o archivo de configuración asociado, que sirve para programar una FPGA. Con esta segunda perspectiva, el firmware se podría ver como algo a medio camino entre lo tangible y lo intangible. Esta asociado a un lenguaje de descripción, pero también representa un hardware digital que se implementa y se ejecuta de forma física. En esta perspectiva, el nivel de abstracción del firmware también es alto, diseñando con ‘1’s y ‘0’s, pero no tanto como en el caso del software de alto nivel.

5. Caso Práctico

Finalmente, la Figura 13 muestra un producto electrónico complejo. Se trata de una placa de evaluación desarrollada por el fabricante Alinx, concretamente el modelo AX7450 [1]. El núcleo de este producto es un chip de la familia Zynq de Xilinx [2].

Hardware, Firmware, Software:  Placa Evaluación Alinx AX7450 para un dispositivo de la familia Xilinx Zynq-7000
Figura 13: Placa Evaluación Alinx AX7450 para un dispositivo de la familia Xilinx Zynq-7000

Este producto tan sofisticado permite observar el resultado tangible de la conjunción de las tecnologías explicadas en este artículo. El núcleo de la tarjeta es el chip de la familia Zynq-7000, de color gris en el centro. Incorpora en su interior una FPGA y microprocesadores. Por tanto, el dispositivo puede implementar circuitos digitales booleanos a la vez que ejecutar las instrucciones del procesador. Alrededor de este elemento, se pueden observar integrados rectangulares negros. Se tratan de memorias en las que almacenar datos. Asimismo se puede interactuar con otros dispositivos y elementos a través de los conectores en el borde de la placa (tarjeta SD, enlaces USB y Ethernet, lineas PCI express) y del conector negro vertical a la izquierda del Zynq-7000. Las líneas PCI express, mencionadas anteriormente, son las pistas amarillas en la parte baja de la tarjeta. Estas líneas pueden funcionar a muy altas velocidades y son un buen ejemplo del trabajo en el área de la integridad de señal. Por la esquina inferior derecha entra la alimentación de la tarjeta, +12V, que posteriormente se regulan a niveles más bajos para adaptarse a los voltajes de trabajo de los diferentes elementos de la tarjeta. Para esta función puramente analógica, como para muchas otras, se emplean componentes activos y pasivos discretos, que son los minúsculos elementos que se encuentran distribuidos por todo el área del producto.

Bibliografía

[1]: Alinx, ALINX AX7450C: Zynq-7000 SoC XC7Z100 PCIe (FPGA Development Board + USB Downloader).

[2]: Crocket, Louise, The Zynq Book: Embedded Processing with the Arm Cortex-A9 on the Xilinx Zynq-7000 All Programmable Soc, 2014.


<= Dispositivos Digitales Complejos