Скачать 1.39 Mb.
|
ВВЕДЕНИЕ В 2006 году автором было издано учебное пособие «Периферийные устройства вычислительных систем», в котором отражались вопросы: 1) роли и места ПУ в вычислительных системах; 2) организации обмена данными в ЭВМ; 3) назначения, принцип действия, структуры и программирования последовательного и параллельного интерфейсов; 4) построения шин PCI и USB; 5) подключения ПУ к ЭВМ посредством указанных интерфейсов и шин. В это пособие не вошли материалы, посвящённые конкретным ПУ, таким как: клавиатура, принтеры, видеосистемы, внешние запоминающие устройства на магнитных и оптических дисках, интерфейсы для их подключения и ряд сопутствующих вопросов, отражающих проблему повышения надёжности этих устройств (“холодный” и “горячий” ремонт накопителей, RAID-массивы и т.д.). Данная работа «ИНТЕРФЕЙСЫ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ» (Периферийные устройства. Часть 2) предназначена для восполнения этого пробела. 1. Клавиатура 1.1. Структурная схема клавиатуры AT Главным устройством ввода большинства компьютерных систем является клавиатура. Вся клавиатура IBM для больших ЭВМ и для микро-ЭВМ PC 3270 реализуется по емкостной технологии. Механика и электроника емкостной клавиатуры сложна и соответственно дорога. Более дешевой является жестко-контактная клавиатура, но она не так долговечна как емкостная. IBM разработала конструкцию клавиатуры, позволяющую взаимодействовать с ПК без использования соединительных проводов. Здесь используется ИК-линия связи. Структурная схема клавиатуры AT приведена на рис. 1.1а, а фрагмент её матрицы на рис. 1.1б. Алгоритм работы может быть кратко описан в следующем виде: процессор клавиатуры сканирует матрицу клавиатуры методом «бегущей единицы» и выдает скэн-код, зависящий от нажатой клавиши, в буферный регистр контроллера по последовательному интерфейсу. Данные передаются по 11 бит, причем восемь из них собственно данные, а остальные - синхронизирующие и управляющие. Кроме того, процессор клавиатуры определяет продолжительность нажатия и может обработать даже одновременное нажатие нескольких клавиш. Рис. 1.1а. Структурная схема клавиатуры AT В клавиатуре установлен буфер емкостью 16 байт, в который заносятся данные при слишком быстрых или одновременных нажатиях. Затем эти данные в соответствующей последовательности передаются в систему. Обычно при нажатии клавиш возникает эффект дребезжания, т.е. контакт устанавливается не сразу, а после нескольких кратковременных замыканий и размыканий. Рис. 1.1б. Фрагмент матрицы клавиатуры Процессор, установленный в клавиатуре, должен подавлять это дребезжание и отличать его от двух последовательных нажатий одной и той же клавиши. Для приема и передачи данных между клавиатурой и компьютером используются линии DATA и CLOCK. Передача данных из клавиатуры производится в синхронном последовательном коде (рис. 1.2):
Рис. 1.2. Временная диаграмма передачи данных из клавиатуры Частота импульсов на линии Clock составляет 10 - 20 кГц. Данные действительны в момент перепада 1-0 на линии Clock. Линии Clock и Data являются двунаправленными с резистивной нагрузкой и могут непосредственно соединяться с выводами портов микроконтроллера. По тем же линиям Clock и Data происходит передача команд и данных из контроллера в клавиатуру. Команды клавиатуры служат для управления режимом работы, для запроса повторной передачи, инициализации и диагностики. В AT можно управлять клавиатурой, при этом можно изменять частоту повторения кода нажатой клавиши и задержку перехода в режим повторения. По умолчанию частота повторения равна 10 Гц. Задержка равна 0.5 с. По сигналу ЗПр1 (запрос прерывания 1) процессор переходит к п/п обработки прерываний Int 9h. Американский стандарт расположения клавиш – QWERTY, но существуют и другие варианты расположения клавиш. Скэн-код - (порядковый номер клавиши) изображается однобайтовым числом. Он выдается в буферный регистр из регистра сдвига интерфейса клавиатуры, при этом формируется сигнал прерывания клавиатуры IRQ1. Процессор по этому запросу переходит на выполнение процедуры прерывания , которая анализирует скэн-код (рис.1.3): 1) если это скэн-код переключателей CAPS/Lock; Num Lock; Scroll Lock или клавиш сдвига, то изменение статуса записывается в баты статуса в память; 2) во всех остальных случаях скэн-код транслируется в ASCII-код или расширенный код при условии, что он подается при нажатии клавиши (в противном случае он отбрасывается), а затем записывается в кольцевой буфер, находящийся в системной области памяти. Рис. 1.3. Преобразование скэн-кода процедурой прерывания Int 9h Статус хранится в младших адресах памяти в ячейках 417h 418h. Нажали клавишу Shift, ROM-BIOS устанавливает в этих байтах определенный бит. Как только ROM-BIOS получает скэн-код возврата клавиши Shift, она переключает разряд состояния назад. 1.2. Типы кодов клавиатуры Имеются два типа кодов символов: коды ASCII и расширенные коды. 1.2.1. Коды ASCII - байтовые числа, соответствующие расширенному набору кодов ASCII для IBM PC. В него входят: символы пишущей машинки - 48 шт; 32 управляющих кода, которые используются для передачи команд ПУ и не выводятся на экран дисплея, однако каждый из них имеет соответствующий символ, который может быть выведен на дисплей с использованием прямой адресации дисплейной памяти. 1.2.2. Расширенные коды - этот набор кодов присвоен клавишам или комбинациям клавиш, которые не имеют представляющие их символы ASCII: функциональные клавиши; комбинации с клавишей Alt и т.д. 1.2.3. Дополнительные коды ASCII Дополнительные коды ASCII можно получить при прямом вводе с клавиатуры, который осуществляется путем ввода десятичного кода символа ASCII с дополнительной цифровой клавиатуры, находящейся справа, при нажатой клавише Alt. [Alt - числона дополнительной клавиатуре]. Этот метод позволяет вводить любые коды ASCII от CHR (1)-CHR (255). Единственный код, который нельзя ввести напрямую, это CHR (0), так как он является префиксным. 1.3. Форматы данных клавиатуры После того, как действие клавиатуры оттранслировано, оно записывается в пару байтов в буфере ROM-BIOS. Младший из этих байтов мы назовем главным байтом, а старший - вспомогательным. 1.3.1. Клавиши ASCII
1.3.2. Специальные клавиши
Существует несколько комбинаций клавиш для выполнения специальных функций, они не генерируют скэн-коды это: ; ; .
Нажимаем на клавишу и держим ее больше 0.5 сек, тогда автоматически будет генерироваться скэн-код этой клавиши с частотой 10 раз в сек., причем только скэн-код нажатия ее. Это дает возможность в драйвере прерывания 9 упростить алгоритм распознавания: 1) нажатия клавиши (одиночное), 2) повторение автоматическое. Если повторение автоматическое, то:
Примером повторяющихся клавиш являются Shift (левый) и Shift (правый). ROM-BIOS транслирует эти повторяющиеся клавиши в одни и те же коды символов ASCII. В случае, если это имеет значение, ROM-BIOS может сообщать нашей программе и разницу между ними. Это делается по скэн-коду, который находится в старшем байте. Что касается двух клавиш Shift, то каждая из них устанавливает в байте состояния регистра свой разряд. По этим разрядам можно определить нажатую клавишу. 1.4. Процедуры ОС для работы с клавиатурой Операционная система позволяет выполнять различные процедуры прерывания INT 21h для чтения кодов из буфера клавиатуры, включая средства для получения сразу целой строки, причём номер процедуры задаётся в регистре AH: AH=1 - ввод символа с клавиатуры с эхом на дисплей; AH=7 - ввод символа с клавиатуры без эха и без проверки Ctrl+Break; AH=8 - ввод символа с клавиатуры без эха с проверкой Ctrl+Break; AH=А - ввод с клавиатуры с буферизацией; AH=В - проверка наличия ввода с клавиатуры; AH=С - очистка буфера ввода с клавиатуры; AH=6, DL=FFh - ввод символа с клавиатуры без ожидания.
Алгоритм прерывания клавиатуры Int 9h представлен на рис. 1.4. Рис. 1.4. Алгоритм прерывания клавиатуры Int 9h
Операции с клавиатурой и набор данных клавиатуры, с которыми работает ROM-BIOS, используют область данных в младших адресах памяти с 417h-472h, 0040:0017-0040:0072, а также ячейки 412h и 488h (табл. 1.1). Таблица 1.1
1.5. Буфер клавиатуры На рис. 1.5 изображена структура кольцевого буфера клавиатуры, расположенного в области данных BIOS. Он содержит 32 байта, причём каждому нажатию соответствуют 2 байта в буфере. Например, если была нажата литера, то чётный байт содержит ASCII-код, а нечётный байт - скэн-код. Если была нажата дополнительная клавиша, то чётный байт содержит ASCII-код, а нечётный байт содержит 0. Если была нажата функциональная клавиша, то чётный байт содержит 0, а нечётный байт - ASCII-код. Кольцевой буфер клавиатуры организован как очередь, поэтому он имеет указатель на голову HP и на хвост TP. Каждый размером в 2 байта. На рис. 1.6 приведены блок-схемы алгоритмов записи и считывания в/из кольцевого буфера. Они показывают, что запись осуществляется программой ROM-BIOS, управляющей TP (указателем “хвоста”), а считывание программой Int_21h, управляющей HP (указателем “головы”). Рис. 1.5. Кольцевой буфер клавиатуры Рис. 1.6. Блок-схемы алгоритмов записи и считывания в/из кольцевого буфера Состояния буфера определяются следующими условиями: 1. Буфер пустой, если - (НР)=(ТР) 2. Буфер полон, если: а) (НР)=(ТР)+2 или (ТР)=(НР)-2 во всех случаях, за исключением случая; б) (НР)=30 (1Е), когда (ТР)=60 (3С). Для инициализации буфера необходимо выполнить условие (ТР)=(НР). 1.6. USB клавиатура Клавиатура ПК фактически представляет собой небольшой компьютер, связанный с основной системой одним из двух способов: с помощью стандартного разъема клавиатуры и специального последовательного канала передачи данных; через порт USB. Клавиатура, подключенная к порту USB, работает практически так же, как и при подключении к традиционному порту DIN или mini-DIN. Микросхемы контроллера, установленные в клавиатуре, используются для получения и интерпретации данных перед тем, как они будут переданы через порт USB в систему. Некоторые микросхемы включают в себя логическую часть концентратора USB, что позволяет клавиатуре работать непосредственно в качестве концентратора USB. При получении данных от клавиатуры порт USB передает их на 8042 совместимый контроллер, который обрабатывает данные так же, как и любую другую информацию клавиатуры. Описанный процесс осуществляется уже после загрузки Windows. Но что же происходит в том случае, если пользователю приходится обращаться к клавиатуре при работе в командной строке или при конфигурировании системной BIOS? Как уже отмечалось, для работы с клавиатурой USB в режиме MS DOS необходимо осуществить поддержку технологии USB Legacy в базовой системе ввода-вывода. BIOS, поддерживающая USB Legacy, позволяет выполнить следующие задачи: 1) конфигурирование главного контроллера; 2) подключение клавиатуры и мыши USB; 3) настройка планировщика главного контроллера; 4) направление данных, вводимых с клавиатуры или мыши USB, на контроллер клавиатуры 8042. После загрузки системы драйвер (главного контроллера USB) берет управление клавиатурой на себя, отправляя команду StopBIOS подпрограмме BIOS, которая непосредственно “руководит” клавиатурой. При перезагрузке компьютера в режиме MS DOS главный контроллер USB отправляет команду StartBIOS для повторного запуска той же подпрограммы BIOS. Клавиатура USB, начиная с того момента, как контроллер клавиатуры 8042 принимает отправленные сигналы, работает аналогично стандартным клавиатурам. При этом управление клавиатурой осуществляется на уровне BIOS (параметры BIOS, необходимые для работы с клавиатурой USB, должны быть корректно заданы). Как уже отмечалось, в некоторых случаях для обеспечения соответствующей поддержки клавиатуры USB может понадобиться обновленная версия BIOS. Кроме этого, используемые наборы микросхем системной логики должны поддерживать режим USB Legacy. 1.7. Примеры программирования Рассмотрим примеры 2-х программ: 1. Очистка буфера клавиатуры Средний уровень: ; очистка буфера перед ожиданием нажатия клавиши MOV AH, 0CH ; очистка MOV AL, 1 ; ввод символа с эхом на дисплей INT 21H ; чистим буфер, ждем ввода. Низкий уровень: ; выравниваем значения указателей на голову и хвост CLT ; запрещаем прерывания SUB AX, AX ; обнуляем АХ MOV ES, AX ; добавочный сегмент с начала памяти MOV AL, ES:[41Ah] ; в AL посылаем указатель на голову буфера MOV ES:[41Ch], AL ; посылаем его в указатель хвоста STI ; разрешение прерывания. 2. Ожидание ввода символа без вывода на экран Средний уровень: ; получаем введенный символ MOV AH, 7 ; номер функции INT 21H ; ожидаем ввод символа CMP AL, 0 ; проверка на расширенный код JE EXT_COD ; если да, то на процедуру EXT_COD, иначе – код ;символа в AL. ; процедура обработки расширенных кодов: EXT_COD : INT 21H ; берем второй байт кода CMP AL, 75 ; проверяем на JNE C_R ; если нет, то следующая проверка JMP CUR_LEFT ; если да, то на процедуру C_R: CMP AL, 77 ; сравниваем дальше и т.д. ;Сводная таблица расширенных кодов: Значение второго байта: 75 77 79 END Контрольные вопросы
|
Библиографический указатель книг, поступивших в библиотеку Авдеев В. А. Периферийные устройства. Интерфейсы, схемотехника, программирование [Электронный ресурс] : учебное пособие / Авдеев... |
Учебное пособие рпк «Политехник» Гринчук Ф. Ф., Хавроничев С. В. Комплектные распределительные устройства напряжением 610 кВ. Часть II: Учеб пособие / Воггту, Волгоград,... |
||
Учебное пособие рпк «Политехник» Гринчук Ф. Ф., Хавроничев С. В. Комплектные распределительные устройства напряжением 610 кВ. Часть I: Учеб пособие / Воггту, Волгоград,... |
Учебное пособие Иркутск 2006 Учебное пособие предназначено для студентов III v курсов специальности «Технология художественной обработки материалов» |
||
Тема управление ресурсами вычислительных систем Цель темы: раскрыть принципы функционирования современных операционных систем по управлению ресурсами вычислительных систем |
Учебное пособие Казань 2005 удк 65. 01 (075. 8) Ббк 65. 29 Б 69 Бурганова... В текст пособия введены программа дисциплины «Теория управления», материалы по организации самостоятельной работы студентов, включая... |
||
Учебное пособие "Архитектуры графических систем" машинная графика... Назначение курса обучение машинной графике студентов физико-технического профиля. Курс ориентирован на две основные категории будущих... |
Учебное пособие Челябинск 2006 Этому способствуют контрольные вопросы и тестовые задания. Дополнительная литература и источники, перечень которых находится в прилагаемой... |
||
Материально-техническое обеспечение кабинета №6 по профессии «Оператор... Материально-техническое обеспечение кабинета №6 по профессии «Оператор электронно-вычислительных и вычислительных машин» |
Современные т ех нологии обучения: теория и практика учебное пособие Современные технологии обучения: теория и практика: Учебное пособие / А. О. Блинов, Т. Н. Парамонова, Е. Н. Шереметьева, Г. В. Погодина.... |
||
Интерфейсы и периферийные устройства 12 Семиконтактный разъем на задней панели дефектоскопа предназначен для двунаправленного интерфейса rs-232. Он служит для передачи данных... |
Учебное пособие Москва 2012 год Настоящее учебное пособие предназначено... Учебное пособие предназначено для изучения и проведения практических занятий по дисциплинам «Бизнес планирование транспортных предприятий»,... |
||
Учебное пособие Москва 2012 год Настоящее учебное пособие предназначено... Учебное пособие предназначено для изучения и проведения практических занятий по дисциплинам «Бизнес планирование транспортных предприятий»,... |
Учебное пособие содержит ответы на вопросы Государственного Образовательного... Информационный менеджмент: ответы на вопросы государственного стандарта. Часть Пособие для самостоятельной работы студентов. – Кафедра... |
||
Методические указания к расчетно-графическим заданиям по учебной... Целью ргз является закрепление и лучшее усвоение теоретического материала. Предлагаемые задания направлены на выявление архитектурных... |
Учебное пособие к практическим занятиям по курсу «Фармацевтическое товароведение» Учебное пособие предназначено для подготовки студентов к лабораторно-практическим занятиям и включает название темы, цель занятия,... |
Поиск |