- •Сборник методических указаний к лабораторным работам
- •Эксплуатация эвм и систем
- •Зав. Кафедрой _______________________ в.С. Карпов
- •Зав. Кафедрой _______________________ в.С. Карпов содержание
- •Определение эксплуатационных характеристик эвм по статистическим данным
- •1.1.Цель и задачи работы
- •1.2.Основные теоретические положения
- •1.3 Оборудование
- •1.3.Задание на работу
- •1.4.Оформление отчета
- •1.5.Контрольные вопросы
- •Лабораторная работа №2 разработка программного обеспечения тестирования памяти
- •1.6.Цель и задачи работы
- •2.2 Основные теоретические положения
- •2.3 Оборудование
- •1.7.Задание на работу
- •1.8.Оформление отчета
- •1.9.Контрольные вопросы
- •3.3 Оборудование
- •3.1.Задание на работу
- •3.2.Оформление отчета
- •3.3.Контрольные вопросы
- •4.1.Оборудование Персональный компьютер at386 и выше, содержащий клавиатуру; компилятор языка c или TurboAssembler.
- •4.2.Задание на работу
- •4.3.Оформление отчета
- •4.4.Контрольные вопросы
- •5.3 Оборудование Персональный компьютер at386 и выше, содержащий манипулятор типа «мышь» и установленный соответствующий драйвер; компилятор языка c.
- •4.7.Задание на работу
- •4.8.Оформление отчета
- •4.9.Контрольные вопросы
- •4.12.Оборудование Персональный компьютер at386 и выше, содержащий накопитель гмд 3.5''; компилятор языка c, чистые дискеты.
- •4.13.Задание на работу
- •4.14.Оформление отчета
- •4.15.Контрольные вопросы
- •Изучение аналитических моделей надежности программного обеспечения
- •4.16.Цель и задачи работы
- •7.2 Основные теоретические положения
- •4.17.Оборудование Персональный компьютер at386 и выше; компилятор языка c, пакет программ MatLab.
- •4.18.Задание на работу
- •4.19.Оформление отчета
- •4.20.Контрольные вопросы
- •Исследование блока питания компьютера
- •4.21.Цель и задачи работы
- •4.22.Основные теоретические положения
- •8.3 Оборудование
- •4.23.Задание на работу
- •4.24.Оформление отчета
- •4.25.Контрольные вопросы
- •Инвентаризация компьютерных систем
- •4.26.Цель и задачи работы
- •4.27.Основные теоретические положения
- •1.3 Оборудование
- •4.28.Задание на работу
- •4.29.Оформление отчета
- •Библиографический список
3.3 Оборудование
Персональный компьютер класса AT и выше, содержащий клавиатуру; демонстрационная программа test_key.exe; осциллограф, измерительный переходник.
3.1.Задание на работу
Ознакомиться с теоретическими сведениями, приведенными во втором разделе, с помощью демонстрационной программы test_key.exe изучить работу схемы клавиатуры и коды, генерируемые при нажатии клавиш.
В соответствии с вариантом задания, выданным преподавателем произвести снятие осциллограмм с линий связи клавиатуры и системной платы при разных комбинациях нажатия клавиш. Для снятия осциллограммы клавиатура подключается (в выключенном состоянии!) к системному блоку через специальный переходник.
Чтобы избежать переполнения буфера ОС при многократном нажатии анализируемой клавиши, компьютер должен находится под управлением BIOS (например, в режиме настроек CMOS). В начале измеряются уровни напряжения на линиях интерфейса в состоянии ожидания.
Устойчивой осциллограммы добиваются путём непрерывной подстройки синхронизации развертки, когда клавиша (комбинация клавиш) постоянно нажата и клавиатура периодически выдает по линии KBD_DATA последовательную посылку. Желательно использовать двухлучевой осциллограф для одновременного наблюдения состояния линий KBD_DATA и KBD_CLK.
Варианты заданий даются преподавателем индивидуально и могут предусматривать снятие осциллограмм с линий клавиатуры при следующих ситуациях:
1) Нажатие символьной клавиши.
2) Нажатие управляющей клавиши
Одновременное нажатие символьной и управляющей клавиш.
3.2.Оформление отчета
Отчет должен содержать цель работы, порядок её выполнения, функциональную схему клавиатуры, схему опыта и снятые осциллограммы линий KBD_CLK и KBD_DATA, а также характерные неисправности клавиатуры со способами их устранения.
3.3.Контрольные вопросы
1) Приведите классификацию основных типов конструкций клавиатур.
2) Какова роль контроллера i8048 в управлении клавиатурой?
3) В чём заключается назначение микросхемы LS138 (рис.3.1)?
Каким способом данные передаются из клавиатуры на системную плату?
Для чего используются выводы Р23..Р25 микросхемы i8048 (рис.3.1)?
Каковы основные неисправности клавиатуры и способы их устранения?
Каким образом устраняется загрязнение контактов клавиатуры?
ЛАБОРАТОРНАЯ РАБОТА №4
РАЗРАБОТКА программного обеспечения ТЕСТИРОВАНИЯ КЛАВИАТУРЫ
4.4.1. Цель и задачи работы
Целью работы является освоение методов тестирования клавиатуры и их реализация в тестовом программном обеспечении.
4.2. Основные теоретические положения
Взаимодействие компьютера с клавиатурой
Современные персональные компьютеры типа IBM PC AT взаимодействуют с клавиатурой с помощью микропроцессора Intel 8042 [4].
Управление клавиатурой производится обращением к порту ввода-вывода 64h. Для совместимости со старыми ПЭВМ допустимо использование порта 60h [5].
Порт 64h предназначен для вывода команд и данных и для чтения состояния клавиатуры. Общая схема посылки команд клавиатуре такова:
cli ;запрет прерываний
call wait_kbd ;ожидание готовности клавиатуры
mov al,cmd_code ;код команды
out 64h,al ;вывод в порт
sti ;разрешение прерываний
Для команд, сопровождающихся байтом данных, эта схема принимает вид:
cli
call wait_kbd
mov al,cmd_code ;код команды
out 64h,al
call wait_kbd
mov al,data_value ;байт данных
out 64h,al
sti
Проверка ожидания готовности клавиатуры может иметь вид:
wait_kbd:
mov cx,2500h ;задержка порядка 10 мсек
test_kbd:
in al,64h ;читаем состояние клавиатуры
test al,2 ;проверка бита готовности
loopnz test_kbd
ret
В таблице 4.1 приведены команды контроллера клавиатуры
Таблица 4.1 Команды контроллера клавиатуры
Код команды |
Описание |
1 |
2 |
0FFh |
Сброс клавиатуры и запуск внутреннего теста |
0FЕh |
Повторить последнюю передачу |
0FDh |
Вызов прерывания IRQ1 |
0F6h |
Привести клавиатуру в исходное состояние и разрешить сканирование |
0F5h |
Привести клавиатуру в исходное состояние и запретить сканирование |
Продолжение таблицы 4.1 |
|
1 |
2 |
0F4h |
Сбросить буфер клавиатуры и начать сканирование |
0F3h |
Задать задержку и скорость ввода символов. Первоначально клавиатура начинает повторять нажатую клавишу через 0,5 сек со скоростью 10 повторов в секунду |
0EEh |
Эхо (для диагностики). Просто возвращает 0ЕЕh |
0EDh |
Управление светодиодами клавиатуры |
0DFh |
Разрешить 20-битовую адресацию |
0DDh |
Запретить 20-битовую адресацию |
0D1h |
Запись в порт вывода 8042 |
0D0h |
Чтение порта вывода 8042 |
0C0h |
Чтение порта ввода 8042 |
0AEh |
Разрешение клавиатуры |
0ADh |
Запрещение клавиатуры |
0ACh |
Чтение ОЗУ контроллера |
0ABh |
Тест синхронизации и данных |
0AAh |
Внутренний тест клавиатуры |
В команде 0F3h вы можете изменить параметры, послав байт данных следующего формата (рис.4.1) :
Количество повторов в команде 0F3h задается таблицей 4.2.
Таблица 4.2 Скорости передачи символов
-
Конст.
Скорость
Конст.
Скорость
Конст.
Скорость
00h
30.0
0Bh
10.9
16h
4.3
01h
26.7
0Ch
10.0
17h
4.0
02h
24.0
0Dh
9.2
18h
3.7
03h
21.8
0Eh
8.6
19h
3.3
04h
20.0
0Fh
8.0
1Ah
3.0
05h
18.5
10h
7.5
1Bh
2.7
06h
17.1
11h
6.7
1Ch
2.5
07h
16.0
12h
6.0
1Dh
2.3
08h
15.0
13h
5.5
1Eh
2.1
09h
13.3
14h
5.0
1Fh
2.0
0Ah
12.0
15h
4.6
Для включения или выключения светодиодов в команде 0EDh необходимо послать байт вида (рис. 4.2)
Программирование портов контроллера 8042
Для записи в выходной порт необходимо:
– ввести команду 01h (следующий байт – значащий) по адресу 64h.
– ввести нужное значение данных для выходного порта по адресу 60h.
Чтобы прочитать значение выходного порта 8042, нужно:
– ввести команду 00h (передать текущие значения выходного порта в выходной буфер 8042) по адресу 64h.
– прочитать выходной буфер 8042 (60h).
Перед выдачей команд и данных в порты 60h и 64h программа должна проверить, чтобы входной буфер i8042 был пуст.
Чтобы прочитать значение входного порта i8042, нужно:
– ввести команду C0h (передать текущие значения входного порта в выходной буфер 8042) по адресу 64h.
– прочитать выходной буфер i8042 (адрес порта 60h).
Чтобы прочитать значение контрольного порта TEST 8042, необходимо:
– вести команду E0h (передать текущие значения контрольного порта в выходной буфер 8042) по адресу 64h.
– прочитать выходной буфер 8042 (адрес порта 60h).
Контроллер 8042 программируется в адресном пространстве портов 60h и 64h. Перед записью команды или данных в порты 60 или 64 в регистре состояния 8042 должен быть установлен указатель «входной буфер пуст». Перед чтением данных из порта 60 необходимо проверить регистр состояния 8042, который должен указывать состояние «выходной буфер полон».
Для чтения данных из выходного буфера 8042 используется команда IN микропроцессора. Данные в выходном буфере – это данные от клавиатуры, если только 8042 не получил определенную команду, например 20h – читать байт команды.
Для передачи данных на клавиатуру используется команда OUT, если только 8042 не получил многобайтовую команду, например 60h – записать байт команды. Чтобы выдать на клавиатуру многобайтовую команду, необходимо ввести первый командный байт в порт 64, а второй командный байт – в порт 60.
Для чтения состояния 8042 и клавиатуры используется команда IN (ввод с порта 64), а чтобы дать команду на 8042, используется команда OUT (вывод в порт 64). Запись по этому адресу указывает, что следующий байт, записанный в порт 60, – команда. Большинство команд записываются за один шаг. Однако для записи некоторых команд требуется второй шаг, например последовательное чтение или запись регистра 8042.
Пример программирования 8042:
in al, 64h ; прочитать регистр состояния 8042
out 64h, al ; вывести команду из AL на 8042
in al, 60h ; прочитать данные клавиатуры
out 60h, al ; вывести данные из AL на клавиатуру
Перед отсылкой команд и данных в порты 64 и 60 программа должна предварительно проконтролировать отсутствие данных во входном буфере 8042. Состояние 8042 получается чтением порта 64.
Пример программы показывает, как проверить состояние светодиодных индикаторов клавиатуры в рамках обработчика прерываний клавиатуры. Программа не указывает, как обрабатывать две следующие сбойные ситуации:
1) тайм-аут в случае, если входной буфер клавиатуры всегда полон,
2) состояние, когда не приходит подтверждение обслуживания (ACK).
Необходимо использовать следующие шаги:
1) убедиться в том, что входной буфер 8042 пуст,
2) вывести команду ADh на 8042 (порт 64) для запрещения интерфейса клавиатуры,
3) прочитать код сканирования в порту 60,
4) дождаться, пока входной буфер 8042 станет пустым
5) выдать команду EDh на клавиатуру (порт 60)
6) дождаться, пока не будет получено ACK от клавиатуры (порт 60),
7) когда входной буфер 8042 станет пустым, вывести байт конфигурации,
8) дождаться, пока будет получен второй ACK,
9) когда входной буфер станет пустым, выдать команду AEh на 8042.