
- •Глава 7
- •Глава 7
- •7.1.1 Доступ к внешним устройствам
- •7.1.2. Простые внешние устройства
- •7.1.3. Порты передачи данных
- •7.1.4 Шины
- •7.2 Задачи ос по управлению устройствами ввода-вывода
- •7.2.1 Организация параллельной работы устройств ввода-вывода и процессора
- •7.2.2 Согласование скоростей обмена и кэширование данных
- •7.2.3 Разделение устройств и данных между процессами
- •7.2.4 Обеспечение удобного логического интерфейса между устройствами
- •7.2.5 Поддержка широкого спектра драйверов и простота включения
- •7.2.6 Динамическая загрузка и выгрузка драйверов
- •7.2.7 Поддержка нескольких файловых систем
- •7.2.8 Поддержка синхронных и асинхронных операций ввода-вывода
- •7.3 Многослойная модель подсистемы ввода-вывода
- •7.3.1 Общая схема
- •7.3.2 Менеджер ввода-вывода
- •7.3.3 Многоуровневые драйверы
7.1.2. Простые внешние устройства
По-видимому, самым простым внешним устройством является порт вывода. Такие устройства являются стандартним компонентом большинства микропроцессорных систем. У микропроцессоров первых поколений порты реализовались отдельными микросхемами, у современных микроконтроллеров они обычно интегрированы в один кристалл с процессором.
Порт вывода представляет собой регистр и несколько выходных контактов. В литературе вход-ные и выходные контакти микросхем обычно называют просто входами и выходами. Количество выходов порта, как правило, соответствует, и никогда не превосходит количества битов в регистре. Если в бит регистра записан ноль, напряжение на виходе порта будет низким, а если единица, то, соответственно, высоким. Большинство современных микропроцессорных комплектов используют так называемые ТТЛ-совместимие напряжения, когда нулю соответствует напряжение 0 В, а единице — 5 В.
Применения порта вывода многообразны. Например, к нему можно присоединить светодиод и получить лампочку, миганием которой можно программно управлять (такне диоды часто используются при отладке программ для микроконтроллеров — вместо диагностической печати).
Кроме того, к выводу порта можно присоединить внешнюю цифровую, аналоговую или злектромеханическую схему (например, шаговий злектродвигатель), которая будет вьшолнять какую-то полезную работу. Таким образом, порт вывода, как правило, не является внешним устройством сам по себе, а служит интерфейсом между микропроцессором и собственно внешним устройством.
Другое столь же простое устройство — зто порт ввода. Порт ввода также состоит из регистра и нескольких входных линий, соответствующих битам регистра (рис. 7.3).
Бит регистра имеет значение 0, если на вход подано низкое напряжение и, наоборот, единицу — если высокое.
Регистр порта ввода часто называют регистром-защелкой, потому что основная его функция — зафиксировать напряжения на входах в определенньїй момент времени и передать их центральному процессору в виде однозначно определенных значений.
Рис. 7.3 Порт ввода
Разработчики микросхем часто совмещают входы портов ввода и выводы портов вывода, создавая таким образом комбинированное устройство — порт ввода-вывода. Такое устройство должно быть существенно сложнее, чем простая комбинация порта ввода и порта вывода. (рис. 7.4).
Рис.7.4 Принципиальная схема порта ввода-вывода
Таким образом, даже такое простое устройство, как порт ввода-вывода, имеет целых три регистра: два регистра данных (многие реализации портов размещают зти два регистра по одному адресу: при чтении обращение происходит к защелке порта ввода, а при записи — к регистру порта вывода) и один управляющий. Более сложные устройства обычно также имеют один или несколько регистров данных и один или несколько управляющих регистров. Устройства, передающие и принимающие большие обьемы данных (контроллеры жестких дисков, сетевые интерфейсы, видеоадаптеры) часто вместо одного регистра данных снабжаются буфером памяти, отображенным на адреса памяти процессора.