Главная страница
Навигация по странице:

  • Регистр данных

  • Флаги

  • Очистить буфер

  • В режиме посимвольного ввода

  • Завершить набор строки

  • Флаг ошибки

  • Сброс флага

  • Регистр состояния

  • Сбрасывается флаг

  • Программное управление режимами блока таймеров

  • Лекция Внешние устройства. 1Описание Внешних устройств 2 2Контроллер клавиатуры. 3


    Скачать 205.95 Kb.
    Название1Описание Внешних устройств 2 2Контроллер клавиатуры. 3
    Дата27.04.2023
    Размер205.95 Kb.
    Формат файлаdocx
    Имя файлаЛекция Внешние устройства.docx
    ТипДокументы
    #1094224

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

    Оглавление


    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) — регистр управления, определяет режимы работы контрол­лера и содержит следующие флаги:

    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.

    Регистры таймеров Т доступны по записи и чтению (адреса 1, 3, 5 соответст­венно для T1, T2, ТЗ).

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

    На входы предделителей поступают общие для всех каналов метки времени CLK с периодом 1 мс.

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


    Рис. 5. Блок таймеров.

    Регистры управления CTR доступны для записи и чтения (адреса 2, 4, 6) и содержат следующие поля:

    • Т (разряд 5) — флаг включения таймера;

    • EI (разряд 4)— флаг разрешения формирования запроса на прерывание при переполнении таймера;

    • I/D (разряд 3) — направление счета (инкремент/декремент), при I/D = 0 таймер работает на сложение, при I/D = 1 — на вычитание;

    • k(разряды [1:2]) — коэффициент деления предделителя (от 1 до 99).

    Флаги переполнения таймеров собраны в один регистр — доступный только на чтение регистр состояния SR, имеющий адрес 0. Разряды регистра (5, 4 и 3 для Tl, T2, ТЗ соответственно) устанавливаются в 1 при переполнении со­ответствующего таймера.

    Для таймера, работающего на сложение, перепол­нение наступает при переходе его состояния из 99 999 в 0, для вычитающего таймера — переход из 0 в 99 999.

    В окне обозревателя (рис. 6) предусмотрена кнопка Сброс, нажатие кото­рой сбрасывает в 0 все регистры блока таймеров, кроме CTR, которые уста­навливаются в состояние 001000. Таким образом,:

    • все три таймера обнуляют­ся, переключаются в режим инкремента,

    • прекращается счет,

    • запрещаются прерывания,

    • сбрасываются флаги переполнения

    • и устанавливаются коэффи­циенты деления предделителей равными 01.




    Рис. 6. Окно обозревателя блока таймеров

    Программное управление режимами блока таймеров осуществляется путем записи в регистры CTR соответствующих кодов.

    Запись по адресу SR числа с 1 в третьем разряде интерпретируется блоком таймеров как команда, при­чем младшие разряды этого числа определяют код команды:

    • ххх100 — общий сброс (эквивалентна нажатию кнопки Сброс в окне обо­зревателя);

    • xxx101 — сброс флага переполнения таймера FT1;

    • ххх102 — сброс флага переполнения таймера FT2;

    • ххх103 — сброс флага переполнения таймера FT3.


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


    Модель этого простого внешнего устройства не имеет собственного обозре­вателя, содержит всего два регистра, доступных только для записи:

    • FR (адрес 0) — регистр частоты звучания (Гц);

    • LR (адрес 1) — регистр длительности звучания (мс).

    По умолчанию базовый адрес тоногенератора — 30.

    Сначала следует запи­сать в FR требуемую частоту тона в герцах, затем в LR — длительность зву­чания в миллисекундах.

    Запись числа по адресу регистра LR одновременно является командой на начало звучания.




    написать администратору сайта