ITESM, Campus Monterrey Departamento de Ciencias Computacionales (CS00-875) Interfaces y equipo periférico Agosto-diciembre 2004 Objetivo: Instruir en el uso de diversas técnicas de interconexión entre computadoras y equipo electrónico, diseñar programas orientados a la adquisición de datos y procesamiento de información, desarrollar programas de interfaz entre aplicaciones de alto nivel y el sistema de entrada/salida de un equipo de cómputo. Objetivos generales: Enseñar conceptos básicos de la arquitectura Intel para conexión de dispositivos. Analizar diversos canales computacionales de la arquitecuta Intel, entre ellos ISA, EISA, PCI y USB. Diseñar interfaces electrónicas para interconectar un equipo de cómputo con dispositivos de control y adquisición de datos. Desarrollar programas de bajo nivel para interactuar con tarjetas de expansión, para computadoras de plataforma Intel, utilizando algunas plataformas del sistema operativo Win32. Utilizar las bibliotecas de programación necesarias para desarrollar interfaces de “software” entre tarjetas de expansión y aplicaciones de alto nivel. Diseñar, programar y someter a pruebas interfaces de “software” entre tarjetas de expansión y aplicaciones de alto nivel. Intenciones educativas: Que los alumnos conozcan la arquitectura Intel para conexión de dispositivos, estudiando en forma específica el sistema de interrupciones y los puertos de entrada y salida. Que los alumnos identifiquen las ventajas y desventajas de los diversos canales computacionales de la arquitecuta Intel, entre ellos ISA, PCI, PC Card y USB. Que los alumnos puedan diseñar interfaces electrónicas para interconectar un equipo de cómputo con dispositivos de control y adquisición de datos. Que los alumnos programen “drivers” para el sistema operativo Win32 que permitan que aplicaciones de alto nivel puedan comunicarse con tarjetas de expansión. Que los alumnos diseñen, programen y sometan a pruebas interfaces de “software” entre tarjetas de expansión y aplicaciones de alto nivel. Que los alumnos desarrollen o potencialicen sus habilidades de solución de problemas y toma de decisiones utilizando metodologías de aprendizaje colaborativo. Descripción general de temas: 1. Arquitectura computacional. 2. Sistema de interrupciones y programas residentes. 3. Puertos del microprocesador y máquinas virtuales de Win32. 4. Entrada y salida de datos utilizando el puerto paralelo. 5. Canal ISA. 6. Programación de bibliotecas, servicios y “drivers” (VxD y WDM). 7. Comunicación de datos utilizando el puerto serial. 8. Interfaz USB. 9. Interfaz PC-Card. 10. Canal PCI. Descripción general de temas: 1. Arquitectura computacional. 1.1. Descripción general de arquitecturas computacionales “big-endian” y “little-endian”. 1.2. Organización de dispositivos periéricos en mapas de puertos y en mapas de memoria. 1.3. Arquitectura de microprocesadores Intel. 1.4. Puertos de un microprocesador. 2. Sistema de interrupciones y programas residentes. 2.1. Descripción funcional de los procesadores de soporte. 2.2. Estudio sobre el procesamiento de una interrupción. 2.3. Análisis de la interrupción de reloj. 2.4. Análisis de la interrupción de teclado. 3. Puertos del microprocesador y máquinas virtuales de Win32. 3.1. Sistema operativo Windows – 32 bits. 3.2. Descripción del concepto de máquinas virtuales. 3.3. Descripción de la utilidad de máquinas virtuales y su relación con los dispositivos periféricos. 4. Entrada y salida de datos utilizando el puerto paralelo. 4.1. Descripción del funcionamiento del puerto paralelo. 4.2. Rutinas para entrada y salida de datos por el puerto paralelo. 4.3. Ejemplos de conexiones al puerto paralelo. 4.4. Procesamiento de interrupciones sobre el puerto paralelo. 5. Canal ISA. 5.1. Descripción del funcionamiento del canal ISA. 5.2. Diseño y ensamblado de una tarjeta ISA para adquisición de datos. 5.3. Procesamiento de interrupciones sobre el canal ISA. 6. Programación de bibliotecas, servicios y “drivers” (VxD y WDM). 6.1. Programación de servicios para arquitecturas Win-NT (Win2000 y WinXP). 6.2. Programación de agentes sobre windows. 6.3. Programación de bibliotecas. 6.4. Descripción funcional de “Virtual Device Drivers” (VxDs). 6.5. Programación de VxDs. 6.6. Virtualización de puertos utilizando VxDs. 6.7. Virtualización de interrupciones usando VxDs. 6.8. Virtualización del teclado sobre Win32. 6.9. Funcionamiento de un “device driver” del tipo WDM. 7. Comunicación de datos utilizando el puerto serial. 7.1. Programación del puerto serial. 7.2. Diseño de un servicio para Win-NT con conexión serial y almacenamiento de datos. 7.3. Diseño de un agente para windows con interfaz al puerto serial. 8. Interfaz USB. 8.1. Descripción operativa de la interfaz USB. 8.2. Utilización de un dispositivo con conexión USB para adquisición de datos. 9. Interfaz PC-Card. 9.1. Descripción operativa de la interfaz PC-Card. 9.2. Diseño de una tarjeta prototipo PC-Card para adquisición de datos. 9.3. Descripción genérica de un “device driver” WDM para una tarjeta PC-Card. 9.4. Utilización de una tarjeta PC-Card para adquisición de datos. 10. Canal PCI. 10.1. Descripción operativa del canal PCI. 10.2. Utilización de una tarjeta PCI en una aplicación de adquisición de datos. Evaluación del curso: Actividad Exámenes parciales Tareas Anteproyecto final Proyecto final Examen final TOTAL Cantidad 3 8 1 1 1 Porcentaje 16% 2.5% 10% 10% 12% Total 48% 20% 10% 10% 12% 100% Libros de texto suguerido: Buchanan, W., Wilson, A., “Advanced PC Architecture”, Addison-Wesley, 1a. edición, ISBN: 0201398583. Libros de consulta recomendados: Messmer, H., “The Indispensable PC Hardware Book”, Addison-Wesley, 4a. edición, ISBN: 0201596164. Oney, W., “Programming the Microsoft Windows Driver Model”, Microsoft Press, 2a. edición, ISBN: 0735618038. Salomon, D., “Inside Microsoft Windows 2000”, Microsoft Press, 3a. edición, ISBN: 0735610215. Hazzah, K., Writing Windows VxDs & Device Drivers; Programming Secrets for Virtual Device Drivers, 2nd Ed., R&D Books, ISBN: 0879304383. Oney, W., Foltz, F.; Programming the Microsoft Windows Driver Model, Microsoft Press. Shanley, T., Anderson, D., ISA SystemArchitecture, 3rd Ed., 1995, Addison Wesley, ISBN: 0-201-40996-8. Solari, E.; “PCI & PCI-X Hardware and Software (Architecture and Design)”, 5a edición, Annabooks, ISBN: 0929392639.