Читайте также:
|
|
1. БВВ Нарасимха Махарадж «Как победить Кали»
2. Прабхавишну Свами «Чайтанйа Чаритамрита»
3. Чайтанйа Чандра Чаран дас «Семейная жизнь и
миссия Шрилы Прабхупады»
vkdas@mail.ru
Лекция №6
Тестирование внешних контроллеров.
Клавиатура.
Унифицированное устройство со стандартным разъемом и последовательным интерфейсом связи с системной платой. Клавиатура содержит внутренний контроллер (микроЭВМ 8042), который соединен с аналогичным контроллером 8048 на системной плате. 8042 сканирует матрицу клавиш, управляет индикаторами, выполняет внутреннюю диагностику (2 встроенных теста) и связь с системной платой. Используется расширенная клавиатура AT от 101 и больше клавиш.
Центральный процессор через 60h порт управляет 8042. Перед посылкой команды в 8042 надо убедиться в готовности контроллера (первый бит=0 в порту 64h). Клавиатура работает с девятым прерыванием BIOS. Имеет 2 байт кода основных клавиш: ASCII- и скан- код. 9-е прерывание записывает ASCII-код нажатой клавиши в младший байт буфера клавиатуры, а в старший - скан-код.
Действия по тестированию клавиатуры.
1. Создать массивы известных ASCII- и скан-кодов (тип – байт).
2. В режиме диалога с подсказками нажать требуемые клавиши и
выполнить сравнение считанного кода с элементом массива.
3. Проверка светодиодов на включение - выключение (Num-, Caps-,
Scroll-Lock).
4. Проверка выполнения команд 8042, 8048, встроенных тестов.
Шаги выполнения алгоритмов.
1. Готовность клавиатуры. В цикле опрос первого бита 64h порта. Если
0,- клавиатура готова к приему команды. Port[$64] and $02=0.
2. Наличие ошибки. После определения готовности выполняется
проверка: Port[$64] and $Е0 ¹ 0 - ошибка.
3. Чтение буфера клавиатуры. В цикле определяется неравенство головы
и хвоста буфера: mem[$40:$ 1С] ¹ mem[$40:$lA]. Если неравенство
выполнилось, читаем ASCII-код из буфера памяти по адресу
mem[$40:mem[$40:$lA]] и скан-код по адресу mem[$40:mem[$40:$lA]+l] и сравнить с эталоном из массива.
4. Чтение скан-кода через 60h порт:
· задержка ~ 2000 мс;
· первое чтение 60h порта;
· в цикле выполняется второе чтение 60h порта до тех пор, пока их
значения не совпадут;
· вывод скан-кода как второго считанного байта.
5. Чтение с помощью 16h прерывания. Имеет 2 подфункции: 0 и 10h.
Запуск 0-й подфункции: в регистр АН загружается "0", вызывается 16h
прерывание. Выходные параметры: AL- ASCII код; АН - скан код.
6. Проверка команд 8042:
· в порт 64h загружается команда (например, FFh или ABh);
· задержка порядка 10000 мс;
· проверка готовности и ошибок;
· проверка правильности выполнения команды - вывод результата;
· сброс команды (в 64h порт записывается AЕh).
7. Проверка команд 8048:
· готовность;
· в 60h порт записывается команда(ЕЕh);
· задержка» 2000мс;
· ошибка;
· чтение 60h порта (при команде EEh ответ должен быть EEh);
· сброс.
8. Светодиоды:
· в 60h порт посылается команда EDh;
· задержка;
· в 60h порт посылается одна из 3 команд включения светодиодов
(1 - Scroll, 2 - Num, 4 - Caps);
· в 60h порт посылается команда EDh;
· задержка;
· в 60h порт засылается 0 - выключение любого светодиода.
Дата добавления: 2014-12-18; просмотров: 23 | Поможем написать вашу работу | Нарушение авторских прав |
<== предыдущая лекция | | | следующая лекция ==> |
Лекции в МР-3 | | | Организация сетей. |