Лекция №5
Тестирование внутренних контроллеров ПК
К внутренним контроллерам ПК относятся: таймер, ПДП (DMA), контроллер прерываний (аппаратных), COM и LPT порты и др. (адаптеры видео, звука, сканирования, компакт дисков).
Таймер
Системный таймер 8253/8254 – это 3-х канальные программируемые счетчики, которые предназначены для:
· 0-й канал – генерация прерывания от системных часов;
· 1-й канал – генерация запросов на регенерацию памяти;
· 2-й канал – генерация звуковых сигналов.
Внутренние счетчики каналов 16-ти разрядные (режим -1), но общение с ними возможно только по 8 бит. Первым передается младший байт, а вторым – старший. Входная частота всех каналов – 1,19 МГц.
Порт 43Н является управляющим регистром для всех каналов. Через него задаются режимы работы всех 3-х каналов.
Обращение к каналам:
0-й канал: через 40h порт;
1-й канал: через 41h порт;
2-й канал: через 42h порт.
Рекомендуется 0-й и 1-й каналы не останавливать на длительное время. Для тестирования это обязательная рекомендация.
Исчерпывающее тестирование 16-ти разрядного счетчика требует больших временных затрат. Кроме того, чтение содержимого счетчика за 2 такта является моментом, когда время обнаружения тркбуемого кода (все "0", все "1", чередование "0" и "1") может быть весьма длительным.
Основной алгоритм программы POST – это чтение "на лету" 5-ти младших бит счетчика.
Для установки режима "на лету" для 0-го канала в 43h порт пишется 0, для первого канала – 40h, для второго – 80h.
Алгоритм тестирования таймера
1. Сохранить содержимое всех портов таймера.
2. Установить номер канала и режим чтения "на лету" (запись в порт 43h).
3. В цикле выполняется опрос 40h/41h/42h портов на состояние К0, К1, К2.
4. И так для всех портов и всех констант.
5. При выполнении каждого цикла фиксировать номер канала, тип константы и время выполнения.
6. Зафиксировать окончание теста.
7. Восстановить содержимое требуемых портов.
Контроллер прямого доступа к памяти – ПДП(DMA)
В ПК стоят 2 контроллера 8237А.
В ПДП есть три группы регистров:
1. страниц;
2. адреса;
3. счетчика.
Каналов обычно 8: 4 однобайтных и 4 двухбайтных.
Обмен с регистрами выполняется только побайтно. Для работы с 16-ю разрядами используется триггер младший/старший байт. По сбросу 8237А или записью любого байта по адресу 0СН/0DH (первый/второй контроллеры) триггер устанавливается для работы с младшими байтами, а после этого со старшими (после обращения).
Пример алгоритма тестирования регистров ПДП:
1. сохранение содержимого регистра;
2. запись в регистр константы тестирования (К0, К1, К2);
3. чтение содержимого регистра со сравнением и вывод результата (адрес регистра, тип константы);
4. восстановление содержимого регистра.
И так для всех выбранных регистров.
2-й метод тестирования ПДП – это проверка выполнения пересылки заготовленного файла по одному из каналов между ОЗУ и внешним устройством (FD).
Контроллер прерываний 8259А
Два контроллера 8259А предназначены для обслуживания аппаратных прерываний от устройств ПК (IRQ0 - IRQ15). Каждое устройство подключается к своему входу порта 21Н/А1Н (первый и второй контроллеры, соединены каскадом). Разрешенный уровень прерываний – это “0”. Сброс или инициализация контроллера – это запись числа 20Н в порт 20Н или А0Н.
Пример алгоритма тестирования:
1. Определение состояния порта 21Н (А1Н), запоминание этого состояния;
2. Установка в 0/1 соответствующего разряда порта 21Н (А1Н);
3. Чтение со сравнением;
4. Восстановление и инициализация.
COM-порты
Асинхронный универсальный приемопередатчик (UART) 8250, 16450, 16550 предназначен для асинхронного двунаправленного обмена информацией с использованием протокола RS-232C. Протокол определяет назначение регистров, таблиц, 9- и 25-контактных разъемов (DB9, DB25), форму сигналов и назначение бит в регистрах и сигнале.
Длина – 15 м, скорость – 20 Кбит/с
Длина – 12 м, скорость – 10 Мбит/с; длина – 1000 м, скорость – 100 Кбит/с
UART имеет 10 программируемых однобайтных регистров, которые задают:
1. скорость передачи (от 2-х до 115500 бод);
2. длину передаваемого слова (от 5-ти до 8-ми бит);
3. вид контроля по паритету (четность, нечетность, без контроля);
4. количество стоп-битов (1-2);
5. работа с прерываниями (включена/отключена);
6. режим для самотестирования (программа соединяет выход COM-порта со входом);
7. работа с модемом;
8. состояние линий связи.
Обобщенный алгоритм тестирования
1. Определяется наличие COM портов в ПК. По адресам 40h:0 с шагом 2 по смещению читается слово (для СОМ1 – 03F8h, для СОМ - 02F8h) из памяти. Если в памяти 0, СОМ порт отсутствует.
2. Выполняется перебор различных скоростей обмена.
3. Устанавливаются различные типы контроля.
4. Устанавливаются различные длины слов.
5. Аппаратно или программно соединяется выход COM-порта со входом .
6. Заготавливается тестовая строка (тестовый файл)
7. Для различных значений пунктов 1, 2, 3 выполнить пересылку заготовленной тестовой строки (тестового файла) с помощью адаптера самому себе.
8. Выполнить сравнение, вывести результаты (время теста, типы установок пунктов 1, 2, 3).
Это выполнить с аппаратными прерываниями и без них.
LPT порт
Line Printer (LPT) – построчный принтер.
Адаптер параллельного интерфейса в основном состоит из набора регистров.
Адреса регистров:
1. Базовый порт (03F8h, 02F8h) – регистр данных. Наличие LPT порта устанавливается чтением памяти по адресам 40h:08h (LPT – 03F8h), 40h:0Ah (LPT – 02F8h).
2. База + 1 – регистр состояния.
3. База +2 – регистр управления.
Это адресация для SPP порта.
Расширение: стандарт IEEE1284 – 1994 на SPP, EPP, ECP.
Пример алгоритма тестирования
1. Определение наличия адаптеров.
2. Запись – чтение К0, К1, К2 в базовый порт.
3. Состояние драйвера для передачи на принтер.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.