logo
Будылдина2 / ПДС_ЭКЗАМЕН

41. Обмен данными между компьютером и периферийным устройством.

Наиболее простой случай соединения устройств - это непосредственное соединение двух устройств физическим каналом. Такое соединение называется связью "точка-точка".

Частным случаем связи "точка-точка" является соединение компьютера с периферийным устройством.

Для обмена данными компьютер и периферийное устройство (ПУ) оснащены внешними интерфейсами или портами (рисунок ниже). В данном случае к понятию "интерфейс" относятся:

Со стороны компьютера логикой передачи сигналов на внешний интерфейс управляют:

Со стороны ПУ интерфейс чаще всего реализуется аппаратным устройством управления ПУ, хотя встречаются и программно-управляемые периферийные устройства.

К аппаратным интерфейсам периферийных устройств относятся последовательный интерфейс RS-232, параллельный интерфейс Centronixs, интерфейс SCSI, интерфейс USB. Для подключения адаптеров периферийных устройств используются шины на материнской плате ПК ( ISA, PCI, PCI Express, для видеоадаптеров AGP и PCI-16 Express). Интерфейс RS-232 используется для подключения плоттера, удаленного принтера, мыши, модема и т.д. Данные в нем передаются последовательно один за другим. Интерфейс Centronixs чаще всего используется для подключения принтера. Данные передаются параллельно по несколько бит одновременно. Стандарт USB предельно упрощает соединение с периферийными устройствами. Физически – это две витые пары для передачи в каждом направлении. Все устройства, подключаемые к этому интерфейсу, конфигурируются автоматически. Шины на материнской плате отличаются числом контактов, частотой шины, максимальной скоростью передачи данных, разрядностью данных. Шина ISA устарела и практически не используется. Наиболее распространена шина PCI ( частота шины ½ входной частоты процессора, макс. скорость до 132/264 Мбайт/с для 32/64 бит. ). В настоящее время появились более скоростные шины PCI Express.

Обмен данными между ПУ и компьютером, как правило, является двунаправленным. Так, например, даже принтер, который представляет собой устройство вывода информации, возвращает в компьютер данные о своем состоянии.

Таким образом, по каналу, связывающему внешние интерфейсы, передается следующая информация:

Рассмотрим последовательность действий, которые выполняются в том случае, когда некоторому приложению требуется напечатать текст на принтере. Со стороны компьютера в выполнении этой операции принимает участие, кроме уже названных контроллера, драйвера и приложения, еще один важнейший компонент — операционная система. Поскольку все операции ввода-вывода являются привилегированными, все приложения при выполнении операций с периферийными устройствами используют ОС как арбитра. Итак, последовательность действий такова:

  1. Приложение обращается с запросом на выполнение операции печати к операционной системе. В запросе указываются: адрес данных в оперативной памяти, идентифицирующая информация принтера и операция, которую требуется выполнить.

  2. Получив запрос, операционная система анализирует его, решает, может ли он быть выполнен, и если решение положительное, то запускает соответствующий драйвер, передавая ему в качестве параметров адрес выводимых данных. Дальнейшие действия, относящиеся к операции ввода-вывода, со стороны компьютера реализуются совместно драйвером и контроллером принтера.

  3. Драйвер передает команды и данные контроллеру, который помещает их в свой внутренний буфер. Пусть, например, драйвер загружает значение некоторого байта в буфер контроллера ПУ.

  4. Контроллер перемещает данные из внутреннего буфера во внешний порт.

  5. Контроллер начинает последовательно передавать биты в линию связи, представляя каждый бит соответствующим электрическим сигналом. Чтобы сообщить устройству управления принтера о том, что начинается передача байта, перед передачей первого бита данных контроллер формирует стартовый сигнал специфической формы, а после передачи последнего информационного бита — стоповый сигнал. Эти сигналы синхронизируют передачу байта. Кроме информационных бит, контроллер может передавать бит контроля четности для повышения достоверности обмена.

  6. Устройство управления принтера, обнаружив на соответствующей линии стартовый бит, выполняет подготовительные действия и начинает принимать информационные биты, формируя из них байт в своем приемном буфере. Если передача сопровождается битом четности, то выполняется проверка корректности передачи: при правильно выполненной передаче в соответствующем регистре устройства управления принтера устанавливается признак завершения приема информации. Наконец, принятый байт обрабатывается принтером — выполняется соответствующая команда или печатается символ.

Связь компьютера с периферийным устройством.

Обязанности между драйвером и контроллером могут распределяться по-разному, но чаще всего контроллер поддерживает набор простых команд, служащих для управления периферийным устройством, а на драйвер обычно возлагаются наиболее сложные функции реализации обмена. Например, контроллер принтера может поддерживать такие элементарные команды, как "Печать символа", "Перевод строки", "Возврат каретки" и т. п.

Драйвер же принтера с помощью этих команд реализует печать строк символов, разделение документа на страницы и другие более высокоуровневые операции (например, подсчет контрольной суммы последовательности передаваемых байтов, анализ состояния периферийного устройства, проверка правильности выполнения команды). Драйвер, задавая ту или иную последовательность команд, определяет тем самым логику работы периферийного устройства. Для одного и того же контроллера можно разработать различные драйверы, которые с помощью одного и того же набора доступных команд будут реализовывать разные алгоритмы управления одним и тем же ПУ.

Возможно распределение функций между драйвером и контроллером (ПУ).

Функции, выполняемые драйвером:

Функции, выполняемые контроллером: