Methods of interfacing peripheral devices
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
BI-MPP.21 | Z,ZK | 5 | 2P+2C | Czech |
- Garant předmětu:
- Miroslav Skrbek
- Lecturer:
- Miroslav Skrbek
- Tutor:
- Miroslav Skrbek
- Supervisor:
- Department of Digital Design
- Synopsis:
-
The course is focused on methods for interfacing of peripheral devices. Interfacing of real peripheral devices is focused on techniques based on Universal serial bus (USB). The course includes both PC side and peripheral devices side. Labs are practically oriented. Students gain experience with implementation of relevant parts of USB devices, 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 buses (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 drivers.
11. Mapping of Bluetooth devices into Linux and Windows.
12. Mapping audio and video devices into Linux and Windows.
13. Accessing peripherals form virtual machines.
- 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. Jackson M., Budruk R., Winkles J., Anderson D. : PCI Express Technology 3.0.. MindShare Press, 2012. ISBN 978-0977087860.
2. Madieu J. : Linux Device Drivers Development: Develop customized drivers for embedded Linux. Packt Publishing, 2017. ISBN 978-1785280009.
3. Yosifovich P. : Windows Kernel Programming. CreateSpace Independent Publishing Platform, 2019. ISBN 978-1977593375.
4. Gook M. : Hardwarová rozhraní. Průvodce programátora. Computer Press, 2006. ISBN 978-80-251-1019-5.
- Note:
- Further information:
- https://courses.fit.cvut.cz
- Time-table for winter semester 2024/2025:
- Time-table is not available yet
- Time-table for summer semester 2024/2025:
- Time-table is not available yet
- The course is a part of the following study plans:
-
- Bachelor program Informatics, unspecified branch, in Czech, 2015-2020 (elective course)
- Bachelor branch Security and Information Technology, in Czech, 2015-2020 (elective course)
- Bachelor branch Computer Science, in Czech, 2015-2020 (elective course)
- Bachelor branch Computer Engineering, in Czech, 2015-2020 (elective course)
- Bachelor branch Information Systems and Management, in Czech, 2015-2020 (elective course)
- Bachelor branch Web and Software Engineering, spec. Software Engineering, in Czech, 2015-2020 (elective course)
- Bachelor branch Web and Software Engineering, spec. Web Engineering, in Czech, 2015-2020 (elective course)
- Bachelor branch Web and Software Engineering, spec. Computer Graphics, in Czech, 2015-2020 (elective course)
- Bachelor branch Knowledge Engineering, in Czech, 2018-2020 (elective course)
- Master specialization Computer Security, in Czech, 2020 (elective course)
- Master specialization Design and Programming of Embedded Systems, in Czech, 2020 (elective course)
- Master specialization Computer Systems and Networks, in Czech, 202 (elective course)
- Master specialization Management Informatics, in Czech, 2020 (elective course)
- Master specialization Software Engineering, in Czech, 2020 (elective course)
- Master specialization System Programming, in Czech, version from 2020 (elective course)
- Master specialization Web Engineering, in Czech, 2020 (elective course)
- Master specialization Knowledge Engineering, in Czech, 2020 (elective course)
- Master specialization Computer Science, in Czech, 2020 (elective course)
- Mgr. programme, for the phase of study without specialisation, ver. for 2020 and higher (elective course)
- Bachelor specialization Information Security, in Czech, 2021 (elective course)
- Bachelor specialization Management Informatics, in Czech, 2021 (elective course)
- Bachelor specialization Computer Graphics, in Czech, 2021 (elective course)
- Bachelor specialization Computer Engineering, in Czech, 2021 (PS, elective course)
- Bachelor program, unspecified specialization, in Czech, 2021 (VO, elective course)
- Bachelor specialization Web Engineering, in Czech, 2021 (elective course)
- Bachelor specialization Artificial Intelligence, in Czech, 2021 (elective course)
- Bachelor specialization Computer Science, in Czech, 2021 (elective course)
- Bachelor specialization Software Engineering, in Czech, 2021 (elective course)
- Bachelor specialization Computer Systems and Virtualization, in Czech, 2021 (elective course)
- Bachelor specialization Computer Networks and Internet, in Czech, 2021 (elective course)
- Study plan for Ukrainian refugees (elective course)
- Master specialization System Programming, in Czech, version from 2023 (elective course)
- Master specialization Computer Science, in Czech, 2023 (elective course)
- Bachelor specialization Information Security, in Czech, 2024 (elective course)
- Bachelor program, unspecified specialization, in Czech, 2024 (VO, elective course)
- Bachelor specialization Management Informatics, in Czech, 2024 (elective course)
- Bachelor specialization Computer Graphics, in Czech, 2024 (elective course)
- Bachelor specialization Software Engineering, in Czech, 2024 (elective course)
- Bachelor specialization Web Engineering, in Czech, 2024 (elective course)
- Bachelor specialization Computer Networks and Internet, in Czech, 2024 (elective course)
- Bachelor specialization Computer Engineering, in Czech, 2024 (PS, elective course)
- Bachelor specialization Computer Systems and Virtualization, in Czech, 2024 (elective course)
- Bachelor specialization Artificial Intelligence, in Czech, 2024 (elective course)
- Bachelor specialization Computer Science, in Czech, 20214 (elective course)