Methods of interfacing peripheral devices
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
BI-MPP | Z,ZK | 4 | 2+2 | Czech |
- Lecturer:
- Miroslav Skrbek (gar.)
- Tutor:
- Miroslav Skrbek (gar.)
- Supervisor:
- Department of Computer Systems
- Synopsis:
-
The course is focused on methods interfacing peripheral devices. Interfacing of real devices is included with stress to Universal serial bus (USB). The course includes either PC side or attached devices. Labs are practically oriented. Students gain gain experience in implementation relevant parts of USB device, Linux and Windows drivers, simple application development, and APIs of selected devices.
- Requirements:
-
Basic knowledge in C programming, basic knowledge in Linux and Windows operating systems
- Syllabus of lectures:
-
1. Introduction, basic terms, PC architecture
2. Address spaces in PC, virtual memory, interrupt subsystem
3. System bus (PCI Express), input and output operations, direct memory access
4. USB 3.0 standard , USB Wireless a USB On-the-Go
5. SCSI bus and USB mass-storage devices
6. Peripheral busses (LPC, Firewire, SATA)
7. Development of specific USB devices, hardware support in microcontrollers, firmware
8. Linux kernel, kernel modules
9. Character and USB devices in Linux
10. Microsoft Windows Driver Model
11. USB device drivers in Windows
12. Mapping of Bluetooth devices into Linux and Windows
13. Mapping audio and video devices into Linux and Windows
- Syllabus of tutorials:
-
1. Introduction, development tools
2. Peripheral operation at the register level
3. PCI device configuration
4. Detection and identification USB devices, mouse data reading
5-6. USB mass-storage data reading
7. USB device descriptor request implementation
8. USB bulk transfer implementation
9. Character driver implementation in Linux
10. USB device driver implementation in Linux
11. Windows driver implementation
12. Audio/video data transfers
13. Assessment
- Study Objective:
-
The goal of the course is to learn students methods of interfacing peripheral devices and their application interfaces. Next goal is provide students with sufficient space to obtain pratical experience in peripheral interfacing by a set of tasks.
- Study materials:
-
[1] Gook, M.: PC Hardware Interfaces: A Developer's Reference. Computer Press. 2006, ISBN 978-1931769297
[2] Corbet, J., Rubini, A., Kroah-Hartman, G.: Linux Device Drivers. O'Reilly, 3rd edition, 2005. ISBN 0-596-00590-3.
[3] Oney, W.: Programming the Microsoft Windows driver model. Microsoft Press. 2nd edition, 2003. ISBN 0-7356-1803-8
- Note:
- Time-table for winter semester 2011/2012:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon Tue Fri Thu Fri - Time-table for summer semester 2011/2012:
- Time-table is not available yet
- The course is a part of the following study plans: