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, "[email protected]");
persona1.edad = 20;
/* Ahora a la dinámica */
persona2 = (struct datosPersona*)
malloc (sizeof(struct datosPersona));
strcpy(persona2->nombre, "Pedro");
strcpy(persona2->email, "[email protected]");
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