Tema 1: Introducción a los computadores industriales. Contenido PC industriales: características generales ................................................................ 1 Dispositivos integrados en PCs industriales ............................................................. 4 Inicialización del PC y ejecución de programas cargados desde ROM ........................ 5 1.3.1. El sistema BIOS ........................................................................................... 5 1.3.2. Tipos de BIOS.............................................................................................. 5 1.3.3. Funciones del BIOS ..................................................................................... 6 1.3.4. La carga inicial del Software ........................................................................ 6 1.3.5. Inventario de recursos y comprobación del hardware.................................. 7 1.3.6. Inicialización................................................................................................. 8 1.3.7. Carga del Sistema ....................................................................................... 9 1.3.8. El sistema básico de entradas salidas ......................................................... 9 1.3.9. Ejecución de programas desde ROM ........................................................ 10 1.4. Buses específicos para PCs industriales ................................................................. 10 1.4.1. CompactPCI (PCI industrial) ...................................................................... 10 1.4.2. PC 104 ....................................................................................................... 13 1.1. 1.2. 1.3. 1.1. PC industriales: características generales Las arquitecturas basadas en PC están, por regla general, a la vanguardia de los avances tecnológicos, lo cual brinda a los diseñadores de sistemas empotrados una gran gama de soluciones tecnológicas susceptibles de ser incorporadas en sus desarrollos. Además la gran flexibilidad de la arquitectura PC permite una adaptación a los problemas específicos a lo que los sistemas empotrados pretenden dar solución. A pesar de todo, el diseño de sistemas empotrados basados en PC no es una tarea sencilla. El diseño de sistemas empotrados está determinado por las características del hardware y del software impuestas por la aplicación que se quiere resolver. El hardware puede necesitar ser adaptado para cumplir requerimientos de tamaño, peso y funcionalidades, al tiempo que para adaptarse a los factores ambientales, como por ejemplo vibraciones, temperatura, contaminación etc. En cuanto al software, este puede requerir la adaptación de BIOS (Basic Input Output System) para hardware específico, o adaptación para sistemas operativos especiales y por supuesto a las especificaciones de la aplicación. La arquitectura basada en Intel x86 para sistemas empotrados ha experimentado un gran crecimiento, ofreciendo una número de ventajas para los diseñadores. Estas ventajas vienen dadas gracias a la estandarización de la arquitectura PC, a la existencia de multitud de periféricos y componentes, las altas prestaciones y la riqueza de características de los nuevos e innovadores componentes. La arquitectura basada en PC proporciona una serie de estándares que reducen el esfuerzo de rediseño y los costes. La estructura del hardware basada en bus, proporciona una variedad de Informática Industrial Máquinas de propósito general usadas en sistemas empotrados características que permiten su adaptación a los requisitos de la aplicación. Al tiempo que lo diseñadores se aprovechan de soluciones incluidas tales como la conectividad entre dispositivos, el “Plug&Play”, dispositivos comunes y controladores. Los diseños basados en arquitectura PC son de bajo coste, versátiles y de fácil accesibilidad. Además la arquitectura PC lidera los avances en entornos de desarrollo orientados a objetos. Además el uso de tecnología basada en PC permite el desarrollo de interfaces grafico complejos, muy adaptados a la aplicación final. Hay algunos factores que incluso en sistemas que no requieren una compatibilidad con PC, hacen atractivo el uso de esta tecnología, por ejemplo el uso de PC BIOS permite un testado automático del sistema en la inicialización. La incorporación de este tipo de software en sistemas que no requieren a priori, ser compatibles con la tecnología PC, se reduce el tiempo de desarrollo y aumenta la fiabilidad del sistema. A la hora del diseño de sistemas empotrados hay que tener en cuenta duración de la vida del sistemas. Hay que tomar decisiones acerca de la calidad de los conectores, del nivel de integración, de las técnicas de fabricación, el tiempo medio entre fallos del sistema, todas estas decisiones son tanto más importantes si el tiempo de vida del sistema oscila entre los 5 y 20 años. El incorporar componentes compatibles PC en los sistemas no debe hacerse a la ligera, ya que puede llegar a convertirse en un auténtico quebradero de cabeza para los diseñadores. Uno de los mayores riesgos que se corre es el uso de componentes que rápidamente quedan obsoletos. Esto es debido a que el auge del mercado de PCs domésticos viene determinado por la innovación en los componentes. El tiempo medio en el que un producto es sustituido por un modelo mejorado es de 6 meses. Mientras que el tiempo de vida de un sistema empotrado es de varios años. Veamos algunos puntos importantes a tener en cuenta: 1.1.1. Alta fiabilidad Los sistemas empotrados ocupan frecuentemente el corazón de sistemas considerados como críticos, como por ejemplo en sistemas de telecomunicaciones, sistemas de fabricación o en aplicaciones médicas. Al contrario que los sistemas domésticos, muchos de los sistemas están muy integrados, o presentan una gran dificultad a la hora de acceder a ellos, y hace que la sustitución de componentes dañados sea muy costosa. Por ello este tipo de sistemas requiere la elección de componentes de alta calidad para poder mantener la fiabilidad de los mismos. En general la elección de los componentes no debe hacerse teniendo en cuenta solamente el precio, sino también la calidad de los mismos, y tiempo y dificultada de una potencial sustitución, así como la importancia del componente en una situación de mal funcionamiento. 1.1.2. Consideraciones de diseño: a) Interferencias electro-magnéticas (EMI) Todos los componentes para PCs domésticos pasan un conjunto de pruebas para asegurar que la emisión de interferencias no afectan la los dispositivos que comúnmente se usa en los hogares, tales como TV o radio. Pero los requisitos de emisión son muy bajos, lo que hace que el uso de sistemas basados en PC sea inviable algunos tipos de entornos tales como en algunas aplicaciones médicas. Lo que provoca que para este tipo de aplicaciones sea necesario el uso de sistemas de reducción de ruidos y dispositivos de aislamiento. ATC-Universidad de Sevilla 2 Informática Industrial Máquinas de propósito general usadas en sistemas empotrados b) Temperatura Las últimas generaciones de PCs necesitan cada vez más potencia, lo que provoca un mayor calentamiento de los componentes y por lo tanto una mayor necesidad de disipación del calor, en los PCs domésticos este problema se soluciona con la incorporación de ventiladores que aseguran el necesario flujo de aire para llevar a cabo la refrigeración, pero en ciertos casos el tamaño es un requerimiento del sistema y complican que la solución sea viable. TECNICAS DE HEAT PIPING: Debido a que las limitaciones de espacio están generalmente reñidas con las capacidades de refrigeración, hay que llegar a un compromiso entre el tamaño y los sistemas de refrigeración necesarios para mantener el sistema en las condiciones de temperatura idóneas para el buen funcionamiento. Un ejemplo: un Pentium a 133 Mhz puede trabajar hasta con 85º C sin embargo un Pentium 200 Mhz MMX requiere 45º C. c) Control de la potencia El control eficiente de la potencia consumida en los PC domésticos está casi limitado a los PC portátiles, los elementos que más consumen tales como discos duros y monitores son desconectados, para ahorrar energía. Estos conceptos pueden ser extrapolados a los dispositivos que el sistema empotrado controla, tales como transmisores, receptores, amplificadores etc. El diseñador debe tener en cuenta cómo se realiza la conmutación entre un modo y otro de trabajo. Además se debe garantizar que a la hora de que el procesador solicite el uso de dispositivo no se generen errores por que el dispositivo este en modo ahorro de energía. 1.1.3. Características generales de un PC industrial Mayor solidez mecánica y eléctrica Mayor modularidad (más tipos de tarjetas E/S, bastidores industriales, conectores etc.) Mayor capacidad para soportar software especifico (respuestas en tiempo real y preparados para respondes ante soluciones de tiempo crítico) Mejores protecciones ante ambientes hostiles con alto ruido electromagnético y condiciones ambientales duras (polvo, temperaturas extremas, variaciones de tensión bruscas y elevadas, etc.) Barato Creciente aceptación por la industrial. 1.1.4. Tipos de PCs industriales Estaciones de trabajo: basados en sistemas operativos específicos (UNIX) con alto nivel de procesamiento de datos y robustez Sistemas multiprocesador modulares: múltiples placas de control interconectadas por sistemas de bus de altas prestaciones. Sistemas basado en PC tradicionales con características industriales: PC proveniente del entorno de oficina adaptado al industrial; alternativa más económica para instalaciones con poco complejidad. 1.1.5. PC industriales frente a PLC Aunque en un principio estas dos tecnologías podrían parecer antagónicas, lo cierto es que en la mayoría de los casos, no están destinadas al mismo tipo de aplicaciones, además lo usual es encontrarlas cooperando para dar solución a un problema. Los PLC están orientados al control directos de los elementos de la planta (actuadotes, sensores, motores), ya que tienen mejor resuelto el tema de los interfaces con los dispositivos específicos. El PC industrial esta orientado a tareas de comunicación con ATC-Universidad de Sevilla 3 Informática Industrial Máquinas de propósito general usadas en sistemas empotrados los PLC para almacenamiento de datos, monitorización y tareas no primordiales, ya que poseen mayor potencia de cálculo, más fiabilidad de programación y mejor interfaz con el usuario. El PC industria se ubica en un nivel más alto dentro de la jerarquía de automatización. La Tabla 1 muestra una comparativa de ambas tecnologías. Tabla 1: comparativa PC industrial vs PLC 1.2. Dispositivos integrados en PCs industriales Además de los elementos habituales en un PC (CPU, RAM, disco duro, puerto serie…) hay elementos destinados al uso industrial y sistemas de altas prestaciones: Buses de interconexión internos: o Habituales: PCI, ISA o Especiales: VME, Futurebus, SCSI, GPIB (IEEE 488) Elementos de comunicación externos o Tarjetas de comunicación a nivel de campo o Tarjetas de adquisición de datos (E/S digitales y analógicas) o Comunicación serie (RS-232, RS-485, USB, FireWire) o Comunicación Ethernet Sistemas redundantes de almacenamiento de datos Cajas de protección, teclados, y accesorios reforzados Sistemas de alimentación robustos Elementos de visualización: LCD, pantallas táctiles, etc. ATC-Universidad de Sevilla 4 Informática Industrial Máquinas de propósito general usadas en sistemas empotrados La Figura 1 muestra una visión general de los dispositivos que se encuentran en un PC industrial. Figura 1: Dispositivos en PC industriales ************* TRANPARENCIAS DE DISPOSITIVOS ******************* 1.3. Inicialización del PC y ejecución de programas cargados desde ROM En la tecnología basada en PC la inicialización del sistema la realiza el sistema BIOS. 1.3.1. El sistema BIOS BIOS es acrónimo de "Basic Input Output System"; literalmente: Sistema básico de Entradas/Salidas. Se refiere a una pieza de software muy específico grabada en una memoria no volátil que está presente en todos los PC's y compatibles. Aunque naturalmente existen antecedentes, en su forma actual es una invención del equipo de IBM encargado de diseñar el primer PC, y representa uno de los ejemplos más emblemáticos de firmware 1.3.2. Tipos de BIOS Normalmente este software viene grabado en un chip de memoria no volátil de solo lectura ROM (Read Only Memory), situado en la placa base, de ahí el nombre ROM BIOS. Esto garantiza que no se perderá al apagar el Sistema y que no dependerá para su actuación de la existencia o buen funcionamiento de ningún disco, por lo que estará siempre disponible (esto es importante porque, como veremos a continuación, posibilita el arranque inicial del equipo sin necesitar de ningún recurso externo). ATC-Universidad de Sevilla 5 Informática Industrial Máquinas de propósito general usadas en sistemas empotrados Debido a que el BIOS es usado constantemente en el funcionamiento normal del PC, y que la memoria RAM es de acceso más rápido que la ROM, muchos fabricantes disponen que el contenido de la ROM BIOS sea copiado a memoria RAM como parte del proceso de arranque inicial. Esto se conoce como "Shadowing" y tiene el efecto de acelerar el rendimiento del sistema. La versión de la BIOS cargada en RAM se denomina shadow BIOS. Naturalmente esto exige un realineamiento de los vectores de interrupción, de forma que apunten a las nuevas posiciones en RAM. Los BIOS más modernos son los denominados PnP BIOS o PnP-aware BIOS, lo que significa que están previstos para manejar el estándar PnP "Plug and Play" de Microsoft. Una tecnología que permite a un equipo identificar cualquier dispositivo hardware que se conecte y asignarle los recursos necesarios sin que existan conflictos con el resto. Antes de esta tecnología la adición de nuevos dispositivos constituía un auténtico quebradero de cabeza, dada la escasez de recursos que previeron los diseñadores del PC (por ejemplo los consabidos conflictos de interrupciones IRQ's [1] y de direcciones de puertos). 1.3.3. Funciones del BIOS El sistema BIOS de un PC estándar desempeña en realidad cuatro funciones independientes: Proceso de carga inicial del software. Programa de inventario y comprobación del hardware. Inicialización de determinados dispositivos hardware, carga de cierto software básico e inicio del Sistema Operativo. Servicios de soporte software para determinados dispositivos hardware del sistema. 1.3.4. La carga inicial del Software Un hardware sin Sistema Operativo es incapaz de realizar ninguna actividad útil. Pero entonces surge la pregunta: ¿Como se carga el software después que se ha conectado el suministro de energía, si no existe ningún programa capaz de hacer nada? Antes de explicar como resolvieron el problema los diseñadores del PC, permitidme un poco de historia. Igual que en la actualidad, a los ordenadores de hace unas décadas, una vez conectados había que cargarles el software. Como después de conectada, en la máquina no había ningún programa, había que introducirlo manualmente a través de la consola. En esos tiempos los ordenadores tenían una consola o panel frontal lleno de lucecitas e interruptores con los que manualmente se podían realizar determinadas operaciones; básicamente se reducían a poder reiniciar (resetear) los registros, examinar el contenido de cualquier posición de memoria, y colocar en ella cualquier dato o instrucción en lenguaje máquina. De esta forma se cargaba manualmente un pequeñísimo trozo de código, el "bootstrap", que una vez arrancado era capaz de dirigirse a un dispositivo, por ejemplo un lector de cinta perforada, en la que se iniciaba la carga de un programa más avanzado; el cargador binario ("Binary loader") que ya era capaz de aceptar algunas órdenes de consola y cargar a su vez cualquier otro software. En los PCs y compatibles actuales, el proceso de carga de un sistema operativo por ejemplo DOS, Windows o Linux se compone de una serie de pasos que se inician cuando se conecta o reinicia el ordenador. El proceso comienza siempre en la BIOS, y salvando algunas pequeñas variaciones que puede haber en función de cada fabricante de hardware y de la propia BIOS, el desarrollo paso a paso de esta secuencia es el siguiente: ATC-Universidad de Sevilla 6 Informática Industrial Máquinas de propósito general usadas en sistemas empotrados Cuando se da tensión a la fuente de alimentación, transcurre un cierto tiempo hasta que desaparecen los transitorios de conexión y se genera una tensión estable y adecuada para alimentar el sistema. Una vez que la alimentación se estabiliza, genera una señal Power Good en uno de los cables que va de la fuente de alimentación a la placa base; esta señal es recibida en el juego de chips instalado en la referida placa, y a su vez generan una señal de reinicio (reset) al procesador. Esta señal consiste en que una patilla del procesador es puesta a masa (esta patilla está conectada a una línea del BUS del PC). La finalidad de este proceso es evitar que el procesador arranque prematuramente, cuando las tensiones de alimentación no son todavía correctas, lo que podría producir daños en el hardware. Es el mismo sistema que se utiliza para un reinicio en caliente cuando pulsa en el botón marcado "Reset" en el frontal de su PC. Este botón pone a masa la línea del bus conectada a la patilla reset de procesador. El procesador arranca cuando se retira la señal de reset, pero no existe en su memoria ninguna instrucción o dato, por lo que no puede hacer absolutamente nada. Para salvar el obstáculo, los fabricantes incluyen en la circuitería de la placa base una especie de instinto. Podríamos establecer un símil diciendo que es análogo al que hace que las tortugas corran hacia el agua cuando salen del huevo en la playa, solo que en este caso el sistema se dirige a una dirección fija de memoria FFFF0h. En realidad este punto de inicio contiene una instrucción de salto (jump) que indica al procesador donde tiene que dirigirse para encontrar el punto donde comienza realmente el programa de carga (bootstrap) de la BIOS. 1.3.5. Inventario de recursos y comprobación del hardware La primera parte del programa de la BIOS inicia un proceso de comprobación del hardware denominado POST (Power-On Self Test), en caso de existir errores graves, el programa se detiene emitiendo una serie de pitidos (eventualmente algún mensaje en pantalla) que codifican el tipo de error encontrado; el desarrollo exacto depende del fabricante, pero generalmente la secuencia de comprobaciones se resume como sigue: Chequéo de registros del procesador Puesta a cero del temporizador 8253/8254 para refresco de RAM. Puesta a cero del acceso directo a memoria, DMA, para refresco de la RAM en el canal 0. Verificar que el refresco es operativo (los primeros PC's usaban RAM dinámica). Verificar la memoria RAM baja (0/16-64 KB). Cargar los vectores de interrupción y asignarles espacio en la zona de memoria baja. Inicializar los dispositivos de video y teclado. Determinar el tamaño de la RAM adicional y comprobar su funcionamiento (el recuento que se ve en pantalla). Si llegado a este punto existiera algún error en la memoria se mostraría un mensaje de error (el dispositivo de video ya está operativo). Inicializar los puertos COM (comunicaciones serie), LPT (comunicaciones paralelo) y de juegos Inicializar, en su caso, el sistema de disquete. Inicializar el sistema de disco. Explorar el área de usuario de la ROM. Llamar el interruptor de bootstrap. La comprobación del dispositivo de video incluye cargar y ejecuta la parte de BIOS incluida en el adaptador de video. La mayoría de las adaptadoras modernas muestran ATC-Universidad de Sevilla 7 Informática Industrial Máquinas de propósito general usadas en sistemas empotrados en pantalla información sobre sí mismas; es por esta razón por la que, a veces, lo primero que se ve en pantalla es información sobre la propia controladora de video antes que ningún mensaje de la BIOS del sistema. Nota: Si se trata de un reinicio en caliente ("Hot boot"), que puede conseguirse con la combinación [Ctrl]+[Alt]+[Sup], la fase de comprobación POST se omite, y el proceso de carga sigue desde el siguiente punto. A continuación del POST, la BIOS recorre la memoria en busca de la posible existencia de otros programas en ROM para ver si alguno tiene BIOSes, lo que ocurre por ejemplo, con los controladores de disco duro IDE/ATA, cuyas BIOS se encuentran en la dirección C8000h; otros elementos que suelen contar con sus propias BIOSes son las tarjetas de red y las controladoras SCSI. Estos módulos, y cualquier otro que sea encontrado, es cargado y ejecutado. A continuación, el BIOS muestra su pantalla inicial (generalmente con los créditos del fabricante número de versión y fecha). Como hemos visto, el BIOS realiza una especie de inventario del sistema y algunas pruebas para verificar que su funcionamiento es correcto. En los PCs originales la especificación del hardware disponible se efectuaba mediante interruptores ("Jumpers") situados en la placa-base. A partir de los ATs se dispone de una memoria permanente, accesible para el usuario (ROM del Sistema, donde está inventariado el hardware básico y su tipo. La tendencia actual es el estándar PnP. Si la BIOS lo soporta, es capaz por sí misma de detectar y configurar los dispositivos conectados, asignándoles los recursos necesarios y mostrando un mensaje en pantalla por cada uno instalado. Las BIOS modernas, basándose en el tipo de memoria detectada, pueden establecer automáticamente su velocidad. Algunas pueden detectar automáticamente los parámetros del tipo de disco duro y su forma de acceso. Finalmente, la BIOS muestra en pantalla un resumen de la configuración del sistema. 1.3.6. Inicialización Parte de la tarea del POST se refiere a la preparación del hardware disponible (periféricos). Muchos de estos elementos precisan de la inicialización de registros, carga de parámetros y determinadas señales para ponerlos en orden de funcionamiento. No olvidar que algunos de ellos, son controladores programables, y parte del trabajo de la BIOS es justamente este, programarlos. La inicialización implica también cargar en la memoria RAM ciertas tablas y programas muy básicos, imprescindibles para el manejo de muy bajo nivel del hardware. Por ejemplo, la carga en memoria baja de los vectores de interrupción, de forma que cuando ocurra una interrupción se sepa donde encontrar la rutina adecuada. La inicialización implica también el área de memoria de datos de la ROM-BIOS, situada en la zona de direcciones 00400h a 004FFh (256 Bytes). Estas direcciones son frecuentemente señaladas como 0040:0000 - 0040:00FF. Nota: Puesto que los programas contenidos en la BIOS requieren cierta área de trabajo donde almacenar variables y datos, se asignaron para este propósito 256 Bytes en la zona de memoria situada inmediatamente por encima de la tabla de vectores de interrupción. En este área se maneja información muy diversa, por ejemplo las últimas pulsaciones de teclas, capacidad de memoria encontrada, los ciclos de reloj pasados desde media noche (hora del sistema), el número de líneas y columnas que caben en la pantalla, o la lista de los dispositivos detectados en la secuencia POST. ATC-Universidad de Sevilla 8 Informática Industrial Máquinas de propósito general usadas en sistemas empotrados 1.3.7. Carga del Sistema Una vez terminadas estas verificaciones previas la BIOS busca un dispositivo donde encontrar un programa que pueda continuar el proceso con la carga del Sistema Operativo. Normalmente esta búsqueda se realiza en el disquete A: y el disco C: según un orden que puede establecerse con unos parámetros que controlan la secuencia de carga. Las BIOS actuales pueden establecer otros dispositivos alternativos como el CD-ROM. En caso de no encontrarse ningún dispositivo cargable (o aunque exista una partición cargable, pero no ha sido declarado activa), se genera un mensaje de error que puede ser el clásico: "No boot device available", "NO ROM BASIC – System Halted". La descripción del proceso que sigue sería ya objeto de otro capítulo... 1.3.8. El sistema básico de entradas salidas Aparte de los procesos de verificación y carga descritos anteriormente, la característica fundamental del BIOS, que además justifica su nombre de "Sistema Básico de Entrada Salida", es que en este firmware se encuentran las instrucciones necesarias para acceder a determinados servicios básicos del hardware (dispositivos de Entrada/Salida), entre los que se encuentran el teclado, la pantalla, los puertos serie y los controladores de disco. Estos trozos de código son accedidos a través de las direcciones contenidas en la tabla de vectores de interrupción. De forma que cualquier software que se cargue en el ordenador puede saber en que dirección buscar para encontrar los servicios correspondientes. En realidad esta es la parte más original y trascendente del diseño del PC y lo que ha posibilitado la existencia de "Clónicos"; lo que hace que un conjunto de piezas hardware sean un PC; es también lo que hace que cualquier programa para tecnología Intel-PC corra en un PC con independencia de como sean realmente las interioridades de su hardware. Desde este punto de vista, la BIOS representa un elemento unificador común a todos los PCs; todas estas máquinas presentan al exterior una misma interfaz (determinada por el BIOS). La filosofía de diseño que utilizaron los diseñadores de IBM fue, en palabras de "Deje que el BIOS lo haga, no se enrede con el control directo". Cuando un programa necesita determinados recursos del hardware (lo que en último término viene a ser una entrada/salida), la BIOS representa una forma unificada de hacerlo, le pide a la BIOS el “servicio” de una forma estandarizada, de ahí el nombre: Sistema básico de Entradas/Salidas. En este sentido, el sistema de Entradas/Salidas del PC es un dispositivo virtual; se le interroga de una forma estándar y él se encarga de los detalles sucios del hardware. Cuando se extiende este concepto, incluyendo no solo el sistema básico de E/S sino al procesador, se llega de forma natural a la máquina virtual de Java. Aunque existen diversas versiones y fabricantes (la propia historia de la BIOS es muy interesante), su comportamiento externo está estandarizado. La BIOS es en realidad una caja negra, no importa como lo hace internamente, lo importante es que al preguntarle de una forma estandarizada produce el resultado deseado (aquí se llaman "Servicios"). Se han introducido pocos o ningún cambio básico desde su aparición con el primer PC, todas las mejoras del software se han aplicado a un nivel superior a esta capa básica, lo que ha hecho posible entre otras cosas cambiar a de Sistema Operativo DOS, Windows o Linux (por ejemplo) sin necesidad de cambiar las BIOSes. ATC-Universidad de Sevilla 9 Informática Industrial Máquinas de propósito general usadas en sistemas empotrados 1.3.9. Ejecución de programas desde ROM La ejecución de programas desde ROM se convierte en una necesidad en el momento en el que el uso de sistemas mecánicos como son los discos duros no es posible, debido al las condiciones ambientales (tales como vibraciones) o requerimientos de la aplicación (tales como espacio, consumo, etc), o para aumentar la fiabilidad, ya unos de los mayores problemas que presentan los disco duro es su alta tasa de fallos, ante anomalías en el suministros eléctrico. Para llevar a cabo la labor de almacenar el software que el sistemas debe ejecutar en un sistema ROM. Tenemos dos alternativas: La primera de ellas, la más antigua en desuso consiste en usar el sistemas de arranque del PC. Tal y como hemos visto en la fase de POST del arranque el sistema BIOS busca desde la posición de memoria C80000 a la F0000 si algún dispositivo necesita ejecutar código para terminar de realizar la inicialización del mismo. Para saber si en una determinada posición de memoria existen un código que deba ser usar el BIOS busca la secuencia 0x55 0xAA, en el caso de que encuentre dicha secuencia ejecuta las instrucciones que vengan a continuación. El truco esta en usar este mecanismo para introducir en un ROM nuestro programa y en el momento el BIOS encuentre la secuencia antes indicada, ejecutara nuestro software, si diseñamos el software para que nunca se devuelva e control al BIOS, el procesador ejecutara continuamente nuestro código. El inconveniente de este sistema es que solo sirve para software muy sencillo, que no necesiten el uso de otros dispositivos ni de los servicios de sistema operativos. La opción que actualmente se utiliza es conectar a un IDE un sistema basado en ROM FLASH, este tipo de memorias conectadas a la controladora IDE se comporta igual que un disco duro, es decir, tiene una tabla de particiones, y un sistema de ficheros. Si en esa FLASH ROM se graba previamente un sistema operativo, el BIOS una vez haya terminado de realizar la inicialización de sistema, carga desde esa ROM el S.O., creyendo que lo que esta leyendo es un disco duro. Este forma de hacer la ejecución d programas es la mas usada hoy en día y permite tener un sistema completo, con todos los servicios activos. 1.4. Buses específicos para PCs industriales 1.4.1. CompactPCI (PCI industrial) a) PCI para computadoras industriales Se trata del bus PCI adaptado a aplicaciones embebidas y/o industriales. Es compatible electrónicamente con PCI y cuenta con componentes mecanicos y tecnologias de conexion de estándar industrial. CompactPCI es una especificación abierta mantenida por la PICMG (PCI Industrial Computer Manufacturers Group), una asociación de fabricantes de equipos de computo para aplicaciones industriales, fue fundada en 1994 y actualmente continua creando especificaciones abiertas que complementen la arquitectura CompactPCI. ATC-Universidad de Sevilla 10 Informática Industrial Máquinas de propósito general usadas en sistemas empotrados Sistema cPCI 3u 8 slots b) Factor de forma cPCI fue diseñado bajo el concepto de backplane pasivo. Las tarjetas cPCI están basadas en el estándar industrial eurocard, en tamaños de 3U y 6U. El 3U es el tamaño mínimo para cPCI y tiene lo necesario para acomodarse al bus cPCI de 64 bits. La extensión 6U se define para cuando se requiera mas espacio en la placa o se necesiten mas espacio para conexiones. El diseño del conector es una de las características más importantes de esta arquitectura, se numeran J1 – J5 comenzando desde el conector de mas abajo. La especificación define la localización para todos estos conectores pero la asignación de señal de los pines solo para J1 y J2. Su función es la de fijar con firmeza la tarjeta en su base y habilitar la conexión de alimentación de energía, el sistema de tierras y conducir todas las señales PCI de 32 y 64 bits. El diseño del conector también permite que se pueda utilizar componentes cPCI en ambientes con grandes interferencias electromagnéticas Backplanes cPCI Las tarjetas cuentan con un frente de plata como interfaz y manillares para insertar / extraer las tarjetas (1 en 3U y 2 en 6U). Estas tarjetas se conectan al backplane cPCI desde el frente del chasis por medio de conectores basados en un mecanismo de interconexión pin y socket. Esta conexión se hace en posición vertical, lo que facilita la circulación de aire, y de esta manera, una disipación de calor más eficiente. Los conectores de las tarjetas son muy robustos y con un numero de pins suficiente para que la unión de la tarjeta con el backplane quede muy apretada y se eviten falsos contactos cuando el sistema se encuentre sujeto a vibraciones. ATC-Universidad de Sevilla 11 Informática Industrial Tarjeta CPU cPCI 6u Máquinas de propósito general usadas en sistemas empotrados Tarjeta CPU cPCI 3u c) Sistemas Un sistema cPCI esta compuesto de uno o mas segmentos de bus. Cada segmento esta compuesto de hasta 8 slots para placas cPCI, cada segmento consta de un System Slot y hasta 7 Peripheral Slots. El system slot provee arbitraje, distribución de la señal de reloj y funciones de reseteo para todas las placas en el segmento (peripherals). d) Implicaciones del software en cPCI CPCI se basa en la arquitectura PCI, desarrollada por INTEL, ha sido desarrollada para simplificar la integración del software en un dispositivo. Por ejemplo, todos los dispositivos PCI o cPCI tienen un conjunto de 256 registros que contienen información de la identidad del dispositivo, así como una gran cantidad de parámetros para la programación vía software, como mapas de direcciones, o tipos y niveles de interrupciones. Por esto, la CPU del sistema puede automáticamente detectar e identificar un dispositivo en el bus y configurarlo sin la necesidad de jumpers. PCI es un elemento clave en el concepto “Plug and Play”. CompactPCI es realmente un bus a nivel de sistema, con configuración (plug and play) y capas de abstracción de hardware. Esto permite un alto nivel de portabilidad de software, cosa común en las PC de escritorio, pero no tanto en sistemas embebidos. CPCI permite la funcionalidad “Hot Swap”, que hace posible el intercambio de las tarjetas con el sistema energizado, sin alterar el funcionamiento del mismo. Esto permite mantener los equipos de misión critica funcionando en caso de que alguna tarjeta falle y deba ser reemplazada. Computadoras cPCI pueden correr todos los sistemas operativos portados a un PC (Windows, VxWorks, OS/2, Linux, etc) La performance de cPCI esta particularmente diseñada para aplicaciones en tiempo real. ATC-Universidad de Sevilla 12 Informática Industrial Máquinas de propósito general usadas en sistemas empotrados Para terminar, cabe señalar que la arquitectura CompactPCI se mantiene a la vanguardia de los avances introducidos al mercado de las computadoras, tanto en capacidad y rendimiento de los procesadores, como en la confiabilidad de los dispositivos de almacenamiento e interfaces para periféricos. 1.4.2. PC 104 Desde que la arquitectura PC se ha extendido tanto para unos sobremesa como en el mundo de las aplicaciones industriales, el uso para sistemas empotrados has estado limitada debido al tamaño de las placa base de los sistemas compatibles PC y sus tarjetas de expansión. El Bus PC 104 propone unas especificaciones compactas de las especificaciones ISA, optimizadas para los requerimientos de los sistemas empotrados. El nombre se debe al número de pines con los que cuenta el bus (p1 con 64 pines y p2 con 40 pines). Los requerimientos que el PC 104 satisface son: Reducción del tamaño de las placas (90 by 96 mm) Eliminación de los backplanes, sustituidos por un bus auto-apilable. Minimizando el número de componentes, el consumo de energía (1-2 Watios por modulo). Existen dos estándares uno de 8 y otro de 16 bits, que corresponden con los estándares PC y PC/AT. a) Especificaciones mecánicas Cada uno de estos dos tipos de bus puede utilizar a su vez el conector p1 de 64 pines o la versión extendida con p2 de 40 pines. (ver figura) Conectores PC 104 En un mismo sistema se puede optar por el uso de ambos tipos de conexión, lo único que hay que tener en cuenta es el orden en el que se colocan los módulos, debiendo esta en la base los módulos que usan el P1 solamente y en la cima los que usan el extendido tal y como se muestra en la figura. ATC-Universidad de Sevilla 13 Informática Industrial Máquinas de propósito general usadas en sistemas empotrados Pila de módulos típica. b) Especificaciones Eléctricas En la definición de bus existen unas líneas dedicadas para la alimentación, para relojes, para el control del bus, para las interrupciones etc. En el estándar se defines los requerimientos de potencia de los módulos, definiendo claramente los rangos máximos de trabajo de cada modulo, los cuales no se deben sobrepasar. El consumo total de toda la pila PC 104 es la suma de los consumos de cada unos de los módulos. La siguiente tabla resume dichos rangos. Tabla de consumos de los módulos PC 104 ******************************** TRANSPARENCIAS ********************************* ATC-Universidad de Sevilla 14