Лабораторная работа №1 Клавиатура и манипулятор ПЭВМ
Введение
Лабораторные работы по дисциплине: «Периферийные устройства» выполняются студентами специальности 230101 в пятом семестре.
Цель лабораторных работ – закрепить основы и углубить знания в области дисциплины «Периферийные устройства» и в частности структуру и состав основных периферийных устройств ПЭВМ: устройства клавиатура, видеоадаптера, печатающего устройства, привода жесткого диска, модема и сканирующего устройства.
Тематика заданий на лабораторные работы, приведенная в данных методических указаниях, может быть дополнена и расширена за счет научно-исследовательских задач, решаемых на кафедре.
Нормативные ссылки
В настоящем пособии использованы ссылки на следующие стандарты:
ГОСТ 2.105-95 ЕСКД. Общие требования к текстовым документам.
ГОСТ Р 50739-95. Государственный стандарт РФ. Средства вычислительной техники. Защита от несанкционированного доступа к информации. Общие технические требования.
ГОСТ 7.1-84 СИБИД. Библиографическое описание документа. Общие требования и правила составления.
ГОСТ 7.32-2-1. СИБД. Отчет о научно-исследовательской работе. Структура и правила оформления.
ГОСТ 7.80-2000. СИБД. Библиографическая запись. Заголовок. Общие требования и правила составления.
Используемые сокращения:
ПЭВМ – Персональная Электронно-Вычислительная Машина;
ASCII - American Standart Code for Information Interchange – Американский Стандартный Код для Обмена Информацией;
BIOS – Base Intput Output System – Базовая Система Ввода Вывода;
PS/2 – Personal System – серия персональных компьютеров
CPU – Central Processor Unite – Блок Центрального Процессора;
PCI – Peripheral component interconnect — взаимосвязь периферийных компонентов — шина ввода/вывода для подключения периферийных устройств к материнской плате компьютера;
AGP – Accelerated Graphics Port - шина, функционирующая на частоте 66 МГц;
DAC – Digital analog Converter – Цифро – Аналоговый Преобразователь;
PC – Personal Computer – Персональный Компьютер;
CMOS – Complementary metal–oxide–semiconductor - комплементарная логика на транзисторах металл-оксид-полупроводник, технология построения электронных схем;
CIS сканер – Contact Image Sensor - контактный сенсор изображения;
CCD сканер - Charge-Coupled Device — специализированная аналоговая интегральная микросхема.
Лабораторная работа №1 Клавиатура и манипулятор ПЭВМ
Цель работы: изучить устройство клавиатуры, интерфейс связи с ПЭВМ и схемы связи контроллера клавиатуры и манипулятора «мышь».
Содержание работы:
1.1. Разборка, сборка клавиатуры. Описание конструкции ее изготовления.
1.2. Разборка, сборка системного блока. Описание способа подключения контроллера клавиатуры и «мыши».
1.3. Настройка, тестирование клавиатуры и «мыши» с помощью Assembler.
1.4. Определение алгоритма работы клавиатуры и «мыши».
1.5. Непосредственная работа с контроллером клавиатуры.
1.6. Контрольны вопросы.
1.7. Задание.
1.8.Содержание отчета.
1.1. Работа с клавиатурой
Клавиатура является основным средством ввода текстовой информации в компьютер, поэтому при программировании на низком уровне (на языке ассемблера) программист в первую очередь вынужден осваивать работу с клавиатурой: он должен изучить способы кодирования текстовых символов и особенности использования функций операционной системы. Если у программиста возникает потребность в работе на уровне аппаратного обеспечения, он должен также разобраться с особенностями программирования контроллера клавиатуры и контроллера прерываний.
1.2. Представление символов и управляющих кодов в памяти компьютера
Система представления символов в персональных компьютерах базируется на Американском стандартном коде для обмена информацией (American Standard Code for Information Interchange), который был введен в 1963 году и ставил в соответствие каждому символу семиразрядный двоичный код, обеспечивающий представление 128 символов. ASCII-код включал две группы символов:
• управляющие символы, используемые в коммуникационных протоколах для передачи команд периферийным устройствам;
• символы пишущей машинки — цифры, буквы и специальные знаки.
•
Управляющие символы имеют коды с номерами от 0 до lAh. К управляющим относится также символ с кодом 7Fh. Каждый управляющий символ выполняет строго определенную функцию. Функции и кодовые обозначения управляющих символов описаны в табл. 1.1. Все остальные символы относятся к алфавитно-цифровой группе (группе символов пишущей машинки).
Таблица 1.1.Управляющие символы ASCII-кода
Код символа
| Мнемоническое обозначение
| Назначение символа
| 00h
| NUL
| Пустой символ
| 01h
| SOH
| Начало заголовка (начало блока данных)
| 02h
| STX
| Начало текста
| 03h
| ETX
| Конец текста
| 04h
| EOT
| Конец передачи
| продолжение таблицы 1.1
| Код символа
| Мнемоническое обозначение
| Назначение символа
| 05h
| ENQ
| Запрос подтверждения
| 06h
| ACK
| Подтверждение
| 07h
| BEL
| Звонок (звуковой сигнал)
| 08h
| BS
| Забой (возврат на одну позицию влево)
| 09h
| HT
| Горизонтальная табуляция
| 0Ah
| LF
| Перевод строки
| 0Bh
| VT
| Вертикальная табуляция
| 0Ch
| FF
| Перевод формата (переход к новой странице)
| 0Dh
| CR
| Возврат каретки
| 0Eh
| SO
| Переход на нижний регистр
| 0Fh
| SI
| Переход на верхний регистр
| 10h
| DLE
| Завершение сеанса связи
| 11h
| DC1
| Управление устройством № 1
| 12h
| DC2
| Управление устройством № 2
| 13h
| DC3
| Управление устройством № 3
| 14h
| DC4
| Управление устройством № 4
| 15h
| NAK
| Ошибка передачи
| 16h
| SYN
| Холостой ход передатчика
| 17h
| ETB
| Конец передачи блока
| 18h
| CAN
| Отмена
| 19h
| EM
| Конец носителя данных
| 1Ah
| SUB
| Подстановка (замена символа)
| 1Bh
| ESC
| Переход (посылка сложной команды)
| 1Ch
| FS
| Разделитель файлов
| 1Dh
| GS
| Разделитель групп
| 1Eh
| RS
| Разделитель записей
| 1Fh
| US
| Разделитель элементов
| 7Fh
| DEL
| Удаление символа
|
Чтобы отобразить символы европейских алфавитов и символы псевдографики, ASCII-код был расширен до 256 символов. Это так называемая американская кодировка (кодировка IBM), которая в операционных системах корпорации Microsoft носит также название «Кодовая страница 437».
Однако по мере распространения персональных компьютеров постоянно возникала потребность в добавлении изображений новых символов, поэтому каждая страна мира сейчас имеет свою собственную кодовую страницу, а в многоязычных странах обычно применяется несколько таких страниц. Графическое представление символов расширенного ASCII-кода показано на рис. 1.1.
♀2☺☻☺☻☺☻☺☻☺☻☺☻☺☻☺☻☺☻☺○♣♫
Младшая цифра
| Старшая цифра
|
|
|
|
|
|
|
|
|
|
| A
| B
| C
| D
| E
| F
|
|
| ►
|
|
| @
| P
| `
| p
| А
| Р
| а
| ░
| └
| ╨
| р
| Ё
|
| ☺
| ◄
| !
|
| A
| Q
| a
| q
| Б
| С
| б
| ▒
| ┴
| ╤
| с
| ё
|
| ☻
| ↕
| «
|
| B
| R
| b
| r
| В
| Т
| в
| ▓
| ┬
| ╥
| т
| Є
|
| ♥
| ‼
| #
|
| C
| S
| c
| s
| Г
| У
| г
| │
| ├
| ╙
| у
| є
|
| ♦
| ¶
| $
|
| D
| T
| d
| t
| Д
| Ф
| д
| ┤
| ─
| ╘
| ф
| Ї
|
| ♣
| §
| %
|
| E
| U
| e
| u
| Е
| Х
| е
| ╡
| ┼
| ╒
| х
| ї
|
| ♠
| ▬
| &
|
| F
| V
| f
| v
| Ж
| Ц
| ж
| ╢
| ╞
| ╓
| ц
| Ў
|
| •
| ↨
| '
|
| G
| W
| g
| w
| З
| Ч
| з
| ╖
| ╟
| ╫
| ч
| ў
|
| ◘
| ↑
| (
|
| H
| X
| h
| x
| И
| Ш
| и
| ╕
| ╚
| ╪
| ш
| °
|
| ○
| ↓
| )
|
| I
| Y
| i
| y
| Й
| Щ
| й
| ╣
| ╔
| ┘
| щ
| ∙
| A
| ◙
| →
| *
| :
| J
| Z
| j
| z
| К
| Ъ
| к
| ║
| ╩
| ┌
| ъ
| ·
| B
| ♂
| ←
| +
| ;
| K
| [
| k
| {
| Л
| Ы
| л
| ╗
| ╦
| █
| ы
| √
| C
| ♀
| ∟
| ,
| <
| L
| \
| l
| |
| М
| Ь
| м
| ╝
| ╠
| ▄
| ь
| №
| D
| ♪
| ↔
| -
| =
| M
| ]
| m
| }
| Н
| Э
| н
| ╜
| ═
| ▌
| э
| ¤
| E
| ♫
| ▲
| .
| >
| N
| ^
| n
| ~
| О
| Ю
| о
| ╛
| ╬
| ▐
| ю
| ■
| F
| ☼
| ▼
| /
| ?
| O
| _
| o
| ⌂
| П
| Я
| п
| ┐
| ╧
| ▀
| я
|
| Рис.1.1. Представление символов ASCII-кода в русской кодовой странице 866
Представление символов ASCII-кода в русской кодовой таблице MS-DOS (кодовая страница 866) показано на рис. 1.1. Как видно из рисунка, символов в таблице гораздо больше, чем клавиш в алфавитно-цифровой части типовой клавиатуры (101-клавишный АТ-совместимый вариант исполнения), поэтому каждой клавише поставлено в соответствие несколько различных символов. ASCII-код, генерируемый при нажатии клавиши, определяется не только этой клавишей, но и состоянием управляющих клавиш Caps Lock и Shift, а также режимом работы драйвера клавиатуры, то есть текущим языком — русским или английским.
Кроме ASCII-кодов, для идентификации клавиш используются также скан-коды. Скан-коды в старых клавиатурах (появившихся до использования микроконтроллеров) являлись порядковыми номерами клавиш: нумерация велась сверху вниз, справа налево. С целью сохранения совместимости со старым программным обеспечением микропроцессоры современных клавиатур преобразуют действительные порядковые номера клавиш в номера, соответствующие латинской раскладке на клавиатуре IBM XT с учетом дополнительных клавиш клавиатуры IBM AT. В результате распределение номеров перестало быть строго упорядоченным. Кроме того, функции BIOS также выполняют перекодировку скан-кодов с целью упрощения анализа этих кодов в прикладных программах. Поэтому существует несколько различных видов таблиц скан-кодов:
• собственная внутренняя таблица встроенного микроконтроллера клавиатуры;
• таблица для обмена кодами между контроллером клавиатуры и специализированным клавиатурным микропроцессором системной платы;
• таблица кодов, которые клавиатурный микропроцессор передает подпрограммам BIOS;
При работе с функциями BIOS интерес представляет последняя из этих таблиц. Скан-коды BIOS для клавиш алфавитно-цифровой группы и скан-коды клавиш функциональной, дополнительной и цифровой групп приведены в таблице 1.2. Следует учитывать, что клавиши цифровой группы, расположенной с правой стороны клавиатуры, могут использоваться не только как си вольные (цифровые), но и как управляющие — в зависимости от состояния клавиши Num Lock.
Таблица 1.2.Скан-коды BIOS для клавиш алфавитно-цифровой группы
Скан-код Русский
| Режим
| Скан-код Латинский
| Режим
| Латинский
| Русский
| Латинский
| Русский
| 01h
| Esc
|
| 1Eh
| A и a
| Ф и ф
| 02h
| 1 и !
| 1 и !
| 1Fh
| S и s
| Ы и ы
| 03h
| 2 и @
| 2 и «
| 20h
| D и d
| В и в
| 04h
| 3 и #
| 3 и №
| 21h
| F и f
| А и а
| 05h
| 4 и $
| 4 и ;
| 22h
| G и g
| П и п
| 06h
| 5 и %
| 5 и %
| 23h
| H и h
| Р и р
| 07h
| 6 и ^
| 6 и :
| 24h
| J и j
| О и о
| 08h
| 7 и &
| 7 и ?
| 25h
| K и k
| Л и л
| 09h
| 8 и *
| 8 и *
| 26h
| L и l
| Д и д
| 0Ah
| 9 и (
| 9 и (
| 27h
| ; и :
| Ж и ж
| 0Bh
| 0 и )
| 0 и )
| 28h
| “ и ’
| Э и э
| 0Ch
| - и _
| - и _
| 29h
| ` и ~
| Ё и ё
| 0Dh
| = и +
| = и +
| 2Ah
| Левая клавиша Shift
| 0Eh
| Back Space
| 2Bh
| \ и |
| \ и /
| 0Fh
| Tab
|
| 2Ch
| Z и z
| Я и я
| 10h
| Q и q
| Йй
| 2Dh
| X и x
| Ч и ч
| 11h
| W и w
| Цц
| 2Eh
| C и c
| С и с
| 12h
| E и e
| Уу
| 2Fh
| V и v
| М и м
| 13h
| R и r
| Кк
| 30h
| B и b
| И и и
| 14h
| T и t
| Ее
| 31h
| N и n
| Т и т
| 15h
| Y и y
| Нн
| 32h
| M и m
| Ь и ь
| 16h
| U и u
| Гг
| 33h
| , и <
| Б и б
| 17h
| I и i
| Шш
| 34h
| . и >
| Ю и ю
| 18h
| O и o
| Щщ
| 35h
| / и ?
| . и ,
| 19h
| P и p
| Зз
| 36h
| Правая клавиша Shift
| 1Ah
| [ и {
| Хх
| 37h
| *
| 1Bh
| ] и }
| Ъъ
| 38h
| Alt
| 1Ch
| Enter
| 39h
| Пробел
| 1Dh
| Ctrl
| 3Ah
| Caps Lock
| | | | | | | |
1.3. Ввод информации с клавиатуры при помощи функций BIOS
Для ввода информации с клавиатуры можно использовать либо функции операционной системы, либо прямой опрос контроллера клавиатуры. Функции MS-DOS, используемые для ввода данных с клавиатуры непригодны для сколько-нибудь серьезной работы. Функции DOS имеют два очень серьезных недостатка. Первый недостаток заключается в том, что они не позволяют полностью реализовать возможности функциональных клавиш. Второй недостаток — клавиатурные функции DOS предназначены для работы в режиме терминала В процессе считывания символа они выполняют ряд дополнительных операций, что делает весьма неудобным их использование в любом другом, не терминальном режиме.
Функции BIOS обладают гораздо более широкими возможностями, чем функции DOS. Этих возможностей вполне достаточно для выполнения любых операций реальном режиме работы процессора. Вызов клавиатурных функций BIOS выполняется по прерыванию Int 16h.
1.4. Контроллер прерываний
Устройства ввода информации сообщают центральному процессору о поступлении новых данных с помощью сигналов прерываний. Прерывания от клавиатуры, мыши PS/2-типа и других периферийных устройств, прежде чем поступить в процессор, проходят через контроллер прерываний, где подвергаются предварительной обработке. Контроллер позволяет управлять приоритетами, прохождением сигналов и адресами векторов прерываний.
Контроллер прерываний IBM AT состоит из двух микросхем Intel 8259, включенных в режиме каскадирования (рис. 1.2). Первая микросхема была ведущей, а вторая — ведомой (ведомый контроллер подключен к входу IRQ2 ведущего). На входы IRQO, IRQ1, IRQ3-IRQ7 ведущей микросхемы и на входы IRQ8-IRQ15 ведомой поступают запросы прерываний, из которых выбирается немаскированный запрос с наивысшим приоритетом, после чего контроллер вырабатывает сигнал INTи передает в процессор вектор прерывания.
Рис. 1.2. Традиционный порядок подключения внешних устройств к контроллеру пррываний
Вектор формируется путем сложения базового значения (записанного в соответствующий регистр микросхемы) и номера линии, на которую поступил запрос (ведущей микросхеме IRQ0 соответствует линия 0, IRQ7 — линия номер 7; ведомой микросхеме IRQ8 соответствует линия 0, IRQ15 — линия 7). Базовый вектор ведущей микросхемы в реальном режиме DOS имеет значение 08h; вектор ведомой — 70h. Соответственно, ведущая схема вырабатывает вектора с номерами 08h-0Fh, ведомая — с номерами 70h-77h (Табл. 1.3). Приоритеты запросов прерывания (по убыванию) располагаются в следующем порядке: IRQ0, IRQ1, IRQ8-IRQ15, IRQ3-IRQ7.
Все последующие модели АТ-совместимых компьютеров вынуждены имитировать работу микросхем i8259 с целью сохранения совместимости со старым программным обеспечением. Большая часть возможностей указанных микросхем, к счастью для программистов, не используется в АТ-совместимых персональных компьютерах: приоритеты прерываний, поступающих от периферийных устройств, и адреса соответствующих векторов жестко зафиксированы (устанавливаются BIOS в процессе начальной загрузки).
Таблица 1.3. Аппаратные прерывания АТ – совместимых компьютеров
Прерывание
| Номер вектора
| Адрес вектора
| Источник сигнала прерывания
| IRQ0
| 08h
| 0000:0020h
| Системный таймер
| IRQ1
| 09h
| 0000:0024h
| Клавиатура
| IRQ2
| 0Ah
| 0000:0028h
| Ведомая микросхема контроллера
| IRQ3
| 0Bh
| 0000:002Ch
| Последовательный порт COM2
| IRQ4
| 0Ch
| 0000:0030h
| Последовательный порт COM1
| IRQ5
| 0Dh
| 0000:0034h
| Параллельный порт LPT2
| IRQ6
| 0Eh
| 0000:0038h
| Контроллер дисководов гибких дисков
| IRQ7
| 0Fh
| 0000:003Ch
| Параллельный порт LPT1
| IRQ8
| 70h
| 0000:01C0h
| Часы реального времени
| IRQ9
| 71h
| 0000:01C4h
| Любое устройство PnP
| IRQ10
| 72h
| 0000:01C8h
| Любое устройство PnP
| IRQ11
| 73h
| 0000:01CCh
| Любое устройство PnP
| IRQ12
| 74h
| 0000:01D0h
| Мышь PS/2 – типа
| IRQ13
| 75h
| 0000:01D4h
| Математический сопроцессор
| IRQ14
| 76h
| 0000:01D8h
| Контроллер жесткого диска №1
| IRQ15
| 77h
| 0000:01DCh
| Контроллер жесткого диска №2
|
1.5. Непосредственная работа с контроллером клавиатуры
Реальная необходимость в непосредственной работе с клавиатурой возникает в том случае, когда создается программа, которая переводит процессор из реального режима в защищенный, а затем выполняет в защищенном режиме всю дальнейшую работу. Переход в защищенный режим приводит к тому, что функции BIOS, рассчитанные на реальный режим, становятся непригодными для использования.
Для управления работой клавиатуры в машинах типа IBM AT и PS/2 использовался микроконтроллер Intel 8042. Кроме клавиатуры, этот контроллер управлял также координатным устройством, в качестве которого обычно использовалась мышь типа PS/2. С целью обеспечения совместимости нового аппаратного обеспечения со старыми программами все современные наборы микросхем, предназначенные для изготовления системных плат (так называемые чипсеты), вынужденно повторяют в своей структуре особенности контроллера.
Писать программы для клавиатурного контроллера i8042 и встроенного микропроцессора клавиатуры нет необходимости и возможности, поскольку соответствующие программы уже записаны в ПЗУ контроллеров. Поэтому клавиатурный контроллер на системной плате и микропроцессор клавиатуры могут выполнять только те операции, которые заложены в них разработчиками аппаратуры и внесены в соответствующие наборы команд. Самопроверка контроллера и программирование основных параметров его работы, а также самотестирование и программирование параметров клавиатуры (и мыши PS/2) производятся при включении компьютера и могут быть изменены с помощью прерываний BIOS, пока процессор еще не переведен из реального режима в защищенный. В защищенном режиме необходимо выполнять только два типа операций: считывание кодов нажимаемых клавиш и зажигание/гашение светодиодов на клавиатуре.
Управление работой контроллера и обмен данными с мышью и клавиатурой осуществляются при помощи трех регистров: регистра состояния, регистра команд и регистра данных. Кроме того, при поступлении информации от клавиатуры контроллер i8042 вырабатывает прерывание IRQ1, а при приеме данных от мыши — IRQ12. Интерфейсы клавиатуры и мыши аналогичны, наборы команд управления также имеют некоторое сходство. Упрощенная схема подключения к компьютеру клавиатуры и мыши типа PS/2 показана на рис. 1.3.
Регистр состояния доступен только для считывания через порт 64h. Формат регистра показан на рис. 1.4. Значение разрядов регистра следующее:
· бит 0 — признак наличия данных в выходном буфере (0 — буфер пуст, 1 — буфер заполнен);
· бит 1 — признак наличия данных во входном буфере (0 — буфер пуст, 1 — буфер заполнен);
· бит 2 — признак типа последнего общесистемного сброса (0 — сброс по включении питания, 1 — программный сброс);
· бит 3 — признак записи команды (0 — последняя операция записи являлась операцией записи данных, 1 — записи команды);
· бит 4 — состояние «замка» клавиатуры (0 — клавиатура блокирована, 1 — не блокирована);
· бит 5 — признак ошибки тайм-аута передачи в АТ-режиме (0 — нормальное завершение передачи, 1 — произошла ошибка); признак наличия данных в выходном буфере мыши в PS/2-режиме (0 — буфер пуст, 1 — буфер заполнен);
· бит 6 — признак ошибки тайм-аута приема в АТ-режиме (0 — нормальное завершение приема, 1 — произошла ошибка); общий признак ошибки тайм-аута при приеме или передаче данных в PS/2-режиме (0 — нормальное завершение операции, 1 — произошла ошибка);
· бит 7 — признак возникновения ошибки паритета при приеме или передаче данных (0 — нет ошибки, 1 — обнаружена ошибка по четности).
Рис. 1.3. Упрощенная схема подключения клавиатуры и мыши типа PS/2 к компьютеру
Рис. 1.4. Формат регистра состояния контроллера клавиатуры
Рис. 1.5. Формат регистра команд контроллера клавиатуры
Регистр команд доступен для записи через порт 64h. Формат регистра показан на рис. 1.5. Разряды регистра имеют следующее назначение:
• бит 0 — управление выдачей сигнала прерывания по готовности данных в выходном буфере клавиатуры (0 — генерация прерывания запрещена, 1 — разрешена);
• бит 1 — управление выдачей сигнала прерывания по готовности данных в выходном буфере мыши (0 — генерация прерывания запрещена, 1 — разрешена);
• бит 2 — установка признака системного сброса (значение, записанное в этот разряд, переносится в разряд 2 регистра состояния);
• бит 3 — управление функцией блокировки клавиатуры (0 — функция блокировки разрешена, 1 — функция запрещена и блокировка игнорируется);
• бит 4 — управление интерфейсом клавиатуры (0 — обмен данными с клавиатурой разрешен, 1 — запрещен);
• бит 5 — признак типа протокола передачи данных в АТ-режиме (0 — протокол IBM); управление интерфейсом мыши в PS/2-peжиме (0 — обмен данными с мышью разрешен, 1 — запрещен);
• бит 6 — преобразование скан-кодов в PC-совместимые (0 — выключено, 1 — включено); по умолчанию имеет значение 1, то есть скан-коды преобразуются в РС-совместимые;
• бит 7 — не используется (зарезервирован).
Регистр данных доступен для записи и считывания через порт 60h. В режиме считывания он служит для приема информации от клавиатуры и мыши. В режиме записи регистр данных служит для передачи команд клавиатуре, координатному устройству (мыши PS/2-типа) и клавиатурному контроллеру системной платы i8042. Какого-либо особого формата данный регистр не имеет.
Клавиатура может работать в трех различных режимах, которые отличаются друг от друга наборами скан-кодов, выдаваемых клавиатурой. Набор № 1 предназначен для компьютеров типа IBM «PS/2 30», набор №2 - для «PC/AT», «PS/2 50» и «PS/2 60», набор № 3 — для «PS/2 80». Для переключения режимов работы используется команда F0h. Однако программисты никогда не сталкиваются непосредственно с наборами кодов, выдаваемыми клавиатурой, а имеют дело с преобразованным набором, выдаваемым клавиатурным процессором системной платы.
При включении питания клавиатура устанавливается в режим № 2, причем для всех клавиш разрешена посылка кодов нажатия и отпускания, а также разрешен автоповтор. Самотестирование после включения выполняется в следующем порядке:
• включаются все индикаторы;
• тестируется встроенный микроконтроллер клавиатуры;
• тестируется оперативная память клавиатуры;
• все индикаторы выключаются;
• клавиатура выдает компьютеру результат самотестирования. Когда разрешен опрос клавиш, клавиатура передает компьютеру скан-коды, сообщающие об изменении их состояния (под изменением состояния подразумевается нажатие, длительное удержание или отпускание). Кроме того, возможна посылка следующих специализированных кодов в ответ на команду или при возникновении неисправностей.
Режим работы клавиатуры устанавливается при запуске компьютера процедурами BIOS, и после этого изменять его обычно нет необходимости. Единственная команда, которую драйвер периодически посылает клавиатуре, — команда переключения светодиодов EDh. Данная команда является ответной реакцией драйвера на нажатие клавиш Num Lock, Caps Lock и Scroll Lock.
Как уже отмечалось выше, набор скан-кодов, которые выдает клавиатурный процессор системной платы, отличается и от набора скан-кодов, которые используют процедуры BIOS. На рис. 1.6 показаны коды, присвоенные клавишам основной и функциональной групп, на рис. 1.7 — коды дополнительной клавиатуры, а на рис. 1.8 — коды цифровой клавиатуры.
Рис. 1.6. Скан-коды клавиш основной и функциональной клавиатур
Рис. 1.7. Скан-коды клавиш дополнительной клавиатуры
Рис. 1.8. Скан-коды клавиш цифровой клавиатуры
Нажатие клавиши приводит к передаче от клавиатуры к компьютеру одного символа или последовательности символов (от двух до шести). При нажатии обычных клавиш (алфавитно-цифровых или функциональных) передается только один байт, содержащий скан-код. Последовательности генерируются для клавиш, которые отсутствовали в 84-кнопочной клавиатуре XT-типа, и состоят из кодовых пар, причем каждая пара начинается с кода E0h, а во втором байте передается скан-код. Последовательность из четырех байт (двух пар) передается в том случае, если нажата дополнительная клавиша, заменяющая собой нажатие определенной последовательности обычных клавиш. Специфическая последовательность из шести байт генерируется только в одном случае — при нажатии клавиши Pause.
При отпускании клавиши клавиатура также посылает в компьютер скан-код, но старший (знаковый) разряд кода при этом устанавливается в единицу. Отпускание клавиши, выдающей пару кодов, можно отличить от нажатия по второму символу пары (первым кодом в паре по прежнему является E0h, а у скан-кода при отпускании будет установлен старший разряд). При отпускании дополнительных клавиш генерируются две пары кодов, но порядок этих пар является обратным тому, который генерируется при их нажатии, и установлены старшие разряды скан-кодов. При отпускании клавиши Pause клавиатура никакой информации в компьютер не передает.
Например, при нажатии клавиши Пробел вырабатывается код 39h, а при отпускании — код B9h. При нажатии клавиши 1 на основной клавиатуре вырабатывается код 02h, а при отпускании — код 82h; Нажатие клавиши 1 на цифровой клавиатуре порождает код 4Fh, отпускание — код CFh. При нажатии правой клавиши Ctrl вырабатывается последовательность Е0h, 1Dh, а при отпускании — последовательность E0h, 9Dh. Нажатие Insert порождает последовательность кодов E0h, 2Ah, E0h, 52h, а отпускание — последовательность E0h, D2h, E0h, AAh. Нажатие клавиши Pause приводит к выдаче последовательности Elh, lDh, 45h, Elh, 9Dh, C5h, а при отпускании данной клавиши никаких кодов не вырабатывается вообще.
Для поддержки расширенного интерфейса управления конфигурацией и питанием (Advanced Configuration and Power Interface, сокращенно ACPI) на клавиатуру были добавлены три клавши:
• Power (Выключить питание) — вырабатывает последовательность E0h, 5Eh;
• Sleep (Переключить систему в спящий режим) — вырабатывает последовательность E0h, 5Fh;
• Wake (Разбудить систему) — вырабатывает последовательность E0h, 63h.
1.6. Контрольные вопросы:
1. Что называется ASCII – кодом и на какие группы делится таблица символов ASCII – кодов?
2. Что называется скан-кодом? Перечислите основные виды таблиц скан-кодов и их предназначение.
3. Как образуются прерывания от манипулятора «мышь»?
4. Опишите принцип обмена данных между клавиатурой и конечным пользователем.
5. Какое назначение имеет регистр состояния контроллера клавиатуры, расположенного на системной плате?
6. Какое назначение имеет регистр команд контроллера клавиатуры, расположенного на системной плате?
7. Какое назначение имеет регистр данных контроллера клавиатуры, расположенного на системной плате?
8. Как происходит тестирование клавиатуры при включении компьютера?
1.7. Задание.
1. Разобрать клавиатуру. Изучить устройство и принцип работы. Составить список функциональных частей клавиатуры.
2. Подключить клавиатуру к системному блоку. Описать принцип ее подключения и определить месторасположения контроллера i8042.
3. Получить задание от преподавателя и определить последовательность символов, введенных преподавателем (по скан-коду).
4. Записать последовательность ASCII – кодов преобразованных символов из задания №3.
5. Составить алгоритм обработки сигнала контроллерами клавиатуры.
1.8. Содержание отчета:
1. Название, цель, содержание работы.
2. Задание и результат его выполнения.
3. Оформленные результаты выполненной работы. Ответы на контрольные вопросы.
4. Выводы по работе.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|