Diseño e implementación de una interfaz SCSI

Anuncio
UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios Profesionales
Coordinación de Ingeniería Electrónica
Diseño e implementación de una interfaz SCSI-1
diagnóstico de química.
para un
Por
Olivers R. De Abreu Sarli
Sartenejas, Noviembre de 2005
instrumento de
UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios Profesionales
Coordinación de Ingeniería Electrónica
Diseño e implementación de una interfaz SCSI-1
diagnóstico de química.
para un
instrumento de
Por
Olivers R. De Abreu Sarli
Realizado con la Asesoría de
Jaime Quiroga y Osberth C. De castro C.
PROYECTO DE GRADO
Presentado ante la Ilustre Universidad Simón Bolívar
como requisito parcial para optar al título de Ingeniero Electrónico
Sartenejas, Noviembre de 2005.
UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios Profesionales
Coordinación de Ingeniería Electrónica
Diseño e implementación de una interfaz SCSI-1
para un
diagnóstico de química.
PROYECTO DE GRADO presentado por
Olivers R. De Abreu Sarli
instrumento de
REALIZADO CON LA ASESORIA DE Jaime Quiroga y Osberth C. De castro C.
RESUMEN
Este informe muestra el diseño, desarrollo e implementación de una interfaz entre la
tecnología SCSI y la tecnología ATA/IDE la cual se desarrolló para integrar la tecnología de
almacenamiento de un disco duro ATA/IDE a un instrumento de química EXPRESS 550. Se
realizó el proyecto en etapas, basándose en otras interfaces típicas existentes, con lo cual se
obtuvo una tarjeta electrónica basada en microcontroladores que ofrece una interfaz totalmente
funcional, integral y con un funcionamiento óptimo que permitió actualizar el instrumento de
química EXPRESS 550 a una tecnología de almacenamiento más actual y económica.
PALABRAS CLAVES
INTERFAZ, SCSI, ATA/IDE, MICROCONTROLADOR, EQUIPOS MÉDICOS
Aprobado con mención:_______
Sartenejas, Noviembre de 2005.
DEDICATORIA
A mis Padres, que sin su apoyo no hubiera alcanzado mis metas.
iii
INDICE GENERAL
Resumen ...................................................................................................................... i
Dedicatoria ..................................................................................................................ii
Índice General ............................................................................................................ iii
Índice de Tablas...........................................................................................................v
Índice de Figuras ........................................................................................................vii
Tabla de Símbolos ..................................................................................................... viii
Glosario de Abreviaturas ............................................................................................ ix
CAPITULO 1: INTRODUCCION ..........................................................................1
1.1.- Introducción ........................................................................................................1
1.2.- Resultados Obtenidos..........................................................................................2
1.3.-Visión General de los Capítulos...........................................................................2
CAPITULO 2: PLANTEAMIENTO DEL PROBLEMA......................................4
2.1.- Justificación y antecedentes ................................................................................4
2.2.- Objetivo General .................................................................................................4
2.3.- Objetivos Específicos..........................................................................................4
2.4.- Soluciones Planteadas .........................................................................................4
2.3.- Alcance y limitaciones ........................................................................................5
CAPITULO 3: MARCO TEORICO .......................................................................6
3.1.- La interfaz SCSI .................................................................................................6
3.2.- Estándares SCSI ..................................................................................................6
3.2.1.- SCSI-1 ..................................................................................................6
3.2.2.- SCSI-2 ..................................................................................................7
3.2.3.- SCSI-3 ..................................................................................................8
3.3.- El bus de SCSI ....................................................................................................9
3.3.1.- Tipos de Buses SCSI ...........................................................................10
3.3.1.1.- Bus de Terminación Simple .................................................11
3.3.1.2.- Bus Diferencial de Alto Voltaje ...........................................11
3.3.1.3.- Bus Diferencial de Bajo Voltaje...........................................12
3.3.2.- Cables y Conectores ............................................................................12
3.3.3.- Señales del bus SCSI ...........................................................................14
3.3.3.1.- Señales de Datos...................................................................14
3.3.3.2.- Señales de Control ................................................................14
3.4.- El Protocolo SCSI ..............................................................................................17
3.4.1.- Fases del protocolo SCSI ....................................................................17
3.4.2.- Modos de transferencia de datos .........................................................20
3.4.2.1.- Transferencia de datos Síncrono...........................................20
3.4.2.2.- Transferencia de datos Asíncrona.........................................20
3.4.3. Comandos SCSI....................................................................................21
3.5.- Interfaz ATA/IDE ..............................................................................................22
3.6.- Modos de Transferencia ATA/IDE ....................................................................23
iv
3.6.1.- Modo de Transferencia PIO ................................................................23
3.6.2.- Modo de Transferencia DMA .............................................................24
3.7.-Modos de direccionamiento Lógico....................................................................25
3.8.-Configuración ATA/IDE.....................................................................................26
3.9.-Señales del bus ATA/IDE ...................................................................................26
3.10.- Registros de los Dispositivos ATA/IDE ..........................................................27
3.11.- Estándares ATA/IDE .......................................................................................29
CAPÍTULO 4: METODOLOGÍA ..........................................................................32
4.1.- Estudio bibliográfico de los dispositivos de almacenamiento ...........................32
4.2.- Estudio del proyecto de la interfaz SCSI-1 a SCSI-2.........................................32
4.3.- Estudio, modificación e implementación del programa del proyecto
LUNEXPRESS..................................................................................................33
4.4.- Desarrollo de la interfaz SCSI............................................................................34
4.5.- Desarrollo del controlador IDE ..........................................................................34
4.6.- Interfaz entre el controlador SCSI y el controlador IDE....................................35
4.7.-Diseño de la Tarjeta Integrada ............................................................................37
CAPITULO 5: Interfaz entre un disco SCSI y un dispositivo de almacenamiento IDE
5.1.- Descripción General...........................................................................................38
5.2.- Características Principales..................................................................................39
5.3- Funcionamiento...................................................................................................40
5.4- Comandos y Funciones Soportadas.....................................................................41
5.5.- Direccionamiento ...............................................................................................43
5.6.- Señales de Control y Datos ................................................................................43
5.7.- Funcionamiento del Programa ...........................................................................49
5.8.- Conexiones .........................................................................................................54
5.9.- Especificaciones Eléctricas ................................................................................55
5.10.- Tecnología Seleccionada..................................................................................56
5.11.- Circuito Impreso...............................................................................................57
CAPITULO 6: ANALISIS DE RESULTADOS ....................................................60
6.1.- Resultados Obtenidos con el Analizador de Señales .........................................60
6.2.-Análisis de los Resultados...................................................................................62
CAPITULO 7: CONCLUSIONES Y RECOMENDACIONES...........................63
7.2.- Recomendaciones...............................................................................................63
REFERENCIAS BIBLIOGRAFICAS ...................................................................65
APENDICE A*: ESTANDAR SCSI-2
APENDICE B*: ESTANDAR ATA VERSION 7
* Los Apéndices están incluidos en el CD que acompaña este informe
v
ÍNDICE TABLAS
Tabla 1.- Referencia de cables SCSI. .........................................................................12
Tabla 2.- Especificaciones del largo de los cables del bus SCSI ...............................13
Tabla 3.- Señales de Control del Bus SCSI ................................................................15
Tabla 3.- Señales de Control del Bus SCSI (Continuación).......................................16
Tabla 3.- Señales de Control del Bus SCSI (Continuación 2)....................................17
Tabla 4.- Bloque de Descripción de Comando básico de seis bytes ..........................21
Tabla 5.- Modos PIO ..................................................................................................23
Tabla 6.- Modos de Transferencia DMA de palabra simple ......................................24
Tabla 7.- Modos DMA Multipalabras ........................................................................25
Tabla 8.- Registro de los Dispositivos ATA/IDE.......................................................28
Tabla 8.- Registro de los Dispositivos ATA/IDE (Continuación) .............................29
Tabla 9.- Estándares ATA ..........................................................................................30
Tabla 10.- Comandos SCSI soportados por el IDEXPRESS ................................................. 41
Tabla 11.- Comandos IDE soportados por el IDEXPRESS ................................................... 41
Tabla 12.- Funciones del IDEXPRESS................................................................................. 42
Tabla 12.- Funciones del IDEXPRESS (Continuación)........................................................ 43
Tabla 13.- Señales de Control del Bus SCSI IDEXPRESS ................................................... 44
Tabla 13.- Señales de Control del Bus SCSI IDEXPRESS (Continuación) ......................... 45
Tabla 13.- Señales de Control del Bus SCSI IDEXPRESS (Continuación 2) ....................... 46
Tabla 14.- Señales de Control del Bus IDE del IDEXPRESS ............................................... 47
Tabla 14.- Señales de Control del Bus IDE del IDEXPRESS (Continuación) ...................... 48
Tabla 15.- Señales de Control del Bus IDE interno del IDEXPRESS ................................... 48
Tabla 15.- Señales de Control del Bus IDE interno del IDEXPRESS (Continuación) .......... 49
vi
Tabla 16.- Conexión Serial RS232......................................................................................... 54
Tabla 17.- Valores de Operación............................................................................................ 55
Tabla 18.- Resultados de Escritura y Lectura......................................................................... 62
vii
ÍNDICE DE FIGURAS
Figura 1.- Ejemplo de Configuraciones de SCSI .......................................................10
Figura 2.- Señales de Control SCSI............................................................................14
Figura 3.- Secuencia de Fases del bus SCSI...............................................................18
Figura 4.- Esquema del sistema típico del IDEXPRESS............................................39
Figura 5.- Bloques internos del IDEXPRESS ............................................................40
Figura 6.- Diagrama de flujo programa controlador SCSI .........................................51
Figura 7.- Diagrama de flujo programa controlador IDE...........................................52
Figura 8.- Conexiones físicas del IDEXPRESS .........................................................54
Figura 9.- Diagrama esquemático del circuito controlador bus IDE
del IDEXPRESS. ...................................................................................... 56
Figura 10. Diagrama esquemático del circuito controlador bus SCSI
del IDEXPRESS ........................................................................................57
Figura 11.- Cara superior de la tarjeta integrada IDEXPRESS..................................58
Figura 12.- Cara inferior de la tarjeta integrada IDEXPRESS ...................................59
Figura 13.- Captura de transmisión de datos bus SCSI ..............................................60
Figura 14.- Captura de transmisión de señales de control bus SCSI..........................60
Figura 15.- Señales de control de transferencia de datos ...........................................61
viii
TABLA DE SIMBOLOS
Abreviatura
A
Unidad
Ampere
bps
bits por segundo
Hz
Hertz
MB
MegaByte = 1x 106 bytes
s
Segundo
RX
Recepción
TX
Transmisión
V
Voltio
ix
GLOSARIO DE ABREVIATURAS
ANSI
Instituto Nacional de Estándares Americanos (del inglés American
National Standards Institute)
ATA
Tecnología Avanzada de Acoplamiento (del inglés Advanced
Technology Attachment) controla los dispositivos de almacenamiento
masivo de datos.
CDB
Bloque Descriptor de Comandos (del inglés Command Descriptor
Block). Son los bytes que conforman los comandos SCSI.
CPU
Unidad Central de Procesamiento (del inglés Central Proccesing Unit).
Unidad donde se ejecutan las instrucciones de los programas y se
controla el funcionamiento de los distintos componentes del sitema.
DMA
Acceso directo a memoria (del inglés Direct Memory Access) permite a
cierto tipo de componentes acceder a la memoria del sistema para leer
y/o escribir independientemente del CPU principal.
IDE
Controlador Electrónico Incorporado (del inglés Integrated Drive
Electronics) que indica que el controlador del dispositivo se encuentra
integrado en la electrónica del dispositivo.
LUN
Número de Unidad Lógica (del inglés Logical Unit Number). Número
que se utiliza para identificar a los dispositivos en el bus SCSI.
PIO
Entrada y salida programada (del inglés programmed input/output).
Modo de transferencia de datos utilizado en los primeros dispositivos
ATA/IDE.
SCSI
Pequeño Sistema de Interfaz de Computadora (del inglés Small
Computer System Interface). Es una interfaz estándar para la
transferencia de datos.
CAPITULO 1: INTRODUCCION
Muchas veces surge la necesidad de adaptar nuevas tecnologías a equipos y sistemas que
tienen tecnologías obsoletas o que ya resultan demasiado costosas para su mantenimiento.
Esto se hace cada vez más necesario en nuestro país debido al alto costo que representa
actualmente la importación e implementación de nuevos sistemas. Así vemos como por estos
problemas se comienza a plantear la posibilidad de desarrollar tecnología de bajo costo,
eficiente y optimizada, que permitan alargar la vida de los equipos, y que representen una
mejora y un ahorro a largo plazo.
Es por ello que ahora muchas compañías han optado por desarrollar proyectos que les
permitan actualizar sus sistemas para brindar un mejor servicio y al mismo tiempo, reducir los
costos de mantenimiento y operación de sus equipos y sistemas.
Científica Industrial de Venezuela es la empresa donde se desarrolló el proyecto. Fue creada
en 1977 y es una de las más importantes empresas en el suministro de instrumentos y
productos para el laboratorio, especialmente en el laboratorio clínico, hospitales, universidades
y centros de investigación en Venezuela.
La empresa distribuye en forma exclusiva, a través de ocho oficinas que cubren todo el
territorio nacional, los productos de empresas líderes a nivel mundial como BAYER
DIAGNOSTICS, OLYMPUS DIAGNOSTICS, SYSMEX CORPORATION, entre otras.
El proyecto consistió en diseñar, desarrollar e implementar una interfaz SCSI-1 a otro tipo de
dispositivo de almacenamiento a través de un circuito electrónico.
El dispositivo de almacenamiento se adaptó a un instrumento de diagnóstico de química
Express 550 que utilizaba la tecnología SCSI. Para lograr este objetivo se diseñó e implementó
una tarjeta controladora adaptando así un disco duro ATA/IDE al instrumento de química.
Esta tarjeta controladora cumple con todas las funciones y características necesarias para que
el instrumento de química EXPRESS 550 sea totalmente funcional sin ningún tipo de errores
en la integridad de los datos almacenados, y así pueda ser implementado en los laboratorios y
clínicas donde existen este tipo de instrumentos químicos.
2
La estructura de este informe se explica a continuación:
- Capítulo 1. Introducción
Se hace una pequeña descripción de la empresa donde se realizó la pasantía, se da una breve
descripción del proyecto, los resultados obtenidos y unas breves conclusiones.
- Capítulo 2. Planteamiento del Problema
En este capítulo se plantean las justificaciones y razones por las cuales se desarrolló este
proyecto, los objetivos generales y específicos y cuales fueron las soluciones que se plantearon
para resolver este proyecto. También se discuten sus alcances y limitaciones.
- Capítulo 3. Marco Teórico
En este capítulo se da una visión general de las características lógicas y físicas y del
funcionamiento de la interfaz SCSI así como también de la interfaz IDE.
-Capítulo 4. Metodología.
En este capítulo se da una síntesis de la metodología utilizada para desarrollar este proyecto,
los pasos que se siguieron, las pruebas que se realizaron y de cómo se obtuvieron los
resultados finales.
-Capítulo 5. Interfaz entre un disco SCSI y un dispositivo de almacenamiento IDE
En este capítulo se da una descripción técnica del proyecto desarrollado, su funcionamiento,
sus características tanto lógicas cómo física, como por ejemplo comandos soportados,
conexiones, etc. Así como su implementación en el instrumento de química EXPRESS 550.
- Capítulo 6. Análisis de Resultados
Aquí se hace un breve análisis y discusión de los resultados obtenidos al finalizar el desarrollo
y la implementación de la interfaz.
3
- Capítulo 7. Conclusión y Recomendaciones
Aquí se discuten las conclusiones a las que se llegaron y se dan las recomendaciones que se
creen necesarias para el mejoramiento e implementación de este proyecto.
CAPITULO 2: PLANTEAMIENTO DEL PROBLEMA
En este capítulo se plantean las justificaciones y razones por las cuales se desarrolló este
proyecto, los objetivos generales y específicos y cuales fueron las soluciones que se plantearon
para resolver este proyecto. También se discuten sus alcances y limitaciones.
2.1.- Justificación y antecedentes
El instrumento de química EXPRESS 550 es un equipo que tiene más de 15 años en el
mercado y utiliza una tecnología de almacenamiento SCSI-1 de mediados de los ochentas, la
cual ya no es fácil de conseguir y su adquisición se ha vuelto muy costosa. Además al dañarse
el disco duro SCSI se inutiliza por completo el equipo por largos periodos de tiempo lo cual
representa un gran costo para la compañía y para los laboratorios clínicos que poseen estos
equipos.
Por este motivo, y para alargar la vida de utilización de estos equipos, se ha propuesto en esta
compañía un proyecto para actualizar el dispositivo de almacenamiento de este instrumento de
química a una tecnología más actualizada y fácil de conseguir.
2.2.- Objetivo General
Obtener un dispositivo electrónico
que,
cumpliendo con los requerimientos de
funcionamiento y especificaciones del instrumento EXPRESS 550, permita almacenar datos
en discos duros de tecnología actual de bajo costo.
2.3.- Objetivos específicos
•
Lograr una comunicación eficiente entre el protocolo de comunicación de los
dispositivos SCSI-1 con el dispositivo de almacenamiento ATA/IDE.
•
Obtener un dispositivo electrónico confiable de fácil mantenimiento y reparación.
•
Lograr aminorar los costos de los dispositivos de almacenamiento actualmente
utilizados.
5
2.4.- Soluciones Planteadas
Como primer paso, se hizo un estudio de cuál era el dispositivo de almacenamiento actual que
cumpliera con las características de ser fácil de encontrar, económico, confiable y que fuera
adaptable al instrumento de química.
Después de hacer un estudio en el mercado venezolano y comparar las características de varios
dispositivos de almacenamiento se llegó a la conclusión de que la mejor solución era la
tecnología ATA/IDE.
Esta tecnología presenta todas las características que se buscan para el proyecto, entre ellas es
un dispositivo que se consigue muy fácilmente, es muy económico tomando en cuenta la
relación entre capacidad y precio en comparación con los disco duros SCSI, tiene un protocolo
de comunicación fácil de implementar y es un dispositivo bastante confiable y existen varios
programas para obtener la información dentro del disco en caso de alguna avería.
2.5.- Alcance y Limitaciones
Este proyecto cumplió con los objetivos propuestos logrando desarrollar una tarjeta
controladora que permite utilizar dispositivos de almacenamiento del tipo ATA/IDE en el
instrumento de química EXPRESS 550 sin la necesidad de continuar utilizando el dispositivo
SCSI-1. La tarjeta controladora acepta cualquier dispositivo ATA/IDE actual y logra una
comunicación eficiente entre el instrumento de química y el disco duro ATA.
Aunque se debía lograr la eliminación de la tarjeta controladora SCSI que es parte del
instrumento de química se deja propuesta la eliminación del dispositivo de almacenamiento
flexible para un futuro proyecto y así se pueda eliminar esta tarjeta controladora SCSI.
CAPITULO 3: MARCO TEORICO
En este capítulo se explican las características lógicas, físicas y de funcionamiento de la
interfaz SCSI así como también de la interfaz IDE.
3.1.- La Interfaz SCSI
SCSI del acrónimo inglés Small Computer System Interface es una interfaz estándar para la
transferencia de datos entre periféricos en el bus de la computadora.
SCSI es un bus de entrada y salida independiente e inteligente a través del cual una variedad
de diferentes dispositivos y una o mas controladoras pueden comunicarse e intercambiar
información independientemente de lo que esté haciendo el resto del sistema.
El principal objetivo de la interfaz es proveer a las computadoras de una independencia del
tipo de dispositivo. Así, diferentes tipos de discos, cintas magnéticas, impresoras, medios
ópticos, y otros periféricos pueden ser añadidos a una computadora sin requerir ninguna
modificación al hardware o al sistema operativo. Precauciones son tomadas para la adición de
características y funciones especiales a través del uso de campos únicos y códigos para los
fabricantes. Para ver más información acerca de este tema se recomienda ver [1], [2], [3]
3.2.- Estándares SCSI
SCSI comienza en el año de 1979 bajo el nombre de Shugart Associates System Interface (ó
SASI). Esta fue la primera interfaz inteligente diseñada para trabajar con disco duros en mini
computadoras.
En el año de 1981 Shugart Associates y National Cash Register (NCR) presentaron la
propuesta SASI al comité X3T9.2 para la publicación de un estándar por el Instituto Nacional
Americano de Estándares (ANSI por sus siglas en inglés). Después de muchos años de
deliberaciones, finalmente se aprobó el estándar en Junio de 1986. El nuevo estándar
publicado como el documento X3.131-1986 fue llamado Small Computer System Interface
(SCSI). Esta primera versión ahora es referida como SCSI-1 debido a que desde 1986 nuevos
estándares fueron publicados.
7
3.2.1.- SCSI-1
SCSI-1 define lo básico de los primeros buses SCSI, incluyendo la longitud de los cables,
señalizaciones, comandos y modos de transferencia. Es muy limitada, especialmente
comparándola con los estándares actuales.
Los dispositivos correspondientes al estándar SCSI-1 usan una transferencia de 8 bits, con una
tasa de velocidad de transferencia máxima de 5 MB/s. Sólo está soportada una transmisión de
terminación pasiva. Este estándar no tuvo la adecuada aceptación por parte de los fabricantes,
especialmente por la falta de estandarización de los comandos, por lo que no había garantía de
que un dispositivo trabajara con otro. Actualmente SCSI-1 es obsoleto y el estándar fue
retirado por la ANSI. [4]
Debido a la falta de estandarización en el conjunto de comandos casi inmediatamente después
de que el SCSI-1 fuera adoptado un grupo de la industria desarrollo el llamado Conjunto de
Comandos Comunes (CCS por sus siglas en inglés) el cual fue un intento en resolver este
problema de estandarización.
3.2.2.- SCSI-2
En el año de 1986 se comenzó a trabajar con la especificación de SCSI-2. En enero de 1994
fue aprobado por la ANSI el nuevo estándar designado como X3.131-1994 el cual pasó a
reemplazar al SCSI-1. Algunas de las metas de esta actualización del estándar fue mejorar el
desempeño, la eficiencia y añadir nuevas características a la interfaz. Sin embargo, el objetivo
principal fue el de formalizar y estandarizar propiamente los comandos SCSI.
A continuación se presenta una lista de las mejoras que introdujo el estándar SCSI-2:
i.
Nuevos conectores de 50 y 68 pines fueron estandarizados lo cual disminuyó el
tamaño de los conectores y los hizo mas eficientes. Esto fue especialmente
importante para las computadoras IBM PC, debido a que los conectores anteriores
eran muy difíciles de adaptar en una tarjeta controladora dentro de la PC.
ii.
La velocidad de transferencia de datos a través del bus SCSI fue incrementada
gracias a la transmisión síncrona. Esto permitió que la velocidad del bus fuera
duplicada hasta llegar a tazas de transferencia de 10MB/s con transmisiones de 8
bits.
8
iii.
La velocidad fue aún mayor por el aumento en el tamaño del bus de datos a 16 y 32
bits llamado Wide SCSI.
iv.
La confiabilidad de la comunicación entre dispositivos fue incrementada al permitir
que se inicien negociaciones síncronas siempre que el iniciador o el dispositivo
objetivo detecte un cambio.
v.
La integridad de la señalización fue mejorada debido a que la revisión de paridad
en el bus fue hecha obligatoria.
vi.
Se permitió que varias peticiones fueran hechas simultáneamente en el bus.
vii.
Se definió el uso de la terminación activa, que provee una terminación más
confiable que la terminación pasiva.
viii.
Para permitir cables más largos se introdujo la señalización diferencial.
ix.
Con el Wide SCSI se aumentó el número de dispositivos posibles por bus,
permitiendo hasta 16 dispositivos en comparación con los 8 permitidos por SCSI-1.
x.
Conjuntos de comandos fueron añadidos para dispositivos como CD-ROMs,
escáner.
xi.
Muchas otras mejoras se le agregaron a los conjuntos de comandos que existían.
Uno de los criterios de diseños más importantes en la creación de SCSI-2 fue la
compatibilidad hacia atrás con SCSI-1. Para mayor información de este estándar leer
Apéndice A en el CD adjunto.
3.2.3.- SCSI-3
Justo después de la aprobación de SCSI-2 en 1994, se comenzó a trabajar en un nuevo
estándar llamado SCSI-3. A diferencia de los estándares anteriores SCSI-3 es una familia de
estándares que se van desarrollando independientemente pero que están interrelacionados
entre si y con un objetivo común. Debido a su formato y al continuo desarrollo de estos
estándares SCSI-3 no se considera aún un estándar aprobado, sin embargo, alguno de sus
desarrollos han sido oficialmente adoptados por la industria. Estos estándares están basados en
9
variaciones de la Interfaz Paralela SCSI (SPI por sus siglas en inglés SCSI Parallel Interface),
la cual es la manera en que los dispositivos SCSI se comunican entre si.
Debido a que SCSI-3 define un número de diferentes estándares, cada uno cubriendo distintos
aspectos de SCSI, se hizo necesario organizarlos en un formato que definiría cómo se
relacionan entre si y los objetivos de la interfaz como un todo. Este formato es llamado
Arquitectura de SCSI-3. Para más información acerca de los estándares se recomienda leer [2],
[3], [4] y [5].
3.3.- El bus SCSI
En el bus SCSI es permitida la comunicación entre únicamente dos dispositivos en un tiempo
dado, donde uno debe actuar como Iniciador el cual es el que origina la operación y el otro
actúa como Objetivo, que es el que responde a la operación solicitada por el Iniciador.
Cada dispositivo SCSI tiene un identificador único llamado SCSI ID lo que permite tener
múltiples dispositivos en un solo bus. Para un bus de datos de 8 bits se puede tener un máximo
de 8 dispositivos lo cual da como resultado un rango de ID de 0 a 7, para un bus de datos de
16 el rango sería de 0 a 15, y para un bus de datos de 32 bits sería de 0 a 31.
Además de esto cada dispositivo SCSI puede tener hasta 8 sub-dispositivos, para identificar
estos sub-dispositivos se utiliza el Número de Unidad Lógico (LUN logical unit number por
sus siglas en inglés) esto permite que se expanda el número de dispositivos que puede soportar
el bus SCSI.
El diagrama presentado en la Figura 1. muestra las distintas configuraciones que puede tener
un sistema SCSI, incluyendo un iniciador con un objetivo, un iniciador con múltiples objetivos
y múltiples iniciadores con múltiples objetivos.
10
Un Iniciador conectado a un solo Objetivo
Sistema
Adaptador
SCSI
Bus SCSI
Iniciador
Controlador
Unidades Lógicas
Objetivo
Un Iniciador conectado a múltiples Objetivos
Sistema
Adaptador
SCSI
Bus SCSI
Iniciador
Controlador
Unidades Lógicas
Objetivo
Controlador
Unidades Lógicas
Objetivo
Múltiples Iniciadores conectado a múltiples Objetivos
Sistema
Adaptador
SCSI
Bus SCSI
Iniciador
Sistema
Adaptador
SCSI
Iniciador
Controlador
Unidades Lógicas
Objetivo
Controlador
Unidades Lógicas
Objetivo
Controlador
Unidades Lógicas
Objetivo
Figura 1. Ejemplo de Configuraciones de SCSI
3.3.1.- Tipos de Buses SCSI
El bus de SCSI puede ser de dos tipos eléctricos:
i.
Terminación simple
ii.
Diferencial de Alto Voltaje (HDV High Differential Voltage)
iii.
Diferencial de Bajo Voltaje (LDV Low Differential Voltage)
Los cables están definidos como cable tipo A que es de 50 conductores y cable tipo B que es
de 68 conductores. Ambos extremos de cada cable deben tener una terminación o
acoplamiento.
11
3.3.1.1.- Bus de Terminación Simple
En esta configuración las señales están representadas en un solo conjunto de cables, la
información es interpretada por el voltaje con referencia a tierra. Este tipo es el más
económico debido a que la electrónica usada para enviar y recibir señales es simple y barata.
El problema de este tipo de bus es que, al usar solo una interpretación por la amplitud del
voltaje, el ruido presenta un grave problema y esto trae como consecuencia que la longitud de
los cables no puede ser mucha, ya que a mayor longitud mayor es la interferencia por el ruido
eléctrico externo.
Para este tipo de bus se debe usar un cable plano de 50 conductores o un cable de 25 pares
cruzados, si se está trabajando con un cable tipo A. Si se utiliza un cable tipo B, se debe usar
un cable plano de 68 conductores o un cable de 34 pares cruzados. La máxima longitud del
cable no debe exceder los 6 metros.
La terminación o acoplamiento del bus debe estar presente en cada extremo del cable y debe
ser interna en los dispositivos SCSI que están en los extremos del cable.
3.3.1.2 Bus Diferencial de Alto Voltaje
En la configuración diferencial cada señal es enviada a través de dos cables. La información es
interpretada por la diferencia de voltaje entre los cables. Cuando en esta configuración el ruido
interviene lo hace por igual en ambos cables, al hacer la diferencia entre ambas señales el
ruido es cancelado, por lo que esta configuración es más inmune al ruido que la configuración
de terminación simple y por lo tanto pueden utilizarse cables más largos y transmisiones a
tazas de velocidad mayores.
Para este tipo de bus se debe usar un cable plano de 50 conductores o un cable de 25 pares
cruzados, si se está trabajando con un cable tipo A. Si se utiliza un cable tipo B, se debe usar
un cable plano de 68 conductores o un cable de 34 pares cruzados. La máxima longitud del
cable no debe exceder los 25 metros.
La terminación o acoplamiento del bus debe estar presente en cada extremo del cable y debe
ser interna en los dispositivos SCSI que están en los extremos del cable.
12
3.3.1.3 Bus Diferencial de Bajo Voltaje
En este tipo de configuración se utilizan las ventajas de la señalización diferencial pero con la
diferencia de que utiliza un bajo voltaje y como consecuencia una baja disipación de potencia.
Esto permite que se integre el controlador en un solo componente electrónico integrado.
Además se llego al acuerdo de que el bus diferencial de bajo voltaje fuera capaz de detectar
tanto dispositivos que trabajen en una configuración de bus de terminación simple como de
dispositivos de bus diferencial de alto voltaje. Esto es logrado a través de una señal llamada
DIFF SENSE, si el voltaje de esta señal es menor a los 0.6 V evidencia la presencia de un
dispositivo de terminación simple, si el voltaje está entre los 0.7 y los 1.9 V es un dispositivo
de diferencial de bajo voltaje y si el voltaje sobrepasa los 2.2 V hay dispositivos de diferencial
de alto voltaje presentes. Para más información acerca de los tipos de bus véase [2] y [3].
3.3.2.- Cables y Conectores
SCSI define un número mínimo de requerimientos para el número de cables necesarios así
como también como las características eléctricas de los cables. Los sistemas SCSI pueden
utilizar cables tanto internos como externos al gabinete. Los cables internos son típicamente
planos, no aislados, mientras que los cables externos suelen ser redondos y aislados. Debido a
que los cables planos causan mucha interferencia, los sistemas LVD utilizan cables redondos
internamente también.
Tabla 1. Referencia de Cables SCSI.
Máxima taza de
Estándar de
Ancho de bus
Bus
de datos
SCSI-1
8 bits
4
SCSI-2
8 bits
SCSI-2
transferencia
Tipo de Cable
(MB/s)
Número de
conductores
Sin
Sin
especificación
especificación
5
A
50
16 bits
10
B
68
SCSI-3 Paralelo
16 bits
80
P
68
Interfaz (SPI)
32 bits
60
PyQ
68 y 68
13
Tabla 2. Especificaciones del largo de los cables del bus SCSI
Tipo de Bus
Síncrono 5 MHz
Fast-10
Fast-20 (Ultra)
Fast-40 (Ultra 2)
Fast-80 (Ultra 3)
Propiedad
Máxima
longitud del bus
Máxima
longitud del bus
Máxima
longitud del bus
Máxima
longitud del bus
Máxima
Terminación
Diferencial Alto
Diferencial
Simple
Voltaje
Bajo Voltaje
6 metros
25 metros
12 metros
3 metros
25 metros
12 metros
1.5 metros
25 metros
12 metros
No se utiliza
25 metros
12 metros
No se utiliza
No se utiliza
12 metros
0.1 metros
0.1 metros
0.2 metros
0.3 metros
No disponible
No disponible
longitud del bus
Todos
Máxima
longitud de los
terminales
Todos
Mínima longitud
de los terminales
14
3.3.3.- Señales del Bus SCSI
SCSI utiliza 18 señales para un bus de 8 bits de datos, nueve de estas son señales de control
usa para manejar las fases lógicas del bus y nueve son señales de datos 8 para la palabra de
datos y uno para paridad.
En la Figura 2 se muestran todos los nombres de las señales y cuales señales puede manejar
cada dispositivo (el iniciador o el objetivo o ambos).
Figura 2 Señales de Control SCSI
3.3.3.1.- Señales de Datos
Estas señales están definidas normalmente por la notación DB(0-8,P) para un bus de ancho de
8 bits. Las características principales de estas señales son:
•
DB7 es el bit mas significativo mientras que DB0 es el menos significativo.
•
El bit de datos es definido como 1 cuando la señal es verdadera (Una señal verdadera
tiene un nivel de voltaje de 0 Voltios en un bus de terminación simple).
•
El bit de datos es definido como 0 cuando la señal es falsa (Una señal falsa tiene un
nivel de voltaje de 3 Voltios para un bus de terminación simple).
•
La paridad en SCSI es impar.
3.3.3.2.- Señales de Control
Las señales de control son utilizadas para realizar las distintas fases del protocolo de
comunicación SCSI las cuales son usadas para transmitir toda la información a través del bus.
Estas señales están divididas en tres categorías principales:
15
•
Señales de control básicas, que son usadas para determinar si el bus esta en uso, para
seleccionar otro dispositivo, para tener la atención del objetivo y para resetear el bus.
•
Señales de control para la transferencia de información, son usadas por el objetivo para
controlar las fases de transferencia de información. Las fases de transferencia de
información son utilizadas para transmitir comandos, mensajes, datos e información de
estado a través del bus.
•
Señales de tiempo de datos, que son usadas para capturar y validar los datos en el
dispositivo de recepción.
Tabla 3. Señales de Control del Bus SCSI
Señal Definición Categoría Iniciador Objetivo
BSY
Ocupado
Básica
Si
Si
Descripción
Indica que el bus esta siendo
utilizado.
SEL
Selección
Básica
Si
Si
Indica que un dispositivo SCSI esta
tratando de seleccionar o
reseleccionar otro dispositivo SCSI.
El iniciador utiliza esta señal para
seleccionar un objetivo, y el
objetivo la utiliza para reseleccionar
el iniciador.
ATN
Atención
Básica
Si
No
Usada por el iniciador para indicar
una condición de atención, marca un
momento cuando el iniciador
necesita la atención del objetivo
RST
Resetear
Básica
Si
No
Indica la condición de Reset y tiene
la atención de todos los dispositivos.
16
Tabla 3 (Continuación) Señales de Control del Bus SCSI
Señal
Definición
Categoría
Iniciador
Objetivo
C/D
Control/Datos
Transferencia
No
Si
Información
Descripción
Indica que datos de
información o control están
en el bus. Falso indica datos
y verdadero indica control.
I/O
Entrada/Salida
Transferencia
No
Si
Información y
Indica la dirección del flujo
de información en el bus de
Control
datos desde el punto de
vista del iniciador. Falso
indica que la dirección es
desde el iniciador al
objetivo y verdadero indica
lo contrario.
MSG
Mensaje
Transferencia
No
Si
Indica que el dispositivo
Información y
SCSI tiene un mensaje para
Control
transferir a otro dispositivo.
Esta señal es manejada
durante la fase de Mensaje.
REQ
Petición
Reloj Datos
No
Si
El objetivo indica una
petición para una fase de
transferencia de datos.
Cuando el objetivo esta
manejando el bus de datos
esta señal es utilizada para
indicarle al iniciador que
hay datos listo para el en el
bus.
17
Tabla 3 (Continuación 2) Señales de Control del Bus SCSI.
Señal
Definición
Categoría
ACK
Reconocimiento
Reloj Datos
Iniciador Objetivo
Si
No
Descripción
Esta señal indica que el
iniciador reconoce una fase
de transferencia de datos.
Cuando el iniciador esta
manejando el bus de datos
esta señal es utilizada para
indicarle al objetivo que
hay datos disponibles en el
bus.
Leyenda:
Si = Maneja la señal
No = No maneja la señal
3.4.- El Protocolo SCSI
SCSI utiliza un método para transferir datos entre los dispositivos en un proceso circular que
comienza y termina en la misma capa. Este protocolo se realiza a través de varias etapas que
debe cumplir cualquier dispositivo para poder transmitir información por el bus.
3.4.1.- Fases del Protocolo SCSI
El bus SCSI sólo puede estar en una sola fase en un determinado tiempo. Cada fase tiene un
conjunto de reglas o protocolo que debe ser aplicado cuando el bus cambia de una fase a otra.
Estas reglas son parte del código interno del dispositivo por lo que el control de las fases viene
dado por cada dispositivo conectado al bus.
18
En la Figura 3 se presenta un diagrama de las distintas fases del protocolo SCSI que son
seguidas por los dispositivos.
Figura 3. Secuencia de Fases del bus SCSI
A continuación se explican las distintas fases del protocolo SCSI.
BUS LIBRE
Es utilizada para indicar que ningún dispositivo SCSI esta usando el bus y que está
disponible para cualquier dispositivo. Antes de poder seguir a otra fase el dispositivo debe
detectar la fase de bus libre para poder continuar.
ARBITRACION
Esta fase permite al dispositivo SCSI ganar el control del bus para que así pueda
asumir el rol de iniciador u objetivo. Esta es la fase que le sigue a la fase de bus libre.
SELECCIÓN
19
Esta fase es utilizada por el iniciador para seleccionar a un objetivo para iniciar cualquier
función o comando en el objetivo. Durante esta fase el iniciador envía su número ID y el
número ID del objetivo.
RESELECCIÓN
Es una fase opcional que permite al objetivo reconectarse con un iniciador para continuar una
operación que fue anteriormente iniciada por el iniciador pero que fue detenida por el
objetivo.
COMANDO
Esta fase permite al objetivo solicitar información de comandos desde el iniciador.
STATUS
Permite al objetivo pedir que información acerca del estado sea enviada al iniciador.
ENTRADA DE MENSAJE
Esta fase es utilizada para que el objetivo pueda solicitar enviar un mensaje hacia el
iniciador.
SALIDA DE MENSAJE
Permite que el objetivo pida que el iniciador le envíe un mensaje. El objetivo llama a
esta fase en respuesta a una condición de Atención hecha por el iniciador.
ENTRADA DATOS
Permite que el objetivo envíe datos al iniciador.
SALIDA DATOS
Es utilizada por el objetivo para pedirle al iniciador que le envíe datos.
Para mayor información acerca de las fases del bus SCSI ver [2] y [3].
20
3.4.2.- Modos de Transferencia de Datos
Para la tecnología de SCSI existen dos modos de transferencia de datos el modo de
transferencia Síncrono y el modo de transferencia Asíncrono.
3.4.2.1.- Modo de Transferencia de datos Síncrono
Este tipo de modo de transferencia permite a los dispositivos comunicarse más rápidamente
debido a que el dispositivo que transmite no debe esperar ningún acuse de recibo por parte del
receptor para poder enviar el próximo dato. En SCSI este tipo de transmisión es opcional y
debe ser negociado entre el objetivo y el iniciador. La sincronización es hecha a nivel de
hardware por lo que los dispositivos deben soportar este tipo de modo de transmisión para que
pueda ser aplicado.
3.4.2.2.- Modo de Transferencia de datos Asíncrono
Este modo de transferencia es el más utilizado en la comunicación entre dispositivos SCSI y
es mucho más lento que el modo de transferencia síncrono debido a los retrasos que ocurren
en la negociación en el envío de datos.
La negociación asíncrona ocurre en cuatro pasos:
•
El objetivo hace verdadera la señal de control de petición (REQ) para hacerle saber al
iniciador que está solicitando que se le envíe alguna información.
•
Luego de que el iniciador recibe la señal de REQ coloca los datos en el bus y a
continuación hace verdadera la señal de reconocimiento (ACK) para hacerle saber al
objetivo que los datos ya están disponibles en el bus.
•
Al objetivo recibir la señal de ACK lee el bus de datos y hace falsa la señal de REQ
•
Por último al recibir la señal falsa de REQ el iniciador hace falsa la señal de ACK y
espera la próxima petición del objetivo.
Aunque este método de transferencia es más lento es mucho más fácil y económico de
implementar debido a que se reduce la complejidad del hardware.
21
3.4.3.- Comandos SCSI
Un comando es ejecutado cuando el iniciador envía un Bloque de Descripción de Comandos
(CDB por sus siglas en inglés Command Descriptor Block) al objetivo durante una fase de
comando. Las condiciones que aplican a cada CDB son:
•
El primer byte del CDB siempre es el código de operación.
•
El último byte del CDB es el byte de control.
•
El formato de los bytes del código de operación y de control son idénticos para todo
comando SCSI.
En la Tabla 4 se muestra el formato básico de un comando de seis bytes:
Tabla 4. Bloque de Descripción de Comando básico de seis bytes.
bit 7
bit 6
bit 5
byte 2
bit 3
bit 2
bit 1
bit 0
Código de Operación
byte 0
byte 1
bit 4
Número de Unidad Lógica (LUN)
Bit más significativo de la dirección lógica
Dirección de bloque lógico (Si es requerida)
Bit menos significativo de la dirección lógica
byte 3
byte 4
Tamaño de la transferencia (Si es requerido)
byte 5
Byte de control
Código de operación: Este campo le dice al objetivo que tan largo sera el CDB y que
operación quiere el iniciador que el objetivo realice.
Número de Unidad Lógica (LUN): Este campo fue más usado por SCSI-1 pero casi nunca es
utilizado por los nuevos estándares.
Dirección de bloque lógico: Este campo le dice al objetivo donde está ubicada la información
en el medio físico. Los bloques lógicos comienzan en 0 y son contiguos hasta la ubicación del
último bloque en el dispositivo. Los bloques son medidos en bytes y son la unidad más
22
pequeña de medición en un dispositivo una medida típica de bloque en un disco duro es de
512 bytes.
Tamaño de la transferencia: Este campo le dice al objetivo la cantidad de datos que se van a
transferir, normalmente está definido como la cantidad de bloques que se van a transmitir.
Byte de control: Este campo es utilizado para operaciones especiales como enlace de
comandos, también tiene algunos bits para operaciones únicas de los fabricantes.
También existen CDB de 10, 12 y 16 bytes. Algunos dispositivos aceptan todos estos tipos de
CDB y algunos solamente aceptan de 6 bytes.
Para mayor información acerca de los comandos y los CDB véase [2] y el Apéndice A.
3.5.- Interfaz ATA/IDE
ATA viene de las siglas en inglés para Advanced Technology Attachment, es una interfaz
estándar para conectar dispositivos de almacenamiento tales como disco duros y unidades de
CD-ROM dentro de sistemas.
A pesar de que el nombre oficial del estándar ATA, hay muchos sinónimos y abreviaciones
utilizadas entre la cual la que más popular se ha hecho es la IDE (Integrated Drive Electronics
por sus siglas en inglés), por lo que normalmente esta tecnología es llamada indistintamente
ATA, IDE ó ATA/IDE.
En el año de 1984 tiene su origen el estándar ATA/IDE, debido a un pedido de Compaq a
Western Digital. Compaq necesitaba una controladora compatible con el estándar ST506,
pero debido a la falta de espacio en el interior de un nuevo modelo de PC, la interfaz debía
estar integrada en el propio disco, de ahí el nombre IDE ("Integrated Drive Electronics").
Toda la electrónica de control se concentra en el dispositivo a controlar (el disco duro), con lo
que puede conectarse directamente el disco con el bus del sistema. Las primeras unidades IDE
son de 1986.
La realización práctica estaba acompañada de una serie de normas denominadas AT
Attachment (ATA) que establecían las condiciones que deben seguir los fabricantes de este
tipo de unidades. El sistema fue adoptado rápidamente por otros fabricantes, y en 1994 fue
aprobada la primera versión del estándar ATA. Para mayor información de la interfaz
ATA/IDE véase [6] y [7].
23
3.6.-Modos de Transferencia ATA/IDE
Aparte de las distintas interfaces, la velocidad de transferencia de un disco viene determinada
por los modos de transferencia que pueden soportar tanto la controladora como el disco duro.
Los dispositivos IDE pueden transferir información principalmente empleando dos métodos:
PIO y DMA.
3.6.1.- Modo de Transferencia PIO
El modo de transferencia de entrada/salida programada (PIO programmed input/output por sus
siglas en inglés) fue el método original usado para transferir datos entre el controlador ATA y
el dispositivo ATA.
PIO esta agrupado en diferentes modos que correspondes a tazas de transferencias distintas.
Todos los dispositivos ATA soportan el modo más lento (Modo 0). Al acceder los registros de
información usando el Modo 0 en el controlador ATA, el CPU puede determinar la taza de
transferencia máxima para el dispositivo y configurar el controlador ATA para un desempeño
optimo.
El modo PIO depende del procesador principal del sistema para efectuar el trasiego de datos
repercutiendo en el rendimiento del sistema.
Tabla 5. Modos PIO
Modo
Taza de Transferencia
Estándar donde fue
Máxima (MB/s)
definido
Modo 0
3.3
ATA
Modo 1
5.2
ATA
Modo 2
8.3
ATA
Modo 3
11.1
ATA-2
Modo 4
16.7
ATA-2
24
3.6.2.-Modo de Transferencia DMA
Acceso directo de memoria (Direct memory access DMA por sus siglas en inglés) permite,
como su nombre lo indica, que los dispositivos tengan acceso directo para la lectura y escritura
de la memoria del sistema independientemente del procesador principal del sistema, dejando
esta tarea a el controlador DMA.
Muchos tipos de modos DMA han sido definidos para la interfaz ATA/IDE, están agrupados
en dos categorías.
El primer grupo de modos son llamados modos DMA de palabras simples, cuando estos son
utilizados, cada transferencia contiene solamente una palabra de 16 bits. Este tipo de
transferencia fue definido en el primer estándar ATA.
Tabla 6. Modos de transferencia DMA de palabra simple
Modo DMA
Palabra simple
Taza de Transferencia
Estándar donde fue
Máxima (MB/s)
definido
2.1
ATA
4.2
ATA
8.3
ATA
Modo 0
Palabra simple
Modo 1
Palabra simple
Modo 2
La velocidad de transferencia de los modos de palabra simple es muy lenta y además es poco
eficiente, es por esto que fueron rápidamente suplantados por los modos de multipalabra. En
estos modos la transferencia ocurre en ráfagas de palabras en rápida sucesión, una palabra tras
otra, evitando así la sobrecarga de enviar palabra por palabra separadamente.
A continuación en la Tabla 7 se presentan algunos de los modos de transferencia multipalabra.
25
Tabla 7. Modos DMA Multipalabras
Modo DMA
Taza de Transferencia
Estándar donde fue
Máxima (MB/s)
definido
4.2
ATA
13.3
ATA-2
16.7
ATA-2
Multipalabra
Modo 0
Multipalabra
Modo 1
Multipalabra
Modo 2
Actualmente todos los modos de transmisión para ATA/IDE son DMA multipalabra.
3.7.- Modos de Direccionamiento Lógico
La especificación original de ATA usaba un modo de direccionamiento de 28 bits, lo cual
permitía direccionar hasta 268,435,456 sectores de 512 bytes (hasta 137 GB). Sin embargo en
las primeras computadoras personales se utilizaba el direccionamiento por Cilindro, Cabeza y
Sector (CHS por sus siglas en inglés Cylinder, Head and Sector) que limitaba a un tamaño
máximo de direccionamiento para los dispositivos ATA/IDE de solo 512 MB.
Como la capacidad de los discos crecía de forma imparable, pronto se hizo necesario
sobrepasar también el límite de direccionamiento de CHS. Para esto se ideó un sistema
denominado Direccionamiento Lógico por Bloques (LBA Logical Block Addressing por sus
siglas en inglés), que implica un sistema radicalmente distinto de direccionar los clusters o
bloques.
En lugar de referirse a ellos en términos geométricos (Cilindro, Cabeza y Sector), a cada
cluster se le asigna un número único, Número de Sector. Para ello se numeran 0, 1, 2, ... N-1,
donde N es el número total de sectores del disco. Actualmente LBA es el sistema dominante
para direccionamiento de discos grandes, puesto que desde que alcanzaron el límite de 8.455
GB, se hizo imposible expresar su geometría en términos de Cilindro, Cabeza y Sector.
26
3.8.- Configuración ATA/IDE
Normalmente se utiliza un conector de 40 pines conectado a un cable plano de 40 hilos que
posee 3 conectores, uno de ellos se conecta con el controlador ATA y los restantes se conectan
a los dispositivos ATA/IDE.
En el bus ATA se transmiten 16 bits de datos a la vez. Para los modos de transmisión Ultra
DMA/66 que son modos de transmisión de alta velocidad se utilizan cables de 80 hilos que
conservan los mismos 40 conectores y los 40 hilos restantes van conectados a tierra para evitar
la interferencia entre las señales de los cables. El estándar ATA siempre a especificado un
largo máximo del cable de 46 cm, lo que limita a este tipo interfaz para hacer conexiones
externas.
Si dos dispositivos están conectados al mismo cable, uno de ellos tiene que estar configurado
como maestro y el otro como esclavo para evitar conflictos de comunicación en el cable ya
que sólo uno de ellos puede transmitir a la vez. En la interfaz ATA no se pueden conectar más
de dos dispositivos en el mismo bus.
3.9.- Señales del bus ATA/IDE
En el bus ATA/IDE existen 12 señales de control y 16 señales de datos. A continuación una
breve explicación de cada una de estas señales
RESET
Esta señal es colocada como verdadera (verdadera = 5 Voltios) por un tiempo de por lo
menos 25 microsegundos después que los niveles de voltaje se estabilizan durante el
encendido del dispositivo, puede ser negada en cualquier momento que el dispositivo
necesite resetearse.
D0...D15
Bus de datos bidireccional. D0...D7 son usados para transferencias de 8 bits por
ejemplo cuando se van a transmitir datos a los registros.
IOW
Señal de escritura. Cuando es detectado un flanco de subida en esta señal el dispositivo
copia los datos que se encuentran en el bus de datos al dispositivo.
IOR
Señal de lectura. En el flanco de bajada de esta señal coloca los datos del dispositivo
en el bus de datos.
IOCHRDY
Esta señal es negada para extender el ciclo de escritura o lectura del controlador en
caso de que el dispositivo no esté listo para responder a una petición de transferencia
de datos. Cuando no esta negada está en alta impedancia.
27
SPSYNC
Esta es una señal de sincronización generada por el dispositivo Maestro.
INTRQ
Es utilizada para interrumpir el controlador cuando el dispositivo tiene una
interrupción pendiente.
INTRQ es negada por:
•
•
•
•
Una señal de RESET.
Que el bit SRST del registro de Control del Dispositivo sea puesto en 1
Que el controlador ATA/IDE escriba al Registro de Comando
Que el controlador ATA/IDE lea el Registro de Estado.
IOCS16
Indica al controlador ATA/IDE que la transmisión de datos va a ser de 16 bits.
ADDR(0…2)
Usadas para seleccionar un registro o puertos de datos en el dispositivo.
PDIAG
Será colocada en 1 por el dispositivo Maestro si el dispositivo esclavo ha pasado el
diagnostico de prueba.
CS1FX
Esta señal es generada por las líneas de dirección A3…A9 y es utilizada para acceder
los 8 bloques de registros de comandos del disco duro.
CS3FX
Esta señal es generada por las líneas de dirección A3…A9, es válida durante
transferencia de 8 bits desde y hacia el Registro de Bloques de Control, Registro
Alterno de Estado, Registro de Control del Dispositivo y la dirección del dispositivo.
DASP
Es una señal multiplexada de tiempo que indica que el dispositivo esta activo.
Usualmente es utilizada como señal de actividad del disco.
3.10.- Registros de los Dispositivos ATA/IDE
Los dispositivos ATA/IDE utilizan una serie de registros para realizar los comandos, acceder
información del estado del disco y para realizar operaciones de transferencia de datos. Estos
registros son diseccionados a través de las líneas de señal ADDR(0..2).
28
Tabla 8. Registros de los Dispositivos ATA/IDE
Registro
Acceso
Descripción
Registro de Puerto de Datos
Lectura/Escritura
Toda la transferencia de datos entre el
dispositivo y el buffer de datos pasan a
través de éste registro.
Registro de Error
Lectura
Contiene la información de estado
acerca del último comando ejecutado
por el disco. Sólo es valido cuando el
bit de error del Registro de Estado es
verdadero.
Precompensación de Escritura
Escritura
El dispositivo ignora el valor de
precompensación
enviado
por
el
controlador.
Registro Contador de Sectores Lectura/Escritura
Define el número de sectores que van a
ser transmitidos por el bus con el
próximo comando ejecutado.
Registro de Número de Sector Lectura/Escritura
Contiene el número de identificación
del primer sector que va a ser utilizado
por el próximo comando ejecutado.
Registro de Cilindro Bajo
Lectura/Escritura
Contiene los 8 bits menos significativos
de la dirección de los cilindros para
cualquier acceso al disco.
Registro de Cilindro Alto
Lectura/Escritura
Contiene los 8 bits más significativos de
la dirección de los cilindros para
cualquier acceso al disco.
Registro Disco/Cabezal
Lectura/Escritura
Contiene el número de identificación de
disco y el número de Cabezal para
cualquier acceso al disco.
29
Tabla 8. Registros de los Dispositivos ATA/IDE (Continuación)
Registro
Acceso
Descripción
Registro de Estado
Lectura
Contiene
información
hacerca
del
estado del disco y el controlador. Los
contenidos
de
este
registro
son
actualizados después de que se completa
cada comando.
Registro de Comando
Escritura
Cuando el sistema requiere ejecutar un
comando, es transmitido al disco duro a
través de un código de ocho bits que se
escribe en el registro de comando.
Registro de Estado Alterno
Lectura
Contiene la misma información que el
Registro de Estado en el Bloque de
Comandos,
pero
no
ocurre
una
interrupción en el dispositivo cuando es
leído.
Registro de Control del
Escritura
Dispositivo
Este registro contiene un bit que cuando
es colocado como verdadero hay un
reset suave en el disco, y otro bit para
habilitar las interrupciones.
Registro de Dirección del
Disco
Lectura
Este registro retorna las direcciones
actuales del cabezal.
3.11.- Estándares ATA
El primer documento que describía la propuesta del estándar ATA/IDE fue introducido a
principios de 1989, y fue formalmente introducido a la ANSI en 1990.
Actualmente el grupo que se encarga del desarrollo e implementación de los estándar para
ATA/IDE es un comité llamado T13 los cuales introducen los estándares a la ANSI para su
aprobación.
30
Tabla 9. Estándares ATA
Estándar Otros Nombres
ATA-1
ATA, IDE
Modos de Transferencia
Otras
Referencia
Añadidos (MB/s)
Características
ANSI
PIO 0,1,2 (3.3, 5.2, 8.3)
Hasta 528 MB de
X3.221-1994
DMA Palabra simple 0,1,2
direccionamiento
(obsoleto
(2.1, 4.2, 8.3)
desde 1999)
Multi-palabra DMA 0 (4.2)
ATA-2
ATA-3
EIDE, Fast
PIO 3,4: (11.1, 16.6)
ATA, Fast IDE,
Multi-palabra DMA 1,2
Ultra ATA
(13.3, 16,6)
EIDE
-
24-bit LBA (hasta X3.279-1996
8.4 GB)
(obsoleto
desde 2001)
28-bit LBA (hasta X3.298-1997
137 GB)
(obsolete
S.M.A.R.T.,
desde 2002)
Seguridad.
ATA-4
ATAPI-4,
Ultra DMA 0,1,2 (16.7,
Soporte para CD-
NCITS 317-
ATA/ATAPI-4
25.0, 33.3) también
ROM, etc.,vía
1998
llamado Ultra-DMA/33
paquetes de
comandos ATAPI
ATA-5
ATA/ATAPI-5
Ultra DMA 3,4 (44.4, 66.7)
Cables de 80
NCITS 340-
también llamado Ultra
hilos
2000
UDMA 5 (100) también
48-bit LBA (hasta
NCITS 347-
llamado Ultra DMA 100
144 PB)
2001
UDMA 6 (133)
-
NCITS 361-
DMA 66
ATA-6
ATA-7
ATA/ATAPI-6
ATA/ATAPI-7
2002
ATA-8
ATA/ATAPI-8
-
-
En progreso
31
Para mayor información acerca de la interfaz ATA/IDE y de todos sus funciones,
características y comandos véase el Apéndice B y las referencias [6], [7], [8], [9], [10], [11] y
[12].
CAPITULO 4: METODOLOGIA
En este capítulo se da una síntesis de la metodología utilizada para desarrollar este
proyecto, los pasos que se siguieron, las pruebas que se realizaron y de cómo se obtuvieron
los resultados finales.
4.1.- Estudio bibliográfico de los dispositivos de almacenamiento.
En esta etapa se hizo un estudio bibliográfico y a través de Internet de las características
físicas y lógicas de los dispositivos SCSI. Se recopiló una gran cantidad de material acerca
del funcionamiento del bus SCSI tales como sus señales de control, formato de comandos,
niveles lógicos entre otros.
Esta etapa duró aproximadamente 1 mes y se obtuvo un mejor conocimiento de las
características de los dispositivos SCSI, lo cual era esencial para el desarrollo del proyecto.
4.2.- Estudio del proyecto de la interfaz SCSI-1 a SCSI-2.
En el instrumento de química EXPRESS 550 se utiliza originalmente como dispositivo de
almacenamiento un disco duro SCSI-1, como se había mencionado anteriormente, debido a
la escasez de este tipo de discos y al tiempo de uso, la mayoría de los discos SCSI-1 que
disponía la compañía estaban deteriorados y presentaban cada vez más seguido fallas, uno
de los ingenieros de la compañía desarrollo un proyecto para poder adaptar disco duros del
tipo SCSI-2 al instrumento de química. A este proyecto se le dio el nombre de
LUNEXPRESS. Se procedió a estudiar este proyecto ya que era la base del desarrollo del
proyecto actual.
En esta etapa se encontraron gran cantidad de problemas, pues el proyecto LUNEXPRESS
presentaba una gran cantidad de fallas a la hora de instalarlo y el código desarrollado para
el microcontrolador que utilizaba tenía una documentación pobre y nadie en la compañía
tenía conocimientos del funcionamiento del proyecto.
Existían varias tarjetas integradas que la compañía mando a fabricar con el proyecto
LUNEXPRESS, al principio ninguna de estas tarjetas trabajaba correctamente con el
equipo de prueba EXPRESS 550 que se tenía en la empresa. Además se contaba con el
circuito montado sobre un Protoboard el cual no correspondía en su totalidad con el
esquemático que proporcionaron en la compañía.
Luego de varias pruebas y de revisar cuidadosamente el diseño se tomo una de las tarjetas
integradas y se le hicieron varias modificaciones como el de colocar resistencias de pull-up
33
a las patas del microcontrolador que estaban al aire colocar algunos capacitores de bypass
que le faltaban a algunos de los circuitos integrados. Además se fabrico manualmente un
par de cables SCSI ya que los que estaban en el EXPRESS 550 tenían una mala
continuidad entre sus extremos.
Después de todos estos cambios el equipo logro arrancar con un disco duro SCSI-2, se
hicieron varias pruebas las cuales dieron como resultados varias fallas que presentaba el
proyecto LUNEXPRESS, entre ellas el equipo no siempre encendía correctamente y
arrojaba errores de comunicación con el disco.
Luego de hacer los cambios de la tarjeta integrada, se volvió a montar de nuevo todo el
circuito en el Protoboard para poder realizar los cambios y pruebas de una manera más
fácil.
El tiempo de duración de esta etapa fue de aproximadamente 2 meses debido a la gran
cantidad de inconvenientes encontrados. Con las pruebas realizadas y los cambios en el
circuito se consiguió que trabajara mucho mejor de lo que lo hacia anteriormente y gracias
a esto luego se implementaron varias de estas tarjetas en algunos equipos EXPRESS 550
que se encuentran en varios laboratorios. Además se obtuvo un mayor conocimiento del
funcionamiento del proyecto LUNEXPRESS el cual es la base para el desarrollo de esta
pasantía.
4.3.- Estudio, modificación e implementación del programa del proyecto LUNEXPRESS
Luego de hacerle los cambios al circuito y de haber montado el circuito nuevamente en el
Protoboard con los cambios procedí a estudiar el programa que contenía el
microcontrolador del proyecto LUNEXPRESS. El programa estaba desarrollado en
lenguaje ensamblador (assembler), estaba muy mal documentado y tenía varias fallas de
programación.
Primero se hizo un estudio del programa y se capturaron varias etapas de la comunicación
entre el instrumento EXPRESS 550 y la tarjeta controladora a través de un analizador de
señales marca Link Instruments, modelo LA4040 de 40 canales que era capaz de hacer un
muestreo de hasta 128 Kb/s. Este método no resulto tan efectivo ya que aunque se pudieron
observar varias fases de la comunicación su resolución de muestreo no era lo
suficientemente buena cómo para observar los cambios críticos de las señales de control.
Después de entender su funcionamiento básico se procedió a depurar el programa, quitar
retardos, etiquetas, saltos e interrupciones innecesarias. A medida que se depuraba el
34
programa se hacían pruebas de funcionamiento y errores en el equipo EXPRESS 550 de
prueba.
Esta etapa duro un tiempo aproximado de 15 días luego del cual se tenía un conocimiento
mucho mejor del funcionamiento de la comunicación entre el equipo EXPRESS 550 y el
disco duro SCSI y del funcionamiento general del equipo. Además a través de los
manuales del EXPRESS 550 y el manual del controlador SCSI del equipo se obtuvo una
mayor información de los errores que arrojaba el equipo a través de una impresora térmica
que tiene incorporada. Esto fue de gran ayuda en el posterior desarrollo de la
implementación y pruebas del proyecto.
4.4.- Desarrollo de la interfaz SCSI
Luego que se le hicieron las mejoras al proyecto LUNEXPRESS se tomó como base para
el desarrollo de la primera etapa de la interfaz entre SCSI e IDE.
Primero se le agregó la capacidad de transmitir a través de una comunicación serial RS232.
Esto permitió capturar los comandos y datos transmitidos a través de un programa de
Terminal serial en la computadora. Y se logró hacer un estudio de la comunicación entre el
equipo EXPRESS 550 y el disco duro.
Luego de capturar varios comandos y las respectivas respuestas por parte del disco duro, se
procedió a modificar el código para que el microcontrolador fuera capaz de interpretar y
responder todas las peticiones hechas por el controlador SCSI del equipo EXPRESS 550 al
disco duro. Para cada comando y petición se realizaron varias pruebas de funcionamiento y
error.
Para probar el correcto funcionamiento se fueron eliminando los comandos que pasaban al
disco duro para que sólo los manejara el controlador uno por uno hasta que se pudo
controlar todos los comandos y peticiones y el equipo trabajara correctamente.
Esta etapa duró aproximadamente 1 mes y medio, después de esto se finalizó la primera
etapa del proyecto donde el microcontrolador respondía a todos los comandos y peticiones
del equipo EXPRESS 550 al disco duro excepto los comandos de lectura y escritura los
cuales tenía que hacerse cargo el controlador IDE que se desarrollaría en la próxima etapa.
4.5.- Desarrollo del controlador IDE
En esta etapa primero se estudió que dispositivo de almacenamiento era el más indicado
para el proyecto, después de estudiar varios materiales bibliográficos, fuentes de Internet y
35
hacer un estudio de que dispositivos eran más fáciles de conseguir en el mercado
venezolano, se concluyó que el dispositivo que mejor se adaptaba era el disco duro
ATA/IDE.
Después se paso a diseñar e implementar un controlador para disco duros ATA/IDE, para
esto primero diseñe el programa para controlar el disco para luego diseñar el circuito que
necesitaba para hacerlo funcionar, el circuito fue montado en un Protoboard y un disco
duro ATA/IDE el cual fue proporcionado por la compañía para realizar las pruebas. A este
circuito también se le implemento una comunicación serial a través de un protocolo RS232
para la comunicación con la computadora. En el programa desarrollé un pequeño menú que
permitía enviarle a través del puerto serial comandos al disco duro para que este lo
ejecutara.
Después de varias pruebas logré que el controlador manejara los comandos principales del
disco duro en especial el de escritura y el de lectura que eran los más importantes para el
proyecto.
Esta etapa duró aproximadamente 1 mes, se obtuvo un controlador totalmente funcional de
disco duros ATA/IDE que maneja la mayoría de los comandos de estos dispositivos,
pudiéndose manejar el disco duro a través de una interfaz serial, escribir y leer hacia y
desde el disco respectivamente, lee los registros de estado y error y los datos pueden ser
direccionados a cualquier sector del disco utilizando un direccionamiento LBA como se
menciono en el marco teórico por lo que puede utilizar discos de cualquier capacidad.
4.6.- Interfaz entre el controlador SCSI y el controlador IDE
Luego de tener ambos controladores funcionando se pasó a unir ambos, para esto se tuvo
que adaptar los programas de ambos controladores para que el controlador IDE pudiera
recibir y traducir los comandos SCSI al formato IDE, a través de una tabla de comandos, y
los pudiera ejecutar así el disco duro.
Para poder hacer compatibles los niveles lógicos de ambos circuitos se tuvo que hacer una
pequeña adaptación.
Primero se manejo únicamente el comando de lectura de disco, como sin la escritura no se
podía formatear el disco duro ATA/IDE con el programa del EXPRESS 550 se consiguió
una tarjeta controladora para la computadora que manejara disco duros SCSI y con una
herramienta de clonación llamada WinHex con su versión gratuita, se clonó el disco duro
SCSI del equipo EXPRESS 550 al disco duro ATA/IDE de prueba con excelentes
36
resultados. Además se obtuvo el beneficio de que con este método es mucho más rápido
cargar el programa del EXPRESS 550 a los disco duros ya que normalmente se hace a
través de 9 discos flexibles a través de la unidad de discos flexibles del equipo, lo cual
lleva un tiempo considerable y además no siempre se carga el programa de manera
efectiva.
Luego se hicieron varias pruebas y se ajustaron algunos tiempos de retardos para que la
lectura fuera optima.
Después que el comando de lectura funcionó correctamente y cargaba por completo el
programa directamente desde el disco ATA/IDE se procedió a manejar también el
comando de lectura el cuál fue un poco mas crítico para poder sincronizar los tiempos de
retardo para obtener una escritura confiable en el disco duro ATA/IDE.
Luego que ambos comandos funcionaron exitosamente se procedió a remover el disco duro
SCSI del equipo y se colocaron las terminaciones respectivas en el extremo del cable del
bus SCSI para garantizar los niveles lógicos de la señal. Luego se probó el encendido y
funcionamiento del equipo a través de varias pruebas de funcionamiento básico del equipo
donde se pudo comprobar el estado de todos sus componentes.
Para comprobar la lectura se encendió numerosas veces el equipo durante todo el tiempo
de prueba, comprobando que el programa se cargara sin ninguna falla de comunicación
entre el equipo EXPRESS 550 y el disco duro ATA/IDE. Mientras que para la
comprobación de la escritura en el disco, el equipo permite cargar los datos y pruebas de
los pacientes al disco duro, con lo cual se podía comprobar que la escritura estaba
funcionando correctamente.
La metodología que se utilizó fue la de introducir varios pacientes de prueba al disco duro
con sus respectivos datos y pruebas químicas a realizar y luego de apagar y encender el
equipo numerosas veces se comprobaba que los datos estuvieran intactos. Después se
procedía a cambiar los datos y a realizar de nuevo las pruebas pudiendo comprobar así
tanto la lectura como la escritura en el disco duro.
También se observo las fases de comunicación especialmente las de negociación entre el
instrumento EXPRESS 550 y la tarjeta controladora con el analizador de señales LA4040.
Esta etapa duró un tiempo de aproximadamente 1 mes y medio, y se logró obtener un
dispositivo que permitía el uso de un disco duro ATA/IDE en el equipo EXPRESS 550 el
cual era el objetivo principal de este proyecto, los resultados fueron muy favorables ya que
37
se logro por completo su funcionamiento como se pudo comprobar en la practica a través
de las pruebas.
4.7.-Diseño de la Tarjeta Integrada
Después de realizar varias pruebas exitosas se decidió hacer el diseño final uniendo ambos
circuitos en uno solo y así diseñar la tarjeta integrada. Se diseñó el circuito PCB en el
programa de CAD Eagle donde se obtuvo los parámetros y el PCB final que se llevó a una
empresa que realiza circuitos impresos.
Se tuvieron algunos problemas con el diseño de la tarjeta por la cantidad de componentes
luego esperando el dinero para la realización de la tarjeta. La empresa que fabrica el
circuito impreso se tarda aproximadamente 20 días hábiles para entregar el prototipo.
CAPITULO 5: INTERFAZ ENTRE UN DISCO SCSI Y UN DISPOSITIVO DE
ALMACENAMIENTO IDE.
En este capítulo se da una descripción técnica del proyecto, su funcionamiento, sus
características tanto lógicas cómo física, comandos soportados, conexiones, tecnología
seleccionada, etc.
5.1.- Descripción General
El instrumento de química EXPRESS 550, es un equipo que realiza análisis químicos de
sangre y tiene más de 15 años en el mercado, utiliza una tecnología de almacenamiento SCSI1, de mediados de los ochentas, la cual ya no es fácil de conseguir y su adquisición se ha
vuelto muy costosa debido a que se tienen que importar.
Además al dañarse el disco duro SCSI se inutiliza por completo el equipo por largos periodos
de tiempo, lo cual representa un gran costo para la compañía e inclusive la paralización de la
realización de exámenes de química en los laboratorios clínicos que poseen estos equipos.
Para solucionar este problema se desarrolló en este proyecto una interfaz, que de ahora en
adelante será llamada IDEXPRESS, que permite conectar disco duros ATA/IDE al
instrumento de química EXPRESS 550. Este tipo de discos son muy fáciles de conseguir y
además son mucho más económicos que los discos SCSI.
El IDEXPRESS soporta cualquier tipo de disco duro ATA/IDE hasta el estándar ATA-7. Es
capaz tanto de conectarse a cualquier instrumento de química EXPRESS 550, así cómo
también permite ver el contenido del disco y escribir en el mismo a través de una interfaz
serial. También sirve como un analizador del bus SCSI del EXPRESS 550 lo que puede servir
para detectar fallas de comunicación entre el disco y el instrumento y para obtener datos del
bus si así se requiere.
El IDEXPRESS está compuesto por dos microcontroladores, 2 conectores tipo SCSI y 1
conector tipo IDE además de 2 conexiones para una interfaz serial RS232.
En la Figura 4, se muestra un diagrama de bloques que representa el sistema del equipo
EXPRESS 550 con el IDEXPRESS integrado. El área enmarcada en una línea punteada
39
representa el conjunto del IDEXPRESS conformado por la tarjeta controladora, el disco duro
ATA/IDE y la interfaz serial RS232.
En esta área se representa el
conjunto de dispositivos que
conforman al IDEXPRESS.
Conexión Serial RS232
|
Instrumento de Química
EXPRESS 550
BUS SCSI
Tarjeta
controladora
SCSI NCR
Interfaz
IDEXPRESS
BUS SCSI
BUS IDE
Disco Duro
ATA/IDE
Unidad de
Floppy
SCSI
Figura 4. Esquema de Sistema típico del IDEXPRESS.
5.2.- Características Principales
El IDEXPRESS tiene las siguientes características:
•
Tiene una taza máxima de transferencia de 5 MB/s.
•
Manejo del conjunto de comandos principales de SCSI-2.
•
Soporta únicamente comunicación SCSI de terminación simple.
•
Manejo del conjunto de comandos principales de ATA/IDE.
•
Soporta Disco Duros ATA/IDE de cualquier capacidad.
•
Reset por software.
•
2 puertos de comunicación serial con el protocolo RS232 a una velocidad máxima de
9200 bps de 8 bits sin bit de paridad.
•
Menú activado por comunicación serial para leer ó escribir el disco ATA/IDE, además
ofrece acceso a los registros de estado, error y direccionamiento, así como también la
posibilidad de enviar comandos.
40
•
Posibilidad de que trabaje como un analizador del bus SCSI por el segundo puerto
serial.
•
Fácil de conectar al EXPRESS 550.
5.3.- Funcionamiento
El IDEXPRESS pasa por un proceso de inicialización cuando se enciende el instrumento
químico EXPRESS 550 (al cual nos referiremos de ahora en adelante como EXPRESS 550),
primero selecciona la unidad de discos flexibles SCSI para poder enviarle comandos y
comprueba que el disco ATA/IDE esté listo y sin errores. Luego responde al controlador SCSI
un estado de OK, y prosigue con la lectura del disco duro ATA/IDE con lo cual se carga el
sistema operativo del EXPRESS 550.
Luego el IDEXPRESS queda a la espera de la llegada de comandos por parte del controlador
SCSI del EXPRESS 550. Cuando un nuevo comando llega lo analiza si el comando es de
escritura o lectura es traducido y enviado al IDE para su ejecución, si el comando no es de
lectura o escritura, es respondido por el mismo IDEXPRESS. Si llega algún comando dirigido
a la unidad SCSI de discos flexibles es enviado directamente a esta para que lo ejecute.
En caso de ocurrir un error el IDEXPRESS se resetea por software y queda a la espera de
nuevos comandos. En la Figura 5 se muestra una representación de los bloques internos de la
interfaz IDEXPRESS junto con los buses de datos y las señales de control.
Figura 5 Bloques internos del IDEXPRESS.
41
5.4.- Comandos y Funciones Soportadas
Los comandos SCSI soportados por el IDEXPRESS son los siguientes:
Tabla 10. Comandos SCSI soportados por el IDEXPRESS
Código de Operación
Nombre del Comando
Implementado
Soporte RS232
00h
Test Unit Ready
Si
No
03h
Request Sense
Si
No
08h
Read
Si
Si
0Ah
Write
Si
Si
12h
Inquirí
Si
No
15h
Mode Select
Si
No
1Ah
Mode Sense
Si
No
25h
Read Capacity
Si
No
Para mayor información acerca de los comandos SCSI véase Apéndice A
Los comandos IDE soportados por el IDEXPRESS son los siguientes:
Tabla 11. Comandos IDE soportados por el IDEXPRESS
Código de Operación
Nombre del Comando
Implementado
Soporte RS232
20h
Leer Sector
Si
Si
30h
Escribir Sector
Si
Si
ECh
Identificar Disco
Si
Si
E0h
Detener Disco
Si
Si
E1h
Arrancar Disco
Si
Si
Para una mayor información acerca de los comandos IDE véase el Apéndice B.
En la Tabla 12 se presentan las funciones implementadas por el IDEXPRESS a través de los
puertos RS232
42
Tabla 12. Funciones del IDEXPRESS
Comando
DN
Nombre del Comando
Leer N Sectores
Nº Puerto
Descripción
1
Lee N sectores del disco ATA/IDE
y los transmite vía serial. N de la
forma 000 hasta 255. Con 000 lee
todo el disco.
UN
Escribe N Sectores
1
Lee N sectores del disco ATA/IDE
y espera N sectores de 512 bytes
vía serial. N de la forma 000 hasta
255. Con 000 escribe todo el disco.
d
Leer Sector
1
Lee el sector actual del disco
ATA/IDE y lo transmite vía serial
u
Escribir Sector
1
Escribe el sector actual del disco
ATA/IDE y espera un sector de 512
bytes vía serial.
i
Identificar Disco
1
Envía a través del puerto serial la
identificación del disco se esperan
256 palabras de 16 bits.
z
Detiene el Disco
1
Detiene el disco ATA/IDE.
l
Arranca el Disco
1
Arranca el disco ATA/IDE después
de una parada.
e
Registro de Error
1
Muestra el Registro de Error del
disco ATA/IDE.
s
Registro de Estado
1
Muestra el Registro de Estado del
disco ATA/IDE.
p
Incrementar Dirección
1
Incrementa la dirección LBA actual
del disco ATA/IDE en 1.
43
Tabla 12. Funciones del IDEXPRESS (Continuación)
Comando
Nombre del Comando
Nº Puerto
Descripción
r
Resetear Dirección
1
Resetea la dirección LBA a 00h.
a
Leer Dirección
1
Lee la dirección LBA actual.
f
Asignar Dirección
1
Define una dirección LBA espera
una cadena de 28 bits.
E
Espiar Bus SCSI
2
Lee el Bus SCSI y lo transmite vía
puerto serial.
5.5.- Direccionamiento
El IDEXPRESS utiliza un direccionamiento LBA de 28 bits, con esto se logra direccionar
todo el espacio necesitado por el EXPRESS 550, ya que originalmente utiliza un disco de 40
MB de capacidad por lo que el disco duro ATA/IDE va a ser subutilizado.
El direccionamiento se puede hacer manualmente a través del puerto serial 1 en caso de que se
requieran hacer pruebas de lectura o escritura en el disco.
5.6.- Señales de Control y Datos
Las señales utilizadas entre el IDEXPRESS y el EXPRESS 550 son 9 señales de control y 8
bits de datos. En este caso el EXPRESS 550 actúa como iniciador y el IDEXPRESS como
objetivo. Las señales de control se muestran en la Tabla 13.
44
Tabla 13. Señales de Control del Bus SCSI IDEXPRESS.
Señal Definición Categoría EXPRESS IDEEXPRESS
Descripción
550
BSY
Ocupado
Básica
Si
Si
Indica que el bus esta
siendo utilizado.
SEL
Selección
Básica
Si
Si
Indica que un dispositivo
SCSI esta tratando de
seleccionar o
reseleccionar otro
dispositivo SCSI. El
iniciador utiliza esta
señal para seleccionar un
objetivo, y el objetivo la
utiliza para reseleccionar
el iniciador.
ATN
Atención
Básica
Si
No
Usada por el iniciador
para indicar una
condición de atención,
marca un momento
cuando el iniciador
necesita la atención del
objetivo
RST
Resetear
Básica
Si
No
Indica la condición de
Reset y tiene la atención
de todos los dispositivos.
45
Tabla 13. (Continuación) Señales de Control del Bus SCSI IDEXPRESS.
Señal
Definición
Categoría
EXPRESS
IDEXPRESS
Descripción
550
C/D
Control/Datos
Transferencia
No
Si
Información
Indica que datos
de información o
control están en el
bus. Falso indica
datos y verdadero
indica control.
I/O
Entrada/Salida Transferencia
No
Si
Indica la
Información
dirección del flujo
y Control
de información en
el bus de datos
desde el punto de
vista del
iniciador. Falso
indica que la
dirección es desde
el iniciador al
objetivo y
verdadero indica
lo contrario.
MSG
Mensaje
Transferencia
No
Si
Indica que el
Información
dispositivo SCSI
y Control
tiene un mensaje
para transferir a
otro dispositivo.
46
Tabla 13. (Continuación 2) Señales de Control del Bus SCSI IDEXPRESS.
Señal
ACK
Definición
Reconocimiento
Categoría
Reloj
EXPRESS
IDEXPRES
550
S
Si
No
Datos
Descripción
Esta señal indica
que el iniciador
reconoce una fase
de transferencia de
datos. Cuando el
iniciador esta
manejando el bus
de datos esta señal
es utilizada para
indicarle al
objetivo que hay
datos listo para el
en el bus.
REQ
Petición
Reloj
No
Datos
Si
El objetivo indica
una petición para
una fase de
transferencia de
datos. Cuando el
objetivo esta
manejando el bus
de datos esta señal
es utilizada para
indicarle al
iniciador que hay
datos listos.
Leyenda: Si = Maneja la señal, No = No maneja la señal
47
Los niveles lógicos de las señales del bus SCSI son:
•
3.3 V Estado lógico Falso
•
0V
Estado lógico Verdadero
Las señales utilizadas entre el IDEXPRESS y el disco ATA/IDE son 9 señales de control y 16
bits de datos. Las señales de control se muestran a continuación:
Tabla 14. Señales de Control del Bus IDE del IDEXPRESS.
Señal
Definición
Descripción
Señal de
Esta señal es colocada como verdadera por un tiempo de
Reset
por lo menos 25 microsegundos después que los niveles
de voltaje se estabilizan durante el encendido del
RESET
dispositivo, puede ser negada en cualquier momento que
el dispositivo necesite resetearse.
IOW
Señal de
Señal de escritura. Cuando es detectado un flanco de
Escritura
subida en esta señal el dispositivo copia los datos que se
encuentran en el bus de datos al dispositivo.
IOR
Señal de
Señal de escritura. Cuando es detectado un flanco de
Lectura
subida en esta señal el dispositivo copia los datos que se
encuentran en el bus de datos al dispositivo.
INTRQ
IOCS16
Señal de
Interrupción
dispositivo tiene una interrupción pendiente.
Transmisión
Indica al controlador ATA/IDE que la transmisión de
de 16 bits
ADDR(0…2)
Es utilizada para interrumpir el controlador cuando el
Dirección de
Registros
datos va a ser de 16 bits.
Usadas para seleccionar un registro o puertos de datos en
el dispositivo.
48
Tabla 14. Señales de Control del Bus IDE del IDEXPRESS (Continuación).
Señal
Definición
Descripción
Acceso
CS(1..3)FX
DASP
Son utilizadas para acceder al registro de comandos.
Comandos
Señal de
Es una señal multiplexada de tiempo que indica que el
Actividad
dispositivo esta activo. Es utilizada en el IDEXPRESS
como señal de actividad del disco.
Los niveles lógicos para el bus IDE son:
•
5 V Estado lógico Verdadero
•
0 V Estado lógico Falso
También son utilizadas 4 señales de control internas para la comunicación entre el controlador
SCSI y el controlador IDE del IDEXPRESS, así como también 8 bits de datos. A continuación
son explicadas las señales de control internas.
Tabla 15. Señales de Control del Bus interno IDE del IDEXPRESS.
Señal
REQ
Definición
Dirección de la Señal
Señal de
Controlador
IDE
Petición
Controlador SCSI
Descripción
a Esta
señal
se
utiliza
para
solicitar un envío de datos desde
el
controlador
SCSI
al
controlador IDE.
ACK
Señal de
Controlador SCSI a
Esta señal se utiliza para indicar
Acuse de
Controlador IDE
que los datos enviados fueron
Recibo
bien recibidos. O para indicar
que hay datos disponibles para el
controlador IDE
49
Tabla 15. Señales de Control del Bus interno IDE del IDEXPRESS (Continuación).
Señal
MS
Definición
Dirección de la Señal
Descripción
Selección de
Controlador IDE a
Señal que indica el sentido de
Dirección
Controlador SCSI
transmisión de los datos. Si es
verdadera
SEL
Señal de
Controlador SCSI a
Si es verdadera le indica al
Selección
Controlador IDE
controlador IDE que se le va a
enviar un comando de escritura
o lectura.
5.7.- Funcionamiento del programa
El IDEXPRESS contiene dos programas uno que controla el bus SCSI y otro que controla el
bus IDE.
El programa que controla el bus SCSI se encarga de responderle las peticiones de comandos al
EXPRESS y de pasarle los comandos de escritura y lectura al microcontrolador que se encarga
de manejar el bus IDE. Primero este programa realiza una inicialización de las señales de
control y del bus de datos y prepara a la unidad de discos flexibles para que esté lista para
recibir comandos. En caso de recibir un comando de lectura o escritura comienza la
negociación de transferencia con el controlador IDE, envía los parámetros del comando y
comienza la transferencia de datos, si es lectura recibe los datos del controlador IDE y los
coloca en el bus SCSI manteniendo de forma simultanea la negociación entre ambas partes. Si
en cambio es un comando de escritura espera recibir los datos desde el EXPRESS 550 por el
bus SCSI y los envía al controlador IDE para que este los escriba en el disco. Si el comando
que recibe no es de lectura o escritura el mismo microcontrolador maneja la petición y
dependiendo del comando lo deja pasar al disco flexible o responde el mismo de acuerdo con
el comando que recibió.
El programa que controla el bus IDE, inicializa las señales de control y el disco ATA/IDE
enviándole un comando de estado y espera recibir un estado OK por parte del disco duro, en
caso de que no lo reciba no sigue el programa y se notifica un error en el disco a través de la
50
interfaz serial. Luego que el disco envíe el estado de OK se queda en espera de recibir una
señal de selección lo que indica que el controlador SCSI está enviándole un comando de
lectura o escritura. Recibe el comando lo revisa en la tabla de comandos y comienza la
negociación de recepción de de los parámetros del comando, después ejecuta la acción, si
recibió un comando de lectura, lee los sectores que han sido pedidos y los transmite a través
del bus de datos al controlador SCSI, si en cambio el comando es de lectura recibe los datos
del controlador SCSI y los escribe en los sectores que fueron solicitados.
La Figura 6 y 7 muestran los diagramas de flujo de los programas.
51
Figura 6. Diagrama de flujo programa controlador SCSI
52
Figura 7. Diagrama de flujo programa controlador IDE
53
La negociación tanto en el bus SCSI y entre el controlador SCSI y el IDE es asíncrona. En las
siguientes explicaciones se supone que el Iniciador es el EXPRESS 550 y el objetivo es el
IDEXPRESS.
Negociación Asíncrona de comandos
i.
En el caso de ser una comunicación en el bus SCSI se coloca la señal de C/D como
verdadera y niega las señales de I/O y MSG durante toda la transmisión de comando.
ii.
En el caso de ser una comunicación en el bus IDE se coloca la señal de MS como
verdadera y se niega la señal SEL.
iii.
El objetivo coloca la señal de REQ como verdadera, luego espera que la señal de ACK
del iniciador sea verdadera lo que indica que hay datos disponibles en el bus.
iv.
El objetivo copia los datos de bus y coloca la señal REQ como falsa y espera que la
señal ACK sea falsa, luego se repiten los pasos iii y iv hasta que se tengan todos los
datos del comando.
Negociación Asíncrona de datos
i.
En el caso de ser una comunicación en el bus SCSI se coloca la niegan las señales de
C/D y MSG y la señal de I/O se niega o se hace verdadera dependiendo de la dirección
en que se envíen los datos.
ii.
En el caso de ser una comunicación en el bus IDE se niega la señal SEL y la señal MS
se niega o se hace verdadera dependiendo de la dirección en que se envíen los datos.
iii.
Si está enviando datos hacia el EXPRESS 550 (comando de lectura) I/O se hace
verdadera y MS se niega. Primero el objetivo coloca los datos en el bus y coloca la
señal de REQ como verdadera.
iv.
El iniciador al recibir la señal de REQ como verdadera copia los datos del bus y coloca
la señal de ACK como verdadera.
v.
Al objetivo recibir la señal de ACK como verdadera niega la señal de REQ y espera a
que la señal de ACK se haga falsa para luego repetir el procedimiento hasta que no
haya más datos que repetir.
54
Si se están recibiendo datos desde el EXPRESS 550 (comando de escritura) I/O se niega y MS
se hace verdadera. La negociación es la misma que para la transmisión de comandos.
5.8.- Conexiones
A continuación se presenta en la Figura 8 un diagrama con las conexiones del IDEXPRESS:
Figura 8. Conexiones Físicas del IDEXPRESS
Como se puede observar en el diagrama básicamente existen 3 conectores de cable plano. 2 de
ellos son del tipo SCSI de 50 pines uno va conectado al EXPRESS 550 y es llamado en la
tarjeta CPU y el otro va conectado a la tarjeta NCR y es llamado en la tarjeta SCSI. Mientras
que el conector de 40 pines IDE va conectado a un cable plano al disco duro IDE/ATA. Luego
se tiene el conector de la alimentación que se conecta a través de un conector hembra a la
fuente de poder del EXPRESS plus y proporciona 5 V y la conexión a tierra. Por último se
tienen dos conexiones seriales con el siguiente esquema:
Tabla 16. Conexión Serial RS232
Pin
Conexión
2
TX
3
RX
5
Tierra
55
El Puerto Serial 1 corresponde a las funciones IDE y el Puerto Serial 2 a las de SCSI.
5.9.- Especificaciones Eléctricas
Tabla 17. Valores de Operación
Símbolo
Parámetro
Vdd
Voltaje
Min
Max
Unidad
de 4,5
5,0
V
de 330
400
mA
de 1
-
KOmh
de 3,5
4
V
0,5
V
5
V
0,5
V
Alimentación
Idd
Corriente
Alimentación
Ri
Resistencia
Entrada
VOHS
Voltaje
Salida alto bus
SCSI
VOLS
Voltaje
de 0
Salida bajo bus
SCSI
VOHA
Voltaje
de 4,5
Salida alto bus
ATA/IDE
VOA
Voltaje
de 0
Salida bajo bus
ATA/IDE
56
5.10.- Tecnología Seleccionada
El IDEXPRESS utiliza dos microcontroladores PIC16F877 de 8 bits, basados en la tecnología
CMOS Flash/EEPROM de baja potencia y alta velocidad. Basados en el modelo de Set
Reducido de Instrucciones de Computadora RISC (reduced instruction set computer por sus
siglas en inglés). Soportan un reloj externo de hasta 40 MHz, 8 KB de memoria interna y
posee 5 puertos de datos y una interfaz serial integrada. Se utilizan este tipo de
microcontroladores por tener un set de instrucciones reducido lo que hace que sean más fáciles
de programar. Además al poseer la tecnología Flash/EEPROM pueden ser programados
muchas veces lo que facilita el cambio de la programación, por lo que se puede actualizar el
dispositivo fácilmente.
Para los buffer de datos se escogió la familia 74LS por ser una tecnología de baja disipación y
alta velocidad además de cumplir con los niveles lógicos del dispositivo.
Para el IDEXPRESS se utilizaron capacitores de acoplamiento para la alimentación de voltaje
de todos los dispositivos para reducir el ruido que se pueda producir en la alimentación.
Además se procuró que los bus de datos fueran lo más cortos posibles para reducir al mínimo
el ruido.
En la Figura 9 se muestra el esquemático del circuito responsable del control del bus IDE y en
la Figura 10 se muestra el esquemático del circuito responsable del control del bus SCSI del
IDEXPRESS.
Figura 9. Diagrama esquemático del circuito controlador bus IDE del IDEXPRESS.
57
Figura 10. Diagrama esquemático del circuito controlador bus SCSI del IDEXPRESS.
5.11.- Circuito Impreso
A continuación en las Figura 11 y en la Figura 12 se presentan las caras superior e inferior del
circuito PCB del IDEXPRESS, es una tarjeta de dos caras y se siguieron las recomendaciones
generales en la fabricación de circuitos impresos. Para mayor información de estas
recomendaciones véase [13].
58
Figura 11. Cara superior de la tarjeta integrada IDEXPRESS
59
Figura 12. Cara inferior de la tarjeta integrada IDEXPRESS
CAPITULO 6: ANALISIS DE RESULTADOS
En este capítulo se hace un breve análisis y discusión de los resultados obtenidos al
finalizar el desarrollo y la implementación de la interfaz.
6.1.- Resultados Obtenidos con el Analizador de Señales
El analizador de señales fue útil para observar alguna de las fases de comunicación entre el
EXPRESS 550 y la tarjeta controladora del proyecto LUN. Esto sirvió para comprobar de
forma visual el comportamiento del programa en las fases de comunicación y el envío de
comandos a través del bus de datos. A continuación se presentan algunas de las pantallas
de captura del programa que utiliza el analizador de señales para desplegar los datos.
Figura 13. Captura de transmisión de datos bus SCSI
En la Figura 13 se muestra una captura de transmisión de datos en la inicialización del
equipo EXPRESS 550. A través de estas capturas se pudo observar los tiempos de
transmisión de datos y la forma en que el EXPRESS 550 manejaba las señales de control
Figura 14. Captura de transmisión de señales de control bus SCSI
61
En la figura anterior se muestran las señales de control del bus SCSI entre el EXPRESS
550 y la tarjeta controladora.
Figura 15. Señales de control de transferencia de datos
La figura anterior es una captura de las señales de control del IDEXPRESS en una
negociación asíncrona de datos entre el EXPRESS 550 y el disco duro ATA/IDE. Aquí se
observa el flanco de bajada de la señal MS lo que indica la habilitación del buffer de datos
debido a la recepción de un comando de lectura, luego de esto comienza el envío de los
datos a través del bus controlado por las señales de ACK y REQ. Por cada par de estas
señales está representado un envío de 8 bits de datos a través del bus.
Para comprobar la lectura y escritura en el disco durante más de un mes se introdujeron
pacientes al EXPRESS 550 a través de una interfaz gráfica que tiene el equipo. Los datos
que se introdujeron fueron nombre, edad, sexo, tipos de pruebas a realizar. Todos estos
datos son escritos en el disco. Luego se apagaba el equipo y se volvía a encender
numerosas veces y se verificada que los datos que habían sido introducidos no tuvieran
ninguna modificación el éxito de estas pruebas fue de un 100% debido a que siempre los
datos permanecieron sin modificaciones y se mantuvieron después de apagar y encender
numerosas veces el equipo.
Luego se procedió a modificar los datos de los pacientes, como por ejemplo el nombre,
tipo de pruebas a realizar y eliminación de pacientes para luego comprobar que las
modificaciones se mantenían en el tiempo en el transcurso de los días mientras se utilizaba
el equipo. También en este caso el éxito de las pruebas fue de un 100% debido a que
siempre los datos mantuvieron las modificaciones y se mantuvieron íntegros después de
apagar y encender numerosas veces el equipo.
62
En la Tabla 18 se presentan los resultados que se obtuvieron durante las pruebas de
escritura, lectura y modificación de datos, cabe destacar que estas pruebas se realizaron
bajo un ambiente de laboratorio.
Tabla 18. Resultados de Escritura y Lectura
Acción Realizada
Número de Intentos
Integridad de los datos (%)
Escritura
400
100
Lectura
400
100
Modificación de
200
100
datos
Observaciones: El número de intentos se refiere al número de veces que se apago y
encendió el equipo luego de hacer las modificaciones en los datos.
6.2.- Análisis de los resultados
Los resultados finales obtenidos en este proyecto fueron satisfactorios, debido a que se
logró cumplir con el objetivo final de unir el equipo EXPRESS 550 con un disco duro
ATA/IDE.
Después de realizar numerosas pruebas de lectura y escritura se comprobó que el equipo es
bastante estable y que conserva la integridad de los datos en su totalidad en todas las
pruebas de escritura, lectura y modificación que se realizaron.
Con el analizador de señales se pudieron comprobar los tiempos de transmisión y el
manejo de las señales de control, esto fue de gran ayuda sobre todo al principio del
proyecto. Sin embargo, se comprobó que un mejor método para observar los datos y los
cambios de fases es a través del terminal serial ya que se tiene un mayor control sobre lo
que se quiere mostrar y los momentos en que se muestra.
Además no solo se obtuvo una interfaz entre un equipo EXPRESS y un disco duro IDE,
sino que también se tiene un controlador independiente de discos IDE, que podría tener
otras aplicaciones. Con pequeñas modificaciones el IDEXPRESS se podría adaptar a otros
equipos que utilicen como dispositivo de almacenamiento discos duros SCSI.
CAPITULO 7: CONCLUSIONES Y RECOMENDACIONES
En el proyecto desarrollado se pudo observar las diferencias y similitudes entre dos
tecnologías de almacenamiento y el proceso que se llevó a cabo para poder hacer una
traducción eficiente entre éstas. Quedando así los objetivos cumplidos a cabalidad, ya que
se logró diseñar, implementar y probar una interfaz entre un controlador SCSI y un disco
duro ATA/IDE. Además se logró su integración con un funcionamiento óptimo al
instrumento de química EXPRESS 550 con lo que se logró alargar la vida útil de estos
equipos y aminorar los costos de reparación y mantenimiento.
Una de las conclusiones más importantes a la que llegué en este trabajo es que es
importante conocer los estándares, y tratar de apegarse a ellos al momento de desarrollar
cualquier equipo electrónico para garantizar así su funcionamiento a largo plazo.
Así mismo se abrió paso para la implementación de nuevos proyectos en otros equipos que
posee la compañía que utilizan discos duros SCSI y que puede adaptarse este proyecto con
pequeños cambios para que puedan trabajar con discos ATA/IDE más económicos lo cual
representaría a la larga un gran ahorro a la compañía.
7.2.- Recomendaciones:
•
Una de las recomendaciones más importantes que se puede hacer, es la de que una
vez que se tengan las tarjetas integradas hacer pruebas con equipos en laboratorios
reales y llevar un control del funcionamiento del equipo para detectar posibles
fallas que no pudieron ser detectadas durante las pruebas en el equipo de
laboratorio.
•
Se recomienda seguir trabajando en el proyecto, haciendo mejoras ajustando los
tiempos de retardo, para hacer más optima la comunicación entre los dispositivos.
•
Se puede pensar en un futuro en mejorar el controlador SCSI para que el proyecto
pueda ser adaptado a cualquier equipo que utilice esta tecnología. Se deberá
agregar soporte a más comandos y utilizar microcontroladores más rápidos para
mejorar la transferencia de datos, en caso de que se utilice en equipos que tengan
velocidades de transmisión más altas.
•
Desarrollar una programa de interfaz con el computador para que sea más fácil la
interacción con el usuario, además se pueden agregar más funciones por la interfaz
serial.
64
•
Se recomienda hacer un estudio en la integridad de los datos bajo condiciones de
trabajo real. En un laboratorio donde se tengan volúmenes de datos reales y uso
constante del equipo EXPRESS 550.
•
Por último se recomienda hacerle un seguimiento al proyecto para que no se pierda
todo el trabajo hecho y se pueda mejorar en un futuro.
65
REFERENCIAS BIBLIOGRAFICAS
1. Wikipedia Enciclopedia Libre. (4 de Junio 2005). SCSI. (Versión electrónica), Extraído el
20 Agosto, 2005 de http://es.wikipedia.org/wiki/SCSI
2. Field, G., Ridge, P. M. (2000). The Book of SCSI (2nd ed.). San Francisco, EU: No Starch
Press.
3. American National Standard of Accredited Standards Committee X3.(1993) Information
technology -Small Computer System Interface – 2. (Revisión borrador, version 10L). San
Jose, CA. EU: Lawrence J. Lamers.
4. Kozierok, Charles M. (Abril 17, 2001). Small Computer Systems Interface. SCSI-1.
Extraído el 22 de Agosto, 2005 de http://www.pcguide.com/ref/hdd/if/scsi/
5. Tyson, Jeff. How SCSI Works. Extraído el 30 de Agosto, 2005 de
http://computer.howstuffworks.com/scsi2.htm
6. Kozierok, Charles M. (Abril 17, 2001). Small Official IDE/ATA Standards and Feature
Sets. Extraído el 1 de Septiembre, 2005 de
http://www.pcguide.com/ref/hdd/if/ide/index.htm
7. Wikipedia Enciclopedia Libre. (4 de Junio 2005). Advanced Technology Attachment.
(Versión electrónica), Extraído el 1 de Septiembre, 2005 de
http://en.wikipedia.org/wiki/Advanced_Technology_Attachment
8. Faasse, Peter. (Febrero 2, 1998). How to connect an IDE disk to a microcontroller using
an 8255. Extraído el 2 de Septiembre, 2005 de
http://www.pjrc.com/tech/8051/ide/wesley.html
9. Baker, John D. (1995). Connecting IDE Devices to 8-bit Machines. Extraído el 2 de
Septiembre, 2005 de http://www.mylinuxisp.com/~jdbaker/oldsite/SmallSys/8bitIDE.html
10. Davis, Leroy (Septiembre 5, 2005) IDE (ATA) Bus. Extraído el 15 de Septiembre, 2005
de http://www.interfacebus.com/Design_Connector_IDE.html
11. Reh, Tilmann. (Octubre 29, 2001). Connecting IDE Drives. Extraído el 15 de Septiembre
de 2005 de http://www.gaby.de/gide/IDE-TCJ.txt.
66
12. Kozierok, Charles M. (Abril 17, 2001). Small Official IDE/ATA Standards and Feature
Sets. Extraído el 15 de Septiembre, 2005 de
http://www.pcguide.com/ref/hdd/if/ide/std.htm
13. ExpressPCB (2005). Tips for Designing PCBs. Extraído el 16 de Septiembre, 2005 de
http://www.expresspcb.com/ExpressPCBHtm/Tips.htm
Descargar