Передача данных в операционной системе MS-DOS.
Во время работы с системами реального времени компьютеру с операционной системой MS-DOS приходится обмениваться данными внешней средой. Данные, подлежащие передаче, делятся на три категории:
данные, состоящие из одного бита, указывающего текущее состояние устройств, которые могут находиться в одном из двух состояний,
данные, представляющие собой цифровое выражение аналоговых сигналов, выдаваемых аналогово-цифровыми преобразователями,
цифровая информация, поступающая от оборудования другого вида (которое в свою очередь принимало данные одним из трех указанных способов).
"Порты" используются операционной системой MS-DOS для передачи данных. Данные, считываемые через порт, представляют собой данные внешней среды. Данные, поступающие в порт (иначе - "данные, записываемые в порт"), влияют (управляют) на внешнюю среду.
В операционной системе MS-DOS существует два типа портов: порты центрального процессора CPU и порты операционной системы MS-DOS. На рисунке 5-6 представлены два типа портов и методы, используемые для доступа к этим портам. Физически порты обоих возможных типов могут выглядеть одинаково. И только по методу доступа их можно различить. Порты центрального процессора CPU называются также "логическими портами".
Порты центрального процессора CPU представляют передачу данных низкого уровня. Обращение к ним происходит непосредственно от процессора. Каждый порт центрального процессора CPU идентифицируется своим адресом. Может существовать до 65536 разных портов.
Операционная система MS-DOS использует некоторые порты центрального процессора CPU для программируемого таймера и для таких специфических целей, как общение с клавиатурой и обмен данными с дисками. Другие порты центрального процессора CPU могут использоваться пользователем для других целей. Основной способ обращения к этим портам заключается в применении команд IN и OUT языка Ассемблер. По команде IN происходит считывание одного байта или одного слова из порта. По команде WRITE происходит запись одного байта или одного слова в порт.
В операционной системе MS-DOS порт 61h центрального процессора CPU используется для говорящего устройства. Второй младший бит (бит 1) используется для управления звуком, поступающим от говорящего устройства. Если этот бит установлен в значение "1", говорящее устройство включено. В противном случае оно выключено. Другие биты этого порта управляют другими функциями.
После включения говорящего устройства команда LOOP выполняется с целью предоставления этому устройству некоторого времени для работы прежде чем оно будет отключено. Звук продолжает поступать до тех пор, пока с клавиатуры не будет введен какой-нибудь символ. Функция прерывания "int 16h" используется для считывания значения состояния клавиатуры.
Порты операционной системы MS-DOS предназначены для передачи данных высокого уровня. Это значит, что процессор не управляет непосредственно этими данными, а доступ к ним осуществляется посредством обращения к функциям операционной системы MS-DOS и системы ПЗУ-BIOS. Существует два типа портов операционной системы MS-DOS, известные под названием "последовательных портов" и "параллельных портов".
Параллельные порты в основном разрабатываются для подключения к ним печатающих устройств (принтеров). Данные через эти порты проходят параллельно, то есть, все восемь битов, составляющие байт, передаются на принтер одновременно. Операционная система DOS поддерживает передачу потока данных через параллельный порт только в одном направлении (то есть от компьютера к принтеру), хотя сами по себе аппаратные средства могут осуществлять функции и ввода и вывода. Ниже предложена часть программы, в которой происходит вывод строки, заданной при помощи DS:DX, в параллельный порт. Функция прерывания операционной системы MS-DOS "int 21h" с параметром AH=40H (записать файл) используется для выполнения этого условия. Регистр BX содержит описатель файла для стандартного устройства печати (4). После обработки запроса регистр ax будет содержать количество символов, действительно помещенных в параллельный порт.
Последовательные порты обычно используются для подключения модемов, а также для подключения устройства "мышь". Данные через последовательные порты передаются по одному биту по одному и тому же проводнику. Операционная система DOS поддерживает передачу данных в двух направлениях, то есть, в компьютер и от компьютера.
Передача данных через последовательные порты ведется асинхронно. Поэтому на обоих концах линии передачи должен быть установлен ряд согласующих параметров. Скорость передачи данных в бодах "последовательного порта" равна числу битов, передаваемых в секунду. Скорость передачи данных в бодах, поддерживаемая операционной системой MS-DOS версии 3.3, лежит в диапазоне от 110 до 19200 битов в секунду. "Длина слова" представляется числом битов, составляющих символ. Это значение может равняться 7 или 8. "Чет-ность" - это простой механизм обнаружения ошибок в линии передачи. Согласно стандартам, принятым в интерфейсах RS-232 для последовательной передачи данных, значением параметра четности может быть "четно" или " нечетно" (два способа проверки ошибок) или может не существовать проверки на четность. Каждый символ отделяется от других битами, называемыми "битами останова". Можно задавать один или два бита останова. Эти параметры должны быть проинициализированы до начала процесса передачи данных.
>>
|