PC/104 (o PC104 ) es una familia de estándares de computadoras embebidas que definen tanto los factores de forma como los buses de computadora por el Consorcio PC/104 . Su nombre deriva de los 104 pines en el conector entre placas ( ISA ) en la especificación PC/104 original [1] [2] y se ha mantenido en revisiones posteriores, a pesar de los cambios en los conectores. PC/104 está destinado a entornos especializados donde se requiere un sistema informático pequeño y resistente. El estándar es modular y permite a los consumidores apilar juntas placas de una variedad de fabricantes COTS para producir un sistema embebido personalizado. [3]
El formato original del PC/104 es algo más pequeño que la placa base de un PC de escritorio , con unas dimensiones de 3,550 × 3,775 pulgadas (90 × 96 mm). A diferencia de otros formatos informáticos populares, como el ATX , que se basan en una placa base o en una placa base , las placas PC/104 se apilan unas sobre otras como bloques de construcción. La especificación PC/104 define cuatro orificios de montaje en las esquinas de cada módulo, que permiten fijar las placas entre sí mediante separadores . Los conectores de bus apilables y el uso de separadores proporcionan un montaje más resistente que las placas de ranura que se encuentran en los PC de escritorio. El tamaño compacto de la placa contribuye aún más a la robustez del formato, ya que reduce la posibilidad de que la PCB se doble ante golpes y vibraciones.
Un sistema PC/104 típico (comúnmente denominado "pila") incluirá una placa de CPU , una placa de fuente de alimentación y una o más placas periféricas, como un módulo de adquisición de datos , un receptor GPS o un controlador de LAN inalámbrica . Existe una amplia variedad de placas periféricas disponibles de varios proveedores. Los usuarios pueden diseñar una pila que incorpore placas de varios proveedores. La altura total, el peso y el consumo de energía de la pila pueden variar según la cantidad de placas que se utilicen.
A veces se hace referencia a la PC/104 como una "PC apilable", ya que la mayor parte de la arquitectura deriva de la PC de escritorio. [4] La mayoría de las placas de CPU PC/104 son compatibles con x86 e incluyen interfaces de PC estándar como puertos serie , USB , Ethernet y VGA . Un sistema PC/104 x86 generalmente es capaz de usar un sistema operativo de PC estándar como DOS, Windows o Linux. Sin embargo, también es bastante común usar un sistema operativo en tiempo real , como VxWorks .
Historia y estandarización
El bus y el factor de forma del PC/104 fueron ideados originalmente por Ampro en 1987 (dirigido por el CTO Rick Lehrbaum), [5] y luego estandarizados por el Consorcio PC/104 en 1992. [6] Se redactó un estándar IEEE correspondiente al PC/104 como IEEE P996.1, pero nunca fue ratificado. [7] En 1997, el Consorcio PC/104 introdujo un estándar más nuevo basado en el bus PCI . [8] En 2008 se introdujo un estándar basado en PCI Express . [9]
Las especificaciones relacionadas con el PC/104 están controladas por el Consorcio PC/104. Actualmente, el Consorcio cuenta con 47 miembros. [10] Todas las especificaciones publicadas por el Consorcio están disponibles de forma gratuita. No es necesario ser miembro del Consorcio para diseñar y fabricar una placa PC/104.
Estructura del bus frente al factor de forma
Las especificaciones publicadas por el Consorcio PC/104 definen múltiples estructuras de bus (ISA, PCI, PCI Express) y factores de forma (104, EBX, EPIC). La estructura de bus define la ubicación y la distribución de pines de los conectores de bus. El factor de forma se refiere al tamaño y la forma de la placa. Es posible encontrar uno de los buses de expansión apilables PC/104 en varios factores de forma diferentes. Si bien la mayoría de los productos disponibles comercialmente que utilizan las estructuras de bus cumplen con los factores de forma que se enumeran a continuación, es posible que un factor de forma no estándar o propietario incorpore una de las estructuras de bus PC/104 para lograr capacidad de expansión.
Tenga en cuenta que el término "PC/104" se suele utilizar indistintamente para referirse a la estructura del bus o al factor de forma. Esto puede ser una fuente de confusión. Por ejemplo, una hoja de datos de un producto puede referirse a una placa como "PC/104" debido a su tamaño y forma cuando, de hecho, tiene un bus de expansión PCI-104.
Estructuras de bus
Las especificaciones del Consorcio PC/104 definen una variedad de buses de computadora, todos los cuales derivan de los buses ISA, PCI y PCI Express que se encuentran en una PC de escritorio.
PC/104
El bus PC/104 original deriva del bus ISA . Incluye todas las señales que se encuentran en el bus ISA, con pines de tierra adicionales agregados para garantizar la integridad del bus. La sincronización de la señal y los niveles de voltaje son idénticos al bus ISA, con requisitos de corriente más bajos . La especificación PC/104 define dos versiones del bus, de 8 bits o de 16 bits. La versión de 8 bits corresponde al IBM XT y consta de 64 pines. La versión de 16 bits corresponde al IBM AT y agrega 40 pines adicionales, lo que lleva el total a 104 (de ahí el nombre "PC/104"). Las señales marcadas J1/P1 se encuentran en ambas versiones, mientras que las señales de J2/P2 se encuentran solo en la versión de 16 bits.
Dado que el PC/104 se basa en el bus ISA, a menudo es necesario configurar la dirección base , IRQ y el canal DMA al instalar una placa periférica. Esto se logra generalmente mediante el uso de puentes o interruptores DIP en la placa periférica. Si no se configura correctamente el periférico, se puede producir un conflicto de recursos y generar un comportamiento errático.
PC/104-Más
El estándar PC/104- Plus añade soporte para el bus PCI , además del bus ISA del estándar PC/104. El nombre deriva de su origen: un módulo PC/104- Plus tiene un conector PC/104 (ISA) más un conector PCI. El estándar define un conector de 120 pines para el bus PCI, ubicado en el lado opuesto de la placa al conector PC/104.
Las placas de CPU PC/104- Plus proporcionan comunicación activa en ambos buses y pueden comunicarse con tarjetas periféricas ISA y PCI. En los módulos periféricos PC/104- Plus , el conector PC/104 es simplemente un conector pasivo para apilamiento; el módulo se comunica activamente solo en el bus PCI. Como corolario, un módulo periférico PC/104- Plus no se puede utilizar con una placa de CPU PC/104. Sin embargo, una placa de CPU PC/104- Plus se puede utilizar con un módulo periférico PC/104.
Dado que PC/104- Plus se basa en PCI, no es necesario configurar una dirección base, IRQ o canal DMA en las placas periféricas. Sin embargo, es necesario especificar el número de ranura PCI de una placa periférica cuando se instala. Esto se establece comúnmente mediante un interruptor giratorio , un interruptor DIP o puentes en la placa periférica. Cada placa periférica PCI del sistema debe tener el número de ranura PCI configurado con un valor único. De lo contrario, el sistema puede comportarse de manera errática. El periférico más cercano a la CPU debe configurarse para la primera ranura, la siguiente placa debe configurarse para la segunda ranura, etc.
PCI-104
El factor de forma PCI-104 incluye el conector PCI, pero no el conector PC/104, con el fin de aumentar el espacio disponible en la placa. Aunque el conector PCI tiene 120 pines en lugar de 104, se mantuvo el nombre establecido. La ubicación y la distribución de pines del conector PCI son idénticas a las del PC/104- Plus .
Dado que se omite el bus ISA, una placa PCI-104 es incompatible con el módulo periférico PC/104. Sin embargo, PCI-104 y PC/104- Plus son compatibles, ya que ambas utilizan el bus PCI. La mayoría de las placas PC/104- Plus se pueden fabricar como PCI-104 simplemente sin instalar el conector PC/104.
PCI-104 utiliza el mismo esquema de selección de número de ranura PCI que PC/104- Plus . Cada dispositivo debe tener asignado un número de ranura único.
PCI/104-Express
La especificación PCI/104-Express incorpora el bus PCI Express (PCIe) además del bus PCI de la generación anterior. La especificación define un conector de montaje en superficie de 156 pines para las señales PCI Express. El nuevo conector ocupa la misma ubicación en la placa que el conector ISA PC/104 heredado. Además de PCI Express, las especificaciones también definen pines en el conector para buses informáticos modernos adicionales, como USB , SATA y LPC .
La especificación PCI/104-Express actualmente define dos posibles asignaciones de pines para el conector PCIe: [12]
- El tipo 1 ofrece cuatro enlaces PCI Express x1, dos puertos USB 2.0 y un enlace PCIe x16.
- El tipo 2 ofrece cuatro enlaces PCI Express x1, dos puertos USB 2.0, dos enlaces PCIe x4, dos puertos USB 3.0, dos puertos SATA y LPC.
Las placas y los periféricos de la CPU pueden diseñarse como Tipo 1, Tipo 2 o Universal (que solo utiliza el subconjunto común de señales entre los dos tipos, PCIe x1 y/o USB 2.0). La distribución de pines de Tipo 2 no se introdujo hasta la versión 2.0 de la especificación (publicada en 2011). Los productos PCI/104-Express introducidos antes de 2011 serán de Tipo 1 o Universal, pero no pueden estar etiquetados explícitamente como tales. Un bus de Tipo 1 es incompatible con los periféricos de Tipo 2, o viceversa. La especificación requiere que el sistema permanezca en reinicio y no arranque en caso de una discrepancia de tipo (no se producirá ningún daño físico). Las placas periféricas universales se pueden utilizar con distribución de pines de Tipo 1 o Tipo 2.
Debido a que el conector de bus PCIe es de montaje superficial, no de orificio pasante, también es posible que una placa utilice diferentes pines de bus en el lado superior de la placa y en el lado inferior. Por ejemplo, una placa de CPU puede tener un conector PCIe inferior de tipo 1 y un conector PCIe superior de tipo 2. Una placa de CPU de este tipo sería compatible con los periféricos de tipo 1 y/o universales en la parte inferior, y compatible con los periféricos de tipo 2 y/o universales en la parte superior.
De manera similar a la PC/104- Plus , las placas de CPU PCI/104-Express proporcionarán comunicación activa en los buses PCI y PCIe. Una placa de CPU PC/104-Express se puede utilizar con módulos periféricos PCI-104 y PC/104- Plus . Sin embargo, un módulo periférico PCI/104-Express se comunicará únicamente en el bus PCIe; el conector PCI es simplemente un conector de paso para apilamiento. Un módulo periférico PC/104-Express no se puede utilizar con una placa de CPU PCI-104 o PC/104- Plus (a menos que se utilice un dispositivo puente ISA).
PCI/104-Express incorpora el cambio de enlaces, lo que elimina la necesidad de los interruptores/puentes de selección de ranura PCI que se encuentran en los periféricos PCI-104 y PC/104- Plus . Algunas placas periféricas vuelven a llenar los enlaces PCIe, lo que permite que la pila tenga placas periféricas adicionales más allá del conjunto inicial de enlaces PCI Express proporcionado por la placa de CPU. La repoblación de enlaces no es un requisito en la especificación y debe implementarse en la placa periférica con un conmutador de paquetes PCI Express.
PCIe/104
PCIe/104 es similar al estándar PCI/104-Express, pero omite el bus PCI heredado para aumentar el espacio disponible en la placa (similar a la relación entre PC/104- Plus y PCI-104). La ubicación del conector PCI Express y las opciones de distribución de pines son las mismas que las de PCI/104-Express (tanto Tipo 1 como Tipo 2). Debido a que se omite el conector de bus PCI, una placa PCIe/104 es incompatible con los sistemas PC/104- Plus y PCI-104 (a menos que se utilice un dispositivo puente PCIe a PCI).
Factores de forma
Las especificaciones del consorcio PC/104 cubren tres formatos que definen el tamaño y la forma de la placa. Cada formato puede utilizar una de las estructuras de bus mencionadas anteriormente.
104 o PC/104
El factor de forma 104 se define como 3,550 × 3,775 pulgadas (90 × 96 mm), con orificios de montaje en las cuatro esquinas de la placa. Las especificaciones también permiten un área de 0,5 pulgadas (13 mm) más allá del borde de la PCB para los conectores de E/S. Algunos productos PC/104 tienen PCB de gran tamaño que se extienden hasta el área del conector de E/S. Las "alas" extendidas de la PCB no se abordan en la especificación y, por lo general, no causan problemas mecánicos siempre que el saliente total de la PCB + el conector de E/S esté dentro de las dimensiones máximas permitidas de 4,550 × 4,393 pulgadas (116 × 112 mm).
Las dimensiones se definieron originalmente en la especificación PC/104 y, como resultado, el factor de forma todavía se conoce comúnmente como "PC/104". La especificación PCI/104-Express y PCIe/104 introdujo el nombre "104" para distinguir el factor de forma del bus PC/104 anterior.
EBX y EBX Express
EBX (Embedded Board eXpandable) es un formato de computadora de placa única, de 5,75 × 8 pulgadas (146 × 203 mm). El formato EBX se aplica a la placa de la CPU , pero admite placas periféricas con formato PC/104 para expansión. Las especificaciones originales de EBX permitían los buses PC/104, PC/104- Plus y PCI-104. EBX Express agrega los buses PCI-104/Express y PCIe/104.
EPIC y EPIC Express
EPIC (Embedded Platform for Industrial Computing) es un formato de computadora de placa única que, al igual que EBX, admite placas periféricas PC/104 pero es más pequeño que EBX, con 6,5 × 4,5 pulgadas (165 × 114 mm). Permite que las conexiones de E/S se implementen como cabezales de pines o conectores de estilo PC ("mundo real"). El estándar proporciona zonas de E/S específicas para implementar funciones como Ethernet, puertos seriales, E/S digitales y analógicas, video, conexión inalámbrica y varias interfaces específicas de la aplicación. EPIC Express agrega capacidad de expansión PCI Express .
Límites de apilamiento
En general, cada pila PC/104 contendrá una placa de CPU, una placa de fuente de alimentación y una o más placas periféricas. La cantidad máxima de placas admitidas por una pila PC/104 dependerá de los buses que utilicen las placas periféricas.
- Bus ISA : no existe un límite estricto para la cantidad de placas ISA que pueden coexistir en un sistema. Sin embargo, existe una cantidad limitada de direcciones base, IRQ y canales DMA que pueden convertirse en un factor limitante. Las placas ISA se pueden apilar en cualquier lado de la placa de la CPU.
- Bus PCI : las especificaciones PC/104- Plus y PCI-104 permiten cuatro "ranuras" PCI. Esto impone un límite estricto de cuatro tarjetas periféricas PCI por sistema. Todos los módulos periféricos PCI deben conectarse consecutivamente en un lado del controlador debido a los requisitos de señalización del bus PCI.
- PCI Express : la cantidad total de tarjetas periféricas PCI Express dependerá de la cantidad de enlaces PCIe que proporcione la placa de la CPU. Por ejemplo, si la placa de la CPU proporciona cuatro enlaces PCIe x1, se puede instalar un máximo de cuatro tarjetas periféricas PCIe x1. Si una o más de las placas periféricas proporcionan la repoblación de enlaces PCIe, se pueden instalar módulos adicionales. Los enlaces PCIe en el lado superior de la placa de la CPU son independientes de los enlaces en el lado inferior. Instalar un periférico PCIe debajo de la placa de la CPU no consumirá uno de los enlaces del lado superior. La cantidad y el ancho de los enlaces PCIe disponibles pueden variar entre los conectores superior e inferior de la placa de la CPU.
- USB y SATA : las especificaciones PCI/104-Express y PCIe/104 proporcionan señales para USB y SATA, que pueden ser utilizadas por las placas periféricas en la pila. Los periféricos que utilizan USB y SATA estarán limitados a la cantidad de enlaces que proporciona la placa de la CPU. Los periféricos USB pueden proporcionar la repoblación de enlaces mediante la incorporación de un concentrador USB integrado .
Independientemente de los buses utilizados, la cantidad máxima de placas de una pila PC/104 puede estar limitada debido a restricciones de tamaño, peso y energía para la aplicación de destino.
Interferencia mecánica entre placas
Al apilar placas PC/104 juntas, la interferencia mecánica entre placas adyacentes es un problema.
- Conectores de bus : al ensamblar un sistema compuesto por varias estructuras de bus, es posible que los conectores de bus interfieran con los componentes de una placa adyacente. Por ejemplo, si se coloca una placa PC/104- Plus sobre una placa PC/104, es posible que los pines de la parte inferior del conector PCI se topen con los componentes de la placa inferior.
- Componentes y conectores fuera de especificaciones : las especificaciones PC/104 limitan la altura de los componentes y conectores que se pueden colocar en ambos lados de la placa. Una región de altura restringida tiene como objetivo garantizar que las placas no interfieran con otras placas vecinas apiladas arriba o abajo. Sin embargo, no es raro encontrar placas que violan estas restricciones.
- Disipadores térmicos : el espacio estándar entre placas PC/104 apiladas es de 0,600 pulgadas (15,24 mm). Los componentes con un consumo de energía significativo (CPU, GPU, FPGA) a menudo requieren un disipador térmico más grande que no cabe en el espacio tradicional de la placa. No es raro encontrar placas CPU PC/104 con disipadores térmicos relativamente grandes que no permiten apilar placas periféricas encima. Las revisiones posteriores de la especificación PCI/104-Express y PCIe/104 introdujeron un conector opcional más alto de 0,866 pulgadas (22,00 mm) que es compatible con el conector de altura tradicional.
Los problemas de interferencia mecánica mencionados anteriormente se pueden solucionar con un espaciador de bus, que permite más espacio entre las placas. Sin embargo, los espaciadores de bus aumentan la altura total de la pila y pueden no ser adecuados para aplicaciones con limitaciones de espacio. También es posible reorganizar las placas en la pila para eliminar la interferencia. Otra opción es modificar las placas que causan problemas para eliminar la interferencia (por ejemplo, despoblar un conector), pero esto puede requerir que el proveedor suministre una versión personalizada de la placa.
Posibles problemas de compatibilidad
En teoría, las placas PC/104 son interoperables. Es posible ensamblar un sistema utilizando placas de varios proveedores diferentes, siempre que se respeten los problemas de compatibilidad de la estructura de bus fundamentales que se mencionaron anteriormente. Sin embargo, a veces surgen problemas de compatibilidad.
- Pines de codificación PC/104 : la especificación PC/104 define dos pines de codificación para evitar la desalineación del conector. Estos pines no deben colocarse en el conector. Sin embargo, algunos proveedores no utilizan conectores PC/104 codificados. Esto puede causar problemas al utilizar placas de varios proveedores. A menudo es posible modificar la placa sin codificación recortando los pines que no funcionan.
- Voltajes de suministro de energía requeridos : los buses PC/104 proporcionan varios voltajes de suministro (+5 V, +3,3 V, +12 V, etc.). Los voltajes que utiliza realmente una placa dependen del criterio del fabricante de la misma. Se debe tener cuidado de suministrar todos los voltajes requeridos para las placas de la pila.
- Conflicto de suministro de energía : algunas placas proporcionarán energía a la pila (por ejemplo, una placa de CPU). Esto puede generar un conflicto con una fuente de alimentación en la pila.
- Niveles de señalización PCI : el bus PCI puede funcionar con niveles de señalización de +3,3 V o +5 V. Algunas placas pueden esperar un voltaje, mientras que otras pueden esperar un voltaje diferente.
- Línea PCI VIO : se supone que la señal VIO en el bus PCI es impulsada por la placa de la CPU. Sin embargo, algunas placas periféricas y fuentes de alimentación impulsan esta señal (lo que viola la especificación PCI).
- Bus ISA con chipsets modernos : el bus ISA heredado se ha omitido de los chipsets modernos. Las placas de CPU más nuevas que proporcionan un bus ISA suelen hacerlo mediante un chip puente ISA (ya sea PCI a ISA o LPC a ISA). En algunos casos, el bus ISA no está completamente implementado y pueden aparecer problemas de compatibilidad.
- 4 Bus Masters : las especificaciones PC/104- Plus y PCI-104 originalmente no permitían 4 conjuntos de pares Grant/Request en el bus PCI. Esto se resolvió en revisiones más recientes de la especificación. Sin embargo, las placas más antiguas pueden tener problemas al usar DMA en la posición de la ranura PCI 3.ª o 4.ª.
Desarrollo de software
La mayoría de las placas de CPU PC/104 son compatibles con x86 y pueden ejecutar software de PC disponible comercialmente sin modificaciones. Las interfaces de E/S de PC estándar de un sistema PC/104 (puertos serie, USB, Ethernet, VGA, etc.) suelen ser compatibles a través de los controladores nativos integrados en el sistema operativo. Ciertas placas periféricas, como las de adquisición de datos , pueden requerir controladores especiales del fabricante de la placa.
Desde una perspectiva de desarrollo de software, hay poca diferencia entre compilar software para una PC de escritorio o compilarlo para una pila x86 PC/104. El software se puede desarrollar utilizando compiladores x86 estándar (por ejemplo, Visual Studio si el sistema PC/104 ejecuta Windows). Por lo general, no se necesitan herramientas de desarrollo especializadas, como compiladores cruzados , Board Support Packages o depuradores JTAG. Esto es una diferencia significativa con respecto a las plataformas de sistemas integrados que no son x86, que a menudo requieren una cadena de herramientas de desarrollo del fabricante de la placa.
También se encuentran disponibles en el mercado placas con CPU PC/104 que no son x86 y están basadas en ARM o PowerPC . Sin embargo, estas placas no son capaces de ejecutar software de PC comercial. En estos casos, el fabricante suele proporcionar un paquete de soporte de placa para los sistemas operativos compatibles.
Variaciones ortográficas y abreviaturas
Al imprimir "PC/104" o sus variantes, es habitual que se omitan la barra oblicua o los guiones. PC/104 puede abreviarse como PC104, PCI-104 abreviado como PCI104, etc. Además, es habitual que PC/104- Plus se abrevie con un signo más (por ejemplo, PC104+). [13] Estas abreviaturas no están reconocidas oficialmente en ninguna especificación o literatura del Consorcio PC/104, sin embargo se han utilizado durante algún tiempo.
Almacenamiento
Los sistemas PC/104 suelen requerir un almacenamiento pequeño y no volátil, como el que ofrecen los dispositivos de estado sólido (SSD) y flash compactos . Estos suelen ser más populares que los discos duros mecánicos (rotatorios). En comparación con los discos rotatorios, los dispositivos de almacenamiento basados en flash tienen una vida útil limitada en términos de ciclos de escritura, pero son más rápidos y consumen menos energía. Además, su compacidad y durabilidad física suelen ser más adecuados para aplicaciones PC/104 robustas; el tamaño de los discos duros magnéticos puede ser engorroso y sus numerosas piezas delicadas son más susceptibles a fallar en entornos hostiles.
Véase también
Referencias
- ^ Burckle, Robert. "PC/104: El entrepiso de PC integrado" (PDF) .
- ^ "PC104.com - ¿Qué es PC104?". www.pc104.com . Consultado el 19 de mayo de 2021 .
- ^ "¿Por qué PC/104? La necesidad de un estándar para PC integrado" . Consultado el 29 de enero de 2008 .
- ^ "Actualización técnica del consorcio PC/104: PC apilables desde ISA a PCI y PCI Express" . Consultado el 4 de septiembre de 2014 .
- ^ Himpe, Vincent (2006). Visual Basic para aplicaciones de ingeniería electrónica (2.ª ed.). India: Segment BV / Elektor Electronics. pág. 407. ISBN 0-905705-68-8. Consultado el 29 de enero de 2008 .
- ^ "Historia del consorcio PC/104 Embedded" . Consultado el 29 de enero de 2008 .
- ^ Angel, Jonathan (1 de febrero de 2010). "Estándar abierto define módulos de expansión diminutos". LinuxDevices.com . Consultado el 18 de marzo de 2014 .
- ^ "Consorcio PC/104 - Historia" . Consultado el 14 de agosto de 2014 .
- ^ "PC/104 Embedded Consortium aprueba la especificación PCI/104-Express" . Consultado el 14 de agosto de 2014 .
- ^ "Directorio de miembros del consorcio PC/104". pc104.org . Archivado desde el original el 2 de junio de 2013 . Consultado el 4 de septiembre de 2014 .
- ^ "Especificación PCI/104-Express y PCIe/104, versión 3.0" (PDF) . pc104.org . 17 de febrero de 2015 . Consultado el 2 de noviembre de 2016 .
- ^ "¿Qué es PCIe/104?" . Consultado el 8 de agosto de 2014 .
- ^ "Ejemplo de abreviatura no estándar de PC/104" . Consultado el 8 de septiembre de 2014 .
Enlaces externos
- Consorcio PC/104