Download Electrónica de Computadoras
Document related concepts
no text concepts found
Transcript
SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO INDUSTRIAL ELECTROTECNIA FASCÍCULO DE APRENDIZAJE ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CÓDIGO: 89001521 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ÍNDICE Contenido: Capítulo 1: La Computadora ................................................................... 9 Introducción, Clasificación, Evolución…………………………………………………..10 Información Digital .................................................................................................. 21 Configuración del Computador ............................................................................... 24 Principales Componentes de una PC ..................................................................... 25 Consejos generales para desarmar una PC ........................................................... 30 Herramientas Básicas para desarmar una PC ....................................................... 32 Capítulo 2: Case y Fuente de Alimentación de una PC ...................... 37 Case y fuente de alimentación de una PC.............................................................. 38 Descripción de una fuente para PC ........................................................................ 40 Conexiones ............................................................................................................. 45 Capítulo 3: La Mainboard de una PC .................................................... 52 La Mainboard de una PC ........................................................................................ 53 Factor de forma de las placas Base ....................................................................... 53 Tecnología de la placa Base ................................................................................... 57 Elementos de la Mainboard .................................................................................... 59 CPU: Evolución y estructura básica ........................................................................ 66 Slots y memorias de Mainboard para PC ............................................................... 88 Memorias utilizadas en las computadoras ............................................................ 112 Capítulo 4: Periféricos de INPUT de una PC ...................................... 123 Teclado de una PC ............................................................................................... 124 Tipos de teclado .................................................................................................... 127 Características del teclado de una PC .................................................................. 130 Mouse de una PC ................................................................................................. 131 Funcionamiento ..................................................................................................... 132 Tipos de Mouse ..................................................................................................... 133 Características del mouse de una PC .................................................................. 135 Capítulo 5: Periféricos IN/OUT de una PC .......................................... 136 Unidades de disco flexible o Disqueteras ............................................................. 137 Modo de Operación del floppy Drive ..................................................................... 137 Descripción de una lectora de floppy .................................................................... 138 Disco duro o fijo (Hard Disk) ................................................................................. 142 ELECTROTECNIA 5 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Estructura física del Disco duro ............................................................................ 144 Funcionamiento del Disco duro ............................................................................ 147 Extructura lógica de un Disco duro ....................................................................... 150 Instalación física del Disco Duro, Formato, Particiones ....................................... 159 Fax - Modem ......................................................................................................... 164 Tipos de Módems y Características ...................................................................... 164 Capítulo 6: Perféricos de OUT de una PC .......................................... 169 Monitor .................................................................................................................. 170 Clasificación de los Monitores............................................................................... 170 Parámetros del Monitor ......................................................................................... 174 Descripción de un Monitor .................................................................................... 177 Criterios para seleccionar monitores .................................................................... 181 Tarjeta adaptadora de Video................................................................................. 183 Componentes de la adaptadora de Video ............................................................ 184 Impresoras ............................................................................................................ 192 Tipos de Impresora ............................................................................................... 193 Características de la Impresora ............................................................................ 195 Capítulo 7: Multimedia para una PC ................................................... 206 Multimedia ............................................................................................................. 207 Lectora de CD ....................................................................................................... 208 Características de la lectora.................................................................................. 211 Estructura del Disco .............................................................................................. 212 Cámara Digital ...................................................................................................... 213 Tarjeta de Sonido .................................................................................................. 214 Capítulo 8: Comunicaciones - Redes ................................................. 219 Redes Informaticas, Introducción ......................................................................... 220 Concepto de Redes .............................................................................................. 221 Conmutacón de Circuitos Vs Conmutación de Paquetes ..................................... 222 Tipos de Redes ..................................................................................................... 224 Topología en las redes LAN.................................................................................. 226 Protocolos de Redes ............................................................................................. 229 Dispositivos de Redes ........................................................................................... 230 Protocolo de comunicación ................................................................................... 234 Cables para LAN ................................................................................................... 242 Normas para el cableado ...................................................................................... 253 Comunicaciones Inalámbricas .............................................................................. 259 ELECTROTECNIA 6 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Capítulo 9: Dispositivos USB .............................................................. 265 Memoria USB ........................................................................................................ 266 Historia de la memoria USB .................................................................................. 267 Fortalezas y debilidades de la memoria USB ....................................................... 271 Componentes de la memoria USB ....................................................................... 273 Tecnologías relacionadas: USB 3.0 ...................................................................... 275 Disco Duro portátil ................................................................................................. 276 Características del Disco Duro portátil .................................................................. 277 Funciones Añadidas .............................................................................................. 277 Capítulo 10: Configuración e Instalación de Software en una PC ... 279 Instalación física de los dispositivos en el CASE.................................................. 280 Configuración lógica CMOS BIOS SETUP ........................................................... 285 Preparación del Disco Duro .................................................................................. 301 Historia de los sistemas operativos de Microsoft .................................................. 309 Requisitos mínimos para la instalación del sistema operativo ............................. 312 Instalación de Sistema Operativo ......................................................................... 313 Drivers ................................................................................................................... 319 Instalación de Software Aplicativo ........................................................................ 322 Capítulo 11: Mantenimiento y Diagnóstico de Averias en una PC ... 327 Mantenimiento preventivo a los dispositivos ......................................................... 328 Diagnóstico de Averias en la PC .......................................................................... 334 BIBLIOGRAFÍA ..................................................................................... 340 ELECTROTECNIA 7 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ELECTROTECNIA 8 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CAPÍTULO 1 1 LA COMPUTADORA. En este capítulo se tratará: Introducción, Clasificación, evolución. Información Digital. Configuración del Computador. Principales componentes de una PC. Consejos generales para desarmar una PC. Herramientas Básicas para desarmar una PC. ELECTROTECNIA 9 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I LA COMPUTADORA. INTRODUCCIÓN, CLASIFICACIÓN Y EVOLUCIÓN. Introducción. Una computadora es un dispositivo electrónico utilizado para procesar información y obtener resultados. Los datos y la información se pueden introducir en la computadora como entrada (input) y a continuación se procesan para producir una salida (output). Los componentes físicos que constituyen la computadora, junto con los dispositivos que realizan las tareas de entrada y salida, se conocen con el término hardware (traducido en ocasiones por material). El conjunto de instrucciones que hacen funcionar a la computadora se denomina programa; a la persona que escribe programas se llama programador y al conjunto de programas escritos para una computadora se llama software (traducido en ocasiones por lógica). Clasificación. Análoga: Trabaja con variables que son medidas a lo largo de una escala continua y que son almacenadas con cierto grado de veracidad, por ejemplo la temperatura de un paciente, el tacómetro del auto, etc. No computan directamente con números. Son usadas mayormente en el control de procesos. Digital: Es un aparato de cómputo que opera con data discreta. La data se puede obtener como resultado de un contador, por ejemplo, el número de estudiantes, etc. Opera directamente con cómputo de números o dígitos que representan letras, números y símbolos especiales. Híbridos: Es una combinación de digital y análogo. De uso general: Son aquellas que pueden almacenar diferentes tipos de programas y pueden ser usadas en diferentes aplicaciones. La versatilidad de estos sistemas solo e limitada por la imaginación humana (idealmente). De uso especial: Está diseñada para trabajar un problema específico. Las instrucciones del programa son almacenadas permanentemente en la máquina. Trabajan el problema con rapidez y eficiencia, por ejemplo, sistema de ignición o de gasolina de autos, las utilizadas en la navegación, etc. Evolución: Uno de los primeros dispositivos mecánicos para contar fue el ábaco, cuya historia se remonta a las antiguas civilizaciones griega y romana. Este dispositivo ELECTROTECNIA 10 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I es muy sencillo, consta de cuentas ensartadas en varillas que a su vez están montadas en un marco rectangular. Al desplazar las cuentas sobre varillas, sus posiciones representan valores almacenados, y es mediante dichas posiciones que este representa y almacena datos. A este dispositivo no se le puede llamar computadora por carecer del elemento fundamental llamado programa. Otro de los inventos mecánicos fue la Pascalina inventada por Blaise Pascal (1623 - 1662) de Francia y la de Gottfried Wilhelm von Leibniz (1646 - 1716) de Alemania. Con estas máquinas, los datos se representaban mediante las posiciones de los engranajes, y los datos se introducían manualmente estableciendo dichas posiciones finales de las ruedas, de manera similar a como leemos los números en el cuentakilómetros de un automóvil. La primera computadora fue la máquina analítica creada por Charles Babbage, profesor matemático de la Universidad de Cambridge en el siglo XIX. La idea que tuvo Charles Babbage sobre un computador nació debido a que la elaboración de las tablas matemáticas era un proceso tedioso y propenso a errores. En 1823 el gobierno Británico lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico para efectuar sumas repetidas. Máquina analítica de Babbage Mientras tanto Charles Jacquard (francés), fabricante de tejidos, había creado un telar que podía reproducir automáticamente patrones de tejidos leyendo la información codificada en patrones de agujeros perforados en tarjetas de papel rígido. Al enterarse de este método Babbage abandonó la máquina de diferencias y se dedico al proyecto de la máquina analítica que se pudiera programar con tarjetas perforadas para efectuar cualquier cálculo con una ELECTROTECNIA 11 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I precisión de 20 dígitos. La tecnología de la época no bastaba para hacer realidad sus ideas. El mundo no estaba listo, y no lo estaría por cien años más. En 1944 se construyó en la Universidad de Harvard, la Mark I, diseñada por un equipo encabezado por Howard H. Aiken. Esta máquina no está considerada como computadora electrónica debido a que no era de propósito general y su funcionamiento estaba basado en dispositivos electromecánicos llamados relevadores. En 1947 se construyó en la Universidad de Pennsylvania la ENIAC (Electronic Numerical Integrator And Calculator) que fue la primera computadora electrónica, el equipo de diseño lo encabezaron los ingenieros John Mauchly y John Eckert. Esta máquina ocupaba todo un sótano de la Universidad, tenía más de 18 000 tubos de vacío, consumía 200 KW de energía eléctrica y requería todo un sistema de aire acondicionado, pero tenía la capacidad de realizar cinco mil operaciones aritméticas en un segundo. ENIAC (Univ de Pennsylvania) El proyecto, auspiciado por el departamento de Defensa de los Estados Unidos, culminó dos años después, cuando se integró a ese equipo el ingeniero y matemático húngaro John von Neumann (1903 - 1957). Las ideas de von Neumann resultaron tan fundamentales para su desarrollo posterior, que es considerado el padre de las computadoras. ELECTROTECNIA 12 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I La EDVAC (Electronic Discrete Variable Automatic Computer) fue diseñada por este nuevo equipo. Tenía aproximadamente cuatro mil bulbos y usaba un tipo de memoria basado en tubos llenos de mercurio por donde circulaban señales eléctricas sujetas a retardos. La idea fundamental de Von Neumann fue: permitir que en la memoria coexistan datos con instrucciones, para que entonces la computadora pueda ser programada en un lenguaje, y no por medio de alambres que eléctricamente interconectaban varias secciones de control, como en la ENIAC. Todo este desarrollo de las computadoras suele divisarse por generaciones y el criterio que se determinó para determinar el cambio de generación no está muy bien definido, pero resulta aparente que deben cumplirse al menos los siguientes requisitos: • La forma en que están construidas. • Forma en que el ser humano se comunica con ellas. Primera Generación. En esta generación había un gran desconocimiento de las capacidades de las computadoras, puesto que se realizó un estudio en esta época que determinó que con veinte computadoras se saturaría el mercado de los Estados Unidos en el campo de procesamiento de datos. Esta generación abarco la década de los cincuenta. Y se conoce como la primera generación. Estas máquinas tenían las siguientes características: • Estas máquinas estaban construidas por medio de tubos de vacío. • Eran programadas en lenguaje de máquina. En esta generación las máquinas son grandes y costosas (de un costo aproximado de ciento de miles de dólares). En 1951 aparece la UNIVAC (NIVersAl Computer), fue la primera computadora comercial, que disponía de mil palabras de memoria central y podían leer cintas magnéticas, se utilizó para procesar el censo de 1950 en los Estados Unidos. ELECTROTECNIA 13 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Computadora UNIVAC I En las dos primeras generaciones, las unidades de entrada utilizaban tarjetas perforadas, retomadas por Herman Hollerith (1860 - 1929), quien además fundó una compañía que con el paso del tiempo se conocería como IBM (International Bussines Machines). Después se desarrolló por IBM la IBM 701 de la cual se entregaron 18 unidades entre 1953 y 1957. Posteriormente, la compañía Remington Rand fabricó el modelo 1103, que competía con la 701 en el campo científico, por lo que la IBM desarrollo la 702, la cual presentó problemas en memoria, debido a esto no duró en el mercado. La computadora más exitosa de la primera generación fue la IBM 650, de la cual se produjeron varios cientos. Esta computadora que usaba un esquema de memoria secundaria llamado tambor magnético, que es el antecesor de los discos actuales. Otros modelos de computadora que se pueden situar en los inicios de la segunda generación son: la UNIVAC 80 y 90, las IBM 704 y 709, Burroughs 220 y UNIVAC 1105. ELECTROTECNIA 14 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Burroughs 220 Segunda Generación. Cerca de la década de 1960, las computadoras seguían evolucionando, se reducía su tamaño y crecía su capacidad de procesamiento. También en esta época se empezó a definir la forma de comunicarse con las computadoras, que recibía el nombre de programación de sistemas. Las características de la segunda generación son las siguientes: • Están construidas con circuitos de transistores. • Se programan en nuevos lenguajes llamados lenguajes de alto nivel. En esta generación las computadoras se reducen de tamaño y son de menor costo. Aparecen muchas compañías y las computadoras eran bastante avanzadas para su época como la serie 5000 de Burroughs y la ATLAS de la Universidad de Manchester. Algunas de estas computadoras se programaban con cintas perforadas y otras más por medio de cableado en un tablero. Los programas eran hechos a la medida por un equipo de expertos: analistas, diseñadores, programadores y operadores que se manejaban como una orquesta para resolver los problemas y cálculos solicitados por la administración. El usuario final de la información no tenía contacto directo con las computadoras. Esta situación en un principio se produjo en las primeras computadoras personales, pues se requería saberlas "programar" (alimentarle instrucciones) para obtener resultados; por lo tanto su uso estaba limitado a aquellos audaces pioneros que gustaran de pasar un buen número de horas escribiendo instrucciones, "corriendo" el programa resultante y verificando y corrigiendo los errores o bugs que aparecieran. ELECTROTECNIA 15 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Además, para no perder el "programa" resultante había que "guardarlo" (almacenarlo) en una grabadora de astte, pues en esa época no había discos flexibles y mucho menos discos duros para las PC; este procedimiento podía tomar de 10 a 45 minutos, según el programa. El panorama se modificó totalmente con la aparición de las computadoras personales con mejore circuitos, más memoria, unidades de disco flexible y sobre todo con la aparición de programas de aplicación general en donde el usuario compra el programa y se pone a trabajar. Aparecen los programas procesadores de palabras como el célebre Word Star, la impresionante hoja de cálculo (spreadsheet) Visicalc y otros más que de la noche a la mañana cambian la imagen de la PC. El sortware empieza a tratar de alcanzar el paso del hardware. Pero aquí aparece un nuevo elemento: el usuario. El usuario de las computadoras va cambiando y evolucionando con el tiempo. De estar totalmente desconectado a ellas en las máquinas grandes pasa la PC a ser pieza clave en el diseño tanto del hardware como del software. Aparece el concepto de human interface que es la relación entre el usuario y su computadora. Se habla entonces de hardware ergonómico (adaptado a las dimensiones humanas para reducir el cansancio), diseños de pantallas antirreflejos y teclados que descansen la muñeca. Con respecto al software se inicia una verdadera carrera para encontrar la manera en que el usuario pase menos tiempo capacitándose y entrenándose y más tiempo produciendo. Se ponen al alcance programas con menús (listas de opciones) que orientan en todo momento al usuario (con el consiguiente aburrimiento de los usuarios expertos); otros programas ofrecen toda una artillería de teclas de control y teclas de funciones (atajos) para efectuar toda suerte de efectos en el trabajo (con la consiguiente desorientación de los usuarios novatos). Se ofrecen un sinnúmero de cursos prometiendo que en pocas semanas hacen de cualquier persona un experto en los programas comerciales. Pero el problema "constante" es que ninguna solución para el uso de los programas es "constante". Cada nuevo programa requiere aprender nuevos controles, nuevos trucos, nuevos menús. Se empieza a sentir que la relación usuario-PC no está acorde con los desarrollos del equipo y de la potencia de los programas. Hace falta una relación amistosa entre el usuario y la PC. Las computadoras de esta generación fueron: la Philco 212 (esta compañía se retiró del mercado en 1964) y la UNIVAC M460, la Control Data Corporation modelo 1604, seguida por la serie 3000, la IBM mejoró la 709 y sacó al mercado la 7090, la National Cash Register empezó a producir máquinas para proceso de datos de tipo comercial, introdujo el modelo NCR 315. ELECTROTECNIA 16 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I La Radio Corporation of America introdujo el modelo 501, que manejaba el lenguaje COBOL, para procesos administrativos y comerciales. Después salió al mercado la RCA 601. Tercera generación. Con los progresos de la electrónica y los avances de comunicación con las computadoras en la década de los 1960, surge la tercera generación de las computadoras. Se inaugura con la IBM 360 en abril de 1964. Las características de esta generación fueron las siguientes: • Su fabricación electrónica esta basada en circuitos integrados. • Su manejo es por medio de los lenguajes de control de los sistemas operativos. La IBM produce la serie 360 con los modelos 20, 22, 30, 40, 50, 65, 67, 75, 85, 90, 195 que utilizaban técnicas especiales del procesador, unidades de cinta de nueve canales, paquetes de discos magnéticos y otras características que ahora son estándares (no todos los modelos usaban estas técnicas, sino que estaba dividido por aplicaciones). El sistema operativo de la serie 360, se llamó OS que contaba con varias configuraciones, incluía un conjunto de técnicas de manejo de memoria y del procesador que pronto se convirtieron en estándares. En 1964 CDC introdujo la serie 6000 con la computadora 6600 que se consideró durante algunos años como la más rápida. ELECTROTECNIA 17 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I En la década de 1970, la IBM produce la serie 370 (modelos 115, 125, 135, 145, 158, 168). UNIVAC compite son los modelos 1108 y 1110, máquinas en gran escala; mientras que CDC produce su serie 7000 con el modelo 7600. Estas computadoras se caracterizan por ser muy potentes y veloces. A finales de esta década la IBM de su serie 370 produce los modelos 3031, 3033, 4341. Burroughs con su serie 6000 produce los modelos 6500 y 6700 de avanzado diseño, que se reemplazaron por su serie 7000. Honey - Well participa con su computadora DPS con varios modelos. A mediados de la década de 1970, aparecen en el mercado las computadoras de tamaño mediano, o minicomputadoras que no son tan costosas como las grandes (llamadas también como mainframes que significa también, gran sistema), pero disponen de gran capacidad de procesamiento. Algunas minicomputadoras fueron las siguientes: la PDP - 8 y la PDP - 11 de Digital Equipment Corporation, la VAX (Virtual Address eXtended) de la misma compañía, los modelos NOVA y ECLIPSE de Data General, la serie 3000 y 9000 de Hewlett - Packard con varios modelos el 36 y el 34, la Wang y Honey Well -Bull, Siemens de origen alemán, la ICL fabricada en Inglaterra. En la Unión Soviética se utilizó la US (Sistema Unificado, Ryad) que ha pasado por varias generaciones. Cuarta Generación. Aquí aparecen los microprocesadores que es un gran adelanto de la microelectrónica, son circuitos integrados de alta densidad y con una velocidad impresionante. Las microcomputadoras con base en estos circuitos son ELECTROTECNIA 18 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I extremadamente pequeñas y baratas, por lo que su uso se extiende al mercado industrial. Aquí nacen las computadoras personales que han adquirido proporciones enormes y que han influido en la sociedad en general sobre la llamada "revolución informática". CHIP INTEL 4004 En 1976 Steve Wozniak y Steve Jobs inventan la primera microcomputadora de uso masivo y más tarde forman la compañía conocida como la Apple que fue la segunda compañía más grande del mundo, antecedida tan solo por IBM; y esta por su parte es aún de las cinco compañías más grandes del mundo. En 1981 se vendieron 800 00 computadoras personales, al siguiente subió a 1 400 000. Entre 1984 y 1987 se vendieron alrededor de 60 millones de computadoras personales, por lo que no queda duda que su impacto y penetración han sido enormes. Con el surgimiento de las computadoras personales, el software y los sistemas que con ellas de manejan han tenido un considerable avance, porque han hecho más interactiva la comunicación con el usuario. Surgen otras aplicaciones como los procesadores de palabra, las hojas electrónicas de cálculo, paquetes gráficos, etc. También las industrias del Software de las computadoras personales crece con gran rapidez, Gary Kildall y William Gates se dedicaron durante años a la creación de sistemas operativos y métodos para lograr una utilización sencilla de las microcomputadoras (son los creadores de CP/M y de los productos de Microsoft). No todo son microcomputadoras, por su puesto, las minicomputadoras y los grandes sistemas continúan en desarrollo. De hecho las máquinas pequeñas rebasaban por mucho la capacidad de los grandes sistemas de 10 o 15 años antes, que requerían de instalaciones costosas y especiales, pero sería ELECTROTECNIA 19 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I equivocado suponer que las grandes computadoras han desaparecido; por el contrario, su presencia era ya ineludible en prácticamente todas las esferas de control gubernamental, militar y de la gran industria. Las enormes computadoras de las series CDC, CRAY, Hitachi o IBM por ejemplo, eran capaces de atender a varios cientos de millones de operaciones por segundo. Algunos modelos Quinta Generación hacia adelante. En vista de la acelerada marcha de la microelectrónica, la sociedad industrial se ha dado a la tarea de poner también a esa altura el desarrollo del software y los sistemas con que se manejan las computadoras. Surge la competencia internacional por el dominio del mercado de la computación, en la que se perfilan dos líderes que, sin embargo, no han podido alcanzar el nivel que se desea: la capacidad de comunicarse con la computadora en un lenguaje más cotidiano y no a través de códigos o lenguajes de control especializados. Japón lanzó en 1983 el llamado "programa de la quinta generación de computadoras", con los objetivos explícitos de producir máquinas con innovaciones reales en los criterios mencionados. Y en los Estados Unidos ya ELECTROTECNIA 20 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I está en actividad un programa en desarrollo que persigue objetivos semejantes, que pueden resumirse de la siguiente manera: • Procesamiento en paralelo mediante arquitecturas y diseños especiales y circuitos de gran velocidad. • Manejo de lenguaje natural y sistemas de inteligencia artificial. MODELO DE VON NEUMANN. Las computadoras digitales actuales se ajustan al modelo propuesto por el matemático John Von Neumann. De acuerdo con el, una característica importante de este modelo es que tanto los datos como los programas, se almacenan en la memoria antes de ser utilizados. Modelos de computadoras evolutivas INFORMACIÓN DIGITAL. La información es el conjunto de datos procesados o por procesar del tipo físico y lógico. Dato. Se define como los valores físicos verdaderos. Otra definición es como los valores lógicos, los cuales son representados por objetos. Datos físicos: • Medición de temperatura. • Medición de pesos. • Medida de velocidad Datos lógicos: • Simples. • Estructurados. • Definidos por el usuario. ELECTROTECNIA 21 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I La información para ser procesada necesita de la tecnología electrónica, por ejemplo del uso de computadoras, impresoras, escáner, amplificadores, grabadoras, etc. Por tanto es importante que la información sea convertida en señal eléctrica. Señal Eléctrica. Son impulsos eléctricos inteligentes o portadoras de señal eléctrica inteligente. Las computadoras utilizan las señales eléctricas digitales, las cuales son interpretados por medio de códigos del tipo binario – hexadecimal, por ejemplo el uso del código ASCII, BCD, BCN y otros. Un computador utiliza tres sistemas de numeración durante el proceso de datos, los cuales son: • Sistema de numeración binaria. • Sistema de numeración decimal. • Sistema de numeración hexadecimal. ELECTROTECNIA 22 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Sistema de numeración binaria. El sistema de numeración binario es tomado como un sistema de numeración referencial porque se utiliza para el proceso de la información digital. Utiliza solamente dos dígitos binarios, los cuales se denominan BIT, estos números son 0, 1 Ejemplo: Dato Binario: 100011101011000011110101010 La información binaria que muestra el ejemplo no es interpretada fácilmente por el usuario, por eso que se utilizan las palabras digitales que se denominan Byte y Word. Byte. Es una palabra digital que contiene siempre 8 bits, se utiliza en las unidades de almacenamiento de información, por ejemplo los discos duros, memorias RAM, ROM, etc. Ejemplo: dato (Byte) = 11001101 Es importante indicar que la unidad de medida en las memorias o disco duro es en Kilo Byte (KB), pero por razones de facilidad de uso se utilizan unidades mayores, por ejemplo indicaremos las respectivas equivalencias: • 1KB = 1024Bytes • 1MB = 1024KBytes • 1GB = 1024MBytes • 1TB = 1024GBytes • 1Penta Cinco = 1024TBytes Word. Es una palabra digital compuesta por 16 bits, utilizada como información digital de proceso en el sistema CPU. Ejemplo: dato (Word) = 1001111000101101 En la práctica no se utiliza el Word como unidad de proceso, más bien se nomina como numero de bits: 16bits, 32bits y 64bits. ELECTROTECNIA 23 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Sistema de numeración Decimal. Es el sistema de numeración utilizado por el usuario para introducir datos y realizar el proceso de la información. Este sistema de numeración contiene diez dígitos decimales: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Sistema de numeración hexadecimal. Es el sistema de numeración utilizado para la representación de los datos, instrucciones, direcciones de memoria e información de error emitidos por el Sistema Básico de Entrada y Salida (BIOS). Este sistema de numeración contiene 16 dígitos hexadecimales: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. CONFIGURACIÓN DEL COMPUTADOR. El computador es la máquina electrónica digital más importante de la computación e informática. Técnicamente esta compuesto por cuatro partes importantes que permite realizar todos los cálculos y procesos encargados. a) Fuente de voltaje conmutada. Es la fuente de energía eléctrica de voltaje en corriente continua (voltaje polarizado), encargado de energizar al sistema de proceso y las interfases. b) Sistema de Proceso. Es la encarada de realizar los diversos procesos en el computador, tiene dos unidades importantes: Unidad Procesadora (CPU) y la Unidad de Memoria Principal (RAM Dinámica). c) Interfases de entrada. Es el circuito electrónico digital que tiene la función de adaptar dos sistemas en proceso, por ejemplo el sistema encargado de ELECTROTECNIA 24 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I introducir los datos (periférico de entrada) y el Sistema CPU, ambos tiene que dialogar y realizar el paso de la información codificada para ser procesada por el Sistema CPU. d) Periféricos de entrada. Es un equipo de cómputo que permite introducir datos para realizar procesos y/o complementar otros procesos. e) Interfase de Salida. Es el encargado adaptar el sistema de proceso y el periférico de salida de datos, por ejemplo el Sistema CPU termina de procesar un determinado programa de aplicación y tiene mostrar al usuario, en un monitor o imprimirla en un papel, entonces la interfase realiza dicha adaptación al monitor y a la impresora que son los periféricos de salida. f) Periférico de Salida. Es el equipo de cómputo que permite mostrar al usuario los procesos terminados en pantalla (periférico monitor) o impresos en un papel (periférico impresora). Por ejemplo en el diagrama en bloques mostrado nos indica al periférico de entrada como el teclado y el periférico de salida al disco duro, por tanto las interfases son: la de entrada es un chip controlador que esta contenido dentro del Súper Chip, mientras que la interfase de salida es la controladora IDE. PRINCIPALES COMPONENTES DE UNA PC. PLACA MADRE. La motherboard es, probablemente, la parte más importante de una computadora. Maneja todas las transferencias de datos entre la CPU y los periféricos. Alberga la CPU, la caché de segundo nivel, el chipset, el BIOS, la memoria principal, los chips de entrada/salida, los controladoras de discos y las tarjetas de expansión. ELECTROTECNIA 25 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I La primera decisión a realizar antes de comprar un motherboard es qué CPU y qué chipset se usará. Lo siguiente es elegir un fabricante. Un motherboard de marca es siempre preferible a aquellos ofrecidos como “genéricos”, ya que se trata de una parte muy compleja y siempre es bueno contar con algún tipo de soporte. Placa Madre ELECTROTECNIA 26 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I MICROPROCESADOR. También denominado CPU (Unidad Central de Procesamiento). Es un circuito semiconductor formado por puertas que permiten o cierran el paso, de forma lógica, a una serie de señales eléctricas. Está compuesto por la unidad de control, la unidad aritmética lógica y un grupo de registros. Posee un alto grado de integración, siendo capaz de ejecutar alegóricamente una serie de instrucciones. Es un dispositivo inteligente que captura datos, los procesa y emite resultados, también los almacena. Se puede considerar el cerebro del computador. Es un circuito integrado que ejecuta instrucciones. Su velocidad se mide en MegaHertz (MHz). MEMORIA. Es aquella que debe contener necesariamente todas las instrucciones y datos que se requieren para la realización de un proceso. En caso de que toda la cantidad de instrucciones o datos necesarios no puedan almacenarse íntegramente en la memoria principal, entonces deberán cargarse hacia ella por etapas, pero en todo caso, los procesos se realizaran en base al contenido actual de la memoria principal. La presentación puede ser como ROM, RAM, CMOS, CACHE. ELECTROTECNIA 27 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I PUERTOS DE COMUNICACIÓN. PUERTO SERIAL. • Los puertos seriales se caracterizan por transmitir la información bit por bit uno tras otro. • Son de dos tipos el puerto serial 1 y el puerto serial 2; cada uno de ellos utilizan dos puntos de conexión denominado. • Para el puerto serial 1 se utiliza el COM1 y COM3, los cuales utilizan siempre el puerto de tipo “D” pequeña de 9 pines. • Para el puerto serial 2 se utilizan los puntos de conexión COM2 y COM4 los cuales utilizan siempre el puerto tipo “D” grande de 25 pines. PUERTO PARALELO. • Los puertos paralelos son los LPT que son 1,2 y 3. • En la práctica el puerto serial 1 en el COM1, se instala el MOUSE, el cual utiliza el interruptor IRQ4. • Para la instalación de un Fax/MODEM, se instala en el puerto serial 2 en el COM2, utilizando el IRQ3. • Las impresoras se instalan en los puertos paralelos, por ejemplo para el LPT1, que utiliza el IRQ7. PUERTO USB. • Bus Universal Serial (USB), es el bus serial universal que permite conectar cualquier periférico a la computadora, por ejemplo el mouse, teclado, joystick, impresora, modem, cámara de video, web cam, escáner, etc. • Tiene la particularidad de conectar hasta 126 dispositivos, los cuales pueden ser conectados en serie (uno de tras de otro) o utilizando otros dispositivos de múltiples salidas colocados en los diversos periféricos, como por ejemplo Puerto Paralelo el monitor. Onboard Puerto Serial Onboard Puerto USB Onboard Puertos de comunicación ELECTROTECNIA 28 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CASE. Los case de CPU son gabinetes metálicos donde se instalan los dispositivos de la computadora, incluida la fuente de poder. El gabinete metálico protege a los dispositivos de la estática externa y el maltrato físico. Los tipos de case de CPU son: Horizontal (Desktop) y Vertical (Tower).También se puede indicar que de acuerdo al tipo de Mainboard, pueden ser para AT (vertical u horizontal) y ATX (vertical u horizontal). Modelos de CASE DISPOSITIVOS DE ENTRADA. Son dispositivos mediante los cuales se puede ingresar datos hacia el computador. Estos dispositivos pueden ser el teclado y el mouse. ELECTROTECNIA 29 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I DISPOSITIVOS DE SALIDA. Se encargan de mostrar la información que se aporta, así como la que el computador comunica. Ejemplos de estos dispositivos son el monitor y la impresora. CONSEJOS GENERALES PARA DESARMAR UNA PC. CORRIENTE ESTÁTICA. Antes de abrir la computadora descárguese la corriente estática del cuerpo tocando algo de metal o la pared. La corriente estática en el cuerpo puede quemar cualquier placa que toquen, los SIMM de memoria y hasta el disco duro. No siempre es así pero mejor prevenir que lamentar. Para los que no saben, la corriente estática se produce al rozar el viento sobre nuestra camisa, la fricción en la ropa de nylon al sacársela; después pasa que tocamos a otra persona. ¡Nunca! Saque las placas o tarjetas con la computadora prendida, esto provocaría una enorme chispa que quemaría la placa, además de quemarse ustedes Lo mismo con los discos duros, si sacan el cable de alimentación o el cable plano con la computadora prendida puede pasar que el disco se malogre. Además, nunca deben enchufar el cable de la impresora que va a la computadora, si la misma está encendida, ya que pueden quemar la memoria. Lo mismo pasa si quieren conectar un modem externo, un scanner, etc. Tómese la molestia de apagar la computadora y luego conectar el cable, por simple vagancia no lo hacemos y luego sufrimos las consecuencias. Si el case del metal del gabinete parpadea, prueben cambiando la posición del enchufe ELECTROTECNIA 30 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I de corriente. Si sigue el problema, abran el case y fíjense si no hay un cable que esté suelto y choque con el case. TRABAJAR CÓMODO, CON TIEMPO Y ESPACIO SUFICIENTE. Las prisas e incomodidades son malas consejeras; búsquese una mesa tranquila y amplia y asegúrese que nadie lo va a necesitar en varias horas. Tenga todo a la mano y no deje las cosas en equilibrios inestables; se pueden caer. TENER SIEMPRE EN CUENTA LO SIGUIENTE. • Recordar, no trabajar sobre alfombras, y descárguese de la electricidad estática al empezar a trabajar y cada cierto tiempo. • Trabajar con suficiente luz. Preferible con luz natural. • No empezar a trabajar hasta tener todo claro. • Si es necesario, apuntar todo lo que haga. • Ser suave con el material, es mucho mas frágil de lo que parece. No forzarlo, no golperalo y no aplastar ningún componente. • No hacer excesiva presión sobre la placa base, se doblaría y romperían los circuitos (a veces sin ver dónde); si se debe apretar, debe hacerse de lo más normal. • Al momento de ensamblar la computadora, debe colocarse primero lo último que se bsacó de ella y último lo primero que se sacó de ella. • Si se va a desensamblar una PC, se deben tener las herramientas necesarias para ello (destornilladores planos y estrellas, alicates, etc.). EQUIVOCACIONES. Uno de los problemas que es difícil que ocurra pero que puede sucederle al usuario de computadoras es que el puerto DB25S, que es generalmente donde se conecta la impresora; y el puerto SCSI, que es donde se conecta un scanner de página completa, son iguales. Por lo que si conectamos los cables para abrir la computadora, y después volvemos a conectar todo, suele ocurrir que conectemos las cosas al revés. Después, si queremos imprimir, no pasa nada, o queremos escanear y tampoco pasa nada. ELECTROTECNIA 31 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I HERRAMIENTAS BASICAS PARA DESARMAR UNA PC. ELECTROTECNIA 32 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ELECTROTECNIA 33 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ELECTROTECNIA 34 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I AUTOEVALUACIÓN N°1 I. Contestar en forma breve las siguientes preguntas: 1. ¿Qué es la computadora? 2. Definir: - Hardware. - Software. 3. ¿Cuáles son los principales componentes de una PC? 4. Mencionar 6 consejos generales para desarmar una PC. II. Completar los espacios en blanco según corresponda: 5. La primera computadora fue...............................................creada por...............................................en el siglo.................................................... 6. La primera computadora electrónica fue......................................... construida en.................................... en el año..................................................... 7. La primera computadora comercial fue.............................................construida en...................................................en el año....................................... 8. La microcomputadora de uso masivo fue inventada en el año.................. por............................................................... quiénes más tarde fundaron la compañía......................................................................................................... 9. El modelo de Von Neuman establece que....................................................... ............................................................................................................................... ............................................................................................................................... ELECTROTECNIA 35 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I III. Relacionar: 10. Colocar la letra que corresponda a cada clase de computadora: ( ) Es un aparato de cómputo que opera con data discreta. La data se puede obtener como resultado de un contador. ( ) Está diseñada para trabajar un problema específico. Las instrucciones del programa son almacenadas permanentemente en la máquina. ( ) Es una combinación de digital y análogo. ( ) Trabaja con variables que son medidas a lo largo de una escala continua y que son almacenadas con cierto grado de velocidad. ( ) Son aquellas que pueden almacenar diferentes tipos de programas y pueden ser usados en diferentes aplicaciones. A. Análoga B. Híbridos C. De uso General D. Digital E. De uso especial ELECTROTECNIA 36 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CAPÍTULO 2 2 CASE Y FUENTE DE ALIMENTACIÓN DE UNA PC. En este capítulo se tratará: Características del case y de una fuente para PC. Descripción de una fuente para PC. Conexiones. ELECTROTECNIA 37 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CASE Y FUENTE DE ALIMENTACIÓN DE UNA PC. CARACTERÍSTICAS DEL CASE. Desktop (Escritorio o de Sobremesa). La posición de la Mainboard es horizontal. Ahorra espacio, ya que el monitor se coloca encima del case. Generalmente es usado por las PC’s de marca, aunque también es usado por las compatibles. Case tipo Desktop MINITOWER (MINITORRE). La placa Madre esta en Vertical, hasta hace poco era el modelo mas usado en las computadoras compatibles. Normalmente se usa en formato AT. Normalmente viene equipado, además, con una fuente de alimentación de tamaño standard de 250 W, con un pequeño Speaker (o parlante) y un Display de dos o tres dígitos que marca la velocidad del procesador en Megahertz. Case tipo Minitower ELECTROTECNIA 38 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CASE MODERNOS. Los Componentes son mas pequeños (Placa Madre, Memorias, etc) lo cual hace que ocupen menos espacio, ademas la fuente es entre 65 y 75 W, gracias a ello el ahorro de energía eléctrica es bastante considerable. FULLTOWER (GRAN TORRE). Están preparados para incorporar varios dispositivos. Debido a su gran tamaño, generalmente son usadas en los servidores de redes. Tiene una potencia de fuente de 350 o 500 Watts Case tipo Fulltower CARACTERÍSTICAS DE UNA FUENTE PARA PC. Potencia. Viene expresada en Watts e indica la capacidad para alimentar mas dispositivos o de mayor consumo. Actualmente varía de 250 a 550 Watts. En servidores de red, es recomendable utilizar fuentes de alimentación con potencias de suministro de 350 Watt. Aunque tambien existen otros denominados Micro ATX que ofrecen potencias menores. ELECTROTECNIA 39 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Voltaje. Debe concordar con la zona geográfica donde trabaje la computadora. En el Perú es de 220 Voltios, en los EE.UU es de 110 Voltios, etc. Si se conecta un equipo a una tensión mas alta de la permitida, va a ocasionar grandes daños en el. DESCRIPCIÓN DE UNA FUENTE PARA PC. Una fuente de poder son circuitos (electrónicos) analógicos que permiten el funcionamiento de los equipos. La fuente de voltaje VDC tiene la función de polarizar a todos los dispositivos semiconductores de las tarjetas electrónicas del computador. Toma la energía eléctrica proveniente del tomacorriente, usualmente 220 VAC (Corriente Alterna) y la convierte a niveles de tensión de ±5V y ±12V VDC (Corriente Continua). El voltaje ±5V, son para alimentar los circuitos integrados. El voltaje ±12V, son para alimentar los motores de las unidades de disco. La fuente de voltaje de una PC es de tipo Switching o conmutada, las cuales utilizan un sistema de control basado en comparadores y un sistema de generación de voltaje del tipo alterna mediante un circuito oscilador. Son ideales para equipos de calidad, como: computadoras, VHS, TV, equipos de sonido, etc. No calientan y no usan reducción de voltaje (transformador reductor). Fuente de PC Para cambiar la fuente; la PC debe estar apagada y desconectada de la Corriente Electrica, se procede a destapar el case (cajón), se destornilla la fuente de poder, se toma nota de cada conexión que tiene la fuente hacia los demás componentes (Mejor si se toma fotografías), se procede a desconectar ELECTROTECNIA 40 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I los cables de la fuente para poderlo retirar, se introduce la nueva fuente de poder y se vuelve a conectar correctamente en cada componente al que estaba conectado anteriormente, se atornilla y se tapa el case, colocamos los cables de alimentación de energía, al encender el computador el ventilador del case debe funcionar si no es así entonces se tendria que volver a destapar el case y ver qué se hizo mal, si la fuente está nueva lo más probable es que se ha conectado algo mal, así que sólo queda revisar cada conexión. PARTES DE LA FUENTE. • Etapa Primaria. Unidad de Alto Voltaje. Unidad de Conmutación. • Etapa Secundaria. Unidad de Bajo Voltaje. Unidad de Control. A continuación se describirá cada una de estas etapas. • Etapa Primaria. Circuito de seguridad (fusible/termistor). Filtro de Radiofrecuencia (condensadores/bobinas). Rectificador de alto voltaje (puente de diodos). Filtro de alto voltaje (condensadores electrolíticos). Conmutador (transistores de potencia). Transformador Chopper (RF). FUSIBLE RECTIFICADO FILTROS Etapa primaria de una fuente conmutada. ELECTROTECNIA 41 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Rectificador y Filtro de Alto Voltaje Circuito Conmutador ELECTROTECNIA 42 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Etapa Secundaria. Esta etapa se inicia con la salida del transformador chopper, el mismo que ha venido del circuito de conmutación. Está conformada por los rectificadores de dos diodos unidos al disipador térmico, desde donde aparecen los voltajes de 5 y 12 voltios ya polarizados. Estas salidas son filtradas por condensadores y bobinas en diferentes arreglos. Circuito de Control Circuito de bajo voltaje Etapa secundaria de una fuente conmutada ELECTROTECNIA 43 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Unidad de Bajo Voltaje. Unidad de Control. ELECTROTECNIA 44 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CONEXIONES. Alimentación en corriente Alterna (entrada a la fuente). Está dada por la conexión que provee la compañía eléctrica (Tomacorriente), mediante el llamado cable de poder. Este cable presenta una capacidad de corriente máxima de 10 amperios. Tiene los siguientes elementos: Rejilla de Ventilación. Permite la salida del aire caliente que proviene del calor que disipan los componentes electrónicos internos de la fuente de alimentación. Este aire caliente es expulsado por el ventilador que se sitúa detrás de la rejilla. Conector de Entrada. Permite proveer del suministro eléctrico a la PC, mediante el cable de poder, que a su vez se conecta al tomacorriente. Es un conector macho. Selector de Voltaje. Cambia el voltaje de operación de la fuente, generalmente se da una selección de tensión entre 110 V a 220 V (a veces se indica como 115 / 230). Conector de Salida. Permite proveer de suministro eléctrico a otro equipo, tal como un monitor, prescindiendo de un tomacorriente. Es un conector hembra, solo se encuentra en las fuentes AT. Switch On/ Off. Corta el ingreso de energía al interior de la fuente de alimentación. Es usado solo en las fuentes ATX. Alimentación en Corriente Continua (Salida de la Fuente). La fuente provee la corriente continua a la Mainboard y a los discos. Esta alimentación está dada por: Alimentación de la Mainboard: Conectores P8-P9 (en los Case AT). Dos conectores de plástico de color blanco de seis contactos cada uno, denominados P8 y P9 que proveen de alimentación eléctrica a la Mainboard. A su vez, cada color de cable presenta una tensión de suministro. ELECTROTECNIA 45 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CUADRO N° 1: CONECTORES DE CORRIENTE DEL CASE AT CONECTOR P8 PIN NOMBRE COLOR COMENTARIOS Corriente Correcta, +5Vcc. Cuando todos los voltajes están estabilizados. 1 2 Power Good Naranja +5 VCC Rojo 3 +12 VCC Amarillo 4 -12 VCC Azul 5 COM Negro Tierra 6 COM Negro Tierra CONECTOR P9 PIN NOMBRE COLOR COMENTARIOS 1 COM Negro 2 COM 3 4 -5 VCC +5 VCC Negro Tierra Blanco o Amarillo Rojo 5 +5 VCC Rojo 6 +5 VCC Rojo ELECTROTECNIA Tierra 46 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I En este caso es muy importante no confundirse, pues ambos conectores son físicamente iguales. Una forma de comprobar que los estamos conectando de forma correcta es comprobar que los cables de color negro estén juntos y en el centro de ambos. Conector ATX (en los Case ATX) El conector de suministro eléctrico de la Mainboard es una sola pieza, con 20 contactos de conexión. Este conector solo se puede conectar en un solo sentido, no se puede conectar al revés. En el cuadro N° 2, se muestran los diferentes voltajes de estas fuentes. Observe que es capaz de suministrar 3,3 V, eliminando la necesidad de utilizar el módulo regulador de tensión (VRM – Voltage Regulator Module) en la Mainboard. ELECTROTECNIA 47 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CUADRO N° 2: CONECTORES DE CORRIENTE DEL CASE AT PIN NOMBRE COLOR COMENTARIOS 1 +3 VCC Naranja 2 +3 VCC Naranja 3 COM Negro 4 +5 VCC Rojo 5 COM Negro 6 +5 VCC Rojo 7 COM Negro Tierra 8 Power Good Gris Corriente Directa 9 +5 VSB (Reserva) Plateado 10 +12 VCC Amarillo 11 +3,3 VCC Naranja 12 -12 VCC Azul 13 COM Negro Tierra Tierra Tensión de Mantenimiento (Marrón) Tierra Control de apagado/ 14 PS_ON# Verde encendido de fuente 15 COM Negro Tierra 16 COM Negro Tierra 17 COM Negro Tierra 18 -5 VCC Blanco 19 +5 VCC Rojo 20 +5 VCC Rojo ELECTROTECNIA 48 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ALIMENTACIÓN DE LOS DISCOS. Se utilizan los siguientes dos tipos de conectores; sus voltajes se muestran en el cuadro N° 3. Conectores Moles (o conectores Tipo “D”) Para discos duros, lector de CD–ROM, Zip interno. Vienen 3 o 4 conectores. Conectores Berg (o Conectores Tipo “Plano”) Para disqueteras de 3 ½”. Vienen uno o dos conectores. Las tensiones de estos conectores se muestran en el cuadro N° 3. CUADRO N° 3: CONECTORES PARA ALIMENTACIÓN ELÉCTRICA PIN NOMBRE COLOR COMENTARIOS 1 +12 VCC Amarillo 2 COM Negro Tierra 3 COM Negro Tierra 4 +5 VCC Rojo ELECTROTECNIA 49 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I AUTOEVALUACIÓN N°2 I. Contestar en forma breve las siguientes preguntas: 1. Escribir las características del Case: a)........................................................................... b)........................................................................... c)........................................................................... d)........................................................................... 2. ¿Qué es una fuente para PC? ............................................................................................................................... ............................................................................................................................... .............................................................................................. 3. El voltaje +5VDC alimenta a………………………………………………. y el voltaje de +12VDC alimenta a…………………………………………... 4. ¿La fuente de una PC es una fuente de voltaje estándar? ............................................................................................................................... ............................................................................................................................... .............................................................................................. 5. ¿Qué es una fuente de voltaje Switching? y ¿Con qué otro nombre se le conoce? ............................................................................................................................... ............................................................................................................................... .............................................................................................. 6. La etapa primaria de una fuente comprende: a)..................................................................... b)..................................................................... 7. La etapa secundaria de una fuente comprende: a).................................................................... b).................................................................... ELECTROTECNIA 50 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I 8. Colocar la letra que le corresponde a los siguientes elementos: ( ) Cambia el voltaje de operación de la fuente, generalmente se da una selección de tensión entre 110 V a 220 V ( a veces se indica como 115/ 230 ). ( ) Permite la salida del aire caliente que proviene del calor que disipan los componentes electrónicos internos de la fuente de alimentación. Este aire caliente es expulsado por el ventilador que se sitúa detrás de la rejilla. ( ) Corta el ingreso de energía al interior de la fuente de alimentación. Es usado solo en las fuentes ATX. ( ) Permite proveer del suministro eléctrico a la PC, mediante el cable de poder, que a su vez se conecta al tomacorriente. Es un conector macho. ( ) Permite proveer de suministro eléctrico a otro equipo, tal como un monitor, prescindiendo de un tomacorriente A. Conector de Entrada B. Conector de Salida C. Selector de Voltaje D. Rejilla de Ventilación E. Switch on/off ELECTROTECNIA 51 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CAPÍTULO 3 3 LA MAINBOARD DE UNA PC En este capítulo se tratará: La MAINBOARD de una PC. Factor de forma de las Placas Base. Tecnología de la Placa Base. Elementos de la Mainboard. CPU: Evolución y estructura básica. Slots y memorias de mainboard para PC. Tipos de slots y características. Tipos de memoria y características. Chipset y conectores de MAINBOARD para PC. Tipos de chipset y características. Tipos de conectores y características. ELECTROTECNIA 52 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I LA MAINBOARD DE UNA PC. Es la tarjeta electrónica digital más importante del computador, en ella están instalados los dispositivos de computo que permiten realizar los diversos procesos de la información, siendo los dispositivos más importantes los chips de control conocidos como chipsets La placa base, también conocida como placa principal, placa madre, mainboard, motherboard. El año 1981 IBM desarrolla la primera placa base para el computador personal la cual la denomina placa base XT, en los años siguientes IBM diseña un nuevo modelo computador personal denominado PC AT, utilizando la primera placa base AT, para que luego se diseñen otros tipos de placas base los cuales se les clasifica por su factor de potencia y tecnología aplicada. Clasificación de la Placa Base: • Factores de Forma de las Placas Base. • Tecnología de las Placas Base. FACTOR DE FORMA DE LAS PLACAS BASE. El factor de forma está constituido por las proporciones y el tamaño físico de la tarjeta, los cuales guardan relación directa con el tipo de case o gabinete en la cual puede ser instalados. a) Placa Base con Factor de Forma AT ó Baby-AT. Fue el estándar utilizado durante años, usa una placa de unos 22 x33 cm., con unas posiciones determinadas para el conector del teclado, los slots de expansión y los orificios de anclaje al gabinete que permite dar seguridad a la placa base, así como un conector dieléctrico dividido en dos piezas. Estas placas eran y suelen ser las típicas de las computadoras "clónicas" desde la PC-286 hasta las primeras PCPentium. Con el apogeo de los periféricos como las tarjeta sonido, CDROM, discos duros de alta velocidad y otras unidades de discos extraíbles, etc. salieron a la luz ELECTROTECNIA 53 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I sus principales defectos: mala circulación del aire en los gabinetes (que fue mas tarde uno de los motivos de la aparición de disipadores y ventiladores de chip) y, sobre todo, una maraña enorme de cables que impide acceder a la placa sin desmontar al menos alguno. Placa Base con Factor de Forma AT ó Baby-AT. b) Placa Base con Factor de Forma LPX. Es un diseño parcialmente propietario desarrollado originalmente por Western Digital el año 1987 para sus placas base, las sigla LF de la LPX significa L (bajo) y F (perfil), es decir que usa un slot grande que se le llama Slot Principal, en la cual se instala una tarjeta electrónica denomina Riser Card. Esta tarjeta contiene instalados buses de expansión del tipo ISA y PCI, los slot de la riser card se colocan en forma horizontal dentro del case lo cual permite utilizar case mas pequeños y en algunos caso similares a los estándares AT. Podemos recalcar que el estándar LPX una vez montadas, las tarjetas quedan paralelas a la placa base, en vez de perpendiculares como en las AT, es un diseño típico de las computadoras de escritorio con un case o gabinete pequeño y horizontal con menos de 15 cm. de alto y más de 30. cm. de ancho, y el monitor se encuentra sobre el mismo y no generalmente a un costado como las AT y su único inconveniente es que la Riser Card no suele tener más de dos ó tres ranuras de expansión, contra cuatro ó cinco en una AT típica. ELECTROTECNIA 54 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I c) Placa Base con Factor de Forma NLX. Este factor de forma o estándar fue introducido por Intel en 1996, ofrece mas ventajas que las antiguas LPX para ensamblar equipos de perfil bajo, al tiempo que elimina alguno de sus inconvenientes. Para ello dispone de una solución análoga; una placa auxiliar vertical en la que se conectan los periféricos, cuyas placas quedan por tanto, paralelas a la placa base. La solución aporta sin embargo algunas novedades: La primera es que la placa auxiliar no se aloja en un conector situado en el centro de la placa base (como en LPX), sino en forma lateral, que dispone de lengüetas doradas de conexión en uno de sus bordes (el conector hembra está situado en la placa auxiliar). Otra novedad es que los cables y conectores, que normalmente están situados en la placa base, se conectan ahora en la placa auxiliar, con lo que reemplazar la tarjeta madre es una tarea muy simple, solo basta deslizarla hacia fuera y sacarla de su alojamiento sin desconectar ni un solo cable (la placa auxiliar queda fija al chasis). Como puede suponerse, este factor de forma se ha concebido para permitir sistemas de perfil bajo y facilitar la actualización de las propias mainboard. Respecto al tamaño de estas placas pueden, estas pueden variar entre 4 y 5.1 pulgadas de ancho, y 10; 11.2 y 13.6 pulgadas de largo. d) Placa Base con Factor de Forma ATX. El diseño del estándar ATX fue la primera parte de la notable evolución en factores de forma. Este estándar se desarrollo con la combinación de las mejores características de los diseños Baby AT y LPX, con varias mejoras significativas. El factor de forma ATX, es esencialmente una tarjeta madre Baby AT dispuesta lateralmente en el chasis y con otra disposición de la fuente de poder y conectores. ¿Cuáles son las mejoras de este factor de forma? • Panel de Conectores de Entrada y Salida Externo, Integrado y de Doble Altura. La placa base ATX tiene instalados los conectores externos (puertos variados) directamente en la tarjeta de la mainboard, evitando así el uso de cables flats con conectores terminales denominados bracket, los cuales se colocan el los puntos de conexión de la placa base del estándar AT. • Conector Interno de Suministro Eléctrico de una Sola Posición. La placa base del factor de forma ATX utiliza un conector de energía con un diseño que permite una sola posición, fácil de conectar y sin posibilidades a errores de inversión durante la conexión de la energía eléctrica desde la fuente de poder switching. Este conector está diseñado con 20 puntos (dos ELECTROTECNIA 55 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I filas paralelas de 10 cada una), en la cual se encuentran los voltajes estándares de +5V, +12V, -5V y -12V, además se le ha adicionado el voltaje de 3.3V a la placa base, lo cual implica que estas no requieren de adaptadores de voltaje susceptibles de fallas. • Bancos de Memoria y Microprocesador Reubicados. El microprocesador y los bancos de memoria tienen nuevas posiciones de manera que no interfieran con las ranuras de expansión y ofrezcan un acceso fácil para la instalación de las tarjetas controladoras externas y que durante la manipulación de una nueva instalación de hardware, no se necesite retirar tarjeta alguna. También se puede indicar que el procesador y la memoria se ubican cerca de la fuente de poder y al ventilador principal del sistema; es decir, que el flujo de aire es concentrado sobre el procesador, en la cual en algunas ocasiones el microprocesador no necesita de un ventilador adicional y además hay el suficiente espacio para utilizar un disipador de mayor volumen que el especificado. • Conectores internos de Entrada y Salida Reubicados. Los conectores internos de entrada y salida para unidades de discos duros y disqueteras se colocaron cerca de la bahías e las unidades de disco, esto permite que los cables tipo flats correspondientes sean mucho más cortos y el acceso a los conectores no requiera del retiro de tarjetas o unidades de disco. • Enfriamiento Mejorado. El procesador y la memoria principal están ubicados de manera que puedan recibir el enfriamiento directo del ventilador principal del sistema. El diseño ATX originalmente especificaba que el ventilador debía insuflar (introducir aire dentro del case) el case o gabinete, y no sacar el aire de él. Este influjo inverso o diseño de presión positiva presuriza el gabinete, lo cual minimiza la intrusión y acumulación de polvo. Haciendo una revisión en el estándar se cambio al uso convencional (diseño de presión negativa) de flujo de aire, es decir que el ventilador saca el aire caliente del case con lo cual despresuriza dicho gabinete. • Costo más Bajo de Fabricación. La especificación del estándar ATX elimina el enredo de los cables de los conectores de puertos externos de la placa base tipo AT, de ventilador para el procesador, reguladores de voltaje y cambios de gabinetes, en lugar de ellos el diseño ATX utiliza un solo conector de energía eléctrica y permite el uso de cables internos más cortos ELECTROTECNIA 56 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I en sus conexiones. Todo esto contribuye a disminuir costos de la tarjeta madre y del sistema completo, incluyendo el case y la fuente de poder switching. Los estándares ATX son cada vez más comunes y difundidas en el mercado y van camino de ser las únicas en el mercado informático. Otras diferencias que podemos indicar respecto a las AT son las de ventilación mas fácil y menos maraña de cables, debido a la colocación de los conectores ya que el microprocesador suele colocarse cerca del ventilador de la fuente de alimentación y los conectores para discos cerca de los extremos de la placa, los conectores suelen ser más (por ejemplo, con USB o con FireWire), están agrupados y tienen el teclado y ratón en clavijas mini-DIN. Además, reciben la electricidad mediante un conector formado por una sola pieza. TECNOLOGÍA DE LA PLACA BASE. La tecnología de la placa base guarda relación con el factor de forma de las tarjetas madre, tal como se indica en la tabla adjunta. Las placas base se clasifican en las tecnologías abierta e integrada. a) Tecnología Abierta. La tecnología abierta tiene dos concepciones importantes en relación al avance tecnológico, tal como se indica en la siguiente tabla. ELECTROTECNIA 57 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I b) Tecnología Integrada. La tecnología integrada consiste en tener instalados en la placa base las controladoras básicas y adicionales como también los puertos respectivos. La integración de las controladoras utiliza tres técnicas denominadas: • On Board. • On Chip. • Built-In. Estas técnicas de integración están indicadas como características técnicas aplicadas, en el manual de la placa base. ELECTROTECNIA 58 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ELEMENTOS DE LA MAINBOARD. A continuación se describirán los principales elementos que se encuentran en una Mainboard. S A T B C D R Q P E F O G H N M A. B. C. D. E. F. G. H. I. J. K. L. M. N. O. P. Q. R. S. T. L K J I Puerto Serial. Puerto Paralelo. Puerto USB. PS/2, Puerto de Mouse y Teclado. Zócalo Zif para Microprocesador. Chipset Puente Norte. Conector de fuente ATX. Ranuras DIMM. Conector de Disquetera. Conectores IDE. Batería. Chipset Puente Sur. Chip Bios y Zócalo opcional. Cable Conector USB Ranuras PCI. Conector de Audio/ Modem. Conector de Video/ Audio. Conector de Modem. Chip de Audio. Ranura AGP. ELECTROTECNIA 59 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I OTRAS PLACA BASE. ELECTROTECNIA 60 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ELECTROTECNIA 61 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ZÓCALO DEL MICROPROCESADOR. Es el lugar donde se inserta el procesador o “cerebro” de la computadora. Los tipos más comunes de zócalo son: PGA. El modelo clásico usado en el 386 y el 486; consiste en el cuadro de conectores en forma de agujero donde se insertan las patitas del chip por pura presión. Según el Chip, tiene más o menos agujeritos. ZIF. Eléctricamente es como un PGA, aunque gracias a un sistema mecánico permite introducir el micro sin necesidad de fuerza alguna, con lo que el peligro de romperle una patita desaparece. Apareció en la época 486 y sus distintas versiones (sockets 3, 5 y 7, principalmente), se han utilizado hasta que apareció el Pentium II (del fabricante Intel). El último Microprocesador que utilizará este zócalo será el K6-3 (del fabricante AMD). Zócalo ZIF Actualmente se fabrican dos tipos de zócalo ZIF: • Socket Super 7: Variante del Socket 7 que se caracteriza por poder usar velocidades del bus de hasta 100 MHZ, es el que utilizan los micros AMD K6-2. • Socket 370 o PGA370: Físicamente similar al anterior, Pero incompatible con él por utilizar un bus distinto (66 MHZ), es el que incorporan los micros Intel Celeron de la última generación. ELECTROTECNIA 62 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I • Slot 1. Físicamente no se parece nada de lo anterior, es una superficie de conector alargado como los ISA o PCI. Fue inventado por Intel para conectar los Pentium II, por los que no puede ser utilizado por su competencia AMD y Cyrix. RANURAS DE MEMORIA. Son conectores de memoria principal del computador, es decir, para la RAM. En las Mainboard se pueden apreciar las ranuras SIMM y DIMM. Ranuras de memoria CHIPSET DE CONTROL. El “Chipset” es el conjunto de chips que se encargan de controlar determinadas funciones de computador, como la forma en que interacciona el microprocesador con la memoria o la caché, o el control de los puertos o slots ISA, PCI, AGP, etc. Chipset ELECTROTECNIA 63 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I LA BIOS (BASIC INPUT OUTPUT SYSTEM). La Bios realmente es un programa que se encarga de dar soporte para manejar ciertos dispositivos denominados de entrada – salida (Input – Output). Físicamente se localiza en un chip que suele tener forma rectangular. Además, conserva ciertos parámetros como el disco duro, la fecha y hora del sistema, etc., los cuales guarda en la memoria de tipo CMOS de muy bajo consumo y que es mantenida con la pila cuando el computador está desconectado. BIOS SLOT PARA TARJETAS DE EXPANSIÓN. Son unas ranuras de plástico con conectores eléctricos donde se introducen las tarjetas de expansión. Según la tecnología que se basen presentan un aspecto externo diferente, con diferente tamaño y color. Las ranuras de expansión de las Mainboard son: ISA, VESA, PCI y AGP. ELECTROTECNIA 64 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I MEMORIA CACHÉ. Se trata de un tipo de memoria muy rápida que se utiliza de puente entre el microprocesador y la memoria principal o RAM, de tal forma que los datos mas utilizados puedan encontrarse antes, acelerando el rendimiento del computador, especialmente en aplicaciones ofimáticas. Existen dos tipos: L2 (segundo nivel) y L1(primer nivel). PUERTOS O CONECTORES EXTERNOS E INTERNOS. Puerto, es un elemento que facilita la conexión de periféricos al computador. Se trata de los conectores de periféricos externos: teclado, mouse, etc. y de conectores internos como son: la disquetera, el disco duro, conector de alimentación de la fuente, etc. Puertos internos PILA. La pila del computador, se encarga de conservar los parámetros de la Bios cuando el computador está apagado. Sin ella, cada vez que encendiéramos tendríamos que introducir las características del disco duro, la fecha, la hora, etc. Pila ELECTROTECNIA 65 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ELEMENTOS INTEGRADOS VARIADOS. En las Mainboard modernas resulta muy común que ciertos componentes se incluyan en la propia Mainboard, en vez de ir en forma de tarjetas de expansión. Los mas comunes son : Controladoras de Dispositivos, Tarjetas de Sonido, Controladora de Video, Controladora de Fax – MODEM, etc. Elementos integrados varios CPU: EVOLUCIÓN Y ESTRUCTURA BÁSICA. Microprocesador. El microprocesador es la parte de la computadora diseñada para llevar a cabo o ejecutar los programas. Este viene siendo el cerebro de la computadora, el motor, el corazón de esta máquina. Este ejecuta instrucciones que se le dan a la computadora a muy bajo nivel haciendo operaciones lógicas simples, como sumar, restar, multiplicar y dividir. El microprocesador, o simplemente el micro, es el cerebro del ordenador. Es un chip, un tipo de componente electrónico en cuyo interior existen miles (o millones) de elementos llamados transistores, cuya combinación permite realizar el trabajo que tenga encomendado el chip. Arquitectura en Pipeline. Los primero diseños de procesadores previos al 8086, estaban limitados en su desempeño por la necesidad de realizar los dos pasos principales de ejecución del procesador: Fetch/Execute, en forma secuencial. Es decir, que no se puede ejecutar una instrucción hasta que se traiga datos de la memoria (Fetch); y que además no podían traerse instrucciones de memoria mientras ejecutaba una ELECTROTECNIA 66 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I instrucción, pues el procesador estaba ocupado, trayendo como consecuencia un alto porcentaje de tiempo, sobre todo el procesador estaba ocupado haciendo Fetch, cuando su función debiera ser ejecutar las instrucciones el procesador estaba ocupado haciendo Fetch, cuando su función debiera ser ejecutar las instrucciones de tal forma que la capacidad de ejecutar instrucciones sólo se ocupaba en un bajo porcentaje. Para solucionar este problema, Intel desarrolló la arquitectura en pipeline del Fetch/Execute, la cual consiste en dividir la tarea en dos procesos o secciones: una encargada del Fetch (BIU), y otra del Execute (EU). Existen circuitos separados para cada función, los cuales trabajan en paralelo. Si bien el proceso aún es secuencial, solamente al principio se requiere desperdiciar tiempo en el Fetch. A partir de ahí, Fetch va adelante del Execute, y trae instrucciones al procesador mientras este ejecuta las anteriores. Características, modos de trabajo y especificaciones técnicas: • Uso del de la arquitectura Pipeline e Hyper Pipeline. • Frecuencia de CPU que varían desde 4.7MHz hasta 4.0GHz. • Modos de trabajos: real, protegido y virtual. • Uso de memoria caché internas (L1) y externas (L2 y L3). • Interactúan con memorias DRAM de diversas tecnologías. • Utilizan voltajes de polarización de 5v, 3.3V, 2.9V, 2.8V, 2.5V, 1.5V y 1.3V. • Alta tecnología de integración de transistores tipo CMOS y BICMOS Arquitecturas o Modelos de los Microprocesadores. a) Modelo o Arquitectura CISC (Complex Instructions Set Computer). Es el modelo de microprocesador tradicional desarrollado por INTEL. Se le denomina “Arquitectura de Diseño de Microprocesadores”. Este modelo utiliza la microprogramación como característica importante y esencial. Cada instrucción de máquina se interpreta como una microprograma localizada en una memoria en el chip del microprocesador. Operan con grupos grandes de instrucciones. El SET de instrucciones complejas permite el uso de la mayor cantidad de ciclos de maquina para complementarse. ELECTROTECNIA 67 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I b) Modelo o Arquitectura RISC (Reduced Instructions Set Computer). Es la simplificación al máximo el conjunto de instrucciones, este modelo nos indica que cualquier instrucción añadida al repertorio de instrucciones debe asegurar un incremento de rendimiento del 1% sobre un determinado rango de aplicaciones. Su complejidad depende del compilador. Su estudio demostró que el 20% de las instrucciones cumplían con el 80% de la carga de trabajo. El 20% restante de la carga de trabajo se complementan con la simulación por software correspondiendo a las operaciones más rápidas del modelo CISC. OVERCLOCKING. Las computadoras anteriores a la Pentium I utilizaron el sistema TURBO del CLOCK del sistema, el cual consistía en duplicar, triplicar, etc. el clock de la placa base hasta lograr la compatibilidad de velocidades entre la VBUS y VCPU, utilizando los JUMPERS como elementos que permiten configurar las velocidades, mientras que las tecnología Pentium no permite aplicar el sistema turbo, pero las tecnologías Pentium utilizan el sistema overclocking, que consiste en elevar la velocidad del chip CPU en forma dinámica y reducir la temperatura de trabajo del chip utilizando un sistema enfriador denominado COOLER. El cooler (enfriador) está compuesto por tres elementos importantes: el disipador, el ventilador y la grasa térmica siliconada (acoplador térmico). ELECTROTECNIA 68 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I UNIDAD CENTRAL DE PROCESAMIENTO Ó PROCESADOR. Es un circuito electrónico digital secuencial, diseñado para realizar procesos de datos sobre programas aplicativos o desarrollo de programas para nuevas aplicaciones. Tiene dos unidades denominadas: a) La Unidad de Control. Esta encargada de controlar o sincronizar las actividades internas del procesador, así como de realizar la interfase entre la memoria principal y el procesador. En esta unidad también se encuentra instalados los registros de instrucción y el decodificador. b) La Unidad de Ejecución. Es la encarga de realizar los procesos de cálculos matemáticos y las relaciones lógicas, en ella están instaladas la unidad aritmética/lógica, los registros de propósito general (memoria interna del procesador) y los otros registros que se explicara en este capitulo. EL PROCESADOR MONOBLOQUES. SE CLASIFICA COMO MULTIBLOQUES Y a) Procesador Multibloques. Es el que esta compuesto por más de un bloque en las unidades de control y ejecución, ver los ejemplos indicados en las figuras adjuntas: ELECTROTECNIA 69 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I b) Procesador Monobloque. Es un procesador en la cual las unidades de control y ejecución están dentro de una cápsula o chip, es al que se le denomina Microprocesador, fue diseñado por la corporación INTEL. El primer microprocesador es el 4004 el cual utiliza 4 bits para el proceso y es de la misma forma que la figura adjunta. EVOLUCIÓN. En Junio de 1978 Intel lanzó al mercado el primer microprocesador de 16 bits, el 8086. En Junio de 1979 apareció el 8088 (internamente igual que el 8086 pero con bus de datos de 8 bits) y en 1980 los coprocesadores 8087 (matemático) y 8089 (de entrada y salida). El primer fabricante que desarrolló software y hardware para estos chips fue la propia Intel. En 1984, aparece el 80286 como base para una nueva generación de ordenadores de IBM, el IBM AT (Advanced Technology). Supone un nuevo salto tecnológico. Además de incrementar el bus de direcciones de 20 bits a 24, lo que permitía acceder hasta los 16Mb de RAM, se incrementaba la velocidad, llegando a ser hasta un 25% mas rápidos que los 8086 y 8088 originales. La novedad que se introdujo fue la gestión de memoria virtual, es una extensión de memoria en el disco(o dispositivo de almacenamiento secundario) añadida a la memoria física instalada. Microprocesador 80286. Desarrollado por Intel el 1982 y llamado comúnmente microprocesador 286, los chips 80286 funcionaron en las velocidades de clock de 8MHz a 12MHz. El microprocesador 80286 utiliza un coprocesador matemático, trabajo en el modo protegido. Microprocesador 80386. El microprocesador 80386 (275.000 transistores) desarrollado por Intel el año 1985 como una mejora al procesador 80286 al cual se le denomina procesador 80386DX, sobre la arquitectura de 32bits, el cual trabaja en el modo Virtual. ELECTROTECNIA 70 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Este procesador utiliza velocidades de clock de 16MHz, de 20MHz, de 25MHz, y de 33MHz. También utiliza un chip coprocesador 80387. Microprocesador 80486. El microprocesador 80486 (1,2 millones de transistores) fue desarrollado por Intel con una arquitectura de 32bits, como mejora a las series del procesador 80386. Los 80486 que trabajan en el modo virtual, han sido diseñados con una memoria caché interna L1 de 8KB y coprocesador instalados como Built- In. Estos microprocesadores utilizan velocidades de 20MHz 33MHz con modelos SX (sin coprocesador), DX (clock estándar), DX2 (doble clock estándar) y DX4 (triple clock estándar). Podemos describir en forma cronológica el desarrollo tecnológico del microprocesador 80486. El año 1990 el procesador 486SL fue introducido y utilizó menos energía que los 486 y se utiliza principalmente en computadoras portátiles. En 1992 el 486DX2 fue introducido y funcionó en el doble el índice de reloj de 486. En 1994 el 486DX4 fue introducido, triplicó la velocidad del clock de 33MHz a 100MHz aproximadamente. Overdrives. Intel comenzó una nueva política con la salida de los microprocesadores con la denominación Overdrive. Los Overdrives eran actualizaciones para los microprocesadores instalados en los sistemas que dispusieran de un segundo zócalo para tal propósito. En esta primera generación de Overdrives los chips disponían de un duplicador de frecuencia interno y tenían un pin mas, el numero 169. Este pin se encargaba de inhabilitar el 80486 instalado en la placa dejando como único micro funcionando el Overdrive. No era posible la retirada del micro anterior, puesto que el sistema dejaba de funcionar. La segunda generación de Overdrives se olvidó el pin 169, teniendo los 168 que los hacían compatibles con zócalos de los 80486. La tercera generación de Overdrives trabaja con un consumo menor para reducir de este modo su alta temperatura. El voltaje se reduce a 3,3 Voltios de los cinco que necesitaban los anteriores. Familia Pentium. La quinta generación de los microprocesadores Intel tomó el nombre de Pentium (Codenamed P5), fue desarrollado por INTEL en Marzo del año 1993, es un procesador (3,1 millones de transistores) más rápido cuyas velocidades están entre 60MHz a 200MHz con más alcance que la L1 y el coprocesador instalados como un Built-In. El microprocesador Pentium tiene un autobús (bus ELECTROTECNIA 71 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I de datos ancho) 32bits del acceso y un ómnibus (gran bus de datos) de datos 64-bit. Fabricados con un proceso BiCMOS de geometría de 8 micras y con una arquitectura superescalar, los microprocesadores Pentium se encuentran en un concepto RISC. Intel toma como modelo la estructura separada para la memoria caché interna del microprocesador. Consta de dos bloques de 8 Kb, uno para las instrucciones y otro para los datos que funcionan bajo una estructura de asociación de conjuntos bidireccionales. El algoritmo de sustitución de datosen la caché es el LRU (Least Recently Used, el menos utilizado recientemente). El coprocesador matemático incluido utiliza algoritmos mejorados y añade instrucciones de suma, multiplicación y división de números en punto flotante integradas en silicio, además de incorporar un pipeline de 8 niveles para lograr ejecutar operaciones en punto flotante en un solo ciclo de reloj. Se integran nuevos avances tecnológicos, además de los ya comentados, como por ejemplo la predicción de ramificaciones, buses de datos internos de 256 bits, bus de datos externos de 64 bits y memorias caché de escritura diferida. ELECTROTECNIA 72 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Microprocesador Pentium PRO. Se rediseña completamente el procesador en el cual se instala la memoria caché L2 (integración On chip) de capacidad de 256MB, este procesador contiene tres unidades de procesamiento independientes, con la capacidad de ejecutar instrucciones "adelantadas" , por ejemplo mientras que una instrucción está en espera para el acceso a la memoria, las siguiente están listas se ejecutan. Su velocidad es desde 200MHz hasta 266MHz. Microprocesador Pentium II. A principios de 1998, Intel coloca al mercado de computadoras su último diseño denominado Pentium II (5 millones de transistores), Intel tenía un reto duro con su nuevo microprocesador, que era en ese entonces costoso, este microprocesador desarrolla velocidades comprendidas entre 333MHz hasta 450MHz. Microprocesador Celeron. Intel desarrollo un procesador de bajo costo que lo denomino Celeron (CPU brandnew), que es similar al Pentium II pero carece de la RAM caché L2, lo cual nos indica su gran desventaja. Hay que indicar que el año de 1998, Intel substituyó su Pentium MMX por el Celeron. Los ajustes baratos de este cartucho de Celeron en la ranura 1 y él funcionan en un autobús del sistema de 66 megaciclos. El clock interno funciona en 266 o 300 megaciclos y entrega el funcionamiento muy bueno para la coma flotante y MMX los programas pesados tales como ciertos juegos. ELECTROTECNIA 73 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Actualmente, el Celeron A y los procesadores futuros de Celeron están disponibles a velocidades más altas con más RAM caché L2 istalada a la derecha de la CPU. Microprocesador PIII. En cuanto a su arquitectura interna, los microprocesadores Pentium Pro, Pentium II y Pentium III son prácticamente idénticos. Todos forman parte de la sexta generación de microprocesadores de la familia 80x86. Las apariciones de los dos últimos se deben a la introducción de nuevas características integradas en una arquitectura interna común. El hecho de no cambiar la tecnología de fabricación, lleva a la necesidad de un cambio en la arquitectura interna que será quien proporcione el aumento de velocidad, por tanto se introduce cuatro características nuevas, que determinarán esta mejora: • Predicción de saltos mejorada y optimizada. • Caurenta registros internos que son renombrados para suplantar a los registros estándar. • Ejecución especulativa de los saltos que se predicen. • Ejecución no secuencial de las instrucciones. ELECTROTECNIA 74 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Microprocesador Pentium IV. La Pentium IV se ha diseñado partiendo casi de cero, se basa en la nueva arquitectura NetBurst (Microarquitectura), que según Intel se basa en los siguientes pilares: • Hyper Pipelined Technology. • Bus de Sistema de 400 MHz. • Rapid Execution Engine. • Advanced Dynamic Execution. • Unidad Multimedia y de Coma flotante Mejorada. • Streaming SIMD extensions 2 (SSE2). HYPER PIPELINED TECHNOLOGY. La Pentium 4 utiliza hay 20 etapas, es decir que 10 etapas más que la Pentium Pro, Pentium II y Pentium III, la cual tiene la ventaja de permite alcanzar mayores velocidades de clock en MHz o GHz. BUS DE SISTEMA DE 400 MHz. Es una de sus mejores características. Estos 400 MHz “equivalentes”, mejoran el rendimiento de aplicaciones profesionales y multimedia y el de muchos juegos 3D. Otra novedad de esta nueva arquitectura: algunas partes del Pentium 4 funcionan al doble de la velocidad de reloj; es decir a 3GHz en el modelo de 1.5 GHz, por tanto estas partes son dos unidades aritmético-lógicas de enteros (ALU). OPERACIONES MATEMÁTICAS: FPU Y SSE2. Llegamos al apartado más polémico de este micro: su tratamiento del apartado matemático, entendiendo por esto los renderizados, los juegos 3D, la compresión y descompresión de audio y video, los cálculos matemáticos con funciones complejas. Para enfrentarles a ello, el Pentium 4 tiene CUATRO POSIBILIDADES: utilizar: la unidad de coma flotante de toda la vida la FPU, utilizar las ya clásicas y casi anticuadas instrucciones MMX, utilizar las SSE(Streaming SIMD Extensions, introducidas con el Pentium III) o la gran novedad: las instrucciones SSE2 (Streaming SIMD Extensions 2, claro). Estas son nada menos que 144 nuevas instrucciones, algunas capaces de manejar cálculos de doble precisión de 128 bits en coma flotante. ELECTROTECNIA 75 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Microprocesador Pentium IV HT con Doble Núcleo. Con la aparición del nuevo procesador Intel® Pentium® Extreme Edition con dos núcleos de procesamiento la vanguardia de la informática se ha modernizado mucho más. Los ordenadores basados en el procesador de doble núcleo para sistemas de sobremesa representan la próxima generación de rendimiento y potencia informática del PC. Combinado con el chipset Intel® 955X Express, el procesador Intel Pentium Extreme Edition incorpora la tecnología Hyper-Threading (HT) ¹¹, convirtiéndolo en una solución perfecta para sus necesidades de multitarea más exigentes. Los usuarios que necesitan capacidad de proceso, los entusiastas del entretenimiento multimedia y los jugadores que ansían un rendimiento de PC óptimo para sus juegos de primer nivel, vídeo, audio y diseño digital se apuntan a darse este gusto. Beneficios del núcleo doble: Los productos Intel con doble núcleo como el procesador Intel Pentium Extreme Edition son muy apropiados para los entornos multitarea ya que aportan dos núcleos lógicos, cada uno con una interfaz independiente dirigida al bus del sistema, en lugar de uno. El procesador Intel Pentium Extreme Edition con doble núcleo proporciona exclusivamente 1 MB para cada núcleo, aportando los recursos de los dos núcleos de procesamiento y ofreciendo la ELECTROTECNIA 76 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I nueva prestación necesaria para llevar a cabo tareas de rendimiento exigente en su PC. Tecnología Hyper-Threading: El procesador Intel Pentium Extreme Edition combina la tecnología HT con dos núcleos de procesamiento para ofrecer una novedosa potencia multitarea y cuatro subprocesos sin precedentes, que permite incrementar el realismo y la brillantez de los juegos de próxima generación. Esto significa que los entusiastas de los juegos pueden disfrutar de los nuevos juegos y experimentar efectos ultrarrealistas y capacidad de juego. Los entusiastas de la multimedia pueden crear, editar y codificar archivos de gráficos exigentes mientras ejecutan el antivirus en el segundo plano. Chipset Intel® 955X Express: El elevado rendimiento del chipset Intel 955X Express representa el complemento ideal para el procesador Intel Pentium Extreme Edition con doble núcleo. Conjuntamente ofrecen un rendimiento excepcional así como tecnologías de primer nivel para los jugadores y los entusiastas de la multimedia. El chipset Intel 955X Express incluye: Rendimiento adicional a nivel de sistema gracias a la tecnología Intel® Memory Pipeline Technology (Intel® MPT), una nueva arquitectura de canalización de memoria mejorada que acelera las transferencias entre el procesador y la memoria del sistema. Soporte para memoria DDR2-667 de doble canal más rápida, ofreciendo un ancho de banda de hasta 10,7 GB/seg. y capacidad de direccionamiento de memoria de 8 GB. Bus del sistema rápido de 1.066 ó 800 MHz con soporte para los nuevos procesadores Intel, incluyendo el procesador Intel Pentium Extreme Edition, el procesador Intel® Pentium® D y todos los demás procesadores Intel® Pentium® con el zócalo LGA775. La interfaz PCI Express* x1 que ofrece 3,5 veces más de ancho de banda que la arquitectura PCI tradicional, permite edición, grabación y reproducción de vídeo de alta definición. Sonido Intel® de alta definición de vanguardia integrado para sonido envolvente de primer nivel y características avanzadas como transferencias ELECTROTECNIA 77 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I múltiples de sonido. E/S flexible y rápida, latencia de memoria reducida con seis ranuras de expansión PCI Express x1. Interfaz de almacenamiento SATA de 3 GB/seg. de alta velocidad para velocidades de transferencia de datos más rápidas. Configuraciones RAID múltiples para maximizar la capacidad de almacenamiento, proteger los datos y mejorar el rendimiento con la tecnología Intel® de almacenamiento en matrices (RAID 0, 1, 5,10 y AHCI). Flexibilidad para sistemas operativos y software futuro que admiten extensiones de memoria de 64 bits con Intel® EM64T. Soporte para tecnología Intel SpeedStep® mejorada que ofrece una característica de ahorro de energía que reduce el consumo medio de energía de la CPU. ELECTROTECNIA 78 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Aplicaciones: a) El microprocesador Pentium D (CPU para Computador Personal). b) El microprocesador Pentium M (CPU para Computador Móvil) INSTALACIÓN. La instalación del microprocesador se realiza sobre un zócalo instalado en la placa base. Los zócalos son del tipo ZIF y Slot1. ZÓCALOS ZIF (INSERCIÓN CON ESFUERZO CERO). Este tipo de zócalo tiene una palanca de seguridad que permite cerrar el zócalo con los pines del microprocesador. Los zócalos ZIF son: • Zócalo 3 para la CPU 80486 • Zócalo 7 para la CPU Pentium • Zócalo 8 para la CPU Pentium Pro • Zócalo PGA370 para la CPU Celeron y Pentium III • Zócalo PGA420 para la CPU Pentium IV • Zócalo PGA478 para la CPU Pentium IV • Zócalo LGA775 para la CPU Pentium D ELECTROTECNIA 79 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I SLOT 1. Es utilizado para instalar microprocesadores tipo modular con conexión tipo galleta, los microprocesadores que se instalan en el slot 1 son los Pentium II MMX, Pentium III y Celeron. ELECTROTECNIA 80 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Instalación del microprocesador Pentium 4. ELECTROTECNIA 81 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ELECTROTECNIA 82 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ELECTROTECNIA 83 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CUADRO DE GENERACIONES. GENERACIÓN 1° 2° 3° 4° 5° 6° 7° 8° ELECTROTECNIA PROCESADORES ● 8088 y 8086 ● 286 ● 386,386DX, 386SX, 386S2 ● 486, 486DX, 486SL, 486SX ● DX2/Overdrive y DX4 ● Overdrive para 486SX2 y DX2, AMD 486 (5 x 86) ● Pentium de Primera Generación ● Pentium de Segunda Generación ● Pentium MMX ● AMD – K5 ● Pentium Pro ● Pentium II ● Celeron ● Pentium III ● Pentium II/III Xeon ● AMD – K6 ● Athlon AMD ● Duron AMD ● Cyrix Media GX ● Cyrix /IBM 6 x 86(M1) y 6 x 86 (MII) ● Pentium 4 ● Itanium 84 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Estructura Básica. La velocidad del microprocesador se mide en MegaHertz (MHz). Los microprocesadores disponen de un reloj interno (CPU Clock), que proveen pulsos. Ante un pulso de reloj, se efectúa una determinada cantidad de trabajo. El reloj interno del microprocesador emite pulsos mas de un millón de veces por segundo. Cada millón de veces por segundo presenta un Mega Hetz. Las Mainboards usan un circuito sintetizador de frecuencia variable para controlar la velocidad de ésta y del procesador. Los procesadores operan a esta velocidad que es un múltiplo de la velocidad real de la Mainboard. De esta forma se tiene la siguiente relación: Velocidad del Procesador = Velocidad de la Mainboard x Factor Un microprocesador que disponga de un reloj interno de mayor velocidad, significará que las instrucciones se ejecutarán mas rápido y con mejor rendimiento. El microprocesador posee internamente 3 partes principales: • Unidad de Control. Consiste en un circuito que interpreta las instrucciones de programa y controla al resto de los componentes del microprocesador (ALU y Registros). • Una Unidad Aritmética Lógica (ALU). Realiza las operaciones matemáticas que le ordena la Unidad de Control. Semeja una calculadora con algunas funciones de lógica. • Varios Registros de Almacenamiento. Son lugares de almacenamiento temporal de la información. Ellos son: Contador de Programa. Guarda la posición de Memoria donde se encuentra la siguiente Instrucción a ejecutar. Registros de Datos. Almacenan temporalmente datos necesarios para realizar una operación aritmética o Lógica. Acumulador. Almacena los resultados de las operaciones realizada por la ALU. ELECTROTECNIA 85 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ACUM UNIDAD DE CONTROL REGISTRO DE DATOS ALU REGISTRO DE DATOS Estructura de una CPU Además su funcionamiento se apoya en los siguientes componentes: Clock. El µp ejecuta permanentemente una Instrucción tras otra según le dicten los programas de aplicación. Es necesario para ejecutar esas instrucciones que el microprocesador reciba una especie de " Pulso Cardíaco " que le marque el ritmo de proceso. Este es proporcionado por un dispositivo externo denominado Clock. Una instrucción puede tomar uno o más pulsos de Clock. La velocidad de Clock en las PC actuales va de 25 a 200 MHz (veinticinco a doscientos millones de pulsos por segundo) y cuanto mayor sea esta, mayor ser la velocidad de proceso de nuestra PC. Buses. Para comunicarse con el resto de los componentes de la PC (como por ejemplo la memoria) el microprocesador cuenta con tres BUSES, que no son más que un conjunto de pines que salen de él. Todas los pines que salen del microprocesador se encuentran incluidas en uno de estos tres buses. Ellos son: - Bus de Datos (Data Bus). Lleva información (datos bytes) desde y hacia el microprocesador, por esto se dice que es "BIDIRECCIONAL”. Siempre tiene una cantidad de hilos igual a 8, 16, 32 o 64, pudiendo así transportar según su ancho un byte, dos bytes, cuatro bytes u ocho bytes al mismo tiempo. De aquí deducimos que cuanto más ancho (más hilos) tenga este bus, mayor ser la velocidad de la máquina. ELECTROTECNIA 86 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I - Bus de Direcciones (Address Bus). Permite al microprocesador seleccionar una de las tantas posiciones de Memoria para lectura o escritura. La selección se efectúa mediante una combinación de pulsos de 0 Voltios y 5 Voltios presentes en dichas patas. Es un bus Unidireccional ya que las direcciones solo salen del microprocesador y son leídas por los periféricos. Cuanto más ancho sea este bus (más patas tenga) mayor ser la cantidad de Memoria que el microprocesador puede direccionar (o encontrar). - Bus de Control (Control Bus). Consiste en un conjunto de señales individuales con las que el microprocesador controla los dispositivos externos y mediante las cuales se pone de acuerdo con ellos (Handshaking) para la efectuar transferencia de información. De estas señales algunas son entrantes y otras salientes al microprocesador. Es importante recalcar que todo periférico o controlador de periférico debe estar conectado a estos tres buses para poder realizar procesos de transferencia de información con el Microprocesador. Memoria R.A.M (Memoria Principal). Se trata de un conjunto de chips donde el microprocesador puede leer, escribir datos a voluntad. Es comparable a un cuaderno de notas o pizarrón con muchos renglones donde se puede elegir al azar cualquiera de ellos para escribir, leer o borrar datos de ocho bits (bytes). Estar Memorias son totalmente Volátiles, es decir que necesitan tensión (5 V) para mantener sus datos en existencia y es por eso que al apagar la máquina pierden todo su contenido. El acrónimo RAM (Ramdom Access Memory), Memoria de Acceso Aleatorio alude a la posibilidad de elegir cualquier posición (o renglón) al azar en oposición a las Memorias R.O.M que deben ser accedidas solamente desde una posición, para continuar con la siguiente, y así sucesivamente hasta culminar con el proceso de lectura. Estas memorias son del tipo Dinámica y es por eso que se las denomina genéricamente DRAM (Dinamic Ram). Para mantener sus datos deben ser refrescadas permanentemente por un pulso que por así decirlo los "reafirma" o "reescribe". Es por eso que cuando se desea leer un dato de una RAM se debe esperar que se cumpla el ciclo de refresco. Al tiempo que tarda una RAM en entregar un dato solicitado de le llama "Tiempo de Acceso" y en las RAM ELECTROTECNIA 87 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I actuales es cercano a los 60 nanosegundos (60 milmillonésimas partes de segundo). El conjunto de chips que conforma la RAM principal se encuentra conectada a los tres buses antes descriptos (Direcciones, Datos y Control) para poder intercambiar datos con el microprocesador. Cualquiera de los renglones de memoria puede ser elegido por el microprocesador al poner en el Bus de direcciones su dirección específica (Nº de renglón). A su vez por el Bus de Control el microprocesador indica que chip de memoria está seleccionado para trabajar mediante la activación de la señal CS (Chip Select), y si el proceso es de escritura o lectura gracias a las señales de Write (escritura) y Read (lectura) respectivamente. Los datos fluyen en el momento correcto por el Bus de Datos, ya sea de la Memoria al microprocesador o viceversa. Los chips de memoria poseen muchas posiciones de ocho bits, por lo que no es conveniente contarlas en sistema binario ni decimal sino en Hexadecimal que favorece poner números grandes con pocos dígitos. Cada posición así codificada es una Dirección de memoria. Tomando a modo de ejemplo, un chip de memoria de un Megabyte, que tiene aproximadamente 1.000.0000 de posiciones de 1 byte cada una: (para una mejor comprensión las direcciones aparecen en decimal). SLOTS Y MEMORIAS DE MAINBOARD PARA PC. Tipos de slots y características. Slots para Tarjetas de Expansión. Ranuras PCI. Este tipo de Bus local fue propuesto por Intel, en el año de 1992, el cual fue adaptado en forma gradual por la mayoría de los fabricantes de computadoras, incluido la Apple Computer. Este bus consta de 188 pines en la ranura de la arquitectura MCA, Su trabajo es similar al desarrollado por VL. Es considerado como un sistema de control de bus local de alta velocidad, con las características adicionales que permitían mantener el bus lleno de datos y minimizar así el estado de espera, permitiendo realizar operaciones simultáneas. Este sistema soporta el modo de ELECTROTECNIA 88 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I transferencia denominado “Ráfagas Lineales”, que permiten a los periféricos recibir datos de la memoria principal en grandes volúmenes. Características: - Contiene un controlador de bus de alta velocidad que varía de 33 a 66MHz. - Los datos que se transmiten son de 32 a 64 bits. Por tanto la velocidad de transferencia varía desde 132 a 264 MBps. - La tecnología PCI fue creada con el fin de reducir costos, simplificando el diseño del sistema completo. La prueba más evidente la constituye el hecho de poder emplear un juego de Chips PCI creados para implementar funciones del sistema, tales como: la DMA y la L2 de mayor capacidad. - Utiliza el método por ráfaga lineal y la técnica de multiplexado de datos. Slots PCI Ranuras ISA. Las siglas ISA hacen referencia a la Industry Standard Architecture (Arquitectura Industrial Estandarizada), fue diseñada por IBM. Cuando en la actualidad se habla de estándares industriales o del bus ISA se suele hacer pensando en el Bus AT de 16 bits. Este preconcepto no es, de todos modos, absolutamente adecuado pues la denominación ya se empleaba en los tiempos del XT de IBM y por razones muy válidas. Las ranuras de expansión uniformes del XT fueron unas de las razones fundamentales para la enorme difusión de este tipo de computadoras y la de sus sucesores. Las mismas representan de la forma más clara el concepto de la arquitectura abierta de las computadoras, la cual, a través de la incorporación de tarjetas de expansión de todo tipo, capacita a la computadora para realizar cualquier clase de tarea, sobre todo las relacionadas con entornos industriales. Las ranuras del XT incluían, junto al Bus de direcciones de 20 bits, un solo Bus de datos de 8 bits. Su capacidad operativa era, por tanto, y desde una perspectiva actual bastante limitada. Características: - Los datos son para 8 y 16 bits. - La velocidad del bus es de 3,88 MHz. ELECTROTECNIA 89 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I - Transfiere señales a 8 Mbps. Ranuras ISA Ranuras AGP. Se utilizan exclusivamente para conectar tarjetas de video 3D, por lo que sólo suele haber una; además, su propia estructura impide que se utilice para todos los propósitos, por lo que se utiliza como ayuda para el PCI. Características: - Su frecuencia es de 100 MHz para 64 bits. - Su velocidad de transferencia de datos es de 800Mbps (aprox.), es 4 veces superior a la arquitectura PCI. - Este bus permite cargar texturas en la RAM principal, es decir ya no se limita a la capacidad de la memoria de la tarjeta gráfica. - Mayor calidad gráfica y reproducción de video más nítida. - Operaciones de lectura/ escritura en memoria de Pipeline. Ranuras AGP Ranuras de Bus Local Vesa. Este bus denominado también VL (Video Local), consiste en el control del bus local, el cual está conectado directamente a la CPU y a la memoria principal. Esta tecnología fue propuesta por Vesa (Asociación Electrónica Standard de Video). Características: - Utiliza la arquitectura MCA de 62 pines en el Slot Expandible de 32 a 64 bits de datos. - Su ancho de banda soporta como máximo 16 Mbps, el cual es imposible manejar con facilidad los trabajos en diseños gráficos. - Se empezó a usar en los 486 y se dejó de usar en los primeros tiempos de las Pentium. - Son un desarrollo a partir de ISA, que puede ofrecer unos 160 Mbps a un máximo de 32 MHz. ELECTROTECNIA 90 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Características: Ranuras Color Tamaño Uso Actual ISA – 8 Negro 8,5 cm Obsoleto ISA – 16 Negro 14 cm Sonido VESA Marrón + Negro 22 cm Obsoleto En todas las PCI Blanco 8.5 cm Mainboard AGP Marrón 8 cm Sólo Video Slot de Memoria. Son conectores para la memoria RAM, antiguamente los chips de RAM se colocaban uno a uno sobre la placa, de la forma en que aún se hace en las tarjetas de video, los cual no era una buena idea debido al número de chips que podía llegar a ser necesario y a la delicadeza de los mismos; por ello, se agruparon varios chips de memoria soldados a una plaquita, dando lugar a lo que se conoce como ranuras. Estos módulos han ido variando de capacidad, tamaño y forma de conectarse. Ranuras de Memoria o Bancos de la Memoria Principal. Los bancos de memoria también son denominados como “Arquitectura de Bancos RAM”, cuales se encuentran instalados en la placa base, los cuales han evolucionado respecto a la seguridad, voltaje de polarización, capacidad y soporte para la instalación de la tecnología del tipo de memoria. Bancos de Memoria tipo DIP. Los primeros bancos de memoria (placa base de la PC XT) se organizaron como BANK0, BANK1, BANK2 y BAMK3, los cuales están compuesto por zócalos tipo DIP donde se instalaban las memorias DRAM tipo DIP. ELECTROTECNIA 91 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Bancos de memoria SIMM (Módulo de Memoria de Línea o Interfaz Simple). Los bancos de memoria SIMM son ranuras de 30pines (8 bits de datos y uno bit de paridad) y 72pines (32bits de datos y 4bit de paridad) diseñados para conectar tabletas de memoria tipo FPM (30 y 72pines) y EDO (72pines). Los bancos SIMM se organizan de tal forma que cumplen con el estándar de canal ancho. Los bancos SIMM están conectados en paralelo con el cual se adiciona mayor capacidad de memoria. ELECTROTECNIA 92 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Bancos de Memoria DIMM (Módulo de Memoria de Línea o Interfaz Doble). Los bancos de memoria tipo DIMM son ranuras que se diseñaron con 168 pines, con una distribución de 84 pines en cada una de las filas. En las ranuras denominados bancos DIMM se insertan las tabletas SDRAM para los sistemas Pentium MMX, Pentium Pro, Pentium II y Pentium III. Cada uno de los bancos tiene dos muescas referenciales de conexión. Estos bancos a diferencia de los bancos SIMM, facilita el funcionamiento del sistema Pentium MMX, porque sólo se usa una sola tableta de memoria SDRAM de 8MB en la ranura de un banco, mientras que en los bancos SIMM se usan dos tabletas de memorias EDO. Hay que indicar que la conexión de los bancos están en paralelo permitiendo de esta manera el incremento de capacidad de la memoria principal del computador y de esta manera se utiliza un canal ancho. ELECTROTECNIA 93 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Es importante mencionar que el estándar DIMM se extendió para los sistemas Pentium IV. El nuevo diseño utiliza ranuras de 184 pines con una sola muesca referencia y punto de polarización. Bancos de Memoria RIMM (Modulo RAMBUS de Memoria en Línea). Los bancos de memoria RIMM se desarrollaron inicialmente para los sistema Pentium III, luego se utilizaron en las placas base Pentium IV i850 de Intel, con la característica de utilizar cuatro bancos de memoria de tal manera que dos bancos pueden utilizar dos tabletas RAMBUS y las otras dos son reemplazadas por las memorias de continuidad o llamadas también memorias terminadoras ELECTROTECNIA 94 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I para llenar todos los bancos y de esa manera trabajar en forma estable, hay que indicar que en los bancos donde se instalan las memorias de continuidad, se pueden instalar memorias RAMBUS con la finalidad de incrementar la capacidad. En los bancos RIMM la RAMBUS opera como un módulo autónomo sobre el bus de datos de 16bits, pero cada chip memoria RDRAM tiene un núcleo que opera sobre un bus de 128bits de ancho dividido en cuatro bancos de 16bits a 100MHz. Es importante indicar que cada uno de los chips RDRAM pueden transferir hacia y desde el núcleo, por lo que utiliza una interfaz interna de alta velocidad donde internamente es ancha pero es extremadamente angosta (conexión serial) en forma externa. Los bancos de memoria se diferencian de las DIMM porque muestran dos muescas separadas a 11.5mm que indica, que es una RIMM de 2.5V. Otra de sus características que podemos indicar es que estos bancos de memoria incorporan un dispositivo SPD (detección de presencia serial), el cual es una flash ROM en la tableta, la cual contiene información a cerca del tamaño y tipo de RIMM e incluye información detallada sobre la temporización para el controlador de memoria que lee automáticamente los datos de la ROM SPD para la configuración del sistema. La conexión interna de los bancos RIMM son en forma serial, tal como se muestran en las figuras adjuntas. ELECTROTECNIA 95 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I TIPOS DE MEMORIA Y CARACTERÍSTICAS. Memoria de Sistema Se denomina así a la memoria ROMBIOS, encargada de controlar el hardware del computador; la tecnología de esta memoria ha evolucionado desde una simple memoria ROM hasta la memoria EPROM (ROM programable y borrable con luz ultra violeta) hasta la EEPROM, la cual es regrabable y se pueden eliminar los programas o datos internos en forma eléctrica. Esta memoria tiene la facilidad de actualizarse por medio de Internet (bajar el programa actualizador) y en forma local, es decir en el propio computador. La memoria EEPROM o simplemente FLASH ROMBIOS se instala en la placa base sobre un zócalo tipo DIP y en otros diseños de placa base esta se suelda sobre la placa base en forma superficial o con inserción en la placa base. Memoria RAM Caché Es una memoria RAM pequeña de tipo estático (SRAM), rápida pero clara, permite compensar las diferencias de velocidades entre el microprocesador y la memoria central del computador, así como las velocidades entre la DRAM y la unidad de disco duro o fijo. ELECTROTECNIA 96 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Podemos decir también que la memoria caché facilita el proceso de información almacenando datos e instrucciones de proceso así como los datos e instrucciones repetidos en dicho proceso que se sitúa entre el procesador y la memoria principal. La caché de primer nivel es la que se encuentra integrada dentro del propio microprocesador y resulta, lógicamente mas efectiva que la de segundo nivel, ya que dispone de una vía directa de 128 bits en el interior del chip. Dado que la caché puede funcionar a la velocidad de la CPU, el sistema está diseñado de tal manera que el controlador de la caché anticipa las necesidades de memoria del procesador y carga previamente los datos pertinentes en la memoria de alta velocidad; después, cuando el procesador invoca una dirección de memoria, los datos correspondientes pueden obtenerse de ella, en lugar de tener que recurrir a la lenta memoria principal. Características: - Son memorias activas del tipo estáticas. - Almacenan datos e instrucciones direccionados por el chip CPU, usados constantemente. - Las memorias caché se clasifican en L2 (caché externa) y L1 (caché interna). Clasificación: a) RAM caché L1. Es una memoria pequeña de alta velocidad que esta integrada dentro del chip CPU utilizando la técnica built-in (ver figura adjunta). Esta memoria se diseña en forma de RAM caché built-in desde la ELECTROTECNIA 97 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CPU 80486 hasta las Pentium IV, cuyas capacidades se indican en la siguiente Tabla. Memoria Caché Interna b) RAM caché L2. Es la memoria SRAM más grande que la L1, inicialmente se instalo bancos RAM caché en la placa base y luego con la evolución de los sistemas CPU, esta memoria caché se instalo primero como una integración en el chip CPU del tipo Onboard, luego como una On Chip y finalmente como un Built-In. La capacidad y técnica de instalación se muestra en la siguiente tabla. ELECTROTECNIA 98 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I c) RAM Caché L3.Tipo de memoria caché se encuentra instalados en la placa base. L3 o la comunicación L3 es también un surtidor de la inteligencia, de la vigilancia y de los sistemas y de los productos del reconocimiento, de los sistemas y de los productos seguros de comunicaciones, de los componentes de la microonda, y de los productos del espacio y de la navegación. Memorias Activas y Pasivas del Computador. La computadora personal utiliza varios tipos de memorias para realizar las actividades del proceso de información, almacén de datos, complementación del proceso de datos y las controladoras del trabajo de los dispositivos hardware instalados en el computador. Concepto de Memoria. Es un dispositivo electrónico digital que almacena datos binarios organizados en cantidad de bytes. Pero hay que tener en cuenta que los datos se almacenan celda por celda con un bit como dato. Las memorias utilizan ELECTROTECNIA 99 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I diversas tecnologías para cumplir con su propósito, que consiste en almacenar (grabar) y entregar (leer) los datos. Por ejemplo se tienen memorias semiconductoras, magnéticas y ópticas. Memorias Semiconductoras. Son aquellas memorias desarrolladas sobre el cristal silicio dopado denominado Oxido de Silicio (SiO2) y otras composiciones químicas como por ejemplo el arseniuro de galio (GaAs), los cuales permiten utilizar altas tecnologías de integración. Las memorias semiconductoras son representadas por las memorias ROM (memoria solamente de lectura) y RAM (memoria de acceso aleatorio) Memoria Semiconductora RAM. Es una memoria del tipo activa porque puede almacenar y entregar datos en forma temporal y es volátil porque fácilmente se pierden los datos por la ausencia de voltaje de polarización. Esta memoria tiene gran aplicación en la computadora y esto se debe la especial consideración que se le otorga con la siguiente definición: “El espacio de trabajo del procesador de la computadora”. Esta definición la convierte en la memoria principal y complementaria del computador (RAM Cache), pero para diferenciarla debemos hacer las siguientes observaciones, ver la Tabla adjunta. ELECTROTECNIA 100 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Memorias ROM (memorias solamente de lectura). La memoria ROM es una memoria del tipo pasiva porque su función es de entregar siempre la información almacenada por el fabricante en ella, no permite cambiar su información a voluntad del usuario no pierde dicha información si se le retira la energía eléctrica de polarización, por eso se le denomina también “memoria no volátil” ELECTROTECNIA 101 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I La evolución de la memoria ROM es: PROM (utiliza matrices UNO y CERO) y la EPROM (utiliza la inducción de energía electrostática sobre la tecnología FAMOS (una variación del CMOS). Las diferencias de características entre las tres memorias se indican en la Tabla adjunta. Memoria ROM Semiconductora. La memoria de sólo lectura (ROM) es una especie de memoria que puede almacenar datos permanentemente. Es una memoria no volátil porque cualquier información almacenada en ella se conserva aunque se apague el sistema. Las tarjetas adaptadoras que requieren controladores durante el proceso de arranque requieren de un ROM en tarjeta. Por ejemplo: las de vídeo, las SCSI, controladoras EIDE, y algunas de red. Tipos de ROM. ELECTROTECNIA 102 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I • Memoria PROM. Son memorias ROM programables, cuyo contenido es inalterable, pero desde el momento que ha sido programada, es decir que el fabricante entrega al usuario todas las celdas limpias o totalmente cerradas, están dispuestas a recibir una sola información la cual no puede ser modificada. Características: - Su programación es una sola vez, es decir, no puede volver a programarse. - La PROM pueden identificarse por los números 27nnnn. - Los datos almacenados en la PROM pueden ser leídos una y otra vez. • Memorias EPROM. En una EPROM las celdas de almacenamiento son transistores MOSFET que tienen una compuerta de silicio sin ninguna conexión eléctrica (es decir una compuerta flotante). Durante el proceso de programación, se emplean las direcciones y terminales de la EPROM para seleccionar las celdas de memoria que serán como ceros así como las que se dejarán como unos. Características: - Una vez programada por el usuario esta puede borrarse y reprogramarse las veces que se desee. - El proceso de borrado se tiene que hacer exponiendo la EPROM a la luz ultravioleta por un cierto tiempo. - Este chip puede ser reconocido por la ventana de cristal de cuarzo colocada en la parte superior del encapsulado del chip. EPROM • Memorias EEPROM. Las ventajas de las EPROM se eliminaron con la producción de la EEPROM (PROM eléctricamente borrable), La EEPROM conserva la estructura de la compuerta flotante de la EPROM, pero con la ELECTROTECNIA 103 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I conclusión de una región muy delicada encima del electrodo de drenaje de la celda de memoria MOSFET. Características: - Las EEPROM tienen la facilidad de borrar eléctricamente bytes individuales. - Pueden ser programadas con mayor rapidez, comúnmente se requiere 5 ms para escribir dentro de una localidad. Tecnologías de la Memoria Principal. Es la técnica de diseño de la memoria y el modo de instalación de los chips DRAM en los bancos de memoria del computador. El diseño consiste en producir memorias tipo chips DIP y tabletas DRAM como se indica en la figura adjunta. Las tabletas se conectan al banco por medio de pines para el caso de los modelos SIPP y galletas para los modelos SIMM, DIMM y RIMM. Las tecnologías son las siguientes: • Memorias Chip DIP DRAM. Son memorias DRAM tipo chip que utilizan los sistemas 8088/8086 de las PC XT, los cuales utilizan 20 líneas de dirección (20bits) pudiendo direccionarse desde 640KB hasta 1MB. La capacidad de memoria direccionada, permite al sistema PC XT trabajar en el modo real y utilizar como sistema operativo al DOS. La actividad de esta memoria utiliza el modo ráfagas 5-5-5-5 para una frecuencia de bus de 8MHz y 16MHz. ELECTROTECNIA 104 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I • Memorias Chips Sobre Tableta tipo SIPP. Esta tecnología fue la evolución de las memorias chip DRAM tipo DIP para las PC-AT cuyo sistema el la 286, se instalan sobre bancos de memoria tipo SIPP. Tabletas de Memorias DRAM - FPM (Modo de Página Rápida). La memoria FPM es la DRAM que utiliza el modo de paginación y la técnica de ráfaga. El acceso a la información de las memorias normales DRAM consiste en seleccionar una dirección fila-columna, esto permite utilizar mucho tiempo. La técnica de paginación permite el acceso más rápido a toda la información dentro de una fila de memoria mientras se mantenga la misma dirección de la fila y se cambie solo la columna (columna estática). La memoria paginada es un esquema simple que perite mejorar el rendimiento a través de la división de le memoria en paginas de 512Bytes algunos cuantos kilo Bytes de extensión. Expliquemos lo siguiente: la memoria DRAM estándar tiene un tiempo de acceso de 60nseg, por tanto corre normalmente en el modo ráfaga 5-3-3-3, es decir que, el primer acceso usa un total de cinco ciclos y los tres restantes accesos utiliza cada uno 3 ciclos, a diferencia de la DRAM normal que su modo de ráfaga es de 5-5-5-5. ¿Qué significan las cinco y tres ciclos en el modo ráfaga? Primero expliquemos el caso de los cinco ciclos: la velocidad del bus es de 66MHz, entonces determinamos el periodo de repetición de ciclo. ELECTROTECNIA 105 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Luego, se calcula el tiempo de acceso a la memoria para los cinco ciclos: Para el caso de los tres siguientes ciclos el tiempo de acceso es: Tabletas de Memorias RAM - EDO (Salida Extendida de Datos). El año 1995, se puso a la disponibilidad para el uso de la computadora personal Pentium. La memoria EDO es la modificación de la RAM dinámica FPM en el uso de la nueva técnica Modo Hiperpágina, fue inventada y patentada por la corporación Micron Technology. El modo hiperpágina consiste en utilizar chips especiales que permiten una traslape de temporización entre accesos sucesivos, también hay que indicar que el nombre de Salida de Datos Extendida se refiere a que los controladores de salida de datos del chip no se apagan cuando el controlador de memoria quita la dirección de columna para iniciar el ciclo subsiguiente, esto permite al siguiente ciclo traslaparse sobre el previo, ahorrando 10nseg por ciclo. La memoria EDO permite una serie de ciclos en el modo ráfagas de 5-2-2-2 realizando cuatro transferencias de memoria, para la cual necesita de 11 ciclos totales del sistema a diferencia de la memoria FPM con el modo ráfagas 5-3-3ELECTROTECNIA 106 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I 3 el usa 14 ciclos, produciéndose un mejoramiento de 22% en forma teórica pero en la práctica se logra obtener solo el 5% de mejoramiento en su rendimiento. ¿Cuál es el tiempo de acceso de RAM EDO? Primero, se indicará que la frecuencia del bus es de 66MHz, el cual define un período de: Segundo, se determina el tiempo de acceso para los cinco primero ciclos: Finalmente, determinar el tiempo de acceso para los dos siguientes ciclos: Es importante indicar que los sistemas Pentium con placas base de Intel i430FX (chipset modelo triton). Tableta de Memoria SDRAM (RAM Dinámica Sincronizada). Es la memoria DRAM funciona en sincronización con el bus de memoria y el bus de la placa base. La memoria SDRAM entrega información por ráfagas muy rápidas por medio de una interfaz temporizada de alta velocidad y fueron diseñadas para trabajar en placas base i430VX y la i430TX de los sistemas ELECTROTECNIA 107 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Pentium. Por su alto rendimiento y gran velocidad, su diseño fue desarrollado para sistemas Pentium II y III, su latencia es menor respecto a lo desarrollado por las memorias FPM y EDO, porque utiliza solamente 8 ciclos para el acceso a los datos, utilizando el modo por ráfagas 5-1-1-1, el cual explicaremos a continuación: Primero, definir la frecuencia del bus de sistema igual a 100MHz, el cual determina un período igual a: Segundo, determinar el tiempo de acceso para los primeros cinco ciclos: Tercero, determinar el tiempo de acceso para un ciclo que corresponde a los tres últimos ciclos. Finalmente, se revisó el estándar de la memoria SDRAM y se concluyó que podía soportar frecuencia de buses de 133MHz en los nuevos sistemas Pentium III, tal como se indica en la tabla técnica de especificaciones. ELECTROTECNIA 108 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Nuevas Tecnologías DRAM. Es importante indicar que los sistemas de memorias convencionales (FPM, EDO y SDRAM) son conocidos como sistemas de memoria de canal ancho, por ejemplo podemos indicar que las memorias que utilizan los bancos DIMM usa un ancho de 64bits o de 8bytes para la frecuencia de 100MHz, muestra un rendimiento de 100MHz x 8Bytes = 800MBps, esto permite al controlador de memoria SDRAM ubicado en el chipset North Bridge, permite administrar de tres a cuatro bancos DIMM. En los chips DRAM de las tabletas SDRAM se muestra por ejemplo la siguiente nomenclatura: ELECTROTECNIA 109 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Tabletas de Memoria RAMBUS o RDRAM. La memoria RAMBUS es un diseño que consiste en utilizar un bus de memoria chip a chip, cuyos chips instalados en la tableta soportan altas velocidades, a diferencia de las anteriores tecnologías conocidas también como sistemas de canal ancho, la RAMBUS es un sistema de canal angosto. Esta memoria inicialmente se diseño para los sistemas Pentium 3 con 168 pines para frecuencias de bus de 100 y 133MHz, pero después se estandarizo para sistema Pentium 4 con 184 pines de 800MHz de velocidad de bus, se polarizan en forma predeterminada con 2.5 voltios. Una de las mejoras importantes de la RAMBUS es la separación de las señales de control y datos en el bus, es decir que existen dos buses los cuales son independientes tanto para los datos como para el control y ambos divididos en dos grupos de pines para comandos de fila y columna y los datos se transfieren por un bus de datos de 2bytes de ancho. Hay que tener en cuenta que la velocidad del bus real de la memoria es de 400MHz, pero los datos se transfieren por los flancos de bajada que se le conoce con el nombre de PAR y los flancos de subida que se le conoce con el nombre de NON, como se muestra en la figura adjunta, por tanto el bus utiliza el doble de la velocidad real, es decir 400MHz x 2 = 800MHz ¿Cómo operan las RAMBUS? Transfieren datos a solo 16bits (2Bytes) a la vez y dos bits opcionales de paridad pero con altas velocidades (fBUS = 800MHz). El rendimiento global es de 800MHz x 2Bytes = 1.6GB. Para obtener mayores incrementos de velocidad es importe utilizar dos o cuatro canales RAMBUS simultáneamente incrementando el rendimiento de 3.2GBps a 6.4GBps. ELECTROTECNIA 110 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Por ejemplo una RDRAM se instala sobre los bancos de memoria tipo RIMM, el cual opera como un módulo autónomo sobre el bus de datos de 16bits, pero internamente cada chips RDRAM tiene un núcleo que opera sobre un bus de 128bits de ancho o 16Bytes los cuales son transferidos desde y hacia el núcleo, por tanto podemos concluir que la RAMBUS soporta una interfaz de alta velocidad en la cual internamente es ancha, pero, en forma externa es muy angosta la cual eleva su rendimiento. Tableta para memorias DDRAM o SDRAM DDR (doble frecuencia de datos). La memoria DDR se considera como la evolución de la SDRAM en la cual los datos son transferidos a doble velocidad, es decir dos datos por ciclo de clock, por ejemplo un dato lo realiza durante el flanco de bajada y el otro durante el flanco subida de la señal del clock, como se muestra en la figura adjunta. Además, para que no exista confusión posible a la hora de instalarlos (lo cual tendría consecuencias sumamente desagradables), los DDR tienen 1 única muesca en lugar de las 2 de las SDRAM de los bancos DIMM "clásicos", con las característica mostrada en la figura adjunta. ELECTROTECNIA 111 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Inicialmente se diseñaron memorias DDR de 168 pines para las Pentium III para velocidades de 100 y 133Mhz, pero luego se estandarizo para las aplicaciones Pentium 4 en la cual la memoria DDR estaba diseñada con 184 pines para velocidades de 200MHz (2x100MHz) y 266 (2x133MHz) y utilizan un voltaje de polarización de 2.5voltios. MEMORIAS UTILIZADAS EN LAS COMPUTADORAS. • CHIPS DE CONTROL E INTERFASE (CHIPSET). Los chips de control están conformados por un determinado número de circuitos integrados en el que se han incluido la mayoría de los componentes que dotan a un computador de compatibilidad PC/XT y PC/AT a nivel hardware como, por ejemplo, el controlador de interrupciones, los controladores DMA, el chip temporizador, controladoras de disco duro, etc. Los chips de control diseñados para la PC XT más importantes son los siguientes: a) Generador de Clock. es el chip encargado de iniciar al microprocesador y todo el sistema CPU en general, el circuito integrado aplicado es el 8284. ELECTROTECNIA 112 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I b) Controlador de Interrupciones. Es el encargado de controlar las señales de interrupción lógica IRQ. Las señales IRQ se encargan de identificar al dispositivo periférico con el microprocesador por medio de sus puertos de entrada. El chip encargado de realizar esta actividad se denomina 8259. c) Controlador de teclado. Es el circuito integrado encargado de controlar las interfaces del teclado, parlante y cintas magnéticas. El chip que realiza esta actividad es el 8255. d) Controlador del Acceso Directo a Memoria (DMA). Es el circuito integrado encargado controlar el acceso de datos desde el periférico unidad de almacenamiento a la memoria principal. El chip utilizado es el 8237. ELECTROTECNIA 113 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I e) Controlador de Buses.-Es el circuito integrado encargado de controlar el trabajo de los buses de la placa base, interfaces y periféricos. El chip utilizado es el 8288. Tipos de CHIPSET y Caracteristicas. El sistema PC-AT 286 utilizo el mismo esquema diseñado para la PC-XT pero con modificaciones actualizables al sistema PC-AT 286 tal como se muestra en el Cuadro adjunto. Los sistemas PC-AT386 y PC-AT 486 utilizaron las nuevas tecnologías de integración utilizando tres circuitos integrados MULTICHIPS. ELECTROTECNIA 114 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I a) PC CHIP 5 ISC (Controlador Integrado de Sistema), en el están contenidos el Controlador de BUS, el RESET lógico de la CPU, el Generador de Clock, el controlador de Teclado y Tiempo, el controlador de DMA y Refresco lógico de memoria y PPI. b) PC CHIP 6 IMC (Controlador Integrado de Memoria), éste Multichip están contenidos el controlador de la memoria por modo de página DRAM, el controlador de memoria CACHE, y soporta el acceso directo de datos al Coprocesador. c) IC 82C206 IPC (Controlador Integrado de Periféricos), se encarga de administrar el requerimiento de Periféricos al Sistema, los siete (7) canales DMA, los 13 (de los 16 asignados para las PC AT) Interruptores (IRQ) requeridos por los canales, los dos (2) canales Contadores de Tiempo y el Reloj de Tiempo Real. Arquitectura North y South Bridge. Esta arquitectura multinivel desarrollada por Intel que la denomino Chipset. El Chipset es el conjunto (Set) de chips que se encargan de controlar algunas funciones de la computadora, como por ejemplo la forma en que interacciona el microprocesador, con la memoria DRAM y la memoria caché. También en el control de puertos y Slots de diferentes arquitecturas y tecnologías. Intel desarrolla la arquitectura multinivel con tres chips que se les conoce con el nombre North Bridge, South Bridge y un chip súper E/S. North Bridge. Es la conexión entre el bus de alta velocidad del procesador (200/133/100/66MHz) y los buses más lentos AGP (66MHz) y PCI (33MHz). El North Bridge es el punto de referencia para denominar a un conjunto de chips, en la práctica a este chip se le denomina también Chipset Sistema o chipset principal. South Bridge. Es el puente entre el bus PCI (33MHz) y el bus más lento denominado ISA (8MHz). En la práctica a este chipset se le denomina Chipset Bridge o Periférico. ELECTROTECNIA 115 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Chip Súper E/S. Es un chip encargado de integrar dispositivos anteriormente encontrados en la tarjeta de expansión separadas. La mayoría de los chips Súper E/S contienen como mínimo los siguientes componentes: controlador para disquetera, controlador de puerto serial dual y controlador de puerto paralelo. Este chip también puede contener otros componentes como por ejemplo el puerto paralelo multimodal para los estándares ECP/EPP, dos puertos seriales de alta velocidad y controlador de teclado y Mouse del tipo 8042. Arquitectura de Concentrador. Son los chips más recientes de la serie i8xx que utilizan una arquitectura de concentrador donde el chipset conocido como Sistema y North Bridge recibe el nombre Concentrador Controlador de Memoria (MCH) y el chipset. Periféricos o South Bridge recibe el nombre de Concentrador Controlador de Interfaces (ICH). Este sistema trabaja no tomando en cuenta la conexión a través del bus PCI usados en los sistemas convencionales y el sistema North/South Bridge sino por medio de una interfase dedicada denominada concentrador de 4x66MHz el cual dos veces mayor que la velocidad de transferencia del bus PCI (VT = 133MBps), cuyo valor es 266MBps y no comparte el ancho de banda. El sistema MCH/ICH de Intel permite un rendimiento mucho mayor para los dispositivos PCI, dotándolos de mayor rendimiento. Para el caso de los dispositivos PCI conectados directamente al chipset ICH, soportando las nuevas interfaces de alta velocidad ATA-66, ATA-100 y el USB 2.0. Finalmente, se indicará que el chipset MCH crea una interfaz entre el bus de alta velocidad de 100 y 133MHz y la interfaz del concentrador de 66MHz y del bus AGP (66MHz), mientras que el chipset ICH lo realiza entre la interfaz del concentrador (66MHz) y los puertos IDE ATA/66 y el bus PCI (33MHz). También hay un nuevo bus de pocos pines, el cual consiste básicamente de una versión reducida de PCI, diseñada para articularse con el chip BIOS y un chip Súper E/S (opcional). Es importante tener presente la siguiente premisa “El uso de un buen Chipset no implica que la Placa Base sea de Calidad”. ELECTROTECNIA 116 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Ejemplo pala el Sistema Pentin III. Ejemplo para el sistema Pentium IV. ELECTROTECNIA 117 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Tipos de conectores y características. Conectores Externos. Se trata de los conectores para periféricos externos. En las Mainboards Baby – AT, los puertos están en contacto con la Mainboard, mediante unos cables flat que se sitúan en el case, excepto el de teclado que está adherido a la Mainboard. Se clasifican en: a) Conector de Teclado. Puede utilizar una clavija DIN, propio de las Mainboards AT y un Mini-DIN o PS/2 pines en Mainboards ATX. b) Puerto Paralelo. Diseñado por “Centronics” en 1976.También llamado LPT1 (en los pocos casos que existen más de uno, el segundo sería LPT2. Bajo DOS se incorporan los puertos LPT1, LPT2 y LPT3; el OS/2 permite puertos desde el LPT1 hasta el LPT9. Se caracteriza por: - Es un conector hembra de unos 38 mm, con 25 pines agrupados en dos hileras. - Es un puerto de entrada/salida que permite manejar 8 bits al mismo tiempo. - Con frecuencia es utilizado por la impresora. c) Puerto Serial. Conocidos como puertos COM, RS232 o puertos asíncronos, Suelen ser dos. Bajo DOS se soportan los puertos de comunicaciones COM1, COM2, COM3 y COM4. El RS232C es el producto serial mas común ELECTROTECNIA 118 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I utilizado por las computadoras cuando se comunican por Modems, impresoras, etc. Se caracteriza por: - El COM1 suele ser de unos 17 mm, con 9 pines agrupados en dos hileras. - El COM2 suele ser ancho de unos 38 mm, con 25 pines agrupados en dos hileras. - Es como el puerto paralelo pero macho, es decir, con los pines hacia fuera. - Es un puerto de entrada/salida que soporta comunicación serial, en la cual la información es procesada un bit a la vez. d) Puerto para Mouse PS/2. El nombre proviene de su uso de sus computadores PS/2 de IBM. Es un conector Mini DIN como el del teclado. e) Puerto de Juegos (Game Port). Es un puerto para Joistick o teclado midi. Se caracteriza por ser de tamaño algo mayor que el puerto serie estrecho, de unos 25 mm de 15 pines agrupados en dos hileras. f) Puerto VGA. Tiene las siguientes características: - Suelen medir unos 17 mm, con 15 pines agrupados en tres hileras. - En algunos casos pueden estar o no integrados a la Mainboard. g) Puerto USB (Universal Serial Bus). De reciente aparición. Tienen dos ventajas: velocidad y facilidad de uso. Los periféricos para puertos USB son reconocidos automáticamente por el computador (se configuran casi automáticamente). Se caracterizan por: - Permiten transferir datos diez veces más rápido que un puerto serial. - Se conectan en cadena (hasta 127). Línea de Salida Línea de Entrada RJ – 45 Lan Puerto Paralelo Puerto USB 1 Puerto Serial A Puerto USB 0 Puerto Serial B Conectores externos ELECTROTECNIA Puerto para Mouse Puerto para Teclado Video 119 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Conectores Internos. Bajo esta denominación se engloba a los conectores para los dispositivos internos. Entre estos se tienen: a) Conector Eléctrico. Es donde se conectan los cables para que la minboard reciba la alimentación proporcionada por la fuente. Se caracteriza por: - En la Mainboard Baby - AT los conectores son dos, si bien están uno junto al otro, mientras que en la ATX es único. - El conector ATX suele tener formas rectangulares y trapezoidales alternadas en algunos de los pines de tal forma que sea imposible equivocar su orientación. Conector eléctrico de la mainboard. b) Conector de Disquetera. Se caracteriza por tener 34 pines y ser de menor tamaño. c) Conector de Disco Duro IDE. Se caracteriza por tener 40 pines (a veces solo 39 ya que el pin 20 carece de utilidad). Conector de Disco Duro IDE. ELECTROTECNIA 120 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I AUTOEVALUACIÓN N° 3 I. Contestar en forma breve las siguientes preguntas: 1. ¿En qué se diferencian los tipos de Mainboard AT de las ATX? ............................................................................................................................... ............................................................................................................................... ............................................................................................................................... ............................................................................................................................ 2. ¿Qué es la Bios? ............................................................................................................................... ............................................................................................................................ 3. ¿Qué es la memoria Caché? ............................................................................................................................... ............................................................................................................................. 4. ¿Qué función cumple la pila en una Mainboard? ............................................................................................................................... ............................................................................................................................. 5. ¿Qué nombre que tomó la quinta generación de microprocesadores? ............................................................................................................................... ............................................................................................................................. 6. Hablar acerca de las ranuras PCI. ............................................................................................................................... ......................................................................................................... 7. ¿Qué son las memorias activas y quienes la conforman? ............................................................................................................................... ............................................................................................................................... ............................................................................................................................... ............................................................................................................................... ........................................................................ 8. ¿Qué son la memorias pasivas y quienes la conforman? ............................................................................................................................... ............................................................................................................................... ............................................................................................................................... ................................................................................... 9. ¿Cuántos son los Chipset de una Mainboard y cómo se les conoce ? ............................................................................................................................... ............................................................................................................................... .............................................................................................. ELECTROTECNIA 121 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I 10. Los conectores externos se clasifican en: a).................................................... b).................................................... c).................................................... d).................................................... e).......................................................... f).......................................................... g).......................................................... 11. Los conectores internos se clasifican en: a)........................................................... b)........................................................... c)........................................................... II. Colocar el nombre que le corresponde a cada número del diagrama. 10 19 13 20 16 2 14 7 5 6 1 3 8 9 4 11 ELECTROTECNIA 15 18 12 17 122 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CAPÍTULO 4 4 PERIFÉRICOS DE INPUT DE UNA PC. En este capítulo se tratará: Teclado de una PC. Tipos de Teclado. Caracteristicas del teclado de una PC. Mouse de una PC. Funcionamiento. Tipos de Mouse. Caracteristicas del mouse de una PC. ELECTROTECNIA 123 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I PERIFÉRICOS DE ENTRADA DE UNA PC. Teclado de una PC. El teclado es un periférico de entrada que se le da poca importancia, especialmente en las computadoras clonadas. Si embargo es un componente esencial, pues es el que permitirá que nuestra relación con el computador sea fluida y agradable, y además junto con el Mouse son los responsables de que podamos interactuar con nuestra máquina. En principio, un teclado no parece presentar demasiados secretos. Aunque no se trata de uno de los componentes más complejos del PC, el teclado es una interesante pieza de tecnología que va un poco más allá de lo aparente. Un teclado es un conjunto de interruptores (teclas), que se hallan conectados a un microprocesador. Este último vigila el estado de los interruptores, y responde de forma específica ante cualquier cambio de estado. Los teclados suelen incorporar cuatro tipos de teclas: de escritura, de función, de control y de teclado numérico o keypad. Las teclas de escritura se suelen organizar en formato QWERTY (son las seis primeras letras que aparecen en este arreglo). La disposición de teclas es justamente la que podemos encontrar en una máquina de escribir. Si habitualmente se usa el procesador de textos, se hace programación, u alguna otra actividad en la que se haga un uso intensivo de este periférico, es importante escoger un modelo de calidad. En el caso de que se sea usuario esporádico de las teclas, porque nos dediquemos más a juegos o a programas gráficos, entonces cualquier modelo nos servirá, eso sí, que sea de tipo mecánico. ELECTROTECNIA 124 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Partes del Teclado de 101 ó 102 Teclas. Teclado Numérico: 17 teclas. Teclas de función: 12 teclas. Controles del Cursor y de la Pantalla: 18 teclas. Área de Mecanografía: 55 teclas. Teclado Numérico. El teclado numérico (con un total de 17 teclas) facilita enormemente la introducción de dígitos, operadores matemáticos elementales, punto decimal, etc. La disposición es la que podemos encontrar en multitud de calculadoras, lo que hace su uso más familiar. Teclas de Función. Las teclas de función, dispuestas en una fila en la parte superior del teclado, permiten que los programas o el sistema operativo les asignen comandos específicos. Por ejemplo, a la tecla F1 se le suele asignar el comando "mostrar ayuda", casi de forma estándar. Teclas de Control. Finalmente, las teclas de control facilitan funciones de edición en pantalla (inicio, fin, insertar, eliminar, escape, etc.) y ofrecen cursores para desplazarse en pantalla. En el caso particular de los teclados diseñados para Windows, aparecen nuevas teclas de control, como "menú inicio" o "menú de contexto". El funcionamiento del teclado queda gobernado por el microprocesador y los circuitos de control. Matriz de Teclas o Área de Mecanografía. Las teclas se hallan ligadas a una matriz de circuitos (o matriz de teclas) de dos dimensiones. Cada tecla, en su estado normal (no presionada) mantiene abierto un determinado circuito. Al presionar una tecla, el circuito asociado se cierra, y por tanto circula una pequeña cantidad de corriente a través de dicho circuito. El microprocesador detecta los circuitos que han sido cerrados, e identifica en qué parte de la matriz se encuentran, mediante la asignación de un par de coordenadas (x,y). La siguiente imagen muestra el aspecto físico y el esquema de una matriz de teclas. Si se presiona la tecla resaltada en rojo, la corriente fluirá desde F1 hacia C1. El microprocesador identificará la tecla con las coordenadas (1,1), o lo que es lo mismo, fila 1 y columna 1. Si se presiona la tecla resaltada en azul, las coordenadas son (3,2). ELECTROTECNIA 125 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Matriz de teclas Acto seguido, se acude a la memoria ROM del teclado, que almacena lo que se denomina "mapa de caracteres". Dicho mapa no es más que una tabla que asigna un carácter a cada par (x,y). También se almacena el significado de pulsar varias teclas simultáneamente. Por ejemplo, a la tecla etiquetada como "T" se le asigna el carácter "t", pero si se pulsa SHIFT +T, se asigna "T". Los teclados permiten que la computadora asigne un nuevo mapa de caracteres, permitiendo crear teclados para multitud de lenguajes. El Efecto Rebote. Como interruptores, las teclas padecen del conocido "efecto rebote". Cuando una tecla se presiona, se produce una cierta vibración, que equivale a presionar y soltar la tecla repetidas veces, muy rápidamente. Una de las misiones del procesador del teclado es eliminar dicho fenómeno. Cuando el procesador detecta que una tecla cambia de estado con una frecuencia excesiva (mayor que la que un humano puede generar al usar normalmente el teclado), interpreta el conjunto de rebotes como una simple pulsación. Sin embargo, si mantenemos pulsada la tecla más tiempo, el procesador detecta que los rebotes desaparecen, e interpreta que queremos enviar el mismo carácter al PC repetidas veces. ELECTROTECNIA 126 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I La frecuencia con la cual se envía el carácter repetido al PC se puede establecer por software, concretamente desde el sistema operativo. Partes de Teclado 104 teclas (Windows 95/98). Área de Mecanografía: 55 teclas. Teclado Numérico: 17 teclas. Controles del Cursor y de la Pantalla: 18 teclas. Teclas de función: 12 teclas. Teclas de control Windows: 03 teclas. Tipos de Teclado. Oficina, multimedia e Internet. La idea de tener todo el control desde el teclado seduce a más de uno. Prueba de ello es la cantidad de nuevos teclados con un sinfín de teclas y botones que permiten el acceso al correo electrónico, a la Web o a las aplicaciones multimedia. También vienen con botones para configurar la función que quiera el usuario. Teclado Multimedia Teclado Natural Teclado Internet Internet Keyboard Pro de Microsoft. Incluye un apoya manos y trae 19 botones de acceso directo que se pueden personalizar gracias al software IntelliType Pro. ELECTROTECNIA 127 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Genius teclado multimedia y mouse inalámbrico. Modelo Twin Touch. Con todas las funciones y botones para acceso a Internet y reproductores de audio y video. El mouse usa un puerto infrarrojo y un sistema que asegura el buen funcionamiento en caso de interponerse objetos entre el mouse y el receptor. Teclado multimedia BTC PS2. Modelo 8190). Viene con nuevas teclas que reducen el uso del mouse al reemplazar las funciones más usadas. Genius KBM18 PS2 Español. De aspecto similar al de Microsoft, viene con apoya muñecas y 18 botones de acceso directo a Internet, email y multimedia. Teclado Microsoft Office Keyboard. Especialmente diseñado para trabajar con los programas de Office. Permite moverse rápidamente entre programas, cortar, copiar, pegar, ir hacia atrás o hacia adelante. PS2/USB. Ergonómicos. El más audaz es, sin dudas, el de Microsoft. Llama mucho la atención su forma de bandoneón y hoy es uno de los periféricos más completos del mercado, ya que la empresa de Redmond le incorporó botones multimedia y de acceso a Internet, que los primeros modelos ergonómicos no traían. Natural Multimedia Keyboard de Microsoft. Con sólo una tecla se puede acceder al Messenger, email, Internet y calculadora. Trae además teclas directas para Mis documentos, Mi música y Mis imágenes, carpetas que, en general, se usan seguidos. También trae teclas especiales para copiar, pegar o guardar documentos y archivos. ELECTROTECNIA 128 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Para Palmtops. Con la llegada de las distintas versiones de Palm al Perú, también aterrizaron los accesorios, como los tan preciados teclados. Ideal para aquellos que no se acostumbran a escribir con la miniatura, los teclados portátiles son la solución más práctica para terminar un largo documento de texto o preparar un email. Teclado para Palmtop Tecnología del Teclado. La tecnología del teclado se centra en el diseño de de las teclas, por ejemplo: los interruptores, interfaz entre el teclado y el sistema, las claves de detección y los conectores de teclado. Diseño de los interruptores de teclados. • Puramente mecánicos. • Con elemento de espuma. • Con cubierta de goma. • De membrana. Interfaz del Teclado. El teclado es considerado como una serie de interruptores montados en una matriz de teclas y conectado a un procesador de teclado 8048 (Intel) de IBM, que identifica que tecla fue oprimida, también se encarga de interpretar cuanto tiempo se oprime la tecla y puede manejar los múltiples golpes al mismo tiempo. Para manejar los golpes rápidos o múltiples se utiliza un buffer de 16bits que permite pasar cada una de las pulsaciones al sistema en sucesión. La comunicación entre el teclado y el sistema es del tipo serial de datos, es decir que el enlace transmite y recibe datos en paquetes de información de 11bits (ocho bits de datos y tres bits usados en el cuadro y control). Aunque en efecto se trata de una conexión serial, este es incompatible con la norma serial RS-232, usado comúnmente para la conexión de MODEM.. ELECTROTECNIA 129 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Características del teclado de una PC. a) Conectores. - DIN: Usado en placas AT, tiene 5 pines macho (no en orden numérico consecutivo). - Mini DIN: Este tipo de conector fue introducido por IBM y utilizado en equipos de “marca”, es el habitual en las placas con formato ATX, tiene el mismo formato que el DIN pero el conector es más pequeño. Tiene 6 pines macho. Conectores DIN y mini DIN b) Cantidad de Teclas. Depende en primer lugar del idioma. Los teclados en español tiene una tecla más que los teclados en inglés, la tecla ñ. Hace unos años venían los teclados con 101/102 teclas. Luego vinieron los teclados para Windows con 104/105 teclas (se agregaron 2 teclas Windows y una tecla para el menú contextual). Últimamente apareció el teclado Windows 98 con tres teclas adicionales: Apagado (power off), descanso (sleep) y reanudar (Wake up) para la administración de la energía, con lo que llegamos a 108 teclas en el teclado español. c) Tamaño de Teclas. Hay muchos tamaños de teclas, de especial importancia es el tamaño de las teclas ENTER y BACKSPACE, pues son las teclas que mas se pulsan. ELECTROTECNIA 130 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I d) Peso. De 0,9 a 1,2 Kg, dependiendo del material de fabricación. En la actualidad se utilizan teclados con conexión USB como nuevo estándar, con características PnP, es decir que se pueden conectar o desconectar con facilidad en el computador en caliente. También hay mencionar nueva tecnología de conexión inalámbrica por medio de la luz infraroja. Mouse de una PC. Es un dispositivo de señalamiento inventado por Douglas Englebart el año 1964, en la universidad de Stanford. El Mouse se denomino oficialmente “Indicador de Posición X, Y” y luego se estandarizo como el indicador de posición “x,y” y la Interfase Gráfica de Usuario (GUI). La Tardía Aparición del Mouse. Resulta asombroso que a pesar de desarrollarse en los años 60 un componente tan sencillo y necesario como el ratón tardara tanto tiempo en aparecer en el mundo de los ordenadores (años 80). Con frecuencia, el ser humano encuentra necesaria la acción de señalar durante cualquier acto de comunicación. En consecuencia, en la interacción con una computadora, dicha necesidad sigue ahí. Por esto sorprende la tardía aparición del ratón. Hay que decir que, en los inicios de la computación, el ratón no tenía razón de existir. En efecto, en aquellas primitivas computadoras, la interfaz hombremáquina era también primitiva (tarjetas perforadas, etc.). En los años 60 y 70, la interfaz de usuario se basaba en texto. El usuario disponía de la ayuda de las teclas denominadas "cursores", que permitían desplazarse a través de la interfaz de usuario en programas como los editores de texto, etc. Era una primera solución para hacer posible apuntar. En los años 70 se hicieron populares dispositivos como los lápices ópticos, tabletas gráficas y joystick, que ofrecían métodos más avanzados. ELECTROTECNIA 131 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Fue en 1973 con el sistema Alto de Xerox cuando se utilizó el primer ratón (que se había presentado en 1968) para sacar provecho a la primera interfaz gráfica. En 1984 -con la introducción del ordenador personal Macintosh, el ratón empezó a popularizarse, alcanzando un éxito rotundo y redefiniendo completamente la forma en que empleamos los ordenadores. El ratón se presenta como un dispositivo simple, pero que ofrece una forma de apuntamiento realmente eficiente. Las aplicaciones actuales están tan sumamente orientadas al uso del ratón que, en su ausencia, el manejo se convierte en lento y pesado. Sin duda, hoy en día un elevado porcentaje de las acciones que realizamos con un PC se desencadenan mediante unos simples movimientos y pulsaciones realizados con el ratón. Funcionamiento. La misión principal del ratón consiste en señalar puntos concretos de la interfaz de usuario de los programas. Esto se traduce en convertir los movimientos de la mano deslizando el ratón sobre una superficie plana en información digital que el ordenador puede procesar. Dicha información se convierte en el movimiento de un puntero en pantalla, que refleja el movimiento de la mano. En primer lugar, el ratón consta de una esfera de material plástico (en adelante, "bola") en su interior, que establece contacto con la superficie sobre la que se desliza el ratón (usualmente una alfombrilla diseñada a tal efecto). La bola se puede apreciar en la figura 1-a. Cuando el usuario desplaza el ratón, la bola rueda, y hace girar dos pequeños rodillos que se encuentran en contacto con ella (ver figura 1-b). Uno de los rodillos reacciona al desplazamiento en la dirección X (horizontal), mientras que el otro detecta el desplazamiento en la dirección Y (vertical). Cualquier desplazamiento del ratón se puede entender como la combinación de los desplazamientos horizontal y vertical. Por ello los ejes de giro de los rodillos forman un ángulo de 90 grados. Cada rodillo se conecta a un eje que hace girar un disco (figura 1-c). Cada disco presenta perforaciones en su superficie, formando ventanas distribuidas uniformemente. En un lado de cada disco se halla un diodo emisor de ELECTROTECNIA 132 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I infrarrojos (LED de infrarrojos), mientras que en el lado opuesto se encuentra un sensor de infrarrojos. Cuando el usuario mueve el ratón, los discos giran. Al desplazarse las perforaciones por delante del LED emisor, se alterna luz y oscuridad en el lado del sensor, es decir, se producen pulsos de luz. El sensor convierte los pulsos de luz en pulsos eléctricos. La señal resultante determina claramente el número de pulsos detectados durante cada periodo de monitorización. Esto permite calcular la velocidad y la longitud del desplazamiento en cada dirección. Figura 1-a Estructura interna del mouse Tipos de Mouses. Mouse Típico. Es el mouse de uso normal que se arrastra por el pad y que tiene dos botones o tres (el del centro sirve en algunos programas de diseño CAD para repetir la última acción. Funciona mandando al computador las señales producidas al hacer rodar una bolita de goma situada en la parte inferior del mouse cuando se contacta con una superficie. Mouse típico ELECTROTECNIA 133 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Trackball. Es un mouse especial porque siempre está estático sin necesidad de moverlo, la bola está ubicada en el costado de este la cual movemos con nuestro dedo, el lugar de arrastrarla por la superficie. Trackball Mouse Decorado. Los colores y formas están hechas para el gusto de los clientes, con imitación en mármol, transparentes, con forma de animales y totalmente adaptables a tu mano seas zurdo o diestro. Mouse Tipo Navigator. Es un mouse típico con dos botones, pero entre estos dos, existe una ruedecilla o botón de color (magic Botton) que permite el desplazamiento arriba y abajo por un documento(como si pulsase la barra de desplazamiento vertical), es muy útil si trabajas con el Word o similares para navegar por Internet. Mouse tipo Navigator En la actualidad los Mouses se clasifica como cableados e inalámbricos, los cableados son del tipo serial, PS/2 y USB, mientras que los inalámbricos se conectan por medio de la luz infrarroja al computador. ELECTROTECNIA 134 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Características: a) Cantidad de botones. Un botón se usa en los mouses de las computadoras Macintosh, dos o tres botones en PCs, tres o cuatro botones en los mouses tipo navigator. b) Conectores. Serial, para conectarse en el puerto COM1, usado en las placas AT. PS/2, para conectarse en el puerto del mismo nombre, usado en las placas ATX. AUTOEVALUACIÓN N° 4 1. ¿Qué es un teclado? ............................................................................................................................... ............................................................................................................................... 2. Escribir acerca del teclado de matriz. ............................................................................................................................... ............................................................................................................................... ...................................................................................................................... 3. ¿Qué es el efecto de rebote? ............................................................................................................................... ............................................................................................................................... ...................................................................................................................... 4. Mencionar por lo menos 6 tipos de teclado que conoce. .................................................................................................................... .................................................................................................................... .................................................................................................................... 5. Escribir acerca de los tipos de conectores del teclado. ............................................................................................................................... ............................................................................................................................... ...................................................................................................................... 6. ¿Qué es el mouse? ............................................................................................................................... ............................................................................................................................... 7. Mencionar los tipos de mouse que conoce. a)....................................................... b)...................................................... c)....................................................... d)...................................................... ELECTROTECNIA 135 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CAPÍTULO 5 5 PERIFÉRICOS IN/OUT DE UNA PC. En este capítulo se tratará: Unidades de Discos Flexibles o Disqueteras. Modo de Operación del Floppy Drive. Descripción de una lectora de Floppy. Disco Duro o Fijo (Hard disk). Estructura física del Disco Duro. Funcionamiento del Disco Duro. Extructura lógica de un Disco Duro. Instalación física del Disco Duro, Formato, Particiones. Fax - Modem. Tipos de Módems y Características. ELECTROTECNIA 136 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I PERIFÉRICOS IN / OUT DE UNA PC. Unidades de Discos Flexibles o Disqueteras. Los floppy disk son unidades de almacenamiento de datos de baja capacidad pero transportables. A estos discos se les conoce como disquetes, porque el disco es flexible y el cabezal de lectura/escritura está en contacto físico con la superficie de disco, caso contrario al que se tienen en los discos duros, los cuales presentan platos rígidos y existe una pequeña separación entre la superficie del disco y los cabezales. Un disquete es una pieza circular pequeña, hecha en metal, cubierta de un plástico. Esta unidad de disco se invento el año 1967 por IBM, siendo el primer diskette de ocho y medio (8.5) pulgadas; el año 1976, la compañía Shugart Associates (SASI), introdujo los discos flexibles de 5.25 pulgadas como estándar en las aplicaciones de las computadoras, hay que comentar además que la compañía SASI cambio después a SCSI (interfaz de Sistema para Computadora Pequeñas), cuando se aprobó como estándar ANSI. El año de 1983 Sony introdujo los primero discos y unidades flexibles de 3.5 pulgadas con capacidad de almacenaje de 1.44MB. Dispositivo secuencial dividido en ‘tracks’ arreglados en círculos concéntricos, pero la Hewlett Packerd (HP) en 1984 la utilizó en los sistemas Macintosh y para IBM en 1986. La disquetera esta compuesta por dos unidades importantes: Modo de Operación del Floppy Drive. El motor en el driver comienza a darle vueltas al floppy. Al encontrar el ‘track’ si se va a escribir en el mismo se marca el disco con unas partículas incrustadas en la barra magnética. Floppy disk ELECTROTECNIA 137 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Descripción de una lectora de floppy. a) Cabezas de Lectura y Escritura. Esta unidad tiene básicamente dos cabezas de lectura/escritura, una para cada lado del disco. El mecanismo de la cabeza se mueve mediante un motor llamado actuador de la cabeza, las cuales se mueven hacia dentro y hacia fuera sobre la superficie del disco flexible en línes recta para colocarse sobre varias pistas. Debido a que una cabeza es flexible y la otra es fija, entonces su movimiento es al unisono, es decir que ambas cabezas leen al mismo tiempo la información almacenada en cada uno de los sectores colocados en las pista, en ambas superfices (lados) del disco flexible, comportandose como un cilindro. Las cabezas están compuestas por hierro dulce con bobinas electromagnéticas, de tal forma que cada cabeza en si, esta compuesta por una cabeza de lectura/escritura y dos cabeza borradoras en tunel. ¿Qué el Borrado en Tunel? La grabación de los datos en un disco flexible se realiza utilizando el método de borrado en tunel. Mientras la cabeza de lectura/escritura graba en una pista (por sectores), las dos cabezas borradoras colocadas inmediatamente de tras de la de lectura/escritura, borran las bandas externasde la pista, recortandola claramente sobre la superficie del disco. Las cabezas fuerzan a los datos dentro de un tunel angosto en cada pista, de tal manera que este método impide que las señales de una pista se confundan con las señales de pistas adyacentes. Es importante saber que la posición de las cabezas con respecto a las pistas que deben leer y escribir ELECTROTECNIA 138 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I se les llama alineamiento Las dos cabezas de la unidad de disco flexible están montadas con resortes y sujetas físicamente al disco con un poco de presión, es decir que las cabezas están en contacto con la superficie del disco. El disco gira a una velocidad de 300 a 360 rpm. Hay que indicar que la presión aplicada de los cabezales con disco no representa un problema de fricsión execiva, la protección en el dusco se realiza con un recubrimiento de teflon u otra sustancia opermite un delizamiento suabe del cabezal sobre el disco. b) Actuador de las Cabezas.- El actuador de la cabeza es un tipo de motor especial denominado motor de paso que gira en incrementos discretos o pasos. Un motor de pasos no gira constantemente, sino que rota por tramos fijos y se para. El acoplamiento entre el soporte de las cabezas y el motor de paso se realiza en dos formas: • Banda de acero en forma de cinta. la banda se enrrolla y desenrrolla alrededor del eje del motor de paso, convirtirndo el movimiento rotatorio en movimiento lineal. • El uso de un engranaje helicoidal (sinfín) en lugar de una banda. Un brazo del soporte de las cabezas se coloca sobre el engranaje sinfín, el cual esta conectado directamente sobre el eje del motor de paso, produciendose el movimiento lineal de los cabezales. c) Motor de Eje. Es el motor encargado de hacer girar al disco, la velocidad normal de rotación esta entre los 300 rpm (discos de baja densidad) y 360 rpm (discos de alta densidad). La baja velociadad permite al cabezal relizar una fricción suave sobre la superficie del disco. d) Tarjeta Logica. La tarjeta lógica es una tarjeta electronica digital en la que se encuentran instalados los chips que permiten el control el actuador de las cabezas, las cabezas de lectura/escritura, motor del eje, los sensores del disco y otros compnentes de la unidad. Podemos decir que la tarjeta lógica es la interfaz entre la tarjeta del controlador y el sistema. e) Controlador. Es un chip instalado sobre una tarjeta electronica multi función denominada Super IDE con buses con arquitectura ISA y tecnologías VESA, utilizados en los sitema anteriores a Pentium. En la actualidad el chip controlador se encuentra integrado (como Built-In) en el chip super E/S de la placa base utilizando buses con tecnología PCI. ELECTROTECNIA 139 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ¿Cuáles son sus recursos estándares? • IRQ6 (solicitud de interrupción). • DMA 2 (acceso directo a memoria). • E/S puertos 3F0 a 3F5, 3F7 (Entrada/Salida). Conector de Control y de Datos. Posee los 34 contactos (o pines) antes descriptos.Existen dos modelos de conector de disqueteras: el EDGE (o de borde) y el BERG (o de pines). Se usan para las disqueteras de 5¼" y 3½' respectivamente. Cada uno tiene indicada claramente cual es el pin Nº 1 y el Nº 34. PIN DE FLOPPY PIN DE LA DISK DRIVE CONTROLADORA Reduced Write 2 2 No Usada 4 4 Drive Select 3 6 6 Tierra 7 8 Drive Select 0 10 10 Drive Selec 1 12 12 Drive Select 2 14 14 Motor On 16 16 Direction Select 18 18 Step 20 20 Write Data 22 22 Write Gate 24 24 Track 0 26 26 Write Proyect 28 28 Read Data 30 30 Side 1 Select 32 32 Disquete Change 34 34 NOMBRE Tierra Todos los Nº Impares (1, 3, 5, etc.) El controlador del disco flexible no ha cambiado tecnologicamente, pero si se han realizado cambis de velociad de transferencia con el estádar 500KBps hasta 1MBps. ELECTROTECNIA 140 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Conexión a la Mainboard 34 Pines 5,25 Conector de drive B Dobles Pin 1 Cable Coloreado 3,5” Conector Drive A 3,5”Conector de Drive B 5,25 Conector de Drive A Cable plano (flag) de conexión de lectoras de floppy disk La conexión de la disquetera y la placa base se realiza utilizando un cable plano flexible, el cual tiene tres conectores uno se conecta a la placa base y los otro dos se conectan a las unidades de disco, la diferencia de conexión para las unidades de disco A y B es por medio de un dobles entre los conectores del extremo y del centro. ELECTROTECNIA 141 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Estructura interna de una lectora de floppy disk HARD DISK o Unidades de Discos Duros o Fijos. Es la unidad de almacenamiento más importante del computador, en él están instalados los sistemas operativos, programas de aplicación y desarrollo, y las base de datos. Los discos rígidos son dispositivos de almacenamiento de gran capacidad. Son platos rígidos hechos de aleación de aluminio, están sellados en el interior y no son removibles como los otros medios. Hay muchas variedades de discos rígidos. ELECTROTECNIA 142 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Los discos duros actualmente se diferencian en dos grandes ramas: SCSI (Small Computer System Interface) e IDE (Integrated Drive Electronics), esto significa de que forma se van a conectar con nuestro sistema. Normalmente, los PC domésticos poseen discos IDE, los discos SCSI son mas veloces que los IDE, pero lo mas importante es que en una conexión SCSI podemos agregar hasta 15 discos en el mismo cable mientras que con una interface IDE solo podemos poner dos por cable. Funcionamiento de un HDD. Es posible guardar un solo archivo en racimos diferentes sobre varios platos, comenzando con el primer racimo disponible que se encuentra. Después de que el sistema operativo escribe un nuevo archivo en el disco, se graba una lista de todos los racimos del archivo en la FAT. Un ordenador funciona al ritmo marcado por su componente más lento, y por eso un disco duro lento puede hacer que la máquina sea vencida en prestaciones por otro equipo menos equipado en cuanto a procesador y cantidad de memoria, pues de la velocidad del disco duro depende el tiempo necesario para cargar los programas y para recuperar y almacenar tus datos. Formato de un HDD. Para que un disco pueda ser usado para almacenar archivos, deberá ser preparado previamente. Este proceso de preparación de un disco recibe el nombre de dar formato a un disco. El proceso de formato involucra varias actividades: Revisar la superficie del disco, para detectar algún defecto físico. Inicializar las pistas y los sectores, dependiendo de la capacidad del disco. Reservar espacio para guardar el directorio. Crear el directorio raíz. Asignar un número de serie al disco. Todas estas actividades las realiza automáticamente el sistema operativo. Una vez que un disco ha recibido un formato, puede ser usado normalmente para almacenar y recuperar archivos. Cuando un disco recibe un formato, se le puede asignar un nombre o etiqueta (label). Esta etiqueta aparece en pantalla cuando se listan los archivos del disco. Las etiquetas deben cumplir con las siguientes condiciones: ELECTROTECNIA 143 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I No pueden tener más de 11 caracteres. No pueden contener los caracteres ( . , ; : * ? / \ | + = < > ^ “ [ ] ( ) & ). No puede incluir tabulaciones, aunque si acepta espacios en blanco. Estructura física de un disco duro. Elementos de un disco duro. Un disco duro forma una caja herméticamente cerrada que contiene dos unidades no intercambiables: unidad lógica (unidad de lectura y escritura) y la unidad física. Unidad Lógica. Es un conjunto de componentes electrónicos y mecánicos que hacen posible el almacenamiento y recuperación de los datos en el disco. Unidad Física. Denominado también disco, es en realidad una pila de discos llamados platos, que almacenan información magnéticamente. Cada uno de los platos tiene dos superficies magnéticas: la superior y la inferior. Estas superficies magnéticas están formadas por millones de pequeños elementos capaces de ser magnetizados positiva o negativamente. De esta manera, se representan los dos posibles valores que forman un bit de información (un cero o un uno). Ocho bits contiguos constituyen un byte (un carácter). ELECTROTECNIA 144 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Sistemas de Codificación de Datos para el Disco Duro. Los sistemas de codificación de datos utilizados en los discos en forma básica son: • Codificación por Modulación de Frecuencia (FM).- Era conocido como el sistema de codificación de Densidad Simple, fue utilizado en las primeras unidades de discos flexibles instaladas en la computadoras personales. • Codificación por Modulación de Frecuencia Modificada (MFM).- Fue diseñado para reducir el número de inversiones de flujo usadas en el sistema original de codificación de FM y por lo tanto poner más datos en el disco. Su sistema se basa en grabar solamente datos de transición solo cuando un bit cero (0) es precedido por otro, en cualquier otro caso la transición del reloj no es requerida. La codificación MFM es denominado también de doble densidad, es utilizado actualmente en las unidades flexibles de las PC. • Codificación por Longitud de Recorrido Limitado (RLL).- Es el sistema de codificación más importante empleado actualmente en los discos duros; está codificación permite poner más del doble de información en un disco que MFM y más de tres veces que el sistema FM. La codificación RLL, el disco duro combina grupos de bits en una unidad para generar patrones específicos de inversión de flujo. Este sistema fue diseñado por IBM y utilizado e los sistemas macrocomputadoras. A fines de los años 1980, la industria de los discos duros para PC empezó a utilizar el sistema de codificación RLL. Actualmente, prácticamente todos los discos duro del mercado utilizan de alguna forma la codificación RLL. La codificación se presenta en diversas versiones: ¿Qué es el decodificador PRML? Es una de las características más importantes de los discos duros de alta calidades la que tiene que ver con los circuitos de lectura del disco. Los canales de lectura que utilizan la tecnología PRML (Lectura por respuesta Parcial y Máxima Probabilidad), permite a los fabricantes hasta el 40% la ELECTROTECNIA 145 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I cantidad de datos almacenados en un disco. La tecnología PRML reemplaza al enfoque estándar de “detección de un pico a la vez” de los detectores analógicos tradicionales, por canales de lectura/escritura con procesamiento digital de señales, por lo indicado la tecnología PRML es capaz de tomar una forma de onda analógica llena de ruido y señales desviadas y así producir una lectura muy precisa a partir de ésta. ¿Qué es la densidad de área? La densidad de área es el producto de bits lineales por pulgada (bpi), medidos a lo largo de la longitud de la pista alrededor del disco y multiplicados por los números de pistas por pulgadas (TPI), las cuales se miden radialmente en el disco. El disco duro es la unidad de almacenamiento sellada del computador más importante, en la cual están almacenados los datos en forma no volatiles, sus partes son mostradas en las figuras adjuntas ELECTROTECNIA 146 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Funcionamiento de una unidad de disco duro. Veamos cuáles son los mecanismos que permiten a la unidad acceder a la totalidad de los datos almacenados en los platos. En primer lugar, cada superficie magnética tiene asignado uno de los cabezales de lectura/escritura de la unidad. Por tanto, habrá tantos cabezales como caras tenga el disco duro y, como cada plato tiene dos caras, este número equivale al doble de platos de la pila. • El conjunto de cabezales se puede desplazar linealmente desde el exterior hasta el interior de la pila de platos mediante un brazo mecánico que los transporta. • Por último, para que los cabezales tengan acceso a la totalidad de los datos, es necesario que la pila de discos gire. Este giro se realiza a velocidad constante y no cesa mientras esté encendido el ordenador. En cambio, en los discos flexibles sólo se produce el giro mientras se está efectuando alguna operación de lectura o escritura. Cada vez que se realiza una operación de lectura en el disco duro, éste tiene que realizar las siguientes tareas: desplaza r los cabezales de lectura/escritura hasta el lugar donde empiezan los datos; esperar a que el primer dato, que gira con los platos, llegue al lugar donde están los cabezales; y, finalmente, leer el ELECTROTECNIA 147 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I dato con el cabezal correspondiente. La operación de escritura es similar a la anterior. Estructura física: cabezas, cilindros y sectores. Ya hemos visto que cada una de las dos superficies magnéticas de cada plato se denomina cara. El número total de caras de un disco duro coincide con su número de cabezas. Cada una de estas caras se divide en anillos concéntricos llamados pistas. En los discos duros se suele utilizar el término cilindro para referirse a la misma pista de todos los discos de la pila. Finalmente, cada pista se divide en sectores. ELECTROTECNIA 148 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Los sectores son las unidades mínimas de información que puede leer o escribir un disco duro. Generalmente, cada sector almacena 512 bytes de información. El número total de sectores de un disco duro se puede calcular: Por tanto, cada sector queda unívocamente determinado si conocemos los valores: cabeza, cilindro y sector. También se puede calcular la capacidad total del disco duro, usando la siguiente relación matemática: Por ejemplo, se tiene un disco duro ST33221A de Seagate tiene las siguientes especificaciones: Cilindros = 6.253 Cabezas = 16 Sectores = 63 Solución: Las cabezas y cilindros comienzan a numerarse desde el cero y los sectores desde el uno. En consecuencia, el primer sector de un disco duro será el correspondiente a la cabeza 0, cilindro 0 y sector 1. ELECTROTECNIA 149 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Estructura lógica de un disco duro. La estructura del disco duro se realiza definiendo lo siguiente en el disco duro: a) Sistema de Archivos. Un sistema de archivos es una estructura que permite tanto el almacenamiento de información en una partición como su modificación y recuperación. Para que sea posible trabajar en una partición es necesario asignarle previamente un sistema de archivos. Esta operación se denomina dar formato a una partición. Generalmente cada sistema de archivos ha sido diseñado para obtener el mejor rendimiento con un sistema operativo concreto (FAT para DOS, FAT32 para Windows 98, NTFS para Windows NT, HPFS para OS/2…). Sin embargo, es usual que el mismo sistema operativo sea capaz de reconocer múltiples sistemas de archivos. A continuación se comentan los sistemas de archivos más comunes. FAT (File Allocate Table, tabla de asignación de archivos). Este sistema de archivos se basa, como su nombre indica, en una tabla de asignación de archivos o FAT. Esta tabla es el índice del disco. Almacena los grupos utilizados por cada archivo, los grupos libres y los defectuosos. Como consecuencia de la fragmentación de archivos, es corriente que los distintos grupos que contienen un archivo se hallen desperdigados por toda la partición. La FAT es la encargada de seguir el rastro de cada uno de los archivos por la partición. Cluster. El cluster, grupo o unidad de asignación es la unidad mínima de almacenamiento de un archivo en una partición y está formada por uno o varios sectores contiguos del disco. Esto quiere decir que el espacio real ocupado por un archivo en disco será siempre múltiplo del tamaño del grupo. Además, cada grupo puede almacenar información de un solo archivo. Si no cabe en un solo grupo, se utilizarán varios (no necesariamente contiguos). Para hacernos una idea del nefasto resultado de un tamaño de grupo incorrecto, consideremos dos archivos de 1 byte cada uno. Si el tamaño del grupo es de 32 KB, se utilizarán dos grupos y el espacio real ocupado en disco habrá sido de 64 KB = ¡65.536 bytes! en vez de 2 bytes, como sería de esperar. ELECTROTECNIA 150 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Este sistema posee importantes limitaciones: nombres de archivos cortos; tamaño máximo de particiones de 2 GB; grupos (clusters) demasiados grades, con el consiguiente desaprovechamiento de espacio en disco; elevada fragmentación, que ralentiza el acceso a los archivos. Pero tiene a su favor su sencillez y compatibilidad con la mayoría de sistemas operativos. Debido a que la FAT de este sistema de archivos tiene entradas de 16 bits (por eso, a veces se llama FAT16), sólo se pueden utilizar 216 = 65.536 grupos distintos. Esto implica que, con el fin de aprovechar la totalidad del espacio de una partición, los grupos tengan tamaños distintos en función del tamaño de la partición. Por ejemplo, con un grupo de 16 KB se puede almacenar hasta 216 grupos * 16 KB/grupo = 220 KB = 1 GB de información. El límite de la partición (2 GB) se obtiene al considerar un grupo máximo de 32 KB (formado por 64 sectores consecutivos de 512 bytes). VFAT (Virtual FAT). Este sistema de archivos logra remediar uno de los mayores problemas del sistema FAT: los nombres de archivos y directorios ELECTROTECNIA 151 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I sólo podían contener 8 caracteres de nombre y 3 de extensión. Con VFAT, se logra ampliar este límite a 255 caracteres entre nombre y extensión. La mayor ventaja de VFAT es que tiene plena compatibilidad con FAT. Por ejemplo, es factible utilizar la misma partición para dos sistemas operativos que utilicen uno FAT y otro VFAT (MS-DOS y Windows 95). Cuando entremos desde MS-DOS, los nombres largos de archivos se transforman en nombres cortos según unas reglas establecidas, y pueden ser utilizados de la manera habitual. De todas maneras, hay que prestar cierta atención cuando se trabaja desde MS-DOS con archivos que tienen nombres largos: no se deben realizar operaciones de copiado o borrado, ya que se corre el riesgo de perder el nombre largo del archivo y quedarnos sólo con el corto. Desde Windows 95, se trabaja de forma transparente con nombres cortos y largos. Tanto las particiones FAT como las VFAT están limitadas a un tamaño máximo de 2 GB. Esta es la razón por la que los discos duros mayores de este tamaño que vayan a trabajar con alguno de los dos sistemas, necesiten ser particionados en varias particiones más pequeñas. El sistema de archivos FAT32 ha sido diseñado para aumentar este límite a 2 TB (1 terabyte = 1024 GB). FAT32 (FAT de 32 bits). El sistema FAT32 permite trabajar con particiones mayores de 2 GB. No solamente esto, sino que además el tamaño del grupo (cluster) es mucho menor y no se desperdicia tanto espacio como ocurría en las particiones FAT. La conversión de FAT a FAT32, se puede realizar desde el propio sistema operativo Windows 98, o bien desde utilidades como Partition Magic. Sin embargo, la conversión inversa no es posible desde Windows 98, aunque sí desde Partition Magic. Hay que tener en cuenta que ni MS-DOS ni las primeras versiones de Windows 95 pueden acceder a los datos almacenados en una partición FAT32. Esto quiere decir que si tenemos en la misma partición instalados MS-DOS y Windows 98, al realizar la conversión a FAT32 perderemos la posibilidad de arrancar en MS-DOS (opción "Versión anterior de MSDOS" del menú de arranque de Windows 98). Con una conversión inversa se puede recuperar esta opción. Por estos motivos de incompatibilidades, no es conveniente utilizar este sistema de archivos en particiones que contengan ELECTROTECNIA 152 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I datos que deban ser visibles desde otros sistemas de archivos. En los demás casos, suele ser la opción más recomendable. En la siguiente Tabla, se comparan los tamaños de grupo utilizados según el tamaño de la partición y el sistema de archivos empleado: NTFS (New Technology File System, sistema de archivos de nueva tecnología). Este es el sistema de archivos que permite utilizar todas las características de seguridad y protección de archivos de Windows NT. NTFS sólo es recomendable para particiones superiores a 400 MB, ya que las estructuras del sistema consumen gran cantidad de espacio. NTFS permite definir el tamaño del grupo (cluster), a partir de 512 bytes (tamaño de un sector) de forma independiente al tamaño de la partición. Las técnicas utilizadas para evitar la fragmentación y el menor desaprovechamiento del disco, hacen de este sistema de archivos el sistema ideal para las particiones de gran tamaño requeridas en grandes ordenadores y servidores. ELECTROTECNIA 153 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I HPFS (High Performance File System, sistema de archivos de alto rendimiento). HPFS es el sistema de archivos propio de OS/2. Utiliza una estructura muy eficiente para organizar los datos en las particiones. HPFS no utiliza grupos sino directamente sectores del disco (que equivalen a un grupo de 512 bytes). En vez de utilizar una tabla FAT al principio de la partición, emplea unas bandas distribuidas eficazmente por toda la partición. De esta forma se consigue, suprimir el elevado número de movimientos que los cabezales de lectura/escritura tienen que realizar a la tabla de asignación en una partición FAT. El resultado de este sistema es una mayor velocidad de acceso y un menor desaprovechamiento del espacio en disco. b) Formato Lógico. El formato lógico consiste en definir las dos áreas importantes que permite trabajar cómodamente en el disco duro, las áreas son de sistema y de datos. También podemos indicar que el formato lógico se puede observar en la siguiente estructura lógica de un disco duro está formada por: • El sector de arranque (Master Boot Record). • Espacio particionado. • Espacio sin particionar. El sector de arranque es el primer sector de todo disco duro (cabeza 0, cilindro 0, sector 1). En él se almacena la tabla de particiones y un pequeño programa master de inicialización, llamado también Master Boot. Este ELECTROTECNIA 154 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I programa es el encargado de leer la tabla de particiones y ceder el control al sector de arranque de la partición activa. Si no existiese partición activa, mostraría un mensaje de error. El espacio particionado es el espacio del disco que ha sido asignado a alguna partición. El espacio no particionado, es espacio no accesible del disco ya que todavía no ha sido asignado a ninguna partición. A continuación se muestra un ejemplo de un disco duro con espacio particionado (2 particiones primarias y 2 lógicas) y espacio todavía sin particionar. El caso más sencillo consiste en un sector de arranque que contenga una tabla de particiones con una sola partición, y que esta partición ocupe la totalidad del espacio restante del disco. En este caso, no existiría espacio sin particionar. Las particiones. Cada disco duro constituye una unidad física distinta. Sin embargo, los sistemas operativos no trabajan con unidades físicas directamente sino con unidades lógicas. Dentro de una misma unidad física de disco duro puede haber varias unidades lógicas. Cada una de estas unidades lógicas constituye una partición del disco duro. Esto quiere decir que podemos dividir un disco duro en, por ejemplo, dos particiones (dos unidades lógicas dentro de una misma unidad física) y trabajar de la misma manera que si tuviésemos dos discos duros (una unidad lógica para cada unidad física). ELECTROTECNIA 155 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Particiones y directorios. Ambas estructuras permiten organizar datos dentro de un disco duro. Sin embargo, presentan importantes diferencias: • Las particiones son divisiones de tamaño fijo del disco duro; los directorios son divisiones de tamaño variable de la partición. • Las particiones ocupan un grupo de cilindros contiguos del disco duro (mayor seguridad); los directorios suelen tener su información desperdigada por toda la partición. • Cada partición del disco duro puede tener un sistema de archivos (sistema operativo) distinto; todos los directorios de la partición tienen el sistema de archivos de la partición. Como mínimo, es necesario crear una partición para cada disco duro. Esta partición puede contener la totalidad del espacio del disco duro o sólo una parte. Las razones que nos pueden llevar a crear más de una partición por disco se suelen reducir a tres. Los discos duros están clasificados en dos grandes familias que son: discos duros IDE y discos duros SCSI. Discos Duros IDE (Integrated Drive Electronics). Los discos duros IDE surgieron cuando Compaq necesitaba un modelo de pequeño tamaño para instalar en algunos modelos, en los cuales no había sitio en la placa madre para incluir una controladora. Para ello, pidió a la compañía Western Digital que realizase un disco duro con la controladora integrada en él, de modo que el Interfase fuese lo más simple posible. Esta configuración permite una fácil adaptación: en efecto, basta con un simple puerto de E/S de 16 bits para realizar la conexión entre el disco duro y el ordenador. Los discos duros IDE, al incluir la controladora, disponen de un buffer interno, y admiten comandos de alto nivel. Por ejemplo, para realizar una lectura, basta con indicarle la pista, cabeza y sector, darle la orden correspondiente, y una vez que el disco ha terminado, leer los datos de su buffer interno. Admite lecturas multisector, incluso pasando de una pista a otra. ELECTROTECNIA 156 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Conexiones de Energía. El disco duro dispone de un conector de alimentación y otro de control. El primero, visto de frente, es como sigue: Leyenda: Color rojo: +5V Color negro: GND. Color negro: GND. Color amarillo: +12V. Obviamente, esta vista es del conector situado en el disco duro, y visto por el lado opuesto a las soldaduras, esto es, por el lado en que se enchufa el conector proveniente de la fuente de alimentación. El segundo conector es de 40 pines, y las conexiones principales son: El pin 1 suele venir indicado por una flecha grabada en el conector del disco duro. Notas sobre el estándar IDE: La especificación IDE (Integrated Drive Electronics) original admitía únicamente 2 discos duros de hasta 500 MB y fue ELECTROTECNIA 157 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I adoptado como estándar por el comité ANSI bajo el nombre de ATA (Advanced Technology Attachement). Una posterior revisión permitió utilizar 4 discos duros de hasta 8,4 GB. Surgió entonces lo que actualmente conocemos como EIDE (Enhanced IDE). El comité ANSI lo adoptó como estándar con el nombre de ATA-2 o Fast ATA. Permite unas tasas de transferencia de 16,6 MB/segundo. En este apartado, cuando hablemos de IDE, nos estamos refiriendo a toda la familia de estándares y no sólo al IDE original. UDMA.— UDMA (Ultra DMA), también conocido como Ultra ATA, Ultra EIDE o Ultra/33 es una revisión del estándar EIDE que acelera las tasas de transferencia hasta 33 MB/segundo. Para que pueda utilizarse es necesario que, tanto la controladora de discos duros como el propio disco duro, admitan UDMA. Todas las placas base y discos duros modernos admiten este estándar, el cual es compatible con EIDE. La instalación de un disco duro, como la de cualquier otro dispositivo de un ordenador, consta de dos fases: instalación física e instalación lógica. Trabajar con dos o más discos duros. Cuando se trabaja con varios discos duros sólo el primero de ellos es arrancable. De todas maneras, algunas BIOS permiten intercambiar los discos duros primero y segundo (en estos casos, el segundo se comportaría como si fuera el primero y el primero como el segundo). El ordenador arrancará desde la partición activa del primer disco duro y no se tendrá en cuenta cuál es la partición activa en el resto de los discos duros. Estos discos duros normalmente se utilizan para almacenar programas, datos e incluso alguno de los sistemas operativos que lo permiten (como Windows NT, Linux u OS/2). No debemos olvidar los problemas que se pueden producir al incorporar un nuevo disco duro a nuestro ordenador con las letras de unidad. Para evitar el menor número posible de cambios, es preferible utilizar particiones lógicas en el resto de discos duros (ya que se colocan al final de la lista de unidades aunque, eso sí, antes de la correspondiente al CD-ROM) Instalación de un disco duro. Actualmente los discos duros, según la conexión que incorporen, pueden ser de dos tecnologías: IDE o SCSI (léase escasi). Lo usual es utilizar discos duros IDE, ya que son soportados por todo tipo de ordenadores, aunque tengan unas prestaciones inferiores a la de sus equivalentes SCSI, más propios de servidores y grandes ordenadores. En este apartado nos centraremos únicamente en la instalación de discos duros IDE. ELECTROTECNIA 158 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Instalación física. Las actuales placas base llevan incorporada una controladora para cuatro discos duros. La conexión de los discos duros a la placa base se realiza mediante dos cables planos iguales: IDE0 (primario) e IDE1 (secundario). Cada uno de estos cables tiene una conexión de 40 pines a la placa base y dos conexiones más de 40 pines para sendos discos duros. De esta manera, el máximo número posible de discos duros IDE en un ordenador es de 4: dos en el IDE0 y otros dos en el IDE1. Y esto es considerando que no se conectan otros dispositivos a los mismos cables, ya que las unidades de CDROM, grabadoras, unidades de cinta, unidades ZIP y unidades LS-120, por citar algunos ejemplos, se conectan igualmente a los cables IDE. Debido a que lo normal en los ordenadores actuales es que vengan únicamente con un disco duro y una unidad de CD-ROM, no se suele utilizar el IDE1 y, en consecuencia, no se suministra el segundo cable. Por otro lado, algunos ordenadores incorporan cables para un solo dispositivo, que deberemos reemplazar si deseamos conectar dos. Entonces, para conseguir el mayor número posible de dispositivos conectados a la placa base necesitaremos dos cables IDE de dos dispositivos. Cuando se conectan dos dispositivos a un mismo cable, uno de ellos se ha de comportar como dueño (master) y el otro como esclavo (slave). El dispositivo dueño se sitúa en el extremo del cable y el esclavo, en la parte central (el cable parte de la placa base). Cuando solamente hay un dispositivo en un cable, éste debe situarse en la parte final, quedando la conexión central libre. El dispositivo principal debe situarse en el IDE0 master. Un segundo dispositivo podrá ir, bien en el IDE0 slave o bien, en el IDE1 master. Un tercero igualmente podrá ir en el IDE0 slave o en IDE1 slave, si el IDE1 master ya estaba utilizado. La norma es no utilizar la conexión esclavo antes que la conexión dueño. ELECTROTECNIA 159 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Nota importante: Las conexiones de 40 pines del cable sólo se pueden conectar de una manera. La manera correcta es hacer coincidir el pin 1 de la conexión (serigrafiado en el dispositivo) con el pin 1 del cable (situado en el extremo del cable marcado con una banda roja): Línea roja al pin 1. Esta norma hay que tenerla en cuenta tanto en la conexión a la placa base como en cada una de las conexiones con los dispositivos (en general, es válida ordenador ni siquiera arranque. Por otro lado, se puede conectar cualquiera de los dos extremos del cable a la placa base, es decir, no hay uno prefijado; sin embargo, es usual conectar a la placa base el que esté más alejado del central. Antes de realizar la conexión física del disco duro al conector adecuado, es necesario configurarlo como dueño o esclavo. Con este fin, y muy próximo al conector macho de 40 pines, se encuentran unos puentes de configuración (jumpers). Debemos seguir las indicaciones del fabricante para colocar los puentes de manera correcta; teniendo en cuenta que si sólo hay un disco duro o si va al extremo del cable, hay que configurarlo como dueño (master) y si va a la parte central del cable, como esclavo (slave). La configuración por defecto (de fábrica) para los discos duros es de dueño y para las unidades de CDROM, de esclavo. La instalación entre el disco duro y la placa base se realiza por medio de dos tipos de cables, por ejemplo para los sistemas P_ATA se utilizan los cables flan de 40 y 80 líneas, mientras que para los sistemas S_ATA, se utilizan los cables tipo sata. Nota: Normalmente estos son todos los puentes que lleva un dispositivo IDE; sin embargo, hemos comprobado que algunas unidades de CD-ROM incorporan otro puente para activar el UDMA. Estando este puente cerrado (recomendado para Windows 98) acelera la velocidad de transferencia de la unidad, pero puede ocasionar problemas con algunos sistemas operativos. La opción por defecto es el puente abierto (UDMA desactivado). ELECTROTECNIA 160 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Además, es necesario que el disco duro reciba corriente de la fuente de alimentación. Para ello la fuente de alimentación del ordenador debe disponer de algún cable libre que se conectará al disco duro. Una vez que hemos configurado los puentes de los discos duros y hemos realizado correctamente las conexiones de los cables IDE y de alimentación, sólo nos resta atornillar la unidad a la caja (chasis) del ordenador. Ni que decir tiene que debemos utilizar los tornillos adecuados para no perforar la unidad y dañarla. La mayoría de discos duros necesitan una bahía libre de 3 pulgadas y media. Si no quedasen bahías libres de este tipo pero sí de 5 pulgadas y cuarto, será necesario utilizar un adaptador. Con este paso, finalizamos la instalación física. De todas maneras, la experiencia recomienda no cerrar todavía el ordenador hasta que hayamos comprobado que realmente funciona. Instalación lógica. Llegados a este punto, ya podemos encender el ordenador. Si no arrancase (pantalla negra), deberemos revisar las conexiones y puentes del apartado anterior. Aunque algunas BIOS presentan detección automática de discos duros al arrancar, vamos a proceder a la instalación de los discos duros mediante el programa de configuración (Setup) del ordenador. Este paso es necesario para que la BIOS del ordenador reconozca los discos duros que tiene instalados. Entramos en el Setup de la manera indicada en el manual del ordenador (normalmente pulsando la tecla Suprimir al chequear la memoria, después de encender el ordenador). En el menú del Setup, buscamos una opción para autodetectar discos duros. Si no existiese, deberemos inscribir los discos duros en la BIOS de forma manual, según los datos proporcionados por el fabricante: cilindros, cabezas y sectores. Para cada disco duro tenemos que elegir el modo en el cual va a trabajar (normal, LBA, large...). La opción recomendada para discos duros menores de 528 MB es normal y para el resto, LBA. Sin embargo, discutiremos sobre este punto más adelante. Una vez comprobados los valores, salimos del Setup guardando los cambios. Si se presentase algún error o no se reconociese algún disco duro, deberemos repasar tanto las conexiones y puentes del apartado anterior como la configuración de la BIOS. La instalación lógica como tal del disco duro en el ordenador ha terminado. ELECTROTECNIA 161 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I El siguiente paso consiste en particionar el disco duro y configurar cada una de las particiones para un sistema de archivos concreto. Estándar S_ATA. Hasta hace relativamente poco tiempo, en el mercado del consumo se hacía uso del interfaz ATA normal o Paralelo ATA (P_ATA) del que existen variedades de hasta 133Mbytes/seg teóricos. Dicho interfaz consistía en unas fajas planas a las cuales se podían conectar hasta dos discos duros (o unidades ópticas). Es el nuevo estándar de conexión de discos duros Serial ATA (S_ATA), la nueva tecnología, es totalmente compatible con la anterior, de manera que no habrá problemas de compatibilidad con los sistemas operativos. De hecho se pueden encontrar conversores con el formato antiguo, es cierto que a nivel físico está más cercano de lo que sería un puerto Firewire o un USB, aunque únicamente disponible para la conexión de unidades internas. Ventajas que nos reporta este nuevo sistema En cuanto velocidad hay ventajas, sí, ya que la nueva interfaz comienza trabajando a 150Mbytes/seg (133 como máximo en ATA), sin embargo la máxima mejora respecto al sistema anterior (en mi opinión) es el tipo de cableado que se utiliza, mucho más fino y aerodinámico que el anterior , lo que permite que estos cables, al ser muchísimo más finos, faciliten el flujo de aire dentro de la caja, reduciendo el calentamiento de nuestro equipo. Otra de las mejoras de este tipo de cableado es que permite hasta 1 metro de longitud (medio metro en ATA). Respecto al cable de alimentación también es diferente al de los discos ATA originales, y las tensiones de trabajo son menores, además no es necesaria la configuración “Master/Slave” tradicional. En los dibujos de abajo se puede ver la diferencia en las conexiones, disco tradicional ATA a la izquierda y un Serial ATA a la derecha. ELECTROTECNIA 162 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Aunque las placas ya permiten la conexión de estos dispositivos, a la hora de instalar el sistema operativo hay que tener en cuenta un pequeño detalle; es posible que en plena instalación encuentre un mensaje del tipo “No se encuentra ninguna unidad de disco instalada” y por tanto no se puede instalar el sistema operativo. ¿Cómo solucionar el problema? Debemos preparar un disquete con el controlador SATA que corresponda a nuestra placa base, y justo cuando comienza a instalar el WinXP, aparece un mensaje abajo en color negro sobre fondo gris que dice algo como "Pulse F6 si desea instalar controladores de otro fabricante" (pulsar la tecla F6 tres o cuatro veces para asegurar que detecta la pulsación), la instalación sigue y en un momento de la copia de archivos, solicita que se introduzca el disquete con los controladores, se selecciona el que corresponda y a partir de ese momento se procede a instalar el resto del sistema operativo de manera correcta Los controladores SATA deben de estar en el CD de software de la placa, si no estuvieran en el CD o no disponemos de CD, habrá que acceder a la Web del fabricante de la placa con el modelo que corresponda a la nuestra y descárgalos. Las unidades de disco duro Enterprise Serie ATA de Western Digital son una nueva clase de disco duro que posee la fiabilidad y el rendimiento SCSI a la vez que ofrece una conectividad simplificada: todo a un costo significativamente menor que las unidades de SCSI paralela WD Raptor ELECTROTECNIA 163 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I mantiene los altos niveles y reduce el costo del almacenamiento de datos empresarial. Fax – modem. MODEM es un acrónimo de MOdulador – DEModulador, es decir; que es un dispositivo que transforma las señales digitales del ordenador en señal telefónica analógica y viceversa, con lo que permite al computador transmitir y recibir información por la línea telefónica. Los chips que realizan estas funciones están casi tan estandarizados como los de las tarjetas de sonido; muchos fabricantes usan los mismos integrados. El primer módem tenía la capacidad de transmitir datos a la moderada velocidad de 110 bps (bits por segundo); a finales d la década de los setenta la tecnología incrementó esta velocidad a 600 bps, aunque existen módem comerciales de 33,600 bps, y pronto estarán disponibles los superveloces módems de BELL que puede transmitir a 64,000 bps. Tipos: La distinción principal que suele hacer entre los módems internos y lo externos, si bien recientemente han aparecido unos módems llamados HPS o Winmódems, que han complicado un poco el panorama. a) Interno: Es una tarjeta de expansión sobre la cual están dispuestos los diferentes componentes que forman el módem. Se encuentra tanto en el formato ISA como en el PCI. ELECTROTECNIA 164 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I La principal ventaja de estos módems reside en su mayor integración con el ordenador, ya que no ocupan espacio sobre la mesa y toman su alimentación eléctrica del propio computador. Además, son mas baratos por padecer de carcasa y transformador, y al tener su propia UART pueden ser utilizados en computadores algo antiguos. Por el contrario, son mas complejos de instalar y la información sobre su estado sólo puede obtenerse mediante software. b) Externos: Son similares a los anteriores pero metidos en una carcasa que se coloca sobre la mesa o el computador. La conexión con el computador se realiza mediante uno de los puertos COM, por lo que se usa la UART del ordenador, que deberá ser capaz de proporcionar la suficiente velocidad de comunicación. La ventaja de estos módems reside en su fácil transportabilidad entre computadores, además de que podemos saber el estado del módem mediante unas luces que suelen tener en el frontal. Por el contrario, necesitan un enchufe para su transformador y la UART debe ser una 16550 o superior para que el rendimiento del módem sea mas adecuado. Módems PC – Card: Son módems que se utilizan en portátiles; su tamaño es similar al de la tarjeta de crédito y lago mas gruesa, pero sus capacidades pueden ser igual o mas avanzadas que el los modelos normales. HPS o Winmódems: Son módems internos, en los cuales se han eliminado varias piezas electrónicas, generalmente, chips especializados de manera que el microprocesador debe suplir su función mediante software. La ventaja resulta evidente, menos piezas y mas baratos. Las desventajas son que su rendimiento depende del número de aplicaciones abientas y que el software que los maneja sólo suele estar disponible para Windows 95, de ahí el apelativo de Winmódems. Características: a) Velocidad. Estas cifras se miden en baudios, o lo que es lo mismo: bits por segundo (bps). Se deben tener en cuenta que son bits, no bytes. En este contexto, un byte está compuesto por 8 bits; por tanto un módem de 33,600 baudios transmitirá (en las mejores condiciones) un máximo de 4,200 bytes ELECTROTECNIA 165 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I por segundo, o lo que es lo mismo: necesitará como poco 6 minutos para transmitir el contenido de un disquete de 1,44 Mb. Asimismo, no debe confundir esta velocidad nominal (33,600 baudios) con la velocidad de negociado, que es aquella que nos indica al comienzo de la conexión a Internet; esta última es aquella que en principio, y en ese momento, ha identificado el módem del otro lado de la línea como válida, y tiene poco a ver con el rendimiento que obtendremos. Así, una conexión en la que la velocidad de negociado ha sido de 31,200 baudios podría acabar siendo más rápida que otra en el que se han alcanzado los 33,600. Solo debe tenerse en cuenta este valor cuando es normalmente bajo (como 14,400 con un módem de 33,600) o cuando nunca alcanzamos la velocidad máxima (lo que puede indicar que el módem, la línea o el proveedor son de mala calidad). b) Normas de comunicaciones. Las transmisiones de datos por vía telefónica se basan en una serie de estándares internacionales que deben cumplir los dispositivos implicados en la comunicación. Cada norma define una serie de parámetros tales que permite la correcta comunicación a una cierta velocidad. Así, cuando se dice que el módem cumple con la norma “V.34”, quiere decir que es un módem que cumple una serie de especificaciones tal que le permite comunicarse con módems de esa velocidad (y usualmente de cualquier velocidad inferior a ésa). Las normas más importantes son: VELOCIDAD NO RM A EXPLICACIÓN M ÁXIM A(bps) V.22 bis 2,400 V.32 9,600 V.34 bis 14,400 V.34 Comunicaciones 28,800 V.34+ módem - módem 33,600 V.90 55,600 V.29 Comunicación Módem - Fax 14,400 V.42 y MNP2-4 Control de Errores No aplicable V.42 bis y MNP5-10 Compresión de datos No aplicable ELECTROTECNIA 166 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I AUTOEVALUACIÓN N° 5 1. ¿Qué es una lectora de flopply Disk? ............................................................................................................................... ............................................................................................................................... ...................................................................................................................... .................................................................................................................... 2. ¿Qué función cumple los motores stepper en una lectora de flopply? ............................................................................................................................... ............................................................................................................................... ...................................................................................................................... .................................................................................................................... 3. ¿Qué es un Hard Disk? ............................................................................................................................... ............................................................................................................................... ...................................................................................................................... .................................................................................................................... 4. ¿Qué es un Fax - Módem? ............................................................................................................................... ............................................................................................................................... ............................................................................................................................... ..................................................................................................................... .................................................................................................................... 5. Mencionar los 4 sensores que existe en una disquetera: ..................................................................... ..................................................................... ..................................................................... ..................................................................... ELECTROTECNIA 167 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I 6. Mencionar por lo menos 4 características del Hard Disk: ...................................................................... ...................................................................... ...................................................................... ...................................................................... 7. Colocar el nombre que le corresponde a cada letra del diagrama: B K D P I F A R E L H N J O S C Q M G ELECTROTECNIA 168 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CAPÍTULO 6 6 PERIFÉRICOS DE OUT DE UNA PC En este capítulo se tratará: Monitor. Clasificación de los Monitores. Parámetros del Monitor. Descripción de un Monitor. Criterios para seleccionar Monitores. Tarjeta Adaptadora de Video. Componentes de la adaptadora de Vídeo. Impresoras. Tipos de Impresora. Caracteristicas de la Impresora. ELECTROTECNIA 169 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I PERIFÉRICOS DE OUT DE UNA PC. MONITOR El monitor, denominado también pantalla de video, es uno de los periféricos más utilizados, y sirve tanto para visualizar lo que se está ingresando al computador, como así también, para ver los resultados de los procesos. Los monitores por lo general utilizan una velocidad fija de actualización, pero la mayoría tiene un amplio rango de frecuencia; esto ofrece compatibilidad integrada con una amplia variedad de normas de video como por ejemplo: CGA, HGC, EGA, VGA, SVGA, XGC, VXGA y UXGA, de acuerdo a los proveedores los monitores de frecuencia múltiple usan los siguientes nombres comerciales: Multisync, Multifrecuencia, Multiscan, Autosincronico y Autotracking. La computadora para desplegar video, utiliza un subsistema de video que esta compuesto por dos elementos importantes: El monitor o pantalla de video. El adaptador de video o Controladora gráfica. Clasificación de los Monitores: Monitor de Tubo de Rayos Catódicos (TRC). Monitor de Cristal Líquido (LCD). Monitores de TRC. Los monitores TRC son pantallas de video que básicamente utilizan un tubo de rayos catódico (TRC) para mostrar en pantalla la información procesada por el computador, además podemos afirmar que son los herederos de las tecnologías desarrolladas para los televisores. ELECTROTECNIA 170 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Hasta hace algún tiempo, los televisores eran los más interesados en el avance de la tecnología de las pantallas, y con ello se beneficiaban los computadores. Pero desde hace algunos años, las tecnologías de visualización se han volcado a los computadores. Ahora pese a las versiones que vaticinan la desaparición de los tubos de rayos catódicos (TRC), éstos siguen siendo los más baratos y fáciles de fabricar, tal es así que se ha desarrollados dos tipos de tubos de imagen: Tubos de imagen curvos y planos. Un CRT consiste en un tubo de vacío encerrado en un vidrio. Un extremo del tubo contiene un cañón de electrones que proyecta tres rayos electrónicos, cada uno para los fósforos rojo, verde y azul que crean los colores que se ven en pantalla; el otro contiene una pantalla con cobertura de fósforo. Cuando es calentado, el cañón electrónico emite una corriente de electrones a alta velocidad que son atraídos al otro extremo del tubo. En el trayecto un control de enfoque y una bobina de deflexión dirigen el rayo a un punto específico en la pantalla de fósforo. Cuando es impactado por el rayo, el fósforo brilla con intensidad. Esta luz es lo que se ve cuando se ve algo en la pantalla. Se usan tres capas de fósforo: rojo, verde y azul. Una placa de metal llamada máscara de sombra se usa para alinear los rayos electrónicos; posee agujeros que dividen los fósforos (rojo, verde y azul) en grupos de tres (uno de cada color). Varios tipos de estas máscaras afectan la calidad de la imagen, y la distancia entre cada grupo de tres (dot pitch) afecta la agudeza de la imagen (sharpness). La química del fósforo se llama persistencia, e indica cuánto tiempo se mantiene el brillo en la pantalla. La frecuencia de exploración de la pantalla especifica cuántas veces la imagen es refrescada. El rayo electrónico se ELECTROTECNIA 171 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I mueve muy rápidamente, barriendo la pantalla de izquierda a derecha en líneas desde la parte superior a la inferior, en un patrón llamado trama. La tasa de exploración horizontal refiere a la velocidad a la cual el rayo electrónico se mueve lateralmente a través de la pantalla. Durante su barrido, el rayo pulsa el fósforo donde aparece la imagen. Al variar de intensidad el rayo se producen diferentes niveles de brillo. Debido a que el brillo comienza a decaer con rapidez, el rayo debe continuar refrescando o barriendo la pantalla para mantener una imagen. La mayoría de pantallas CRT tienen una tasa de refresco ideal (llamado frecuencia de barrido vertical) de alrededor de 85Hz, lo que significa que la pantalla es refrescada 85 veces por segundo. Las tasas de refresco que son muy bajas pueden ocasionar que la pantalla parpadee, contribuyendo al cansancio visual. Mientras más alto es la tasa de refresco, mejor. Es importante que las tasas de refresco que se esperan de un monitor coincidan con los que produce la tarjeta de vídeo, de otra manera se puede dañar el monitor. Las pantallas basadas en fósforo vienen en dos estilos: curvos y planos. El monitor TRC con pantalla curva en los ejes vertical y horizontal es el monitor tradicional. La Sony Trinitron diseño pantallas. Como funciona el TRC. El TRC es básicamente un cátodo (emisor de haz de luz electrónico) y un ánodo (pantalla recubierta de fósforo) que permite viajar a los electrones desde el Terminal negativo (cátodo) al positivo (ánodo). Al calentarse el cátodo se produce un desprendimiento de electrones por emisión termoiónica. El calentamiento del cátodo se consigue sometiendo al filamento a una tensión de 6.3V. Esta tensión se regula el número de electrones que atraviesan el orificio. • El cañón electrónico, que se encarga de generar un haz de electrones. • El sistema deflector, que se encarga de modificar la trayectoria del haz; • Pantalla recubierta de fósforo. Los monitores monocromos solo usan un haz electrónico y único tipo de fósforo, pero los monitores de color emplean tres haces (azul, Rojo. Verde) y fósforo de tres colores repartidos en triadas, cada haz controla un color básico: rojo, azul y verde sobre los puntos correspondientes de la pantalla. ELECTROTECNIA 172 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Loa tres son modulados, activados y desactivados, para producir los diferentes colores. 1. Cañones de electrones. 2. Haces de electrones. 3. Máscara para separar los rayos rojos, azules y verdes de la imagen visualizada. 4. Capa fosforescente con zonas receptivas para cada color. 5. Gran superficie plana sobre la cara interior de la pantalla. La reflexión de haz de electrones se consigue mediante unas bobinas dispuestas alrededor del cuello del tubo. La corriente eléctrica que circula por la bobina crea un campo magnético que provoca una deflexión electromagnética (El yugo del monitor) emisión de electrones repartiéndolo por la pantalla, para “pintar” las diversas líneas que forman un cuadro o imagen completa. El sistema deflector genera una trama, que es un conjunto de líneas horizontales que se van dibujando sucesivamente de arriba hacia abajo en la pantalla, en un proceso conocido con el nombre de barrido (de forma similar a como ocurre en el TRC de un televisor). ¿Qué es el Píxel? La pantalla muestra puntos grises y coloreados (triadas) de fósforos que se denominan pixells o píxeles. El píxel, en la tecnología TRC, no tiene un tamaño fijo, sino que varía según la resolución a la que ajustemos el monitor. En el mismo monitor, a una resolución de 1024x768 tendremos un número de píxeles bastante mayor que por ejemplo a una resolución de 800x600. ELECTROTECNIA 173 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Esto significa que cada píxel será más pequeño en el primer caso que en el segundo, pues en el mismo tamaño de pantalla se representa un número mayor de píxeles. PARÁMETROS DEL MONITOR. Tamaño. Son las dimensiones de la diagonal de la pantalla que de mide en pulgadas los hay de 9, 12, 14, 15,17,.. Pero los mas habituales son los de 15 pulgadas. Un CRT por bueno que sea, tiende a perder definición en los bordes y esquinas pues esta claro que el tamaño oficial de un modelo de monitor no coincide con el área visible Resolución. Es el número de puntos que puede presentar el monitor por pantalla, en horizontalxvertical pues cuando se dice por ejemplo una resolución de 1024x768. Nos da a entender que por 768 líneas horizontales existe en cada línea horizontal 1024 puntos (píxel). Cuanto mayor sea la resolución del monitor, mejor será la calidad de la imagen en la pantalla y mayor la calidad del monitor. Características del monitor Dot Pitch. Este parámetro lo que indica, es la distancia que separa a cada píxel de los píxeles adyacentes. Cuanto menor sea esta distancia, mayor nitidez tendrá la ELECTROTECNIA 174 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I imagen. También hay que tener en cuenta, que esta distancia tiende a ser más pequeña en el centro de la pantalla, pero a medida que nos acercamos a las esquinas tiende a incrementarse ligeramente, de ahí que algunos fabricantes, den dos medidas, una máxima y otra mínima. En lo que debemos fijarnos es que el monitor no supere un dot pitch de 0,28 mm. Tampoco debemos dejarnos deslumbrar por algunos fabricantes que presentan algunos modelos con dot pitch sorprendentemente bajos, como por ejemplo 0,22 mm. Esto es debido que hay diversas tecnologías CRT, en algunas de las cuales no se miden exactamente la distancia entre píxeles, pues no es aplicable debido a su naturaleza, pero si dan un tipo de medida equivalente al dot pitch. En cualquier caso, normalmente un dot pitch de 0,22 mm en cierta tecnología suele ser equivalente a 0,25 mm en otra. Tampoco debemos obsesionarnos por esta cuestión, así que bastará con optar por un monitor que no supere los 0,28 mm, considerando un valor excelente 0,26mm o cualquier cifra inferior. ELECTROTECNIA 175 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Exploración de la Pantalla. La exploración de la pantalla del monitor TRC se realiza por patrones de exploración. Hay dos patrones utilizados por los diferentes monitores para llenar toda la pantalla. Ambos exploran la imagen a lo ancho de la misma, en una fila de 1 pixell de altura, de izquierda a derecha , bajando y volviendo a explorar hacia la izquierda. Pantalla Entrelazada. El patrón entrelazado explora a razón de una fila de pixels por medio. De forma que primero se exploran las filas impares y después las pares, de la misma manera anterior, de derecha a izquierda. Pero como las filas de pixels están muy cercanas entre sí, el ojo no percibe muy fácilmente si una fila se ha apagado antes de volver a ser explorada. Es mucho mejor para los ojos y estómago del usuario. ENTRELAZADO Pantalla con patrón no entrelazada. El patrón no entrelazado explora cada fila de pixells a su turno, desde la cima hasta el fondo. Este tipo es más propenso a parpadear si la exploración no ha empezado de nuevo cuando los puntos han dejado de brillar después de la última exploración. El parpadeo puede generar cansancio a los ojos del usuario. ELECTROTECNIA 176 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Descripción de un monitor. Vamos a tomar como ejemplo la placa de un monitor Samsung Syncmaster 3NE. Vertical. En el cuadrante V están localizados los componentes de la etapa Vertical, como el CI LA7837 y sus asociados, estos últimos identificados por el Número 3 (o sea D304, IC 301, C302…) Horizontal. En el cuadrante H están los componentes que ocupan la etapa Horizontal: oscilador horizontal, driver, salida horizontal, etc. El transistor de salida horizontal está fijado cerca al Flyback. Estos componentes son identificados por el numero 4 (T404, D403, Q402…) Flyback. En el cuadrante A está situado el Flyback componente de alta tensión, el cual consta de varios bobinados internos los cuales alimentan al resto de algunas las etapas por ejemplo a la etapa vertical etc. Fuente de Alimentación.- En el cuadrante F encontramos la fuente de alimentación: Chopper, Transistor regulador, optoacoplador, en fin todos los componentes responsables del funcionamiento de la fuente de alimentación, estos componentes son identificados por el Numero 6 IC602, C633, Q602… Descripción de un monitor Paneles LCD. Los paneles LCD (Despliegue de Cristal Líquido) tienen poco fulgor, pantallas completamente planas y bajos requerimientos de energía (desde 5W). La calidad de color de un panel LCD de matriz activa actualmente excede ELECTROTECNIA 177 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I la de la mayoría de pantallas CRT. Sin embargo, LCD usa una resolución más limitada que CRT. Por otro lado, los paneles de 17 y 18 pulgadas ofrecen una resolución máxima de 1280x1024, mientras que un monitor de 19 pulgadas tiene una resolución máxima de 1660x1200. En un LCD un filtro polarizante crea dos ondas separadas de luz. El filtro polarizante permite que las ondas de luz que están alineadas sólo con el filtro por el que las pasa. Luego de pasar a través del filtro polarizante, las ondas de luz restantes son alineadas en la misma dirección. Por medio de alinear un segundo filtro polarizante en un ángulo recto con el primero, todas esas ondas son bloqueadas. Al cambiar el ángulo del segundo filtro polarizante, la cantidad de luz que se permite pasar puede ser cambiada. Es el papel de la celda de cristal líquida cambiar el ángulo de polarización y controlar la cantidad de luz que pasa. Los cristales líquidos son moléculas en forma de barra que fluyen como un líquido. Ellos permiten que la luz pase directamente a través, pero una carga eléctrica altera sus orientaciones y la orientación de la luz que pasa a través de ellas. Aunque los LCD monocromáticos no tienen filtros de color, pueden tener múltiples celdas por píxel para controlar sombras de gris. En un LCD de color, un filtro adicional tiene tres celas para cada píxel, uno por cada color desplegado, rojo, verde y azul, con un transistor correspondiente para cada celda. Las celdas rojas, verdes y azules, las cuales conforman un píxel, a veces son llamadas subpíxeles. La mayoría de pantallas de matriz activa usan un arreglo de película fina de transistores (thin film transistor, TFT). Este método empaqueta a partir de uno a tres transistores por píxel dentro de un material flexible del mismo tamaño y forma de la pantalla. Por lo tanto, los transistores por cada píxel yacen directamente detrás de las celdas de cristal líquido que controlan. ELECTROTECNIA 178 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Estas pantallas utilizan una técnica totalmente diferente. La pantalla todavía está integrada por pequeños puntos pero es absolutamente plana. Estos visualizadores están construidos con dos capas de un material polarizante, entre las que se introduce una solución de cristal líquido. Una señal eléctrica hace que estos cristales se alineen de manera tal que impiden el paso de la luz. Una pantalla negra tiene todos sus cristales alineados impidiendo el paso de cualquier luz. La señal de una imagen permite de manera ingeniosa que los colores sean mostrados en los lugares correctos. Su ojo hace el resto Comparación entre LCD y CRT. • El promedio de energía que consume un monitor LCD de 15 pulgadas es más o menos 45W, mientras que un monitor de 17 pulgadas consume aproximadamente 100W. • Los monitores LCD requieren poco espacio en comparación con los CRT. • La geometría de la imagen en un LCD ofrece un plano absoluto y cuadros reales sin flexiones. • Un monitor CRT presenta grandes opciones de resoluciones. Un LCD tiene un número definido de celdas de cristal líquido. Por lo tanto sólo puede aplicar una resolución usando una pantalla completa. A resoluciones más bajas la imagen debe ser escalada por medio de interpolaciones lo que produce pérdida de la calidad. • Los monitores CRT pueden garantizar una imagen libre de parpadeos con 85Hz. Para LCD las celdas en la pantalla sólo se encienden o apagan, por lo que no hay parpadeo incluso con 60Hz. • Con los monitores CRT, el tiempo de reacción es prácticamente imperceptible, mientras que los monitores LCD los tiempos de respuesta ELECTROTECNIA 179 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I pueden ser de 30 milisegundos. Puesto que el ojo humano puede ver imágenes a un período de reacción de 50 milisegundos, esto es suficiente. • La radiación electromagnética bajísima de los monitores LCD beneficia nuestra salud. • Los colores se ven más brillantes en monitores LCD. Sin embargo la calidad del despliegue depende de un alto grado de ángulo de visión. Pantalla de Plasma. Plasma. En una sustancia eléctrica neutra con una lata de ionización compuesta por iones, electrones y partículas neutras. Básicamente el plasma es un mar de electrones e iones que conduce de manera excelente la electricidad. Si se aplica suficiente calor los electrones se separan de sus núcleos. La composición de la Pantalla de Plasma se compone de una matriz de celdas conocidas como píxeles, que se componen a su vez de tres subpíxeles, que corresponden a los colores rojo, verde y azul. ¿Cómo reacciona el Plasma? El gas en estado de plasma reacciona con el fósforo de cada sub-píxel para producir luz coloreada (roja, verde o azul). Estos fósforos son los mismos que se utilizan en los tubos de rayos catódicos de los televisores y monitores convencionales. Cada sub-píxel está controlado individualmente por un procesador y se pueden producir más de 16 millones de colores diferentes. Imágenes perfectas en un display de profundidad mínima. ELECTROTECNIA 180 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Criterios para seleccionar monitores. Tamaño. Estos van desde 9 hasta 42 pulgadas medidas en diagonal. Los tamaños más comunes son 15, 17, 19 y 21 pulgadas. Pero esta medida muchas veces indica el tamaño del cinescopio y no de la imagen que puede desplegarse. Un monitor de 17 pulgadas de tamaño tiene un área real de visibilidad de 15.5 pulgadas. Por otro lado, los LCD tienen el área real total que se indica entre las especificaciones del producto. ELECTROTECNIA 181 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Resolución. Es el grado de detalle que puede interpretar el monitor, y se expresa mediante el número de elementos de imagen (píxeles), tanto horizontal como vertical, contenidos en la pantalla. Mientras mayor sea el número de píxeles, mayor detalle tendrá la pantalla. Las resoluciones aceptadas por las adaptadoras de vídeo han llegado a ser: VGA, SVGA, XGA y UVGA. La tasa de aspecto tiene que ver con la forma de la pantalla; por ejemplo, un monitor de 1280x1024 tiene una tasa 1280:1024, esto es 5:4 = 1.25. Paso de punto (dot pitch). Es la distancia (en milímetros) entre los tríos de fósforo. En las pantallas con menor paso de punto, hay menos espacio entre los tríos, como resultado, los elementos de imagen están más juntos y producen una imagen más definida en la pantalla. El monitor del PC original tenía un paso de punto de 0.43 mm. Para un texto claro e imágenes finas el paso de punto debe ser menor a 0.28 mm. Frecuencias. Los monitores modernos son de frecuencia múltiple, y satisfacen una gran variedad de normas. El rango de las frecuencias horizontales y verticales que acepte el monitor para no dañarse, debe coincidir con el que genere la adaptadora de vídeo. La frecuencia vertical (de actualización /cuadro) determina la estabilidad de la imagen, y van de 50 a 160Hz. La frecuencia ELECTROTECNIA 182 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I horizontal (velocidad de línea), por lo general va de 31.5 a 90KHz, y a veces más. Otros criterios. En los monitores LCD se debe tomar en cuenta el brillo y contraste de imagen. Algunos monitores CRT son entrelazados y otros no entrelazados. Algunos monitores ahorran más energía que otros. Tarjetas adaptadoras de vídeo La tarjeta adaptadora de vídeo constituye la interfaz entre la computadora y el monitor, y transmite las señales que aparecen como imágenes en la pantalla. A través de la historia se han usado varias normas para las características de la pantalla, las cuales representan un firme incremento en la resolución de pantalla y la profundidad de color: MDA (Adaptador de Pantalla Monocromática) HGC (Tarjeta Gráfica Hércules) CGA (Matriz Gráfica de Color) EGA (Adaptador Gráfico Mejorado) VGA (Matriz Gráfica de Vídeo) SVGA (Súper VGA) XGA (Matriz Gráfica Ampliada) Cuando IBM introdujo los sistemas PS/2 en 1987, introdujo además el despliegue VGA, y las adaptadoras MCGA de baja resolución y 8514 de alta resolución. Todos los adaptadores de despliegue modernos que se conectan al conector VGA de 15 pines o al conector analógico-digital DVI están basados en el estándar VGA. Una tarjeta VGA estándar despliega hasta 256 colores en la pantalla, a partir de una paleta de 262,144 (256KB) de colores; cuando es usado en el modo gráfico de 640x480 ó el modo de texto 720x400, pueden ser mostrados 16 colores a la vez. Debido a que VGA entrega una señal analógica, debemos tener un monitor que acepte una entra analógica. Las tarjetas Super VGA, que fueron producidas por varias compañías, proveen capacidades que sobrepasan las ofrecidas por la adaptadora VGA. Una tarjeta puede ofrecer varias resoluciones (tales como 800x600 y 1024x768) que son más grandes que las que se alcanzan con un VGA regular, mientras que otra puede ofrecer las mismas o incluso mayores resoluciones pero con más opciones de color por cada resolución. Estas tarjetas tienen los mismos conectores que sus contrapartes VGA. ELECTROTECNIA 183 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I En el conector de cable VGA que conecta en la adaptadora de vídeo, el pin 9 normalmente está ausente, el pin 5 se usa sólo para propósitos de pruebas, y el pin 15 es raramente usado. Para identificar el tipo de monitor conectado al sistema, algunos fabricantes usan la presencia o ausencia de los pines de identificación de monitor en varias combinaciones. La última tendencia en el diseño de los monitores CRT es el uso de señales de entrada digitales, usando el mismo estándar de Interfaz de Vídeo Digital (DVI), usado en los paneles delgados de despliegue LCD. Puesto que los paneles de despliegue LCD puramente digitales que usan la interfaz DVI se incrementarán en popularidad, el VGA analógico con el tiempo puede ser reemplazado por los monitores CRT y LCD basados en DVI. Componentes de la adaptadora de vídeo. a) BIOS de video: Las adaptadoras de vídeo tienen un BIOS similar en construcción al BIOS principal del sistema, pero completamente separado del BIOS del sistema principal. Si encendemos el monitor primero y observamos rápidamente, podremos ver información sobre la identificación ELECTROTECNIA 184 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I del BIOS de la adaptadora de vídeo al mismo comienzo del proceso de inicio del sistema. b) Procesador de vídeo (GPU, VPU)): Es el chipset de vídeo, el corazón de toda adaptadora y, en esencia, define las funciones y niveles de desempeño de la tarjeta. Dos adaptadoras de vídeo construidas con el mismo conjunto de chips por lo general tienen muchas de las mismas capacidades y muestran un rendimiento semejante. En las adaptadoras de vídeo se usan tres tipos básicos de procesadores: controladores de búfer de cuadro, coprocesadores y aceleradores. En realidad las funciones básicas de la adaptadora podrían ser calculadas por la CPU del sistema, pero si lo hace el chip acelerador de vídeo, la CPU puede procesar otras operaciones. Las GPU pueden realizar cálculos sobre las texturas, sobre representaciones de sombras y llenado de superficie de objetos 3D, sobre métodos de iluminación desde diferentes ángulos, etc. c) RAM de vídeo: La mayoría de las adaptadoras de vídeo dependen de su propia memoria en tarjeta, que usan para almacenar las imágenes mientras las procesan; aunque algunas tarjetas AGP pueden usar memoria del sistema para las texturas tridimensionales. Muchos sistemas con vídeo en tarjeta usan una Arquitectura Unificada de Memoria para compartir la memoria del sistema. Se han usado varios tipos de memoria con las adaptadoras de vídeo. Entre ellas están las siguientes tecnologías: FPM DRAM, VRAM, WRAM, EDO DRAM, SDRAM, MDRAM, SGRAM, DDR SDRAM y DDR-II SDRAM. La cantidad de memoria de la adaptadora determina la resolución máxima de la pantalla y la profundidad de color posible. Una resolución de pantalla de 1024x768 requiere un total de 786,432 píxeles. Si se usan 16 bits de memoria para controlar cada píxel, se puede desplegar 65,536 colores. Multiplicando el número de píxeles necesarios para la resolución por el número de bits ELECTROTECNIA 185 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I requeridos, tendremos la cantidad de memoria que necesita la adaptadora para desplegar esa resolución. d) Bus de vídeo. Se han usado para los estándares VGA y otros los primeros estándares de bus, tales como IBM MCA, ISA, EISA y VL-Bus. Debido a su bajo rendimiento, todos ellos son obsoletos; las tarjetas de vídeo actuales están hechas exclusivamente con los estándares PCI ó AGP. AGP es un bus de vídeo dedicado que entrega un ancho de banda máximo hasta 16 veces más grande que un bus PCI compatible. Es en esencia una mejora del bis PCI existente; está dirigido para ser usado con sólo adaptadoras de vídeo y les provee de un acceso de alta velocidad al arreglo de memoria del sistema principal. Esto permite que el adaptador procese ciertos elementos de vídeo 3D, tales como mapas de texturas, directamente desde la memoria del sistema en vez de tener que copiar los datos a la memoria del adaptador antes de que el procesamiento pueda empezar. Esto ahorra tiempo y elimina la necesidad de actualizar la memoria del adaptador de vídeo para soportar mejor las funciones 3D. Un parámetro importante a considerar en la adaptadora es el ancho del bus que conecta el conjunto de chips gráfico y la memoria en la adaptadora. El chipset es normalmente un chip grande en la tarjeta que contiene prácticamente todas las funciones de la adaptadora. Está cableado directamente a la memoria de la adaptadora a través de un bus local en la tarjeta. La mayoría de los mejores adaptadores usan un bus de memoria interno de 64 bits o incluso 128 bits de ancho. Cuando se dice que el adaptador tiene estos valores se debe entender que se refiere al bus local de vídeo y que el bus que conecta la adaptadora al sistema es el bus PCI o AGP de 32 ó 64 bits de la tarjeta madre del sistema. • RAMDAC (Convertidor digital-analógico). Es el responsable de convertir las imágenes digitales que genera la computadora en señales analógicas ELECTROTECNIA 186 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I que el monitor pueda desplegar. Su velocidad se mide en MHz; mientras más rápido es el proceso de conversión, mayor es la frecuencia vertical de actualización de la adaptadora. La velocidad de los RAMDAC de gran rendimiento varía entre los 300MHz hasta los 500MHz. Antes era un chip separado, pero ahora está incorporado en el chip procesador/acelerador de vídeo en los conjuntos de chips recientes. El DAC no es parte de un subsistema digital necesariamente, pero debido a que la mayoría de los subsistemas de despliegue tienen una tarjeta de video VGA analógica, un monitor analógico, o ambos, las tarjetas de vídeo continuaran teniendo características de DAC por algún tiempo. Algunas tarjetas de vídeo de capacidad dual de despliegue usan un chip RAMDAC separado para permitir que el segundo monitor trabaje a tasas de refresco diferentes que la pantalla primaria. • Controlador de vídeo: El controlador de software es un elemento importante y esencial del subsistema de despliegue de vídeo. Este controlador permite que los programas se comuniquen con la adaptadora de vídeo, y están diseñados para soportar el procesador en la adaptadora. El controlador provee además la interfaz que se puede usar para configurar el despliegue que el adaptador produce. En un sistema basado en Windows, el panel de control de Pantalla identifica el monitor y adaptador de vídeo instalado en el sistema y permite seleccionar la profundidad de color y resolución de pantalla preferidos. ELECTROTECNIA 187 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Aceleradores gráficos 3D. Para construir una secuencia animada en 3D, una computadora puede matemáticamente animar las secuencias entre los marcos clave. Un marco clave identifica puntos específicos. Una bola que rebota, por ejemplo, puede tener tres marcos clave: arriba, abajo, y arriba. Al usar estos marcos como un punto de referencia, la computadora puede crear todas las imágenes intermedias entre los extremos superior e inferior. Esto crea el efectote una bola que rebota suavemente. Luego de haberse creado la secuencia básica, el sistema puede refinar la apariencia de las imágenes por medio de llenarlas con color. El método más primitivo y efectivo para el llenado se llama flat shading, en el cual una silueta es simplemente llenada con un color sólido. Una técnica más efectiva, llamada gourad shading, envuelve la asignación de colores a puntos específicos sobre la silueta. Los puntos son entonces unidos por medio de usar una gradiente suave entre los colores. Fue a partir de 1996 que los conjuntos de chips de la mayoría de las adaptadoras de vídeo empezaron a ocuparse de muchas de las tareas envueltas en producir imágenes 3D, reduciendo grandemente la carga del procesador del sistema y mejorando el rendimiento en general. La tecnología 3D ha agregado un vocabulario completamente nuevo al mundo de las adaptadoras de despliegue de vídeo. La función básica del software de 3D es convertir las abstracciones de imágenes en imágenes que serán desplegadas luego en el monitor. La abstracción de imagen normalmente consiste de los siguientes elementos: • Vértices: Ubicaciones de objetos en espacio de tres dimensiones, descritos en términos de sus coordenadas x/y/z en los tres ejes representando altura, ancho y profundidad. • Primitivos: Los objetos geométricos simples que usa la aplicación para crear más construcciones complejas, descritas en términos de las ubicaciones relativas de sus vértices. Esto especifica la ubicación del objeto en la imagen 2D y provee perspectiva debido a que los tres ejes pueden definir cualquier ubicación en el espacio tridimensional. ELECTROTECNIA 188 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I • Texturas: Imágenes de mapa de bits de dos dimensiones o superficies diseñadas para ser mapas sobre los primitivos. El software mejora el efecto 3D al modificar la apariencia de las texturas, dependiendo de la ubicación y actitud del primitivo. Este proceso se llama corrección de perspectiva. Algunas aplicaciones usan un proceso MIP mapping, el cual usa diferentes versiones de la misma textura que contiene cantidades variables de detalles, dependiendo de cuán cerca el objeto se encuentra ante el visor en el espacio tridimensional. Otra técnica llamada depth cueing, reduce el color e intensidad de un llenado de objeto según se mueve el objeto lejos del visor. Usando estos elementos, las descripciones de imagen abstracta deben ser representadas, lo que significa que serán convertidas a la forma visible. La representación depende de dos funciones estandarizadas, que convierten las abstracciones en una imagen completa que es desplegada en pantalla. Las funciones estándar desarrolladas en la representación son: • Geometría: El dimensionado, orientación y movimiento de los primitivos en el espacio y el cálculo de los efectos producidos por la fuente de luz virtual que iluminan la imagen. • Tramado: La conversión de los primitivos en píxeles sobre la pantalla por medio de llenar las siluetas con sombreados iluminados, texturas, o una combinación de los dos. Algunas consideraciones finales: • Los monitores CRT procesan analógicamente la señal de vídeo, utilizan una señal RGB (rojo, verde y azul) y utilizan el conector VGA. Entre sus desventajas podríamos considerar que generan un parpadeo si es que el refresco de imagen es menor a 72Hz, requieren más espacio y pesan mucho, consumen más energía y emiten radiaciones, el tamaño en pulgadas siempre es menor al que el fabricante especifica. • Los paneles LCD normalmente procesan la señal digitalmente, tienen una profundidad de color más limitada (24 bits), y usan un conector DVI-D (sólo digital) o DVI-I (analógico y digital). Entre sus ventajas podríamos considerar que tienen una tasa de contraste y brillo altas, y una representación nítida y libre de distorsiones; además el tamaño del panel en pulgadas es exactamente el que dice el fabricante. Entre sus desventajas podríamos decir que a veces la imagen depende del punto de visión (puede que desde ciertos ángulos no se aprecie claramente la imagen), y tienen un refresco de ELECTROTECNIA 189 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I pantalla bajo, lo cual dificulta la apreciación de juegos de vídeo demasiado rápidos. • El desarrollo tecnológico que han impulsado los fabricantes de chips procesadores de vídeo ha hecho que algunas tarjetas de vídeo sean más costosas que ciertos procesadores del sistema. En algunos casos, un chip GPU o VPU tiene más millones de transistores que los últimos procesadores Intel. De igual modo, la tecnología de memoria RAM que viene en las tarjetas se encuentra a la par con la tecnología de memoria RAM para las tarjetas madre. Esto también ha contribuido a originar una fuente adicional de calor en el interior de un sistema PC. Actualmente las dos empresas que se pelean la primacía en el diseño y fabricación de chips para tarjetas de vídeo de alto rendimiento son: ATI y N-Vidia. Para tener operativo un monitor hay que tener algunas consideraciones técnicas. • El monitor presenta en su circuito interno una fuente de alta tensión llamado FLY BACK que energiza al TRC con un voltaje aproximadamente de 25 000 Voltios • Para manipula o cambiar algún componente se debe descargar la alta tensión almacenada en el FLY BACK. • El Yugo es el bobinado que permite la deflexión del haz de electrones que marcan los puntos de fósforo de la pantalla. • Si se descalibra el núcleo del yugo se genera una distorsión en el barrido (rastre) de la imagen. • La tarjeta electrónica pequeña presenta un integrado de color y un sistema transistorizado regulado por los potenciómetros de color (Rojo, Verde, azul) que permiten calibrar los colores en la pantalla. ELECTROTECNIA 190 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Consideraciones técnicas para la reparación de fallas típicas de los monitores: • Si no enciende un monitor primeramente se revisa el circuito de la fuente de baja tensión (fusible, termistor, Diodos, Filtro, etc.). • Si falla la fuente de lata tensión el monitor no presenta la trama. • Si haz de electrones del TRC no se desviara, esto puede producir una mancha muy luminosa en el centro de la pantalla (qué se convertirá rápidamente en una mancha permanente muy oscura), desconectar un bobinado vertical un 0orizontal y se formara una línea en la pantalla opuesta al bobinado desconectado, entonces el yugo esta defectuoso. • Si la imagen no presenta una nitidez calibrar utilizando los potenciómetros que presenta el FLY BACK, el Focus calibra la intensidad y el Screen la nitidez. • Cuando el color de la imagen se acumula en un sector de la pantalla, la falla se conoce como pantalla magnetizada, corregir desmagnetizando con un aro desmagnetizador. Desmagnetizador de TRC. Todos los Televisores y Monitores que usan TRC (Tubo de Rayos Catódicos o cinescopios) cromáticos tienen incorporado un circuito desmagnetizador o degausing para eliminar la magnetización o mascara de sombra dentro de TRC uy otras partes metálicas externas. Si la pantalla se magnetiza, la solución es desmagnetizarla, pero el aro desmagnetizador no es una herramienta que siempre se encuentra en los comercios de electrónica, por lo tanto se describe como elaborar un aro desmagnetizador. Construcción: Trazar una circunferencia de unos 25 a 30 cm de diámetro sobre la madera. Clavar sobre esa línea los clavos con una separación entre ellos de unos 6 o 7cm y a una profundidad aproximada de 1,5 cm (solo lo suficiente para que queden firmes). Forrar cada clavo con un trozo de cinta aisladora, para que el roce del metal no deteriore el esmalte del alambre. ELECTROTECNIA 191 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Una vez hecho esto, ya tenemos la base para comenzar a fabricar la bobina. La bobina se realiza enrollando el alambre de cobre esmaltado, sobre la circunferencia de clavos. Si se trata de una bobina para ser usada en una red eléctrica de 120VAC deberemos enrollar unas 600 a 700 vueltas, si es para 220VAC debemos enrollar unas 1200 a 1400. La cantidad exacta no es critica, incluso se puede construir con menos espiras (500 o 1000) si se usa alambre un poco más fino. Una vez completado el enrollado, se debe atar con un hilo en barios puntos, para que, el conjunto de alambres se mantenga unido al retirar los clavos. Se conecta el cable de conexión y el interruptor, y se procede a forrar todo el conjunto con cinta (tape) aislante, de forma de cubrirla totalmente dándole una consistencia firme al conjunto, preferiblemente dos o tres capas de cinta. Quedará algo parecido a un volante de automóvil, ver la figura. Modo de uso. Colocar la bobina frente a la pantalla a desmagnetizar a 2 o 3 centímetros de esta, conectarla, hacer movimientos circulares para cubrir toda el área de la pantalla, y alejarla progresivamente de esta, desconectar la bobina cuando este suficientemente lejos (1m o más). Considerar que el monitor es un circuito electrónico que requiere un conocimiento claro de cada etapa y su funcionamiento respectivo, para realizar la reparación es importante tener cuidado en manipular los componentes por ser un circuito que genera una energía muy alta. IMPRESORA. Es un dispositivo mediante el cual se pueden escribir los datos que se producen con la ayuda del computador. Aunque la mayor parte del volumen de datos viaja de la computadora a la impresora, debe haber comunicación en sentido inverso. Antes de que se puedan enviar datos para su impresión, la computadora debe revisar el estado de la impresora, si está encendida y lista ELECTROTECNIA 192 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I para aceptar comandos, encendida o fuera de línea o sin papel, o que no puede trabajar por algún otro error. Solamente cuando el computador ha determinado que la impresora no está en línea y lista para aceptar comandos puede enviar información para su impresión. Tipos: Según la tecnología que empleen, se tiene: - Impresora Matricial (o Matriz de Punto): Tienen un cabezal de impresión que viaja de ida y de regreso sobre un rodillo que va desde el extremo izquierdo del papel hasta su extremo derecho. Dentro del cabezal hay varias agujas (pines) que pueden sobresalir para golpear el papel a través de una cinta de nylon entintada. A medida que se mueve el cabezal de izquierda a derecha, sobresalen diferentes combinaciones de agujas y golpean el papel. Esta impresora puede tener de 9 a 24 pines. Como suministro usan un cartucho que contienen una cinta de nylon. Su velocidad se mide en caracteres por segundo (cps); normalmente, varía de 50 a 5000 cps. Son ruidosas comparadas con las impresoras láser y de inyección de tinta. Producen una impresión de más baja calidad. Por otro lado son más económicas en términos de costo inicial y costo de operación. Estas impresoras pueden producir normalmente de 4 a 12 hojas de texto por minuto; si estas imprimen gráficos, la salida puede ser mucho mas lenta. La resolución se mide en puntos por pulgadas (DPI). Las impresoras más comunes tienen resoluciones de 600 DPI, tanto horizontal como verticalmente; algunos modelos de alto nivel tienen resoluciones de 1200 DPI para impresione de alta profesionales de alta calidad. ELECTROTECNIA 193 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I - Impresora Láser: Como implica el nombre, un láser está en el interior de estas máquinas. Tiene construido internamente una computadora separada para interpretar los datos que recibe de la computadora y para controlar el láser. El resultado es una máquina muy complicada. Así como el cañón de electrones puede seleccionar cualquier píxel en un monitor gráfico, el láser en una impresora puede seleccionar cualquier punto en un tambor y crea una carga eléctrica. El tóner, compuesto de pequeñas partículas de tinta con cargas eléctricas opuestas, se adhiere al tambor en los lugares que fueron cargados eléctricamente por el láser. Luego, con presión y calor, se transfiere el tóner del tambor al papel. Son más caras que cualquiera de los otros tipos de impresoras, pero de mayor calidad. También son mucho mas rápidas y muy silenciosas. - Impresora de Inyección de Tinta (Inkjet) : Su funcionamiento se basa en un cabezal, en este caso inyector, dotado de una serie de boquillas que expulsan la tinta según los impulsos recibidos. Aunque en el principio, únicamente se podía imprimir en blanco y negro, el color se popularizó rápidamente. Aquí el parámetro de calidad lo da la resolución de la imagen impresa, expresada en puntos por pulgada; aunque con 300 ppp basta imprimir texto, para fotografías es recomendable al menos 600 ppp. Dada su relación precio/ calidad, son las impresoras mas utilizadas para trabajos domésticos y semi-profesionales. ELECTROTECNIA 194 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Características: - Velocidad: La velocidad de una impresora se suele medir con dos parámetros: • ppm: Páginas por minuto que es capaz de imprimir. • cps: Caracteres (letras) por segundo que es capaz de imprimir. - Resolución: Probablemente sea el parámetro que mejor define a una impresora. La resolución es la mejor o peor calidad de imagen que se puede obtener con la impresora, medida o el número de puntos individuales que es capaz de dibujar una impresora. Se habla generalmente de ppp, puntos por pulgada (cuadrada) que imprime una impresora. - Buffer de Memoria: Es una pequeña cantidad de memoria que tienen todas las impresoras modernas para almacenar parte de la información que les va proporcionando el ordenador. Cuanto mayor sea el Buffer más rápido y cómodo será el proceso de impresión, por lo que algunas impresoras llegan a tener hasta 256 Kb de Buffer (en impresoras muy profesionales, incluso varios Mb). - Interfaz o Conector: Las impresoras se conectan al PC casi exclusivamente mediante el puerto paralelo, en muchos sistemas operativos se denominan LPT1 (LPT2, en caso existiera un segundo puerto). Como el puerto paralelo original no era demasiado rápido, en la actualidad se utilizan puertos mas avanzados como el ECP o el EPP, que son más rápidos y añaden bidireccionalidad a la comunicación (es decir, que la impresora puede hablarle al PC, lo que antiguamente era imposible) al tiempo que mantienen la compatibilidad con el antiguo estándar. Las impresoras hoy en día también pueden conectarse al puerto USB. Entre otras características se tienen: • Densidad de caracteres por línea. • Ancho de papel. • Tipos de letras. IMPRESORA MATRICIAL. Existen tres configuraciones típicas en las impresoras de matriz de punto. Las mismas son resultado de la adaptabilidad de esta tecnología para lograr un mejor resultado en cada una de las distintas necesidades de los usuarios. ELECTROTECNIA 195 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Estas se basan en el número de agujas que se sitúan en cada cabezal, por lo que se ofrecen dos opciones a elegir. Configuración de 9 pines. Es la configuración ideal para aquellos usuarios que requieran impresiones rápidas como listados, facturación, reportes, etc. Esta configuración es lograda por dos tipos de cabezales, los de tecnología de 9 agujas y los de 18 agujas. En ambos casos la letra es formada por una combinación de 9 puntos verticales los cuales al recorrer la hoja van formando las letras como se muestra en el siguiente gráfico: Los cabezales de 9 agujas de EPSON le permiten una impresión rápida y eficiente en distintos tipos de documentos, principalmente en facturas, listados, borradores y cuadros, es decir, en todo aquello que sea trabajos pequeños o medianos típicos del hogar, la oficina o el negocio con resoluciones de hasta 240 x 216 puntos por pulgada y formatos de hasta 6 partes dependiendo del modelo. Esto le permite gran versatilidad y velocidad a un bajo costo. Tecnología de Cabezal de 18 agujas. Los cabezales de 18 agujas EPSON están diseñados para trabajos pesados a muy alta velocidad. En realidad están conformados por unidades de 9 agujas montadas una al lado de la otra en la misma estructura del cabezal con el fin de poder alternar el trabajo de ambos y lograr prestaciones mucho más altas. Tanto la forma como se crean las letras como la resolución son las mismas de la tecnología de 9 agujas. Pero los cabezales de 18 agujas son más rápidos y potentes, pudiendo imprimir formatos de hasta 9 partes. ELECTROTECNIA 196 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Tecnología de Cabezal de 24 agujas. La configuración de 24 pines está diseñada para los usuarios que necesiten impresoras de matriz de punto que impriman a mucha mayor resolución ya que requieren una mejor calidad en sus textos y gráficos sin sacrificar la velocidad y flexibilidad de una impresora de impacto. Por ello los cabezales EPSON de 24 agujas están conformados por dos filas paralelas de 12 agujas, las cuales están ligeramente desfasadas verticalmente. Esto permite cubrir de forma más completa el área de impresión generando caracteres y gráficos de mejor calidad. Nomenclatura de los modelos EPSON dependiendo de su configuración de cabezal. Todos los nombres que identifican las impresoras de Matriz de Punto de EPSON están compuestos por una serie de dos o tres letras y un número de tres o cuatro dígitos. Las letras indican la configuración del cabezal de la impresora y los números el modelo. Para los cabezales de 9 pines, las letras que identifican los modelos son: LX, FX y DFX. Para los cabezales de 24 pines, las letras correspondientes son LQ. Cuando el número del modelo es de tres dígitos, puede intuir que es una impresora de carro angosto. Cuando es de cuatro dígitos el modelo será de carro ancho Partes de la Impresora. ELECTROTECNIA 197 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Debajo podemos ver la imagen de la impresora sin la tarjeta de control. Es importante realizar el mantenimiento periódico de la impresora con el fin de evitar que las partes se sulfaten u oxiden, sobre todo la barra de metal donde se desliza el cabezal, esta parte debe estar lubricada y esto permite una impresión sin problemas y desgaste en las demás partes. Luego podemos observar la fuente de impresora matricial, esta se compone de las mismas etapas que cualquier fuente conmutada. ELECTROTECNIA 198 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Vemos en la imagen inferior la tarjeta de control, en esta parte se encuentran los transistores que activan cada pin del cabezal, además de los chips de control. Una falla común es el desgaste de los pulsadores. La faja que mueve el cabezal, desgaste en las poleas, etc. Partes internas de la impresora matricial: - Tractor: Ayuda a empujar el papel hacia la parte interna de la impresora. ELECTROTECNIA 199 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I - Unidad de ruedas: Cuando hay papel continuo se colocan los orificios del papel en los dientes de estas ruedas para sujetar mejor este tipo papel. - Rodillo: Ayuda a arrastrar con más facilidad el papel. - Cartucho de tinta: Es una cinta que está impregnada de tinta. - Cabezal: Pieza que contiene el mecanismo de agujas que se encargan de realizar la impresión de caracteres o gráficos mientras se desplaza a lo ancho y largo del papel. - Motor vertical (Arrastre papel funcionando): Es el que empuja el papel hacia la zona de impresión. - Motor horizontal (Motor arranque cinta funcionamiento): Es el que mueve la parte mecánica y permite que se deslice el cabezal para que vaya imprimiendo. Parte mecánica donde va sujeto el cabezal y el que permite que este se mueva por medio de poleas. PF Motor driver: Es el encargado de mover el carro a través de las correas CR Motor driver: Es el encargado de mover el rodillo. ELECTROTECNIA 200 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I IMPRESORA DE INYECCIÓN. Partes de la impresora de inyección: El cabezal de impresión: Es el núcleo de una impresora chorro de tinta, el cabezal de impresión es el lugar donde se colocan los cartuchos de tinta. Los cartuchos de tinta: Dependiendo del fabricante y del modelo de la impresora, los cartuchos de tinta vienen en diferentes combinaciones, tales como cartuchos para color negro y colores separados. La tinta negra y a color puede verse en un único cartucho o en un cartucho para cada color de tinta. Los cartuchos de algunas impresoras chorro de tinta incluyen el propio sistema cabezal de impresión. El motor del cabezal: un motor paso a paso mueve el cabezal de impresión (cabezal de impresión y cartuchos de tinta) hacia ambos costados, moviéndose sobre el papel. Algunas impresoras tienen otro motor para estacionar el cabezal de impresión cuando la impresora no está en uso. Estacionar quiere decir que el cabezal de impresión está imposibilitado para moverse accidentalmente, como el freno de mano en un coche. Correa dentada y cabezal: una correa dentada es usada para unir el cabezal de impresión al motor. La barra estabilizadora: El cabezal de impresión usa la barra estabilizadora para asegurar que el movimiento sea preciso y controlado. Bandeja de alimentación de papel: La mayoría de las impresoras chorro de tinta tienen una bandeja para colocar el papel. Algunas impresoras extraen el papel de la bandeja por medio del alimentador. El alimentador se encarga de extraer una hoja de las que se encuentran en la bandeja. Los rodillos: un conjunto de rodillos mueve el papel desde la bandeja o del alimentador hacia el cabezal de impresión. El motor del alimentador de papel: Este motor impulsa los rodillos a que muevan el papel con el paso exacto y necesario para asegurar que una imagen continua sea impresa. ELECTROTECNIA 201 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Fuente de alimentación: Mientras que las primeras impresoras tenían un transformador externo, la mayoría de las impresoras de hoy usan una fuente de alimentación incorporada en la propia impresora. Placa electrónica controladora (Placa lógica): Una pequeña cantidad, pero sofisticada, de circuitos electrónicos controlan todos los aspectos mecánicos de operación, así como decodificar la información enviada a la impresora desde la computadora. La operación mecánica de la impresora es controlada por una pequeña placa contiendo un microprocesador y una memoria. Puerto de interfaz: El puerto paralelo todavía es usado por algunas impresoras, pero la mayoría de las impresoras más nuevas usa el puerto USB. IMPRESORA LASER. Funcionamiento. La base de su funcionamiento es la tecnología del láser. Esta impresora utiliza el rayo láser modulado para enviar la información que se desea imprimir a un tambor fotosensible. Por medio de rayos láser se crea una imagen electrostática completa de la página a imprimir. Luego se le aplica al tambor, un polvo ultra fino llamado TONER, que se adhiere sólo a las zonas sensibilizadas por los rayos laser. Cuando el tambor pasa sobre la hoja de papel, el polvo es transferido a su superficie, formando las letras e imágenes de la página, que pasa por un calentador llamado FUSOR, el cual quema el Tóner fijándolo en la página. Fallas comunes: Rodillos. Los rodillos de encuentran en la parte posterior de la impresora laser, estos llegan a calentarse y progresivamente pierden su forma original, cada uno de estos rodillos pueden cambiarse son problemas, también tenemos el rodillo que se encuentra en la parte frontal y ayuda a coger cada hoja de bandeja. ELECTROTECNIA 202 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Sistema Óptico. El sistema óptico consta del barrido laser junto aros espejos hexagonales que se encuentran dentro, es muy importante realizar la limpieza de estas partes para una impresión de calidad. En las imágenes siguientes vemos diferentes modelos de sistema óptico Fusor. El fusor es la parte más importante de la impresora laser, aquí se concentra la mayor parte del trabajo, tanto por el calor y corriente generada además de la impresión y calidad de la misma, dentro del fusor encontramos el teflón, el termostato, el resistor o lámpara que calienta fundiendo el tóner generando todo el sistema de impresión para que pueda imprimirse correctamente. También podemos encontrar los rodillos así como los contactos de energía. Debajo podemos observar la imagen del fusor clásico, y sus rodillos. ELECTROTECNIA 203 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Teflón. El teflón permite de que el papel no que quede pegado al momento de pasar por los rodillos además de que el calor se generado por la resistencia cerámica, solo funda en el espacio donde se encuentra el teflón, esta parte se quiebra como un papel quemado y se consigue fácilmente en cualquier centro de venta de repuestos, solo debemos saber el modelo exacto de la impresora. Resistencia cerámica. Esta resistencia es la que calienta el tóner, esta debe medir una resistencia baja, cuando esta se daña se abre evitando que la impresora pueda generar el calor necesario. ELECTROTECNIA 204 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I AUTOEVALUACIÓN N° 6 ● Conteste en forma breve las siguientes preguntas: 1. ¿Qué es el monitor? ............................................................................................................................... ............................................................................................................................... .......................................................................................................................... 2. Mencione por lo menos 5 tipos de monitor que conoce: ........................................................................................... ........................................................................................... ........................................................................................... ........................................................................................... ........................................................................................... 3. Mencione por lo menos 5 características de monitor que conoce: ........................................................................................... ........................................................................................... ........................................................................................... ........................................................................................... ........................................................................................... 4. ¿Qué función cumple el flyback del monitor? ............................................................................................................................... .......................................................................................................................... 5. ¿Qué es la impresora? ............................................................................................................................... ............................................................................................................................... .......................................................................................................................... 6. Escriba en forma resumida cómo funciona la impresora láser ............................................................................................................................... ............................................................................................................................... ............................................................................................................................... ............................................................................................................................... ............................................................................................................................... ............................................................................................................................... ............................................................................................................................... ....................................... ELECTROTECNIA 205 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CAPÍTULO 7 7 MULTIMEDIA PARA UNA PC En este capítulo trataremos: Multimedia. Lectora de CD. Caracterisicas de la Lectora. Estructura del Disco. Cámara Digital. Tarjeta de Sonido. Caracteristicas de la tarjeta de sonido. ELECTROTECNIA 206 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I MULTIMEDIA PARA UNA PC. Multimedia. Es un sistema de cómputo que combina medios de texto, gráficos, animación, música, voz y video; así mismo puede incluir bocinas estereofónicas como dispositivos de salida., de cualquier forma de comunicación que usa más de un medio para presentar información. También se refiere a un programa de computadora que integra texto, gráficos, animación y sonido. Multimedia combina audio y material visual para establecer comunicación y enriquecer su presentación. El origen de multimedia es principalmente sobre las artes y educación donde se encuentra una tradición de experimentar como se conlleva la información. El desempeño de multimedia y exhibiciones, material de entrenamiento multimedia, y presentaciones multimedia todos usan varios canales y modos de expresión. Esta tradición existente es ahora usada por un nuevo tipo de multimedia, uno basado en tecnología digital. Computadoras de escritorio pueden manipular imágenes fotográficas, grabaciones de sonido, y cortos de video en forma digital. Los medios digitales son combinados y procesados, y están emergiendo como elementos clave en la moderna tecnología de información. Por lo indicado en los párrafos anteriores podemos hacer una definición mas exacta sobre multimedia: “Grupos de entretenimiento y educacionales están explorando nuevas aplicaciones, computadoras, telecomunicaciones, y las industrias electrónicas están desarrollando tecnología. Como un termino, “multimedia” es frecuentemente usado pero raramente definido. Entre ingenieros de hardware y software, los intentos para proveer un significado de la caprichosa definición “multi-cable” a esas interacciones de comunicación. Usuarios de computadoras tienen presentaciones multimedia, estaciones de trabajo multimedia, y bases de datos multimedia, pero la gente involucrada ven la multimedia desde diferentes perspectivas. Por ejemplo, presentaciones multimedia, como su nombre lo dice, involucra la presentación de información multimedia, lee multimedia de estaciones de trabajo negocian con el procesamiento de información multimedia y bases de datos multimedia. Entonces, la noción de información multimedia se unifica con multimedia digital.” ELECTROTECNIA 207 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Usos de Multimedia. En concepto de multimedia nos involucra algunos usos parciales para presentar y llevar información con esta tecnología de la siguiente forma: a) Llevando información. Desde que la información es distribuida tan intensamente hoy en día, la efectividad de los componentes multimedia es constantemente estudiada y revisada. Los anuncios constantemente buscan nuevas técnicas para empatar el creciente potencial de consumidores. b) Interacción. La efectividad de la multimedia ha crecido aun más allá incorporando la interacción del usuario. Aquí el usuario es incluido en el proceso, desde que el o ella controlan el camino y el tipo de información que se presenta. Los procedimientos de aprendizaje más exitosos usan este tipo de interacción. c) Presentación e Información. Un aspecto importante de la promoción es la presentación del producto. Esto puede hacerse de varias maneras, como conversación directa, una lectura o un anuncio televisivo. De cualquier manera, involucra el uso de muchos componentes de multimedia. Ciertamente cada significado de la presentación tiene sus ventajas y desventajas. En las presentaciones de ventas hechas a través de una conversación o una lectura, el vendedor puede responder al consumidor y dirigir la presentación a través de diferentes líneas. De todas formas, este método requiere mucho poder humano y tiempo. Y, excepto pro las ventas de puerta en puerta, el vendedor debe esperar a que sea aceptado por el comprador antes de dar su mensaje. LECTORAS CD. El CD ROM constituye una innovación radical dentro de la tecnología del almacenamiento de información. Es un nuevo medio de edición, el centro de una nueva generación de aplicaciones para la computadora y un instrumento educativo de potencia hasta ahora inimaginable. Es el primer dispositivo practico que permite a casi cualquier empresa confeccionar y vender, y a cualquier usuario comprar y usar directamente bases de datos digitales de gran volumen. ELECTROTECNIA 208 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I En un disco CD ROM caben 550 megabytes de datos digitales, que se conservan con una precisión y una seguridad comparables a las de los mejores periféricos de computadora. Esa capacidad es suficiente para almacenar: Pese a sus extraordinarias cualidades, el CD ROM no es todavía el medio de almacenamiento universal capaz de reemplazar a todos los demás. En casi todos los sistemas reales, el CD ROM necesita el apoyo familiar de discos magnéticos, la memoria RAM y del procesador. Una limitación importante del CD ROM deriva del hecho de que sólo puede leerse. Se presta, pues, a la grabación de bases de datos invariables o históricas, pero no a las evolutivas. Las bases de evolución lenta pueden también difundirse en este medio si se sacan nuevas ediciones con regularidad; en cualquier caso, el ciclo de actualización mínimo que por ahora resulta práctico está en torno a un mes. Las aplicaciones para computadoras dependen de las unidades de discos, que se encargan de suministrar los datos necesarios en el momento. La capacidad mide la aptitud del disco para mantener al alcance de la mano más o menos datos; el rendimiento, que se expresa en numero de registros escritos o leídos por unidad de tiempo, mide la aptitud del dispositivo para entregar bases de datos rápidamente a uno o más usuarios. Para medir el rendimiento, se suma el tiempo que tarda la unidad en llegar al principio del registro buscado (tiempo de acceso) al que necesita para transferir todos los datos contenidos en él (tiempo de transferencia). El reciproco del total es el rendimiento, una cifra muy útil cuando se trata de evaluar las virtudes de los dispositivos de almacenamiento desde el punto de vista del acceso directo. El rendimiento del CD ROM es moderado. Conectado a una instalación multiusuario muy solicitada, no podría atender la demanda de registros. Incluso al servicio de un solo usuario, una unidad de CD ROM con las características actuales seria frustrante si se pretendieran hojear rápidamente imágenes de alta resolución o reindexar una base de datos de gran tamaño. El tiempo de acceso radial medio es de 500ms o más, y 40ms o menos de los de más calidad. También los valores de tardanza son preocupantes: entre 60 y 150ms por término medio. ELECTROTECNIA 209 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Cabezal de Lectura: El mecanismo de lectura de un CD es el siguiente: 1. Un haz de luz coherente (láser) es emitido por un diodo de infrarrojos hacia un espejo que forma parte del cabezal de lectura que se mueve linealmente a lo largo de la superficie del disco. 2. La luz reflejada en el espejo atraviesa una lente y es enfocada sobre un punto de la superficie del CD. 3. Esta luz incide y se refleja en una capa de aluminio. La cantidad de luz reflejada depende de la superficie sobre la que incide el haz. Así, decíamos que sobre la superficie de datos del disco se incide una serie de hoyos, si el haz de luz incide en un hoyo esta se difunde y la intensidad reflejada es mucho menor con lo que solo debemos hacer coincidir los hoyos con los ceros y los unos con la ausencia de hoyos y tendremos una representación binaria. 4. La luz reflejada se encamina mediante una serie de lentes y espejos a un foto detector que recoge la cantidad de luz reflejada. La energía luminosa del foto detector se convierte en energía eléctrica y mediante un simple umbral nuestro detector decidirá si el punto señalado por el puntero se corresponde con un cero o un uno. La presencia de un cabezal de lectura óptico y no magnético evita muchos problemas al no existir un contacto directo entre este y la superficie del disco. Fotodetector Lentes Láser de Diodo Divisor de Rayos Servomotor Estructura de una lectora de CD Motor de Arrastre: El CD-ROM está provisto de un motor que hace girar el disco, así tenemos dos opciones que son mantener la velocidad lineal constante o que la que permanezca constante sea su velocidad de giro: ELECTROTECNIA 210 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I • CAV (Constant Angular Velocity): El disco rota a una velocidad constante independientemente del área del disco a la que accede. El disco tarda siempre el mismo tiempo en dar una rotación de 360° independientemente que lo cerca o lejos que la cabecera esté del centro del CD-ROM. • CLV (Constant Linear Velocity): Heredado de los CD de audio estándar, el CD-ROM ajusta la velocidad del motor de manera que su velocidad linear sea siempre constante. Así, cuando el cabezal de lectura está cerca del borde del motor gira mas despacio que cuando está cerca del centro. Este hecho dificulta mucho la construcción del lector pero asegura que la tasa de entrada de datos al PC sea constante. La velocidad de rotación en este caso es controlada por un microcontrolador que actúa según la posición del cabezal de lectura para permitir un acceso aleatorio a los datos. Características. - Velocidad de Transferencia: Las lectoras de CD leen hasta 52X (esto es 52 veces la velocidad de un lector CD de 150 Kbs). Pasando desde 4X (600 Kbs), 8X (1,2 Mbps), etc. En cuanto a las velocidades de grabación suelen estar desde 4X hasta 10X. - Interface: Al igual que en los discos, este puede ser SCSI o EIDE. Se aconseja SCSI (Ultra Wide) para entornos profesionales y EIDE (Ultra DMA) para los demás. - Formatos: No se puede trabajar en cualquier tipo de CD, los CD comerciales, de música o datos, son absolutamente inalterables, lo cual es una de sus ventajas. Los CD’s grabables tienen una capacidad de 650 Mb para datos o 74 minutos de audio. Son de dos tipos: - CD-R (Recordable, grabable una única vez). - CD-RW (ReWriteble, regrabable múltiples veces). - Soporte: Un aspecto característico en cualquier dispositivo informático es la construcción física y las opciones que ofrece al usuario. Los CD-ROM ocupan el hueco de una unidad de disco de 5,25”, por supuesto estas ranuras están estandarizadas y basta con tener una libre para poder introducir nuestro dispositivo en el equipo. Los dispositivos que el CD-ROM ofrece están bastante estandarizados y casi siempre nos encontramos con un panel que nos ofrece: - Jack de salida para cascos. - Luz de indicación de lectura. ELECTROTECNIA 211 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I - Volumen de salida por el Jack. Reproducción de audio. Avance a la siguiente pista de audio. Parar la reproducción. Abrir la bandeja de CD. - Tiempo de Acceso: El tiempo de acceso se toma como la cantidad de tiempo que le lleva al dispositivo desde que comienza el proceso de lectura hasta que los datos comienzan a ser leídos. Este parámetro viene dado por: la latencia, el tiempo de búsqueda y el tiempo de cambio de velocidad. - Tiempo de Búsqueda: El tiempo de búsqueda se refiere al tiempo que lleva mover el cabezal de lectura hasta la posición del disco en la que están los datos. Esta magnitud forma parte del tiempo de acceso, el tiempo de búsqueda tiene interés para entender los componentes del tiempo de acceso pero no tanto como magnitud en sí. - Tiempo de Cambio de Velocidad: En los CD-ROM de velocidad linear constante (CLV), la velocidad de giro del motor dependerá de la posición que el cabezal de lectura ocupe en el disco, más rápido cuanto más cerca del centro. Esto implica el tiempo de adaptación para que este motor tome la velocidad adecuada una vez que conoce el punto en el que se encuentran los datos. Esto se suele conseguir mediante un controlador que relaciona la posición de los datos con la velocidad de rotación. - Caché: La mayoría de los CD-ROM suelen incluir una pequeña caché cuya misión es reducir el número de accesos físicos al disco. Cuando se accede a un dato en el disco, este se grava en la caché de manera que si volvemos a acceder a él. Cuanto mayor sea la caché, mayor será la velocidad de nuestro equipo. Estructura del disco. Se comenzará con el propio disco. Como ilustra la figura 1, el disco CD ROM tiene 120mm de diámetro (alrededor de 4.72 pulgadas), 1.2mm de grosor y en el centro un hoyo para el eje de 15mm de diámetro. La información, almacenada en una espiral de diminutos hoyos, se moldea sobre la superficie, que se recubre de una capa metálica brillante, protegida a su vez por una laca transparente. ELECTROTECNIA 212 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Cámara Digital. Es una cámara fotográfica normal, pero con muchas ventajas. Entre ellas destacan la mejor calidad de imagen y la posibilidad de almacenar en una memoria una cantidad de imágenes semejante a la que cabe en un carrete. Posteriormente las fotos pueden descargarse al computador y de este modo se evita el costo de carretes y revelados. Una vez que se almacenan las fotos en el computador, las posibilidades de retoque de la imagen es infinito, es decir elegir el encuadre, cambiar de color, utilizar diferentes filtros, etc. ELECTROTECNIA 213 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Tarjeta de sonido. El PC no fue pensado en un principio para manejar sonido, excepto por llamado “altavoz interno” o “PC Speaker” cuyo pitido que oímos al arrancar el computador ha sido durante muchos años el único sonido que ha emitido el PC y que sirve para comunicar errores al usuario. Pero entró en escena el Software que seguramente más ha hecho evolucionar a los computadores desde su aparición: los videojuegos. Probablemente los programadores pensaron: “No serían maravillosos que los muñequitos estos emitieran sonidos?, ¿No sería aún más increíble una banda sonora?”. Sin embargo, un poco mas tarde, en plena evolución de la música digital (empezaban a computarizarse los instrumentos musicales digitales) apareció en el mercado de los compatibles una tarjeta que evolucionó, la tarjeta de sonido SoundBlaster. Por fin era posible convertir sonido analógico a digital para guardarlo en nuestra PC, y también convertir el sonido digital que hay en nuestra PC a analógico y poder escucharlo con parlantes: posteriormente aparecieron el resto: SoundBlaster PRO, SoundBlaster 16, Gravis, AWE 32, AWE64, MAXI Sound…todas más o menos compatibles con la súper exitosa SoundBlaster original, que se convirtió en un auténtico estándar. Características: Las computadoras trabajan con datos digitales (más concretamente binarios, 0s y 1s), por lo que cuando conectamos unos parlantes a la tarjeta de sonido, hay alguien que transforma esos datos digitales en analógicos para que nuestro altavoz los entienda. De eso se encarga el DAC (Conversor Digital – Analógico). Por el contrario el ADC (Conversor Análogo – Digital), se usa cuando grabamos desde una fuente externa (por ejemplo desde nuestro equipo musical), para transformar esos datos analógicos que llegan por el cable en muestras digitales que podamos almacenar en el disco duro. Pero a alguien le puede ocurrir que necesite reproducir el sonido, tratarlo al mismo tiempo con una fuente externa y volver a grabarlo, o simplemente reproducir y grabar al mismo tiempo. Esta característica se le conoce como “Fullduplex” y está presente en cualquier tarjeta de sonido actual. Para ello, los dos conversores ADC – DAC deben trabajar en forma separada. ELECTROTECNIA 214 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Nada de 32, 64, 128 y 256 bits. Las tarjetas de sonido (excepto muy raras excepciones profesionales) toman las muestras de sonido a 16 bits (aunque se llame SoundBlaster 128 PCI o MaxiSound 64). Esto ha llevado a engaño a mas de uno al creer que su tarjeta de sonido trabajaba con mas bits que su propio procesador (pero se trata del número de voces). Estos bits vienen a definir la posición de altavoz. ¿Qué significa esto?, vamos a explicarlo. Para permitir sonidos, los altavoces se mueven dando golpes. Estos golpes hacen que el aire que nos rodea vibre y nuestros oídos captan esas vibraciones y las transforman en impulsos nerviosos que van a nuestro cerebro. Pues bien, deberemos indicarle al altavoz donde debe golpear. Para ello simplemente le enviaremos una posición (en este caso un número). Pues bien cuantas más posiciones podamos representar, mejor será el sonido. Y cuantos más bits tengamos, más posiciones podemos representar. 8 Bits 256 posiciones 16 Bits 65536 posiciones ¿Son necesarios más Bits? En principio no; sin embargo, como en todo, ADC no es excesivamente bueno, los últimos bits captados tienen información que no es demasiado fidedigna. Esto significa que si podemos trabajar con un mayor abanico de bits (20 o más), aunque perdamos calidad el sonido final seguirá siendo igual de bueno. 44,1 KHz significa calidad de CD. Vamos a explicar esto. Las tarjetas de sonido simplemente transforman una señal continua (el sonido es algo continuo) en una discreta (aunque no lo parezca). Cuanto más resolución tengamos, mejor será la representación de sonido en nuestro computador. Algunas tarjetas incorporan interpolación, mediante la que se suavizan los picos y se puede volver a obtener una onda mas parecida a la original, mejorando, según los fabricantes, la calidad de sonido. ¿Y porqué exactamente 44,1 KHz?, por el mismo motivo por el que el VHS emite 24 imágenes por segundo: si el ojo humano es capaz de reconocer como mucho unas 30 imágenes por segundo, sería un derroche de medios (y dinero) emitir imágenes por segundo, por el simple hecho de que no notaríamos la diferencia. Del mismo modo, el oído humano es capaz de reconocer unos 44,000 sonidos cada segundo (o sea, capta el sonido con esa frecuencia), con lo que la utilización de un mayor muestreo no tiene ningún sentido. ELECTROTECNIA 215 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Todas las tarjetas de sonido eléctricas pueden trabajar con una resolución de 44,1 KHz, y muchos incluso lo hacen a 48 KHz. Las semi - profesionales trabajan en su mayoría con esos 48 KHz y algunas incluso con 50 KHz. Las profesionales llegan cerca de los 100 KHz. La utilización de este muestreo ampliado se debe al mismo motivo por el que algunas tarjetas utilizan mas de 16 bits para cada muestra: si los datos de partida no son suficientemente fieles o después nos vamos a dedicar a modificar el sonido, perderemos calidad, así que cuanta más calidad tengamos en un principio, mejores resultados obtendremos al final, es mejor trabajar con un margen de confianza. ELECTROTECNIA 216 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I AUTOEVALUACIÓN N° 7 Contestar en forma breve las siguientes preguntas: 1. Hablar acerca de la lectora de CD – ROM. …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… 2. ¿Qué función cumple el motor de arrastre? …………………………………………………………………………………………… …………………………………………………………………………………………… 3. ¿Qué interface debemos utilizar para entornos profesionales? …………………………………………………………………………………………… 4. ¿Qué es tiempo de acceso? …………………………………………………………………………………………… …………………………………………………………………………………………… 5. ¿Qué función cumple la tarjeta de sonido? …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… 6. ¿Qué función cumple el DAC en una tarjeta de sonido? …………………………………………………………………………………………… …………………………………………………………………………………………… 7. ¿Por qué la calidad de CD es 44,1 KHz? …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………… 8. ¿Qué significa que una lectora de CD sea de 52X? …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… ELECTROTECNIA 217 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I 9. ¿Cuáles son las tarjetas de sonido más populares? …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… 10. Colocar el nombre que le corresponde a cada letra del siguiente dibujo: B C D A E A. …………………………………………….. B. …………………………………………….. C. …………………………………………….. D. …………………………………………….. E. …………………………………………….. ELECTROTECNIA 218 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CAPÍTULO 8 8 COMUNICACIONES - REDES En este capítulo se tratará: Redes Informaticas, Introducción. Concepto de redes. Conmutación de circuitos VS Conmutación de paquetes. Tipos de redes. Topología en las redes LAN. Protocolos de redes. Dispositivos de redes. Protocolo de Comunicación. Cables para LAN. Normas para el Cableado. Comunicaciones Inalámbricas. ELECTROTECNIA 219 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I REDES INFORMÁTICAS. INTRODUCCIÓN. La teoría de las redes informáticas no es algo reciente. La necesidad de compartir recursos e intercambiar información fue una inquietud permanente desde los primeros tiempos de la informática. Los comienzos de las redes de datos se remontan a los años ’60, en los cuales perseguían exclusivamente fines militares o de defensa. Paulatinamente se fueron adoptando para fines comerciales. Obviamente en esa época no existían las PCs, por lo cual los entornos de trabajo resultaban centralizados y lo común para cualquier red era que el procesamiento quedara delegado a una única computadora central o mainframe. Los usuarios accedían a la misma mediante terminales “tontas” consistentes en sólo un monitor y un teclado. Los tiempos han cambiado y hoy prácticamente todos los usuarios acceden a los recursos de las redes desde PCs. Sin embargo, la teoría, los principios básicos, los protocolos han mantenido vigencia y si bien es cierto, se va produciendo obsolecencia de parte de ellos, resulta muy conveniente comenzar el estudio partiendo de los principios y de la teoría básica. Resulta dificultoso comprender las redes actuales si no se conocen los fundamentos de la teoría de redes. En nuestro análisis partiremos de X.25; un tradicional sistema que trabaja sobre redes analógicas, es decir líneas telefónicas dedicadas. Actualmente conserva unas pocas aplicaciones, como ser cajeros automáticos, validación de tarjetas de crédito, etc; pero su robustez, seguridad y confiabilidad han hecho mantenerlo como un estándar para las redes públicas y privadas durante una gran cantidad de años. Además sus principios, su teoría de funcionamiento aporta conceptos sumamente importantes que nos ayudarán a comprender los siguientes. Frame Relay es una mejora de X.25. Se trata de un sistema mucho más simple y eficiente, el cual tiene plena vigencia hoy en día en redes de área amplia. Trabaja sobre enlaces digitales generalmente punto a punto. ELECTROTECNIA 220 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Posteriormente veremos las tecnologías LAN y por último culminaremos con el de mayor auge en nuestros días, base indispensable del funcionamiento de Internet: TCP/IP. CONCEPTO DE REDES. Es un conjunto de dispositivos físicos "hardware" y de programas "software", mediante el cual podemos comunicar computadoras para compartir recursos (discos, impresoras, programas, etc.) así como trabajo (tiempo de cálculo, procesamiento de datos, etc.). A cada una de las computadoras conectadas a la red se le denomina un nodo. Se considera que una red es local si solo alcanza unos pocos kilómetros. Conceptos básicos asociados a redes. Primeras definiciones. • RED. Una RED es un conjunto de computadoras o terminales conectados mediante una o más vías de transmisión y con determinadas reglas para comunicarse. • HOST. Aunque en general este término suele relacionarse con Servidores, en un sentido amplio llamaremos HOST a cualquier equipo que se conecta a una red. • PROTOCOLO. Conjunto de comandos establecido por convención que deben conocer tanto emisor como receptor para poder establecer una comunicación en un red de datos. Constituyen el software de la red. • DTE. Data Terminal Equipement es el equipo terminal de datos, la computadora o terminal que es el extremo final de la red. • DCE. Data Communication Equipement es el equipo de comunicación. Generalmente un modem u algún otro dispositivo que establece el enlace físico y lógico con la red. • INTERNET. Aunque todos sabemos lo que es Internet, aquí lo utilizaremos también en otro sentido. Una Internet es un conjunto de dos o más redes diferentes que se interconectan mediante los medios adecuados. ELECTROTECNIA 221 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CONMUTACIÓN DE CIRCUITOS VS CONMUTACIÓN DE PAQUETES. Conmutación de circuitos (circuit switching). La conmutación de circuitos es un tipo de comunicación que establece o crea un canal dedicado (o circuito) durante la duración de una sesión. Después de que es terminada la sesión (e.g. una llamada telefónica) se libera el canal y éste podrá ser usado por otro par de usuarios. El ejemplo más típico de este tipo de redes es el sistema telefónico la cual enlaza segmentos de cable para crear un circuito o trayectoria única durante la duración de una llamada o sesión. Los sistemas de conmutación de circuitos son ideales para comunicaciones que requieren que los datos/información sean transmitidos en tiempo real. Existen dos vertientes en la conmutación de paquetes: FDM, TDM. Conmutación de paquetes (packet switching). En los sistemas basados en conmutación de paquetes, la información/datos a ser transmitida previamente es ensamblada en paquetes. Cada paquete es ELECTROTECNIA 222 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I entonces transmitido individualmente y éste puede seguir diferentes rutas hacia su destino. Una vez que los paquetes llegan a su destino, los paquetes son otra vez reensamblados. Mientras que la conmutación de circuitos asigna un canal único para cada sesión, en los sistemas de conmutación de paquetes el canal es compartido por muchos usuarios simultáneamente. La mayoría de los protocolos de WAN tales como TCP/IP, X.25, Frame Relay, ATM, son basados en conmutación de paquetes. La conmutación de paquetes es más eficiente y robusta para datos que pueden ser enviados con retardo en la transmisión (no en tiempo real), tales como el correo electrónico, paginas Web, archivos, etc. En el caso de aplicaciones como voz, video o audio la conmutación de paquetes no es muy recomendable a menos que se garantice un ancho de banda adecuado para enviar la información. Pero el canal que se establece no garantiza esto, debido a que puede existir tráfico y nodos caídos durante el recorrido de los paquetes. Estos son factores que ocasionen que los paquetes tomen rutas distintas para llegar a su destino. Por eso se dice que la ruta que toman los paquetes es "probabilística", mientras que en la conmutación de circuitos, esta ruta es "determinística". Existen dos vertientes en la conmutación de paquetes: »Virtual Circuit Packet Switching (e.g. X.25, Frame Relay) »Datagram Switching (e.g. Internet) Las redes pueden conmutar circuitos, como es el caso de la red telefónica o conmutar paquetes, que son una subdivisión lógica de la información. Casi todas las tecnologías actuales: X.25, Frame Relay, ATM, TCP/IP son de conmutación de paquetes. Redes de comunicación, no son más que la posibilidad de compartir con carácter universal la información entre grupos de computadoras y sus usuarios; un componente vital de la era de la información. ELECTROTECNIA 223 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I La generalización del ordenador o computadora personal (PC) y de la red de área local (LAN) durante la década de los ochenta ha dado lugar a la posibilidad de acceder a información en bases de datos remotas, cargar aplicaciones desde puntos de ultramar, enviar mensajes a otros países y compartir archivos, todo ello desde un ordenador personal. Las redes que permiten todo esto son equipos avanzados y complejos. Su eficacia se basa en la confluencia de muy diversos componentes. El diseño e implantación de una red mundial de ordenadores es uno de los grandes ‘milagros tecnológicos’ de las últimas décadas. TIPOS DE REDES. Las redes de información se pueden clasificar según su extensión y su topología. Una red puede empezar siendo pequeña para crecer junto con la organización o institución. A continuación se presenta los distintos tipos de redes disponibles: Extensión. De acuerdo con la distribución geográfica: Segmento de red (subred). Un segmento de red suele ser definido por el "hardware" o una dirección de red específica. Por ejemplo, en el entorno "Novell NetWare", en un segmento de red se incluyen todas las estaciones de trabajo conectadas a una tarjeta de interfaz de red de un servidor y cada segmento tiene su propia dirección de red. Red de área local (LAN). Una LAN es un segmento de red que tiene conectadas estaciones de trabajo y servidores o un conjunto de segmentos de red interconectados, generalmente dentro de la misma zona. Por ejemplo un edificio. Red de campus. Una red de campus se extiende a otros edificios dentro de un campus o área industrial. Los diversos segmentos o LAN de cada edificio suelen conectarse mediante cables de la red de soporte. Red de área metropolitana (MAN). Una red MAN es una red que se expande por pueblos o ciudades y se interconecta mediante diversas instalaciones públicas o privadas, como el ELECTROTECNIA 224 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I sistema telefónico o los suplidores de sistemas de comunicación por microondas o medios ópticos. Red de área extensa (WAN y redes globales). Las WAN y redes globales se extienden sobrepasando las fronteras de las ciudades, pueblos o naciones. Los enlaces se realizan con instalaciones de telecomunicaciones públicas y privadas, además por microondas y satélites. Redes de área de almacenamiento (SAN). Una SAN es una red dedicada, de alto rendimiento, que se utiliza para trasladar datos entre servidores y recursos de almacenamiento. Al tratarse de una red separada y dedicada, evita todo conflicto de tráfico entre clientes y servidores. La tecnología SAN permite conectividad de alta velocidad, de servidor a almacenamiento, almacenamiento a almacenamiento, o servidor a servidor. Este método usa una infraestructura de red por separado, evitando así cualquier problema asociado con la conectividad de las redes existentes. Las SAN poseen las siguientes características: • Rendimiento: Las SAN permiten el acceso concurrente de matrices de disco o cinta por dos o más servidores a alta velocidad, proporcionando un mejor rendimiento del sistema. • Disponibilidad: Las SAN tienen una tolerancia incorporada a los desastres, ya que se puede hacer una copia exacta de los datos mediante una SAN hasta una distancia de10 kilómetros (km) o 6,2 millas. • Escalabilidad: Al igual que una LAN/WAN, puede usar una amplia gama de tecnologías. Esto permite la fácil reubicación de datos de copia de seguridad, operaciones, migración de archivos, y duplicación de datos entre sistemas. Red privada virtual (VPN). Una VPN es una red privada que se construye dentro de una infraestructura de red pública, como la Internet global. Con una VPN, un empleado a distancia puede acceder a la red de la sede de la empresa a través de Internet, formando un túnel seguro entre el PC del empleado y un router VPN en la sede. ELECTROTECNIA 225 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Ventajas de las VPN. La VPN es un servicio que ofrece conectividad segura y confiable en una infraestructura de red pública compartida, como Internet. Las VPN conservan las mismas políticas de seguridad y administración que una red privada. Son la forma más económica de establecer una conexión punto-a-punto entre usuarios remotos y la red de un cliente de la empresa. Topología en las Redes LAN. La topología o forma lógica de una red se define como la forma de tender el cable a estaciones de trabajo individuales; por muros, suelos y techos del edificio. Existe un número de factores a considerar para determinar cual topología es la más apropiada para una situación dada. Existen tres topologías comunes: Anillo. Las estaciones están unidas unas con otras formando un círculo por medio de un cable común. El último nodo de la cadena se conecta al primero cerrando el anillo. Las señales circulan en un solo sentido alrededor del círculo, regenerándose en cada nodo. Con esta metodología, cada nodo examina la información que es enviada a través del anillo. Si la información no está dirigida al nodo que la examina, la pasa al siguiente en el anillo. La desventaja del anillo es que si se rompe una conexión, se cae la red completa. ELECTROTECNIA 226 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Estrella. La red se une en un único punto, normalmente con un panel de control centralizado, como un concentrador de cableado. Los bloques de información son dirigidos a través del panel de control central hacia sus destinos. Este esquema tiene una ventaja al tener un panel de control que monitorea el tráfico y evita las colisiones y una conexión interrumpida no afecta al resto de la red. Las redes estrella usan el método CSMA/CD para mandar sus paquetes a la red. CSMA/CD CSMA/CD, siglas que corresponden a Carrier Sense Multiple Access with Collision Detection (inglés: "Acceso Múltiple con Escucha de Portadora y Detección de Colisiones"), es una técnica usada en redes Ethernet para mejorar sus prestaciones. Anteriormente a esta técnica se usaron las de Aloha puro y Aloha ranurado, pero ambas presentaban muy bajas prestaciones. Por ello apareció primeramente la técnica CSMA que fue posteriormente refinada a la técnica CSMA/CD. Funcionamiento de CSMA/CD El primer paso a la hora de transmitir será, obviamente, saber si el medio está libre. Y ¿cómo podemos saberlo? Pues nos quedamos calladitos y escuchamos lo que dicen los demás. Si hay portadora en el medio, es que está ocupado y, por tanto, seguimos escuchando; en caso contrario, el medio está libre y podemos transmitir. A continuación, esperamos un tiempo mínimo necesario para poder diferenciar bien una trama de otra y comenzamos a ELECTROTECNIA 227 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I transmitir. Si durante la transmisión de una trama se detecta una colisión, entonces las estaciones que colisionan abortan el envío de la trama y envían una señal de reinicio. Después de una colisión, las estaciones esperan un tiempo aleatorio (Tiempo de Backoff) para volver a transmitir una trama. En redes inalámbricas, resulta a veces complicado llevar a cabo el primer paso (escuchar al medio para determinar si está libre o no). Por este motivo, surgen dos problemas que pueden ser detectados: 1. Problema del nodo oculto: La estación cree que el medio está libre cuando en realidad no lo está, pues está siendo utilizado por otro nodo al que la estación no “oye”. 2. Problema del nodo expuesto: La estación cree que el medio está ocupado, cuando en realidad lo está ocupando otro nodo que no interferiría en su transmisión a otro destino. Para resolver estos problemas, la IEEE 802.11 propone MACA (MultiAccess Collision Avoidance – Evasión de Colisión por Acceso Múltiple). ELECTROTECNIA 228 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Bus. Las estaciones están conectadas por un único segmento de cable. A diferencia del anillo, el bus es pasivo, no se produce regeneración de las señales en cada nodo. Los nodos en una red de "bus" transmiten la información y esperan que ésta no vaya a chocar con otra información transmitida por otro de los nodos. Si esto ocurre, cada nodo espera una pequeña cantidad de tiempo al azar, después intenta retransmitir la información. Híbridas. El bus lineal, la estrella y el anillo se combinan algunas veces para formar combinaciones de redes híbridas. Anillo en estrella. Esta topología se utiliza con el fin de facilitar la administración de la red. Físicamente, la red es una estrella centralizada en un concentrador, mientras que a nivel lógico, la red es un anillo. "Bus" en estrella. El fin es igual a la topología anterior. En este caso la red es un "bus" que se cablea físicamente como una estrella por medio de concentradores. Estrella jerárquica. Esta estructura de cableado se utiliza en la mayor parte de las redes locales actuales, por medio de concentradores dispuestos en cascada par formar una red jerárquica. Protocolos de redes. Un protocolo de red es como un lenguaje para la comunicación de información. Son las reglas y procedimientos que se utilizan en una red para comunicarse entre los nodos que tienen acceso al sistema de cable. Los protocolos gobiernan dos niveles de comunicaciones: ELECTROTECNIA 229 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I • Los protocolos de alto nivel: Estos definen la forma en que se comunican las aplicaciones. • Los protocolos de bajo nivel: Estos definen la forma en que se transmiten las señales por cable. Como es frecuente en el caso de las computadoras el constante cambio, también los protocolos están en continuo cambio. Actualmente, los protocolos más comúnmente utilizados en las redes son Ethernet, Token Ring y ARCNET. Cada uno de estos esta diseñado para cierta clase de topología de red y tienen ciertas características estándar. Ethernet. Actualmente es el protocolo más sencillo y es de bajo costo. Utiliza la topología de "Bus" lineal. Token Ring. El protocolo de red IBM es el Token ring, el cual se basa en la topología de anillo. Arcnet. Se basa en la topología de estrella o estrella distribuida, pero tiene una topología y protocolo propio. Dispositivos de redes. NIC/MAU (Tarjeta de red). "Network Interface Card" (Tarjeta de interfaz de red) o "Medium Access Unit" (Medio de unidad de acceso). Cada computadora necesita el "hardware" para transmitir y recibir información. Es el dispositivo que conecta la computadora u otro equipo de red con el medio físico. La NIC es un tipo de tarjeta de expansión de la computadora y proporciona un puerto en la parte trasera de la PC al cual se conecta el cable de la red. Hoy en día cada vez son más los equipos que disponen de interfaz de red, principalmente Ethernet, incorporadas. A veces, es necesario, además de la tarjeta de red, un transceptor. Este es un dispositivo que se conecta al medio físico y a la tarjeta, bien porque no sea posible la conexión directa (10 base 5) o porque el medio sea distinto del que utiliza la tarjeta. ELECTROTECNIA 230 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Diversos Modelos de Tarjeta de RED Las tarjetas de red están muy estandarizadas, por lo que no es común encontrar problemas; a muchas tarjetas para Ethernet clásico a veces se las denomina "compatibles con NE2000", una tarjeta de red de Novell que es algo así como el estándar SoundBlaster de las tarjetas de sonido. Hubs (Concentradores). Son equipos que permiten estructurar el cableado de las redes. La variedad de tipos y características de estos equipos es muy grande. En un principio eran solo concentradores de cableado, pero cada vez disponen de mayor número de capacidad de la red, gestión remota, etc. La tendencia es a incorporar más funciones en el concentrador. Existen concentradores para todo tipo de medios físicos. Hubs (Concentradores) ELECTROTECNIA 231 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Repetidores. Son equipos que actúan a nivel físico. Prolongan la longitud de la red uniendo dos segmentos y amplificando la señal, pero junto con ella amplifican también el ruido. La red sigue siendo una sola, con lo cual, siguen siendo válidas las limitaciones en cuanto al número de estaciones que pueden compartir el medio. Bridges (Puentes). Son equipos que unen dos redes actuando sobre los protocolos de bajo nivel, en el nivel de control de acceso al medio. Solo el tráfico de una red que va dirigido a la otra atraviesa el dispositivo. Esto permite a los administradores dividir las redes en segmentos lógicos, descargando de tráfico las interconexiones. Los bridges producen las señales, con lo cual no se transmite ruido a través de ellos. Routers (Encaminadores). Son equipos de interconexión de redes que actúan a nivel de los protocolos de red. Permite utilizar varios sistemas de interconexión mejorando el rendimiento de la transmisión entre redes. Su funcionamiento es más lento que los bridges pero su capacidad es mayor. Permiten, incluso, enlazar dos redes basadas en un protocolo, por medio de otra que utilice un protocolo diferente. ELECTROTECNIA 232 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Gateways. Son equipos para interconectar redes con protocolos y arquitecturas completamente diferentes a todos los niveles de comunicación. La traducción de las unidades de información reduce mucho la velocidad de transmisión a través de estos equipos. Servidores. Son equipos que permiten la conexión a la red de equipos periféricos tanto para la entrada como para la salida de datos. Estos dispositivos se ofrecen en la red como recursos compartidos. Así un terminal conectado a uno de estos dispositivos puede establecer sesiones contra varios ordenadores multiusuario disponibles en la red. Igualmente, cualquier sistema de la red puede imprimir en las impresoras conectadas a un servidor. Switches. Un switch se describe a veces como un puente multipuerto. Mientras que un puente típico puede tener sólo dos puertos que enlacen dos segmentos de red, el switch puede tener varios puertos, según la cantidad de segmentos de red que sea necesario conectar. Al igual que los puentes, los switches aprenden determinada información sobre los paquetes de datos que se reciben de los distintos computadores de la red. Los switches utilizan esa información para crear tablas de envío para determinar el destino de los datos que se están mandando de un computador a otro de la red. ELECTROTECNIA 233 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Aunque hay algunas similitudes entre los dos, un switch es un dispositivo más sofisticado que un puente. Un puente determina si se debe enviar una trama al otro segmento de red, basándose en la dirección MAC destino. Un switch tiene muchos puertos con muchos segmentos de red conectados a ellos. El switch elige el puerto al cual el dispositivo o estación de trabajo destino está conectado. Los switches Ethernet están llegando a ser soluciones para conectividad de uso difundido porque, al igual que los puentes, los switches mejoran el rendimiento de la red al mejorar la velocidad y el ancho de banda. La conmutación es una tecnología que alivia la congestión en las LAN Ethernet, reduciendo el tráfico y aumentando el ancho de banda. Los switches pueden remplazar a los hubs con facilidad debido a que ellos funcionan con las infraestructuras de cableado existentes. Esto mejora el rendimiento con un mínimo de intrusión en la red ya existente. Actualmente en la comunicación de datos, todos los equipos de conmutación realizan dos operaciones básicas: La primera operación se llama conmutación de las tramas de datos. La conmutación de las tramas de datos es el procedimiento mediante el cual una trama se recibe en un medio de entrada y luego se transmite a un medio de salida. El segundo es el mantenimiento de operaciones de conmutación cuando los switch crean y mantienen tablas de conmutación y buscan loops. Los switches operan a velocidades mucho más altas que los puentes y pueden admitir nuevas funcionalidades como, por ejemplo, las LAN virtuales. Un switch Ethernet ofrece muchas ventajas. Un beneficio es que un switch para Ethernet permite que varios usuarios puedan comunicarse en paralelo usando circuitos virtuales y segmentos de red dedicados en un entorno virtualmente sin colisiones. Esto aumenta al máximo el ancho de banda disponible en el medio compartido. Otra de las ventajas es que desplazarse a un entorno de LAN conmutado es muy económico ya que el hardware y el cableado se pueden volver a utilizar. PROTOCOLO DE COMUNICACIÓN. Protocolo TCP/IP. Es el conjunto de protocolos utilizado por Internet. ELECTROTECNIA 234 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Puede trabajar sobre una multitud de protocolos como ser PPP , Frame Relay , X.25 o ATM. EL STACK DE PROTOCOLOS TCP/IP. TCP/IP no es un único par de protocolos. Es un conjunto de ellos estratificado en distintas capas que conforman el denominado STACK de protocolos TCP/IP. TCP/IP posee sólo 4 niveles, aunque en relación al Modelo OSI cubre la totalidad de capas del mismo. • HOST TO NETWORK: abarca las capas FÍSICA y EENLACE de OSI. • INTERNET PROTOCOL (IP): equivale a la capa de RED de OSI. • TRANSPORT CONTROL PROTOCOL (TCP): corresponde a la capa de Transporte. • USER DATAGRAM PROTOCOL (UDP): también corresponde a la capa de Transporte. • APPLICATION: abarca las capas de SESIÓN, PRESENTACIÓN y APLICACIÓN. INTERNET PROTOCOL (IP). Direccionamiento IP. Cada elemento conectado a una red TCP/IP debe tener una “dirección IP” única a fin de ser identificado en la misma en forma unívoca y además una ELECTROTECNIA 235 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I máscara de subred o “subnet mask” que identifica la red o subred a la que pertenece el equipo. Tanto la dirección IP como la subnet mask son conjuntos de 4 bytes denominados “octetos”, separados por puntos. Las direcciones IP de los equipos se agrupan de forma de poder identificar la red a la cual pertenece un determinado Host o equipo. Si no se utilizan subredes (caso más simple) la máscara de subred adopta valores fijos para cada uno de esos tipos de red. La máscara de subred cobra mayor importancia en el caso de "subnetting", lo cual veremos más adelante. Generalmente estos parámetros se expresan en forma decimal, o sea que cada octeto puede adoptar 256 valores (28 = 256) y van desde 0 a 255. Ejemplo de dirección IP: 192.234.15.122 y de máscara de subred: 255.255.0.0 A fin de poder efectuar la agrupación antedicha, cada dirección IP se subdivide en 2 partes: la primera parte identifica a la RED y se denomina NetID. La 2da es la dirección del HOST o HostID. Con respecto a la extensión de cada parte, como son 4 octetos hay 4 posibilidades para determinar el tipo de red. Por lo tanto clasificamos las redes en 4 clases de acuerdo a la extensión de cada una de estas partes de la dirección IP. Se distinguen además sus bits de comienzo. ELECTROTECNIA 236 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Las Redes Clase A son las que comienzan el 1er octeto con 0. Definen sólo el 1er octeto como Identificador de Red. Los otros 3 identifican el Host en particular. Se deduce que el rango de Clase A va de las redes 0 a la 127, aunque después veremos que esta última está reservada y no puede utilizarse. Si no hay subredes la máscara de subred es todos unos para el primer octeto y todos ceros para el resto, es decir: 255.0.0.0. Las Redes Clase B comienzan con 10 y utilizan 2 octetos para la identificación de red por lo tanto van desde la 128.0 a la 191.255. Los 2 restantes identifican el host. Sin subredes la máscara de subred es 255.255.0.0. La Redes Clase C comienzan con 110 y utilizan los 3 primeros octetos para la NetID. El rango por ende va de la 192.0.0 a la 223.255.255. Sólo el último octeto identifica el host, o sea que este tipo de redes sólo permite hasta 256 direcciones de hosts o HostId´s. Sin subredes la máscara de subred es 255.255.255.0. Las redes Clase D van desde la 224.0.0.0 hasta la 239.255.255.255 y son reservadas para multicast. Consideraciones especiales: 1) Las direcciones cuyo número de host es todos 0´s definen a la red en general, por lo tanto ningún host puede tener el HostID = 0. Por ejemplo : 200.233.12.0 define en general a la red Clase C cuyo Net ID es : 200.223.12 2) Las direcciones cuyo número de host todos 1´s representa la dirección de broadcast. Por ejemplo 187.34.255.255 significa que se está haciendo un broadcast a la red clase B cuyo Net ID es 187.34. La dirección 255.255.255.255 es broadcast generalizado. 3) Las direcciones que comienzan con un Net ID todos 0´s indican un determinado Host de “esta red”. Por ejemplo: 0.0.150.34 significa el host 150.34 de esta red Clase B. Además: todos 0´s , 0.0.0.0 , indica “este host”. 4) La red 127.0.0.0 no se utiliza ya que puede usarla cualquier equipo para loopback. Ésta es una comunicación “a si mismo”, es decir se envían datos a la misma PC pero los mismos no salen al medio físico. Las direcciones para redes conectadas a "Internet" no pueden ser asignadas en forma arbitraria. Existe una entidad única a nivel mundial, con sede en ELECTROTECNIA 237 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Estados Unidos y con filiales en todos los países llamados "IANA" (Internet Assigned Numbera Authority) que se encarga de aignar las direcciones IP. Es a quien se le debe solicitar una NetID o dirección de red única, para una red que se conecta a Internet. Los HostID o direcciones individuales de los dispositivos y equipos dentro de la red son asignados libremente por el administrador. Para redes sin conexión a Internet, que son la mayoría, existen rangos reservados a redes privadas que es aconsejable utilizar. No puede haber en una misma red y por lo tanto tampoco en "Internet" dos dispositivos conectados con una misma dirección IP, pero como hay equipos que se conectan a más de una red simultáneamente, un mismo equipo sí puede tener más de una IP. Este es el caso por ejemplo de los bridges y los routers, que poseen una dirección IP por cada adaptador, correspondiente al rango de la red a la cual se conecta. Otro caso más cotidiano sería el de una PC que se conecta a una red TCP/IP privada y a su vez lo hace a "Internet" mediante un módem: entonces asigna una IP (privada) para el adaptador LAN y otra (pública), del rango asignado por IANA para la región, para el módem que se conecta a "Internet". Subnetting. Dijimos que la máscara de subred o "subnet mask" era importante en el caso de subredes. En efecto, si no hay subredes la misma adopta valores fijos de acuerdo al tipo de red. Dado que en ocasiones es necesario subdividir lógicamente una red dentro de una misma organización y no se justifica solicitar a IANA nuevos rangos de direcciones, ya que los que se poseen no están completamente utilizados y quedan suficientes direcciones libres, puede utilizarse la técnica de "subnetting". Entonces se particionan los rangos de direcciones IP asignados a la organización en tantas subredes como sea necesario y las mismas se interconectan por routers. Estos routers deben soportar subnetting. Para diferenciar lógicamente las distintas subredes, se utiliza una máscara de subred diferente para cada una mediante una técnica. ELECTROTECNIA 238 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Datagrama IP. El protocolo IP es un protocolo "no orientado a la conexión" (connectionless), y a esto lo llamábamos "servicio de datagramas". El datagrama es la unidad de información que se transmite a través de la red a nivel IP. En la figura se muestra el esquema de un datagrama IP. • VERSION: Indica la versión IP. actualmente se utiliza siempre la 4, por lo que este campo siempre será 0100.Cualquier Datagrama que no contenga este valor será descartado. La versión 6 está actualmente en desarrollo. • HEADER LENGHT (HLEN): Es la longitud del header o encabezado medido en múltiplos de 32 bits. Lo normal es que este valor sea 5, ya que las opciones generalmente no se utilizan. En caso de que se utilicen, como son 4 bits, el valor puede llegar como máximo a 15. Este es el máximo encabezado posible. • TYPE OF SERVICE: Está formado por 3 bits de Priority que pueden setearse desde 000 (mínima prioridad) a 111(máxima prioridad) y 3 bits individuales que son: D= Delay,T=Throughput, R=Reliability solicitados. • TOTAL LENGHT: Longitud total del datagrama medido en octetos. Como son 16 bits, el máximo datagrama puede ser de 65532 bytes. • IDENTIFIER: Identifica al datagrama, es importante para la fragmentación. • FLAGS: Hay un bit no utilizado y otros que son DF: Don´t Fragment y MF= More Fragments. • FRAGMENT: Numera los distintos fragmentos de un mismo grupo. ELECTROTECNIA 239 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I • TIME TO LIVE: Se decrementa al pasar por cada router. Cuando llega a cero se descarta. Es para evitar loops. • PROTOCOL: Identifica con una identificación numérica cuál es el protocolo de nivel superior. • CHECKSUM: Chequeo de errores del Header solamente. • SOURCE IP ADDRESS: IP completa de origen. • DESTINATION IP ADDRESS: IP completa de destino. • IP OPTIONS + PADDING: No es obligatorio. El Padding es el relleno que completa los 32 bits. • SE DATA: Datos de la capa superior encapsulados. TRANSMISSION CONTROL PROTOCOL (TCP). El protocolo TCP (Transmission Control Protocol), o Servicio de Transporte de Flujo Confiable, al igual que UDP es un protocolo de Capa 4, es decir de Transporte, pero, a diferencia de IP, es Orientado a la Conexión. TCP es el encargado de asegurar un flujo de datos confiable entre los extremos de la red. Se encarga por lo tanto del control de flujo y del control de errores, tareas que no realiza IP. Es uno de los protocolos más complejos de todo el stack TCP/IP. Trabaja en modo "string”, es decir recibe cadenas de bits de las capas superiores y las arma en segmentos que luego son enviados a la capa IP. Aparece el concepto de "Port" (Puerto), que es la entidad lógica que identifica los extremos de la comunicación. Toda comunicación TCP se realiza entre puertos. Una misma PC normalmente posee más de un puerto abierto simultáneamente. ELECTROTECNIA 240 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Los números de puerto se asignan dinámicamente pero algunas aplicaciones poseen números predefinidos que se encuentran en el rango de 0 a 255. No se pueden crear puerto en este rango sino solamente para las aplicaciones predefinidas. Por ejemplo: FTP utiliza el puerto 21, Telnet el 23 y SMTP el 25. Los puertos en este rango se llaman "Well Known Ports". Cualquier aplicación que deba crear un puerto y no esté predefinida debe elegir un número fuera de este rango. Características de TCP. Las características del servicio de entrega confiable son las siguientes: • Orientación de flujo. • Conexión de circuito virtual. • Transferencia con memoria intermedia. • Flujo no estructurado. • Conexión Full Duplex. Segmento TCP. • SOURCE PORT: Puerto de origen. • DESTINATION PORT: Puerto de destino. • SEQUENCY NUMBER: Número de secuencia de la comunicación. • ACKNOWLEDGE NUMBER: Número de acuse de recibo. • HLEN: Longitud del header en múltiplos de 32 bits. • FLAGS: Indicadores varios. • WINDOW: Tamaño de la ventana. • CHECKSUM: Chequeo de redundancia cíclica (CRC). ELECTROTECNIA 241 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I • URGENT: Puntero al comienzo de los datos urgentes. • OPTIONS + PADDING: Opciones varias y relleno. • USER DATA: Datos de usuario. Servicios que corren sobre TCP. A continuación se listan algunos de los protocolos de la capa APPLICATION que corren sobre TCP con sus correspondientes números de puertos: • Port 21: FTP. • Port 23: TELNET. • Port 25: SMTP. Cables para LAN. El cable de cobre se utiliza en casi todas las LAN. Hay varios tipos de cable de cobre disponibles en el mercado, y cada uno presenta ventajas y desventajas. La correcta selección del cableado es fundamental para que la red funcione de manera eficiente. Debido a que el cobre transporta información utilizando corriente eléctrica, es importante comprender algunos principios básicos de la electricidad a la hora de planear e instalar una red. La fibra óptica es el medio utilizado con mayor frecuencia en las transmisiones de punto a punto de mayor distancia y alto ancho de banda que requieren los backbones de LAN y las WAN. En los medios ópticos, se utiliza la luz para transmitir datos a través de una delgada fibra de vidrio o de plástico. Las señales eléctricas hacen que el transmisor de fibra óptica genere señales luminosas que son enviadas por la fibra. El host receptor recibe las señales luminosas y las convierte en señales eléctricas en el extremo opuesto de la fibra. Sin embargo, no hay electricidad en el cable de fibra óptica en sí. De hecho, el vidrio utilizado en el cable de fibra óptica es un muy buen aislante eléctrico. La conectividad física permitió un aumento en la productividad permitiendo que se compartan impresoras, servidores y software. Los sistemas tradicionales de red requieren que las estaciones de trabajo permanezcan estacionarias permitiendo movimientos sólo dentro del alcance de los medios y del área de la oficina. ELECTROTECNIA 242 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I La introducción de la tecnología inalámbrica elimina estas limitaciones y otorga portabilidad real al mundo de la computación. En la actualidad, la tecnología inalámbrica no ofrece las transferencias a alta velocidad, la seguridad o la confiabilidad de tiempo de actividad que brindan las redes que usan cables. Sin embargo, la flexibilidad de no tener cables justifica el sacrificio de estas características. A menudo, los administradores tienen en cuenta las comunicaciones inalámbricas al instalar una nueva red o al actualizar una red existente. Una red inalámbrica puede empezar a funcionar sólo unos pocos minutos después de encender las estaciones de trabajo. Se proporciona la conectividad a Internet a través de una conexión con cable, router, cablemódem o módem DSL y un punto de acceso inalámbrico que sirve de hub para los nodos inalámbricos. En el entorno residencial o de una pequeña oficina, es posible combinar estos dispositivos en una sola unidad. Cable coaxial. El cable coaxial consiste de un conductor de cobre rodeado de una capa de aislante flexible. El conductor central también puede ser hecho de un cable de aluminio cubierto de estaño que permite que el cable sea fabricado de forma económica. Sobre este material aislante existe una malla de cobre tejida u hoja metálica que actúa como el segundo hilo del circuito y como un blindaje para el conductor interno. Esta segunda capa, o blindaje, también reduce la cantidad de interferencia electromagnética externa. Cubriendo la pantalla está la chaqueta del cable. Para las LAN, el cable coaxial ofrece varias ventajas. Puede tenderse a mayores distancias que el cable de par trenzado blindado STP, y que el cable de par trenzado no blindado, UTP, sin necesidad de repetidores. Los repetidores regeneran las señales de la red de modo que puedan abarcar ELECTROTECNIA 243 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I mayores distancias. El cable coaxial es más económico que el cable de fibra óptica y la tecnología es sumamente conocida. Se ha usado durante muchos años para todo tipo de comunicaciones de datos, incluida la televisión por cable. Al trabajar con cables, es importante tener en cuenta su tamaño. A medida que aumenta el grosor, o diámetro, del cable, resulta más difícil trabajar con él. Recuerde que el cable debe pasar por conductos y cajas existentes cuyo tamaño es limitado. Se puede conseguir cable coaxial de varios tamaños. El cable de mayor diámetro es de uso específico como cable de backbone de Ethernet porque tiene mejores características de longitud de transmisión y de limitación del ruido. Este tipo de cable coaxial frecuentemente se denomina thicknet o red gruesa. Como su apodo lo indica, este tipo de cable puede ser demasiado rígido como para poder instalarse con facilidad en algunas situaciones. Generalmente, cuanto más difícil es instalar los medios de red, más costosa resulta la instalación. El cable coaxial resulta más costoso de instalar que el cable de par trenzado. Hoy en día el cable thicknet casi nunca se usa, salvo en instalaciones especiales. En el pasado, el cable coaxial con un diámetro externo de solamente 0,35 cm (a veces denominado thinnet o red fina) se usaba para las redes Ethernet. Era particularmente útil para las instalaciones de cable en las que era necesario que el cableado tuviera que hacer muchas vueltas. Como la instalación de thinnet era más sencilla, también resultaba más económica. Por este motivo algunas personas lo llamaban cheapernet (red barata). El trenzado externo metálico o de cobre del cable coaxial abarca la mitad del circuito eléctrico. Se debe tener especial cuidado de asegurar una sólida conexión eléctrica en ambos extremos, brindando así una correcta conexión a tierra. La incorrecta conexión del material de blindaje constituye uno de los problemas principales relacionados con la instalación del cable coaxial. Los problemas de conexión resultan en un ruido eléctrico que interfiere con la transmisión de señales sobre los medios de networking. Por esta razón, thinnet ya no se usa con frecuencia ni está respaldado por los estándares más recientes (100 Mbps y superiores) para redes Ethernet Cable STP. El cable de par trenzado blindado (STP) combina las técnicas de blindaje, cancelación y trenzado de cables. Cada par de hilos está envuelto en un papel ELECTROTECNIA 244 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I metálico. Los dos pares de hilos están envueltos juntos en una trenza o papel metálico. Generalmente es un cable de 150 ohmios. Según se especifica para el uso en instalaciones de redes Token Ring, el STP reduce el ruido eléctrico dentro del cable como, por ejemplo, el acoplamiento de par a par y la diafonía. El STP también reduce el ruido electrónico desde el exterior del cable, como, por ejemplo, la interferencia electromagnética (EMI) y la interferencia de radiofrecuencia (RFI). El cable de par trenzado blindado comparte muchas de las ventajas y desventajas del cable de par trenzado no blindado (UTP). El cable STP brinda mayor protección ante toda clase de interferencias externas, pero es más caro y de instalación más difícil que el UTP. Un nuevo híbrido de UTP con STP tradicional se denomina UTP apantallado (ScTP), conocido también como par trenzado de papel metálico (FTP). El ScTP consiste, básicamente, en cable UTP envuelto en un blindaje de papel metálico. ScTP, como UTP, es también un cable de 100 Ohms. Muchos fabricantes e instaladores de cables pueden usar el término STP para describir el cable ScTP. Es importante entender que la mayoría de las referencias hechas a STP hoy en día se refieren en realidad a un cable de cuatro pares apantallado. Es muy improbable que un verdadero cable STP sea usado durante un trabajo de instalación de cable. Los materiales metálicos de blindaje utilizados en STP y ScTP deben estar conectados a tierra en ambos extremos. Si no están adecuadamente conectados a tierra o si hubiera discontinuidades en toda la extensión del material del blindaje, el STP y el ScTP se pueden volver susceptibles a graves problemas de ruido. Son susceptibles porque permiten que el blindaje actúe como una antena que recoge las señales no deseadas. Sin embargo, este efecto funciona en ambos sentidos. El blindaje no sólo evita que ondas electromagnéticas externas produzcan ruido en los cables de datos sino que también minimiza la irradiación de las ondas electromagnéticas internas. Estas ondas podrían producir ruido en otros dispositivos. Los cables STP y ScTP no pueden tenderse sobre distancias tan largas como las de otros medios de networking (tales como el cable coaxial y la fibra óptica) sin que se repita la señal. El uso de aislamiento y blindaje adicionales aumenta de manera considerable el tamaño, peso y costo del cable. Además, los materiales de blindaje hacen que las terminaciones sean más difíciles y aumentan la probabilidad de que se produzcan defectos de mano de obra. Sin embargo, el STP y el ScTP todavía desempeñan un papel importante, ELECTROTECNIA 245 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I especialmente en Europa o en instalaciones donde exista mucha EMI y RFI cerca de los cables. Cable UTP. El cable de par trenzado no blindado (UTP) es un medio de cuatro pares de hilos que se utiliza en diversos tipos de redes. Cada uno de los 8 hilos de cobre individuales del cable UTP está revestido de un material aislante. Además, cada par de hilos está trenzado. Este tipo de cable cuenta sólo con el efecto de cancelación que producen los pares trenzados de hilos para limitar la degradación de la señal que causan la EMI y la RFI. Para reducir aún más la diafonía entre los pares en el cable UTP, la cantidad de trenzados en los pares de hilos varía. Al igual que el cable STP, el cable UTP debe seguir especificaciones precisas con respecto a cuánto trenzado se permite por unidad de longitud del cable. El estándar TIA/EIA-568-B.2 especifica los componentes de cableado, transmisión, modelos de sistemas, y los procedimientos de medición necesarios para verificar los cables de par trenzado balanceado. Exige el tendido de dos cables, uno para voz y otro para datos en cada toma. De los dos cables, el cable de voz debe ser UTP de cuatro pares. El cable Categoría 5 es el que actualmente se recomienda e implementa con mayor frecuencia en las instalaciones. Sin embargo, las predicciones de los analistas y sondeos independientes indican que el cable de Categoría 6 sobrepasará al cable Categoría 5 en instalaciones de red. El hecho que los requerimientos de canal y enlace de la Categoría 6 sean compatibles con la Categoría 5e hace muy fácil para los clientes elegir Categoría 6 y reemplazar la Categoría 5e en sus redes. Las aplicaciones que funcionan sobre Categoría 5e también lo harán sobre Categoría 6. ELECTROTECNIA 246 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I El cable de par trenzado no blindado presenta muchas ventajas. Es de fácil instalación y es más económico que los demás tipos de medios para networking. De hecho, el UTP cuesta menos por metro que cualquier otro tipo de cableado para LAN. Sin embargo, la ventaja real es su tamaño. Debido a que su diámetro externo es tan pequeño, el cable UTP no llena los conductos para el cableado tan rápidamente como sucede con otros tipos de cables. Esto puede ser un factor sumamente importante a tener en cuenta, en especial si se está instalando una red en un edificio antiguo. Además, si se está instalando el cable UTP con un conector RJ-45, las fuentes potenciales de ruido de la red se reducen enormemente y prácticamente se garantiza una conexión sólida y de buena calidad. El cableado de par trenzado presenta ciertas desventajas. El cable UTP es más susceptible al ruido eléctrico y a la interferencia que otros tipos de medios para networking y la distancia que puede abarcar la señal sin el uso de repetidores es menor para UTP que para los cables coaxiales y de fibra óptica. En una época, el cable de par trenzado era considerado más lento para transmitir datos que otros tipos de cables. Sin embargo, hoy en día ya no es así. De hecho, en la actualidad, se considera que el cable de par trenzado es el más rápido entre los medios basados en cobre. Para que sea posible la comunicación, la señal transmitida por la fuente debe ser entendida por el destino. Esto es cierto tanto desde una perspectiva física como en el software. La señal transmitida necesita ser correctamente recibida por la conexión del circuito que está diseñada para recibir las señales. El pin de transmisión de la fuente debe conectarse en fin al pin receptor del destino. A continuación se presentan los tipos de conexiones de cable utilizadas entre dispositivos de internetwork. ELECTROTECNIA 247 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Los cables están definidos por el tipo de conexiones o la disposición de pines, de un extremo al otro del cable. Un técnico puede comparar ambos extremos de un mismo cable poniendo uno al lado del otro, siempre que todavía no se haya embutido el cable en la pared. El técnico observa los colores de las dos conexiones RJ-45 colocando ambos extremos con el clip en la mano y la parte superior de ambos extremos del cable apuntando hacia afuera. En un cable directo, ambos extremos deberían tener idénticos patrones de color. Al comparar los extremos de un cable de conexión cruzada, el color de los pins nº 1 y nº 2 aparecerán en el otro extremo en los pins nº 3 y nº 6, y viceversa. Esto ocurre porque los pins de transmisión y recepción se encuentran en ubicaciones diferentes. En un cable transpuesto, la combinación de colores de izquierda a derecha en un extremo debería ser exactamente opuesta a la combinación de colores del otro extremo. Para el caso de normativa de la disposición de los hilos se usan dos tipos una 568A y las otra 568B. Si un cable presenta la misma normativa a ambos lados se le llama cable directo. Si un cable presenta las normas combinadas se le llama crossover. ELECTROTECNIA 248 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I FIBRA ÓPTICA. El espectro electromagnético. La luz que se utiliza en las redes de fibra óptica es un tipo de energía electromagnética. Cuando una carga eléctrica se mueve hacia adelante y hacia atrás, o se acelera, se produce un tipo de energía denominada energía electromagnética. Esta energía, en forma de ondas, puede viajar a través del vacío, el aire y algunos materiales como el vidrio. Una propiedad importante de toda onda de energía es la longitud de onda. La radio, las microondas, el radar, la luz visible, los rayos x y los rayos gama parecen ser todos muy diferentes. Sin embargo, todos ellos son tipos de energía electromagnética. Si se ordenan todos los tipos de ondas ELECTROTECNIA 249 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I electromagnéticas desde la mayor longitud de onda hasta la menor, se crea un continuo denominado espectro electromagnético. La longitud de onda de una onda electromagnética es determinada por la frecuencia a la que la carga eléctrica que genera la onda se mueve hacia adelante y hacia atrás. Si la carga se mueve lentamente hacia adelante y hacia atrás, la longitud de onda que genera es una longitud de onda larga. Visualice el movimiento de la carga eléctrica como si fuera una varilla en una charca. Si la varilla se mueve lentamente hacia adelante y hacia atrás, generará movimientos en el agua con una longitud de onda larga entre las partes superiores de las ondas. Si la varilla se mueve rápidamente hacia adelante y hacia atrás, los movimientos en el agua tendrán una longitud de onda mas corta. Como todas las ondas electromagnéticas se generan de la misma manera, comparten muchas propiedades. Todas las ondas viajan a la misma velocidad en el vacío. La velocidad es aproximadamente 300.000 kilómetros por segundo o 186.283 millas por segundo. Esta es también la velocidad de la luz. Los ojos humanos están diseñados para percibir solamente la energía electromagnética de longitudes de onda de entre 700 y 400 nanómetros (nm). Un nanómetro es la mil millonésima parte de un metro (0,000000001 metro) de longitud. La energía electromagnética con longitudes de onda entre 700 y 400 nm recibe el nombre de luz visible. Las longitudes de onda de luz más largas que se encuentran cerca de los 700 nm se perciben como el color rojo. Las longitudes de onda más cortas que se encuentran alrededor de los 400 nm aparecen como el color violeta. Esta parte del espectro magnético se percibe como los colores del arco iris. ELECTROTECNIA 250 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Las longitudes de onda que invisibles al ojo humano son utilizadas para transmitir datos a través de una fibra óptica. Estas longitudes de onda son levemente más largas que las de la luz roja y reciben el nombre de luz infrarroja. La luz infrarroja se utiliza en los controles remotos de los televisores. La longitud de onda de la luz en la fibra óptica es de 850 nm, 1310 nm o 1550 nm. Se seleccionaron estas longitudes de onda porque pasan por la fibra óptica más fácilmente que otras. Modelo de rayo de luz. Cuando las ondas electromagnéticas se alejan de una fuente, viajan en líneas rectas. Estas líneas rectas que salen de la fuente reciben el nombre de rayos. Piense en los rayos de luz como delgados haces de luz similares a los generados por un láser. En el vacío del espacio, la luz viaja de forma continua en línea recta a 300.000 kilómetros por segundo. Sin embargo, la luz viaja a velocidades diferentes y más lentas a través de otros materiales como el aire, el agua y el vidrio. Cuando un rayo de luz, denominado rayo incidente, cruza los límites de un material a otro, se refleja parte de la energía de la luz del rayo. Por esta razón, uno puede verse a sí mismo en el vidrio de una ventana. La luz reflejada recibe el nombre de rayo reflejado. La energía de la luz de un rayo incidente que no se refleja entra en el vidrio. El rayo entrante se dobla en ángulo desviándose de su trayecto original. Este rayo recibe el nombre de rayo refractado. El grado en que se dobla el rayo de luz incidente depende del ángulo que forma el rayo incidente al llegar a la superficie del vidrio y de las distintas velocidades a la que la luz viaja a través de las dos sustancias. Esta desviación de los rayos de luz en los límites de dos sustancias es la razón por la que los rayos de luz pueden recorrer una fibra óptica aun cuando la fibra tome la forma de un círculo. La densidad óptica del vidrio determina la desviación de los rayos de luz en el vidrio. La densidad óptica se refiere a cuánto la velocidad del rayo de luz disminuye al atravesar una sustancia. Cuanto mayor es la densidad óptica del material, más se desacelera la luz en relación a su velocidad en el vacío. El ELECTROTECNIA 251 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I índice de refracción se define como la velocidad de la luz en el vacío dividido por la velocidad de la luz en el medio. Por lo tanto, la medida de la densidad óptica de un material es el índice de refracción de ese material. Un material con un alto índice de refracción es ópticamente más denso y desacelera más la luz que un material con menor índice de refracción. En una sustancia como el vidrio, es posible aumentar el Índice de Refracción o densidad óptica, agregando productos químicos al vidrio. Si se produce un vidrio muy puro, se puede reducir el índice de refracción. Las siguientes lecciones proporcionan mayor información sobre la reflexión y la refracción y su relación con el diseño y funcionamiento de la fibra óptica Reflexión interna total Un rayo de luz que se enciende y apaga para enviar datos (unos y ceros) dentro de una fibra óptica debe permanecer dentro de la fibra hasta que llegue al otro extremo. El rayo no debe refractarse en el material que envuelve el exterior de la fibra. La refracción produciría una pérdida de una parte de la energía de la luz del rayo. Es necesario lograr un diseño de fibra en el que la superficie externa de la fibra actúe como espejo para el rayo de luz que viaja a través de la fibra. Si un rayo de luz que trata de salir por el costado de la fibra se refleja hacia dentro de la fibra a un ángulo tal que lo envíe hacia el otro extremo de la misma, se formaría un buen "conducto" o "guía de ondas" para las ondas de luz. Las leyes de reflexión y de refracción ilustran cómo diseñar una fibra que guíe las ondas de luz a través de la fibra con una mínima pérdida de energía. Se ELECTROTECNIA 252 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I deben cumplir las dos siguientes condiciones para que un rayo de luz en una fibra se refleje dentro de ella sin ninguna pérdida por refracción. El núcleo de la fibra óptica debe tener un índice de refracción (n) mayor que el del material que lo envuelve. El material que envuelve al núcleo de la fibra recibe el nombre de revestimiento. El ángulo de incidencia del rayo de luz es mayor que el ángulo crítico para el núcleo y su revestimiento. Cuando se cumplen estas dos condiciones, toda la luz que incide en la fibra se refleja dentro de ella. Esto se llama reflexión interna total, que es la base sobre la que se construye una fibra óptica. La reflexión interna total hace que los rayos de luz dentro de la fibra reboten en el límite entre el núcleo y el revestimiento y que continúen su recorrido hacia el otro extremo de la fibra. La luz sigue un trayecto en zigzag a lo largo del núcleo de la fibra. NORMAS PARA CABLEADO. Un sistema de cableado estructurado es la infraestructura de cable destinada a transportar, a lo largo y ancho de un edificio, las señales que emite un emisor de algún tipo de señal hasta el correspondiente receptor. Un sistema de cableado estructurado es físicamente una red de cable única y completa. Con combinaciones de alambre de cobre (pares trenzados sin ELECTROTECNIA 253 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I blindar UTP), cables de fibra óptica bloques de conexión, cables terminados en diferentes tipos de conectores y adaptadores. Otro de los beneficios del cableado estructurado es que permite la administración sencilla y sistemática de las mudanzas y cambios de ubicación de personas y equipos. Tales como el sistema de cableado de telecomunicaciones para edificios que presenta como característica saliente de ser general, es decir, soporta una amplia gama de productos de telecomunicaciones sin necesidad de ser modificado. Utilizando este concepto, resulta posible diseñar el cableado de un edificio con un conocimiento muy escaso de los productos de telecomunicaciones que luego se utilizarán sobre él. La norma garantiza que los sistemas que se ejecuten de acuerdo a ella soportarán todas las aplicaciones de telecomunicaciones presentes y futuras por un lapso de al menos diez años. Esta afirmación Puede parecer excesiva, pero si se tiene en cuenta que entre los autores de la norma están precisamente los fabricantes de estas aplicaciones. ELEMENTOS PRICIPALES DE UN CABLEADO ESTRUCTURADO. Cableado Horizontal. Cableado del backbone. Cuarto de telecomunicaciones. Cuarto de entrada de servicios. Sistema de puesta a tierra. Atenuación. Capacitancia. Impedancia y distorsión por retardo. DIAGRAMA ESQUEMÁTICO DE UN CABLEADO ESTRUCTURADO TÍPICO. ADMINISTRACIÓN DEL SISTEMA DE CABLEADO ESTRUCTURADO. La administración del sistema de cableado incluye la documentación de los cables, terminaciones de los mismos, paneles de parcheo, armarios de telecomunicaciones y otros espacios ocupados por los sistemas. La norma TIA/EIA 606 proporciona una guía que puede ser utilizada para la ejecución de la administración de los sistemas de cableado. Los principales fabricantes de ELECTROTECNIA 254 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I equipos para cableados disponen también de software específico para administración. Resulta fundamental para lograr una cotización adecuada suministrar a los oferentes la mayor cantidad de información posible. En particular, es muy importante proveerlos de planos de todos los pisos, en los que se detallen: 1. 2. 3. 4. 5. Ubicación de los gabinetes de telecomunicaciones. Ubicación de ductos a utilizar para cableado vertical. Disposición detallada de los puestos de trabajo. Ubicación de los tableros eléctricos en caso de ser requeridos. Ubicación de piso ductos si existen y pueden ser utilizados ANSI/EIA/TIA-568-A DOCUMENTO PRINCIPAL QUE REGULA TODO LO CONCERNIENTE A SISTEMAS DE CABLEADO ESTRUCTURADO PARA EDIFICIOS COMERCIALES. Esta norma reemplaza a la EIA/TIA 568 publicada en julio de 1991. El propósito de la norma EIA/TIA 568A se describe en el documento de la siguiente forma: "Esta norma especifica un sistema de cableado de telecomunicaciones genérico para edificios comerciales que soportará un ambiente multiproducto y multifabricante. También proporciona directivas para el diseño de productos de telecomunicaciones para empresas comerciales. El propósito de esta norma es permitir la planeación e instalación de cableado de edificios comerciales con muy poco conocimiento de los productos de telecomunicaciones que serán instalados con posterioridad. La instalación de sistemas de cableado durante la construcción o renovación de edificios es significativamente menos costosa y desorganizadora que cuando el edificio está ocupado." Alcance. La norma EIA/TIA 568A específica los requerimientos mínimos para el cableado de establecimientos comerciales de oficinas. Se hacen recomendaciones para: • Las topologías. ELECTROTECNIA 255 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I • La distancia máxima de los cables. • El rendimiento de los componentes. • Las tomas y los conectores de telecomunicaciones. Se pretende que el cableado de telecomunicaciones especificado soporte varios tipos de edificios y aplicaciones de usuario. Se asume que los edificios tienen las siguientes características: • Una distancia entre ellos de hasta 3 km. • Un espacio de oficinas de hasta 1,000,000 m2. • Una población de hasta 50,000 usuarios individuales Las aplicaciones que emplean el sistema de cableado de telecomunicaciones incluyen, pero no están limitadas a: • Voz. • Datos. • Texto. • Video. • Imágenes. La vida útil de los sistemas de cableado de telecomunicaciones especificados por esta norma debe ser mayor de 10 años. ESTÁNDAR ANSI/TIA/EIA-569 PARA LOS DUCTOS, PASOS Y ESPACIOS NECESARIOS PARA LA INSTALACIÓN DE SISTEMAS ESTANDARIZADOS DE TELECOMUNICACIONES. Este estándar reconoce tres conceptos fundamentales relacionados con telecomunicaciones y edificios: • Los edificios son dinámicos. Durante la existencia de un edificio, las remodelaciones son más la regla que la excepción. • Este estándar reconoce, de manera positiva, que el cambio ocurre. • Los sistemas de telecomunicaciones y de medios son dinámicos. Durante la existencia de un edificio, los equipos de telecomunicaciones cambian dramáticamente. Este estándar reconoce este hecho siendo tan independiente como sea posible de proveedores de equipo. • Telecomunicaciones es más que datos y voz. Telecomunicaciones también incorpora otros sistemas tales como control ambiental, seguridad, audio, ELECTROTECNIA 256 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I televisión, alarmas y sonido. De hecho, telecomunicaciones incorpora todos los sistemas de bajo voltaje que transportan información en los edificios. Este estándar reconoce un precepto de fundamental importancia: De manera que un edificio quede exitosamente diseñado, construido y equipado para telecomunicaciones, es imperativo que el diseño de las telecomunicaciones se incorpore durante la fase preliminar de diseño arquitectónico. Esta norma se refiere al diseño especifico sobre la dirección y construcción, los detalles del diseño para el camino y espacios para el cableado de telecomunicaciones y equipos dentro de edificios comerciales. Notas: • EF= Es el espacio que provee un punto de presencia y la terminación del cableado en el edificio de la parte exterior. El EF puede también distribuir cableado horizontal para el área de trabajo como se muestra una función como un TC. • TC= El TC puede alojar también equipos de telecomunicaciones y puede funcionar como un cuarto de equipo ER. • WA= El WA es el espacio donde ocupan recíprocamente equipos de telecomunicaciones. ANSI/EIA/TIA-606 REGULA Y SUGIERE LOS METODOS PARA LA ADMINISTRACION DE LOS SISTEMAS DE TELECOMUNICACIONES. El propósito de este estándar es proporcionar un esquema de administración uniforme que sea independiente de las aplicaciones que se le den al sistema de cableado, las cuales pueden cambiar varias veces durante la existencia de un edificio. Este estándar establece guías para dueños, usuarios finales, consultores, contratistas, diseñadores, instaladores y administradores de la infraestructura de telecomunicaciones y sistemas relacionados. Para proveer un esquema de información sobre la administración del camino para el cableado de telecomunicación, espacios y medios independientes. Marcando con un código de color y grabando en estos los datos para la administración de los cables de telecomunicaciones para su debida identificación. La siguiente tabla muestra el código de color en los cables. NARANJA Terminación central de oficina. VERDE Conexión de red / circuito auxiliar. ELECTROTECNIA 257 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I PURPURA Conexión mayor / equipo de dato. BLANCO Terminación de cable MC a IC. GRIS Terminación de cable IC a MC. AZUL Terminación de cable horizontal. CAFÉ Terminación del cable del campus. AMARILLO Mantenimiento auxiliar, alarmas y seguridad. ROJO Sistema de teléfono. TIA/EIA TSB-67 ESPECIFICACIÓN DEL DESEMPEÑO DE TRANSMISIÓN EN EL CAMPO DE PRUEBA DEL SISTEMA DE CABLEADO UTP. Este boletín especifica las características eléctricas de los equipos de prueba, métodos de prueba y mínimas características de transmisión del UTP en categorías 3, 4 y 5. TIA/EIA TSB-72 GUIA PARA EL CABLEADO DE LA FIBRA ÓPTICA. Este documento especifica el camino y conexión del hardware requerido para el sistema de cableado de fibra óptica y equipos localizados dentro del cuarto de telecomunicaciones o dentro del cuarto equipos en el área de trabajo. ELEMENTOS PRINCIPALES DE UN CABLEADO ESTRUCTURADO. Cableado horizontal. Se emplea el término horizontal pues esta parte del sistema de cableado corre de manera horizontal entre los pisos y techos de un edificio. La norma EIA/TIA 568A define el cableado horizontal de la siguiente forma: "El sistema de cableado horizontal es la porción del sistema de cableado de telecomunicaciones que se extiende del área de trabajo al cuarto de telecomunicaciones. El cableado horizontal incluye los cables horizontales, las tomas/conectores de telecomunicaciones en el área de trabajo, la terminación mecánica y las interconexiones horizontales localizadas en el cuarto de telecomunicaciones." ELECTROTECNIA 258 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Comunicaciones Inalámbricas. Los sistemas Wireless (inalámbrico), son aquellas en las que no se utiliza un medio de propagación físico, sino la modulación de ondas electromagnéticas, radiaciones o medios ópticos. Estás se propagan por el espacio vacío sin medio físico que comunique cada uno de los extremos de la transmisión. Los principios básicos e inventos asociados a la tecnología inalámbrica se pueden encontrar en los documentos y patentes del ingeniero eléctrico Nikola Tesla. Así como en su exposición sobre la historia de la tecnología inalámbrica y de radio: "Nikola Tesla en su trabajo sobre corriente alterna y su aplicación en el telégrafo inalámbrico, telefonía, y transmisión de energía, Anderson, Leland, ed., Published 1992, Twenty First Century Books". Método de comunicación que usa ondas de radio de baja potencia para transmitir entre dispositivos. El uso de transmisores de alta potencia requiere de licencias del gobierno para emitir en una determinada frecuencia. Históricamente, esta tecnología se ha empleado para el envío de voz y se ha transformado en una gran industria, manteniendo miles de transmisiones a lo largo del mundo. En la actualidad el número de equipos que utilizan las ondas ha crecido notablemente debido a la utilización de computadoras que se conectan a redes inalámbricas sin la necesidad de una licencia. Este tipo de comunicaciones ha adquirido un gran auge en todo el mundo gracias a comunidades wireless que buscan la difusión de redes alternativas a las comerciales. ELECTROTECNIA 259 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Redes wireless. Los desarrolladores de hardware y software han creado los dispositivos wireless que permiten interconectar computadoras y periféricos mediante redes inalámbricas utilizando protocolos como el Wi-Fi: El estandar IEEE 802.11. El cual es para las redes inalámbricas, lo que Ethernet para las LAN (Redes de área local cableadas). Además del protocolo 802.11 del IEEE existen otros estándares como el HomeRF y el Bluetooth. Debido a la naturaleza de las comunicaciones wireless (cuyo medio es el aire), está relacionado con las redes wireless el concepto wardriving que básicamente consiste en buscar dichas redes yendo a pie o en coche a través de la ciudad o una zona con puntos de acceso wireless (a veces llamados nodos), con un dispositivo hardware wireless y el software adecuado (por ejemplo: un portátil con una tarjeta wireless pcmcia 802.11b y el programa Netstumbler). El objetivo del wardriving es encontrar redes a las que poder conectarse, bien para obtener acceso a Internet o simplemente para comprobar la vulnerabilidad de la red. Tarjeta de RED inalámbrica. Los hornos microondas (para preparar comida) utilizan radiaciones en el espectro de 2.45 Ghz. Los teléfonos móviles, las redes inalámbricas, y otras herramientas similares utilizan el espectro de 2.4Ghz. Por eso la proximidad de este tipo de hornos puede producir interferencias en las comunicaciones. No siempre este tipo de interferencias provienen de una fuente accidental. Mediante el uso de un perturbador o inhibidor de señal se puede dificultar e incluso imposibilitar las comunicaciones en un determinado rango de frecuencias. ELECTROTECNIA 260 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Estándares WLAN. Ante la existencia de dispositivos WLAN de diferentes fabricantes, se hizo necesaria la existencia de recomendaciones (contenidas en los estándares), para permitir a los productos de estas firmas, una operación adecuada entre sí y que, además, se cumpliera con un mínimo establecido de calidad y funcionalidades. Los estándares WLAN principiaron con el estándar 802.11, desarrollado en 1997, por el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE). Estos estándares permiten transmisiones de datos de hasta 2 Mbps, transferencias que han sido mejoradas con el paso del tiempo. Las extensiones a estas reglas se reconocen con la adición de una letra al estándar original, incluyendo 802.11a y 802.11b. La siguiente tabla contiene las variantes relacionadas al estándar 802.11. Estándares para redes inalámbricas. ELECTROTECNIA 261 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I La especificación 802.11b fue ratificada por el IEEE en julio de 1999, y opera en un ancho de banda que abarca las frecuencias dentro del rango de 2.4 a 2.497 GHz del espectro de radio. El método de modulación seleccionado fue DSSS (Modulación de Secuencia Directa de Espectro Extendido) usando CCK (Modulación por Cambios de Código Complementarios), que permite una velocidad máxima de 11 Mbps. La especificación 802.11a también fue ratificada en esa fecha, pero los productos se hicieron disponibles en el mercado en el año 2001, de tal forma, que su despliegue no fue tan amplio como sucedió con 802.11b. 802.11a opera en frecuencias entre 5.15 y 5.875 GHz y utiliza el método de modulación OFDM (Multiplexación por División de Frecuencias Ortogonales), el cual hace posible velocidades de hasta 54 Mbps. Mecanismos de seguridad. En los inicios de la tecnología inalámbrica, los procedimientos y mecanismos de seguridad eran tan débiles que podía ganarse acceso con relativa facilidad hacia redes WLAN de compañías desde la calle. El estándar inalámbrico 802.11 original incorpora encriptación y autenticación WEP (Privacidad Equivalente a Cable). Sin embargo, en el 2001 se publicaron artículos que comunicaban las deficiencias que enfrentaba dicho mecanismo. Al interceptar y decodificar los datos transmitidos en el aire, y en cuestión de horas en una red WLAN con tráfico intenso, la clave WEP puede ser deducida y se puede ganar acceso no autorizado. Esta situación desencadenó una serie de acciones por parte del IEEE y de la industria para mejorar la seguridad en las redes de tecnología inalámbrica. La seguridad WLAN abarca dos elementos: el acceso a la red y la protección de los datos (autenticación y encriptación, respectivamente). Las violaciones a la seguridad de la red inalámbrica, generalmente, vienen de los puntos de acceso no autorizados, aquéllos instalados sin el conocimiento de los administradores de la red, o que operan con las funcionalidades de protección deshabilitadas (que es la configuración por omisión en los dispositivos inalámbricos). Estos “hoyos” en la seguridad, pueden ser aprovechados por personal no autorizado (hackers), que en caso de que logren asociarse con el punto de acceso, ponen en riesgo no únicamente la infraestructura inalámbrica, sino también la red alámbrica a la cual se conecta. La tabla siguiente contiene los mecanismos de seguridad usados en redes WLAN, así como las ventajas y desventajas de cada uno de ellos. ELECTROTECNIA 262 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Mecanismos de seguridad para redes WLAN. Mecanismo Descripción de seguridad Especificación original 802.11 802.1X WPA (Wi-Fi Protected Access) ELECTROTECNIA Utiliza tres mecanismos para proteger las redes WLAN: - SSID (Identificador de Servicio): es una contraseña simple que identifica la WLAN. Los clientes deben tener configurado el SSID correcto para accesar a la red inalámbrica. El uso del SSID como método único de control de acceso a la infraestructura es peligroso, porque típicamente no está bien asegurado; comúnmente el punto de acceso está configurado para distribuir este parámetro en su señal guía (beacon). - Filtrado con dirección MAC (Control de Acceso al Medio): restringe el acceso a computadoras cuya dirección MAC de su adaptador está presente en una lista creada para cada punto de acceso en la WLAN. Este esquema de seguridad se rompe cuando se comparte o se extravía el adaptador inalámbrico. - WEP (Privacidad Equivalente a Cable): es un esquema de encriptación que protege los flujos de datos entre clientes y puntos de acceso como se especifica en el estándar 802.11. Aunque el soporte para WEP es opcional, la certificación Wi-Fi exige WEP con llaves de 40 bits. El estándar recomienda dos esquemas para definir las llaves WEP. En el primer esquema, un conjunto de hasta cuatro llaves establecidas es compartido por todas las estaciones (clientes y puntos de acceso). El problema con estas llaves es que cuando se distribuyen ampliamente, la seguridad se ve comprometida. En el segundo esquema cada cliente establece una relación de llaves con otra estación. Este método ofrece una alternativa más segura, porque menos estaciones tienen las llaves, pero la distribución de las mismas se dificulta con el incremento en el número de estaciones. Para contrarrestar los defectos de la seguridad WEP, el IEEE creó el estándar 802.1X. Se trata de un mecanismo de seguridad diseñado para proporcionar acceso controlado entre dispositivos inalámbricos clientes, puntos de acceso y servidores. Emplea llaves dinámicas en lugar de llaves estáticas usadas en la autenticación WEP, y requiere de un protocolo de autenticación para reconocimiento mutuo. Es necesario un servidor que proporcione servicios de autenticación remota de usuarios entrantes (RADIUS, Servicio Remoto de Autenticación de Usuarios Entrantes). Contiene los beneficios de encriptación del protocolo de integridad de llave temporal (TKIP, Protocolo de Llaves Integras – Seguras – Temporales). TKIP fue construido tomando como base el estándar WEP, además está diseñado y analizado con detalle por importantes criptógrafos para reforzar la protección ofrecida en las redes WLAN. También emplea 802.1X como método de autenticación en conjunto, con uno de los protocolos EAP estándar disponibles. EAP (Protocolo de Autenticación Extensible) es un protocolo punto a punto que soporta múltiples métodos de autenticación. Debido a que la tecnología WLAN se basa en transmisión sobre ondas de radio, con cobertura en áreas que pueden ser ambientes públicos o privados, se han tomado en cuenta importantes consideraciones acerca de la seguridad en la red; las actividades están dirigidas por la especificación de seguridad WPA (Acceso de Protección Wi- Fi) desarrollada por el IEEE en conjunto con la alianza Wi-Fi. Esta especificación proporciona una mayor encriptación de datos para corregir las vulnerabilidades de seguridad WEP, además de añadir autenticación de usuarios que no se habían contemplado. 263 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I AUTOEVALUACIÓN N° 8 Conteste en forma breve las siguientes preguntas: 1.- ¿Cuál es la diferencia entre conmutación de paquetes y circuitos? …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… 2.- ¿Qué es el modelo OSI?. …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… 3.- ¿Cuál es la estructura del protocolo TCP/IP?. …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… 4.- ¿Cuáles son los medios cableados usados en una Red LAN? …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… 5.- ¿Qué características especiales posee la Fibra Óptica? …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… 6.- ¿Qué es la atenuación? …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… ELECTROTECNIA 264 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CAPÍTULO 9 DISPOSITIVOS USB En este capítulo se tratará: Memoria USB. Historia de la memoria USB. Fortalezas y Debilidades de la memoria USB. Componentes de la memoria USB. Tecnologías relacionadas: USB 3.0. Disco Duro portátil. Características del Disco Duro portátil. Funciones Añadidas. ELECTROTECNIA 265 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I MEMORIA USB. Una memoria USB (de Universal Serial Bus) es un dispositivo de almacenamiento que utiliza una memoria flash para guardar información. Se le conoce también, entre otros nombres, con los siguientes: unidad flash USB, lápiz de memoria, lápiz USB, minidisco duro, unidad de memoria, llave de memoria, Pen Disk, pen drive. Memoria USB Fabricante Varios Lanzamiento 16 de mayo de 1995; hace 18 años Alimentación Energía suministrada por puerto USB (las primeras utilizaban baterías) Memoria flash Capacidad de almacenamiento Variable Entrada Puerto USB Conectividad USB Dimensiones y peso Variable Visión general. Los primeros modelos requerían una batería, pero los actuales usan la energía eléctrica procedente del puerto USB. Estas memorias son resistentes a los rasguños (externos), al polvo, y algunos hasta al agua, factores que afectaban a las formas previas de almacenamiento portátil, como los disquetes, discos compactos y los DVD. Su gran éxito y difusión les han supuesto diversas denominaciones populares relacionadas con su pequeño tamaño y las diversas formas de presentación, sin que ninguna haya podido destacar entre todas ellas. En España son ELECTROTECNIA 266 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I conocidas popularmente como pinchos o lápices, en otros países como El Salvador, Honduras, México, Colombia y Guatemala son conocidas como memorias, en Venezuela como pendrives y en Costa Rica se le llama popularmente Llave Maya. El calificativo USB o el propio contexto permite identificar fácilmente el dispositivo informático al que se refiere; aunque siendo un poco estrictos en cuanto al concepto, USB únicamente se refiere al puerto de conexión. Características. Estas memorias se han convertido en el sistema de almacenamiento y transporte personal de datos más utilizado, desplazando en este uso a los tradicionales disquetes y a los CD. Se pueden encontrar en el mercado fácilmente memorias de 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 GB, y hasta 1 TB. Las memorias con capacidades más altas pueden aún estar, por su precio, fuera del rango del "consumidor doméstico". Esto supone, como mínimo, el equivalente a 180 CD de 700 MB o 91 000 disquetes de 1440 KiB aproximadamente. Soporte. Los sistemas operativos actuales pueden leer y escribir en las memorias sin más que enchufarlas a un conector USB del equipo encendido, recibiendo la tensión de alimentación a través del propio conector, de 5 voltios y un consumo de 2,5 vatios como máximo. En equipos algo antiguos (como por ejemplo: los equipos con el Windows 98) se necesita instalar un controlador proporcionado por el fabricante. Las diversas distribuciones GNU/Linux también tienen soporte para estos dispositivos de almacenamiento desde la versión 2.4 del núcleo. HISTORIA. Primera Generación. Las empresas Trek Technology e IBM comenzaron a vender las primeras unidades de memoria USB en el año 2000. Trek vendió un modelo bajo el nombre comercial de Thumbdrive e IBM vendió las primeras unidades en Norteamérica bajo la marca DiskOnKey, desarrolladas y fabricadas por la empresa israelí M-Systems en capacidades de 8 MiB, 16 MiB, 32 MiB y 64 MiB Estos fueron promocionados como los "verdaderos reemplazos del disquete", y su diseño continuó hasta los 256 MiB. Los modelos anteriores de este dispositivo utilizaban baterías, en vez de la alimentación de la PC. ELECTROTECNIA 267 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Segunda Generación. Dentro de esta generación de dispositivos existe conectividad con la norma USB 2.0. Sin embargo, no usan en su totalidad el ancho de banda de 480 Mbit/s que soporta la especificación USB 2.0 Hi-Speed debido a las limitaciones técnicas de las memorias flash basadas en NAND. Los dispositivos más rápidos de esta generación usan un controlador de doble canal, aunque todavía están muy lejos de la tasa de transferencia posible de un disco duro de la actual generación, o el máximo rendimiento de alta velocidad USB. Las velocidades de transferencia de archivos varían considerablemente. Se afirma que las unidades rápidas típicas leen a velocidades de hasta 30 Mbit/s y escribir a cerca de la mitad de esa velocidad. Esto es aproximadamente 20 veces más rápido que en los dispositivos USB 1.1, que poseen una velocidad máxima de 12 Mbit/s. Tercera Generación. La norma USB 3.0 ofrece tasas de transferencia de datos mejoradas enormemente en comparación con su predecesor, además de compatibilidad con los puertos USB 2.0. La norma USB 3.0 fue anunciada a finales de 2008, pero los dispositivos de consumo no estuvieron disponibles hasta principios de 2010. La interfaz USB 3.0 especifica las tasas de transferencia de hasta 5 Gbit/s, en comparación con los 40 Mbit/s de USB 2.0. A pesar de que la interfaz USB 3.0 permite velocidades de datos muy altas de transferencia, a partir de 2011 la mayoría de las unidades USB 3.0 Flash no utilizan toda la velocidad de la interfaz USB 3.0 debido a las limitaciones de sus controladores de memoria, aunque algunos controladores de canal de memoria llegan al mercado para resolver este problema. Algunas de estas memorias almacenan hasta 256 GiB de memoria (lo cual es 1024 veces mayor al diseño inicial de M-Systems). También hay dispositivos, que aparte de su función habitual, poseen una Memoria USB como aditamento incluido, como algunos ratones ópticos inalámbricos o Memorias USB con aditamento para reconocer otros tipos de memorias (microSD, m2, etc.). En agosto de 2010, Imation anuncia el lanzamiento al mercado de la nueva línea de USB de seguridad Flash Drive Defender F200, con capacidades de 1 GiB, 2 GiB, 4 GiB, 8 GiB, 16 GiB y 32 GiB. Estas unidades de almacenamiento cuentan con un sensor biométrico ergonómico basado en un hardware que valida las coincidencias de las huellas dactilares de identificación, antes de permitir el acceso a la información. ELECTROTECNIA 268 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Lector de tarjetas SD que actúa como memoria USB. Utilidades. Las memorias USB son comunes entre personas que transportan datos de su casa al lugar de trabajo, o viceversa. Teóricamente pueden retener los datos durante unos 20 años y escribirse hasta un millón de veces. Aunque inicialmente fueron concebidas para guardar datos y documentos, es habitual encontrar en las memorias USB programas o archivos de cualquier otro tipo debido a que se comportan como cualquier otro sistema de archivos. Los nuevos dispositivos U3 para Microsoft Windows integran un menú de aplicaciones, semejante al propio menú de "Inicio", que permiten organizar archivos de imágenes, música, etc. Para memorias de otros fabricantes también existen colecciones basadas en software libre como es el caso de PortableApps.com. Interior de una memoria USB. La disponibilidad de memorias USB a costos reducidos ha provocado que sean muy utilizadas con objetivos promocionales o de marketing, especialmente en ámbitos relacionados con la industria de la computación (por ejemplo, en eventos tecnológicos). A menudo se distribuyen de forma gratuita, se venden por debajo del precio de coste o se incluyen como obsequio al adquirir otro producto. Habitualmente, estos dispositivos se personalizan grabando en la superficie de la memoria USB el logotipo de la compañía, como una forma de incrementar la visibilidad de la marca. La memoria USB puede no incluir datos o llevar ELECTROTECNIA 269 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I información precargada (gráficos, documentación, enlaces web, animaciones Flash u otros archivos multimedia, aplicaciones gratuitas o demos). Algunas memorias con precarga de datos son de sólo lectura; otras están configuradas con dos particiones, una de sólo lectura y otra en que es posible incluir y borrar datos. Las memorias USB con dos particiones son más caras. Las memorias USB pueden ser configuradas con la función de autoarranque (autorun) para Microsoft Windows, con la que al insertar el dispositivo arranca de forma automática un archivo específico. Para activar la función autorun es necesario guardar un archivo llamado autorun.inf con el script apropiado en el directorio raíz del dispositivo. La función autorun no funciona en todos los ordenadores. En ocasiones esta funcionalidad se encuentra deshabilitada para dificultar la propagación de virus y troyanos que se aprovechan de este sistema de arranque. Memoria USB Windows To Go Otra utilidad de estas memorias es que, si la BIOS del equipo lo admite, pueden arrancar un sistema operativo sin necesidad de CD, DVD ni siquiera disco duro. El arranque desde memoria USB está muy extendido en ordenadores nuevos y es más rápido que con un lector de DVD-ROM. Se pueden encontrar distribuciones de Linux que están contenidas completamente en una memoria USB y pueden arrancar desde ella (véase LiveCD). Las memorias USB de gran capacidad, al igual que los discos duros o grabadoras de CD/DVD son un medio fácil para realizar una copia de seguridad, por ejemplo. Hay grabadoras y lectores de CD-ROM, DVD, disquetera o Zip que se conectan por USB. Además, desde 2008, existen equipos de audio con un puerto USB al cual se puede conectar una memoria USB para reproducir la música contenida en él. Como medida de seguridad, algunas memorias USB tienen posibilidad de impedir la escritura mediante un interruptor. Otros permiten reservar una parte para ocultarla mediante una clave. ELECTROTECNIA 270 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Fortalezas y Debilidades. A pesar de su bajo costo y garantía, hay que tener muy presente que estos dispositivos de almacenamiento pueden dejar de funcionar repentinamente por accidentes diversos: variaciones de voltaje mientras están conectadas, por caídas a una altura superior a un metro, por su uso prolongado durante varios años especialmente en pendrives antiguos. Las unidades flash son inmunes a rayaduras y al polvo que afecta a las formas previas de almacenamiento portátiles como discos compactos y disquetes. Su diseño de estado sólido duradero significa que en muchos casos puede sobrevivir a abusos ocasionales (golpes, caídas, pisadas, pasadas por la lavadora o salpicaduras de líquidos). Esto lo hace ideal para el transporte de datos personales o archivos de trabajo a los que se quiere acceder en múltiples lugares. La casi omnipresencia de soporte USB en computadoras modernas significa que un dispositivo funcionará en casi todas partes. Sin embargo, Microsoft Windows 98 no soporta dispositivos USB de almacenamiento masivo genéricos, se debe instalar un controlador separado para cada fabricante o en su defecto conseguir genéricos. Para Microsoft Windows 95 dichos controladores son casi inexistentes. Las unidades flash son una forma relativamente densa de almacenamiento, hasta el dispositivo más barato almacenará lo que docenas de disquetes, y por un precio moderado alcanza a los CD en tamaño o los superan. Históricamente, el tamaño de estas unidades ha ido variando de varios megabytes hasta unos pocos gigabytes. En el año 2003 las unidades funcionaban a velocidades USB 1.0/1.1, unos 1.5 Mbit/s o 12 Mbit/s. En 2004 se lanzan los dispositivos con interfaces USB 2.0. Aunque USB 2.0 puede entregar hasta 480 Mbit/s, las unidades flash están limitadas por el ancho de banda del dispositivo de memoria interno. Por lo tanto se alcanzan velocidades de lectura de hasta 100 Mbit/s, realizando las operaciones de escritura un poco más lento. En condiciones óptimas, un dispositivo USB puede retener información durante unos 10 años. Las memorias flash implementan el estándar "USB mass storage device class" (clase de dispositivos de almacenamiento masivo USB). Esto significa que la mayoría de los sistemas operativos modernos pueden leer o escribir en dichas unidades sin drivers adicionales. En lugar de exponer los complejos detalles técnicos subyacentes, los dispositivos flash exportan una unidad lógica de datos estructurada en bloques al sistema operativo anfitrión. El sistema operativo puede usar el sistema de archivos o el esquema de direccionamiento ELECTROTECNIA 271 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I de bloques que desee. Algunas computadoras poseen la capacidad de arrancar desde memorias flash, pero esta capacidad depende de la BIOS de cada computadora, además, para esto, la unidad debe estar cargada con una imagen de un disco de arranque. Las memorias flash pueden soportar un número finito de ciclos de lectura/escritura antes de fallar, Con un uso normal, el rango medio es de alrededor de varios millones de ciclos. Sin embargo las operaciones de escrituras serán cada vez más lentas a medida que la unidad envejezca. Esto debe tenerse en consideración cuando se usa un dispositivo flash para ejecutar desde ellas aplicaciones de software o un sistema operativo. Para manejar esto (además de las limitaciones de espacio en las unidades comunes), algunos desarrolladores han lanzado versiones de sistemas operativos como Linux o aplicaciones comunes como Mozilla Firefox diseñadas especialmente para ser ejecutadas desde unidades flash. Esto se logra reduciendo el tamaño de archivos de intercambio y almacenándolos en la memoria RAM. Consideraciones de Uso. El cuidado de las memorias USB es similar al de las tarjetas electrónicas; evitando caídas o golpes, humedad, campos magnéticos y calor extremo. Antiguamente, en los dispositivos más prematuros de esta tecnología, era aconsejado Desmontar la unidad o "Quitar el hardware con seguridad " desde el "Administrador de dispositivos" en Windows o "Expulsar" en Mac OS). En algunos sistemas la escritura se realiza en forma diferida (esto significa que los datos no se escriben en el momento) a través de un caché de escritura para acelerar los tiempos de dicha escritura y para que el sistema escriba finalmente "de una sola vez" cuando dicho caché se encuentre lleno, pero si la unidad es retirada antes que el sistema guarde el contenido de la caché de escritura se pueden provocar discrepancias en el sistema de archivos existente en la memoria USB que podría generar pérdidas de datos. Para reducir el riesgo de pérdida de datos, la caché de escritura está desactivada en forma predeterminada para las unidades externas en los sistemas operativos Windows a partir de Windows XP, pero aun así una operación de escritura puede durar varios segundos y no se debe desenchufar físicamente la unidad hasta que haya finalizado completamente, de lo contrario, los datos a escribir se perderán. Aunque la memoria USB no sufra daños, los ficheros afectados pueden ser de difícil o incluso imposible recuperación ELECTROTECNIA 272 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I llegando en algún caso a ser necesario un borrado o formateo completo del sistema de ficheros para poder volver a usarla. Por lo que la extracción hay que tener cuidado en la escritura, pero extraerlo en la lectura sería irrelevante En Windows (2000 ~ XP con Service Pack 2) con unidades de red asignadas, puede ocurrir que al conectar la memoria USB el sistema no proporcione una letra en uso. Se acudirá al administrador de discos (diskmgmt.msc), localizar la unidad USB y cambiar manualmente la letra de unidad. En Windows XP, puede darse el caso de que si la memoria USB no es desconectada utilizando la función de Extracción Segura, Windows automáticamente podría marcar dicho dispositivo como problemático y deshabilitarlo, y se da el caso que dicha memoria puede utilizarse en otras computadoras pero no en la que está marcada como problemática. Hay que ingresar al Administrador de Dispositivos y volver a habilitarla. COMPONENTES. Componentes internos de una memoria USB típica. 1 Conector USB. 2 Dispositivo de control de almacenamiento masivo USB. 3 Puntos de Prueba. 4 Circuito de Memoria flash. 5 Oscilador de cristal. 6 LED. 7 Interruptor de seguridad contra escrituras. 8 Espacio disponible para un segundo circuito de memoria flash. ELECTROTECNIA 273 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Componentes primarios. Las partes típicas de una memoria USB son las siguientes: • Un conector USB macho tipo A (1): Provee la interfaz física con la computadora. • Controlador USB de almacenamiento masivo (2): Implementa el controlador USB y provee la interfaz homogénea y lineal para dispositivos USB seriales orientados a bloques, mientras oculta la complejidad de la orientación a bloques, eliminación de bloques y balance de desgaste. Este controlador posee un pequeño microprocesador RISC y un pequeño número de circuitos de memoria RAM y ROM. • Circuito de memoria Flash NAND (4): Almacena los datos. • Oscilador de cristal (5): Produce la señal de reloj principal del dispositivo a 12 MHz y controla la salida de datos a través de un bucle de fase cerrado (phase-locked loop) Componentes adicionales. Un dispositivo típico puede incluir también: • Puentes y Puntos de prueba (3): Utilizados en pruebas durante la fabricación de la unidad o para la carga de código dentro del procesador. • LEDs (6): Indican la transferencia de datos entre el dispositivo y la computadora. • Interruptor para protección de escritura (7): Utilizado para proteger los datos de operaciones de escritura o borrado. • Espacio Libre (8): Se dispone de un espacio para incluir un segundo circuito de memoria. Esto le permite a los fabricantes utilizar el mismo circuito impreso para dispositivos de distintos tamaños y responder así a las necesidades del mercado. • Tapa del conector USB: Reduce el riesgo de daños y mejora la apariencia del dispositivo. Algunas unidades no presentan una tapa pero disponen de una conexión USB retráctil. Otros dispositivos poseen una tapa giratoria que no se separa nunca del dispositivo y evita el riesgo de perderla. • Ayuda para el transporte: En muchos casos, la tapa contiene una abertura adecuada para una cadena o collar, sin embargo este diseño aumenta el riesgo de perder el dispositivo. Por esta razón muchos otros tiene dicha abertura en el cuerpo del dispositivo y no en la tapa, la desventaja de este diseño está en que la cadena o collar queda unida al dispositivo mientras está conectado. Muchos diseños traen la abertura en ambos lugares. ELECTROTECNIA 274 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I TECNOLOGÍAS RELACIONADAS. USB 3.0 Presentado en el año 2008. Está en pleno auge de transición entre dispositivos USB 2.0 y USB 3.0. La principal novedad técnica del puerto USB 3.0 es que eleva a 4,8 Gbit/s (600 MB/s) la capacidad de transferencia que en la actualidad es de 480 Mbit/s. Se mantendrá el cableado interno de cobre para asegurarse la compatibilidad con las tecnologías USB 1.0 y 2.0. Si en USB 2.0 el cable dispone de cuatro líneas, un par para datos, una de corriente y una de toma de tierra, en el USB 3.0 se añade cinco líneas. Dos de ellas se usarán para el envío de información y otras dos para la recepción, de forma que se permite el tráfico bidireccional, en ambos sentidos al mismo tiempo. El aumento del número de líneas permite incrementar la velocidad de transmisión desde los 480 Mbit/s hasta los 4,8 Gbit/s. De aquí se deriva el nombre que también recibe esta especificación: USB Superveloz. La cantidad de corriente que transporta un cable USB 1.x y 2.0 resulta insuficiente en muchas ocasiones para recargar algunos dispositivos, especialmente si utilizamos concentradores donde hay conectados varios de ellos. En USB 3.0, se aumenta la intensidad de la corriente de 100 miliamperios a 900 miliamperios, con lo que pueden ser cargadas las baterías a una mayor velocidad o poder alimentar otros componentes que requieran más potencia. Este aumento de la intensidad podría traer consigo un menor rendimiento energético. Pero pensando en ello, USB 3.0 utiliza un nuevo protocolo basado en interrupciones, al contrario que el anterior que se basaba en consultar a los dispositivos periódicamente. El aumento de líneas en USB 3.0 provoca que el cable sea ligeramente más grueso, un inconveniente importante. Si hasta ahora los cables eran flexibles, con el nuevo estándar estos tienen un grueso similar a los cables que se usan en redes Ethernet, siendo por tanto más rígidos. Igual que pasa entre USB 1.1 y USB 2.0 la compatibilidad está garantizada entre USB 2.0 y USB 3.0, gracias al uso de conectores similares, cuyos contactos adicionales se sitúan en paralelo, de forma que no afectan en caso de usar algún puerto que no sea del mismo tipo. ELECTROTECNIA 275 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Disco duro portátil. Un disco duro portátil (o disco duro externo) es un disco duro que es fácilmente transportable de un lado a otro sin necesidad de consumir energía eléctrica o batería. Desde que los CD-R y CD-RW se han extendido como almacenamiento barato, se ha cambiado la filosofía de tener el mismo tipo de almacenamiento de disco intercambiables tanto para almacenamiento como para copia de seguridad o almacenamiento definitivo. Antes normalmente eran discos magnéticos o magneto-ópticos. Ahora se tiende a tener el almacenamiento óptico para un uso más definitivo y otro medio sin discos intercambiable para transporte. Este el caso de las memorias USB y los discos duros portátiles. Un disco duro portátil puede ser desde un microdisco hasta un disco duro normal de sobremesa con una carcasa adaptadora. Las conexiones más habituales son USB 2.0, USB 3.0 y Firewire, menos las SCSI y las SATA. Estas últimas no estaban concebidas para uso externo pero dada su longitud del cable permitida y su capacidad Hot-plug, no es difícil usarlas de este modo. Dispositivo de almacenamiento externo con interfaz USB. Cubierta de un disco fabricado por Buffalo Inc. duro Carcasa abierta de un disco duro de 3.5" con conectividad USB/FireWire. ELECTROTECNIA 276 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Características. Los discos duros portátiles se pueden usar fácilmente en múltiples PC para compartir archivos. Un disco duro portátil permite una programación automática para respaldo de archivos. Un dispositivo portátil permite archivar datos rápido y fácilmente. Estos discos siguen teniendo piezas móviles, tal como los tradicionales, y por lo tanto están expuestos a fallos por golpes o manejo brusco. La gran ventaja que tienen hoy en día sobre las memorias flash o pendrives son la gran capacidad de almacenamiento, pero esta ventaja va siendo alcanzada poco a poco, y por ello es posible que el futuro está en memorias flash de mayor capacidad, sin piezas móviles ni complicaciones. Los discos USB microdrive y portátiles (2,5") se pueden alimentar de la conexión USB. Aunque algunas veces no es suficiente y requieren ser enchufados a dos USB a la vez. Los SCSI y ATA no pueden suministrar corriente para alimentación por lo que siempre requieren un transformador para ellos. Los Firewire se alimentan de la conexión sin problemas. Los discos duros de sobremesa (3,5") requieren también transformador por su alto consumo. Las capacidades van desde el 2GB de los microdiscos a los miles de GB de los de 3,5". Lo habitual es que por los menos tengan conexión USB, lo que permite la compatibilidad con casi cualquier ordenador fabricado después de 1998. Los más actuales incluyen además conexión WiFi y se denominan Wi-Drives. Funciones Añadidas. El disco duro necesita un circuito impreso y una controladora, para convertir del formato originario a USB, Firewire, WiFi u otro protocolo. A veces además se amplían las capacidades y permite grabar de una Cámara miniDV directamente y él mismo crea los ficheros dentro del disco duro. Pueden ser formateados como cualquier otro disco duro interno. ELECTROTECNIA 277 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Otros son discos duros multimedia player y permiten guardar videos como si fuese un disco duro normal y reproducirlos conectando una salida de video que llevan al televisor, sin necesidad de ningún otro aparato añadido y con una menor dificultad de traslado. Protección. La carcasa y el propio disco duro portátil de 3,5" suelen preservarse de caídas o golpes mediante una funda protectora de airfoam, como las utilizados para proteger las videoconsolas. Unidad externa que utiliza un disco de 2.5" y una carcasa con conexión USB para alimentación y transferencia. ELECTROTECNIA 278 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CAPÍTULO 10 10 CONFIGURACIÓN E INSTALACIÓN DE SOFTWARE EN UNA PC En este capítulo se tratará: Instalación Física de los Dispositivos en el Case del Computador. Configuración Lógica CMOS BIOS SETUP. Configuración del SETUP de una PC. Preparación del Disco Duro. Historia de los sistemas operativos de Microsoft. Requisitos mínimos para la instalación del sistema operativo. Instalación de Sistema Operativo. Drivers. Instalación del software aplicativo. ELECTROTECNIA 279 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CONFIGURACIÓN E INSTALACIÓN DE SOFTWARE EN UNA PC. Instalación Física de los Dispositivos en el Case del Computador. En una computadora se realiza la instalación física de las compupartes en forma correcta y siguiendo todas las normas que recomienda el ISO 9001 en relación a la calidad de los productos. Para hacer la explicación práctica hemos tomado como ejemplo un modelo PIII. Es importante indicar que el método que se indica, es solamente producto de la experiencia en el campo de soporte técnico para computadoras. a) Presentación de las compupartes a ensamblar, ver figura adjunta. b) Es importante que el técnico o especialista en computadoras proceda a utilizar una pulsera antiestática, que permite proteger las compupartes de la estática que genera el cuerpo humano. La pulsera tiene un terminal tipo cocodrilo el cual se instala sobre el case CPU, como se muestra en la figura mostrada. c) Es importante verificar los tipos de tornillos y soportes de plástico y metal para asegurar las tarjetas, unidades de disco, la fuente de poder switching y la tapa del case CPU. ELECTROTECNIA 280 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I d) Case CPU tipo MIDI tower usado en el ensamblaje del computador. e) Vista interior del case CPU donde se instalaran los dispositivos de computo. ELECTROTECNIA 281 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I f) Placa base a instalar y los soportes de plástico instalados. g) Preparación de la bandeja interna del case CPU y presentación de la placa base sobre la bandeja interna. h) Instalación y aseguramiento de la placa base sobre la bandeja interna del case CPU. i) Vista de la placa base instalada dentro del case CPU. ELECTROTECNIA 282 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I j) Deposito de la grasa térmica siliconada y la colocación de la grasa térmica en chip CPU. k) Instalación del microprocesador sobre el zócalo ZIF CPU. l) Instalación del cooler y la memoria sobre los bancos DIMM. m)Tarjeta controladora gráfica y su instalación sobre el respectivo slot. ELECTROTECNIA 283 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I n) Instalación del flat del disco duro sobre la placa base y el disco duro, conexión de la energía eléctrica en el disco duro. o) Instalación del flat de la disquetera sobre la placa base y su conexión en la disquetera ya además de la conexión de l cable de energía eléctrica. p) Conector de energía eléctrica de la fuente de poder switching ATX y su instalación en la placa base. q) Cables del panel frontal que se instalaran en la placa base. ELECTROTECNIA 284 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Configuración Lógica CMOS BIOS SETUP. Se conoce por setup la configuración de los parámetros (variables de operación) de algunos elementos de la tarjeta madre por medio de los Servicios Básicos de Entrada y Salida (BIOS) de la misma. Estos ajustes se realizan mediante el programa de SETUP, al que se accede generalmente mediante la tecla <BORRAR> o <DELETE> durante el arranque. En algunas computadoras se accede al SETUP mediante otra tecla (o combinación de teclas), lo que se informa al inicio del arranque. Este mensaje lo genera el programa de arranque (BOOT) almacenado en la memoria ROM del BIOS, generalmente en idioma inglés: HIT <DEL> TO ENTER SETUP (o un texto similar). En casos excepcionales no aparece en la pantalla durante el proceso de arranque, debiéndose consultar al Manual de Usuario o probando las teclas más usuales: <DELETE>, <ESC>, <F2> a veces combinada con <ALT> o <CONTROL>. Otros diseños de computadoras en sus placas base tiene el chip BIOS que utiliza otras formas de ingreso al CMOS BIOS SETUP, tal como se muestra en la siguiente tabla: ELECTROTECNIA 285 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Las tecnologías difieren notablemente según la fecha de fabricación de la tarjeta madre, y aunque no existe tampoco uniformidad en los parámetros de operación, analizaremos los más comunes y los conceptos básicos de la configuración, sin profundizar en detalles. Secciones SETUP: Típicas. Es importante indicar que para ingresar a los comandos primero hay que selecciona el comando y presione la tecla <ENTER> para ingresar al comando. Sí desea salir del comando presione la tecla <ESC>. También es importante saber que para cambiar las opciones se utiliza normalmente las teclas <AvPag.> (o <RePag>). o <+> (o <−>) del teclado numérico STANDARD CMOS SETUP: Aquí se ajusta la hora y fecha, los parámetros de las unidades IDE (discos duros o CD), unidades de disquete, y tipo de video. Se recomienda realizar la autodetección de las unidades IDE de modo que se almacenen sus parámetros específicos y no dejar el ajuste AUTO, con la finalidad de agilizar el proceso de arranque. Algunas tarjetas (obsoletas) no realizan la autodetección IDE, otras lo realizan desde el menú principal del setup, mientras las más modernas lo incluyen dentro de esta sección. Debe realizarse la autodetección siempre que se cambie o agregue una unidad, comprobando su reconocimiento por el BIOS. Si alguna unidad no es reconocida, puede deberse a fallos de contacto en cualquiera de los extremos de los conectores IDE, o en la alimentación, o en los jumpers que determinan la condición de MASTER o ESCLAVO de las unidades IDE. La descripción de los subcomandos, de este comando se realiza a continuación: ELECTROTECNIA 286 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Fecha y hora. Pues eso, la fecha y la hora. Recuerda que si tienes Windows 95 OSR2 o Windows 98 más una placa base de última generación ésta será la hora que te aparecerá en la barra de tareas de Windows, así que pon la correcta). Primary Master/Primary Slave/Seconday master/Secondary Slave: Si el BIOS es de ultima generación, se recomienda dejar en el subcomando TYPE AUTO para quitarte problemas (lo detecta todo correctamente) y pasa al siguiente apartado. Si no tienes auto, sigue leyendo: TYPE: 1-46.- son discos duros predefinidos; USER es el introducido por el usuario o el detectado por el IDE HDD AUTO DETECTION (recomendamos usarlo), y AUTO es lo que hemos dicho en el párrafo anterior. a) CYLS, HEAD, SECTOR. Son los cilindros, cabezas y sectores. Es muy importante saberlo, especialmente si la opción IDE HDD AUTO DETECTION nos presenta las tres opciones del MODE (NORMAL, LARGE y LBA). Si no los sabes, ya puedes ir comenzando a desmontar el ordenador y mirar la pegatina del disco duro. b) PRECOMP Y LANDZ. Son dos valores arbitrarios y casi podemos meter el número que nos dé la gana sin que afecte al rendimiento. Se puede poner un 0 (cero) en ambos casos, y en el segundo también un 65535. Por ejemplo, el LANDZ es el lugar donde se coloca el brazo lector del disco duro al principio. c) MODE. Es el método de acceso a los discos duros. NORMAL es el modo de acceso tradicional, para discos duros de capacidades menor o igual a 528MBb, LBA es el modo de acceso para capacidades mayores de 528MB y LARGE es el modo de acceso para discos duros de capacidad de 528MB. sin LBA. Al menos ésta es la teoría, pues nosotros tenemos un disco IDE de 6,3GB. y el IDE HDD AUTO DETECTION sólo muestra la opción NORMAL. También aparece una opción AUTO para que lo detecte solo. FLOPPY DRIVE A / FLOPPY DRIVE B. Con esto pondremos el tipo de unidad de disquete que se está utilizando en ese momento, con una relación entre el tamaño del disquete y su tamaño en pulgadas. Si tienes una sola unidad recuerda ponerla como A: y dejar la B: vacía ELECTROTECNIA 287 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I BIOS FEATURES SETUP. Diversos ajustes se realizan en esta sección: la protección de antivirus del BIOS, el caché interno y externo, la secuencia de arranque, los ajustes del teclado, la habilitación de las distintas opciones de memoria-sombra (shadow) y algunas secuencias variables del programa de arranque. No debe activarse la protección antivirus del BIOS ya que puede ocasionar conflictos con el programa antivirus que se instale. Debe verificarse la activación de los cachés internos y externos (siempre que la tarjeta cuente con éste último), y seleccionar una secuencia de arranque rápida y eficiente: si no se va a arrancar habitualmente por disquete, NO debe dejarse la secuencia de arranque que comienza por A:, para evitar un indeseado intento de arranque por un disquete que inadvertidamente quede en la unidad, ocasionando un inesperado mensaje de ERROR EN DISCO. Las secciones de memoria shadow del BIOS y de video deben quedar activadas, ya que contribuyen a una mayor velocidad de operación. Si no se activan, las funciones se ejecutarán desde la memoria ROM, que es más lenta que la memora RAM de sombra. Aquí suelen diferir unas BIOS de otras. Primero pondremos las opciones de una BIOS moderna y después las de una BIOS un poco más antigua: a) Boot Sector Virus Protection: Hay que dejarlo en DISABLED sobre todo cuando instalamos el Windows. b) 1st Boot Device/2nd Boot Device/3rd Boot Device/4th Boot Device: Decide el orden en que quieres que el ordenador reconozca las unidades con los archivos de arranque (recuerda que son el COMMAND.COM, IO.SYS y MSDOS.SYS). Dichas opciones pueden ser: IDE 0: Arranca desde el disco IDE maestro en el canal primario. IDE 1: Arranca desde el disco IDE maestro en el canal segundario. IDE 2: Arranca desde el disco IDE esclavo en el canal primario. IDE 3: Arranca desde el disco IDE esclavo en el canal secundario. • Floppy: Arranca desde la(s) unidad(es) de disquete. • ARMD FDD/ARM HDD: Arranca desde una unidad LS-120 o ZIP, o desde un disco IDE maestro en el canal primario. • CDROM: Arranca desde una unidad CD-ROM ATAPI (según nuestras pruebas, puede ser IDE o SCSI). • SCSI: Arranca desde una unidad SCSI (según lo tengamos en la BIOS de la controladora SCSI). ELECTROTECNIA 288 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I • Network: Arranca desde la red. TRY OTHER BOOT DEVICES: Prueba otras opciones que no haya sido posible incluir en las 4 anteriores. QUICK BOOT. Recomendamos poner DISABLED. Lo que hace botear rápidamente cuando el ordenador está encendido. La opción DISABLED da tiempo para pulsar la tecla <Del> (es decir, SUPR) mientras hace el test de memoria, y espera durante 40 segundos a recibir alguna señal del disco duro IDE (en el caso de que lo tengamos configurado, aunque este tipo suele ser mucho menor si lo está correctamente. ENABLED hace no espere a reconocer el disco IDE, y si no recibe una señal inmediatamente no lo configurará. Tampoco podremos arrancar la BIOS pues no saldrá el mensaje de pulsar la tecla <Del>. En este último caso, para entrar en la BIOS tendremos que apagar y encender el ordenador con el botón frontal. ABOVE 1 MB. MEMORY TEST (solo sale si la anterior opción está en ENABLED). Permite testear o no más allá del MB. de memoria. Recomendamos dejarlo en ENABLED, ya que si no hace el test podemos tener problemas. BOOT UP NUMLOCK STATUS. Si esta ON hace que las teclas de la calculadora del teclado funcionen como números, y OFF funcione funcionen como flechas. FLOPPY DRIVE SWAP. Si está en ENABLED cambia la unidad A: por la B: sin tener que hacerlo con el cable físico. Normalmente déjalo en DISABLED. FLOPPY DRIVE SEEK. Solo se coloca en ENABLED cuando se desea realizar el BOOT por la disquetera, caso contrario siempre debe estar en DISABLED FLOPPY ACCESS CONTROL y HARD DISK ACCESS CONTROL. Determinan el tipo de acceso a su respectiva unidad. Las opciones son READ/WRITE o READ-ONLY (Escritura/Lectura o Sólo Lectura). Si no es por alguna extraña razón, déjalo siempre en READ/WRITE ELECTROTECNIA 289 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I PS/2 MOUSE SUPPORT. Permite con ENABLED activar el soporte para un ratón del tipo PS/2 y con DISABLED dejarlo para que funcione enchufado en un puerto serie. En el caso de que exista un jumper en la placa base, habrá que unir las patillas 2- 3 para activar el soporte PS/2 (normalmente este jumper no suele existir). PRIMARY DISPLAY. Es el tipo de monitor conectado al ordenador. Puede ser MONO, CGA 40x25, CGA 80x25, VGA/EGA o ABSENT (Ausente). Tienes un monitor digamos "normal" pon VGA/EGA si no quieres tener algunos efectos indeseados. PASSWORD CHECK. También llamada SEGURITY OPTION: Sirve para poner una contraseña. Tiene tres opciones: ALWAYS es para ponerlo al iniciar un ordenador (se queda el llamado "prompt" y guión parpadeante esperando a que lo introduzcamos), SETUP (sólo sale al entrar en la BIOS) o DISABLED (recomendado) para desactivarlo. BOOT TO OS/2. Por esta opción en ENABLED si tienes el sistema operativo OS/2 y quieres que use más de 64MB. de la memoria del sistema. Si no tienes OS/2, déjalo en DISABLED EXTERNAL CACHE. Permite usar la caché L2 de la placa base. Recomendamos altamente poner ENABLED, aunque si tienes problemas no tendrás más remedido que dejarlo en DISABLED. SYSTEM BIOS CACHEABLE. Cuando se pone en ENABLED (altamente recomendable) el segmento de memoria F0000h puede ser escrito o leído en la memoria caché. El contenido de este segmento de memoria se copia siempre de la ROM de la BIOS a la RAM del sistema para una ejecución más rápida. VIDEO SHADOW. Cuando se pone ENABLED, la BIOS se copia a la memoria del sistema e incrementa la velocidad de vídeo. Puede tener 2 ó 3 opciones: si tiene ENABLED y DISABLED, ponlo en ENABLED; y si tiene ENABLED, CACHED y DISABLED, pon CACHED. Activarlo puede dar problemas en sistemas operativos de 32 bits. Las direcciones de memoria C8000-CBFFF Shadow / ELECTROTECNIA 290 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CC000-CFFFF Shadow / D0000-D3FFF Shadow / D40000-D7FFF Shadow / D8000-DBFFF Shadow / DC000-DFFFF Shadow, nos indican lo distintos datos extendidos localizados en la ROM que se copian a su respectivo rango de direcciones en la memoria el sistema. Normalmente está puesto en DISABLED (lo recomendamos para usuarios INEXPERTOS - NORMALES), aunque los más EXPERTOS o simplemente para probar poner algunas opciones en ENABLED a ver qué pasa. • Otras opciones: CPU INTERNAL CACHE. Sirve para activar la caché interna del micro, y siempre hay que ponerlo en ENABLED. IDE HDD BLOCK MODE. Transfiere los datos por bloques, y lo soportan los discos de más de 100MB. GATE A20 OPTION. Referente a la RAM, ponlo en ENABLED MEMORY PARITY CHECK. Hay que ponerlo en DISABLED para las memorias sin paridad (lo más normal), y ponlo en ENABLED para verificar el bit de paridad de la memoria RAM. Las únicas memorias con paridad suelen estar en 486s o Pentium de marca como los IBM. TYPEMATIC RATE SETTING. Si esta en ENABLED permite configurar la velocidad de repetición y estados de espera del teclado. TYPEMATIC RATE (CHARS/SEC). Hay que poner el número máximo (30) para conseguir más caracteres por segundo. TYPEMATIC DELAY (MSEC). Hay que poner el mínimo (250) para que el tiempo de espera sea el mínimo. NUMERIC PROCESSOR. Para activar el coprocesador matemático. Desde los 486 DX la opción está obsoleta. ELECTROTECNIA 291 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CHIPSET FEATURES SETUP. Su contenido varía sustancialmente según la tecnología, e incluye los intervalos de temporización electrónica. Se recomienda dejar activada su configuración automática, o leer cuidadosamente el manual de la tarjeta si se desea optimizar el ajuste manual de estos parámetros. Este es el apartado donde más difieren unas BIOS con otras, y es el campo más peligroso y donde quizás puede exprimirse más el rendimiento. Si es una BIOS de las antiguas aquí se incluirá la próxima opción de "PCI/PNP SETUP". No cambies estas opciones si no estás seguro, de hecho, verás que algunas opciones son tan complejas que ni siquiera nosotros las sabemos: USB FUNCION. Permite activar o desactivar el soporte USB (Universal Serial Bus), Ponlo en ENABLED si dispones de un sistema operativo que lo soporte, como Windows 95 OSR2 + USB Support, Windows 95 OSR2.1 o Windows 98. Si no, déjalo en DISABLED. USB LEGACY SUPPORT. Con ENABLED se tiene un teclado y ratón USB. Como lo normal hoy día es no tenerlo, déjalo en DISABLED. SDRAM CAS LATENCY. Tiene las opciones 3, 2, AUTO. Se recomienda colocarlo en AUTO. DRAM DATA INTEGRITY MODE. Tiene dos opciones: ECC (si lo soportan los módulos de memoria) y PARITY (si no lo soporta). DRAM TIMING LATENCY: LOW, FAST, NORMAL. Es el tiempo que tarda el sistema en responder a las llamadas de la memoria. Prueba en FAST si no tienes problemas y no pierdes estabilidad. Suele traer también una opción AUTO. PIPE FUNCTION. La opción por defecto es ENABLED (leer en otras opciones de este mismo comando). ELECTROTECNIA 292 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I GATED CLOCK. Esto sirve para controlar el reloj interno del bus de datos de la memoria. Si está en ENABLED el reloj nunca para, cuando está en DISABLED se parará el reloj automáticamente si no hay activar en el bus de datos de la memoria. Pon la opción que quieras, no sabemos cuál es la mejor. GRAPHIC APERTURE SIZE. Decide el tamaño del buffer de frames programable. Esta región no debería sobrepasar al tamaño de RAM instalada, así que pon un número igual o menor. Cuanto mayor sea, mejor irá. VGA FRAME BUFFER. Pues eso, el rango de memoria del buffer de frame. Colocarlo en ENABLED. VGA DATA MERGE. Unir las palabras lineales del ciclo del búfer de frames. Ni idea para qué sirve, por si acaso déjalo en DISABLED. PASSIVE RELEASE. Sirve para activar un mecanismo del puente sur cuando es PCI Master. La revisión PCI 2.1 requiere que este campo esté activado. Sólo para usuarios experimentados. Nosotros lo tenemos en ENABLED y parece que va bien, ponlo tú también sobre todo si tienes un dispositivo PCI 2.1 ISA MASTER LINE BUFFER. Desactiva o desactiva el buffer lineal del ISA Master. Prueba a ponerlo en ENABLED. DELAY TRANSACTION. El tiempo para contactar con PCI 2.1. Échalo a suertes, pero por si acaso escoge DISABLED. AT BUS CLOCK. Sólo afecta al ISA. Esta opción se usa para selecciona las configuraciones I/O del reloj del bus. Las configuraciones posibles surgen de acuerdo con variar el reloj del sistema, por ejemplo, en un sistema con una velocidad de bus de 50MHz, selecciona PCICLK/6 que podría resultar en un bus de velocidad de 8,33MHz. No conviene sobrepasar este valor, como mucho 10 ó 12, ya que las tarjetas ISA funcionan a 8MHz o menos. Por si esto es muy complicado, déjalo en AUTO. ELECTROTECNIA 293 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Otras opciones: PIPE FUNCTION. La ejecución de una instrucción de maquina se lleva en varias etapas (algunas maquinas pueden tener entre 5 y 9 etapas). Entonces cuando la CPU termina de ejecutar la primera etapa de una instrucción comienza a ejecutar la segunda etapa, pero también empieza a ejecutar la primera etapa de la siguiente instrucción y así sucesivamente. Claramente este método de ejecución es mas rápido, que si se hicieran una de tras de otra completamente. L2 CACHE POLICY. Prueba a poner el modo WRITE BACK, que es mejor que WRITE THRU DRAM READ/WRITE TIMING.- Poner el valor mínimo si la memoria es de alta velocidad (10-15ns), para memoria EDO (x222) y para memoria NO EDO (x333). POWER MANAGEMENT SETUP. Configura las diversas variantes del sistema de ahorro de energía. Una computadora que permanezca conectada durante horas pero incluya continuos periodos de inactividad, puede resultar beneficiosa la activación del sistema de ahorro de energía. Debe tenerse en cuenta que algunas desconexiones realizadas por este sistema pueden ocasionar demoras en la rehabilitación del servicio cuando se envían las señales mediante el Mouse, el teclado o el módem. La configuración que se adopte debe adecuarse al régimen de operación. Si la placa es una ATX de las nuevas, tendrás muchas opciones, tan curiosas como encender el ordenador por una llamada de teléfono. General para todas las opciones: STANDBY MODE. El reloj de la CPU irá a una velocidad más baja, se desconectarán los disquetes y el disco duro, y el monitor se apagará. SUSPEND MODE. Todos los dispositivos excepto la CPU se apagarán. Cada modo de ahorro de energía tiene su respectivo contador. Cuando el contador llegue a cero, el equipo entrará en modo de ahorro de energía. Si se detecta alguna señal o evento durante la cuenta atrás, el contador vuelve al principio de nuevo. ELECTROTECNIA 294 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I NOTA PARA USUARIOS DE WINDOWS 95 OSR2 y 98: Recomendamos poner los contadores en DISABLED para que no interfieran con los contadores de estos sistemas operativos, además de dejarlo todo en SUSPEND, pues SUSPEND incluye a STANDBY. Vayamos ahora con las opciones propiamente dichas: POWER MANAGEMENT / APM. Colocar esta opción en ENABLED para activar las funciones de administración de energía del chipset y APM (Administración Avanzada de Energía), especialmente si dispones de Windows 95 OSR2 o 98. GREEN PC MONITOR POWER STATE. Sirve para apagar los monitores compatibles con Greep PC. Las opciones son OFF, STANDBY, SUSPEND y DISABLED. VIDEO POWER DOWN MODE. Para apagar el subsistema de vídeo y ahorrar energía. Las opciones son STANDBY, SUSPEND y DISABLED. HARD DISK POWER DOWN MODE. Desconecta los discos duros. Las opciones son las tres del apartado anterior. STANDBY/SUSPEND TIMER UNIT y STANDBY TIMEOUT. Son los contadores que os hablábamos antes, el primero para el modo SUSPEND y el segundo para el modo STANDBY. Ponlo en DISABLED para usar los del Windows. SYSTEM EVENT MONITOR BY. Trae unas cuantas opciones, prueba a ponerlas en YES. POWER BUTTON FUNCION. Explica el funcionamiento del botón de encendido externo. SOFT OFF es lo normal, apaga o enciente el ordenador. GREEN, en cambio, hace que el ordenador entre en Green Mode. RING RESUME FROM SOFT OFF. Cuando se activa, el sistema puede salir del modo inactivo por una señal de teléfono del MODEM. ELECTROTECNIA 295 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I RTC ALARM RESUME. Decide una hora para que el ordenador salga del modo de suspensión automáticamente. Si no lo vas a usar ponlo en DISABLED, o, en el caso de que lo uses pero no quieras poner fecha, pon el DISABLED en Date. PNP/PCI CONFIGURATION. Configura la activación de las señales de Plug and Play (PnP), y la asignación de recursos a los conectores PCI de la tarjeta madre. Deben dejarse los ajustes predeterminados, y modificarse solo en casos excepcionales de conflictos de recursos u otras condiciones inusuales. Estas opciones sirven para arreglar nuestros queridos conflictos de hardware. En las BIOS más antiguas, cuando el Plug and Pray no estaba difundido, entonces solían estar incluidos en el apartado CHIPSET SETUP. PLUG AND PLAY AWARE O/S. Si tenemos un sistema operativo Plug and Play instalado (Windows 95/98) ponerlo en YES. CLEAR NVRAM ON EVERY BOOT. Cuando se pone en YES, los datos de la NVRAM se borrar en cada proceso de arranque (boot). Recomendamos que lo pongas en NO. PCI LATENCY TIMER (PCI CLOCKS). Son los tiempos de retardo en acceder a los dispositivos PCI instalados en el respectivo bus. Las opciones son 32, 64, 96, 128, 160, 192, 224, 248. Prueba a ponerlo en el mínimo, 32. PCI VGA PALETTE SNOOP. Sirve para poder hacer que varias tarjetas VGA operen a la vez en diferentes buses (PCI e ISA), y que puedan extraer datos de la CPU simultáneamente. El bit 5 del registro de comandos del espacio de configuración del dispositivo PCI es el bit 0 del VGSA Palette Snoop (0 es DISABLED). Pon las opciones según lo siguiente: ELECTROTECNIA 296 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I • DISABLED. Los datos leídos y escritos por la CPU sólo se redireccionan a los registros de la paleta del PCI VGA. Es decir, que si tienes una tarjeta gráfica PCI o AGP tendrás que poner esto. • ENABLED.- Los datos leídos y escritos por la CPU se dirigen al registro de paleta del dispositivo PCI VGA y del ISA VGA, permitiendo que los registros de paleta de ambos dispositivos sean idénticos. La opción también tiene que estar puesta en ENABLED si alguna tarjeta ISA instalada en el sistema requiere VGA Palette Snooping. OFFBOARD PCI IDE CARD. Especifica si existe un controlador PCI IDE externo en el ordenador. También debes especificar el slot de expansión PCI de la placa base cuando instalas la tarjeta controladora PCI IDE. Si se usa alguna controladora de este tipo, la controladora IDE de la placa base automátivamente se desactiva. Las opciones son DISABLED, AUTO, SLOT1, SLOT2, SLOT3, SLOT4, SLOT5 o SLOT6. Si se selecciona AUTO se determina el parámetro correcto, lo que fuera los IRQs 14 y 15 a un slot PCI del PCI local bus. Esto es necesario para soportar tarjetas PCI IDE no compatibles. OFFBOARD PCI IDE PRIMARY IRQ. Esta opción especifica la interrupción PCI usada por el canal IDE primario en la controladora externa PCI IDE. Las configuraciones son DISABLED (ponlo si no tienes controladora IDE externa), HARDWIRED, INTA, INTB, INTC o INTD. OFFBOARD PCI IDE SECONDARY IRQ. Como el anterior, pero el canal secundario. Esta opción especifica la interrupción PCI usada por el canal IDE secundario en la controladora externa PCI IDE. Las configuraciones son DISABLED (ponlo si no tienes controladora IDE externa), HARDWIRED, INTA, INTB, INTC o INTD. ASSIGN IRQ TO PCI VGA. Pon esta opción en YES para asignar una IRQ al controlador VGA en el bus PCI. Las configuraciones son YES o NO. PCI SLOT 1/2/3/4 IRQ PRIORITY. Estas opciones especifican la prioridad IRQ para los dispositivos PCI instalados en los slots de expansión PCI. Las configuraciones son AUTO, (IRQ) 3, 4, 5, 7, 9, 10 y 11, por orden de prioridad. Si tus dispositivos son Plug and Play, poner los en AUTO. ELECTROTECNIA 297 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I DMA CHANNEL 0/1/3/5/6/7. Te permite especificar el tipo de bus usado por cada canal DMA. Las opciones son PnP o ISA/EISA. Pon PnP si todos tus dispositivos son Plug and Play. IRQ 3/4/5/7/9/10/11/12/14/15. Estas opciones especifican al bus que la línea IRQ está usada. Estas opciones te permiten reservar IRQs para las tarjetas ISA, y determinan si se debería quitar una IRQ para cedérselas a esos dispositivos configurables por la BIOS. El conjunto de IRQs disponibles se determina leyendo el ESCD NVRAM. Si se deben quitar más IRQs del conjunto, el usuario debería usarlas para reservarlas a un ISA/EISA y configurarlo en él. El I/O se configura por la BIOS. Todas las IRQs usadas por el I/O en la placa están configuradas como PCI/PnP. IRQ12 sólo aparece si la opción de Mouse Support está en DISABLED. IRQ14 y IRQ15 sólo estarán disponibles si el PCI IDE en la placa está activado. Si todas los IRQs están puestas en ISA/EISA e IRQ14 y 15 están asignados al PCI IDE de la placa, IRQ9 todavía estará disponible para los dispositivos PCI y PnP, debido a que al menos un IRQ debe estar disponible para ellos. Las opciones son ISA/EISA o PCI/PnP. RESUMEN. Si todos los dispositivos de vuestro equipo son Plug & Play, os recomendamos personalmente poner PCI/PnP en todas las IRQs. INTEGRATED PERIPHERALS. Configuración de los puertos IDE, UDMA, PCI, USB, y los SERIALES y PARALELOS. Si solamente se utiliza el canal IDE PRIMARIO no debe dejarse activado el funcionamiento del canal SECUNDARIO, y la función UDMA debe activarse únicamente si el disco duro está habilitado para esta tecnología. En esta sección es frecuente ajustar la variante del puerto paralelo (SPP, ECP o EPP) que debe responder a los requerimientos de la impresora que se instale. ONBOARD IDE. Esta opción especifica el canal IDE usado por el controlador IDE de la placa. Las opciones son ENABLED/AUTO/BOTH, PRIMARY, SECONDARY y DISABLED. A veces desactivar el segundo canal suele dar problemas porque Windows lo detecta y coloca uno de sus signos de interrogación amarillos. Por fin, las últimas opciones. En BIOS antiguas estas opciones están incluidas en Chipset Setup ELECTROTECNIA 298 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ONBOARD FLOPPY CONTROLLER. Activa o desactiva la disquetera. Si tienes disquetera, ponlo en ENABLED. Onboard Serial Port. Estos campos configuran los puertos serie en la tarjeta. Hay varias direcciones de puerto y canales IRQ que pueden ser seleccionados: • 3F8/IRQ4: Dirección de puerto 3f8h, IRQ 4 • 2F8/IRQ3: Dirección de puerto 2f8h, IRQ 3 • 3E8/IRQ4: Dirección de puerto 3e8h, IRQ 4 • 2E8/IRQ3: Dirección de puerto 2e8h, IRQ 3 AUTO (recomendado). La BIOS asigna automáticamente direcciones de puerto y canales IRQ automáticamente. DISABLED. Desactiva el puerto serie. Esto es especialmente útil si necesitamos la IRQ3 o la 4 para el módem. SERIAL PORT 2 MODE. Esta opción especifica el modo de operación para el segundo puerto serie. Sólo aparece si la opción ONBOARD SERIAL PORT 2, está puesta en AUTO o DISABLED. Las opciones son IR (infrarrojos) o NORMAL. IR TRANSMITTER. Esta opción especifica el tipo de transmisión usada por los dispositivos infrarrojos conectados al segundo puerto serie. Esta opción sólo aparecerá si la opción ONBOARD SERIAL PORT 2 está en AUTO o DISABLED. Las opciones son 1.6 μseg. o 3/16 Baudios. No hay opciones por defecto. IR DUPLEX MODE. Esta opción especifica el tipo de transmisión usada por los dispositivos infrarrojos conectados al segundo puerto serie. Esta opción sólo aparecerá si la opción ONBOARD SERIAL PORT 2 está en AUTO o DISABLED. Las opciones son HALF o FULL (suponemos que es similar al full duplex o half duplex de las tarjetas de sonido). No hay opciones por defecto. IR RECEIVER POLARITY. Esta opción especifica el tipo de recepción osada por los dispositivos infrarrojos conectados al segundo puerto serie. Esta opción sólo aparecerá si la opción ELECTROTECNIA 299 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ONBOARD SERIAL PORT 2 está en AUTO o DISABLED. No hay opciones por defecto. ONBOARD PARALLEL PORT. Este campo configura el puerto paralelo de la placa. Hay varias direcciones de puerto y canales IRQ que pueden ser seleccionados. • 378/IRQ7: Dirección de puerto 378, IRQ 7 • 278/IRQ5: Dirección de puerto 278, IRQ 5 • 3BC/IRQ7: Dirección de puerto 3BC, IRQ 7 DISABLE.- Desactiva el puerto paralelo PARALLEL PORT MODE. Esta opción especifica el modo del puerto paralelo. Las opciones son: • NORMAL. Se usa el modo del puerto paralelo normal. • Bi-Dir. Usa este campo para soportar transferencias bidireccionales en el puerto paralelo. • EPP. El puerto paralelo puede ser usado con dispositivos que contemplan la especificación Enhanced Parallel Port (EPP). EPP usa las señales del puerto paralelo existente para ofrecer transferencia de datos bidireccional y asimétrica conducida por la unidad del host. • ECP. El puerto paralelo puede ser usado con dispositivos que contemplan la especificación Extended Capabilites Port (ECP). ECP usa el protocolo DMA para ofrecer datos de transferencia hasta 2,5 Megabits por segundo. ECP ofrece comunicación bi-direccional simétrica. • EPP VERSION. Especifica el número de versión usado para la especificación Enhanced Parallel Port. Esta opción sólo aparece si modo del puerto paralelo está puesto en EPP. Las configuraciones son 1.7 o 1.9. • ECP/EPP (recomendado). Da igual que el dispositivo del puerto paralelo no soporte ni ECP ni EPP. Tú ponlo aquí. • PARALLEL PORT DMA CHANNEL. Esta opción sólo aparece si modo del puerto paralelo está puesto en ECP. Esta opción configura el canal DMA usado por el puerto paralelo. Las opciones son DMA CHANNEL 0, 1 ó 3. • PARALLEL PORT IRQ. Esta opción especifica el IRQ usado por el puerto paralelo. Las opciones son AUTO (recomendado), (IRQ) 5 o (IRQ) 7. LOAD BIOS DEFAULTS. Realiza un conjunto de ajustes que corresponden a la configuración de requerimientos mínimos, y es la más segura. Pero debe adoptarse únicamente si la máquina no arranca o falla con el ajuste de requerimientos máximos, puesto que baja su velocidad y degrada su operación. ELECTROTECNIA 300 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I LOAD SETUP DEFAULTS (o MAXIMUM PERFORMANCE). Realiza un conjunto de ajustes que corresponden a la configuración de requerimientos máximos y es más rápida. Debe adoptarse siempre que no existan fallos en el arranque y el funcionamiento se estabilice. USER PASSWORD. Permite la modificación de la clave de acceso al arranque o al programa SETUP. En caso que la clave quede activada y se olvide, la tarjeta madre dispone de un jumper que permite la descarga de la memoria CMOS con lo que se borran todos los ajustes incluyendo la clave de acceso. Autodetecta la presencia y parámetros de las unidades IDE (disco duro y CD). En algunos casos esta función está incorporada dentro de la sección de STANDARD CMOS DEFAULT. Generalmente hay dos formas de salir del SETUP: SAVE & EXIT SETUP. Salvar en la memoria CMOS los cambios realizados, y salir. EXIT WITHOUT SAVING. Salir sin salvar, manteniendo la configuración anterior. Generalmente ambas opciones están disponibles en el menú principal del SETUP, y la segunda puede alcanzarse pulsando repetidamente la tecla <DELETE> (<BORRAR>). En cualquiera de las dos formas se presenta un diálogo que solicita la validación de la forma de salida. Una deficiente configuración del SETUP puede ocasionar fallos en el arranque o un funcionamiento inestable o errático, si la configuración excede a las posibilidades de los componentes o por el contrario un funcionamiento degradado (lento) si no se aprovechan sus potencialidades, por lo que deben seguirse las indicaciones del manual de la tarjeta madre escogiendo las opciones que garanticen un funcionamiento estable con la máxima velocidad alcanzable y que se ajuste al régimen de funcionamiento previsto. Preparación del Disco Duro. Prepara un disco duro consiste en realizar las siguientes actividades: • Formato Físico. ELECTROTECNIA 301 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I • Sistema de Archivos. • Formato Lógica. a) Formato Físico. Es la geometría del disco fijo o extraíble, consiste en realizar en forma lógica pistas concéntricas y sobre estas pistas colocar en forma lógica los sectores de 512 Bytes de capacidad, ver figura: ELECTROTECNIA 302 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I b) Sistema de Archivos.- El sistema de archivos o la tabla de particionamiento del disco duro magnético consisten en definir espacios lógicos denominados clusters en KB y cantidad de bits en el sistema de archivos, estos se denominan FAT, NTFS y otros más referidos al sistema operativo a instalarse. FAT, significa Tabla de Asignación de Archivos. El sistema de archivos es el lugar donde se ubican las áreas de control y almacén de datos, por ejemplo para el sistema operativo DOS se utiliza el sistema de archivos FAT16, mientras que para los sistemas operativos gráficos: Windows 95/98/Me, incluido el Windows XP usan el sistema de archivos FAT32, así como para el Windows Server es el sistema de archivos NTFS ¿Qué significa el sistema de archivos FAT16? FAT16, tiene dos significados, primero que la FAT utiliza 16 bits y segundo que los datos ya sean de mayor o menor valor en KB, siempre utiliza un valor fijo de 16KB en su cluster. Por ejemplo se tienen dos datos, el primero es el dato1 de 37KB de capacidad y el segundo dato es el dato2 cuyo valor es 17KB se tienen que almacenar en un disco magnético con FAT16, ver solución. En la figura mostrada se observa que para almacenar del dato1 de 5kB necesitamos usar un cluster de 16kB, lo cual indica utilizar un gran espacio para un dato pequeño y que el siguiente dato se guardará en otro cluster de 16kB, según sea su peso en KB y no puede utilizar el espacio libre de 11kB del cluster del dato anterior, así mismo observe los que sucede con el dato2, para el valor de 17kB se usan dos cluster de 16kB que corresponde al uso de 32kB en el disco duro, esto indica que a FAT16 no tiene flexibilidad de datos sobre sus clusters. . ELECTROTECNIA 303 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ¿Qué significa el sistema de archivos FAT32? FAT32, tiene dos significados, primero que la FAT utiliza 32 bits y segundo que los datos se instalan en cluster cuya capacidad nominal es de 4kB, pero también pueden utilizar cluster con capacidades de 8kB, 16kB y 32kB. Se puede observar en el ejemplo que para almacenar 1kB se usa el valor nominal de 4kB, esto significa el uso mínimo de espacio, lo cual es muy conveniente para almacenar datos. El disco duro soporta dos o mas particiones, por ejemplo la partición del disco duro a por DOS, puede soporta dos particiones que son la Partición Primaria en la cual se ubica la unidad de disco física y la Partición Extendida, la cual se ubican las unidades lógicas de disco, ver figura: ELECTROTECNIA 304 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I c) Formato Lógico. Este formato define las áreas de control y datos en el disco duro. El área de control esta ubicado en la pista cero (0) y contiene tres partes muy importantes, que son la Boot, la FAT y la Root, ver figura: Particionar el disco duro. Los programas habituales para particionar un disco duro son FDISK (proporcionado con MS-DOS y los sistemas operativos Windows), el Diskmanger y Partition Magic (programa comercial válido para MS-DOS, Windows y OS/2). a) FDISK. Las distintas versiones de FDISK se pueden clasificar básicamente en dos: las que trabajan únicamente con FAT (FDISK de MS-DOS y Windows 95) y las que también soportan FAT32 (FDISK de Windows 95 OSR2 y Windows 98). En este último caso, FDISK preguntará al arrancar si se desea habilitar el soporte para unidades de gran capacidad. Si respondemos que sí a esta pregunta, las particiones que se creen serán FAT32; en caso contrario, serán FAT. Es decir, una partición es FAT32 o FAT no según la herramienta que se utilice para formatear la unidad, sino según el método utilizado al particionar. FDISK presenta importantes limitaciones: no se puede crear una partición extendida sino existe ya una partición primaria FAT o FAT32 en la unidad; no se pueden variar las particiones creadas sino es borrándolas y creándolas de nuevo; y sólo permite trabajar con particiones FAT o FAT32. Advertencia: El borrado de una partición implica la pérdida de todos sus datos. Uso de FDISK. Iniciar el computador por la unidad “A:”, sin compatibilidad con el CDROM y luego digite FDISK y presione ENTER ELECTROTECNIA 305 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I A:\>fdisk <enter> El programa FDISK carga a nivel de DOS y muestra la siguiente mensaje: Este mensaje nos indica dos actividades importantes, si el disco duro es menor o igual a 512MB, escoger la opción “N”, que define el uso de la FAT16. Pero si el disco duro es mayor que 512MB, escoger la opción “S”, que define el uso de la FAT32. ELECTROTECNIA 306 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ELECTROTECNIA 307 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I ELECTROTECNIA 308 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Historia de los sistemas operativos de Microsoft. La historia de Microsoft se remonta hasta cuando Bill Gates conoció a Paul Allen y en 1975 decidieron montar su propia empresa a la que llamaron Microsoft. El primer logro de Microsoft se da en 1980, cuando IBM esta en búsqueda de un sistema operativo para su IBM PC; Microsoft con poco tiempo compra el sistema operativo y lo rebautiza con el no mbre de MS-DOS y le vende la licencia a IBM. Afortunadamente para Microsoft el IBM PC es un éxito, el resto de fabricantes lo imitan y piden la licencia de uso del MSDOS. En 1985 Microsoft le agrega al DOS un interface grafica de usuario (GUI) y le denomina Microsoft Windows, como fue creada después del MacOS de Apple; estaba limitada debido a los recursos legales impuestos por Apple, que impedían a Microsoft plagiar el producto (papelera de reciclaje, superposición de las ventanas, etc.). En 1990 Microsoft vuelve a la senda del éxito con la versión Microsoft Windows 3.0, luego lo ratifica en 1992 con el Microsoft Windows 3.1 y luego con Microsoft Windows for Workgroups, a la que posteriormente se denominaría Microsoft Windows 3.11. El 24 de agosto de 1995, Microsoft lanzó el sistema operativo Microsoft Windows 95. Con Windows 95 Microsoft quiso transferir algunas capacidades de MSDOS a Windows. Sin embargo, esta nueva versión se basaba demasiado en el DOS de 16 bits y todavía tenía las limitaciones del sistema de archivos FAT16, por lo que no era posible usar nombres largos para archivos. Después de algunas revisiones menores de Windows 95, denominadas Windows 95A OSR1, Windows 95B OSR2, Windows 95B OSR2.1 y Windows 95C OSR2.5, Microsoft lanzó la siguiente versión de Windows el 25 de ELECTROTECNIA 309 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I junio de 1998: Windows 98. En un principio, Windows 98 admitía en forma nativa otras o pciones además de las de MSDOS, pero todavía se basaba en éste. Además, Windows 98 contaba con poco manejo de memoria cuando se ejecutaban múltiples aplicaciones. Esto podía ocasionar fallas en el sistema. El 17 de febrero de 2000 salió al mercado una segunda edición de Windows 98. Se llamó Windows 98 SE ("Second Edition" [Segunda edición]). El 14 de septiembre de 2000, Microsoft lanzó Windows Me (por Millennium Edition [Edición del milenio]), también conocida como Windows Millenium. Windows Millenium se basó en gran parte en Windows 98 (y por lo tanto, en MS-DOS), aunque añadió capacidades adicionales de multimedia y de software. Asimismo, Windows Millennium incluía un mecanismo de restauración del sistema para volver a un estado anterior en caso de caída del sistema. Al mismo tiempo que lanzaba estas versiones, Microsoft había estado vendiendo (desde 1992) un sistema operativo completo de 32 bits (que no se basaba en MS-DOS) para uso profesional, en una época en la que en las compañías se utilizaban principalmente sistemas centrales. Se llamaba Windows NT (por Windows "New Technology" [Nueva tecnología]). Windows NT no era una nueva versión de Windows 95 ni una mejora de éste, sino un sistema operativo totalmente diferente. El 24 de mayo de 1993, se lanzó la primera versión de Windows NT. Se la denominó Windows NT 3.1. A ésta le siguió Windows NT 3.5 en septiembre de 1994 y Windows 3.51 en junio de 1995. Con Windows NT 4.0, que salió a la venta el 24 de agosto de 1996, Windows NT se volvió un verdadero éxito. En julio de 1998, Microsoft lanzó Windows NT 4.0 TSE (Terminal Server Emulation). Éste fue el primer sistema de Windows que permitió que los terminales se pudieran conectar a un servidor, es decir, usar clientes lig eros para abrir una sesión en el servidor. El 17 de febrero de 2000, a la siguiente versión de NT 4.0 se le dio el nombre de Windows 2000 (en lugar de Windows NT 5.0) para resaltar la unificación de ELECTROTECNIA 310 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I los sistemas "NT" y "Windows 9x". Windows 2000 es un sistema entero de 32 bits con características de Windows NT, un administrador de tareas mejorado y una compatibilidad total con periféricos USB y FireWire. El 25 de octubre de 2001, llegó al mercado Windows XP. Esta versión fue una fusión de los sistemas operativos anteriores. Las ediciones comercializadas de este sistema operativo son Windows XP home, Windows XP Profesional y Windows XP 64. El 24 de abril de 2003, Microsoft lanzó un sistema operativo para servidores Windows Server 2003, las ediciones de este sistema comercializadas son: Windows Server 2003 Edición Estándar, Windows Server 2003 Edición Enterprise, Windows Server 2003 Edición Datacenter, Windows Server 2003 Edición Web. Estas están disponibles en 32 y 64bits El 2006, Microsoft lanzó un sistema operativo Windows Vista, las ediciones de este sistema comercializadas son: Windows Vista Starter, Windows Vista Home (Básica y Premium), Windows Vista Enterprise, Windows Vista Bussines, Windows Vista Ultimate. Estas ediciones están disponibles en 32 y 64bits El 25 de abril de 2007, Microsoft lanzó un sistema operativo para servidores Windows S, las ediciones de este sistema comercializadas son: Windows Server 2008 Edición Estándar, Windows Server 2008 Edición Enterprise, Windows Server 2008 Edición Datacenter, Windows Server 2008 Edición Web. Estas están disponibles en 32 y 64bits ELECTROTECNIA 311 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I El 22 de octubre de 2009, Microsoft lanzó al mercado el sistema operativo Windows 7, las ediciones de este sistema comercializadas son: Windows 7 Starter, Windows 7 Home Premium, Windows 7 Enterprise, Windows 7 Professional, Windows 7 Ultimate. Estas ediciones están disponibles en 32 y 64bits Requisitos mínimos para la instalación de sistemas operativos de modo grafico. Todos los sistemas operativos de modo grafico establecen requisitos mínimos de hardware que debe poseer una computadora para que pueda ser instalado. Estos requisitos mínimos se han ido incrementando al incorporar en los sistemas operativos funciones graficas más avanzadas. Los componentes de hardware que solicita un sistema operativo, para su instalación son básicamente cuatro: Modelo y/o velocidad del microprocesador. Capacidad de memoria RAM. Espacio libre en el disco duro. Capacidad de memoria RAM de video. El desarrollo de este sistema operativo se le encargo al equipo más exitoso de Microsoft, el equipo de desarrollar Office 2007, liderado por Steven Sinofsky en julio del 2007. Lo primero que hizo Sinofsky fue correr las cortinas Longhorn (Windows Vista), es decir trabajar en un diseño nuevo basado en las necesidades de los usuarios que simplifique los procesos. Aparece en el mercado en octubre del 2009. Sus principales distribuciones son: WINDOWS 7 STARTER EDITION: Sólo para los fabricantes de equipos originales (OEM) que vendan equipos nuevos. Sin interfaz de usuario ni Aero. Sólo permitirá correr 3 programas simultáneamente. WINDOWS 7 HOME BASIC: Sólo en mercados emergentes. Sin interfaz de usuario ni Aero. WINDOWS 7 HOME PREMIUM: Para todo el mundo, fabricantes de equipos originales (OEM) y tiendas. Incluye interfaz de usuario y Aero. Soporte para ELECTROTECNIA 312 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I multi-touch (Pantalla Táctil). Añade juegos “premium”. Multimedia (Media Center, Reproducción de DVD, y más). WINDOWS 7 PROFESSIONAL: Para todo el mundo, fabricantes de equipos originales (OEM) y tiendas. Incluye todas las características de Windows 7 Home Premium. Mejor capacidad para trabajar en Red. Mayor protección de datos, con EFS. WINDOWS 7 ENTERPRISE: Sólo para empresas. Incluye todas las características de Windows 7 Professional. Añade BitLocker. WINDOWS 7 ULTIMATE: Disponibilidad limitada para fabricantes de equipos originales (OEM) y tiendas. Incluye todas las características de Windows 7 Enterprise. Instalación del Sistema Operativo. La instalación del sistema operativo se realiza utilizando los siguientes Métodos. a) Instalación Directa. Este método consiste en instalar colocando el DVD en la lectora, después de haber preparado el disco duro, aplicando la siguiente grafica: ELECTROTECNIA 313 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I b) Clonación del Disco Duro. Este método consiste en utilizar un programa que permite hacer la clonación entre dos discos duros, de tal manera que un disco duro tiene todo los programas instalados y el segundo esta solamente preparado, por ejemplo podemos utilizar el programa GHOST del NORTON el cual permite realizar dicha clonación, el método es el siguiente: • Hacer la conexión física de los discos duros, por ejemplo el origen es SLAVE y el destino es MASTER. • Copiar el programa GHOST en el disco duro MASTER y proceda activar el ghost PROCEDIMIENTO DE INSTALACION DEL SISTEMA OPERATIVO. Método utilizando la unidad de CD y/o DVD. El instructor en el laboratorio o taller podrá utilizar el CD y/o DVD para la demostración de la instalación de un sistema operativo, aquel sistema operativo que se adecue a los recursos de hardware con que cuente el taller o laboratorio. Aunque todos los sistemas operativos no se instalan de la misma manera, los procedimientos son similares. Para este manual utilizaremos el sistema operativo más actualizado de Microsoft Windows 7, para lo cual utilizaremos el siguiente método. Ingresar al programa BIOS setup, configure como primera opción de booteo a la unidad de DVD de la PC. Insertamos en la unidad de DVD, el DVD con Windows 7. Guardamos los cambios realizados en el programa BIOS SETUP. Al reiniciar el equipo nos muestra un mensaje para presionar cualquier tecla para continuar con la instalación. ELECTROTECNIA 314 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Seleccionamos en la opción Formato de hora y moneda, español Perú. Luego hacemos un clic en el botón siguiente. Hacemos un clic en el botón Instalar ahora, para continuar con la instalación del sistema operativo. En esta ventana también podemos encontrar opciones muy útiles para reparación del sistema operativo (en la opción Reparar el Equipo). Donde podremos reparar el booteo del sistema, recuperación del sistema, recuperación de imagen, etc. Marcamos la opción Acepto términos de Licencia, para poder continuar con la instalación. Recuerde que la licencia es una autorización proporcionada por Microsoft para que podamos instalar el sistema operativo en nuestra PC, esta se nos da como un código de 25 caracteres de 5 campos. ELECTROTECNIA 315 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Elegimos la opción de instalación Personalizada (avanzada). Para poder instalar desde el DVD insertado en la unidad de DVD. Hacemos un clic en el botón opciones de unidad, el cual desplegara los botones Eliminar (que nos permiten eliminar unidades de disco), Nuevo (que nos permite crear unidades de disco o particiones), Extender (que nos permite redimensionar unidades de disco o particiones). En resumen en esta ventana se muestra el generador de particiones que incluye es sistema operativo. ELECTROTECNIA 316 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Luego de crear las unidades de disco, debemos formatear cada una de ellas, para lo cual seleccionamos la unidad y hacemos un clic en el botón formatear. Luego de formatear nos muestra la ventana y hacemos un clic en ACEPTAR. Seleccionamos la unidad del disco duro donde se instalara el sistema operativo, hacemos un clic en el botón siguiente, en esta etapa de la instalación se debe completar cuatro procesos: Copia de los archivos de Windows 7 del DVD en la RAM en forma temporal. Expandiendo los archivos de la RAM para copiarlos en el disco duro. Instala las principales características, del sistema. Instala algunas actualizaciones del sistema. Luego de concluir estos cuatro procesos la PC se reiniciara. Esta etapa tardará varios minutos. Luego de cargar el sistema, debe completar la instalación. Esta etapa tardara varios minutos. En la siguiente etapa nos pide que pongamos un nombre de usuario (nombre de la persona que utilizara la PC, aunque podrían ser mas de una) y el nombre del equipo (nombre que le daremos a la PC, el cual es muy importante si la PC será parte de una red de computadoras). ELECTROTECNIA 317 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Luego nos pedirá una que coloquemos una contraseña para el usuario creado que le permita utilizar la PC. Pero si no queremos ponerle contraseña hacemos un clic en el botón siguiente. En la ventana para la para la actualización del sistema, podemos seleccionar cualquiera de las tres opciones. Elegimos la opción recomendada por que nos permite proteger mejor el sistema. Para que una PC este bien protegida de los virus y programas peligrosos, debe tener las últimas actualizaciones del sistema operativo y las firmas de los antivirus actualizado, ambos procedimientos requiere que la PC posea acceso a internet. En la siguiente ventana, configuramos nuestra zona horaria, fecha y hora de nuestra PC. En el caso nuestro elegiremos muestra zona horaria (Bogotá, Lima, Quito), la fecha y la hora la toma de la configuración realizada en el programa BIOS-SETUP. Esperamos que cargue el primer escritorio del sistema operativo. ELECTROTECNIA 318 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I DRIVERS. Definición: Es un software o programa que sirve de intermediario entre un dispositivo de hardware y el sistema operativo. Su finalidad es la de obtener el máximo de funcionalidades de diseño del dispositivo. Como existen una gran cantidad de dispositivos hardware como consecuencia existe una gran cantidad de driver y estos pueden ser innovados (actualizado), para obtener nuevas funcionalidades. También tenemos que tener en cuenta que los drivers pueden funcionar con uno o más sistemas operativos específicos, para decirlo en palabras simples los controladores se instalan según el Windows que utiliza tu PC. Esto significa que si cambias de Sistema operativo en tu computadora, tendrás que verificar si necesitas también actualizar los drivers, para obtener el máximo rendimiento. Configuración de los Drivers: Luego de instalar el sistema operativo debemos observar si los divers fueron configurados en el proceso de instalacion del sistema operativo. Si no fueron configurados es neceario utilizar otras tecnicas para su configuracion que pueden ser: a. Configuración con CD autorun: Consiste en utilizar el CD y/o DVD proporcionado por el fabricante del componente de hardware, el cual al ser colocado en lector de CD y/o DVD carga un programa que de manera sencilla permite la configuración del componente. Para este manual utilizaremos como ejemplo la manera de configurar los componentes incorporados en una placa base. Coloque el CD con los Drivers, y espere que le muestre el menú del CD, en el que debe seleccionar el o los compones que va a configurar. ELECTROTECNIA 319 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I En la ventana anterior hemos seleccionado para que se configure los componentes de la tarjeta madre, tarjeta de sonido, tarjeta de Red. Hacemos un clic en instalar ahora y esperamos que concluya la estalación, cada vez que configura un componente la PC se reiniciará. b. Configuración con CD sin autorun. Si el DC con los drives del componente no posee autorun o fueron descargados de internet es necesario. Haga un clic en el icono Mi PC botón y elija la opción administrar. El administrador del equipo de Windows 7 posee varias herramientas como por ejemplo la creación de usuario y grupos locales, administrador de discos y el administrador de dispositivos. ELECTROTECNIA 320 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I En la ventana administrador del equipo local, buscamos la herramienta Administrador de dispositivos. La cual nos muestra todos los componentes de nuestra PC, que han sido configurados en la instalación del sistema operativo, los que necesitan los driver de los fabricantes y los que han sido configurados de manera incorrecta. En el sistema operativo Windows 7 los componentes no reconocidos se muestran en la opción otros dispositivos, como un símbolo amarillo junto con el componente. Hacemos un clic con el botón secundario para desplegar el menú de opciones, donde elegimos la opción ACTUALIZAR SOFTWARE DE CONTROLADOR ELECTROTECNIA 321 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I En la siguiente ventana elegimos la opcion Buscar automaticamente el controlador actualizado. Esperamos que cargue los archivos para finalizar la configuracion. Este procedimiento se realiza para cada uno de los componentes no configurados por el sistema operativo. INSTALACIÓN DE SOFTWARE APLICATIVO. Maquinas Virtuales. Definición: Tambien demominadas virtual machines es un contenedor de software perfectamente aislado que puede ejecutar sus propios sistemas operativos y programas de aplicaciones como si fuera un PC física. Se comporta exactamente igual que lo hace una PC física y cuenta con su propio CPU, RAM, disco duro y tarjetas de interfaz de red (NIC) virtuales. El sistema operativo establece una diferencia entre una máquina virtual y una máquina física, tampoco lo pueden hacer las aplicaciones o las PCs de una red. Incluso la propia máquina virtual considera que es un ordenador “real”. Sin embargo, una máquina virtual se compone exclusivamente de software y no contiene ninguna clase de componente de hardware. El resultado de ello es que las máquinas virtuales ofrecen una serie de ventajas con respecto al hardware físico. Virtualización. La virtualización una tecnología que te permite transformar hardware en software, es decir crear en una PC o servidor fisico múltiples PCs virtuales, cada una trabaja de estas maquinas virtuales trabajan de manera totalmente independiente. Donde cada maquina virtual debida configurada funcionara exactamente igual que un servidor o PC física. ELECTROTECNIA 322 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Existen dos formas como los progrmas de virtualizacion, realizan el procedimiento de virtualizacion: Virtualización de plataformas: consiste en separar un sistema operativo de los recursos de la plataforma subyacente. Virtualización de recursos: consiste en la virtualización de recursos específicos del sistema, como la memoria virtual, el almacenamiento virtual comúnmente usado en redes de almacenamiento (Storage Area Networks, SAN), las interfaces de red virtuales o las redes virtuales Cuando virtualizamos debemos entender que se crean dos tipos de sistemas operativos una en la PC fisica y otra en la PC virtual, a estos sistemas operativos se le denomina anfitrión e invitado. Ambos conceptos se refieren a nuestro sistema operativo: Sistema Operativo Anfitrión: Es aquel que esta instalado en la PC fisica, que no va ha permitir instalar nuestro programa de virtualización, es el que asignará o prestará determinados recursos de hardware a la máquina virtual que creemos. Sistema Operativo Invitado: Es aquel que esta instalado en la PC virtual que hemos creado, mediante nuestro programa de virtualización y al cual hemos asignado determinados recursos para su funcionamiento. ELECTROTECNIA 323 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Programas de Virtualización. Existen varios programas de virtualizacion los cuales pueden trabajar en diferentes sistemas operativos anfitriones, y puden utilizar diferentes sistemas operativos invitados. a. Virtual PC. Inicialmente llamado Microsoft Virtual PC, en Windows 7 renombrado Windows Virtual PC, es un programa desarrollado por Connectix y comprado por Microsoft para crear ordenadores virtuales. Es decir, su función es emular un hardware sobre el que funcionen varios sistemas operativos. Con esto se puede conseguir ejecutar varios sistemas operativos en la misma máquina a la vez y hacer que se comuniquen entre ellos. Posee soporte para sistemas operativos anfitriones e invitados de 32 o 64 bits. Los requisitos de la PC con el sistema operativo anfitrion deben ser: Microprocesador de la fanilia x86: Athlon / Phenom (AMD), Pentium 4/ i3 / i5 /i7 (Intel) con una cache L2=2MB. Lector CD-ROM o DVD. Pantalla Super VGA (800x600) o de resolución mayor. Teclado y mouse compatibles. Memoria RAM del sistema de 2GB o superior. Sistema operativo anfitrión: Windows XP SP3 o superior. El programa de virtualizacion virtual PC, toma del sistema operativo anfitrion el hardware del equipo, el hardware (CPU, Memoria RAM del sistema, Tarjetas video, etc.). Este programa de virtualización es ideal para sistemas operativos invitados de microsoft en cualquiera de sus versiones: Windows 2000 / XP / 2003 / Vista / 2008 / 7. Su principal desventaja es que no permite utilizar pen drivers. ELECTROTECNIA 324 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I b. VMWare. Es un programa de virtualizacion desarrollado por VMware Inc. filial de EMC Corporation que proporciona la mayor parte del software de virtualización disponible para ordenadores compatibles X86. VMware utiliza una virtualizacion por software que crea directamente una capa de software en el hardware de la PC anfitriona o en su sistema operativo. Esta capa de software crea máquinas virtuales y contiene un monitor de máquina virtual al que se denomina hipervisor, en esta podemos asignar recursos de hardware de forma dinámica y transparente, para poder ejecutar varios sistemas operativos de forma simultánea en una PC física. Este programa ademas nos permite crear una infraestructura virtual. Una infraestructura virtual consiste en el mapping dinámico de recursos físicos en función de las necesidades, es decir representa los recursos físicos de la totalidad del entorno de TI, aglutinando ordenadores x86, así como su red y almacenamiento asociados, en un pool unificado de recursos de TI. Entre este software desarrolado por VMWare tenemos VMware Workstation, y los gratuitos VMware Server y VMware Player. El software de VMware puede trabejar con sistemas operativos invitados de Microsoft Windows 2000 / XP / Vista /2003 / 7 / 2008, diferentes distribuciones de Linux, y con sistemas Operativos Mac OS X que corre en procesadores INTEL, bajo el nombre de VMware Fusion. Este programa posee una versión con licencia y una versión de prueba de 30 días o también llamado SHEWARE. Para esta demostración utilizaremos de la instalación y uso del programa WMWARE, utilizaremos la versión SHEWARE que podemos descargar de la página web: http://downloads.vmware.com/d/info/desktop_downloads/vmware_workst ation/7_0 ELECTROTECNIA 325 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I AUTOEVALUACIÓN No 10 1. Defina Configuración de software .................................................................................................................... .................................................................................................................... .................................................................................................................... .................................................................................................................... 2. Defina Instalación de software .................................................................................................................... .................................................................................................................... .................................................................................................................... .................................................................................................................... 3. ¿ Qué es el SETUP? .................................................................................................................... .................................................................................................................... .................................................................................................................... .................................................................................................................... 4. ¿ Qué se puede configurar en el SETUP? .................................................................................................................... .................................................................................................................... .................................................................................................................... .................................................................................................................... .................................................................................................................... .................................................................................................................... 5. ¿ Cómo ingresaste al SETUP en la computadora del Laboratorio? .................................................................................................................... .................................................................................................................... .................................................................................................................... .................................................................................................................... 6. ¿ Todas las computadoras tienen la misma forma de ingresar al SETUP? .................................................................................................................... .................................................................................................................... .................................................................................................................... .................................................................................................................... .................................................................................................................... .................................................................................................................... ELECTROTECNIA 326 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I CAPÍTULO 11 11 MANTENIMIENTO PREVENTIVO Y DIAGNÓSTICO DE AVERIAS EN UNA PC En este capítulo se tratará: Mantenimiento preventivo a los dispositivos. Diagnóstico de Averias en la PC. ELECTROTECNIA 327 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I MANTENIMIENTO PREVENTIVO Y DIAGNÓSTICO DE AVERÍAS EN UNA PC. Mantenimiento Preventivo a los Dispositivos. a. Tarjeta Madre. Las mejores herramientas para esta labor son una brocha de cerdas rígidas limpia, una aspiradora y un producto limpiador (alcohol isopropílico). Utilice la brocha para remover el polvo adherido a los componentes para que la aspiradora pueda a su vez quitarlo. Aunque se debe de aspirar todo el polvo que se encuentre dentro del sistema hasta donde sea posible (sin exagerar al remover puentes, disipadores adheridos por pegamento o grapas, etc.), hay que poner especial énfasis en las siguientes áreas: Ventilador del CPU: Éste puede acumular casi tanto polvo como la fuente de poder, y como el CPU genera demasiado calor, es importante conservar limpio el ventilador para mantener en buen estado su capacidad de enfriamiento. Por lo tanto, si a simple vista se nota que éste ha sufrido deterioro por el paso del tiempo, o usted a notado que produce un ruido excesivo, será necesario que lo cambie, ya que el calentamiento excesivo en el CPU puede provocar fallos del sistema. Ranuras de Expansión (ISA, PCI y AGP): Al mantener el polvo fuera de estas ranuras se asegura una buena calidad de conexión, si se instala posteriormente una tarjeta adaptadora en la ranura. Una vez retirado el polvo excesivo se puede aplicar un producto que acabe de retirar la suciedad de la tarjeta y que normalmente contiene una sustancia desengrasante; esto sirve para evitar que pequeños residuos de grasa provoquen la acumulación temprana de polvo. SIMMs y DIMMs de Memoria RAM: Para poder limpiar los SIMMs y DIMMs es necesario desmontarlos de la Tarjeta madre, a continuación se explica cómo hacerlo: Extraer un SIMM no es una tarea muy difícil, para extraerlos de la ranura, basta con presionar las lengüetas laterales. Si no es posible hacerlo con los dedos, puede hacerse con la ayuda de un destornillador plano, teniendo mucho cuidado de no dañar ningún componente. En especial hay que evitar clavar el destornillador o rayar con él la superficie de la tarjeta madre. ELECTROTECNIA 328 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I El procedimiento para retirar el polvo de estos dispositivos es exactamente igual al estudiado con anterioridad (Tarjeta Madre), sólo habrá que añadir que en caso de que las terminales se encuentren sucias se recomienda limpiarlas con borrador, asegurándose de que no sea demasiado duro para no maltratar los terminales. Acto seguido se podrá aplicar sobre los mismos el producto desengrasante para eliminar cualquier residuo de grasa que pudiera existir. Se debe tener cuidado de tomar por los bordes los SIMMs y DIMMs para evitar posibles daños por descarga de electricidad estática generada por nuestro cuerpo. Es importante recalcar lo anterior ya que a veces estos dispositivos no se dañan de inmediato, pero se van degradando poco a poco, reduciendo así la vida útil de éstos. Una vez acabado el proceso de limpieza, hay que volver a colocar los SIMMs, lo cual implica un proceso donde habrá que observar que éstos tienen una pequeña muesca en uno de los lados y en la base de la ranura donde se inserta, hay una pequeña rebaba de plástico que permite insertar el modulo de la memoria únicamente cuando coincide con esta rebaba. Si esta operación se realiza correctamente, se empuja el módulo de memoria hasta que las lengüetas hacen un pequeño chasquido cuando se sitúan en su posición y aseguran el módulo de memoria. b. Unidades lectoras y de almacenamiento. Disco Duro : Por lo regular, no hay nada que hacer para limpiar un disco duro, de hecho, si se llegara a abrir un disco duro, en ese momento se haría inmediatamente inservible, ya que la mínima partícula de polvo o del medio ambiente, pueden destruir la cabeza de un disco duro. Por tanto, la limpieza del disco duro, solamente implica retirar el polvo depositado sobre la superficie externa con una brocha y aspiradora. Unidad Lectora de Disco Flexible: A diferencia de las cabezas de un disco duro, que se desplazan sobre el disco en un cojín de aire, las de una unidad lectora de disco flexible descansan sobre la superficie del medio magnético del disco flexible. De este modo, la cabeza tiene la tendencia a acumular en forma progresiva la suciedad del disco. Si las cabezas llegan a ensuciarse en demasía, la unidad no podrá leer ni escribir en el disco. ELECTROTECNIA 329 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I La limpieza de la unidad lectora no requiere que se desarme nada. En vez de ello, requiere de un limpiador especial, que se puede adquirir en cualquier tienda de productos de computación. El disco limpiador tiene el aspecto de un disco normal, sólo que la parte interior de la cubierta del disco está hecha de una tela suave y porosa en lugar del substrato plástico/ magnético empleado en un disco normal. El conjunto de limpieza incluye un líquido (Alcohol Metílico) que se aplica en la tela del disco. Posteriormente se introduce este disco en la unidad lectora y se intentará tener acceso a él, mediante el comando DIR A: si está en ambiente de DOS, o presionar dos veces el botón izquierdo del ratón en la unidad A: de la ventana de Mi PC, en Windows 95, 98 y Windows NT 4.0. c. Fuente de Alimentación. Nunca abra la fuente de poder para tratar de limpiar el interior, aunque se puede y debe aspirar el polvo de los orificios laterales de la fuente. Esto ayuda al buen funcionamiento del ventilador de la misma y lo capacita para sacar más aire del gabinete. Además en la parte posterior de la fuente de poder, se puede aspirar el polvo acumulado sobre la superficie de las aspas del ventilador. Tal vez sea posible retirar temporalmente la protección de alambre que lo cubre (si es movible), para poder tener acceso a las aspas y remover el polvo con la brocha de cerdas firmes y finalizar con la aspiradora, pero asegúrese de volver a colocar la protección cuando haya acabado la limpieza. d. Tarjetas en el Sistema. Para poder realizar la limpieza de estos dispositivos será necesario desmontarlos de las ranuras de expansión, lo cual sólo implica retirar un tornillo que fija la tarjeta a la estructura del gabinete y evita que se desprenda. El procedimiento para retirar el polvo de estos dispositivos es exactamente igual al estudiado con anterioridad (Tarjeta Madre), sólo debe añadirse que en caso de que las terminales se encuentren sucias se recomienda limpiarlas con un borrador, asegurándose de que no sea demasiado duro para no maltratar los terminales. Acto seguido se podrá aplicar sobre los mismos el producto desengrasante para eliminar cualquier residuo de grasa que pudiera existir. Se debe tener cuidado de tomar por los bordes laterales las tarjetas para evitar posibles daños por descarga de electricidad estática generada por nuestro cuerpo. Es importante recalcar lo anterior ya que a veces estos ELECTROTECNIA 330 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I dispositivos no se dañan de inmediato, pero se van degradando poco a poco, reduciendo así la vida útil de éstos. El proceso de montaje de las tarjetas, al igual que el desmontaje no representa mayor problema más que introducir la tarjeta a su ranura, la mayor dificultad consistiría en que entrara muy ajustada, pero incorporando primero una de las esquinas y después el resto de la tarjeta en la ranura se soluciona el problema, “asegúrese de que inserta la tarjeta en la ranura adecuada”. e. Monitor. En ningún momento cuando se habla de mantenimiento preventivo, se debe de pensar en que se va a abrir el monitor para limpiarlo. El monitor contiene condensadores de alta capacidad eléctrica que pueden producir un peligroso y hasta mortal choque eléctrico incluso después de haberlo apagado y desconectado. En vez de ello, hay que concentrarse en limpiar el exterior del monitor y la pantalla. Generalmente se ocupa una buena solución limpiadora de cristales para limpiar, no solamente el vidrio de la pantalla, sino también el gabinete. Hay que ocupar un lienzo libre de pelusa y vaciar el limpiador sobre el lienzo, no sobre el cristal. Esto evitará que el fluido escurra y se introduzca en el espacio entre el cristal y el gabinete. Lo anterior es muy importante recalcarlo ya que no se debe de introducir el fluido al interior del gabinete, porque podría provocar un corto circuito en el monitor. f. Teclado. Es sorprendente la cantidad de suciedad que se puede llegar a acumular en un teclado. La operación de soplado del teclado se debe de realizar en un lugar aparte del sitio donde generalmente trabaja con su computadora, y para evitar que eventualmente este polvo y suciedad regrese, utilice la aspiradora para juntar el polvo. Aunque normalmente no se necesita desarmar el teclado para limpiar el polvo, tal vez se necesite desarmar para limpiar alguna cosa que se haya derramado en él. Antes de limpiar dentro del teclado necesitará: - Un destornillador de cruz (estrella) para desarmar el teclado. - Brocha y aspiradora. - Alcohol isopropílico para limpiar y un lienzo libre de pelusas. El siguiente procedimiento sirve para limpiar a fondo el teclado: - Cierre el sistema y apague su computadora. ELECTROTECNIA 331 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I - Desconecte el teclado de la computadora y colóquelo de cabeza sobre una superficie de trabajo limpia y plana. Nota: Si planea desarmar el teclado y quitar las teclas para limpiar debajo de ellas, es una buena idea hacer un dibujo de la distribución del teclado. Puede utilizar posteriormente este dibujo para asegurarse de que tenga todas las teclas de vuelta en su posición correcta. - Teniendo cuidado de que no se caiga ninguna tecla, quite el dispositivo de las teclas del gabinete. - Si el teclado tiene una tarjeta de circuitos unida al dispositivo de las teclas , retírela y hágala a un lado (observe la manera en que está conectada dicha tarjeta). - Retire los tornillos que sostienen la placa metálica en la parte posterior del dispositivo del teclado. Ponga los tornillos en un recipiente, de manera que no se pierdan. - Levante cuidadosamente la placa. Lo que encontrará debajo de ella depende del diseño del teclado; la figura siguiente es una muestra bastante típica de lo que verá, alguna clase de circuito impreso. Con sumo cuidado levante y limpie los contactos de la tarjeta con el alcohol y el lienzo. ELECTROTECNIA 332 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I - Probablemente, habrá un tipo de almohadilla de hule entre el circuito impreso y la parte posterior de las teclas. Levante cuidadosamente ésta y limpie cualquier residuo de derrames de dicha almohadilla, así como de la parte posterior de las teclas. - Vuelva a ensamblar las almohadillas, el circuito impreso, la tarjeta del circuito y la placa metálica, después voltee el dispositivo para ponerlo al derecho nuevamente. - También sería una buena idea quitar las teclas y limpiar debajo de ellas. Las teclas deben botarse, pero no retire muchas a la vez, porque tendrá un gran problema tratando de deducir donde irían ciertas teclas. Limpie debajo de ellas con alcohol y un lienzo. Precaución: Algunas de las teclas tienen alambres de retención debajo de ellas. Es mejor que no los quite, porque puede ser difícil volver a colocar los alambres en los sitios correctos. Si tiene que quitarlos, tal vez le resulte más sencillo conectar primero el alambre a las teclas, y luego conectar el alambre y la tecla al teclado. Vuelva a ensamblar estas teclas antes de que coloque la cubierta de nuevo en el teclado, para facilitar el acceso a los alambres y conectores. ELECTROTECNIA 333 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I Diagnóstico de Averias en la PC. a. Tarjeta Madre. Si no inicia el sistema, una de las principales causas puede ser este: No detectar el disco duro o disquetera, debido a la falla del controlador IDE interno de la tarjeta o por la rotura del bus de datos o los conectores del bus (en ocasiones al ensamblarse la máquina se fuerza este conector y se llega a desoldar). Aunque a veces la fuente de voltaje es la causante, la cual no suministra la suficiente energía generalmente ocurre cuando un equipo se repotencia. Por ejemplo una 386 o 486 se convierte a Pentium una fuente de menos de 200 Watts no da la suficiente energía para que puedan funcionar todos los dispositivos al mismo tiempo. b. Fuente. Las principales fallas son: La fuente se quemó, pude ser ocasionada por un sobrevoltaje de tensión, debido a la falta de un buen estabilizador de voltaje. Posiblemente solo vuele el fusible de protección, en el peor de los casos puede quemar el puente de diodos, los transistores switching, las resistencias o los condensadores de entrada. Una forma de descarte que sea un problema de fuente es verificar que las luces del teclado se prendan y apaguen, que gire el ventilador trasero de la fuente, sentir que gire el disco duro. Si prendiera y luego escuchara un ruido como el rechinar de una puerta vieja al abrirse pero muy corto, entonces si es fuente, se está perdiendo potencia. El Switch de encendido puede estar roto (abierto). c. Memorias. Por lo general cuando dejan de funcionar no permiten que las computadoras levanten y emiten pitidos largos con interrupciones cortas, esto sucede cuando el procesador no llega a direccionar las primeras ELECTROTECNIA 334 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I posiciones de memoria address. Cuando una de las posiciones de memoria se encuentran pero no está dentro del primer mega de memoria el sistema levanta, pero generalmente no pasan el test de memoria propio de la tarjeta madre, en caso de hacerlo en las computadoras con DOS, cuando carga el config.sys, la línea de comando DEVICE=C:\DOS\HIMEM.SYS no es reconocida bota un error y no permite cargar la memoria superior con el EMM386.EXE, en este modo no se pude ejecutar Windows 3,1 ni muchos paquetes que requieran de memoria alta y los que no lo necesiten tal vez se cuelguen cuando no se estén ejecutando. Si lo logra ejecutar la carga es posible que se cuelgue con la primera aplicación que use más de dos ventanas o utiliza las aplicaciones multitarea. d. Tarjeta de Video. Cuando fallan emiten una serie de pitidos cortos y continuos durante un determinado tiempo, luego prosigue a la carga pero no hay video alguno por el monitor, en otras ocasiones carga pero sale el video en blanco y negro. En la mayoría de estos casos la memoria de video está seriamente afectada. En otros casos la memoria presenta sólo una dirección mala entonces solo se presentan los problemas en forma aleatoria, solo cuando se usa determinada posición, por lo general carga Windows y cuando va a cargar el escritorio se queda colgado el sistema durante un breve instante y se resetea. 0000 - 1000 1001 - 2000 2001 - 4000 X 3001 - 4000 4001 - 5000 5001 - 6000 En el gráfico la posición 3001 – 4000 está mal, cuando el programa utilice esta posición para poner sus datos y llevarlo a la tarjeta de video el sistema se colgará. ELECTROTECNIA 335 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I e. Disco Duro. Uno de los principales problemas son los sectores defectuosos, generalmente la forma más segura de poder ubicarlos es usando el Norton Disk Doctor, Scandisk, etc. Los sectores pueden ser lógicos o físicos, los lógicos generalmente son los vínculos cruzados, generados mayormente por temporales, el uso simple del disco duro o por causa de virus. Estos son fáciles de arreglar si utilizamos el Norton. Los físicos no, y es que en determinadas áreas de los platos del disco duro, el cabezal de lectura no puede tener acceso; mucho de estos son generados por subidas de tensión si es que no utilizan estabilizador. En otros casos suelen aparecer por el tiempo de uso del disco y por último debido a las fallas de fábrica. El disco duro trabaja directamente controlado por la tarjeta IDE integrada de la tarjeta Madre. Si tiene algún problema no lo va a detectar en forma automática con la opción Auto Detec HDD. f. Fax – Módem. Por lo general esta tarjeta no tiene ningún problema siempre y cuando haya sido bien configurada para no entrar en conflicto con otro dispositivo del CPU. Uno de los problemas usuales son las interrupciones, cuando usas el Módem se cuelga el mouse o la tarjeta de sonido deja de funcionar o viceversa. Esto se debe principalmente a que el mouse usa por lo general el COM1 con la interrupción 4 y si el Módem lo conectan en el COM3 este puerto utiliza la misma interrupción IRQ4 entonces el de menor prioridad deja de funcionar, esto también sucede cuando el Módem es Plug & Play y si lo configuran con IRQ5,7,9,10, puede entrar en conflicto con la SB que usa 5 o 10, Puerto de impresora LPT1, etc. g. Tarjeta de Sonido. Este dispositivo no presenta fallas de hardware sino mas bien de software; la mayoría de tarjetas actuales vienen con disquetes de instalación para Windows 95 entonces cuando se instala un nuevo dispositivo en la máquina automáticamente Windows lo detecta, pide el disco de instalación y el recto lo hace el ordenador, el problema está que cuando algunos usuarios borran ciertos archivos o directorios para liberar espacio si eliminan los controladores o drivers de estos, las tarjetas dejan de funcionar. ELECTROTECNIA 336 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I h. El CD – ROM. Windows tiene la característica de poder detectar los CD – ROM de modo protegido de Windows siendo descartados los disquetes de instalación del CD – ROM para el modo real o DOS (los cuales comen memoria), el problema son los virus Bench u otros virus que ataquen el Boot de arranque. Estos ocasionan que el Windows no pueda detectar el CDROM de modo protegido por lo que la mayoría d personas piensan que su CD’s están defectuosos o la unidad lectora se encuentra mala. Otro problema clásico del CD- ROM es su mantenimiento, el haz de láser se ensucia rápido si en que se logra infiltrar polvo dentro de la unidad de CDROM, si esto ocurre, se malogra y los costos de reparación son bastante elevados, la mejor forma de evitarlo es limpiando cada cierto tiempo con un CD de limpieza original de preferencia. La principal característica de sus fallas es que salgan mensajes constantes de error de lectura, o no se puede tener acceso a la unidad. ELECTROTECNIA 337 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I AUTOEVALUACIÓN N° 11 ● Conteste en forma breve las siguientes preguntas: 1.¿Mencione por lo menos 4 herramientas necesarias para el mantenimiento de una tarjeta madre? ...................................................................... ...................................................................... ...................................................................... ...................................................................... 2. ¿Por qué se puede quemar una fuente? ............................................................................................................................... ............................................................................................................................... ............................................................................................................................ 3. ¿Qué pasa si las cabezas de la unidad lectora llegan a ensuciarse en demasía? ............................................................................................................................... ............................................................................................................................... ............................................................................................................................ 4. ¿Cómo se hace el mantenimiento preventivo al teclado? ............................................................................................................................... ............................................................................................................................... ............................................................................................................................... ............................................................................................................................... ............................................................................................................................... ............................................................................................................................... ............................................................................................................................ 4. ¿Cómo podemos limpiar los SIMM’s y DIMM’s de memoria RAM? ............................................................................................................................... ............................................................................................................................... ............................................................................................................................ 5. ¿Qué podemos usar para ubicar los sectores defectuosos en un disco duro? ............................................................................................................................... ............................................................................................................................... ............................................................................................................................. ELECTROTECNIA 338 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE I BIBLIOGRAFIA 1. ABURTO C., Eddy. Ensamble y repare PENTIUM I-II-III. 2º Edición, Byte Ediciones, 2001. 2. SISTEMS UNI, Conozca y ensamble su PC. Editorial distribuidora Santa Clara. 3. Manuales de ENSAMBLAJE DE COMPUTADORAS del P.N.I. 4. www.geocities.com/SiliconValley/Peaks/2329/ 5. www.personal.redestb.es/juanhr/actuali1.htm 6. www.personal.redestb.es/juanhr/topsec.htm 7. www.salman-psi.com/hard/construi.htm 8. www.wikipedia.org ELECTROTECNIA 339 PROPIEDAD INTELECTUAL DEL SENATI PROHIBIDA SU REPRODUCCIÓN Y VENTA SIN LA AUTORIZACIÓN CORRESPONDIENTE SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO INDUSTRIAL ELECTROTECNIA FASCÍCULO DE APRENDIZAJE ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II CÓDIGO: 89001522 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II INDICE Contenido: Capítulo 1: Lenguaje de Programación .................................................. 9 Conceptos básicos sobre programación................................................................. 10 Lenguajes de alto nivel y de bajo nivel ................................................................... 10 Ensambladores, compiladores e Intérpretes .......................................................... 11 Pseudocódigo ......................................................................................................... 13 Diagrama de Flujo ................................................................................................... 13 Simbología y Significado ......................................................................................... 14 Capítulo 2: El lenguaje C ....................................................................... 16 Toma de Contacto con C ........................................................................................ 17 Escribir un texto en C .............................................................................................. 18 Como probar este programa en Windows .............................................................. 20 Capítulo 3: Identificadores .................................................................... 22 Identificadores ......................................................................................................... 23 Comentarios ............................................................................................................ 24 Tipos de Variables .................................................................................................. 24 Constantes .............................................................................................................. 26 Operadores ............................................................................................................. 27 Orden de prioridad de los Operadores ................................................................... 30 Expresiones ............................................................................................................ 31 Mostrar en pantalla números con decimales .......................................................... 32 Secuencia de Escape \n y otras ............................................................................. 33 Capítulo 4: Sentencias de Control de Programa ................................. 38 Sentencias de Control de Programa ................................................ 39 La sentencia IF ................................................................................ 39 IF y sentencias compuestas ............................................................ 40 La sentencia IF – ELSE ................................................................... 41 IFS Anidados ................................................................................... 42 Operador Condicional: ? .................................................................. 44 La sentencia SWITCH ..................................................................... 45 Capítulo 5: Bucles .................................................................................. 49 Bucles ...................................................................................................................... 50 ELECTROTECNIA 5 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II El bucle FOR ........................................................................................................... 50 Saliendo de un bucle FOR ...................................................................................... 51 Bucles Anidados ..................................................................................................... 52 Sentencia BREAK: Termina el bucle ...................................................................... 53 Sentencia CONTINUE: Fuerza la siguiente iteración ............................................. 54 Ejercicios resueltos de Reforzamiento y Razonamiento ........................................ 56 El bucle WHILE ....................................................................................................... 57 El bucle DO / WHILE............................................................................................... 59 Etiquetas y GOTO ................................................................................................... 61 Entrada / Salida Básica ........................................................................................... 62 Printf ........................................................................................................................ 63 Scanf ....................................................................................................................... 66 Putchar y Getchar ................................................................................................... 67 Capítulo 6: Funciones ............................................................................ 69 Funciones ................................................................................................................ 70 La Sentencia RETURN ........................................................................................... 70 Reglas de ámbito de las funciones ......................................................................... 74 Variables Locales .................................................................................................... 74 Parámetros Formales .............................................................................................. 74 Variables Globales .................................................................................................. 75 Algunas Funciones Útiles........................................................................................ 76 Funciones Matemáticas .......................................................................................... 77 Pero casi todo son funciones .................................................................................. 78 Capítulo 7: Estructura de Agrupamiento de Variables ....................... 81 Arrays y Cadenas .................................................................................................... 82 Arrays Unidimensionales ........................................................................................ 82 Cadenas de Caracteres (STRINGS)....................................................................... 85 Longitud de la Cadena ............................................................................................ 86 Entrada / Salida para cadenas: gets, puts .............................................................. 87 Asignando a una cadena el valor de otra ............................................................... 88 Comparando cadenas: STRCMP ........................................................................... 89 Otras funciones de cadenas: SPRINTF, SSCANF, STRSTR,… ............................ 91 Valor inicial de una cadena de texto ....................................................................... 93 Tablas Bidimensionales .......................................................................................... 93 Arrays Indeterminados ............................................................................................ 95 Estructuras .............................................................................................................. 95 Arrays de Estructuras .............................................................................................. 96 Estructuras Anidadas .............................................................................................. 97 ELECTROTECNIA 6 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Ordenaciones Simples .......................................................................................... 101 Método de Burbuja ................................................................................................ 101 Selección Directa .................................................................................................. 102 Inserción Directa ................................................................................................... 102 Capítulo 8: Punteros ............................................................................ 103 Punteros y Gestión Dinámica de Memoria ........................................................... 104 ¿Qué son los punteros? ........................................................................................ 105 Punteros y funciones: parámetros por referencia ................................................. 111 Punteros y Arrays .................................................................................................. 113 Arrays de Punteros ............................................................................................... 114 Punteros y Estructuras .......................................................................................... 115 Indirección Múltiple ............................................................................................... 116 Capítulo 9: Manejo de Ficheros .......................................................... 117 Escritura en un fichero de texto ............................................................................ 118 Lectura de un fichero de texto............................................................................... 119 Lectura hasta el final del fichero ........................................................................... 120 Ficheros con tipo ................................................................................................... 121 Leer y escribir letra a letra..................................................................................... 122 Modos de apertura ................................................................................................ 123 Ficheros Binarios .................................................................................................. 123 Acceder a cualquier posición de un fichero .......................................................... 127 Ficheros Especiales 1: La impresora .................................................................... 128 Ficheros Especiales 2: Salida de errores ............................................................. 129 Evitar los problemas de GETS .............................................................................. 131 Capítulo 10: Bibliotecas de Uso frecuente ......................................... 133 Llamadas al sistema: system ................................................................................ 134 Temporizacion ....................................................................................................... 134 Pantalla y teclado con Turbo C ............................................................................. 137 Bibliografia............................................................................................ 139 ELECTROTECNIA 7 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II ELECTROTECNIA 8 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II CAPÍTULO 1 1 LENGUAJE DE PROGRAMACIÓN En este capítulo se tratará: Conceptos básicos sobre programación. Lenguajes de alto nivel y de bajo nivel. Ensambladores, compiladores e intérpretes. Pseudocódigo. Diagrama de Flujo. Caracteristicas. Simbología y Significado. ELECTROTECNIA 9 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II LENGUAJE DE PROGRAMACIÓN CONCEPTOS BÁSICOS SOBRE PROGRAMACIÓN. Un programa es un conjunto de órdenes específicas para un ordenador. Estas órdenes se le deben dar en un cierto lenguaje, que el ordenador sea capaz de comprender. El problema es que los lenguajes que realmente entienden los ordenadores resultan difíciles para nosotros, porque son muy distintos de los que nosotros empleamos habitualmente para hablar o escribir. Escribir programas en el lenguaje que utiliza internamente el ordenador (llamado “lenguaje máquina” o “código máquina”) es un trabajo duro, tanto a la hora de crear el programa como (especialmente) en el momento de corregir algún fallo o mejorar lo que se hizo anteriormente. Por eso, en la práctica se emplean lenguajes más parecidos al lenguaje humano, llamados “lenguajes de alto nivel”. Normalmente, estos son muy parecidos al idioma inglés, aunque siguen unas reglas mucho más estrictas. LENGUAJES DE ALTO NIVEL Y DE BAJO NIVEL. Vamos a ver en primer lugar algún ejemplo de lenguaje de alto nivel, para después comparar con lenguajes de bajo nivel, que son los más cercanos al ordenador. Uno de los lenguajes de alto nivel más sencillos es el lenguaje VBASIC. En este lenguaje, escribir el texto “Hola Mundo” en pantalla, sería tan sencillo como usar la orden: MsgBox ("Hola Mundo") Otros lenguajes de programación, nos obligan a ser algo más estrictos, pero a cambio hacen más fácil descubrir los errores, el equivalente en lenguaje C sería: #include <stdio.h> int main() { printf("Hola Mundo");} ELECTROTECNIA 10 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Los lenguajes de bajo nivel son más cercanos al ordenador que a los lenguajes humanos. Eso hace que sean más difíciles de aprender y también que los fallos sean más difíciles de descubrir y corregir, a cambio de que podemos optimizar al máximo la velocidad (si sabemos cómo), e incluso llegar a un nivel de control del ordenador que a veces no se puede alcanzar con otros lenguajes. Por ejemplo, escribir Hola Mundo en lenguaje ensamblador sería algo así: dosseg .model small .stack 100h .data hello_message db 'Hola Mundo',0dh,0ah,'$' .code main proc mov ax,@data mov ds,ax mov ah,9 mov dx,offset hello_message int 21h mov ax,4C00h int 21h main endp end main Resulta bastante más difícil de seguir. Pero eso todavía no es lo que el ordenador entiende, aunque tiene una equivalencia casi directa. Lo que el ordenador realmente es capaz de comprender son secuencias de ceros y unos. Por ejemplo, las órdenes “mov ds, ax” y “mov ah, 9” (en cuyo significado no vamos a entrar) se convertirían a lo siguiente: 1000 0011 1101 1000 1011 0100 0000 1001 ENSAMBLADORES, COMPILADORES E INTÉRPRETES. Está claro entonces que las órdenes que nosotros hemos escrito (lo que se conoce como “programa fuente”) deben convertirse a lo que el ordenador comprende (obteniendo el “programa ejecutable”). Si elegimos un lenguaje de bajo nivel, como el ensamblador (en inglés Assembly, abreviado como Asm), la traducción es sencilla, y de hacer esa traducción se encargan unas herramientas llamadas ensambladores (en inglés Assembler). ELECTROTECNIA 11 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Cuando el lenguaje que hemos empleado es de alto nivel, la traducción es más complicada, y a veces implicará también recopilar varias fuentes distintas o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los compiladores. El programa ejecutable obtenido con el compilador o el ensamblador se podría hacer funcionar en otro ordenador similar al que habíamos utilizado para crearlo, sin necesidad de que ese otro ordenador tenga instalado el compilador o el ensamblador. Por ejemplo, en el caso de Windows y del programa que nos saluda en VBasic, tendríamos un fichero fuente llamado SALUDO.VB. Este fichero no serviría de nada en un ordenador que no tuviera un compilador de VBASIC. En cambio, después de compilarlo obtendríamos un fichero SALUDO.EXE, capaz de funcionar en cualquier otro ordenador que tuviera el mismo sistema operativo, aunque no tenga un compilador instalado. Un intérprete es una herramienta parecida a un compilador, con la diferencia de que en los intérpretes no se crea ningún “programa ejecutable” capaz de funcionar “por sí solo”, de modo que si queremos distribuir nuestro programa a alguien, deberemos entregarle el programa fuente y también el intérprete que es capaz de entenderlo, o no le servirá de nada. Cuando ponemos el programa en funcionamiento, el intérprete de encarga de convertir el programa en lenguaje de alto nivel a código máquina, orden por orden, justo en el momento en que hay que procesar cada una de las órdenes. Para algunos lenguajes, es frecuente encontrar compiladores pero no suele existir intérpretes. Es el caso del lenguaje C, de Pascal y de C++, por ejemplo. En cambio, para otros lenguajes, lo habitual es trabajar con intérpretes y no con compiladores, como ocurre con Python, Ruby y PHP. Además, hoy en día existe algo que parece intermedio entre un compilador y un intérprete: Existen lenguajes que no se compilan para obtener un ejecutable para un ordenador concreto, sino un ejecutable “genérico”, que es capaz de funcionar en distintos tipos de ordenadores, a condición de que en ese ordenador exista una “máquina virtual” capaz de entender esos ejecutables genéricos. Esta es la idea que se aplica en Java: los fuentes son ficheros de texto, con extensión “.java”, que se compilan a ficheros “.class”. Estos ficheros “.class” se podrían llevar a cualquier ordenador que tenga instalada una “máquina virtual Java” (las hay para la mayoría de sistemas operativos). Esta ELECTROTECNIA 12 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II misma idea se sigue en el lenguaje C#, que se apoya en una máquina virtual llamada “Dot Net Framework” (algo así como “armazón punto net”). PSEUDOCÓDIGO. A pesar de que los lenguajes de alto nivel se acercan al lenguaje natural, que nosotros empleamos, es habitual no usar ningún lenguaje de programación concreto cuando queremos plantear los pasos necesarios para resolver un problema, sino emplear un lenguaje de programación ficticio, no tan estricto, muchas veces escrito incluso en español. Este lenguaje recibe el nombre de pseudocódigo. Esa secuencia de pasos para resolver un problema es lo que se conoce como algoritmo (realmente hay alguna condición más, por ejemplo, debe ser un número finito de pasos). Por tanto, un programa de ordenador es un algoritmo expresado en un lenguaje de programación. Por ejemplo, un algoritmo que controlase los pagos que se realizan en una tienda con tarjeta de crédito, escrito en pseudocódigo, podría ser: • • • • • • Leer banda magnética de la tarjeta. Conectar con la central de cobros. Si hay conexión y la tarjeta es correcta: Pedir código PIN. Si el PIN es correcto, comprobar saldo existente. Si todo es correcto, aceptar la venta y descontar importe del saldo. DIAGRAMA DE FLUJO. El diagrama de flujo o diagrama de actividades es la representación gráfica del algoritmo o proceso. Se utiliza en la programación para representar en forma gráfica la secuencia lógica que desarrolla un programa. Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin de un proceso. CARACTERÍSTICAS: Un diagrama de flujo siempre tiene un único punto de inicio y un único punto de término. ELECTROTECNIA 13 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Las siguientes son acciones previas a la realización del diagrama de flujo: • • • • • Identificar las ideas principales al ser incluidas en el diagrama de flujo. Deben estar presentes el autor o responsable del proceso, los autores o responsables del proceso anterior y posterior y de otros procesos interrelacionados, así como las terceras partes interesadas. Definir qué se espera obtener del diagrama de flujo. Identificar quién lo empleará y cómo. Establecer el nivel de detalle requerido. Determinar los límites del proceso a describir. Los pasos a seguir para construir el diagrama de flujo son: • Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente. • Identificar y listar las principales actividades/subprocesos que están incluidos en el proceso a describir y su orden cronológico. • Si el nivel de detalle definido incluye actividades menores, listarlas también. • Identificar y listar los puntos de decisión. • Construir el diagrama respetando la secuencia cronológica y asignando los correspondientes símbolos. • Asignar un título al diagrama y verificar que esté completo y describa con exactitud el proceso elegido. SIMBOLOGÍA Y SIGNIFICADO: • • • • • • Óvalo o Elipse. Inicio y término del programa (Abre y/o cierra el diagrama). Rectángulo. Actividad (Representa la ejecución de una o más actividades o procedimientos). Rombo. Decisión (formula una pregunta o cuestión). Circulo. Conector (Representa el enlace de actividades con otra dentro de un procedimiento). Triángulo. Si esta boca abajo es utilizada para guardar un documento en forma permanente y si esta boca arriba se utiliza para proporcionar un tiempo para el almacenamiento del documento. Paralelogramo. Para mostrar la información procesada (Salida de datos) ELECTROTECNIA 14 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Ejemplo que muestra el uso del diagrama de flujo para mostrar si una lámpara funciona correctamente o debemos de cambiarla por otra nueva. Volviendo a nuestro programa anterior, para mostrarlo utilizando el diagrama de flujo seria de la siguiente manera: INICIO HOLA MUNDO FIN Nota: Cuando se va a realizar un programa, primero debe de realizarse el pseudocódigo, luego el Diagrama de flujo y por ultimo recién el programa en el lenguaje deseado. ELECTROTECNIA 15 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II CAPÍTULO 2 2 EL LENGUAJE C En este capítulo se tratará: Toma de Contacto con C. Escribir un texto en C. Como probar este programa en Windows. ELECTROTECNIA 16 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II LENGUAJE C TOMA DE CONTACTO CON C Dentro de los lenguajes de programación, C es un lenguaje que tiene un cierto “prestigio”. Esto se debe fundamentalmente a dos razones: • Es bastante “portable”: un programa bien hecho en C se podrá llevar a un ordenador distinto o incluso a un sistema operativo distinto (de MsDos a Windows o a Linux, por ejemplo) con muy pocos cambios o quizás incluso sin ningún cambio. El motivo es que existe un estándar: el ANSI C, que soportan casi todos los compiladores. Por eso, si nos ceñimos al estándar, es seguro que nuestros programas funcionarán en distintos sistemas; cuanto más nos separemos del estándar (en ocasiones podremos hacerlo), más difícil será que funcionen en otro sistema distinto. • Permite hacer “casi de todo”: podemos usar órdenes de alto nivel (muy cercanas al lenguaje humano), pero también de bajo nivel (más cercanas a lo que realmente entiende el ordenador). De hecho, podremos incluso incorporar órdenes en lenguaje ensamblador en medio de un programa escrito en C, aunque eso supone que ganemos en control de la máquina que estamos manejando, a costa de perder en portabilidad (el programa ya no se podrá llevar a otros ordenadores que no usen el mismo lenguaje ensamblador). En su contra, el lenguaje C tiene que es más difícil de aprender que otros y que puede resultar difícil de leer (por lo que ciertos errores pueden tardar más en encontrarse). Los pasos que seguiremos para crear un programa en C serán: 1. Escribir el programa en lenguaje C (fichero fuente), con cualquier editor de textos. 2. Compilarlo con nuestro compilador. Esto creará un “fichero objeto”, ya convertido a un lenguaje que el ordenador es capaz de entender. 3. Enlazarlo con otros ficheros del compilador, unas bibliotecas auxiliares que incluirán en nuestro programa aquellas posibilidades que hayamos empleado nosotros pero que realmente no sean parte del lenguaje C básico, ELECTROTECNIA 17 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II sino ampliaciones de algún tipo. Esto dará lugar al fichero ejecutable, que ya podremos usar desde MsDos o el sistema operativo que estemos manejando, en nuestro ordenador o en cualquier otro, aunque ese otro ordenador no tenga el compilador que nosotros hemos utilizado. La mayoría de los compiladores actuales permiten dar todos estos pasos desde un único entorno, en el que escribimos nuestros programas, los compilamos, y los depuramos en caso de que exista algún fallo. En el siguiente apartado veremos un ejemplo de uno de estos entornos, dónde localizarlo y cómo instalarlo. ESCRIBIR UN TEXTO EN C. Vamos con un primer ejemplo de programa en C, posiblemente el más sencillo de los que “hacen algo útil”. Se trata de escribir un texto en pantalla. La apariencia de este programa la vimos en el tema anterior. Vamos a verlo ahora con más detalle: #include <stdio.h> #include <iostream> Int main() { printf("Hola Mundo"); system("pause"); return 0; } Este programa escribe “Hola Mundo” en la pantalla. Pero hay mucho que comentar: • Eso de “#include” nos permite incluir librerías para ampliar el lenguaje base. En este caso, el motivo es que en el lenguaje C base no hay predefinida ninguna orden para escribir en pantalla, sino que este tipo de órdenes son una extensión, que se define en un fichero llamado “stdio.h”. Esto no es un problema, vamos a encontrar ese “stdio.h” en cualquier compilador que usemos. ¿Por qué no hay órdenes de pantalla en el lenguaje base? Hay que recordar que un ordenador no es sólo lo que acostumbramos a tener sobre nuestra mesa, con pantalla y teclado: existen otros muchos tipos de ordenadores que realizan tareas complejas y no necesitan una pantalla durante su funcionamiento normal, como el ordenador que controla el ABS ELECTROTECNIA 18 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II de un coche. La librería “iostream” nos permite incluir dentro del programa los comandos del DOS. • El comando "printf" es la orden que se encarga de mostrar un texto en pantalla, la responsable de que hayamos escrito ese “include” al principio del programa. • El comando “system” se utiliza para ejecutar los comandos del DOS, el cual está incluido en la librería “iostream”. • Aún quedan cosas: ¿qué hacen esas llaves { y } ? C es un lenguaje estructurado, en el que un programa está formado por diversos “bloques”. Todos los elementos que componen este bloque deben estar relacionados entre sí, lo que se indica encerrándolos entre llaves: { y }. • Finalmente, ¿qué es eso de “main”? Es algo que debe existir siempre, e indica el punto en el que realmente comenzará a funcionar el programa. Después de "main" van dos llaves { y }, que delimitan el bloque más importante: el cuerpo del programa. • No deben olvidar que al final de cada línea del programa terminar con un punto y coma (;) • El C es un lenguaje de formato libre, de modo que puede haber varias órdenes en una misma línea, u órdenes separadas por varias líneas o espacios entre medias. Lo que realmente indica dónde termina una orden y donde empieza la siguiente son los puntos y coma. Por ese motivo, el programa anterior se podría haber escrito también así (aunque no es aconsejable, porque puede resultar menos legible): en C debe #include <stdio.h> #include <iostream> Int main() { printf("Hola Mundo"); system("pause"); return 0; } Y la cosa no acaba aquí. Aún quedan más cosas de las que aparece en este programa, pero cuando ya vayamos practicando un poco, iremos concretando más alguna que otra cosa de las que aquí han quedado poco detalladas. ELECTROTECNIA 19 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II COMO PROBAR ESTE PROGRAMA EN WINDOWS. La familia de sistemas Windows no incluye ningún compilador de C, de modo que tendremos que localizar uno e instalarlo. Existen muchos gratuitos que se pueden descargar de Internet, y que incluyen un editor y otras herramientas auxiliares. Es el caso de Dev-C++, por ejemplo, que tiene su página oficial en www.bloodshed.net. La instalación es bastante sencilla, hacer doble clic en el fichero descargado, y hacer clic varias veces en el botón “Siguiente”: En el caso de Dev-C++, podemos incluso trabajar con el entorno en español: Para crear nuestro programa, en el menú "Archivo" escogemos "Nuevo / Código fuente", y nos aparece un editor vacío en el que ya podemos empezar a teclear. Si queremos nuestro programa en funcionamiento, entraríamos al menú “Ejecutar” y usaríamos la opción “Compilar y ejecutar”: ELECTROTECNIA 20 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II (Si todavía no hemos guardado los cambios en nuestro archivo fuente, nos pedirá que lo hagamos antes de compilarlo). Ejercicios: 1. Realizar un programa que muestre en pantalla tu NOMBRE, luego realice una pausa, luego tu APELLIDO PATERNO, haga otra pausa y por ultimo tu APELLIDO MATERNO. 2. Realizar un programa que muestre en pantalla el siguiente mensaje BIENVENIDOS A SENATI tres veces consecutivas. 3. Realizar un programa que muestre en pantalla tres veces consecutivas TECNICOS INDUSTRIALES, haga una pausa y luego tres veces consecutivas SENATI. ELECTROTECNIA 21 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II CAPÍTULO 3 3 IDENTIFICADORES. En este capítulo se tratará: Identificadores. Comentarios. Tipos de Variables. Numeros Enteros. Numeros con Decimales. Caracteres. Constantes. Operadores. Operadores Aritméticos. Incremento y Decremento. Opeardores de Comparación. Operadores Lógicos. Expresiones. ELECTROTECNIA 22 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II IDENTIFICADORES. Son los nombres de variable (lo que se conoce como “identificadores”) pueden estar formados por letras, números o el símbolo de subrayado (_) y deben comenzar por letra o subrayado. No deben tener espacios entre medias, y hay que recordar que las vocales acentuadas y la eñe son problemáticas, porque no son letras "estándar" en todos los idiomas. Algunos compiladores permiten otros símbolos, como el $, pero es aconsejable no usarlos, de modo que el programa sea más portable (funcione con facilidad en distintos sistemas). Por eso, no son nombres de variable válidos: • 1numero (empieza por número). • Un número (contiene un espacio). • Año1 (tiene una eñe). • MásDatos (tiene una vocal acentuada). Tampoco podremos usar como identificadores las palabras reservadas de C. Por ejemplo, la palabra "int" se refiere a que cierta variable guardará un número entero, así que esa palabra "int" no la podremos usar tampoco como nombre de variable (pero no vamos a incluir ahora una lista de palabras reservadas de C, ya nos iremos encontrando con ellas). De momento, intentaremos usar nombres de variables que a nosotros nos resulten claros, y que no parezca que puedan ser alguna orden de C. Hay que recordar que en C las mayúsculas y minúsculas se consideran diferentes, de modo que podemos declarar variables de esta manera: PrimerNumero Primernumero primernumero primerNumero o cualquier variación similar, solo debe recordar cómo fue declarado inicialmente para poderlo usar después dentro del programa. El número de letras que puede tener un "identificador" (el nombre de una variable, por ejemplo) depende del compilador que usemos. Es frecuente que permitan cualquier longitud, pero que realmente sólo se fijen en unas cuantas letras (por ejemplo, en las primeras 8 o en las primeras 32). Eso quiere decir ELECTROTECNIA 23 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II que puede que algún compilador considerase como iguales las variables NumeroParaAnalizar1 y NumeroParaAnalizar2, porque tienen las primeras 18 letras iguales. El C estándar (ANSI C) permite cualquier longitud, pero sólo considera las primeras 31. COMENTARIOS. Podemos escribir comentarios, que el compilador ignora, pero que pueden servir para aclararnos cosas a nosotros. Se escriben entre /* y */: int suma; /* Porque guardaré el valor para usarlo más tarde */ Es conveniente escribir comentarios que aclaren la misión de las partes de nuestros programas que puedan resultar menos claras a simple vista. Incluso suele ser aconsejable que el programa comience con un comentario, que nos recuerde qué hace el programa sin que necesitemos mirarlo de arriba a abajo. TIPOS DE VARIABLES: Números Enteros: int.- Utilizado para declarar números enteros positivos o negativos. Short int.- Utilizado para declarar números enteros cortos. Long int.- Para declarar números enteros grandes. Números con Decimales: float.- Utilizado para declarar números con decimales positivos y negativos. double.- Para declarar números con decimales más grandes. Caracteres: char.- Declara un carácter que puede ser una letra o un número. char var[num].- Declara una cadena de caracteres, donde var es el nombre de la variable y num es la longitud de esta cadena. Ejemplo 1: Programa que declara diferentes tipos de variable y los muestra en pantalla utilizando el comando printf. /* Programa que declara variable de tipo entero, decimal y carácter */ #include <stdio.h> #include <iostream> Int main() { ELECTROTECNIA 24 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II int PrimerNumero; float SegundoNumero; char TercerDato; char Nombre[6]; PrimerNumero = 789; SegundoNumero = 78.4567; TercerDato = 'a'; Nombre = 'Senati'; printf(“El número entero es %d \n”, PrimerNumero); printf(“El número decimal es %f \n”, SegundoNumero); printf(“El carácter es %c \n”, TercerDato); printf(“Tu nombre es %s \n”, Nombre); system("pause"); return 0; } Ejemplo 2: Programa que muestra los diferentes tipos de variables. /* Programa que muestra diferentes tipos de variables entero y decimal */ #include <stdio.h> #include <iostream> Int main() { int Dato1; short int Dato2; long int Dato3; float Dato4; double Dato5; Dato1 = 987654321; Dato2 = 987654321; Dato3 = 987654321; Dato4 = 987654321.987654321; Dato5 = 987654321.987654321; printf(“El número entero es %d \n”, Dato1); printf(“El número entero corto es %d \n”, Dato2); printf(“El número entero largo es %d \n”, Dato3); printf(“El número decimal es %f \n”, Dato4); printf(“El número decimal doble es %f \n”, Dato5); system("pause"); return 0; } ELECTROTECNIA 25 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Nota: Como se puede apreciar en los dos programas para mostrar la información en pantalla estamos utilizando el comando printf donde el %d es utilizado para mostrar los números enteros, el %f es para mostrar los números con decimales, el %c es para mostrar un carácter y el %s es para mostrar una cadena de caracteres. El \n es utilizado para realizar un salto de línea (ENTER), y todo esto se pone entre comillas. También se puede mostrar más de una variable a la vez, por ejemplo en el primer programa podíamos haber utilizado una solo línea de programa para mostrar la información, de la siguiente manera: printf(“Los datos son %d %f %c %s \n”, PrimerNumero, SegundoNumero, TercerDato, Nombre); CONSTANTES. const.- Se utiliza al declarar una variable para indicar que el valor asignado es una constante y no cambiara su valor en todo el programa, puede ser utilizado en números enteros, con decimales y caracteres (textos). Ejemplo: Programa que declara una variable como constante asignándole un valor o dato directamente al inicio del programa. /* Programa que muestra el uso de constantes */ #include <stdio.h> #include <iostream> Int main() { const int Dato1 = 789; const float Dato2 = 78.4567; const char Dato3 = 'a'; const char Dato4[6] = 'Senati'; printf(“El número entero es %d \n”, Dato1); printf(“El número decimal es %f \n”, Dato2); printf(“El carácter es %c \n”, Dato3); printf(“Tu nombre es %s \n”, Dato4); system("pause"); return 0; } ELECTROTECNIA 26 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II OPERADORES. Operadores Aritméticos. Los operadores aritméticos funcionan de la misma manera en C que en la mayoría de los lenguajes de Computadora. Cuando se aplica División a un entero o carácter, la computadora truncara cualquier resto; por ejemplo 10 / 3 será igual a 3 en la división entera. El Operador Módulo de la división % recoge el resto de una división entera. Sin embargo, no se puede usar % sobre sobre los tipos float o double. Operador + * / % -++ Operación Suma Resta, negación Multiplicación División Resto de la división (“módulo”) Decremento Incremento El siguiente programa ilustra los operadores de División y Resto. /* Uso de División Y Resto */ #include <stdio.h> #include <iostream> Int main() { Int D1, D2; D1 = 10; D2 = 3; printf(“La División de %d y %d es %d \n”, D1, D2, D1 / D2); printf(“El Resto de %d y %d es %d \n”, D1, D2, D1 % D2); system("pause"); return 0; } Incremento y Decremento. El lenguaje C permite dos operadores utilísimos que no se encuentran en otros lenguajes de computadora. Estos son los operadores incremento y decremento: ++ y --. El operador ++ añade 1 a su operando y el – le resta uno. Por tanto, los siguientes son operaciones equivalentes: X++; ELECTROTECNIA 27 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Y--; Es lo mismo que X = X + 1; Y = Y -1; Operadores de Comparación. Se usan los operadores de comparación o relacionales para determinar las relaciones de una cantidad con otra. Siempre devuelven 1 o 0, dependiendo del resultado de la prueba. Operador < > <= >= == != Operación Menor que Mayor que Menor o igual que Mayor o igual que Igual a No igual a (distinto de) El siguiente programa ilustra el resultado de cada operación como 0 ó 1. /* Operador Igual, Diferente, Menor igual, Mayor igual, Menor y Mayor */ #include <stdio.h> #include <iostream> Int main() { Int D1, D2; printf(“Ingrese dos números: “); scanf(“%d %d”, &D1, &D2); printf(“%d == %d es %d \n”, D1, D2, D1 == D2); printf(“%d != %d es %d \n”, D1, D2, D1 != D2); printf(“%d <= %d es %d \n”, D1, D2, D1 <= D2); printf(“%d >= %d es %d \n”, D1, D2, D1 >= D2); printf(“%d < %d es %d \n”, D1, D2, D1 < D2); printf(“%d > %d es %d \n”, D1, D2, D1 > D2); system("pause"); return 0; } Nota: En este programa para leer los valores desde el teclado se está utilizando el comando scanf, el cual se utiliza de la misma forma que el ELECTROTECNIA 28 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II comando printf, (Se coloca entre comillas las variables que se van a leer), y las variables que van a ser leídas desde el teclado se agrega el carácter &. Operadores Lógicos.- Se refieren a la manera en que se relacionan los datos, se usan para soportar las operaciones básicas lógicas de AND, OR y NOT. Operador && || ! Significado Y O No El siguiente programa ilustra el funcionamiento de los operadores Lógicos. /* Operador AND OR y NOT */ #include <stdio.h> #include <iostream> Int main() { Int D1, D2; printf(“Ingrese dos números: (Solamente el valor O ó 1“); scanf(“%d %d”, &D1, &D2); printf(“%d AND %d es %d \n”, D1, D2, D1 && D2); printf(“%d OR %d es %d \n”, D1, D2, D1 || D2); printf(“NOT %d es %d \n”, D1, !D1); printf(“NOT %d es %d \n”, D2, !D2); system("pause"); return 0; } Conociendo el uso de Variables, Constantes y Operadores (Matemáticos, Comparación y Lógicos) vamos a iniciar a crear programas sencillos que nos permita ilustrar mucho mejor el uso de los mismos. Ejemplo: Crear un programa que muestre en pantalla la suma de 218 + 345 utilizando para ello en el Primer Caso el uso de Variables, En el segundo Caso el uso de Constantes y Para el tercer caso directamente con el Operador Matemático de la Suma en el resultado. /* Prmer Caso con Variables */ #include <stdio.h> #include <iostream> Int main() ELECTROTECNIA 29 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II { int Dato1; int Dato2; int Dato3; Dato1 = 218; Dato2 = 345; Dato3 = Dato1 + Dato2; printf(“La suma de %d y %d es %d \n”, Dato1,Dato2,Dato3); system("pause"); return 0; } ------------------------------------------------------------------------------------------------------------------------------- /* Segundo Caso con Constantes */ #include <stdio.h> #include <iostream> Int main() { const int Dato1 = 218; const int Dato2 = 345; int Dato3; Dato3 = Dato1 + Dato2; printf(“La suma de %d y %d es %d \n”, Dato1,Dato2,Dato3); system("pause"); return 0; } ------------------------------------------------------------------------------------------------------------------------------- /* Tercer Caso sin Variables ni constantes */ #include <stdio.h> #include <iostream> Int main() { printf(“La suma de 218 y 345 es %d \n”, 218 + 345); system("pause"); return 0; } Orden de prioridad de los operadores • En primer lugar se realizarán las operaciones indicadas entre paréntesis. ELECTROTECNIA 30 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II • Luego la negación. • Después las multiplicaciones, divisiones y el resto de la división. • Finalmente, las sumas y las restas. • En caso de tener igual prioridad, se analizan de izquierda a derecha. Ejercicios Propuestos: 1. Hacer un programa que calcule el producto de los números 25 y 7. 2. Hacer un programa que calcule la división de 963 entre 45. 3. Hacer un programa que calcule las siguientes operaciones matemáticas. • 3–2+3*5 • (20 + 5) % 6 • 15 + -5 * 6 / 10 • 2 + 10 / 5 * 2 – 7 % 1 EXPRESIONES. Los operadores, constantes y variables constituyen las expresiones. Una expresión en C es cualquier combinación valida de estas piezas. Como la mayoría de las expresiones tienden a caer en las reglas generales del algebra, se dan por sabidas. Sin embargo, las expresiones tienen una serie de aspectos que son relacionados específicamente con C. Cuando se mezclan constantes y variables de diferentes tipos en una expresión. C las convierte en el mismo tipo. El compilador C convertirá todos los operandos al tipo del operando más grande en una operación según la base de esta operación, tal como se describe en estas reglas de conversión de tipos: 1. Todos los char y short int se convierten a int. Todos los float a double. 2. Para todo par de operandos, lo siguiente ocurre en secuencia. Si uno de los operandos es un long double, el otro se convierte a long double. Si uno de los operandos es double, el otro se convierte a double. Si uno de los operandos es long, el otro se convierte en long. Si uno de los operandos es unsigned, el otro se convierte a unsigned. Después de que el compilador aplique estas reglas de conversión, cada par de operandos será del mismo tipo, y el resultado de la operación será del tipo de los operandos. Observando la segunda regla tiene diversas condiciones que se deben aplicar en secuencia. ELECTROTECNIA 31 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Ejemplo de conversión de tipo. char ch; Int i; Float f; double d; result = (ch / i) + char (f * d) – float int (f + float double int i); double int float double double Como se muestra en el ejemplo el resultado final corresponde al tipo de variable más grande. MOSTRAR EN PANTALLA NÚMEROS CON DECIMALES. Tenemos por ejemplo la siguiente línea de programa: float x = 12.560; usaremos “printf”, al que le indicaremos “%f” como código de formato: printf("El valor de x es %f", x); /* En pantalla se mostrara 12.5600 */ Pero también podemos detallar la anchura, indicando el número de cifras totales y el número de cifras decimales, separadas por un punto: ELECTROTECNIA 32 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II printf("El valor de x es %5.2f", x); /* En pantalla se mostrara 12.56 */ Si indicamos una anchura mayor que la necesaria, se rellena con espacios al principio (queda alineado a la derecha) printf("El valor de x es %7.2f", x); /* En pantalla se muestra “ 12.560” */ Si quisiéramos que quede alineado a la izquierda (con los espacios de sobra al final), debemos escribir la anchura como un número negativo printf("El valor de x es %-7.2f", x); /* En pantalla se muestra “12.560 ” */ Si indicamos menos decimales que los necesarios, se redondeará el número printf("El valor de x es %4.1f", x); /* En pantalla se muestra 12.6 */ Y si indicamos menos cifras enteras que las necesarias, no se nos hará caso y el número se escribirá con la cantidad de cifras que sea necesario usar printf("El valor de x es %1.0f", x); /* En pantalla se muestra 13 */ Secuencias de escape: \n y otras. Al igual que ocurría con expresiones como %d, que tenían un significado especial, ocurre lo mismo con ciertos caracteres, que nos permiten hacer cosas como bajar a la línea siguiente o mostrar las comillas en pantalla. Son las siguientes: Secuencia Significado \a Emite un pitido \b Retroceso (permite borrar el último carácter) \f Avance de página (expulsa una hoja en la impresora) \n Avanza de línea (salta a la línea siguiente) \r Retorno de carro (va al principio de la línea) \t Salto de tabulación horizontal \v Salto de tabulación vertical \' Muestra una comilla simple \" Muestra una comilla doble \\ Muestra una barra invertida \0 Carácter nulo (NULL) \7 Emite un pitido (igual que \a) \ddd Un valor en octal \xddd Un valor en hexadecimal ELECTROTECNIA 33 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Ejemplos diversos para reforzar lo aprendido: /* Convierte Pies a Metros */ #include <stdio.h> #include <iostream> Int main() { Int pies; float metros; printf(“Ingrese el número de pies : “); scanf(“%d”, &pies); metros = pies * 0.3048; /* conversión de pies a metros */ printf(“%d pies es %f metros \n”, pies, metros); system("pause"); return 0; } ---------------------------------------------------------------------------------------------------------/* Muestra un Numero en Decimal, Octal y Hexadecimal*/ #include <stdio.h> #include <iostream> Int main() { int primerNumero; int segundoNumero; int tercerNumero; primerNumero = 15; /* Decimal */ segundoNumero = 015; /* Octal: 8+5=13 */ tercerNumero = 0x15; /* Hexadecimal: 16+5=21 */ printf("El primer número es %d, \n", primerNumero); printf("el segundo es %d, \n", segundoNumero); printf("el tercer número es %d.\n", tercerNumero); system("pause"); return 0; } /* Muestra los diferentes formatos para los números con decimales */ #include <stdio.h> #include <iostream> Int main() { float x = 12.569078; printf("El valor de x es %f \n", x); printf(" con 2 decimales %5.2f \n", x); printf(" con 4 decimales %7.4f \n", x); printf(" o solo con uno %3.1f \n", x); printf(" o sin decimales %2.0f \n", x); system("pause"); return 0; } ELECTROTECNIA 34 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II ------------------------------------------------------------------------------------------------------------------------------- /* Cambia un numero entero a decimal*/ #include <stdio.h> #include <iostream> Int main() { int n1 = 5, n2 = 2; float division1, division2; printf("Mis números son %d y %d \n", n1, n2); division1 = n1/n2; printf(" y su división es %f \n", division1 ); division2 = (float)n1 / (float)n2; printf("convierto antes a float: %5.2f \n",division2); system("pause"); return 0; } ------------------------------------------------------------------------------------------------------------------------------- /* Cambia un numero Decimal a Entero*/ #include <stdio.h> #include <iostream> Int main() { float x = 5, y = 3.5; float producto; printf("Mis números son %3.1f y %3.1f \n", x, y); producto = x*y; printf(" y su producto es %3.1f \n", producto); printf(", sin decimales seria %d \n", (int) producto); system("pause"); return 0; } /* Muestra Caracteres leídas desde el teclado y asignada directamente*/ #include <stdio.h> #include <iostream> Int main() { char letra1, letra2; printf("Teclea una letra "); scanf("%c", &letra1); letra2 = 'a'; printf("La letra que has tecleado es %c y la prefijada es %c \n", letra1, letra2); system("pause"); return 0; } ELECTROTECNIA 35 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II ------------------------------------------------------------------------------------------------------------------------------- /* Programa que lee dos valores de tipo carácter*/ #include <stdio.h> #include <iostream> Int main() { char letra1, letra2; printf("Teclea una letra "); scanf("%c", &letra1); getchar(); printf("Teclea otra letra "); scanf("%c", &letra2); getchar(); printf("La Primera letra es %c y la segunda es %c \n",letra1, letra2); system("pause"); return 0; } ------------------------------------------------------------------------------------------------------------------------------- /* Programa que calcula el promedio, la suma y el producto de 3 valores */ #include <stdio.h> #include <iostream> Int main() { int a,b,c; printf("Ingrese el Primer Número : "); scanf("%d", &a); printf("Ingrese el Segundo Número : "); scanf("%d", &b); printf("Ingrese el Tercer Número : "); scanf("%d", &c); printf("El Promedio es : %d \n", (a+b+c)/3); printf("La Suma es : %d \n", a+b+c); printf("El Producto es : %d \n", a*b*c); system("pause"); return 0; } /* Programa que calcula el área del triángulo y del circulo*/ #include <stdio.h> #include <iostream> Int main() { int a; const float c = 3.141516; printf("Ingrese un Número : "); scanf("%d", &a); printf("El valor de PI es : %f \n", c); printf("El Área del Cuadrado es : %d \n", a*a); printf("El Área del Circulo es : %f \n", c*(a*a)); system("pause"); return 0; } ELECTROTECNIA 36 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Ejercicios propuestos: 1) Crear un programa que pida al usuario que teclee cuatro letras y las muestre en pantallas juntas, pero en orden inverso, y entre comillas dobles. Por ejemplo si las letras que se teclean son a, l, o, h, escribiría "hola". 2) Crear un programa que permita ingresar los Nombres y Apellidos, Carrera de Estudios y la Edad del Alumno, luego muestre en pantalla: • Tu edad es 20 años, y estudias TÉCNICOS INDUSTRIALES. • Tu nombre es JUAN MANUEL y tus apellidos CARDENAS LUQUE. 3) Crear un programa que pida ingresar dos números enteros y dos números con decimales, realizar la división del primer número entero entre el primer número decimal, dividir el segundo número decimal entre el numero entero. Muestre en pantalla los resultados como números enteros y números decimales. 4) Crear un programa que muestre en pantalla la tabla de la función AND y la función OR. 1 1 0 0 ELECTROTECNIA AND 1 0 1 0 1 0 0 0 1 1 0 0 OR 1 0 1 0 1 1 1 0 37 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II CAPÍTULO 4 4 SENTENCIAS DE CONTROL DE PROGRAMA En este capítulo se tratará: Sentencias de Control de Programa. La sentencia IF. IF y sentencias compuestas. La sentencia IF – ELSE. IFS Anidados. Operador Condicional: ?. La sentencia SWITCH. ELECTROTECNIA 38 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II SENTENCIAS DE CONTROL DE PROGRAMA. Las sentencias de control de programa son la esencia de cualquier lenguaje de computadora ya que gobiernan el flujo de la ejecución del programa. La manera en que se implementan afecta a la personalidad y sentir del lenguaje. Se pueden dividir las sentencias de control de programa en tres categorías. La primera consta de unas instrucciones condicionales if y switch. La segunda son las sentencias de control de bucle while, for y do-while. La tercera categoría contiene la instrucción de bifurcación condicional goto. LA SENTENCIA IF. Vamos a ver cómo podemos comprobar si se cumplen condiciones. La primera construcción que usaremos será "si ... entonces ...". El formato en C es: if (condición) sentencia; Vamos a verlo con unos ejemplos: /* Ingresa un número por teclado y verifica si es positivo */ #include <stdio.h> #include <iostream> Int main() { int numero; printf("Escribe un número: "); scanf("%d", &numero); if (numero>0) printf("El número es positivo. \n"); system("pause"); return 0; } ---------------------------------------------------------------------------------------------------------/* Encuentra el número mágico */ #include <stdio.h> #include <iostream> Int main() { int magico; /* Este es el número entero mágico */ int numero; magico = rand(); /* Genera un número aleatorio */ printf("Escribe un número: "); scanf("%d", &numero); if (numero == magico) printf(" ** El número es Correcto ** \n"); system("pause"); return 0; } ELECTROTECNIA 39 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Nota: para comprobar si un valor numérico es mayor que otro, usamos el símbolo “>”, como se ve en este ejemplo. Para ver si dos valores son iguales, usaremos dos símbolos de “igual”: if (numero==magico). Las demás posibilidades las veremos algo más adelante. En todos los casos, la condición que queremos comprobar deberá indicarse entre paréntesis. Ejercicios propuestos: • Crear un programa que pida al usuario un número entero y diga si es par (pista: habrá que comprobar si el resto que se obtiene al dividir entre dos es cero: if (x % 2 == 0)). • Crear un programa que pida al usuario dos números enteros y diga cuál de los dos es el número mayor. • Crear un programa que pida al usuario dos números enteros y diga si el primero es múltiplo del segundo (pista: igual que antes, habrá que ver si el resto de la división es cero: a % b == 0). IF Y SENTENCIAS COMPUESTAS. La "sentencia" que se ejecuta si se cumple la condición puede ser una sentencia simple o una compuesta. Las sentencias compuestas se forman agrupando varias sentencias simples entre llaves ( { y } ): /* Chequea si el número ingresado es positivo*/ #include <stdio.h> #include <iostream> Int main() { int numero; printf("Escribe un numero: "); scanf("%d", &numero); if (numero > 0) { printf("El número es positivo. \n"); printf("Recuerde que también puede usar negativos. \n"); } /* Aquí acaba el "if" */ system("pause"); return 0; } En este caso, si el número es positivo, se hacen dos cosas: escribir un texto y luego otro texto (Claramente, en este ejemplo, esos dos “printf” muestran en pantalla estos textos dentro de una sentencia compuesta). ELECTROTECNIA 40 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Se pueden incluir siempre las llaves después de un "if", como medida de seguridad: un fallo frecuente es escribir una única sentencia tras "if", sin llaves, luego añadir una segunda sentencia y olvidar las llaves, de modo que la segunda orden no se ejecutará si se cumple la condición. Ejemplo del uso correcto de la sentencia IF (Usando llaves para inicio y fin). /* Chequea si el número es diferente a cero */ #include <stdio.h> #include <iostream> Int main() { int numero; printf("Escribe un número: "); scanf("%d", &numero); if (numero!=0) { printf("El número no es cero.\n"); } system("pause"); return 0; } LA SENTENCIA IF – ELSE. Podemos indicar también lo que queremos que ocurra en caso de que no se cumpla la condición, para ello usaremos la orden “else” (en caso contrario), de la siguiente manera: /*Chequea si un número es positive o negativo */ #include <stdio.h> #include <iostream> Int main() { int numero; printf("Escribe un numero: "); scanf("%d", &numero); if (numero>0) printf("El número es positivo.\n"); else printf("El número es cero o negativo.\n"); system("pause"); return 0; } ELECTROTECNIA 41 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II IFS ANIDADOS. Uno de los aspectos más confusos de las sentencias if en el lenguaje de programación es el if anidado. Un if anidado es una sentencia if que es el objeto de otro if o else. La razón por la que los if anidados son tan problemáticos es que se pueden tener problemas para decir que else se asocia con que if. Ejemplos: /* Chequea un número ingresado */ #include <stdio.h> #include <iostream> Int main() { int numero; printf("Escriba un número: "); scanf("%d", &numero); if (numero < 0) { printf("El número es negativo. \n"); } else { if (numero == 0) { printf("El número es cero. \n"); } else { printf("El número es positivo.\n"); } } system("pause"); return 0; } ---------------------------------------------------------------------------------------------------------/* Encuentra el número mágico*/ #include <stdio.h> #include <iostream> Int main() { int magico; int numero; magico = rand(); printf(“Ingresa un Número : “); scanf(“%d”, &numero); ELECTROTECNIA 42 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II if (numero == magico) { printf(“*** El número es correcto *** ”); printf(“%d es un número mágico \n”,magico); } else { If (numero > magico) printf(“ERROR Número demasiado Alto \n”); else printf(“ERROR Número demasiado Bajo \n”); } system("pause"); return 0; } ---------------------------------------------------------------------------------------------------------/* Programa que calcula la edad aproximada de una persona*/ #include <stdio.h> #include <iostream> int main() /* Cuerpo del programa */ { int nac; int act; printf("Introduce el año de tu nacimiento : "); scanf("%d", &nac); printf("\n"); printf("Introduce el año actual : "); scanf("%d", &act); printf("\n"); if (nac == act) { printf(“Tiene CERO años de edad”); } else { if (nac < act) printf(“Su edad aproximada es %d \n”,(act – nac)); else printf(“ERROR el año actual no puede ser menor…”); } system("pause"); return 0; } Ejercicios propuestos: • Crear un programa que pida una letra al usuario y diga si se trata de una vocal. • Crear un programa que pida al usuario dos números enteros y diga “Uno de los números es positivo”, “Los dos números son positivos” o bien “Ninguno de los números es positivo”, según corresponda. ELECTROTECNIA 43 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II • Crear un programa que pida al usuario tres números reales y muestre cuál es el mayor de los tres. • Crear un programa que pida al usuario dos números enteros cortos y diga si son iguales o, en caso contrario, cuál es el mayor de ellos. • Crear un programa que pida dos números enteros, realice la división de ambos siempre y cuando sean diferentes de CERO, de lo contrario que muestre un mensaje de ERROR. OPERADOR CONDICIONAL: ? En C hay otra forma de asignar un valor según se dé una condición o no. Es el “operador condicional” ? : que se usa de la siguiente manera: condición ? valor1 : valor2; y equivale a decir “si se cumple la condición, toma el valor 1; si no, toma el valor 2”. Un ejemplo de cómo podríamos usarlo sería mayor = (a>b) ? a : b; Que, aplicado a un programa sencillo, podría ser #include <stdio.h> #include <iostream> int main() { int a, b, mayor; printf("Escriba un número: "); scanf("%d", &a); printf("Escriba otro: "); scanf("%d", &b); mayor = (a>b) ? a : b; printf("El mayor de los números es %d.\n", mayor); system("pause"); return 0; } Un segundo ejemplo, que sume o reste dos números según la opción que se escoja, sería: ELECTROTECNIA 44 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II #include <stdio.h> #include <iostream> int main() { int a, b, resultado; int operacion; printf("Escriba un número: "); scanf("%d", &a); printf("Escriba otro: "); scanf("%d", &b); printf("Escriba una operación (1 = resta; otro = suma): "); scanf("%d", &operacion); resultado = (operacion == 1) ? a-b : a+b; printf("El resultado es %d.\n", resultado); system("pause"); return 0; } Ejercicios propuestos: • Crear un programa que use el operador condicional para mostrar un el valor absoluto de un número de la siguiente forma: si el número es positivo, se mostrará tal cual; si es negativo, se mostrará cambiado de signo. • Crear un programa que use el operador condicional para dar a una variable llamada “iguales” (entera) el valor 1 si los dos números que ha tecleado el usuario son iguales, o el valor 0 si son distintos. • Usar el operador condicional para calcular el menor de dos números ingresados por teclado. LA SENTENCIA SWITCH. Aunque el escalonador de if-else-if pueda realizar comprobaciones múltiples, no es elegante. El código puede ser difícil de seguir y puede confundir incluso al autor pasado el tiempo. Por estas razones, C tiene incorporada una sentencia de bifurcación múltiple llamada switch. En switch, la computadora comprueba una variable sucesivamente frente a una lista de constantes enteras o de carácter. Después de encontrar una coincidencia, la computadora ejecuta la sentencia o bloque de sentencias que se asocian con la constante. La forma general de la sentencia switch es: ELECTROTECNIA 45 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II switch (variable) { case constante1: Secuencia de sentencias asociadas; break; case constante2: Secuencia de sentencias asociadas; break; . . . . default: Secuencia de sentencias asociadas; } Es decir, se escribe tras “switch” la expresión a analizar, entre paréntesis. Después, tras varias órdenes “case” se indica cada uno de los valores posibles. Los pasos (porque pueden ser varios) que se deben dar si se trata de ese valor se indican a continuación, terminando con “break”. Si hay que hacer algo en caso de que no se cumpla ninguna de las condiciones, se detalla tras “default”. Veámoslo mucho mejor con el siguiente ejemplo, el cual determina que carácter hemos pulsado con el teclado. #include <stdio.h> #include <iostream> int main() { char tecla; printf("Pulse una tecla cualquiera y luego ENTER: "); scanf("%c", &tecla); switch (tecla) { case ' ': printf("Es un espacio en Blanco. \n"); break; case '1': case '2': case '3': case '4': case '5': case '6': ELECTROTECNIA 46 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II case '7': case '8': case '9': case '0': printf("La tecla corresponde a un Número. \n"); break; default: printf("Es cualquier carácter, No espacio, No Número. \n"); } system("pause"); return 0; } ---------------------------------------------------------------------------------------------------------/* Programa que selecciona una opción de un menú de opciones */ #include <stdio.h> #include <iostream> int main() { char ch; printf(" MENU DE OPCIONES \n"); printf("\n"); printf("1. Realiza una Suma \n"); printf("2. Realiza una Resta \n"); printf("3. Realiza una Multiplicación \n"); printf("4. Realiza una División \n"); printf("\n"); printf("Pulsa cualquier otra tecla para terminar \n"); printf(" Ingresa tu elección : "); ch = getchar(); /* lee desde el teclado directamente no necesita ENTER */ printf("\n"); switch (ch) { case '1': printf(“Ud. Ha elegido la opción SUMA \n”); break; case '2': printf(“Ud. Ha elegido la opción RESTA \n”); break; case '3': printf(“Ud. Ha elegido la opción MULTIPLICAR \n”); break; case '4': printf(“Ud. Ha elegido la opción DIVIDIR \n”); break; default: printf("Termino el programa. \n"); } system("pause"); return 0; } ---------------------------------------------------------------------------------------------------------/* Programa que muestra mensajes en pantalla utilizando números*/ ELECTROTECNIA 47 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II #include <stdio.h> #include <iostream> int main() { Int t; for (t=0; t < 10; t++) switch (t) { case 1: printf("Ahora"); break; case 2: printf(" es "); break; case 3: case 4: printf("la"); printf(“ hora de los buenos hombres \n”); break; case 5: case 6: printf(“a “); break; case 7: case 8: case 9: printf(" . "); break; } system("pause"); return 0; } Ejercicios propuestos: • • • • • Crear un programa que lea una letra tecleada por el usuario y diga si se trata de una vocal, una cifra numérica o una consonante. Crear un programa que lea una letra tecleada por el usuario y diga si se trata de un signo de puntuación, una cifra numérica o algún otro carácter. Crear un programa que lea un número entre el 1 y el 7 y muestre en pantalla el nombre del día correspondiente, si ingresa cualquier otro número salga el mensaje EL NÚMERO ES ERRADO. Crear un programa que lea un numero entre el 1 y el 12 y muestre en pantalla el nombre del mes correspondiente, si ingresa cualquier otro número salga el mensaje EL NUMERO ES ERRADO. Crear un Programa donde muestre un Menú de Opciones, 1) Pago en Efectivo, 2)Pago en Cheque, 3) Pago con Tarjeta de Débito, 4) Pago con tarjeta de Crédito, 5) Terminar, pida ingresar una opción y luego muestre en pantalla el Mensaje “Usted realizara el pago utilizando ………....” (Efectivo, Cheque, Tarjeta de Débito, Tarjeta de Crédito). ELECTROTECNIA 48 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II CAPÍTULO 5 5 BUCLES En este capítulo se tratará: Bucles. El Bucle FOR. Saliendo de un bucle FOR. Bucles Anidados. Sentencia BREAK. Sentencia CONTINUE. El Bucle WHILE. El Bucle DO – WHILE. Etiquetas y GOTO. Entrada / Salida Básica. Printf. Scanf. Putchar. Getchar. ELECTROTECNIA 49 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II BUCLES. Los bucles permiten a la computadora repetir un conjunto de instrucciones hasta que se cumpla cierta condición. El lenguaje C soporta el mismo tipo de bucles que otros lenguajes de programación moderno. Los bucles de C son el for, el while y el do-while. EL BUCLE FOR Ésta es la orden que usaremos habitualmente para crear partes del programa que se repitan un cierto número de veces, la forma general de la sentencia for es: for (inicialización; condición; incremento o decremento) sentencia; Así, para contar del 1 al 10, tendríamos 1 como valor inicial, <=10 como condición de repetición, y el incremento sería de 1 en 1. Por tanto, el programa quedaría de la siguiente manera: #include <stdio.h> #include <iostream> Int main() { int contador; for (contador=1; contador<=10; contador++) printf("%d ", contador); system("pause"); return 0; } Recordemos que “contador++” es una forma abreviada de escribir “contador=contador+1”, de modo que en este ejemplo aumentamos la variable de uno en uno. Ejercicios propuestos: • Crear un programa que muestre los números del 15 al 5, descendiendo (pista: en cada pasada habrá que descontar 1, por ejemplo haciendo i--). • Crear un programa que muestre los primeros ocho números pares (pista: en cada pasada habrá que aumentar de 2 en 2, o bien mostrar el doble del valor que hace de contador). En un “for”, realmente, la parte que hemos llamado “Incremento” no tiene por qué incrementar la variable, aunque ése es su uso más habitual. Es simplemente una ELECTROTECNIA 50 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II orden que se ejecuta cuando se termine la “Sentencia” y antes de volver a comprobar si todavía se cumple la condición de repetición. Por eso, si escribimos la siguiente línea: for (contador=1; contador<=10; ) la variable “contador” no se incrementa nunca, por lo que nunca se cumplirá la condición de salida: nos quedamos encerrados dando vueltas dentro de la orden que siga al “for”. SALIENDO DE UN BUCLE FOR. La construcción for(;;) no crea necesariamente un bucle infinito ya que la sentencia break de C, cuando se encuentra en el cuerpo de un bucle, provoca la terminación inmediata. El control del programa pasaría al código que sigue al bucle, como se muestra a continuación: #include <stdio.h> #include <iostream> Int main() { For ( ; ; ) /* Este bucle es infinito */ { ch = getchar(); /* Lee un carácter del teclado */ if (ch == ‘A’) break; /* y termina el programa cuando es A */ } printf(“Ud. A tecleado la letra A \n“); system("pause"); return 0; } OBSERVACIONES. Para “contar” utilizando la sentencia for, no necesariamente hay que usar números. Por ejemplo, podemos contar con letras así: #include <stdio.h> #include <iostream> Int main() { char letra; for (letra='a'; letra<='z'; letra++) printf("%c", letra); system("pause"); ELECTROTECNIA 51 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II return 0; } En este caso, empezamos en la “a” y terminamos en la “z”, aumentando de uno en uno. Si queremos contar de forma decreciente, o de dos en dos, o como nos interese, basta indicarlo en la condición de finalización del “for” y en la parte que lo incrementa: #include <stdio.h> #include <iostream> Int main() { char letra; for (letra='z'; letra>='a'; letra-=2) printf("%c", letra); system("pause"); return 0; } Ejercicios propuestos: • Crear un programa que muestre las letras de la Z (mayúscula) a la A (mayúscula, descendiendo). • Crear un programa que escriba en pantalla la tabla de multiplicar del 12. • Crear un programa que escriba en pantalla los números del 1 al 50 que sean múltiplos de 3 (pista: habrá que recorrer todos esos números y ver si el resto de la división entre 3 resulta 0). BUCLES ANIDADOS. Cuando un bucle está dentro de otro, el bucle más interno se dice que esta anidado. Los bucles anidados permiten resolver algunos problemas interesantes de programación. Los bucles “for” se pueden anidar (incluir uno dentro de otro), de modo que podríamos escribir las tablas de multiplicar del 1 al 5 con for anidados: #include <stdio.h> #include <iostream> int main() { int tabla, numero; for (tabla=1; tabla<=5; tabla++) ELECTROTECNIA 52 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II for (numero=1; <=12; numero++) printf("%d por %d es %d\n", tabla, numero, tabla*numero); system("pause"); return 0; return 0; } SENTENCIA BREAK: TERMINA EL BUCLE. La sentencia break tiene dos usos. El primer uso es terminar un case en la sentencia switch. Presentado antes de este capítulo cubriendo este uso. El segundo es forzar la terminación inmediata de un bucle, saltando la prueba condicional normal del bucle. Podemos salir de un bucle “for” antes de tiempo con la orden “break”, esta orden hace que el programa salte fuera del bucle for. /* Uso del Break */ #include <stdio.h> #include <iostream> Int main() { int i; for (i=0; i<=10; i++) { if (i==5) break; printf("%d ", i); } printf(“Siguiente línea después del for \n”); system("pause"); return 0; } El resultado de este programa es: 0 1 2 3 4 (en cuanto se llega al valor 5, se interrumpe el “for”, por lo que no se alcanza el valor 10 y muestra el mensaje Siguiente línea después del for). El siguiente ejemplo mostrara las iteraciones que se realizan en un bucle for utilizando el reloj de la computadora, para ello utilizaremos una variable que acumula las veces que se repite el for y otra que contara los segundos. /* Usando un temporizador */ ELECTROTECNIA 53 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II #include <stdio.h> #include <iostream> Int main() { int i; long int tm; printf(“¡Este programa comprueba el sentido del tiempo! \n”); printf(“Cuando esté preparado, pulsar ENTER, esperar 5 segundos \n”); printf(“Pulsar cualquier tecla para detener : “); getchar(); printf(“\n”); i = 0; tm = time(0); for( ; ; ) { i++; if (kbhit()) break; } if (time(0) – tm == 5) printf(“¡¡¡ Ganó !!! \n”); else printf(“Esta fuera de tiempo, Perdio \n”); printf(“El contador del bucle for llego a %d \n”,i); system("pause"); return 0; } En este programa estamos utilizando la función time() para leer la hora actual del sistema. La hora real del sistema se da en segundos y representa el lapso de tiempo desde las 00:00:00 hora. Debido a que el número de segundos excede al que guarda un entero, el programa debe usar una variable long int. La función kbhit() comprueba si el usuario ha presionado una tecla en el teclado, si es correcto devuelve verdad; si no, devuelve falso. SENTENCIA CONTINUE: FUERZA LA SIGUIENTE ITERACIÓN. La sentencia continue funciona de manera similar a la sentencia break. Sin embargo en vez de forzar la continuación, continue fuerza la siguiente iteración y salta cualquier otro código entre medias. El siguiente ejemplo ilustra el uso del comando continue en donde se detiene en una posición y luego salta a la siguiente iteración. ELECTROTECNIA 54 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II /* Uso del Continue */ #include <stdio.h> #include <iostream> Int main() { int i; for (i=0; i<=10; i++) { if (i==5) continue; printf("%d ", i); } system("pause"); return 0; } El resultado de este programa es: 0 1 2 3 4 6 7 8 9 10 En él podemos observar que no aparece el valor 5. Otro ejemplo, donde utilizando el comando continue mostrara solamente numero pares, cada vez que el programa genera un número impar se ejecutara un continue lo cual provocara que ocurra la siguiente iteración. /* Muestra solamente números pares */ #include <stdio.h> #include <iostream> Int main() { int x; for (x=0; x<100; x++) { if (x % 2) continue; printf("%d ", x); } system("pause"); return 0; } ELECTROTECNIA 55 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II EJERCICIOS RESUELTOS DE REFORZAMIENTO Y RAZONAMIENTO. ¿Qué escribiría en pantalla este fragmento de código? for (i=1; i<4; i++) printf("%d", i); Respuesta: los números del 1 al 3 (se empieza en 1 y se repite mientras sea menor que 4). ¿Qué escribiría en pantalla este fragmento de código? for (i=1; i>4; i++) printf("%d", i); Respuesta: no escribiría nada, porque la condición es falsa desde el principio. ¿Qué escribiría en pantalla este fragmento de código? for (i=1; i<=4; i++); printf("%d", i); Respuesta: escribe un 5, porque hay un punto y coma después del “for”, de modo que repite cuatro veces una orden vacía, y cuando termina, “i” ya tiene el valor 5. ¿Qué escribiría en pantalla este fragmento de código? for (i=1; i<4; ) printf("%d", i); Respuesta: escribe “1” continuamente, porque no aumentamos el valor de “i”, luego nunca se llegará a cumplir la condición de salida. ¿Qué escribiría en pantalla este fragmento de código? for (i=1; ; i++) printf("%d", i); Respuesta: escribe números continuamente, comenzando en uno y aumentando una unidad en cada pasada, pero sin terminar nunca. ¿Qué escribiría en pantalla este fragmento de código? for ( i= 0 ; i<= 4 ; i++) { if ( i == 2 ) continue ; printf( "%d " , i); } Respuesta: escribe los números del 0 al 4, excepto el 2. ELECTROTECNIA 56 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II ¿Qué escribiría en pantalla este fragmento de código? for ( i= 0 ; i<= 4 ; i++) { if ( i == 2 ) break ; printf( "%d " , i); } Respuesta: escribe los números 0 y 1 (interruumpe en el 2). ¿Qué escribiría en pantalla este fragmento de código? for ( i= 0 ; i<= 4 ; i++) { if ( i == 10 ) continue ; printf( "%d " , i); } Respuesta: escribe los números del 0 al 4, porque la condición del “continue” nunca se llega a dar. ¿Qué escribiría en pantalla este fragmento de código? for ( i= 0 ; i<= 4 ; i++) if ( i == 2 ) continue ; printf( "%d " , i); Respuesta: escribe 5, porque no hay llaves tras el “for”, luego sólo se repite la orden “if”. EL BUCLE WHILE. El Segundo bucle disponible en C es el while. Su formato general es: while(condición) sentencia; donde sentencia, como establecimos antes, puede ser una sentencia vacía, una sentencia única o un bloque de sentencias que se repetirán. La condición puede ser cualquier condición válida. El bucle itera mientras la condición sea verdad. Cuando llega a ser falsa, el control del programa pasa a la línea que sigue al bucle. Este ejemplo muestra una rutina de entrada desde el teclado que simplemente cicla hasta que se pula la letra A. /* Bucle while*/ #include <stdio.h> #include <iostream> Int main() { char ch; ELECTROTECNIA 57 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II ch = ‘\0’; /* Inicializa en nulo la variable ch */ while (ch != ‘A’) ch = getchar(); system("pause"); return 0; } Este ejemplo muestra en pantalla un número ingresado y además chequea si es positivo o negativo, termina cuando pulsa el CERO. /* Uso del bucle while*/ #include <stdio.h> #include <iostream> Int main() { int numero; printf("Teclea un número (0 para salir): "); scanf("%d", &numero); while (numero!=0) { if (numero > 0) printf("Es positivo \n"); else printf("Es negativo \n"); printf("Teclea otro número (0 para salir): "); scanf("%d", &numero); } system("pause"); return 0; } En este ejemplo, si se introduce 0 la primera vez, la condición es falsa y ni siquiera se entra al bloque del “while”, terminando el programa inmediatamente. Nota: si recordamos que una condición falsa se evalúa como el valor 0 y una condición verdadera como una valor distinto de cero, veremos que ese “while (numero != 0)” se podría abreviar como “while (numero)”. Ejercicios propuestos: • Crear un programa que pida al usuario su contraseña (numérica). Deberá terminar cuando introduzca como contraseña el número 4567, pero volvérsela a pedir tantas veces como sea necesario. • Crea un programa que escriba en pantalla los números del 1 al 10, usando “while”. • Crea un programa que escriba en pantalla los números pares del 26 al 10 (descendiendo), usando “while”. ELECTROTECNIA 58 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II • Crear un programa calcule cuantas cifras tiene un número entero positivo (pista: se puede hacer dividiendo varias veces entre 10). EL BUCLE DO / WHILE. Al contrario de los bucles for y while que comprueban la condición en lo alto del bucle, el bucle do/while la examinan en la parte baja del mismo. Esta característica provoca que un bucle do/while siempre se ejecuta al menos una vez. La forma general del bucle do/while es: do { sentencia; } while (condicion); Aunque no son necesarias las llaves cuando sólo está presente una sentencia, se usan normalmente por legibilidad y para evitar confusión (en la parte del lector, y no del compilador) con el while. Este programa usa un do/while para leer números desde el teclado hasta que uno de ellos es menor que 100: /* Usando la sentencia do - while */ #include <stdio.h> #include <iostream> Int main() { Int num; do { printf("Ingresa un Número (Mayor a 100 para salir): "); scanf("%d", &num); } while (num > 100); system("pause"); return 0; } Ejemplo que muestra el número de intentos que se usaron para encontrar un número mágico, pide leer desde el teclado un número y lo compara con el ELECTROTECNIA 59 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II numero aleatorio, en pantalla muestra un mensaje si este número leído por teclado es demasiado alto o demasiado bajo. /* Encuentra el número magico */ #include <stdio.h> #include <iostream> Int main() { int magico; int numero, intentos = 0; magico = rand(); do { printf(“Ingresa un Número : “); scanf(“%d”, &numero); if (numero == magico) { printf(“*** El número es correcto *** ”); printf(“%d es un número mágico \n”,magico); } else { If (numero > magico) printf(“ERROR Número demasiado Alto \n”); else printf(“ERROR Número demasiado Bajo \n”); } Intentos++; } While (numero != magico); printf(“Se hicieron %d intentos. \n”,intentos); system("pause"); return 0; } En el siguiente Ejemplo, se nos preguntará la clave al menos una vez. Mientras que la respuesta que demos no sea la correcta, se nos vuelve a preguntar. Finalmente, cuando tecleamos la clave correcta, el ordenador escribe “Aceptada” y termina el programa. /* Clave leída y asignada */ #include <stdio.h> #include <iostream> Int main() { int valida = 123; /* Asigna la clave que debe buscarse */ int clave; do ELECTROTECNIA 60 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II { printf("Introduzca su clave numérica: "); scanf("%d", &clave); if (clave != valida) printf(" Clave No válida! \n"); } while (clave != valida); printf("Clave Aceptada. \n"); system("pause"); return 0; } Ejercicios propuestos: • Crear un programa que pida números positivos al usuario, y vaya calculando la suma de todos ellos (terminará cuando se teclea un número negativo o cero). • Crea un programa que escriba en pantalla los números del 1 al 10, usando "do..while". • Crea un programa que escriba en pantalla los números pares del 26 al 10 (descendiendo), usando "do..while". • Crea un programa que pida al usuario su código de usuario (un número entero) y su contraseña numérica (otro número entero), y no le permita seguir hasta que introduzca como código 1024 y como contraseña 4567. ETIQUETAS Y GOTO. Aunque el goto tenía el favor de la comunidad de programadores hace unos años, se ha depreciado recientemente. Este libro no juzgará su validez para forma de control de programa. Sin embargo, seria establecido que no hay situaciones de programación que requieran el uso de goto (no es un elemento necesario para hacer completo el lenguaje). Sin embargo, el goto es un convenio que, si se usa con cuidado, puede ser beneficioso en ciertas situaciones de programación. El goto requiere una etiqueta para funcionar. Una etiqueta es un identificador valido de C que se sigue por dos puntos. Aun mas, la etiqueta debe estar en la misma función que usa el goto. Por ejemplo, se podría escribir un bucle que muestre los números del 1 al 50 usando goto y una etiqueta. /* Contador del 1 al 50 utilizando goto */ #include <stdio.h> #include <iostream> Int main() { int x = 0; ELECTROTECNIA 61 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II regresa: x++; printf(“El número es: %d \n”, x); if (x < 50) goto regresa; system("pause"); return 0; } El uso indisciplinado del goto está muy mal visto, porque puede ayudar a hacer programas llenos de saltos, difíciles de seguir. Pero en casos concretos puede ser muy útil, por ejemplo, para salir de un bucle muy anidado (un “for” dentro de otro “for” que a su vez está dentro de otro “for”: en este caso, “break” sólo saldría del “for” más interno). El siguiente ejemplo ilustra este caso: /* Uso del for con goto */ #include <stdio.h> #include <iostream> Int main() { int i, j; for (i=0; i<=5; i++) for (j=0; j<=20; j+=2) { if ((i==1) && (j>=7)) goto salida; printf("i vale %d y j vale %d. \n", i, j); } salida: printf("Fin del programa\n"); system("pause"); return 0; } Ahora pasaremos a explicar los comandos que nos permiten leer información desde el teclado y también los que nos permiten mostrarlo en pantalla, junto con las diferentes especificaciones de formato que podemos utilizar. ENTRADA / SALIDA BÁSICA. Vamos a ver con algo más de detalle las órdenes habituales de entrada y salida estándar: printf y scanf, que ya conocemos, putchar y getchar, que aún no habíamos visto. Todas ellas se encuentran definidas en <stdio.h> ELECTROTECNIA 62 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II PRINTF. Ya conocemos el manejo básico de la orden “printf”: printf( formato [, dato1, dato2, ...]) (El corchete indica que la cadena de texto de formato debe existir siempre, pero los datos adicionales son opcionales, pueden no aparecer). Esta orden muestra un texto formateado en pantalla. Para usarla es necesario incluir <stdio.h> al principio de nuestro programa. Hemos visto cómo emplearla para mostrar número enteros, números reales y caracteres. Ahora vamos a ver más detalles sobre qué podemos mostrar y cómo hacerlo: Los “especificadores de formato” que podemos usar son: c Un único carácter d Un número entero decimal (en base 10) con signo f Un número real (coma flotante) e Un número real en notación exponencial, usando la “e” minúscula E Un número real en notación exponencial, usando la “E” mayúscula g Usa “e” o “f” (el más corto), con “e” minúscula G Usa “e” o “f” (el más corto), con “E” mayúscula i Un número entero decimal con signo u Un número entero decimal sin signo (unsigned) h Corto (modificador para un entero) l Largo (modificador para un entero) x Un número entero decimal sin signo en hexadecimal (base 16) X Un número entero decimal sin signo en hexadecimal en mayúsculas o Un número entero decimal sin signo en octal (base 8) s Una cadena de texto (que veremos en el próximo tema) Si usamos %% se mostrará el símbolo de porcentaje en pantalla. Queda alguna otra posibilidad que todavía es demasiado avanzada para nosotros, y que comentaremos mucho más adelante, cuando hablemos de “punteros”. Además, las órdenes de formato pueden tener modificadores, que se sitúan entre el % y la letra identificativa del código. ELECTROTECNIA 63 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II > Si el modificador es un número, especifica la anchura mínima en la que se escribe ese argumento (por ejemplo: %5d). > Si ese número empieza por 0, los espacios sobrantes (si los hay) de la anchura mínima se rellenan con 0 (por ejemplo: %07d). > Si ese número tiene decimales, indica el número de dígitos totales y decimales si los que se va a escribir es un número (por ejemplo %5.2f), o la anchura mínima y máxima si se trata de una cadena de caracteres (como %10.10s). > Si el número es negativo, la salida se justificará a la izquierda, dejando espacios en blanco al final (en caso contrario, si no se dice nada, se justifica a la derecha, dejando los espacios al principio). Vamos a ver un ejemplo de todo esto: /* Detalles del printf */ #include <stdio.h> #include <iostream> Int main() { int entero = 1234; int enteroNeg = -1234; float real = 234.567; char letra = 'E'; int contador; printf("El número entero vale %d en notación decimal, \n", entero); printf(" y %o en notación octal, \n", entero); printf(" y %x en notación hexadecimal, \n", entero); printf(" y %X en notación hexadecimal en mayúsculas, \n", entero); printf(" y %ld si le hacemos que crea que es entero largo, \n", entero); printf(" y %10d si obligamos a una cierta anchura, \n", entero); printf(" y %-10d si ajustamos a la izquierda. \n", entero); printf("El entero negativo vale %d \n", enteroNeg); printf(" y podemos hacer que crea que es positivo: %u (incorrecto). \n", enteroNeg); printf("El número real vale %f en notación normal \n", real); printf(" y %5.2f si limitamos a dos decimales, \n", real); printf(" y %e en notación científica (exponencial). \n", real); printf("La letra es %c y un texto es %s. \n", letra, "Hola"); printf(" Podemos poner \"tanto por ciento\": 50%%. \n"); system("pause"); return 0; } ELECTROTECNIA 64 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II El resultado de este programa sería: El número entero vale 1234 en notación decimal, y 2322 en notación octal, y 4d2 en notación hexadecimal, y 4D2 en notación hexadecimal en mayúsculas, y 1234 si le hacemos que crea que es entero largo, y 1234 si obligamos a una cierta anchura, y 1234 si ajustamos a la izquierda. El entero negativo vale -1234 y podemos hacer que crea que es positivo: 4294966062 (incorrecto). El número real vale 234.567001 en notación normal y 234.57 si limitamos a dos decimales, y 2.345670e+002 en notación científica (exponencial). La letra es E y el texto Hola. Podemos poner "tanto por ciento": 50%. Casi todo es fácil de seguir, pero aun así vemos alguna cosa desconcertante... Por ejemplo, ¿por qué el número real aparece como 234.567001, si nosotros lo hemos definido como 234.567? Hay que recordar que los números reales se almacenan con una cierta pérdida de precisión. En un “float” sólo se nos garantiza que unas 6 cifras sean correctas. Si mostramos el número con más de 6 cifras (estamos usando 9), puede que el resultado no sea totalmente correcto. Si esta pérdida de precisión es demasiado grande para el uso que queramos darle, deberemos usar otro tipo de datos, como double. Lo de que el número negativo quede mal cuando lo intentamos escribir como positivo, también nos suena conocido: si el primer bit de un número con signo es uno, indica que es un número negativo, mientras que en un número positivo el primer bit es la cifra binaria más grande (lo que se conoce como “el bit más significativo”). Por eso, tanto el número -1234 como el 4294966062 se traducen en la misma secuencia de ceros y unos, que la sentencia “printf” interpreta de una forma u otra según le digamos que el número el positivo o negativo. Como curiosidad, ese número 4294966062 sería un valor distinto (64302) si usáramos un compilador de 16 bits en vez de uno de 32, porque sería una secuencia de 16 ceros y unos, en vez de una secuencia de 32 ceros y unos. ELECTROTECNIA 65 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Otra opción más avanzada es que si usamos un asterisco (*) para indicar la anchura o la precisión, los primeros datos de la lista serán los valores que se tomen para indicar la anchura y la precisión real que se usarán: int minimo = 5; int máximo = 10; printf("%*.*s", minimo, maximo, "mensaje"); Ejercicios propuestos: • Un programa que pida al usuario un número entero y muestre sus equivalentes en formato hexadecimal y en octal. Deberá seguir pidiendo (y convirtiendo) números hasta que se introduzca 0. • Un programa que pida al usuario 2 números reales y muestre su división con 2 decimales (excepto si el segundo es 0; en ese caso, deberá decir “no se puede dividir”). SCANF. Como ya sabemos, el uso de “scanf” recuerda mucho al de “printf”, salvo porque hay que añadir el símbolo & antes de los nombres de las variables en las que queremos almacenar los datos. Aun así, los códigos de formato no son exactamente los mismos. Vamos a ver los más importantes: c Un único carácter d Un número entero decimal (base 10) con signo D Un entero largo en base 10 sin signo f Un número real (coma flotante) e,E Un número real en notación exponencial g,G Permite “e” o “f” i Un número entero con signo I Un número entero largo con signo u Un número entero decimal sin signo (unsigned) U Un número entero decimal largo sin signo (unsigned) h Corto (modificador, para un entero) l Largo (modificador, para un entero) x Un número entero sin signo en hexadecimal (base 16) X Un número entero largo sin signo en hexadecimal o Un número entero sin signo en octal (base 8) O Un número entero largo sin signo en octal (base 8) s Una cadena de texto (que veremos en el próximo tema) ELECTROTECNIA 66 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Como vemos, la diferencia más importante es que si en vez de un entero queremos un entero largo, se suele usar el mismo carácter escrito en mayúsculas. Al igual que en “printf”, se puede indicar un número antes del identificador, que nos serviría para indicar la cantidad máxima de caracteres a leer. Por ejemplo, “scanf("%10s", &texto)” nos permitiría leer un texto de un tamaño máximo de 10 letras. Aun así, “scanf” a veces da resultados desconcertantes, por lo que no es la orden más adecuada cuando se pretende crear un entorno amigable. Más adelante veremos formas alternativas de leer del teclado. Ejercicios propuestos: • Un programa que pida al usuario un número hexadecimal y muestre su equivalente en base 10. • Un programa que pida al usuario un número octal y muestre su equivalente en base 10. • Un programa que pida al usuario una letra, después le pida una segunda letra, y las muestre en el orden contrario al que se introdujeron. PUTCHAR Es una forma sencilla de escribir un único carácter en la pantalla: putchar('A'); o si usamos una variable: putchar(x); GETCHAR Lo habíamos usado desde un principio en algunos entornos de programación para Windows, como forma de detener momentáneamente la ejecución. Realmente es más que eso: lee el siguiente carácter que esté disponible en el buffer del teclado (una memoria intermedia que almacena todas las pulsaciones de teclas que hagamos): letra = getchar(); Si no quedaran más letras por leer, el valor que nos daría es EOF, una constante predefinida que nos indicará el final de un fichero (End Of File) o, en este caso, de la entrada disponible por teclado. Se usaría así: letra = getchar(); if (letra==EOF) printf("No hay más letras"); Vamos a ver un ejemplo del uso de getchar y de putchar: ELECTROTECNIA 67 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II #include <stdio.h> #include <iostream> Int main() { char letra1, letra2; printf("Introduce dos letras y pulsa ENTER: "); letra1 = getchar(); letra2 = getchar(); printf("Has tecleado: "); putchar(letra1); printf(" y también %c", letra2); system("pause"); return 0; } Vemos que aunque “getchar” lea tecla a tecla, no se analiza lo que hemos tecleado hasta que se pulsa ENTER. Si tecleamos varias letras, la primera vez que usemos getchar nos dirá cuál era la primera, la siguiente vez que usemos getchar nos dirá la segunda letra y así sucesivamente. En este ejemplo sólo leemos dos letras. Si se teclean tres o más, las últimas se pierden. Si se teclea una letra y se pulsa ENTER, “letra1” será la letra tecleada... y “letra2” será el ENTER (el carácter ‘\n’ de avance de línea). Estos problemas también los tenemos si intentamos leer letra a letra con “scanf("%c", ...” así que para hacer esto de forma fiable necesitaremos otras órdenes, que no son estándar en C sino que dependerán de nuestro compilador y nuestro sistema operativo, y que veremos más adelante. Una alternativa sería una segunda orden “getchar” para absorber la pulsación de la tecla Intro: tecla = getchar(); getchar(); O bien leer dos caracteres con “scanf” (la letra esperada y el Intro que queremos absorber): scanf("%c%c", &tecla); ELECTROTECNIA 68 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II CAPÍTULO 6 6 FUNCIONES. En este capítulo se tratará: Funciones. La sentencia RETURN. Reglas de ámbito de las Funciones. Variables Locales. Parámetros Formales. Variables Globales Funciones Matemáticas. Pero casi todo son funciones… ELECTROTECNIA 69 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II FUNCIONES. En C las funciones son bloques construidos en los que discurren todo el programa de actividades. En este capítulo se estudiarán en detalle, aprendiendo cosas tales como la forma de hacer que una función modifique sus argumentos, el ámbito de las reglas y el tiempo de vida de las variables, la forma de crear funciones recursivas y algunas propiedades especiales de la función main(). El formato general de una función en C es: Especificador_de_tipo Nombre_de_función (Lista_de_parametros) declaraciones_de_parametros { cuerpo_de_la_función } El especificador_de_tipo especifica el tipo del valor que la función devolverá mediante el uso de return. El valor puede ser de cualquier tipo valido. Si no se especifica un valor, entonces la computadora asume por defecto que la función devolverá un resultado entero. Los programas que se han estado usando hasta ahora hacen uso de este hecho. Si los revisa, verá que todas las funciones devolverán valores enteros o ningún valor (que es válido). El Nombre_de_función, toda función debe tener un nombre que sea fácil de reconocer y además indique de que se trata la función, no utilizar para esto caracteres especiales (%,& etc). La Lista_de_parametros es una lista de nombres de variables separados por comas que recibe los valores de los argumentos cuando se llama a la función. No se tiene porqué incluir parámetros en una función, en este caso la lista de parámetros estará vacía. Sin embargo, incluso si no se incluyen parámetros, se precisan los paréntesis. LA SENTENCIA RETURN. Esta sentencia es utilizada para devolver el valor de la función, o para salir de ella al programa que lo llamo inicialmente, también es utilizada en el programa principal para terminarlo. El siguiente programa muestra el uso del return en la función y en el programa: ELECTROTECNIA 70 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II #include <stdio.h> #include <iostream> int potencia(int base, int exponente) { int temporal = 1; int i; for(i=1; i<=exponente; i++) temporal *= base; return temporal; } Int main() { int num1, num2, num3; printf("Introduzca un número que será la base: "); scanf("%d", &num1); printf("Introduzca el exponente: "); scanf("%d", &num2); num3 = potencia(num1,num2); printf("%d elevado a %d es %d \n", num1, num2, num3); system("pause"); return 0; } Como se aprecia en el ejemplo se leen dos números enteros en las variables num1 y num2, los cuales son pasados a la función potencia, en donde se realiza la operación de elevar un número a una potencia dada, luego se retorna con el comando return el resultado de dicha operación, la cual se almacena en la variable num3, para luego ser mostrada en pantalla con el comando printf. Ejercicios propuestos: • Crear una función que calcule el cubo de un número real (float). El resultado deberá ser otro número real. Probar esta función para calcular el cubo de 3.2 y el de 5. • Crear una función que calcule cual es el menor de dos números enteros. El resultado será otro número entero. • Crear una función llamada “signo”, que reciba un número real, y devuelva un número entero con el valor: -1 si el número es negativo, 1 si es positivo o 0 si es cero. /* Funcion que calcula edad */ #include <stdio.h> #include <iostream> ELECTROTECNIA 71 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II int edad(int a, int b) { int edad; edad = a - b; return(edad); } int main() /* Cuerpo del programa */ { int anyoact, anyonac; printf("Introduce el año actual : "); scanf("%d", &anyoact); printf("\n"); printf("Introduce el año de tu nacimiento : "); scanf("%d", &anyonac); printf("\n"); printf("Tu edad aproximada es %d años \n", edad(anyoact,anyonac)); printf("\n"); system("pause"); return 0; } ---------------------------------------------------------------------------------------------------------/* Funcion que devuelve el Numero Mayor */ #include <stdio.h> #include <iostream> float mayor(float x, float y, float z) { float mayor; if ((x > y) && (x > z)) mayor = x; else if (y > z) mayor = y; else mayor = z; return(mayor); } int main() /* Cuerpo del programa */ { float num1,num2,num3,num4; printf("Programa que detecta cual es el mayor de 3 numeros \n"); printf("\n"); printf("Ingrese el Primer Número (Entero o Decimal) : "); scanf("%f", &num1); printf("Ingrese el Segundo Número (Entero o Decimal) : "); ELECTROTECNIA 72 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II scanf("%f", &num2); printf("Ingrese el Tercer Número (Entero o Decimal) : "); scanf("%f", &num3); printf("\n"); num4 = mayor(num1,num2,num3); printf("El mayor de los tres números es %5.2f \n",num4); printf("\n"); system("pause"); return 0; } ---------------------------------------------------------------------------------------------------------/* Funcion que calcula el factorial de un número entero */ #include <stdio.h> #include <iostream> int calcula_facto(int x) { int calcula_facto = x; int i; for (i=x-1; i>=1; i--) { calcula_facto = calcula_facto * i; } return(calcula_facto); } int main() /* Cuerpo del programa */ { int num1,facto; printf("Calcula el factorial de un número Entero \n"); printf("\n"); printf("Ingrese un Número Entero (1 - 16) : "); scanf("%d", &num1); printf("\n"); if ((num1 > 0) && (num1 < 17)) { facto = calcula_facto(num1); printf("El factorial dé %d es %d \n",num1,facto); printf("\n"); } system("pause"); return 0; } ELECTROTECNIA 73 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II REGLAS DE ÁMBITO DE LAS FUNCIONES. Las reglas de ámbito de un lenguaje gobiernan si un trozo de código sabe o no, o accede o no, a otro trozo de código o datos. En C cada función es un bloque discreto de código. Un código de función es exclusivo de la función y no es accesible a ninguna sentencia en otra función excepto a través de otra función. (Por ejemplo, no puede usar goto para saltar en medio de otra función). El código que comprende el cuerpo de la función está oculto del resto del programa y (a menos que el código use variables o datos globales) no puede afectar ni ser afectado por otras partes del programa. Hay tres tipos de variables: variables locales, parámetros formales y variables globales. Las reglas de ámbito gobiernan como pueden acceder otras partes del programa a estos tipos y establece el tiempo de vida de las variables. VARIABLES LOCALES. Como se sabe, las variables que se declaran dentro de una función se llaman variables locales. Una variable se puede declarar en un bloque de código y ser local a este bloque. Así las variables locales no son conocidas fuera de su propio bloque de código y su ámbito está limitado al bloque en el que se declaran. Ejemplos: function 1( ) { Int x; x = 10; } function 2( ) { Int x; x = -199; } En estas dos funciones la variable entera x se declara dos veces. La x de la primera función no tiene conexión, o relación, con la x de la segunda función, cada x es independiente y solo funciona dentro de cada función. PARÁMETROS FORMALES. Si una función usa argumentos, entonces se debe declarar variables que aceptaran los valores de los argumentos. Estas variables se llaman los parámetros formales de la función. Estos se comportan como cualquier otra variable local en la función. Como se muestra en el siguiente ejemplo: ELECTROTECNIA 74 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II function (float x, float y, float z) { float mayor; if ((x > y) && (x > z)) mayor = x; else if (y > z) mayor = y; else mayor = z; return(mayor); } En esta función se están pasando los valores en las variables X, Y y Z los cuales ya no son declarados dentro del programa. Pero como se aprecia son utilizados para realizar los cálculos necesarios. VARIABLES GLOBALES. Al contrario de las variables locales, las globales se conocen a través del programa entero y se pueden usar en cualquier trozo de código. En esencia, su ámbito es global al programa. Las variables globales también guardaran sus valores durante la ejecución entera del programa. Se pueden crear variables globales declarándolas fuera de cualquier función. Cualquier función puede acceder a ellas sin tener en cuenta en que función este dicha expresión. Veamos el siguiente ejemplo: #include <stdio.h> #include <iostream> int contador; /* Las variables globales de declaran al iniciar el programa */ function 1 ( ) { printf(“Contador es %d”, contador); /* Muestra 100 */ } Int main( ) { contador = 100; function 1 ( ); } Como se aprecia la variable contador solo es declarado al iniciar el programa, luego puede ser utilizado tanto dentro del main como de la función. ELECTROTECNIA 75 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II ALGUNAS FUNCIONES ÚTILES. NÚMEROS ALEATORIOS. En un programa de gestión o una utilidad que nos ayuda a administrar un sistema, no es habitual que podamos permitir que las cosas ocurran al azar. Pero los juegos se encuentran muchas veces entre los ejercicios de programación más completos, y para un juego sí suele ser conveniente que haya algo de azar, para que una partida no sea exactamente igual a la anterior. Generar números al azar (“números aleatorios”) usando C no es difícil. Si nos ceñimos al estándar ANSI C, tenemos una función llamada “rand()”, que nos devuelve un número entero entre 0 y el valor más alto que pueda tener un número entero en nuestro sistema. Generalmente, nos interesarán números mucho más pequeños (por ejemplo, del 1 al 100), por lo que “recortaremos” usando la operación módulo (“%”, el resto de la división). Vamos a verlo con algún ejemplo: Para obtener un número del 0 al 9 haríamos x = rand() % 10; Para obtener un número del 0 al 29 haríamos x = rand() % 30; Para obtener un número del 10 al 29 haríamos x = rand() % 20 + 10; Para obtener un número del 1 al 100 haríamos x = rand() % 100 + 1; Para obtener un número del 50 al 60 haríamos x = rand() % 11 + 50; Para obtener un número del 101 al 199 haríamos x = rand() % 100 + 101; Pero todavía nos queda un detalle para que los números aleatorios que obtengamos sean “razonables”: los números que genera un ordenador no son realmente al azar, sino “pseudo-aleatorios”, cada uno calculado a partir del siguiente. Podemos elegir cual queremos que sea el primer número de esa serie (la “semilla”), pero si usamos uno prefijado, los números que se generarán serán siempre los mismos. Por eso, será conveniente que el primer número se base en el reloj interno del ordenador: como es casi imposible que el programa se ponga en marcha dos días exactamente a la misma hora (incluyendo milésimas de segundo), la serie de números al azar que obtengamos será distinta cada vez. La “semilla” la indicamos con “srand”, y si queremos basarnos en el reloj interno del ordenador, lo que haremos será srand(time(0)); antes de hacer ninguna llamada a “rand()”. ELECTROTECNIA 76 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Para usar “rand()” y “srand()”, deberíamos añadir otro fichero a nuestra lista de “includes”, el llamado “stdlib”: #include <stdlib.h> Si además queremos que la semilla se tome a partir del reloj interno del ordenador (que es lo más razonable), deberemos incluir también “time”: #include <time.h> Vamos a ver un ejemplo, que muestre en pantalla un número al azar entre 1 y 10: #include <stdio.h> #include <iostream> #include <stdlib.h> #include <time.h> int main() { int n; srand(time(0)); n = rand() % 10 + 1; printf("Un número entre 1 y 10: %d \n", n); system("pause"); return 0; } Ejercicio propuesto: • Crear un programa que genere un número al azar entre 1 y 100. El usuario tendrá 6 oportunidades para acertarlo. FUNCIONES MATEMÁTICAS. Dentro del fichero de cabecera “math.h” tenemos acceso a muchas funciones matemáticas predefinidas en C, como: • acos(x): Arco coseno • asin(x): Arco seno • atan(x): Arco tangente • atan2(y,x): Arco tangente de y/x (por si x o y son 0) • ceil(x): El valor entero superior a x y más cercano a él • cos(x): Coseno • cosh(x): Coseno hiperbólico • exp(x): Exponencial de x (e elevado a x) • fabs(x): Valor absoluto ELECTROTECNIA 77 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II • • • • • • • • • • floor(x): El mayor valor entero que es menor que x fmod(x,y): Resto de la división x/y log(x): Logaritmo natural (o neperiano, en base “e”) log10(x): Logaritmo en base 10 pow(x,y): x elevado a y sin(x): Seno sinh(x): Seno hiperbólico sqrt(x): Raíz cuadrada tan(x): Tangente tanh(x): Tangente hiperbólica (todos ellos usan parámetros X e Y de tipo “double”) y una serie de constantes como M_E, el número “e”, con un valor de 2.71828... M_PI, el número “Pi”, 3.14159... La mayoría de ellas son específicas para ciertos problemas matemáticos, especialmente si interviene la trigonometría o si hay que usar logaritmos o exponenciales. Pero vamos a destacar las que sí pueden resultar útiles en situaciones más variadas: La raíz cuadrada de 4 se calcularía haciendo x = sqrt(4); La potencia: para elevar 2 al cubo haríamos y = pow(2, 3); El valor absoluto: si queremos trabajar sólo con números positivos usaríamos n = fabs(x); Ejercicios propuestos: • Crear un programa que halle cualquier raíz de un número. El usuario deberá indicar el número (por ejemplo, 2) y el índice de la raiz (por ejemplo, 3 para la raíz cúbica). Pista: hallar la raíz cúbica de 2 es lo mismo que elevar 2 a 1/3. • Crear un programa que resuelva ecuaciones de segundo grado, del tipo ax2 + bx + c = 0. El usuario deberá introducir los valores de a, b y c. Pista: la solución se calcula con x = ? raíz (b2 – 4·a·c) / 2·a PERO CASI TODO SON FUNCIONES… Pero en C hay muchas más funciones de lo que parece. De hecho, casi todo lo que hasta ahora hemos llamado “órdenes”, son realmente “funciones”, y la mayoría de ellas incluso devuelven algún valor, que hasta ahora habíamos ELECTROTECNIA 78 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II despreciado en muchos casos. Vamos a hacer un repaso rápido a las funciones que ya conocemos y el valor que devuelven: Función Valor devuelto main printf scanf putchar getchar gets puts int int int int int char* int strcpy, strncpy strcat strcmp char* sprintf int sscanf fopen fclose fputs fgets feof fprintf int FILE* int int char* int int fscanf fgetc fputc fread fwrite fseek int int int int int int ftell long (size_t) char* int Significado Programa terminado correctamente (0) o no (otro) Número de caracteres escritos Número de datos leídos, o EOF si hay error El carácter escrito, o EOF si hay algún error Siguiente carácter de la entrada, o EOF en caso de error Cadena si todo va bien o NULL si hay error EOF si hay algún error, otro número (un entero positivo) si no lo hay Cadena resultado de la asignación Cadena resultado 0 si las cadenas son iguales, <0 si la primera “es menor” o >0 si la primera “es mayor” Número de caracteres almacenados en la cadena (en alguna versión, como BSD, devuelve la cadena creada) Número de datos leídos, o EOF si hay error NULL si hay error 0 si todo va bien o EOF si hay error EOF si hay algún error, otro número (no especificado) si no lo hay NULL si hay error o fin de fichero 0 si no es final de fichero, otro valor si lo es Número de bytes escritos (puede no ser fiable si se está escribiendo a un buffer antes de mandar a disco). Número de datos leídos, o EOF si hay error El carácter leido, o EOF si hay algún error El carácter escrito, o EOF si hay algún error Número de bytes leidos (0 o menor de lo previsto si hay error) Número de bytes escritos (0 o menor de lo previsto si hay error) 0 si se ha saltado correctamente; otro valor si el fichero no está abierto o no se ha podido saltar Posición actual en el fichero (en bytes) o -1L en caso de error Por el contrario, las siguientes “órdenes” no son funciones, sino “palabras reservadas” del lenguaje C: if, else, do, while, for, switch, case, default, break, int, char, float, double, struct. Ejercicios propuestos: • Crear una función que calcule el valor de elevar un número entero a otro número entero (por ejemplo, 5 elevado a 3 = 53 = 5 ·5 · 5 = 125). Esta función se debe crear de forma recursiva. • Como alternativa, crear una función que calcule el valor de elevar un número entero a otro número entero de forma NO recursiva (lo que llamaremos “de forma iterativa”), usando la orden “for”. ELECTROTECNIA 79 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II • • • • • • Crear un programa que emplee recursividad para calcular un número de la serie Fibonacci (en la que los dos primeros elementos valen 1, y para los restantes, cada elemento es la suma de los dos anteriores). Crear un programa que emplee recursividad para calcular la suma de los elementos de un vector. Crear un programa que emplee recursividad para calcular el mayor de los elementos de un vector. Crear un programa que emplee recursividad para dar la vuelta a una cadena de caracteres (por ejemplo, a partir de "Hola" devolvería "aloH"). Crear, tanto de forma recursiva como de forma iterativa, una función diga si una cadena de caracteres es simétrica (un palíndromo). Por ejemplo, "DABALEARROZALAZORRAELABAD" es un palíndromo. Crear un programa que encuentre el máximo común divisor de dos números usando el algoritmo de Euclides: Dados dos números enteros positivos m y n, tal que m > n, para encontrar su máximo común divisor, es decir, el mayor entero positivo que divide a ambos: - Dividir m por n para obtener el resto r (0 = r < n); - Si r = 0, el MCD es n.; - Si no, el máximo común divisor es MCD(n,r). ELECTROTECNIA 80 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II CAPÍTULO 7 7 ESTRUCTURA DE AGRUPAMIENTO DE VARIABLES En este capítulo se tratará: Arrays y Cadenas. Arrays Unidimensionales. Cadenas de Caracteres. ¿Cómo acceder a las letras de una cadena? Longitud de la cadena. Entrada/Salida para Cadenas: Gets, Puts. Asignando a una cadena el valor de otra: strcpy, strncpy; strcat. Otras funciones de cadenas: sprintf, sscanf, strstr, … Valor Inicial de una cadena de texto Tablas Bidimensionales. Arrays Indeterminados. Estructuras. Arrays de Estructuras. Estructuras Anidadas. ELECTROTECNIA 81 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II ESTRUCTURA DE AGRUPAMIENTO DE VARIABLES. ARRAYS Y CADENAS. Un array es una colección de variables del mismo tipo que se referencian utilizando un nombre común. En C, un array consta de posiciones de memoria contiguas. La dirección más baja corresponde al primer elemento y la más alta al último. Un array puede tener una o varias dimensiones. Para acceder a un elemento específico de un array se usa un índice. El array que se usará más frecuentemente es el de caracteres. Como C no tiene incorporador, el tipo de datos cadena usa un array de caracteres. Como se verá muy pronto, este método para la cadena permite más poder y flexibilidad que los disponibles en los lenguajes que usan tipos específicos de cadena. ARRAYS UNIDIMENSIONALES. El formato general para la declaración de un array unidimensional es: Tipo nombre_var[tamaño]; Donde Tipo declara el tipo base del array. El tipo base determina el tipo de datos de cada elemento del array. Nombre_var, es el nombre que usara la variable para ser usada en el programa. El tamaño define cuantos elementos guardara el array. Por ejemplo, la siguiente declara un array llamado ejemplo de diez elementos de tipo entero: Int ejemplo[10]; En C, todos los arrays usan cero como índice del primer elemento. Por tanto el ejemplo anterior declara un array de enteros de 10 elementos, donde el primero será el elemento 0 y el ultimo el elemento 9. Los array son muy comunes en programación porque permiten tratar fácilmente muchas variables relacionadas. Por ejemplo: /* Programa que guarda las notas de 5 alumnos en un array */ #include <stdio.h> #include <iostream> int main() { int n[5]; n[ 0 ] = 15; n[ 1 ] = 10; n[ 2 ] = 18; n[ 3 ] = 14; n[ 4 ] = 7; printf(“La nota del tercer alumno es %d \n”, n[ 2 ]); system("pause"); ELECTROTECNIA 82 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II return 0; } Los arrays unidimensionales son esencialmente listas de información del mismo tipo. Por ejemplo, después de ejecutar este programa: /* Lista de Letras */ #include <stdio.h> #include <iostream> int main() { char ch[7]; int i; for (i = 0; i < 7; i++) ch[ i ] = ‘A’ + I; for (i = 0; i < 7; i++) printf(“%c \n”, ch[ i ]); system("pause"); return 0; } En pantalla se mostrara la lista de caracteres de la A hasta la G. El siguiente ejemplo de array memoriza 5 números enteros y halla su suma: #include <stdio.h> #include <iostream> int main() { int numero[5]; /* Un array de 5 números enteros */ int suma; /* Un entero que será la suma */ numero[0] = 200; /* Les damos valores */ numero[1] = 150; numero[2] = 100; numero[3] = -50; numero[4] = 300; suma = numero[0] + numero[1] + numero[2] + numero[3] + numero[4]; printf("Su suma es %d \n", suma); system("pause"); return 0; } Ejercicios propuestos: • Un programa que pida al usuario 4 números, los memorice (utilizando una tabla), calcule su media aritmética y después muestre en pantalla la media y los datos tecleados. ELECTROTECNIA 83 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II • Un programa que pida al usuario 5 números reales y luego los muestre en el orden contrario al que se introdujeron. También se puede indicar el valor inicial que tendrá cada elemento del array. Como es el caso del siguiente ejemplo: #include <stdio.h> #include <iostream> int main() { int numero[5] = {200, 150, 100, -50, 300}; int suma = 0; int i; for (i=0; i<=4; i++) suma += numero[ i ]; printf("Su suma es %d \n", suma); system("pause"); return 0; } En este ejemplo como se puede apreciar los valores del array están asignados al declarar la variable, luego para hallar la suma usamos un contador for, el cual recorrerá todas las posiciones del array desde el 0 hasta el 4 y acumulara la sumatoria en la variable suma que ha sido declarada inicialmente como 0. Ejercicios propuestos: • Un programa que almacene en una tabla el número de días que tiene cada mes (supondremos que es un año no bisiesto), pida al usuario que le indique un mes (1=enero, 12=diciembre) y muestre en pantalla el número de días que tiene ese mes. • Un programa que almacene en una tabla el número de días que tiene cada mes (año no bisiesto), pida al usuario que le indique un mes (ej. 2 para febrero) y un día (ej. el día 15) y diga qué número de día es dentro del año (por ejemplo, el 15 de febrero sería el día número 46, el 31 de diciembre sería el día 365). • Crear un programa que pida al usuario 10 números y luego los muestre en orden inverso (del último al primero). • Crear un programa que pida al usuario 10 números, calcule su media y luego muestre los que están por encima de la media. ELECTROTECNIA 84 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II CADENAS DE CARACTERES (STRINGS). Para las cadenas de texto, la situación se complica un poco: se crean como “arrays” de caracteres. Están formadas por una sucesión de caracteres terminada con un carácter nulo (\0), de modo que tendremos que reservar un espacio más de las que necesitamos. Por ejemplo, para guardar el texto “Hola” que tiene cuatro caracteres, tendríamos que reservar cinco posiciones, para lo cual usaríamos “char saludo[ 5 ]”. Este carácter nulo lo utilizarán todas las órdenes estándar que tienen que ver con manejo de cadenas: las que las muestran en pantalla, las que comparan cadenas, las que dan a una cadena un cierto valor, etc. Por tanto, si no queremos usar esas funciones y sólo vamos a acceder letra a letra (como hemos hecho con los números en los últimos ejemplos) nos bastaría con “char saludo[4]”, pero si queremos usar cualquiera de esta posibilidades (será lo habitual), deberemos tener la prudencia de reservar una letra más de las “necesarias”, para ese carácter nulo, que indica el final de la cadena, y que todas esas órdenes utilizan para saber cuándo deben terminar de manipular la cadena. Un primer ejemplo que nos pidiese nuestro nombre y nos saludase sería: #include <stdio.h> #include <iostream> int main() { char texto[40]; /* Para guardar hasta 39 letras */ printf("Introduce tu nombre: "); scanf("%s", &texto); printf("Hola, %s \n", texto); system("pause"); return 0; } Si la cadena contiene espacios, se lee sólo hasta el primer espacio. Esto se puede considerar una ventaja o un inconveniente, según el uso que se le quiera dar. Siendo estrictos, no hace falta el “&” en “scanf” cuando estamos leyendo cadenas de texto (sí para los demás tipos de datos). ELECTROTECNIA 85 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II ¿Cómo acceder a las letras que forman una cadena? Podemos leer (o modificar) una de las letras de una cadena de igual forma que leemos o modificamos los elementos de cualquier tabla: el primer elemento será texto[0], el segundo será texto[1] y así sucesivamente: Por ejemplo queremos mostrar el carácter inicial de nuestro nombre: #include <stdio.h> #include <iostream> int main() { char texto[ 40 ]; /* Para guardar hasta 39 letras */ printf("Introduce tu nombre: "); scanf("%s", texto); printf("Hola, %s. Tu inicial es %c \n", texto, texto[ 0 ]); system("pause"); return 0; } LONGITUD DE LA CADENA. En una cadena que definamos como “char texto[40]” lo habitual es que realmente no ocupemos las 39 letras que podríamos llegar a usar. Si guardamos 9 letras (y el carácter nulo que marca el final), tendremos 30 posiciones que no hemos usado. Pero estas 30 posiciones generalmente contendrán “basura”, lo que hubiera previamente en esas posiciones de memoria, porque el compilador las reserva para nosotros pero no las “limpia”. Si queremos saber ¿cuál es la longitud real de nuestra cadena? tenemos dos opciones: • Podemos leer la cadena carácter por carácter desde el principio hasta que encontremos el carácter nulo (\0) que marca el final. • Hay una orden predefinida que lo hace por nosotros, y que nos dice cuántas letras hemos usado realmente en nuestra cadena. Es “strlen”, que se usa así: #include <stdio.h> #include <string.h> #include <iostream> int main() { char texto[40]; printf("Introduce una palabra: "); scanf("%s", texto); printf("Has tecleado %d letras", strlen(texto)); system("pause"); return 0; } ELECTROTECNIA 86 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Como es de esperar, si escribimos “Hola”, esta orden nos dirá que hemos tecleado 4 letras (no cuenta el \0 que se añade automáticamente al final). Si empleamos “strlen”, o alguna de las otras órdenes relacionadas con cadenas de texto que veremos en este tema, debemos incluir <string.h> , que es donde se definen todas ellas. Ejercicios propuestos: • Un programa que te pida tu nombre y lo muestre en pantalla, separando cada letra de la siguiente con un espacio en blanco. Por ejemplo, si tu nombre es “Manuel”, debería mostrarse en pantalla “M a n u e l”. • Un programa que te pida tu nombre y lo muestre en pantalla al revés. Por ejemplo, si tu nombre es “Manuel”, debería aparecer en pantalla “leunaM”. ENTRADA/SALIDA PARA CADENAS: GETS, PUTS. Hemos visto que si leemos una cadena de texto con “scanf”, se paraba en el primer espacio en blanco y no seguía leyendo a partir de ese punto. Existen otras órdenes que están diseñadas específicamente para manejar cadenas de texto, y que nos podrán servir en casos como éste. Para leer una cadena de texto (completa, sin parar en el primer espacio), usaríamos la orden “gets”, así: gets(texto); De igual modo, para escribir un texto en pantalla podemos usar “puts”, que muestra la cadena de texto y avanza a la línea siguiente: puts(texto); Sería equivalente a esta otra orden: printf("%s \n", texto); Ejercicio propuesto: • Un programa que te pida una frase y la muestre en pantalla sin espacios. Por ejemplo, si la frase es “Hola, como estás”, debería aparecer en pantalla “Hola,comoestás”. Existe un posible problema cuando se mezcla el uso de "gets" y el de "scanf": si primero leemos un número, al usar "scanf("%d", ...", la variable numérica ELECTROTECNIA 87 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II guardará el número... pero el ENTER que pulsamos en el teclado después de introducir ese número queda esperando en el buffer (la memoria intermedia del teclado). Si a continuación leemos un segundo número, no hay problema, porque se omite ese ENTER, pero si leemos una cadena de texto, ese ENTER es aceptable, porque representaría una cadena vacía. Por eso, cuando primero leemos un número y luego una cadena usando "gets", tendremos que "absorber" el ENTER, o de lo contrario el texto no se leería correctamente. Una forma de hacerlo sería usando "getchar": scanf("%d", &numero); /* Para leer el número */ getchar(); /* Para que absorba el ENTER */ gets(texto); /* Para leer el texto */ Ejercicio propuesto: • Un programa que pida tu edad y luego tu nombre (usando “scanf y gets"). Muestre en pantalla tu nombre tantas veces como indique esa cifra numérica que es tu edad. ASIGNANDO A UNA CADENA EL VALOR DE OTRA: STRCPY, STRNCPY; STRCAT Cuando queremos dar a una variable el valor de otra, normalmente usamos construcciones como a = 2, o como a = b. Pero en el caso de las cadenas de texto, esta NO es la forma correcta, no podemos hacer algo como saludo="hola" ni algo como texto1=texto2. Si hacemos algo así, haremos que las dos cadenas estén en la misma posición de memoria, y que los cambios que hagamos a una de ellas se reflejen también en la otra. La forma correcta de guardar en una cadena de texto un cierto valor es: strcpy (destino, origen); Es decir, debemos usar una función llamada “strcpy” (string copy, copiar cadena), que se encuentra también en la librería “string.h”. Vamos a ver dos ejemplos de su uso: strcpy (saludo, "hola"); strcpy (textoDefinitivo, textoProvisional); Es nuestra responsabilidad que en la cadena de destino haya suficiente espacio reservado para copiar lo que queremos. Si no es así, estaremos sobrescribiendo direcciones de memoria en las que no sabemos qué hay. Para evitar este problema, tenemos una forma de indicar que queremos copiar sólo los primeros n bytes de origen, usando la función “strncpy”, así: ELECTROTECNIA 88 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II strncpy (destino, origen, n); Vamos a ver un ejemplo, que nos pida que tecleemos una frase y guarde en otra variable sólo las 4 primeras letras: #include <stdio.h> #include <string.h> #include <iostream> int main() { char texto1[40], texto2[40], texto3[10]; printf("Introduce un frase: "); gets(texto1); strcpy(texto2, texto1); printf("Una copia de tu texto es %s \n", texto2); strncpy(texto3, texto1, 4); printf("Y sus 4 primeras letras son %s \n", texto3); system("pause"); return 0; } Finalmente, existe otra orden relacionada con estas dos: podemos añadir una cadena al final de otra (concatenarla), con strcat (destino, origen); Vamos a ver un ejemplo de su uso, que nos pida nuestro nombre, nuestro apellido y cree una nueva cadena de texto que contenga los dos, separados por un espacio: #include <stdio.h> #include <string.h> #include <iostream> int main() { char texto1[80], texto2[40], printf("Introduce tu nombre: "); gets(texto1); printf("Introduce tu apellido: "); gets(texto2); strcat(texto1, " "); /* Añado un espacio en blanco al nombre */ strcat(texto1, texto2); /* Y luego el apellido */ printf("Te llamas %s \n", texto1); system("pause"); return 0; } COMPARANDO CADENAS: STRCMP. Para comparar dos cadenas alfabéticamente (para ver si son iguales o para poder ordenarlas, por ejemplo), usamos strcmp (cad1, cad2); ELECTROTECNIA 89 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Esta función devuelve un número entero, que será: • 0 si ambas cadenas son iguales. • Un número negativo, si cadena1 < cadena2. • Un número positivo, si cadena1 > cadena2. Hay que tener cuidado, porque las cadenas se comparan como en un diccionario, pero hay que tener en cuenta ciertas cosas: • Al igual que en un diccionario, todas las palabras que empiecen por B se consideran “mayores” que las que empiezan por A. • Si dos cadenas empiezan por la misma letra (o las mismas letras), se ordenan basándose en la primera letra diferente, también al igual que en el diccionario. • La primera diferencia está en que se distingue entre mayúsculas y minúsculas. Para más detalles, en el código ASCII las mayúsculas aparecen antes que las minúsculas, así que las palabras escritas en mayúsculas se consideran “menores” que las palabras escritas en minúsculas. Por ejemplo, “ala” es menor que “hola”, porque una empieza por “a” y la otra empieza por “h”, pero “Hola” es menor que “ala” porque la primera empieza con una letra en mayúsculas y la segunda con una letra en minúsculas. • La segunda diferencia es que el código ASCII estándar no incluye eñe, vocales acentuadas ni caracteres internacionales, así que estos caracteres “extraños” aparecen después de los caracteres “normales”, de modo que “adiós” se considera “mayor” que “adiposo”, porque la o acentuada está después de todas las letras del alfabeto inglés. Vamos a ver un primer ejemplo que nos pida dos palabras y diga si hemos tecleado la misma las dos veces o cuál de ellas es mayor: #include <stdio.h> #include <string.h> #include <iostream> int main() { char texto1[40], texto2[40]; int comparacion; printf("Introduce una palabra: "); gets(texto1); printf("Introduce otra palabra: "); gets(texto2); ELECTROTECNIA 90 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II comparacion = strcmp(texto1, texto2); if (comparacion == 0) printf("Son palabras iguales. \n"); else if (comparacion > 0) printf("La primera palabra es mayor. \n"); else printf("La Segunda palabra es mayor. \n"); system("pause"); return 0; } Ejercicio propuesto: • Crear un programa que pida al usuario su contraseña. Deberá terminar cuando introduzca como contraseña la palabra "clave", pero volvérsela a pedir tantas veces como sea necesario. • Crear un programa que pida al usuario su nombre y su contraseña, y no le permita seguir hasta que introduzca como nombre "Pedro" y como contraseña "Peter". OTRAS FUNCIONES DE CADENAS: SPRINTF, SSCANF, STRSTR, … Hay dos posibilidades más de las cadenas de texto que merece la pena comentar. Son las que nos ofrecen las funciones “sprintf” y “sscanf”: La función “sprintf” crea una cadena de texto a partir de una especificación de formato y unos ciertos parámetros, al igual que hace “printf”, pero la diferencia está en que “printf” manda su salida a la pantalla, mientras que “sprintf” la deja guardada en una cadena de texto. Por ejemplo, si escribimos : printf(”El número %d multiplicado por 2 vale %d \n”, 50, 50*2); En pantalla aparecerá escrito El número 50 multiplicado por 2 vale 100 Pues bien, si tenemos una cadena de texto que hayamos definido (por ejemplo) como char cadena[100] y escribimos : sprintf(cadena,”El número %d multiplicado por 2 vale %d \n”, 50, 50*2); ELECTROTECNIA 91 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Esta vez en pantalla no aparece nada escrito, sino que “cadena” pasa a contener el texto que antes habíamos mostrado. Ahora ya podríamos escribir este texto con: puts(cadena); o bien con printf(”%s”, cadena); ¿Qué utilidad tiene esta orden? Nos puede resultar cómoda cuando queramos formatear texto que no vaya a aparecer directamente en pantalla de texto, sino que lo vayamos a enviar a un fichero, o que queramos mostrar en pantalla gráfica, o enviar a través de una red mediante “sockets”, por ejemplo. Por otra parte “sscanf” es similar a “scanf”, con la diferencia de que los valores para las variables no se leen desde el teclado, sino desde una cadena de texto strcpy(cadena, "20 30"); sscanf(cadena, "%d %d", &primerNum, &segundoNum); Nota: sscanf devuelve el número de valores que realmente se han detectado, de modo que podemos comprobar si ha tomado todos los que esperábamos o alguno menos (porque el usuario haya tecleado menos de los que esperábamos o porque alguno esté tecleado incorrectamente). if (sscanf(cadena, "%d %d", &primerNum, &segundoNum)<2) printf("Debia teclear dos numeros"); Ejercicio propuesto: • Un programa que pida tu nombre, tu día de nacimiento y tu mes de nacimiento y lo junte todo en una cadena, separando el nombre de la fecha por una coma y el día del mes por una barra inclinada, así: “Juan, nacido el 31/12”. Una tercera orden que puede resultar útil más de una vez es “strstr”. Permite comprobar si una cadena contiene un cierto texto. Devuelve NULL (un valor especial, que nos encontraremos cada vez más a partir de ahora) si no la contiene, y otro valor (no daremos más detalles por ahora sobre qué tipo de valor ni por qué) en casi de que sí la contenga: if (strstr (frase, "Hola ") == NULL) printf("No has dicho la palabra Hola "); Nota: estas no son todas las posibilidades que tenemos para manipular cadenas, pero posiblemente sí son las más habituales. Hay otras que nos ELECTROTECNIA 92 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II permiten buscar una letra dentro de una cadena (strchr), una cadena dentro de otra cadena (strstr), “dar la vuelta” a una cadena (strrev), etc. Según el compilador que usemos, podemos tener incluso funciones ya preparadas para convertir una cadena a mayúsculas (strupr) o a minúsculas (strlwr). VALOR INICIAL DE UNA CADENA DE TEXTO. Podemos dar un valor inicial a una cadena de texto, usando dos formatos distintos: El formato “clásico” para dar valores a tablas: char nombre[50]= {'J','u','a','n'}; O bien un formato más compacto: char nombre[50]="Juan"; Pero cuidado con este último formato: hay que recordar que sólo se puede usar cuando se declara la variable, al principio del programa. Si ya estamos dentro del programa, deberemos usar necesariamente la orden “strcpy” para dar un valor a una cadena de texto. TABLAS BIDIMENSIONALES. Podemos declarar tablas de dos o más dimensiones. Por ejemplo, si queremos guardar datos de dos grupos de alumnos, cada uno de los cuales tiene 20 alumnos, tenemos dos opciones: > Podemos usar int datosAlumnos[40] y entonces debemos recordar que los 20 primeros datos corresponden realmente a un grupo de alumnos y los 20 siguientes a otro grupo. > O bien podemos emplear int datosAlumnos[2][20] y entonces sabemos que los datos de la forma datosAlumnos[0][i] son los del primer grupo, y los datosAlumnos[1][i] son los del segundo. En cualquier caso, si queremos indicar valores iniciales, lo haremos entre llaves, igual que si fuera una tabla de una única dimensión. Vamos a verlo con un ejemplo de su uso: #include <stdio.h> ELECTROTECNIA 93 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II #include <string.h> #include <iostream> int main() { int notas[2][10] = {1, 2, 3, 4, 5, 6, 7, 8,9,10,11,12,13,14,15,16,17,18,19,20}; printf("La nota del tercer alumno del grupos 1 es %d",notas[ 0 ][ 2 ]); system("pause"); return 0; } Este tipo de tablas son las que se usan también para guardar matrices, cuando hay que resolver problemas matemáticos más complejos. También podemos usar arrays de dos dimensiones si queremos guardar una lista de cadenas de texto, como en este ejemplo: #include <stdio.h> #include <string.h> #include <iostream> int main() { char mensajeError[5][80] = { "Fichero no encontrado", "El fichero no se puede abrir para escritura ", "El fichero está vacío", "El fichero contiene datos de tipo incorrecto" "El fichero está siendo usado" }; printf("El segundo mensaje de error es: %s",mensajeError[1]); printf("La primera letra del tercer mensaje de error es: %c", mensajeError[ 2 ][ 0 ]); system("pause"); return 0; } Ejercicios propuestos: • Un programa que guarde los nombres de los meses. El usuario deberá indicar un número de mes (por ejemplo, 3) y se le mostrará el nombre de dicho mes (por ejemplo, Marzo). • Usar un array de 3 dimensiones para guardar los nombres de los meses en español e inglés. El usuario deberá indicar un número de mes (por ejemplo, 3) y se le mostrará el nombre de dicho mes en español (Marzo) y en inglés (March). ELECTROTECNIA 94 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II ARRAYS INDETERMINADOS. Si damos un valor inicial a un array, no será necesario que indiquemos su tamaño, porque el compilador lo puede saber contando cuantos valores hemos detallado, así: int punto[ ] = {10, 0, -10}; char saludo[ ] = "hola"; char mensajes[ ][80] = {"Bienvenido", "Hasta otra"}; Ejercicios propuestos: • Un programa que pida 10 nombres y los guarde en un array. Después deberá pedir que se teclee un nombre y dirá si se encuentra o no entre los 10 que se han tecleado antes. Volverá a pedir otro nombre y a comprobar si se encuentra entre ellos, y así sucesivamente hasta que se teclee “fin”. • Un programa que prepare espacio para un máximo de 100 nombres (de un máximo de 80 letras cada uno). El usuario deberá ir introduciendo un nombre cada vez, hasta que se pulse Intro sin teclear nada, momento en el que dejarán de pedirse más nombres y se mostrará en pantalla la lista de los nombres que se han introducido. ESTRUCTURAS Definición y acceso a los datos. Un registro es una agrupación de datos, los cuales no necesariamente son del mismo tipo. Se definen con la palabra “struct”. Para acceder a cada uno de los datos que forman el registro, tanto si queremos leer su valor como si queremos cambiarlo, se debe indicar el nombre de la variable y el del dato (o campo) separados por un punto: #include <stdio.h> #include <iostream> int main() { struct { char inicial; ELECTROTECNIA 95 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II int edad; float nota; } persona; persona.inicial = 'J'; persona.edad = 20; persona.nota = 7.5; printf("La edad es %d", persona.edad); system("pause"); return 0; } Como es habitual en C, para declarar la variable hemos indicado primero el tipo de datos (struct { ...} ) y después el nombre que tendrá esa variable (persona). También podemos declarar primero cómo van a ser nuestros registros, y más adelante definir variables de ese tipo: #include <stdio.h> #include <iostream> struct datosPersona { char inicial; int edad; float nota; }; int main() { struct datosPersona ficha; ficha.inicial = 'J'; ficha.edad = 20; ficha.nota = 7.5; printf("La edad es %d", ficha.edad); system("pause"); return 0; } ARRAYS DE ESTRUCTURAS. Hemos guardado varios datos de una persona. Se pueden almacenar los de varias personas si combinamos el uso de los “struct” con las tablas (arrays) que vimos anteriormente. Por ejemplo, se pide guardar datos de 100 alumnos. struct { char inicial; ELECTROTECNIA 96 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II int edad; float nota; } alumnos[100]; La inicial del primer alumno sería “alumnos[0].inicial”, y la edad del último sería “alumnos[99].inicial”. Ejercicios propuestos: • Crear un programa que almacene datos de hasta 100 canciones (Nombre del Autor, Nombre de la Canción, Tamaño y Duración). Deberá tener un menú que permita las opciones: añadir una nueva canción, mostrar el título de todas las canciones, buscar la canción que contenga un cierto texto (en el artista o en el título). • Un programa que permita guardar datos de "imágenes". De cada imagen se debe guardar: nombre (texto), ancho en píxeles (por ejemplo 2000), alto en píxeles (por ejemplo, 3000), tamaño en Kb (por ejemplo 145,6). El programa debe ser capaz de almacenar hasta 10 imágenes (deberá avisar cuando su capacidad esté llena). Debe permitir las opciones: añadir una ficha nueva, ver todas las fichas (número y nombre de cada imagen), buscar la ficha que tenga un cierto nombre. ESTRUCTURAS ANIDADAS. Podemos encontrarnos con un registro que tenga varios datos, y que a su vez ocurra que uno de esos datos esté formado por varios datos más sencillos. Para hacerlo desde C, incluiríamos un “struct” dentro de otro “struct”, así: #include <stdio.h> #include <iostream> struct fechaNacimiento { int dia; int mes; int anyo; }; struct { char inicial; struct fechaNacimiento diaDeNacimiento; float nota; } persona; ELECTROTECNIA 97 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II int main() { persona.inicial = 'I'; persona.diaDeNacimiento.mes = 8; persona.nota = 7.5; printf("La nota es %f ", persona.nota); printf("El mes de Nacimiento es %d ", persona.diaDeCacimiento.mes); system("pause"); return 0; } Ejemplo completo: Vamos a hacer un ejemplo completo que use tablas (“arrays”), registros (“struct”) y que además manipule cadenas. La idea va a ser la siguiente: Crearemos un programa que pueda almacenar datos de hasta 1000 ficheros (archivos de ordenador). Para cada fichero, debe guardar los siguientes datos: Nombre del fichero (max 40 letras), Tamaño (en KB, número de 0 a 2.000.000.000). El programa mostrará un menú que permita al usuario las siguientes operaciones: 1. Añadir datos de un nuevo fichero. 2. Mostrar los nombres de todos los ficheros almacenados. 3. Mostrar ficheros que sean de más de un cierto tamaño (por ejemplo, 2000 KB). 4. Ver todos los datos de un cierto fichero (a partir de su nombre). 5. Salir de la aplicación (como todavía no sabemos almacenar los datos, éstos se perderán). No debería resultar difícil. Vamos a ver directamente una de las formas en que se podría plantear y luego comentaremos alguna de las mejoras que se podría (incluso se debería) hacer. Una opción que podemos a tomar para resolver este problema es la de contar el número de fichas que tenemos almacenadas, y así podremos añadir de una en una. Si tenemos 0 fichas, deberemos almacenar la siguiente (la primera) en la posición 0; si tenemos dos fichas, serán la 0 y la 1, luego añadiremos en la posición 2; en general, si tenemos “n” fichas, añadiremos cada nueva ficha en la posición “n”. Por otra parte, para revisar todas las fichas, recorreremos desde la posición 0 hasta la n-1, haciendo algo como for (i=0; i<=n-1; i++) { ... más órdenes ...} ELECTROTECNIA 98 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II o bien algo como for (i=0; i<n; i++) { ... más órdenes ...} El resto del programa no es difícil: sabemos leer y comparar textos y números. Sólo haremos tres consideraciones: • Los textos (nombre del fichero, por ejemplo) pueden contener espacios, por lo que usaremos “gets” en vez de “scanf”. • Es “peligroso” mezclar órdenes “gets” y “scanf”: si leemos un número con “scanf”, la pulsación de la tecla “ENTER” posterior se queda en el buffer del teclado, lo que puede provocar que después intentemos leer con “gets” un texto, pero sólo leamos esa pulsación de la tecla “ENTER”. Para evitarlo, los números los leeremos “en dos etapas”: primero leeremos una cadena con “gets” y luego la convertiremos a número con “sscanf”. • Hemos limitado el número de fichas a 1000, así que, si nos piden añadir, deberíamos asegurarnos antes de que todavía tenemos hueco disponible. Con todo esto, nuestra fuente quedaría así: #include <stdio.h> #include <string.h> #include <iostream> struct { char nombreFich[41]; unsigned long tamanyo; } fichas[1000]; /* Nombre del fichero */ /* El tamaño en bytes */ int numeroFichas=0; /* Número de fichas que ya tenemos */ int i,ab; /* Para bucles */ int opcion; /* La opción del menú que elija el usuario */ char textoTemporal[40]; /* Para cuando preguntemos al usuario */ unsigned long numeroTemporal; int main() { do { /* Menu principal */ system("CLS"); printf("Escoja una opción:\n"); printf("1.- Añadir datos de un nuevo fichero\n"); printf("2.- Mostrar los nombres de todos los ficheros\n"); printf("3.- Mostrar ficheros que sean de mas de un cierto tamaño\n"); ELECTROTECNIA 99 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II printf("4.- Ver datos de un fichero\n"); printf("5.- Salir\n"); /* Para evitar problemas con datos mal introducidos, */ /* leemos con "gets" y luego lo filtramos con "sscanf" */ gets (textoTemporal); sscanf(textoTemporal, "%d", &opcion); /* Hacemos una cosa u otra según la opción escogida */ switch(opcion) { case 1: /* Añadir un dato nuevo */ if (numeroFichas < 1000) /* Si queda espacio */ { printf("Introduce el nombre del fichero: "); gets(fichas[numeroFichas].nombreFich); printf("Introduce el tamaño en KB: "); gets(textoTemporal); sscanf(textoTemporal,"%ld",&fichas[numeroFichas].tamanyo); /* agregamos 1 a numeroFichas */ numeroFichas++; } else /* Si no hay hueco para más fichas, avisamos */ { printf("Máximo de fichas alcanzado (1000)!\n"); system("pause"); } break; case 2: /* Mostrar todos */ for (i=0; i<numeroFichas; i++) printf("Nombre: %s; Tamaño: %ld Kb\n",fichas[i].nombreFich, fichas[i].tamanyo); system("pause"); break; case 3: /* Mostrar según el tamaño */ printf("¿A partir de que tamaño quieres que te muestre?"); gets(textoTemporal); sscanf(textoTemporal, "%ld", &numeroTemporal); for (i=0; i<numeroFichas; i++) if (fichas[i].tamanyo >= numeroTemporal) printf("Nombre: %s; Tamaño: %ld Kb\n",fichas[i].nombreFich, fichas[i].tamanyo); system("pause"); break; case 4: /* Ver todos los datos (pocos) de un fichero */ printf("¿De qué fichero quieres ver todos los datos?"); gets(textoTemporal); ab = 0; for (i=0; i<numeroFichas; i++) if (strcmp(fichas[i].nombreFich, textoTemporal) == 0) { ab = 1; ELECTROTECNIA 100 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II printf("Nombre: %s; Tamaño: %ld Kb\n",fichas[i].nombreFich, fichas[i].tamanyo); } if (ab == 0) printf("Nombre del fichero no existe \n"); system("pause"); break; case 5: /* Salir: avisamos de que salimos */ printf("Fin del programa\n"); system("pause"); break; default: /* Otra opcion: no válida */ printf("Opción desconocida!\n"); system("pause"); break; } } while (opcion != 5); /* Si la opcion es 5, terminamos */ return 0; } ORDENACIONES SIMPLES. Es muy frecuente querer ordenar datos que tenemos en un array. Para conseguirlo, existen varios algoritmos sencillos, que no son especialmente eficientes, pero son fáciles de programar. La falta de eficiencia se refiere a que la mayoría de ellos se basan en dos bucles “for” anidados, de modo que en cada pasada quede ordenado un dato, y se dan tantas pasadas como datos existen, de modo que para un array con 1.000 datos, podrían llegar a tener que hacerse un millón de comparaciones. Existen ligeras mejoras (por ejemplo, cambiar uno de los “for” por un “while”, para no repasar todos los datos si ya estaban parcialmente ordenados), así como métodos claramente más efectivos, pero más difíciles de programar, alguno de los cuales veremos más adelante. Veremos tres de estos métodos simples de ordenación, primero mirando la apariencia que tiene el algoritmo, y luego juntando los tres en un ejemplo que los pruebe: MÉTODO DE BURBUJA. (Intercambiar cada pareja consecutiva que no esté ordenada) Para i=1 hasta n-1 Para j=i+1 hasta n Si A[i] > A[j] Intercambiar ( A[i], A[j]) ELECTROTECNIA 101 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II (Nota: algunos autores hacen el bucle exterior creciente y otro decreciente, así:) Para i=n descendiendo hasta 1 Para j=2 hasta i Si A[j-1] > A[j] Intercambiar ( A[j-1], A[j]) SELECCIÓN DIRECTA. (En cada pasada busca el menor, y lo intercambia al final de la pasada). Para i=1 hasta n-1 menor = i Para j=i+1 hasta n Si A[j] < A[menor] menor = j Si menor <> i Intercambiar ( A[i], A[menor]) INSERCIÓN DIRECTA. (Comparar cada elemento con los anteriores -que ya están ordenados- y desplazarlo hasta su posición correcta). Para i=2 hasta n j=i-1 mientras (j>=1) y (A[j] > A[j+1]) Intercambiar ( A[j], A[j+1]) j=j-1 (Es mejorable, no intercambiando el dato que se mueve con cada elemento, sino sólo al final de cada pasada, pero no entraremos en más detalles). Ejercicio propuesto: • Un programa que cree un array de 7 números enteros y lo ordene con cada uno de estos tres métodos, mostrando el resultado de los pasos intermedios. ELECTROTECNIA 102 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II CAPÍTULO 8 8 PUNTEROS En este capítulo se tratará: Punteros y Gestión Dinámica de Memoria. ¿Por qué usar estructuras dinámicas? ¿Qué son los punteros? Aritmética de Punteros. Punteros y Funciones: Parámetros por Referencia. Punteros y Array. Array de Punteros. Punteros y Estructuras. Indirección Multiple. ELECTROTECNIA 103 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II PUNTEROS Y GESTIÓN DINÁMICA DE MEMORIA. ¿Por qué usar estructuras dinámicas? Hasta ahora teníamos una serie de variables que declaramos al principio del programa o de cada función. Estas variables, que reciben el nombre de ESTÁTICAS, tienen un tamaño asignado desde el momento en que se crea el programa. Este tipo de variables son sencillas de usar y rápidas... si sólo vamos a manejar estructuras de datos que no cambien, pero resultan poco eficientes si tenemos estructuras cuyo tamaño no sea siempre el mismo. Es el ejemplo, que se quiera crear una agenda: tenemos una serie de fichas, e iremos añadiendo más. Si reservamos espacio para 10, no podremos llegar a añadir la número 11, estamos limitando el máximo. Una solución sería la de trabajar siempre en el disco: no tenemos límite en cuanto a número de fichas, pero es muchísimo más lento. Lo ideal sería aprovechar mejor la memoria que tenemos en el ordenador, para guardar en ella todas las fichas o al menos todas aquellas que quepan en memoria. Una solución “típica” (pero mala) es sobredimensionar: preparar una agenda contando con 1000 fichas, aunque supongamos que no vamos a pasar de 20. Esto tiene varios inconvenientes: se desperdicia memoria, obliga a conocer bien los datos con los que vamos a trabajar, sigue pudiendo verse sobrepesado, etc. La solución suele ser crear estructuras DINÁMICAS, que puedan ir creciendo o disminuyendo según nos interesen. Ejemplos de este tipo de estructuras son: • Las Aplilaciones. Como una apilación de libros: vamos apilando cosas en la cima, o cogiendo de la cima. • Las colas. Como las del cine (en teoría): la gente llega por un sitio (la cola) y sale por el opuesto (la cabeza).Las listas, en las que se puede añadir elementos, consultarlos o borrarlos en cualquier posición. Y la cosa se va complicando: en los árboles cada elemento puede tener varios sucesores, etc. ELECTROTECNIA 104 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Todas estas estructuras tienen en común que, si se programan bien, pueden ir creciendo o decreciendo según haga falta, al contrario que un array, que tiene su tamaño prefijado. En todas ellas, lo que vamos haciendo es reservar un poco de memoria para cada nuevo elemento que nos haga falta, y enlazarlo a los que ya teníamos. Cuando queramos borrar un elemento, enlazamos el anterior a él con el posterior a él (para que no “se rompa” nuestra estructura) y liberamos la memoria que estaba ocupando. ¿Qué son los punteros? Un puntero no es más que una dirección de memoria. Lo que tiene de especial es que normalmente un puntero tendrá un tipo de datos asociado: por ejemplo, un “puntero a entero” será una dirección de memoria en la que habrá almacenado (o podremos almacenar) un número entero. Vamos a ver qué símbolo usamos en C para designar los punteros: int num; /* "num" es un número entero */ int *pos; /* "pos" es un "puntero a entero" (dirección de memoria en la que podremos guardar un entero) */ Es decir, pondremos un asterisco entre el tipo de datos y el nombre de la variable. Ese asterisco puede ir junto a cualquiera de ambos, también es correcto escribir: int* pos; Antes de entrar en más detalles, y para ver la diferencia entre trabajar con “arrays” o con punteros, vamos a hacer dos programas que pidan varios números enteros al usuario y muestren su suma. El primero empleará un “array” (una tabla, de tamaño predefinido) y el segundo empleará memoria que reservaremos durante el funcionamiento del programa. El primero podría ser así: #include <stdio.h> #include <iostream> int main() { int datos[100]; int cuantos; ELECTROTECNIA /* Preparamos espacio para 100 numeros */ /* Preguntaremos cuantos desea introducir */ 105 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II int i; /* Para bucles */ long suma=0; /* La suma, claro */ do { printf("Cuantos numeros desea sumar? "); scanf("%d", &cuantos); if (cuantos>100) /* Solo puede ser 100 o menos */ printf("Demasiados. Solo se puede hasta 100."); } while (cuantos>100); /* Si pide demasiado, no le dejamos */ /* Pedimos y almacenamos los datos */ for (i=0; i<cuantos; i++) { printf("Introduzca el dato número %d: ", i + 1); scanf("%d", &datos[ i ]); } /* Calculamos la suma */ for (i=0; i<cuantos; i++) suma += datos[ i ]; printf("Su suma es: %ld \n", suma); system("pause"); return 0; } Los más avispados se pueden dar cuenta de que si sólo quiero calcular la suma, lo podría hacer a medida que leo cada dato, no necesitaría almacenar todos. Vamos a suponer que sí necesitamos guardarlos (en muchos casos será verdad, si los cálculos son más complicados). Entonces nos damos cuenta de que lo que hemos estado haciendo hasta ahora no es eficiente: • Si quiero sumar 1000 datos, o 500, o 101, no puedo. Nuestro límite previsto era de 100, así que no podemos trabajar con más datos. • Si sólo quiero sumar 3 números, desperdicio el espacio de 97 datos que no uso. • Y el problema sigue: si en vez de 100 números, reservamos espacio para 5000, es más difícil que nos quedemos cortos pero desperdiciamos muchísima más memoria. La solución es reservar espacio estrictamente para lo que necesitemos, y eso es algo que podríamos hacer así: ELECTROTECNIA 106 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II #include <stdio.h> #include <stdlib.h> #include <iostream> int main() { int* datos; /* Necesitaremos espacio para varios numeros */ int cuantos; /* Preguntaremos cuantos desea introducir */ int i; /* Para bucles */ long suma=0; /* La suma, claro */ do { printf("Cuantos numeros desea sumar? "); scanf("%d", &cuantos); datos = (int *) malloc (cuantos * sizeof(int)); if (datos == NULL) /* Si no hay espacio, avisamos */ printf("No caben tantos datos en memoria."); } while (datos == NULL); /* Si pide demasiado, no le dejamos */ /* Pedimos y almacenamos los datos */ for (i=0; i<cuantos; i++) { printf("Introduzca el dato número %d: ", i + 1); scanf("%d", datos + i); } /* Calculamos la suma */ for (i=0; i<cuantos; i++) suma += *(datos + i); printf("Su suma es: %ld\n", suma); free(datos); system("pause"); return 0; } Este programa fuente es más difícil de leer, pero a cambio es mucho más eficiente: funciona perfectamente si sólo queremos sumar 5 números, pero también si necesitamos sumar 120,000 (y si caben tantos números en la memoria disponible de nuestro equipo, claro). ELECTROTECNIA 107 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Vamos a ver las diferencias: En primer lugar, lo que antes era int datos[100] que quiere decir “a partir de la posición de memoria que llamaré datos, querré espacio para a guardar 100 números enteros”, se ha convertido en int* datos que quiere decir “a partir de la posición de memoria que llamaré datos voy a guardar varios números enteros (pero aún no sé cuantos)”. Luego reservamos el espacio exacto que necesitamos, haciendo datos = (int *) malloc (cuantos * sizeof(int)); Esta orden suena complicada, así que vamos a verla por partes: • • • • • “malloc” es la orden que usaremos para reservar memoria cuando la necesitemos (es la abreviatura de las palabra “memory” y “allocate”). Como parámetro, le indicamos cuanto espacio queremos reservar. Para 100 números enteros, sería “100*sizeof(int)”, es decir, 100 veces el tamaño de un entero. En nuestro caso, no son 100 números, sino el valor de la variable “cuantos”. Por eso hacemos “malloc (cuantos*sizeof(int))”. Para terminar, ese es el espacio que queremos reservar para nuestra variable “datos”. Y esa variable es de tipo “int *” (un puntero a datos que serán números enteros). Para que todo vaya bien, debemos “convertir” el resultado de “malloc” al tipo de datos correcto, y lo hacemos forzando una conversión, con lo que nuestra orden está completa: datos = (int *) malloc (cuantos * sizeof(int)); Si “malloc” nos devuelve NULL como resultado (un “puntero nulo”), quiere decir que no ha encontrado ninguna posición de memoria en la que nos pudiera reservar todo el espacio que le habíamos solicitado. Para usar “malloc” deberemos incluir “stdlib.h” al principio de nuestro programa fuente. La forma de guardar los datos que teclea el usuario también es distinta. Cuando trabajábamos con un “array”, hacíamos scanf("%d", &datos[i]) (“el dato número i”), pero con punteros usaremos scanf("%d", datos + i) (en la posición datos + i). Ahora ya no necesitamos el símbolo “ampersand” (&). Este símbolo se usa para indicarle a C en qué posición de memoria debe almacenar un dato. Por ejemplo, float x; es una variable que podremos usar para guardar un número real. Si lo hacemos con la orden “scanf”, esta orden no espera que le digamos en qué variable deber guardar el dato, sino en qué posición de memoria. Por eso hacemos scanf("%f", &x); En el caso que nos encontramos ELECTROTECNIA 108 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II ahora, int* datos ya se refiere a una posición de memoria (un puntero), por lo que no necesitamos & para usar “scanf”. Finalmente, la forma de acceder a los datos también cambia. Antes leíamos el primer dato como datos[0], el segundo como datos[1], el tercero como datos[2] y así sucesivamente. Ahora usaremos el asterisco (*) para indicar que queremos saber el valor que hay almacenado en una cierta posición: el primer dato será *datos, el segundo *(datos+1), el tercero será *(datos+2) y así en adelante. Por eso, donde antes hacíamos suma += datos[ i ]; ahora usamos suma += *(datos + i); También aparece otra orden nueva: free. Hasta ahora, teníamos la memoria reservada estáticamente, lo que supone que la usábamos (o la desperdiciábamos) durante todo el tiempo que nuestro programa estuviera funcionando. Pero ahora, igual que reservamos memoria justo en el momento en que la necesitamos, y justo en la cantidad que necesitamos, también podemos volver a dejar disponible esa memoria cuando hayamos terminado de usarla. De eso se encarga la orden “free”, a la que le debemos indicar qué puntero es el que queremos liberar. Repasemos con un ejemplo sencillo. Vamos a ver un ejemplo más sencillo que nos ayude a asentar los conceptos: Reservaremos espacio para un número real de forma estática, y para dos números reales de forma dinámica, daremos valor a dos de ellos, guardaremos su suma en el tercer número y mostraremos en pantalla los resultados. #include <stdio.h> #include <stdlib.h> #include <iostream> int main() { float n1; /* Primer número, estático */ float *n2, *suma; /* Los otros dos números */ n1 = 5.0; /* Damos un valor prefijado a n1 (real) */ n2 = (float *) malloc (sizeof(float)); /* Reservamos espacio para n2 */ *n2 = 6.7; /* Valor prefijado para n2 (puntero a real) */ suma = (float *) malloc (sizeof(float)); /* Espacio para suma */ *suma = n1 + *n2; /* Calculamos la suma */ printf("El valor prefijado para la suma era %4.2f \n", *suma); printf("Ahora es tu turno: Introduce el primer número "); scanf("%f",&n1); /* Leemos valor para n1 (real) */ ELECTROTECNIA 109 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II printf("Introduce el segundo número "); scanf("%f",n2); /* Valor para n2 (puntero a real) */ *suma = n1 + *n2; /* Calculamos nuevamente la suma */ printf("Ahora la suma es %4.2f \n", *suma); free(n2); free(suma); /* Liberamos la memoria reservada */ system("pause"); return 0; } Las diferencias son: • n1 es un “float”, así que le damos valor normalmente: n1 = 0; Y pedimos su valor con scanf usando & para indicar en qué dirección de memoria se encuentra: scanf("%f", &n1); • n2 (y también “suma”) es un “puntero a float”, así que debemos reservarle espacio con “malloc” antes de empezar a usarlo, y liberar con “free” el epacio que ocupaba cuando terminemos de utilizarlo. Para guardar un valor en la dirección de memoria “a la que apunta”, usamos un asterisco: *n2 = 0; Y pedimos su valor con scanf, pero sin necesidad de usar &, porque el puntero es una dirección de memoria: scanf("%f", n2); (En este ejemplo, no hemos comprobado si el resultado de “malloc” era NULL, porque sólo pedíamos espacio para dos variables, y hemos dado por sentado que sí habría memoria disponible suficiente para almacenarlas; en un caso general, deberemos asegurarnos siempre de que se nos ha concedido ese espacio que hemos pedido). Aritmética de punteros. Si declaramos una variable como int n=5 y posteriormente hacemos n++, debería resultar claro que lo que ocurre es que aumenta en una unidad el valor de la variable n, pasando a ser 6. Pero ¿qué sucede si hacemos esa misma operación sobre un puntero? int *n; n = (int *) malloc (sizeof(int)); *n = 3; n++; ELECTROTECNIA 110 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Después de estas líneas de programa, lo que ha ocurrido no es que el contenido de la posición n sea 4. Eso lo conseguiríamos modificando “*n”, de la misma forma que le hemos dado su valor inicial. Es decir, deberíamos usar (*n) ++; En cambio, nosotros hemos aumentado el valor de “n”. Como “n” es un puntero, estamos modificando una dirección de memoria. Por ejemplo, si “n” se refería a la posición de memoria número 10,000 de nuestro ordenador, ahora ya no es así, ahora es otra posición de memoria distinta, por ejemplo la 10,001. ¿Y por qué “por ejemplo”? Porque, como ya sabemos, el espacio que ocupa una variable en C depende del sistema operativo. Así, en un sistema operativo de 32 bits, un “int” ocuparía 4 bytes, de modo que la operación: n++; haría que pasáramos de mirar la posición 10,000 a la 10,004. Generalmente no es esto lo que querremos, sino modificar el valor que había almacenado en esa posición de memoria. Olvidar ese * que indica que queremos cambiar el dato y no la posición de memoria puede dar lugar a fallos muy difíciles de descubrir (o incluso a que el programa se interrumpa con un aviso de “Violación de segmento” porque estemos accediendo a zonas de memoria que no hemos reservado). Punteros y funciones: parámetros por referencia. Hasta ahora no sabíamos cómo modificar los parámetros que pasábamos a una función. Veamos el siguiente ejemplo: #include <stdio.h> #include <iostream> void duplica(int n) { n = n * 2; } int main() { int n = 5; printf("n vale %d \n", n); duplica(n); printf("Ahora n vale %d \n", n); system("pause"); return 0; } ELECTROTECNIA 111 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Cuando poníamos este programa en marcha, el valor de n que se mostraba era un 5, porque los cambios que hiciéramos dentro de la función se perdían al salir de ella. Esta forma de trabajar (la única que conocíamos hasta ahora) es lo que se llama “pasar parámetros por valor”. Pero existe una alternativa. Es lo que llamaremos “pasar parámetros por referencia”. Consiste en que el parámetro que nosotros pasamos a la función no es realmente la variable, sino la dirección de memoria en que se encuentra dicha variable (usando &). Dentro de la función, modificaremos la información que se encuentra dentro de esa dirección de memoria (usando *), así: #include <stdio.h> #include <iostream> void duplica(int *x) { *x = *x * 2; } int main() { int n = 5; printf("n vale %d \n", n); duplica(&n); printf("Ahora n vale %d \n", n); system("pause"); return 0; } Esto permite que podamos obtener más de un valor a partir de una función. Por ejemplo, podemos crear una función que intercambie los valores de dos variables enteras así: #include <stdio.h> #include <iostream> void intercambia(int *x, int *y) { int auxiliar; auxiliar = *x; *x = *y; *y = auxiliar ; } int main() { int a = 5; ELECTROTECNIA 112 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II int b = 12; printf("Los Valores de a es %d y b es %d \n", a, b); intercambia(&a, &b); printf("Ahora a es %d y b es %d \n", a, b); system("pause"); return 0; } Este programa escribirá en pantalla que a vale 12 y que b vale 5. Dentro de la función “intercambia”, nos ayudamos de una variable auxiliar para memorizar el valor de x antes de cambiarlo por el valor de y. Ejercicio propuesto: • Crear una función que calcule las dos soluciones de una ecuación de segundo grado (Ax2 + Bx + C = 0) y devuelva las dos soluciones como parámetros. PUNTEROS Y ARRAYS. En C hay muy poca diferencia “interna” entre un puntero y un array. En muchas ocasiones, podremos declarar un dato como array (una tabla con varios elementos iguales, de tamaño predefinido) y recorrerlo usando punteros. Vamos a ver un ejemplo: #include <stdio.h> #include <iostream> int main() { int datos[10]; int i; /* Damos valores normalmente */ for (i=0; i<10; i++) datos[ i ] = i*2; /* Pero los recorremos usando punteros */ for (i=0; i<10; i++) printf("%d ", *(datos + i)); system("pause"); return 0; } Pero también podremos hacer lo contrario: declarar de forma dinámica una variable usando “malloc” y recorrerla como si fuera un array: ELECTROTECNIA 113 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II #include <stdio.h> #include <stdlib.h> #include <iostream> int main() { int *datos; int i; /* Reservamos espacio */ datos = (int *) malloc (20*sizeof(int)); /* Damos valores como puntero */ printf("Uso como puntero... "); for (i=0; i<20; i++) *(datos + i) = i*2; /* Y los mostramos */ for (i=0; i<20; i++) printf ("%d ", *(datos + i)); /* Ahora damos valores como array */ printf("\n Uso como array... "); for (i=0; i<20; i++) datos[ i ] = i*3; /* Y los mostramos */ for (i=0; i<20; i++) printf ("%d ", datos[i]); /* Liberamos el espacio */ free(datos); system("pause"); return 0; } ARRAYS DE PUNTEROS. Igual que creamos “arrays” para guardar varios datos que sean números enteros o reales, podemos hacerlo con punteros: podemos reservar espacio para “20 punteros a enteros” haciendo: int *datos[20]; Tampoco es algo especialmente frecuente en un caso general, porque si fijamos la cantidad de datos, estamos perdiendo parte de la versatilidad que podríamos tener al usar memoria dinámica. Pero sí es habitual cuando se declaran varias cadenas: char *mensajesError[3]={"Fichero no encontrado", "No se puede escribir", "Fichero sin datos"}; Un ejemplo de su uso sería este: ELECTROTECNIA 114 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II #include <stdio.h> #include <iostream> int main() { char *mensajesError[3] = {"Fichero no encontrado", "No se puede escribir", "Fichero sin datos"}; printf("El primer mensaje de error es: %s \n",mensajesError[0]); printf("El segundo mensaje de error es: %s \n",mensajesError[1]); printf("El tercer mensaje de error es: %s \n",mensajesError[2]); system("pause"); return 0; } PUNTEROS Y ESTRUCTURAS. Igual que creamos punteros a cualquier tipo de datos básico, le reservamos memoria con “malloc” cuando necesitamos usarlo y lo liberamos con “free” cuando terminamos de utilizarlo, lo mismo podemos hacer si se trata de un tipo de datos no tan sencillo, como un “struct”. Eso sí, la forma de acceder a los datos en un struct cambiará ligeramente. Para un dato que sea un número entero, ya sabemos que lo declararíamos con int *n y cambiaríamos su valor haciendo algo como *n=2, de modo que para un struct podríamos esperar que se hiciera algo como *persona.edad = 20. Pero esa no es la sintaxis correcta: deberemos utilizar el nombre de la variable y el del campo, con una flecha (->) entre medias, así: persona->edad = 20. Vamos a verlo con un ejemplo: #include <stdio.h> #include <stdlib.h> #include <iostream> int main() { /* Primero definimos nuestro tipo de datos */ struct datosPersona { char nombre[30]; char email[25]; int edad; }; /* La primera persona será estática */ struct datosPersona persona1; ELECTROTECNIA 115 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II /* La segunda será dinámica */ struct datosPersona *persona2; /* Damos valores a la persona estática */ strcpy(persona1.nombre, "Juan"); strcpy(persona1.email, "mcg@senati.pe"); persona1.edad = 20; /* Ahora a la dinámica */ persona2 = (struct datosPersona*) malloc (sizeof(struct datosPersona)); strcpy(persona2->nombre, "Pedro"); strcpy(persona2->email, "p@p.p"); persona2->edad = 21; /* Mostramos los datos y liberamos la memoria */ printf("Primera persona: %s, %s, con edad %d \n", persona1.nombre, persona1.email, persona1.edad); printf("Segunda persona: %s, %s, con edad %d \n",persona2->nombre, persona2->email, persona2->edad); free(persona2); system("pause"); return 0; } INDIRECCIÓN MÚLTIPLE. Lo que estamos haciendo mediante los punteros es algo que técnicamente se conoce como “direccionamiento indirecto”: cuando hacemos int *n, generalmente no nos va a interesar el valor de n, sino que n es una dirección de memoria a la que debemos ir a mirar el valor que buscamos. Pues bien, podemos hacer que ese direccionamiento sea todavía menos directo que en el caso normal: algo como int **n se referiría a que n es una dirección de memoria, en la que a su vez se encuentra como dato otra dirección de memoria, y dentro de esta segunda dirección de memoria es donde se encuentra el dato. Es decir, n sería un “puntero a puntero a entero”. Esta no es una situación habitual, así que no profundizaremos más en ella. Aun así, lo que sí se debe recordar es que char **datos es algo muy parecido a char datos[ ][ ], por lo que alguna vez lo veremos indicado como parámetros de una función de una forma o de la otra. ELECTROTECNIA 116 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II CAPÍTULO 9 9 MANEJO DE FICHEROS. En este capítulo se tratará: Escritura de un fichero de texto. Lectura de un fichero de texto. Lectura hasta el final del fichero. Ficheros con Tipo. Modos de Apertura. Ficheros Binarios. Acceder a cualquier posición de un fichero. Ficheros especiales 1: la impresora. Ficheros especiales 2: salida de errores. ELECTROTECNIA 117 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II MANEJO DE FICHEROS. ESCRITURA EN UN FICHERO DE TEXTO. Para manejar ficheros, siempre deberemos realizar tres operaciones básicas: • Abrir el fichero. • Leer datos de él o escribir datos en él. • Cerrar el fichero. Eso sí, no siempre podremos realizar esas operaciones, así que además tendremos que comprobar los posibles errores. Por ejemplo, puede ocurrir que intentemos abrir un fichero que realmente no exista, o que queramos escribir en un dispositivo que sea sólo de lectura. Vamos a ver un ejemplo, que cree un fichero de texto y escriba algo en él: #include <stdio.h> #include <iostream> int main() { FILE* fichero; fichero = fopen("c:\\prueba.txt", "wt"); fputs("Esto es una primera linea\n", fichero); fputs("Esto es una segunda linea\n", fichero); fputs("Esto es una tercera linea\n", fichero); fputs("Esto es una cuarta linea\n", fichero); fputs("Esto es una quinta linea", fichero); fputs(" y esto es continuacion de la anterior quinta linea\n", fichero); fclose(fichero); system("pause"); return 0; } Hay varias cosas que comentar sobre este programa: • FILE es el tipo de datos asociado a un fichero. Siempre aparecerá el asterisco a su derecha, por motivo de punteros (Visto en el capitulo anterior). • Para abrir el fichero usamos “fopen”, que necesita dos datos: el nombre del fichero y el modo de lectura. El modo de lectura estará formado por varias ELECTROTECNIA 118 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II letras, de las cuales por ahora nos interesan dos: “w” indicaría que queremos escribir (write) del fichero, y “t” avisa de que se trata de un fichero de texto (text). Como abrimos el fichero para escribir en él, se creará el fichero si no existía, y se borrará su contenido si ya existía (más adelante veremos cómo añadir a un fichero sin borrar su contenido). • Para escribir en el fichero y para leer de él, tendremos órdenes muy parecidas a las que usábamos en pantalla. Por ejemplo, para escribir una cadena de texto usaremos “fputs”, que recuerda mucho a “puts” pero con la diferencia de que no avanza de línea después de cada texto (por eso hemos añadido \n al final de cada frase). • Finalmente, cerramos el fichero con "fclose". Ejercicio propuesto: • Crea un programa que vaya leyendo las frases que el usuario teclea y las guarde en un fichero de texto llamado “registroDeUsuario.txt”. Terminará cuando la frase introducida sea "fin" (esa frase no deberá guardarse en el fichero). LECTURA DE UN FICHERO DE TEXTO. Si queremos leer de un fichero, los pasos son muy parecidos, sólo que lo abriremos para lectura (el modo de escritura tendrá una “r”, de “read”, en lugar de “w”), y leeremos con “fgets”: #include <stdio.h> #include <iostream> int main() { FILE* fichero; char nombre[80] = "c:\\prueba.txt"; char linea[81]; fichero = fopen(nombre, "rt"); if (fichero == NULL) { printf("No existe el fichero!\n"); system("pause"); exit(1); } fgets(linea, 80, fichero); puts(linea); ELECTROTECNIA 119 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II fclose(fichero); system("pause"); return 0; } En este programa fuente hay un par de cambios: • En el nombre del fichero, hemos indicado un nombre algo más complejo. En estos casos, hay que recordar que si aparece alguna barra invertida (\), deberemos duplicarla, porque la barra invertida se usa para indicar ciertos códigos de control. Por ejemplo, \n es el código de avance de línea y \a es un pitido. El modo de lectura en este caso es “r” para indicar que queremos leer (read) del fichero, y “t” avisa de que es un fichero de texto. • Para leer del fichero y usaremos “fgets”, que se parece mucho a “gets”, pero podemos limitar la longitud del texto que leemos (en este ejemplo, a 80 caracteres) desde el fichero. Esta cadena de texto conservará los caracteres de avance de línea. • Si no se consigue abrir el fichero, se nos devolverá un valor especial llamado NULL. • La orden “exit” es la que nos permite abandonar el programa en un punto. La veremos con más detalle un poco más adelante. LECTURA HASTA EL FINAL DEL FICHERO. Normalmente no querremos leer sólo una frase del fichero, sino procesar todo su contenido. Para ayudarnos, tenemos una orden que nos permite saber si ya hemos llegado al final del fichero. Es “feof” (EOF es la abreviatura de End Of File, fin de fichero). Por tanto, nuestro programa deberá repetirse mientras que no se acabe el fichero, así: #include <stdio.h> #include <iostream> int main() { FILE* fichero; char nombre[80] = "c:\\prueba.txt"; char linea[81]; fichero = fopen(nombre, "rt"); ELECTROTECNIA 120 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II if (fichero == NULL) { printf("No existe el fichero!\n"); system("pause"); exit(1); } while (! feof(fichero)) { fgets(linea, 80, fichero); if (! feof(fichero)) puts(linea); } fclose(fichero); system("pause"); return 0; } Esa será la estructura básica de casi cualquier programa que deba leer un fichero completo, de principio a fin: abrir, comprobar que se ha podido acceder correctamente, leer con “while !(feof(…))” y cerrar. Ejercicios propuestos: • Un programa que pida al usuario que teclee frases, y las almacene en el fichero “frases.txt”. Acabará cuando el usuario pulse ENTER sin teclear nada. Después deberá mostrar el contenido del fichero. • Un programa que pregunte un nombre de fichero y muestre en pantalla el contenido de ese fichero, haciendo una pausa después de cada 25 líneas, para que dé tiempo a leerlo. Cuando el usuario pulse ENTER, se mostrarán las siguientes 25 líneas, y así sucesivamente hasta que termine el fichero. FICHEROS CON TIPO. Es frecuente que los ficheros que queramos manejar no sean de texto, pero que aun así tengan un formato bastante definido. Por ejemplo, podemos querer crear una agenda, en la que los datos de cada persona estén guardados en un “struct”. En este caso, podríamos guardar los datos usando “fprintf” y “fscanf”, análogos a “printf” y “scanf” que ya conocemos. fprintf( fichero, "%40s%5d\n", persona.nombre, persona.numero); fscanf( fichero, "%40s%5d\n", &persona.nombre, &persona.numero); ELECTROTECNIA 121 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Como se puede ver en este ejemplo, suele ser recomendable indicar la anchura que debe tener cada dato cuando guardamos con “fprintf”, para que se pueda recuperar después de la misma forma con “fscanf”. Aun así, “fscanf” tiene el mismo problema que “scanf”: si leemos una cadena de texto, la considera terminada después del primer espacio en blanco, y lo que haya a continuación lo asignará a la siguiente cadena. Por eso, cuando manejemos textos con espacios, será preferible usar “fgets” o bien otras dos órdenes para manejo de ficheros que veremos un poco más adelante. Ejercicios propuestos: • Crear un “struct” que almacene los siguientes datos de una persona: nombre, edad, ciudad de residencia. Pedir al usuario esos datos de una persona y guardarlos en un fichero llamado “gente.dat”. Cerrar el fichero, volverlo a abrir para lectura y mostrar los datos que se habían guardado. • Ampliar el programa anterior para que use un “array de structs”, de forma que se puedan tener datos de 10 personas. Se deberá pedir al usuario los datos de las 10 personas y guardarlos en el fichero. Después se pedirá al usuario un número del 1 al 10 y se mostrarán los datos de la persona indicada por ese número, que se deberán leer de fichero (1 será la primera ficha, y 10 será la última). Por ejemplo, si el usuario indica que quiere ver los datos de la persona 3 (tercera), se deberá leer las dos primeras, ignorando su contenido, y después leer la tercera, que sí se deberá mostrar. • Una agenda que maneje los siguientes datos: nombre, dirección, telefono móvil, email, y día, mes y año de nacimiento (estos tres últimos datos deberán ser números enteros cortos). Deberá tener capacidad para 100 fichas. Se deberá poder añadir un dato nuevo, visualizar los nombres de las fichas existentes, o mostrar todos los datos de una persona (se preguntará al usuario cual es el nombre de esa persona que quiere visualizar). Al empezar el programa, leerá los datos de un fichero llamado “agenda.dat” (si existe). Al terminar, guardará todos los datos en ese fichero. LEER Y ESCRIBIR LETRA A LETRA. Si queremos leer o escribir sólo una letra, tenemos las órdenes "fgetc" y "fputc", que se usan: ELECTROTECNIA 122 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II letra = fgetc( fichero ); fputc (letra, fichero); MODOS DE APERTURA. Antes de seguir, vamos a ver las letras que pueden aparecer en el modo de apertura del fichero, para poder añadir datos a un fichero ya existente: Tipo Significado r Abrir sólo para lectura. w Crear para escribir. Sobreescribe el fichero si existiera ya (borrando el original). a Añade al final del fichero si existe, o lo crea si no existe. + Se escribe a continuación de los modos anteriores para indicar que también queremos modificar. Por ejemplo: r+ permite leer y modificar el fichero t Abrir en modo de texto. b Abrir en modo binario. Ejercicios propuestos: • Un programa que pida al usuario que teclee frases, y las almacene en el fichero "registro.txt", que puede existir anteriormente (y que no deberá borrarse, sino añadir al final de su contenido). Cada sesión acabará cuando el usuario pulse ENTER sin teclear nada. • Crear un programa que pida al usuario pares de números enteros y escriba su suma (con el formato "20 + 3 = 23") en pantalla y en un fichero llamado "sumas.txt", que se encontrará en un subdirectorio llamado "resultados". Cada vez que se ejecute el programa, deberá añadir los nuevos resultados a continuación de los resultados de las ejecuciones anteriores. FICHEROS BINARIOS. Hasta ahora nos hemos centrado en los ficheros de texto, que son sencillos de crear y de leer. Pero también podemos manejar ficheros que contengan información de cualquier tipo. En este caso, utilizamos “fread” para leer un bloque de datos y “fwrite” para guardar un bloque de datos. Estos datos que leamos se guardan en un buffer ELECTROTECNIA 123 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II (una zona intermedia de memoria). En el momento en que se lean menos bytes de los que hemos pedido, quiere decir que hemos llegado al final del fichero. En general, el manejo de “fread” es el siguiente: cantidadLeida = fread(donde, tamañoDeCadaDato, cuantosDatos, fichero); Por ejemplo, para leer 10 números enteros de un fichero (cada uno de los cuales ocuparía 4 bytes, si estamos en un sistema operativo de 32 bits), haríamos int datos[10]; resultado = fread(&datos, 4, 10, fichero); if (resultado < 10) printf("Había menos de 10 datos!"); Al igual que ocurría con “scanf”, la variable en la que guardemos los datos se deberá indicar precedida del símbolo &. También al igual que pasaba con “scanf”, si se trata de una cadena de caracteres (bien porque vayamos a leer una cadena de texto, o bien porque queramos leer datos de cualquier tipo pero con la intención de manejarlos byte a byte), como char dato[500] no será necesario indicar ese símbolo &, como en este ejemplo: char cabecera [40]; resultado = fread(cabecera, 1, 40, fichero); if (resultado < 40) printf("Formato de fichero incorrecto, no está toda la cabecera!"); else printf("El byte en la posición 5 es un %d”, cabecera[4]); Ejemplo: copiador de ficheros. Vamos a ver un ejemplo, que duplique un fichero de cualquier tipo (no necesariamente de texto), y después veremos las novedades: #include <stdio.h> #include <string.h> #include <iostream> FILE *fichOrg, *fichDest; /* Los dos ficheros */ char buffer[2048]; /* El buffer para guardar lo que leo */ char nombreOrg[80] = "c:\\", nomaux[80], nombreDes[80] = "c:\\"; /* Los nombres de los ficheros */ int cantidad; /* El número de bytes leídos */ ELECTROTECNIA 124 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II int main() { /* Accedo al fichero de origen */ printf("Introduzca el nombre del fichero Origen: "); scanf("%s",nomaux); strcat(nombreOrg,nomaux); if ((fichOrg = fopen(nombreOrg, "rb")) == NULL) { printf("No existe el fichero origen!\n"); system("pause"); exit(1); } /* Y ahora al de destino */ printf("Introduzca el nombre del fichero Destino: "); scanf("%s",nomaux); strcat(nombreDes,nomaux); if ((fichDest = fopen(nombreDes, "wb")) == NULL) { printf("No se ha podido crear el fichero destino!\n"); system("pause"); exit(1); } /* Mientras quede algo que leer */ while (! feof(fichOrg) ) { /* Leo datos: cada uno de 1 byte, todos los que me caben */ cantidad = fread( buffer, 1, sizeof(buffer), fichOrg); /* Escribo tantos como haya leído */ fwrite(buffer, 1, cantidad, fichDest); } /* Cierro los ficheros */ fclose(fichOrg); fclose(fichDest); system("pause"); return 0; } Los cambios con relación a lo que conocíamos de ficheros de texto son los siguientes: • Los ficheros pueden no ser de texto, de modo que leemos uno como fichero binario (con “rb”) y escribimos el otro también como fichero binario (con “wb”). • Definimos un buffer de 2048 bytes (2 K), para ir leyendo la información por bloques (y guardando después cada bloque en el otro fichero). ELECTROTECNIA 125 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II • En la misma línea intento abrir el fichero y compruebo si todo ha sido correcto, con: if ((fichOrg = fopen(nombreOrg, "rb")) == NULL) Esto puede resultar menos legible que hacerlo en dos líneas separadas, como hemos hecho hasta ahora, pero es más compacto, y, sobre todo, muy frecuente encontrarlo en “fuentes ajenos” más avanzados, como los que se puedan encontrar en Internet o cuando se programe en grupo con otras personas, de modo que he considerado adecuado incluirlo. • A “fread” le digo que queremos leer 2048 datos de 1 byte cada uno, y él nos devuelve la cantidad de bytes que ha leído realmente. Para que el fuente sea más fácil de aplicar a otros casos en los que no sean bloques de 2048 bytes exactamente, suele ser preferible indicar que queremos leer el tamaño del bloque, usando “sizeof”: cantidad = fread( buffer, 1, sizeof(buffer), fichOrg); Cuando la cantidad leida sea menos de 2048 bytes, es que el fichero se ha acabado (lo podemos comprobar mirando esta cantidad o con “feof”). • “fwrite” se maneja igual que fread: se le indica dónde están los datos, el tamaño de cada dato, cuantos datos hay que escribir y en qué fichero almacenarlos. En nuestro ejemplo, el número de bytes que debe escribir será el que haya leido: fwrite(buffer, 1, cantidad, fichDest); Ejercicios propuestos: • Mejorar la agenda anterior, para guardar y leer cada “ficha” (struct) de una vez, usando fwrite/fread y sizeof, como en el último ejemplo. • Crear un “struct” que almacene los siguientes datos de una persona: nombre, edad, ciudad de residencia. Pedir al usuario esos datos de una persona y guardarlos en un fichero llamado “gente.dat”, usando “fwrite”. Cerrar el fichero, volverlo a abrir para lectura y mostrar los datos que se habían guardado, que se deben leer con “fread”. • Ampliar el programa anterior para que use un “array de structs”, de forma que se puedan tener datos de 10 personas. Se deberá pedir al usuario los datos de las 10 personas y guardarlos en el fichero, usando “fwrite”. Después se pedirá al usuario un número del 1 al 10 y se mostrarán los datos de la persona indicada por ese número, que se deberán leer de fichero (1 será la primera ficha, y 10 será la última). Por ejemplo, si el usuario indica que quiere ver los datos de la persona 3 (tercera), se deberá leer las dos ELECTROTECNIA 126 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II primeras (con “fread”), ignorando su contenido, y después leer la tercera, que sí se deberá mostrar. ACCEDER A CUALQUIER POSICIÓN DE UN FICHERO. Cuando trabajamos con un fichero, es posible que necesitemos acceder directamente a una cierta posición del mismo. Para ello usamos “fseek”, que tiene el formato: int fseek(FILE *fichero, long posicion, int desde); Como siempre, comentemos qué es cada cosa: • Es de tipo “int”, lo que quiere decir que nos va a devolver un valor, para que comprobemos si realmente se ha podido saltar a la dirección que nosotros le hemos pedido: si el valor es 0, todo ha ido bien; si es otro, indicará un error (normalmente, que no hemos abierto el fichero). • “fichero” indica el fichero dentro de el que queremos saltar. Este fichero debe estar abierto previamente (con fopen). • “posición” nos permite decir a qué posición queremos saltar (por ejemplo, a la 5010). • “desde” es para poder afinar más: la dirección que hemos indicado con posic puede estar referida al comienzo del fichero, a la posición en la que nos encontramos actualmente, o al final del fichero (entonces posic deberá ser negativo). Para no tener que recordar que un 0 quiere decir que nos referimos al principio, un 1 a la posición actual y un 2 a la final, tenemos definidas las constantes: SEEK_SET (0): Principio SEEK_CUR (1): Actual SEEK_END (2): Final Vamos a ver tres ejemplos de su uso: • Ir a la posición 10 del fichero: fseek(miFichero, 10, SEEK_SET); • Avanzar 5 posiciones a partir de la actual: fseek(miFichero, 5, SEEK_CUR); • Ir a la posición 8 antes del final del fichero: fseek(miFichero, -8, SEEK_END); Finalmente, si queremos saber en qué posición de un fichero nos encontramos, podemos usar “ftell(fichero)”. ELECTROTECNIA 127 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Esta orden nos permite saber también la longitud de un fichero: nos posicionamos primero al final con “fseek” y luego comprobamos con “ftell” en qué posición estamos: fseek(fichero, 0, SEEK_END); longitud = ftell(fichero); FICHEROS ESPECIALES 1: LA IMPRESORA. Mandar algo a impresora desde C no es difícil (al menos en principio): en muchos sistemas operativos, la impresora es un dispositivo al que se puede acceder a través como si se tratara de un fichero. Por ejemplo, en MsDos, se puede mostrar un fichero de texto en pantalla usando: TYPE DATOS.TXT y lo mandaríamos a impresora si redirigimos la salida hacia el dispositivo llamado PRN: TYPE DATOS.TXT > PRN: De igual manera, desde C podríamos crear un programa que mandara información al fichero ficticio PRN: para escribir en impresora, así: #include <stdio.h> int main() { FILE* impresora; impresora = fopen("prn:", "wt"); fputs("Esto va a la impresora \n", impresora;); fclose(impresora); return 0; } (este mismo ejemplo debería funcionar desde muchas versiones de Windows, con bastante independencia de la impresora que tengamos instalada). En Linux la idea sería la misma, pero el nombre de dispositivo sería “/dev/lp”. Como inconveniente, normalmente sólo puede escribir en este dispositivo el administrador y los usuarios que pertenezcan a su grupo. Si pertenecemos a ese grupo, haríamos: impresora = fopen("/dev/lp", "wt"); ELECTROTECNIA 128 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II FICHEROS ESPECIALES 2: SALIDA DE ERRORES. Hemos comentado que en muchos sistemas operativos se puede usar el símbolo “>” para redirigir hacia “otro sitio” (la impresora o un fichero de texto, por ejemplo) la información que iba destinada originalmente a la pantalla. Esto funciona, entre otros, en Windows, MsDos y toda la familia de sistemas operativos Unix (incluido Linux). Pero en el caso de Linux (y los Unix en general) podemos redirigir además los mensajes de error hacia otro sitio distinto del resto de mensajes (que iban destinados a pantalla). Esto se consigue con el símbolo “2>” : calculaResultados > valores.txt 2> errores.txt Esta orden pone en marcha un programa llamado “calculaResultados”, guarda en el fichero “valores.txt” los mensajes que normalmente aparecerían en pantalla, y guarda en el fichero “errores.txt” los mensajes de error. Esta política de separar los mensajes de información y los mensajes de error es fácil de llevar a nuestros programas. Basta con que los mensajes de error no los mandemos a pantalla con órdenes como “printf”, sino que los mandemos a un fichero especial llamado “stderr” (salida estándar de errores). Por ejemplo, a la hora de intentar abrir un fichero podríamos hacer: fichero = fopen("ejemplo.txt", "rt"); if (fichero == NULL) fprintf(stderr, "Fichero no encontrado!\n"); else printf("Accediendo al fichero...\n"); Si el usuario de nuestro programa no usa “2>”, los mensajes de error le aparecerían en pantalla junto con cualquier otro mensaje, pero si se trata de un usuario avanzado, le estamos dando la posibilidad de analizar los errores cómodamente. UN EJEMPLO DE LECTURA Y ESCRITURA: TAG DE UN MP3. Los ficheros de sonido en formato MP3 pueden contener información sobre el autor, el título, etc. Si la contienen, se encontraría a 128 bytes del final del fichero. Los primeros 3 bytes de esos 128 deberían ser las letras TAG. A continuación, tendríamos otros 30 bytes que serían el título de la canción, y otros 30 bytes que serían el nombre del autor. Con esto ya podríamos crear un ELECTROTECNIA 129 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II programa que lea esa información de un fichero MP3 (si la contiene) e incluso que la modifique. Estos textos (título, autor y otros) deberían estar rellenos con caracteres nulos al final, pero es algo de lo que no tenemos la certeza, porque algunas aplicaciones lo rellenan con espacios (es el caso de alguna versión de WinAmp). Por eso, leeremos los datos con “fread” y añadiremos un carácter nulo al final de cada uno. Además, haremos que el programa nos muestre la información de varios ficheros: nos pedirá un nombre, y luego otro, y así sucesivamente hasta que pulsemos Intro sin teclear nada más. #include <stdio.h> #include <string.h> int main() { FILE* fich; char temp[31]; int i; do { /* Pido el nombre del fichero */ printf("\n Escribe el nombre del fichero MP3 a comprobar: "); gets(temp); /* Si no teclea nada, terminaré */ if (strcmp(temp,"")==0) puts("\nAplicacion finalizada."); /* Si existe nombre, intento abrir */ else if ( (fich=fopen(temp,"r+b"))!=NULL ) { /* Si he podido abrir, muestro el nombre */ printf("Nombre del fichero: %s\n",temp); /* Miro el tamaño del fichero */ fseek(fich,0,SEEK_END); printf("Tamaño: %d\n",ftell(fich)); /* A 128 bytes está la marca "TAG" */ fseek(fich,-128,SEEK_END); fread(temp,3,1,fich); /* Son 3 letras, añado caracter nulo al final */ temp[3]='\0'; if (strcmp(temp,"TAG")!=0) puts("No se encontró información válida."); else { /* Si existe la marca, leo los datos */ /* Primero, 30 letras de titulo */ ELECTROTECNIA 130 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II fread(temp,30,1,fich); temp[strlen(temp)]='\0'; printf("Titulo: %s\n",temp); /* Luego 30 letras de autor */ fread(temp,30,1,fich); temp[strlen(temp)]='\0'; printf("Artista: %s\n",temp); /* Ahora vamos a modificar el titulo */ printf("\nIntroduce el nuevo titulo: "); gets(temp); /* Lo rellenamos con ceros, para seguir el estándar */ for (i=strlen(temp); i<=29; i++) temp[ i ]='\0'; /* Y lo guardamos en su posición */ fseek(fich,-125,SEEK_END); fwrite(&temp, 30, 1, fich); printf("Titulo actualizado.\n"); fclose(fich); } /* Fin del "else" de MP3 con informacion */ } /* Fin del "else" de fichero existente */ else puts("No se pudo abrir el fichero\n"); } /* Fin del "do..while" que repite hasta que no se escriba nombre */ while (strcmp(temp,"")!=0); return 0; } EVITAR LOS PROBLEMAS DE "GETS". El uso de "gets" está desaconsejado a partir del estándar C99 (de 1999), por tratarse de una orden poco segura, pero esta orden ni siquiera existirá en los compiladores que sigan el estándar C11 (de diciembre de 2011). Una alternativa, en compiladores modernos, es usar "get_s" que recibe como segundo parámetro el tamaño máximo del texto. Otra alternativa, más segura que gets, que permite que la cadena contenga espacios, y que funcionará en cualquier compilador de C, es usar "fgets". "fgets" espera 3 parámetros: la variable en la que se guardará el texto, la anchura máxima y el fichero desde el que leer. El "truco" para usar "fgets" para leer de teclado es indicar "stdin" (standard in, entrada estándar) como nombre que fichero, que es un identificador predefinido en el sistema: fgets(nombre, 20, stdin); Eso sí, "fgets" tiene un problema para este uso: conserva el avance de línea (\n). Por eso, habrá que eliminarlo "a mano" (si la cadena no está vacía y si realmente termina en avance de línea, porque puede no ser así si la cadena era más larga que lo esperado y se ha truncado): ELECTROTECNIA 131 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II if ((strlen(nombre)>0) && (nombre[strlen (nombre) - 1] == '\n')) nombre[strlen (nombre) - 1] = '\0'; Con esas dos órdenes podriamos evitar los problemas de "gets" de una forma que se comporte bien en cualquier compilador, usando "fgets" para leer de teclado como si fuera un fichero. No es la única forma: hay autores que prefieren no usar ficheros sino un formato avanzado de "scanf", en el que se le indica que acepte todo hasta llegar a un avance de línea, pero esto puede no ser admitido por todos los compiladores: scanf("%[^\n]s",nombre); Para evitar problemas de desbordamiento, deberíamos indicar la anchura máxima: scanf("%20[^\n]",nombre); También podemos delimitar los caracteres admisibles (nuevamente, quizá no todos los compiladores lo permitan): scanf("%10[0-9a-zA-Z ]s", nombre); Muchos expertos recomiendan no usar directamente "gets" ni "scanf", ni siquiera para leer datos numéricos, sino hacer la lectura en una cadena de texto con "fgets" y luego extraer la información de ella con "sscanf". ELECTROTECNIA 132 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II CAPÍTULO 10 10 BIBLIOTECAS DE USO FRECUENTE. En este capítulo se tratará: Llamada al sistema: SYSTEM. Temporización. Pantalla y Teclado con Turbo C. ELECTROTECNIA 133 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II BIBLIOTECAS DE USO FRECUENTE. LLAMADAS AL SISTEMA: SYSTEM. Si hay algo que no sepamos o podamos hacer, pero que alguna utilidad del sistema operativo sí es capaz de hacer por nosotros, podemos hacer que ella trabaje por nosotros. La forma de llamar a otras órdenes del sistema operativo (incluso programas externos de casi cualquier tipo) es utilizar la orden “system”. Por ejemplo, podríamos mostrar la lista de ficheros de la carpeta actual con la orden “ls”, así: #include <stdio.h> #include <stdlib.h> int main() { printf("El contenido de la carpeta actual es: \n"); system ("ls"); return 0; } TEMPORIZACIÓN. Si lo que queremos es hacer una pausa en un programa, en ocasiones tendremos funciones que nos permitan hacer una pausa de ciertas milésimas de segundo, como la función “delay” de Turbo C. #include <stdio.h> #include <dos.h> int main() { printf("Vamos a esperar 2 segundos... "); delay(2000); printf("El tiempo ha pasado.\n"); return 0; } Si queremos comprobar la fecha y hora del sistema, lo podemos hacer con las funciones disponibles en “time.h”, que sí son parte del estandar ANSI C, por lo que deberían estar disponibles para casi cualquier compilador. Como lo podemos apreciar en el siguiente ejemplo: #include <stdio.h> #include <time.h> int main() { ELECTROTECNIA 134 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II time_t segundos; struct tm *fecha; segundos = time(NULL); printf("Instante actual: %u s\n", segundos); fecha = gmtime(&segundos); printf("Como texto es: %s\n", asctime(fecha)); printf("En concreto, la hora Greenwich es: %2d:%02d:%02d\n", fecha->tm_hour, fecha->tm_min, fecha->tm_sec); return 0; } Dentro de “time.h”, tenemos definido un tipo llamado “time_t” que representará a una cierta fecha (incluyendo hora). La mayoría de los sistemas lo representan internamente como un entero largo (el número de segundos desde cierta fecha), aunque es algo que a nosotros no nos debería hacer falta saber si usamos directamente ese tipo “time_t”. Tenemos también un tipo de registro (struct) predefinido, llamdo “struct tm”, que guarda la información desglosada del día, el mes, el año, la hora, etc. Los principales campos que contiene son éstos: int tm_hour; /* hora (0 - 23) */ int tm_mday; /* Dia del mes (1 - 31) */ int tm_min; /* Minutos (0 - 59) */ int tm_mon; /* Mes (0 - 11 : 0 = Enero) */ int tm_sec; /* Segundos (0 - 59) */ int tm_wday; /* Dia de la semana (0 - 6 : 0 = Domingo) */ int tm_yday; /* Dia del año (0 - 365) */ int tm_year; /* Año menos 1900 */ y el modo de usarlas se ve en el fuente anterior: printf("En concreto, la hora es: %2d:%02d:%02d\n", fecha->tm_hour, fecha->tm_min, fecha->tm_sec); Como hemos visto en este ejemplo, tenemos varias funciones para manipular la fecha y la hora: • “time” devuelve el número de segundos que han pasado desde el 1 de enero de 1970. Su uso habitual es hora = time(NULL); ELECTROTECNIA 135 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II • “gmtime” convierte ese número de segundos que nos indica “time” a una variable de tipo “struct tm *” para que podamos conocer detalles como la hora, el minuto o el mes. En la conversión, devuelve la hora universal (UTC o GMT, hora en Greenwich), que puede no coincidir con la hora local. • “localtime” es similar, pero devuelve la hora local, en vez de la hora universal (el sistema debe saber correctamente en qué zona horaria nos encontramos). • “asctime” convierte un dato horario de tipo “struct tm *” a una cadena de texto que representa fecha, hora y día de la semana, siguiendo el formato Sat May 20 15:21:51 2000 (día de la semana en inglés abreviado a 3 letras, mes en inglés abreviado a 3 letras, número de día, horas, minutos, segundos, año). Pero aún hay más: • “difftime” calcula la diferencia entre dos fechas. • “mktime” crea un dato de tipo “struct tm *” a partir de otro incompleto. Es útil por ejemplo para saber el día de la semana si conocemos el día, mes y año. Si queremos imitar el funcionamiento de la orden “delay” de Turbo C, lo podemos hacer leyendo continuamente la fecha y la hora, o bien usar la función “clock()”, que da una estimación (lo más aproximada que el sistema permita) del tiempo que hace que nuestro programa comenzó a ponerse en marcha: #include <stdio.h> #include <time.h> void espera (int segundos) { clock_t instanteFinal; instanteFinal = clock () + segundos * CLOCKS_PER_SEC ; while (clock() < instanteFinal) { } } int main () { int n; printf ("Comienza la cuenta atras... \n"); for (n=10; n>0; n--) { printf ("%d \n",n); espera (1); } printf ("Terminado!\n"); return 0; ELECTROTECNIA 136 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II } Nota: en Turbo C no existe la constante CLOCKS_PER_SEC, sino una llamada CLK_TCK con el mismo significado (“ticks” del reloj en cada segundo, para poder convertir a segundos el valor que nos indica “clock()”). PANTALLA Y TECLADO CON TURBO C. La familia Turbo C / Turbo C++ / Borland C++ incluye una serie de compiladores creados por Borland para Dos y para Windows. Con ellos se podía utilizar ciertas órdenes para escribir en cualquier posición de la pantalla, para usar colores, para comprobar qué tecla se había pulsado, etc. Eso sí, estas órdenes no son C estándar, así que lo más habitual es que no se encuentren disponibles para otros o para otros sistemas operativos. Aun así, como primer acercamiento al control de estos dispositivos desde Linux, puede ser interesante conocer lo que ofrecía la familia de Turbo C y posteriores, porque sientan muchas de las bases que después utilizaremos, pero a la vez se trata de funciones muy sencillas. Comencemos por las más habituales en cuanto a manejo de pantalla: • clrscr - Borra la pantalla. • gotoxy - Desplaza el cursor a ciertas coordenadas (X, la primera, indicará la columna; Y, la segunda, será la fila). • textcolor - Cambia el color del texto (el de primer plano). • textbackground - Cambia el color del texto (el de fondo). • textattr - Cambia el color (fondo y primer plano) del texto. • cprintf - Escribe un mensaje en color. • cputs - Escribe una cadena de texto en color. Por lo que respecta al teclado, tenemos • getch - Espera hasta que se pulse una tecla, pero no la muestra en pantalla. • getche - Espera hasta que se pulse una tecla, y la muestra en pantalla. • kbhit - Comprueba si se ha pulsado alguna tecla (pero no espera). Todas ellas se encuentran definidas en el fichero de cabecera “conio.h”, que deberemos incluir en nuestro programa. Los colores de la pantalla se indican por números. Por ejemplo: 0 es el negro, 1 es el azul oscuro, 2 el verde, 3 el azul claro, 4 el rojo, etc. Aun así, para no tener que recordarlos, tenemos definidas constantes con su nombre en inglés: ELECTROTECNIA 137 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, DARKGRAY, LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE. (Del 0 al 15 igual 16 Colores) Pero hay que tener una precaución: en MsDos sólo se pueden usar como colores de fondo los 7 primeros: desde BLACK hasta LIGHTGRAY. Se podía evitar en los ordenadores más modernos, a cambio de perder la posibilidad de que el texto parpadee, pero es un detalle en el que no entraremos. El caso es que "normalmente" si hacemos algo como textbackground(LIGHTBLUE); no obtendremos los resultados esperados, sino que será como si hubiésemos utilizado el color equivalente en el rango de 0 a 7: textbackground(BLUE); Para usarlas, tenemos que incluir “conio.h”. Vamos a ver un ejemplo que emplee la mayoría de ellas: #include <conio.h> /* Para funciones de pantalla */ int main() { int i,j; /* Para los bucles "for" */ textbackground(BLUE); clrscr(); /* Fondo de la pantalla en azul */ /* Borro la pantalla */ for(i=0; i<=1; i++) /* Dos columnas */ for(j=0; j<=15; j++) /* Los 16 colores */ { gotoxy(10+ 40*i , 3+j); /* Coloco el cursor */ textcolor(j); /* Elijo el color */ if (j == 0) /* Si el color es 0 (negro) */ textbackground(LIGHTGRAY); /* dejo fondo gris */ else /* Si es otro color */ textbackground(BLACK); /* dejo fondo negro */ cprintf(" Este es el color %d ",j); /* Escribo en color */ } getch(); /* Final: espero que se pulse una tecla, sin mostrarla */ return 0; } El resultado sería éste: ELECTROTECNIA 138 ELECTRÓNICA DE COMPUTADORAS Y PROGRAMACIÓN-PARTE II Tenemos más funciones definidas en “conio.h”, que nos permiten saber en qué posición de la pantalla estamos, definir “ventanas” para trabajar sólo con una zona de la pantalla, etc. Pero como el trabajo en modo texto se considera cada vez más anticuado, y especialmente dentro del entorno Windows, no profundizaremos más. BIBLIOGRAFÍA: "The C programming language" Brian W Kernighan y Dennis M. Ritchie Ed. Prentice-Hall, segunda edición, 1988. "Lenguaje C. Introducción a la programación" Al Kelley e Ira Pohl Ed. Addison-Wesley, 1987 (edición original, en 1984). "C estándar. Guía de referencia para programadores" P.J. Plauger y Jim Brodie Ed. Anaya Multimedia, 1990 (primera edición en 1989) "C. Manual de referencia. Segunda edición" Herbert Schildt Ed. McGraw-Hill, 1990. ELECTROTECNIA 139 PROPIEDAD INTELECTUAL DEL SENATI PROHIBIDA SU REPRODUCCIÓN Y VENTA SIN LA AUTORIZACIÓN CORRESPONDIENTE