Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!Ответы по аппаратке.doc
Скачиваний:
2
Добавлен:
19.09.2019
Размер:
877.06 Кб
Скачать
  1. Системний порт івм рс. Системний таймер. Канал керування звуком. Інтерфейс клавіатури. Батарейна пам'ять і годинник cmos.

Системный порт PC/AT

Восьмибитный системный порт с адресом 61h выполняет следующие функции: ш управление звуком, сохранившее полную совместимость с XT; » разрешение и идентификация источников NMI (в этом месте программ­ную модель XT «посмели» изменить, но это изменение затрагивает неболь­шое количество сугубо системных программ).

Старшие 4 бита порта допускают только чтение (R), младшие 4 бита — чте­ние и запись (R/W).

Назначение бит системного порта AT (061h):

ш бит 7 R — РСК — ошибка четности ОЗУ или сигнал SERPJ на шине PCI;

т бит 6 R — IOCHK — ошибка контроля на шине ISA (сигнал ЮСНК#);

ш бит 5 R — Т20 — выход 2 счетчика 8254;

ш бит 4 R — RFD — регенерация памяти;

» бит 3 R/W — EIC — разрешение контроля шины ISA;

т бит 2 R/W — ERP — разрешение контроля ОЗУ и сигнала SERR# шины PCI;

ш бит 1 R/W — SPK — управление звуком;

« бит 0 R/W - T2G - вход GATE 2 счетчика 8254.

В PC/XT применялась микросхема трехканального интерфейса ввода-выво­да i8255, располагавшаяся в адресах портов 60-63h и имевшая следующее на­значение:

ш чтение скан-кодов клавиатуры;

ш управление звуком;

ш разрешение и идентификация источников NMI;

ш чтение байта конфигурации.

Системный таймер (8253/8254)

Во всех моделях PC используется трехканальный счетчик-таймер, выполняю­щий следующие функции:

« генерацию прерываний от системных часов, вызывающих инкремент счетчика системного времени в ячейке 40:006Е BIOS Data Area; ш генерацию запросов на регенерацию памяти; * генерацию звуковых сигналов.

В качестве счетчиков-таймеров в XT применялась микросхема i8253, а в AT — более быстродействующая i8254, которая с процессорами 80286 могла работать без тактов ожидания. На современных системных платах те же функции берет на себя чипсет, сохраняя программную совместимость с 8253/8254. Микросхемы 8253 и 8254 представляют собой трехканальные программируемые счетчики-таймеры, функционально почти совпадающие, но имеющие различающееся быстродействие (со стороны системной шины) и назначение выводов. Внутренние счетчики мик­росхемы имеют разрядность 16 бит, но общение с ними возможно только 8-бит­ными операциями. При этом можно задавать значение только младшего байта счет­чика (LSB), только старшего (MSB) или обоих (LSB/MSB), причем сначала пере­дается младший, а потом старший байт. Программирование- микросхемы осуще­ствляется записью байт в управляющий регистр по отдельности для каждого ка­нала. Назначение регистров счетчиков-таймеров приведено в табл. 3.4. Все кана­лы работают в режиме генерации импульсов, в канале 2 используется управляю­щий вход GATE, высокий уровень которого разрешает счет (формирование выход­ного сигнала, см. ниже). Счет для каналов 0 и 1 разрешен постоянно. Входная частота для всех каналов 1,19318 МГц.

Канал управления звуком (PC Speaker)

Стандартный канал управления звуком PC Speaker рассчитан на подключение высокоомного малогабаритного динамика. Логическая схема канала приведена на рис. 3.5. Звук формируется из тонального сигнала от второго канала таймера, работой которого можно программно управлять. Частоту сигнала (тон) можно из­менять, программируя коэффициент деления счетчика. Кроме того, разрешая/зап­рещая формирование сигнала программно-управляемым битом 1 системного пор­та 61h, можно подавать сигналы определенной длительности. Такой способ фор­мирования звука мало загружает даже процессор 8086/88 и позволяет исполнять незамысловатые мелодии, причем и в фоновом режиме, посылая команды из оче­реди по прерываниям от системного таймера. А с учетом физиологии слуха (инер­ционности восприятия) быстрым переключением частот можно достигать эффек­та псевдомногоголосия. Таймер генерирует выходной сигнал при высоком уровне на входе GATE2 (при единичном значении бита 0 порта 61h). При низком уровне на входе GATE2 таймер формирует высокий уровень на выходе.

Более интересные звуки можно извлекать, используя принцип широтно-им-пульсной модуляции, программно осуществляемый через бит 1 порта 61h. При этом на входе GATE таймера должен быть низкий уровень (бит 0 порта 61h

должен быть нулевым), чтобы на выходе 0UT2 установился высокий уровень. В -этом случае динамик играет роль фильтра нижних частот (инерционного звена) демодулятора. Процессоры, начиная с 80286, способны формировать такой по­ток управляющих сигналов, который позволяет воспроизводить музыкальный или :ечевой сигнал с качеством карманного приемника, что практически полностью загружает, например, 286-й процессор. Кроме того, качество воспроизведения

лльно зависит от частотных свойств динамика. Предпочтительнее более круп­ные динамики, у которых лучше воспроизведение нижних частот — с ними мож--::> добиться даже разборчивости речи. Возможно также комбинированное уп­равление обоими битами порта 61h одновременно с программированием коэф­фициента деления счетчика-таймера. Для Windows З.х/95 существует даже драй-:-ср для звукоизвлечения через эти незамысловатые аппаратные средства, но в .тандартную поставку ОС он не входит. Теперь для звуковоспроизведения (и звукозаписи) используется ставший стандартным аудиокодек (см. главу И). Роль гандартного звукового канала сводится к подачам гудков при загрузке, иденти­фикации ошибок во время теста POST, когда сообщения на экран еще не вывес­ти, а также к сопровождению сообщений о системных ошибках.

Батарейная память и часы — CMOS Memory, RTC

В AT для хранения информации о конфигурации компьютера имеется специаль­ная микросхема памяти КМОП небольшого объема, питание которой при вы­ключенном компьютере осуществляется от батарейки. В той же микросхеме рас­полагаются и часы-календарь, также питающиеся от той же батарейки. Эта па­мять и часы — CMOS Memory and Real Time Clock, сокращенно CMOS RTC — стали стандартным элементом архитектуры PC. Содержимое этой памяти и дату .начала модифицировали с помощью внешней загружаемой утилиты Setup, л позже эту утилиту встроили в BIOS. Микросхемы CMOS RTC имеют встроен--;ую систему контроля непрерывности питания, отслеживающую и разряд бата-:еи ниже допустимого уровня. Достоверность информации конфигурирования

сюверяется контрольной суммой. Таймер синхронизируется от собственного генератора с кварцевым резонато-

эм, как правило, на 32,768 кГц. Таймерная часть содержит:

ш часы-календарь (год, месяц, число, час, минута, секунда); « будильник, подающий сигнал в назначенный час, минуту и секунду; ж генератор меандра, позволяющий формировать запросы прерываний с за­данной частотой (как правило, 1024 Гц).

Микросхема CMOS RTC является источником аппаратного прерывания с мером 8, прерывания могут возникать от будильника, генератора меандра и еле смены времени в часах. Отдельные источники прерывания идентифици-ются чтением ячейки ОСЬ и разрешаются записью в ячейку OBh.

Доступ к ячейкам CMOS RTC осуществляется через порты ввода-вывода "Oh (индекс ячейки) и 071h (данные). Заметим, что бит 7 порта 70h использу ется и для блокировки NMI (см. п. 3.4.1), так что диапазон адресов памяти CMOS ограничен пределами 0-7Fh. Поскольку эта память имеет быстродействие по­рядка единиц микросекунд, между командами записи адреса и чтения-записи данных необходима программная задержка. Во время изменения состояния ча­сов данные, считываемые из ячеек 0-9, могут оказаться некорректными. При­знаком этой ситуации является единичное значение бита 7 ячейки OAh. Для оп­ределения момента окончания смены состояния часов можно пользоваться и раз­решением соответствующего источника прерывания. Для работы с часами и бу­дильником имеется сервис BIOS Int lAh (см. ниже), который избавляет от необ­ходимости программирования операций с учетом требуемых задержек, но может выдавать результаты и не с первого раза, если вызов попадет на момент измене­ния показаний часов. В этом случае вызов придется повторять.

Назначение ячеек CMOS RTC приведено в табл. 3.5. Обратим внимание на формат представления даты, являющийся одним из источников проблемы «двух нулей» (проблемы 2000 года, кратко называемой и Y2K). Первоначально под год отводился лишь байт 09 (две младшие цифры), старшие подразумевались всегда равными 19. Впоследствии (в эпоху 386-х и 486-х машин) добавили еще один байт для века (32h или 37h), однако он автоматически (аппаратно схемой RTC) при переходе от 1999 к 2000 году инкрементируется не всеми таймерами. В та­ком случае после наступления 2000-го года его можно установить и вручную (до инкремента в 2099 году эти компьютеры, наверное, и не доживут). Однако и здесь возможен подвох — не во всех версиях BIOS на XXI век правильный календарь — дни недели, указанные в календаре CMOS Setup, могут не совпадать с реальны­ми. Дни недели календаря BIOS задействуются (и то необязательно) только при ручной установке даты через CMOS Setup — операционные системы использу­ют свои календари. А вот неверный отсчет високосных годов может исказить дату.

Свободные ячейки CMOS RTC иногда используют для привязки ПО к конк­ретному компьютеру (системной плате). Эта привязка выполняется в процессе установки ПО, и если не сохранить образ CMOS на диске, то при разрушении информации в CMOS (например, из-за разряда батарейки) пользователь поте­ряет право на использование ПО. По этой причине такой способ привязки нельзя считать корректным, поскольку изготовитель ПО на себя ответственность за ба­тарейку, естественно, не берет.

В PC XT памяти CMOS не было, конфигурация оборудования (объем памя­ти, количество дисководов и т. п.) задавалась переключателями DIP (см. п. 3.6.1), состояние которых опрашивалось во время теста POST. Часов-календаря тоже не было, поэтому время и дату при загрузке приходилось задавать вручную (при незаданной дате на момент загрузки устанавливалась дата 01.01.1980 и время 00:00). Потом появились интерфейсные карты, в составе которых были и часы-календарь на микросхеме МС146818.

Интерфейс клавиатуры

Для подключения клавиатуры предназначен последовательный синхронный ин­терфейс, состоящий из двух обязательных сигналов KB-Data и KB-Clock. Обе ли­нии на системной плате подтягиваются резисторами к шине +5 В. На обеих сто­ронах интерфейса выходные сигналы низкого уровня формируются выходами

элементов с открытым коллектором (стоком), а состояние линий может быть прочитано через входные линии контроллеров. На некоторых старых системных платах имеется и дополнительный сигнал KB-Reset, сбрасывающий клавиатуру низким уровнем. Интерфейс клавиатуры AT двунаправленный: от клавиатуры передается информация о нажатии/отпускании клавиш, передача информации к клавиатуре используется для управления индикаторами ее состояния и програм­мирования параметров (автоповтор, набор скан-кодов). Контроллер интерфейса клавиатуры и его разъем всегда располагаются на системной плате. Конструк­тивно возможны два варианта разъема — обычная 5-контактная розетка DIN (вид ее со стороны задней панели и назначение контактов приведены на рис. 9.1, а) или малогабаритная розетка mini-DIN для клавиатуры PS/2 (рис. 9.1, б). На этот же разъем через плавкий предохранитель поступает напряжение питания клавиа­туры +5 В. Электрически и логически интерфейс клавиатуры PS/2 повторяет AT, поэтому для согласования типа разъема применяют специальные переходни­ки. Предпочтительнее использовать переходники, выполненные в виде мягкого кабеля с разъемами. Монолитный переходник, особенно с АТ-клавиатуры на PS/ 2-разъем, хуже тем, что малейшее движение кабеля вызывает большой момент силы, выламывающей переходник из маленького гнезда PS/2.

Процессор общается с клавиатурой через контроллер интерфейса клавиату­ры (микроконтроллер 8042 или программно-совместимый с ним), в основном используя порт 60h. Прием скан-кодов осуществляется чтением этого порта. О необходимости чтения скан-кода контроллер сигнализирует процессору через аппаратное прерывание IRQ1, сигнал которого вырабатывается по каждому со­бытию клавиатуры (нажатию и отпусканию клавиши). Задание параметров ав­топовтора, выбор таблиц скан-кодов, управление светодиодными индикаторами, а также управление режимом сканирования матрицы клавиш и запуск диагнос­тического теста осуществляется командами, посылаемыми в этот порт. Контрол­лер транслирует команды в посылки, направляемые к клавиатуре.

На системной плате PC/XT контроллера 8042 не было, а интерфейс клавиа­туры (однонаправленный) был реализован аппаратной логикой — регистром сдви­га, параллельный выход которого подключается к входам порта А системного интерфейса i8255. По приему байта от клавиатуры вырабатывается аппаратное прерывание IRQ1, обработчик которого может прочитать принятый байт из пор­та 60h. С помощью бит 7 и 6 порта 61h возможны программная блокировка и сброс клавиатуры соответственно. Сброс клавиатуры XT осуществляется обну­лением линии KB-Clock.

С распространением шины USB появились клавиатуры и с этим интерфей­сом, они имеют и встроенный хаб, например, для подключения мыши USB. Кла­виатура USB питается от шины. Для клавиатуры USB требуется специальная поддержка со стороны BIOS, она имеется в современных системных платах. На таких платах в CMOS Setup появляется параметр включения поддержки тради­ционной клавиатуры (Legacy Keyboard Support).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]