Файл: 1Описание Внешних устройств 2 2Контроллер клавиатуры. 3.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.12.2023

Просмотров: 26

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Внешние устройства

Оглавление


1Описание Внешних устройств 2

2Контроллер клавиатуры. 3

3Дисплей. 7

4Блок таймеров. 9

5Тоногенератор. 12



  1. Описание Внешних устройств


Внешние устройства (ВУ), используемые в описываемой системе, реа­лизованы по единому принципу.

С точки зрения процессора они представляют собой ряд программно-доступных регистров, лежащих в адресном простран­стве ввода/вывода. Размер регистров ВУ совпадает с размером ячеек памяти и регистров данных процессора — шесть десятичных разрядов.

Доступ к регистрам ВУ осуществляется по командам IN аа, OUT аа, где аа — двухразрядный десятичный адрес регистра ВУ.

Таким образом, общий объем адресного пространства ввода/вывода составляет 100 адресов.

Важно: Адресные пространства памяти и ввода/вывода в этой модели разде­лены.

Разные ВУ содержат различное число программно-доступных регистров, каждому из которых соответствует свой адрес, причем нумерация адресов всех ВУ начинается с 0.

При создании ВУ ему ставится в соответствие базо­вый адрес в пространстве ввода/вывода, и все адреса его регистров становятся смещениями относительно этого базового адреса.

Если в системе создаются несколько ВУ, то их базовые адреса следует выби­рать с учетом величины адресного пространства, занимаемого этими устрой­ствами, исключая наложение адресов.

Если ВУ способно формировать запрос на прерывание, то при создании ему ставится в соответствие вектор прерывания— десятичное число. Разным ВУ должны назначаться различные векторы прерываний.

Программная модель содержит следующий набор внешних уст­ройств:

  • контроллер клавиатуры;

  • дисплей;

  • блок таймеров;

  • тоногенератор,

которым по умолчанию присвоены параметры, перечисленные в табл. 1.
Таблица 1. Параметры внешних устройств

Внешнее устройство

Базовый адрес

Адреса регистров

Вектор прерывания

Контроллер клавиатуры

0

0,1,2

0

Дисплей

10

0, 1, 2, 3

Нет

Блок таймеров

20

0, 1, 2, 3, 4, 5, 6

2

Тоногенератор

30

0,1

Нет


При создании устройств можно изменять назначенные по умол­чанию базовый адрес и вектор прерывания.

В описываемой системе не предусмотрена возможность подключения в систему нескольких одинаковых устройств.

Большинство внешних устройств содержит

  • регистры управления CR, содержит флаги и поля, определяющие режимы работы ВУ

  • регистры со­стояния SR, , содержит флаги, отражающие текущее состояние ВУ

  • обычно регистры CR доступны только на запись, а SR — на чтение.

  • Флаги SR устанавливаются аппаратно, но сбрасываются программно (или по внешнему сигналу).

  • Поля и флаги CR устанавливаются и сбрасываются программно при записи кода данных в регистр CR или специальными командами.


Контроллер ВУ

  • интерпретирует код, записываемый по адресу CR как коман­ду, если третий разряд этого кода равен 1, или как записываемые в CR дан­ные, если третий разряд равен 0.

  • в случае получения командного слова запись в регистр CR не производится, а пятый разряд слова рассматривается как код операции.
  1. Контроллер клавиатуры.


Контроллер клавиатуры (рис. 1) представляет собой модель внешнего уст­ройства, принимающего ASCII1-коды от клавиатуры ПЭВМ (Сокр. от American Standard Code for Information Interchange — американский стандартный код обмена информацией.).

Символы помещаются последовательно в буфер символов, размер которого установлен равным 50 символам, и отображаются в окне обозревателя (рис. 10).

В состав контроллера клавиатуры входят три программно-доступных регист­ра:

  1. DR (адрес 0) — регистр данных;

  2. CR (адрес 1) — регистр управления, определяет режимы работы контрол­лера и содержит следующие флаги:

  • Е — флаг разрешения приема кодов в буфер;

  • I — флаг разрешения прерывания;

  • S — флаг режима посимвольного ввода.

  1. SR (адрес 2) — регистр состояния, содержит два флага:

  • Err — флаг ошибки;

  • Rd — флаг готовности.





Рис. 2. Контроллер клавиатуры




Рис. 2. Окно обозревателя контроллера клавиатуры

Регистр данных DRдоступен только для чтения, через него считываются ASCII-коды из буфера, причем порядок чтения кодов из буфера соответствует порядку их записи в буфер — каждое чтение по адресу 0 автоматически перемещает указатель чтения буфера. В каждый момент времени DR содержит код символа по адресу указателя чтения буфера.

Флаги регистра управления CRустанавливаются и сбрасываются программно;

  • Флаг Е, будучи установленным, разрешает прием кодов в буфер. При Е = 0 контроллер игнорирует нажатие на клавиатуре, прием кодов в буфер не про­изводится. На считывание кодов из буфера флаг Е влияния не оказывает.

  • Флаг I, будучи установленным, разрешает при определенных условиях формирование контроллером запроса на прерывание. При 1 = 0 запрос на прерывание не формируется.

  • Флаг S = 1 устанавливает т. н. режим посимвольного ввода, иначе контроллер работает в обычном режиме. Флаг S устанавливается и сбрасывается программно, кроме того, S сбрасывается при нажатии кнопки Очистить буфер в окне Контроллер клавиатуры.

Условия формирования запроса на прерывание определяются:

  • с одной сторо­ны, значением флага разрешения прерывания I,

  • с другой — режимом работы контроллера.

В режиме посимвольного ввода запрос на прерывание форми­руется после ввода каждого символа (разумеется, при I = 1), в обычном режиме запрос будет сформирован по окончании набора строки.

Завершить набор строки можно, щелкнув по кнопке Завершить ввод в окне Контроллер клавиатуры (см. рис. 2). При этом:

  • устанавливается флаг го­товности Rd (ready) в регистре состояния SR.

Флаг ошибки Err (error
) в том же регистре устанавливается при попытке ввода в буфер 51-го символа. Ввод 51-го и всех последующих символов блокируется.

Сброс флага Rd осуществляется автоматически при чтении из регистра DR, флаг Err сбрасывается программно.

Кроме того, оба эти флага сбрасываются при нажатии кнопки Очистить буфер в окне Контроллер клавиатуры; од­новременно со сбросом флагов производится очистка буфера — весь буфер, заполняется кодами 00h, а указатели записи и чтения устанавливаются на нача­ло буфера.

Для программного управления контроллером предусмотрен ряд командных слов:

  • все команды выполняются при записи по адресу регистра управления CR кодов с 1 в третьем разряде.

Контроллер клавиатуры интерпретирует следующие командные слова:

  • xxx 102 — очистить буфер (действие команды эквивалентно нажатию кноп­ки Очистить буфер);

  • ххх 102 — сбросить флаг Err в регистре SR;

  • ххх 103 — установить флаг S в регистре CR;

  • ххх 104 — сбросить флаг S в регистре CR.

Если по адресу 1 произвести запись числа ххх0nn, то произойдет изменение, 4-го и 5-го разрядов регистра CR по следующему правилу:




  1. Дисплей.


Дисплей (рис. 3) представляет собой модель внешнего устройства, реали­зующую функции символьного дисплея. Дисплей может отображать симво­лы, задаваемые ASCII-кодами, поступающими на его регистр данных. Дис­плей включает:

  • видеопамять объемом 128 слов (ОЗУ дисплея);

  • символьный экран размером 8 строк по 16 символов в строке;

  • четыре программно-доступных регистра:

  • DR (адрес 0) — регистр данных;

  • CR (адрес 1) — регистр управления;

  • SR (адрес 2) — регистр состояния;

  • AR (адрес 3) — регистр адреса.



Рис. 3. Контроллер дисплея

Через регистры адреса AR и данных DR по записи и чтению осуществляется доступ к ячейкам видеопамяти.


При обращении к регистру DR по записи содержимое аккумулятора записывается в DR и в ячейку видеопамяти, адрес которой установлен в регистре AR.

Регистр управления CR доступен только для записи и содержит в 4-м и 5-м разрядах соответственно два флага:

  • Е — флаг разрешения работы дисплея; при Е=0 запись в регистры AR и DR блокируется;

  • А — флаг автоинкремента адреса; при А=1 содержимое AR автоматически увеличивается на 1 после любого обращения к регистру DR — по записи или чтению.

Изменить значения этих флагов можно, если записать по адресу CR (по умолчанию — 11) код ххх0nn, при этом изменение 4-го и 5-го разрядов регистра CR произойдет согласно условию (1).

Для программного управления дисплеем предусмотрены две команды, коды которых должны записываться по адресу регистра CR, причем в третьем раз­ряде командных слов обязательно должна быть 1:

  • xxx101 — очистить дисплей (действие команды эквивалентно нажатию кнопки Очистить в окне Дисплей), при этом очищается видеопамять (в каждую ячейку записывается код пробела — 032), устанавливается в 000 регистр адреса AR и сбрасываются флаги ошибки Err и автоинкремента А;

  • ххх102 — сбросить флаг ошибки Err.




Рис. 4. Окно обозревателя контроллера дисплея

Регистр состояния SR доступен только по чтению и содержит единственный флаг (в пятом разряде) ошибки Err. Этот флаг устанавливается аппаратно при попытке записать в регистр адреса число, большее 127, причем как в режиме прямой записи в AR, так и в режиме автоинкремента после обращения по ад­ресу 127.

Сбрасывается флаг Err программно или при нажатии кнопки Очи­стить в окне Дисплей (рис. 4).
  1. Блок таймеров.


Блок таймеров (рис. 13) включает в себя три однотипных канала, каждый из которых содержит:

  • пятиразрядный десятичный реверсивный счетчик Т, на вход которого по­ ступают метки времени (таймер);

  • программируемый предделитель D;

  • регистр управления таймером CTR;

  • флаг переполнения таймера FT.