CS95-031

Anuncio
Luis R. Salgado G.
Propuesta de Curso Académico para la carrera de ISE
Interfaces y Equipo Periférico II
Descripción General
Enero de 2004
Objetivo.
Diseñar y desarrollar controladores de dispositivos (“device drivers”) orientados a herramientas de
“hardware” para adquisición de datos y comunicación con dispositivos externos a una computadora, en
las plataformas Win32-Intel y Linux-Intel.
Módulos.
1. Arquitectura de “device drivers” para Win32.
2. Arquitectura de “device drivers” para Linux.
3. Arquitectura y operación del puerto USB.
4. Comunicación entre aplicaciones y “hardware”.
5. Arquitectura del canal PCI.
6. Arquitectura y operación de la interfaz IrDA.
7. Sistemas de archivos.
Contenidos conceptuales.
1. Arquitectura de “device drivers” para Win32.
a. Descripción de las funciones generales de un “device driver”.
b. Evolución de los “device drivers” dentro de los sistemas operativos.
c. Planeación en el diseño de un “device driver”.
d. Estructura general y estructuras de datos útiles en un “device driver” del tipo WDM.
e. Control de interrupciones y acceso al “hardware” mediante un “device driver” del tipo
WDM.
f. Emulación en “software” de un dispositivo de expansión/comunicación.
2. Arquitectura de “device drivers” en Linux.
a. Descripción del sistema de archivos de Linux.
b. Procedimiento para “montar” un volumen de almacenamiento (disco).
c. Procedimiento para instalar un dispositivo.
d. Arquitectura de un “device driver”.
e. Comunicación entre aplicaciones y “device drivers”.
f. Cómo “tocar” el “hardware” desde una aplicación en Linux.
3. Arquitectura y operación del puerto USB.
a. Descripción de la arquitectura del puerto USB.
b. Descripción de los diversas técnicas para transferencias de datos por el puerto USB.
c. Descripción general del protocolo utilizado por el puerto USB.
d. Filosofía operativa “plug and play” y sus detalles de implementación en el puerto USB.
e. Desarrollo de un “device driver” WDM para comunicación entre una aplicación y un
dispositivo USB.
f. Dispositivos del tipo “Human Input Device” (HID) y descripción de sus “device drivers”
relacionados.
g. Desarrollo (“hardware” y “software”) de un “mouse” con interfaz al puerto USB.
4. Comunicación entre aplicaciones y “hardware”.
a. APIs de dispositivos convencionales (modem, dispositivo de expansión de memoria,
impresora, etc.).
b. Usar Matlab para recolectar y procesar información de dispositivos de expansión.
c. Comunicación con herramientas de “software” de National Instruments (LabWindows).
d. Comunicación con dispositivos con interfaz HPIB.
5. Arquitectura del canal PCI.
a. Descripción de la arquitectura del canal PCI.
b. Descripción de la operación de un controlador de comunicaciones PCI.
c. Diseño de “hardware” de expansión usando el canal PCI y el controlador AMCC5933.
d. Diseño y experimentación con un “device driver” genérico para transferencias de datos,
utilizando diversas modalidades de comunicación con el canal PCI.
6.
7.
e. Control de interrupciones en “device drivers” WDM.
f. Acceso directo a memoria utilizando “device drivers” WDM.
Arquitectura y operación de la interfaz IrDA.
a. Relación del puerto serial y la interfaz IrDA.
b. Descripción de la arquitectura de “hardware” de la interfaz IrDA.
c. Descripción de la arquitectura de “software” requerida para la comunicación vía la
interfaz IrDA.
d. Desarrollo de un “device driver” WDM para controlar la comunicación entre una
computadora y un dispositivo externo, utilizando la interfaz IrDA.
Sistemas de archivos.
a. Sistema de archivos de MS-DOS.
b. Sistema de archivos de Windows 95, 98 y ME.
c. Sistema de archivos de Windows NT 4.0, Windows 2000 y Windows XP.
d. Sistema de archivos para CD y DVD.
e. Sistema de archivos para dispositivos externos de almacenamiento con memoria “flash”.
f. Diseño de un lector/grabador de memoria “flash” para almacenamiento de datos.
Contenidos procedimentales.
1. Arquitectura de “device drivers” para Win32.
• Visualizar el proceso de comunicación entre las aplicaciones computacionales y diversos
dispositivos de expansión, destacando la intervención y el protocolo de interacción con su
respectivo “device driver”.
• Diseñar “device drivers” básicos mediante el uso del “debuger” SoftIce, entendiendo la
operación de este programa y sus múltiples configuraciones.
• Programar un “device driver” básico (al estilo “Hello world!”) para aprender la operación básica
del “debuger” y verificar el funcionamiento de las secciones principales de un “device driver”.
2. Arquitectura de “device drivers” para Linux.
• Visualizar y analizar las diferencias entre las arquitecturas de controladores de dispositivos
disponibles para Windows XP y Linux.
• Diseñar un “device driver” básico (al estilo de un “Hello world”) para el sistema operativo
Linux.
3. Arquitectura y operación del puerto USB.
• Visualizar y analizar el protocolo de comunicación entre el controlador de comunicaciones USB
insatalado en un equipo computacional y los dispositivos de expansión conectados a dicho
puerto.
• Visualizar y analizar el protocolo de comunicación entre los diferentes “device drivers” que
permiten la comunicación entre aplicaciones y dispositivos de expansión USB.
• Diseñar un “mouse” para ser conectado al puerto USB de una computadora, incluyendo el
soporte para el estándar HID y un “device driver” específico para ejecutar un alguna
funcionalidad específica adicional a la convencional.
• Construir un prototipo del “mouse” diseñado previamente, utilizando el controlador Cypress
CY63001A, y programar los “device drivers” necesarios para garantizar su funcionamiento
(incluyendo la modalidad “plug and play”).
4. Comunicación entre aplicaciones y “hardware”.
• Analizar el protocolo de comunicación entre aplicaciones genéricas y “device drivers”.
• Diseñar y programar un “device driver” que simule un dispositivo virtual y que pueda ser
utilizado para la adquisición de datos en el paquete computacional Matlab.
• Diseñar y programar un “device driver” que simule un dispositivo virtual y que pueda ser
utilizado para la adquisición de datos en el paquete computacional LabView.
• Diseñar y programar un “device driver” que permita controlar la operación y extraer datos de un
dispositivo con interfaz HPIB.
5. Arquitectura del canal PCI.
• Analizar el protocolo de comunicación entre el microprocesador y un controlador PCI .
• Diseñar y construir un dispositivo para entrada y salida de datos digitales, utilizando el canal
PCI y el sistema de desarrollo basado en el controlador AMCC 5933.
6.
7.
• Diseñar un algoritmo básico para leer y escribir datos en un dispositivo de expansión instalado
en el canal PCI, utilizando el sistema de desarrollo basado en el controlador AMCC 5933.
• Aplicar la teoría sobre diseño de “device drivers” para disñar y programar uno específico,
adecuado al dispositivo de expansión previamente interconectado al sistema de desarrollo para
el canal PCI.
Arquitectura y operación de la interfaz IrDA.
• Visualizar y analziar el protocolo de comunicación entre una computadora y un dispositivo con
interfaz IrDA.
• Diseñar un dispositivo de expansión para entrada y salida de datos digitales, con enlace IrDA
hacia un equipo de cómputo.
• Construir el prototipo del dispositvo previamente diseñado y programar los “device drivers”
correspondientes que garanticen su operación (incluyendo la modalidad “plug and play”).
Sistemas de archivos.
• Analizar la estructura del sistema de archivos de las diferentes familias de sistemas operativos
basados en MS-DOS y Windows, destacando las ventajas de cada una con respecto a las
versiones anteriores.
• Diseñar un sistema de archivos básico que permita almacenar la información equivalente a un
“diskette” en un dispositivo con memoria del tipo “flash”.
• Construir el prototipo del dispositivo de almacenamiento previamente diseñado y programar los
“device drivers” que garanticen su funcionamiento, según el tipo de interfaz de conexión
seleccionado (USB o IrDA).
Contenidos actitudinales.
1. Valorar la importancia de un enfoque modular en el diseño de aplicaciones y en la solución de
ingeniería electrónica/programación.
2. Acrecentar el aprecio por una cultura de calidad en el trabajo.
3. Enriquecer del proceso personal de aprendizaje a través de actividades colaborativas.
Calendario de actividades.
1. Arquitectura de “device drivers” para Win32. (3 semanas ... 9 horas)
2. Arquitectura de “device drivers” para Linux. (3 semana ... 9 horas)
3. Arquitectura y operación del puerto USB. (3 semanas ... 9 horas)
4. Comunicación con aplicaciones. (2 semanas ... 6 horas)
5. Arquitectura del canal PCI. (1 semanas ... 3 horas)
6. Arquitectura y operación de la interfaz IrDA. (1 semanas ...3 horas)
7. Sistemas de archivos. (1 semana ... 3 horas)
Forma de evaluación.
Concepto
Exámenes parciales
Tareas
Avance de proyecto
Proyecto
Total
Cantidad
3
5
1
1
Ponderación individual
10%
10%
10%
10%
Fechas importantes.
• 1er. examen parcial.
• 2do. examen parcial.
• 3er. examen parcial.
• Revisión de avance de proyecto.
• Presentación y revisión de proyecto final.
Ponderación global
30%
50%
10%
10%
100%
Descargar