Какие сигналы будут выходными в случае персонального компьютера
Любое цифровое устройство от самого простейшего до самого сложного всегда действует по одному и тому же принципу (рис. 2.11). Оно принимает входные сигналы, выполняет их обработку, передачу, хранение и выдает выходные сигналы. При этом совсем не обязательно любое изменение входных сигналов приводит к немедленному и однозначному изменению выходных сигналов. Реакция устройства может быть очень сложной, отложенной по времени, неочевидной, но суть от этого не меняется.
В качестве входных сигналов нашего устройства могут выступать сигналы с выходов других цифровых устройств, с тумблеров и клавиш или с датчиков физических величин. Причем в последнем случае, как правило, необходимо преобразование аналоговых сигналов с датчиков в потоки цифровых кодов (рис. 2.12) с помощью аналого-цифровых преобразователей (АЦП). Например, в случае персонального компьютера входными сигналами являются сигналы с клавиатуры, с датчиков перемещения мыши, с микрофона (давление воздуха, то есть звук, преобразуется в аналоговый электрический сигнал, а затем — в цифровые коды), из кабеля локальной сети и т.д.
Рис. 2.11.Включение цифрового устройства
Рис. 2.12.Аналого-цифровое и цифро-аналоговое преобразование
Выходные сигналы цифрового устройства могут предназначаться для подачи на другие цифровые устройства, для индикации (на экране монитора, на цифровом индикаторе и т.д.), а также для формирования физических величин. Причем в последнем случае необходимо преобразовывать потоки кодов с цифрового устройства в непрерывные (аналоговые) сигналы (рис. 2.12) с помощью цифро-аналоговых преобразователей (ЦАП) и в физические величины. Например, в случае персонального компьютера выходными сигналами будут: сигналы, подаваемые компьютером на принтер; сигналы, идущие на видеомонитор (аналоговые или цифровые); звук, воспроизводимый динамиками компьютера (потоки кодов с компьютера преобразуются в аналоговый электрический сигнал, который затем преобразуется в давление воздуха — звук).
Одно цифровое устройство может состоять из нескольких более простых цифровых устройств. Часто эти составные элементы называют блоками, модулями, узлами, частями. Если объединяются несколько сложных цифровых устройств, то говорят уже о цифровых системах, комплексах, установках. Мы в основном будем использовать термин "устройство", как занимающий промежуточное положение.
Связь между входными и выходными сигналами может быть жесткой, неизменной или гибко изменяемой (программируемой). То есть цифровое устройство может работать по жесткому, раз и навсегда установленному алгоритму или по алгоритму программируемому. Как правило, при этом выполняется один очень простой принцип: чем больше возможностей для изменения связи входных и выходных сигналов, чем больше возможностей изменения алгоритма работы, тем цифровое устройство будет медленнее. Речь в данном случае, конечно же, идет о предельно достижимом быстродействии.
Иначе говоря, простые устройства с жесткой логикой работы всегда могут быть сконструированы с более высоким быстродействием по сравнению с программируемыми, гибкими устройствами со сложным алгоритмом работы. Жесткая логика также обеспечивает малый объем аппаратуры (малые аппаратурные затраты) для реализации простых функций. Зато программируемые, интеллектуальные устройства обеспечивают более высокую гибкость и меньшую стоимость при необходимости сложной обработки. А для реализации простых функций они часто оказываются избыточно сложными. Так что выбор между двумя этими типами цифровых устройств зависит от конкретной решаемой задачи.
Значительное число задач может быть решено как чисто аппаратным путем (с помощью устройств на жесткой логике), так и программно-аппаратным путем (с помощью программируемых устройств). В таких случаях надо смотреть, какие характеристики устройства являются самыми важными: скорость работы, стоимость, гибкость, простота проектирования и т.д. — и в зависимости от этого выбирать то или иное решение, так или иначе перераспределять функции между программным обеспечением и аппаратурой.
В данном курсе основное внимание будет уделено устройствам и узлам с жесткой логикой работы. Однако уяснение принципов их работы и их проектирования может оказать большую помощь и при создании программируемых, интеллектуальных устройств.
Любое цифровое устройство от самого простейшего до самого сложного всегда действует по одному и тому же принципу (рис. 2.11). Оно принимает входные сигналы, выполняет их обработку, передачу, хранение и выдает выходные сигналы. При этом совсем не обязательно любое изменение входных сигналов приводит к немедленному и однозначному изменению выходных сигналов. Реакция устройства может быть очень сложной, отложенной по времени, неочевидной, но суть от этого не меняется.
В качестве входных сигналов нашего устройства могут выступать сигналы с выходов других цифровых устройств, с тумблеров и клавиш или с датчиков физических величин. Причем в последнем случае, как правило, необходимо преобразование аналоговых сигналов с датчиков в потоки цифровых кодов (рис. 2.12) с помощью аналого-цифровых преобразователей ( АЦП ). Например, в случае персонального компьютера входными сигналами являются сигналы с клавиатуры, с датчиков перемещения мыши, с микрофона (давление воздуха, то есть звук, преобразуется в аналоговый электрический сигнал , а затем — в цифровые коды), из кабеля локальной сети и т.д.
Выходные сигналы цифрового устройства могут предназначаться для подачи на другие цифровые устройства, для индикации (на экране монитора, на цифровом индикаторе и т.д.), а также для формирования физических величин. Причем в последнем случае необходимо преобразовывать потоки кодов с цифрового устройства в непрерывные (аналоговые) сигналы (рис. 2.12) с помощью цифро-аналоговых преобразователей ( ЦАП ) и в физические величины. Например, в случае персонального компьютера выходными сигналами будут: сигналы, подаваемые компьютером на принтер; сигналы, идущие на видеомонитор (аналоговые или цифровые); звук, воспроизводимый динамиками компьютера (потоки кодов с компьютера преобразуются в аналоговый электрический сигнал , который затем преобразуется в давление воздуха — звук).
Одно цифровое устройство может состоять из нескольких более простых цифровых устройств. Часто эти составные элементы называют блоками, модулями, узлами, частями. Если объединяются несколько сложных цифровых устройств, то говорят уже о цифровых системах, комплексах, установках. Мы в основном будем использовать термин "устройство", как занимающий промежуточное положение.
Связь между входными и выходными сигналами может быть жесткой, неизменной или гибко изменяемой (программируемой). То есть цифровое устройство может работать по жесткому, раз и навсегда установленному алгоритму или по алгоритму программируемому. Как правило, при этом выполняется один очень простой принцип: чем больше возможностей для изменения связи входных и выходных сигналов, чем больше возможностей изменения алгоритма работы, тем цифровое устройство будет медленнее. Речь в данном случае, конечно же, идет о предельно достижимом быстродействии.
Иначе говоря, простые устройства с жесткой логикой работы всегда могут быть сконструированы с более высоким быстродействием по сравнению с программируемыми, гибкими устройствами со сложным алгоритмом работы. Жесткая логика также обеспечивает малый объем аппаратуры (малые аппаратурные затраты ) для реализации простых функций. Зато программируемые, интеллектуальные устройства обеспечивают более высокую гибкость и меньшую стоимость при необходимости сложной обработки. А для реализации простых функций они часто оказываются избыточно сложными. Так что выбор между двумя этими типами цифровых устройств зависит от конкретной решаемой задачи.
Значительное число задач может быть решено как чисто аппаратным путем (с помощью устройств на жесткой логике), так и программно-аппаратным путем (с помощью программируемых устройств). В таких случаях надо смотреть, какие характеристики устройства являются самыми важными: скорость работы, стоимость , гибкость, простота проектирования и т.д. — и в зависимости от этого выбирать то или иное решение, так или иначе перераспределять функции между программным обеспечением и аппаратурой.
В данном курсе основное внимание будет уделено устройствам и узлам с жесткой логикой работы. Однако уяснение принципов их работы и их проектирования может оказать большую помощь и при создании программируемых, интеллектуальных устройств.
Любое цифровое устройство от самого простейшего до самого сложного всегда действует по одному и тому же принципу (рис. 2.11). Оно принимает входные сигналы, выполняет их обработку, передачу, хранение и выдает выходные сигналы. При этом совсем не обязательно любое изменение входных сигналов приводит к немедленному и однозначному изменению выходных сигналов. Реакция устройства может быть очень сложной, отложенной по времени, неочевидной, но суть от этого не меняется.
В качестве входных сигналов нашего устройства могут выступать сигналы с выходов других цифровых устройств, с тумблеров и клавиш или с датчиков физических величин. Причем в последнем случае, как правило, необходимо преобразование аналоговых сигналов с датчиков в потоки цифровых кодов (рис. 2.12) с помощью аналого-цифровых преобразователей ( АЦП ). Например, в случае персонального компьютера входными сигналами являются сигналы с клавиатуры, с датчиков перемещения мыши, с микрофона (давление воздуха, то есть звук, преобразуется в аналоговый электрический сигнал , а затем — в цифровые коды), из кабеля локальной сети и т.д.
Выходные сигналы цифрового устройства могут предназначаться для подачи на другие цифровые устройства, для индикации (на экране монитора, на цифровом индикаторе и т.д.), а также для формирования физических величин. Причем в последнем случае необходимо преобразовывать потоки кодов с цифрового устройства в непрерывные (аналоговые) сигналы (рис. 2.12) с помощью цифро-аналоговых преобразователей ( ЦАП ) и в физические величины. Например, в случае персонального компьютера выходными сигналами будут: сигналы, подаваемые компьютером на принтер; сигналы, идущие на видеомонитор (аналоговые или цифровые); звук, воспроизводимый динамиками компьютера (потоки кодов с компьютера преобразуются в аналоговый электрический сигнал , который затем преобразуется в давление воздуха — звук).
Одно цифровое устройство может состоять из нескольких более простых цифровых устройств. Часто эти составные элементы называют блоками, модулями, узлами, частями. Если объединяются несколько сложных цифровых устройств, то говорят уже о цифровых системах, комплексах, установках. Мы в основном будем использовать термин "устройство", как занимающий промежуточное положение.
Связь между входными и выходными сигналами может быть жесткой, неизменной или гибко изменяемой (программируемой). То есть цифровое устройство может работать по жесткому, раз и навсегда установленному алгоритму или по алгоритму программируемому. Как правило, при этом выполняется один очень простой принцип: чем больше возможностей для изменения связи входных и выходных сигналов, чем больше возможностей изменения алгоритма работы, тем цифровое устройство будет медленнее. Речь в данном случае, конечно же, идет о предельно достижимом быстродействии.
Иначе говоря, простые устройства с жесткой логикой работы всегда могут быть сконструированы с более высоким быстродействием по сравнению с программируемыми, гибкими устройствами со сложным алгоритмом работы. Жесткая логика также обеспечивает малый объем аппаратуры (малые аппаратурные затраты ) для реализации простых функций. Зато программируемые, интеллектуальные устройства обеспечивают более высокую гибкость и меньшую стоимость при необходимости сложной обработки. А для реализации простых функций они часто оказываются избыточно сложными. Так что выбор между двумя этими типами цифровых устройств зависит от конкретной решаемой задачи.
Значительное число задач может быть решено как чисто аппаратным путем (с помощью устройств на жесткой логике), так и программно-аппаратным путем (с помощью программируемых устройств). В таких случаях надо смотреть, какие характеристики устройства являются самыми важными: скорость работы, стоимость , гибкость, простота проектирования и т.д. — и в зависимости от этого выбирать то или иное решение, так или иначе перераспределять функции между программным обеспечением и аппаратурой.
В данном курсе основное внимание будет уделено устройствам и узлам с жесткой логикой работы. Однако уяснение принципов их работы и их проектирования может оказать большую помощь и при создании программируемых, интеллектуальных устройств.
Сигнал - это любая физическая величина (например, температура, давление воздуха, интенсивность света, сила тока и т.д.), изменяющаяся со временем. Именно благодаря этому изменению сигнал может нести в себе какую-то информацию.
Электрический сигнал - это электрическая величина (например, напряжение, ток, мощность), изменяющаяся со временем. Вся электроника в основном работает с электрическими сигналами.
Аналоговый сигнал - это сигнал, который может принимать любые значения в определенных пределах (например, напряжение может плавно изменяться в пределах от нуля до десяти вольт). Устройства, работающие только с аналоговыми сигналами, называются аналоговыми устройствами.
Цифровой сигнал - это сигнал, который может принимать только два (иногда - три) значения, причем разрешены некоторые отклонения от этих значений. Например, напряжение может принимать два значения: от 0 до 0,5 В (уровень нуля) или от 2,5 до 5 В (уровень единицы). Устройства, работающие исключительно с цифровыми сигналами, называются цифровыми устройствами.
В природе все сигналы - аналоговые. Именно поэтому первые электронные устройства были аналоговыми.
Однако аналоговые сигналы и работающая с ними аналоговая электроника имеют большие недостатки, связанные именно с природой аналоговых сигналов. Это и чувствительность к воздействию всевозможных паразитных сигналов - шумов, наводок, помех; и искажения при обработке сигналов из-за несовершенства и неидеальности электронных устройств; и ослабление при передаче и хранении.
Поэтому каждое преобразование, каждое промежуточное хранение, каждая передача по кабелю или эфиру ухудшает полезный аналоговый сигнал, иногда вплоть до его полного уничтожения. Надо еще учесть, что все шумы, помехи и наводки принципиально не поддаются точному расчету, поэтому точно описать поведение любых аналоговых устройств абсолютно невозможно. К тому же со временем параметры всех аналоговых устройств изменяются из-за старения элементов, поэтому характеристики этих устройств не остаются постоянными.
В отличие от аналоговых, цифровые сигналы, имеющие всего два разрешенных значения, защищены от действия шумов, наводок и помех гораздо лучше. Небольшие отклонения от разрешенных значений никак не искажают цифровой сигнал, так как всегда существуют зоны допустимых отклонений. Именно поэтому цифровые сигналы допускают гораздо более сложную и многоступенчатую обработку, гораздо более длительное хранение без потерь и гораздо более качественную передачу. К тому же поведение цифровых устройств всегда можно абсолютно точно рассчитать и предсказать. Цифровые устройства гораздо меньше подвержены старению, так как небольшое изменение их параметров никак не отражается на их функционировании. Кроме того, цифровые устройства проще проектировать и отлаживать. Понятно, что все эти преимущества обеспечивают бурное развитие цифровой электроники.
Однако у цифровых сигналов есть и крупный недостаток. На каждом из своих разрешенных уровней цифровой сигнал должен оставаться хотя бы в течение какого-то минимального временного интервала, иначе его невозможно будет распознать. А аналоговый сигнал может принимать любое свое значение бесконечно малое время. Поэтому максимально достижимое быстродействие аналоговых устройств всегда принципиально больше, чем цифровых. Аналоговые устройства могут работать с более быстро меняющимися сигналами, чем цифровые. Скорость обработки и передачи информации аналоговым устройством всегда может быть выше, чем скорость обработки и передачи цифровым устройством.
Кроме того, цифровой сигнал передает информацию только двумя уровнями и изменением одного своего уровня на другой, а аналоговый - еще и каждым текущим значением своего уровня, то есть он более емкий с точки зрения передачи информации. Поэтому для передачи того объема информации, который содержится в одном аналоговом сигнале, чаще всего приходится использовать несколько цифровых (чаще всего от 4 до 16).
К тому же, как уже отмечалось, в природе все сигналы - аналоговые, то есть для преобразования их в цифровые и обратно требуется применение специальной аппаратуры (аналого-цифровых и цифро-аналоговых преобразователей). Так что ничто не дается даром, и плата за преимущества цифровых устройств может порой оказаться неприемлемо большой.
Все цифровые микросхемы работают с логическими сигналами, имеющими два разрешенных уровня напряжения. Один из этих уровней называется уровнем логической единицы (или единичным уровнем), а другой — уровнем логического нуля (или нулевым уровнем). Чаще всего логическому нулю соответствует низкий уровень напряжения, а логической единице — высокий уровень.
Наибольшее распространение получили две технологии цифровых микросхем:ТТЛ и ТТЛШ— биполярная транзисторно-транзисторная логика и ТТЛ с диодами Шоттки;
КМОП — комплементарные транзисторы со структурой "металл–окисел–полупроводник".
Микросхемы КМОП потребляют значительно меньший ток от источника питания, чем такие же микросхемы ТТЛ (или ТТЛШ) — правда, только в статическом режиме или на небольших рабочих частотах.
Любое цифровое устройство от самого простейшего до самого сложного всегда действует по одному и тому же принципу . Оно принимает входные сигналы, выполняет их обработку, передачу, хранение и выдает выходные сигналы. При этом совсем не обязательно любое изменение входных сигналов приводит к немедленному и однозначному изменению выходных сигналов. Реакция устройства может быть очень сложной, отложенной по времени, неочевидной.
В качестве входных сигналов цифрового устройства могут выступать сигналы с выходов других цифровых устройств, с тумблеров и клавиш или с датчиков физических величин.
В последнем случае, как правило, необходимо преобразование аналоговых сигналов с датчиков в потоки цифровых кодов с помощью аналого-цифровых преобразователей (АЦП). Например, в случае персонального компьютера входными сигналами являются сигналы с клавиатуры, с датчиков перемещения мыши, с микрофона, из кабеля локальной сети и т.д.
Выходные сигналы цифрового устройства могут предназначаться для подачи на другие цифровые устройства, для индикации (на экране монитора, на цифровом индикаторе и т.д.), а также для формирования физических величин. Причем в последнем случае необходимо преобразовать потоки кодов с цифрового устройства в непрерывные (аналоговые) сигналы с помощью цифро-аналоговых преобразователей (ЦАП) и в физические величины. Например, в случае персонального компьютера выходными сигналами будут: сигналы, подаваемые компьютером на принтер; сигналы, идущие на видеомонитор (аналоговые или цифровые); звук, воспроизводимый динамиками компьютера.
Изучение базовых элементов цифровой электроники начнем с наиболее простых. Логические элементы (или, как их еще называют, вентили, "gates") — это наиболее простые цифровые микросхемы. Обычно каждый логический элемент имеет несколько входов (от одного до двенадцати) и один выход. Каждой комбинации входных сигналов элемента соответствует уровень нуля или единицы на его выходе. Никакой внутренней памяти у логических элементов нет, поэтому они относятся к группе так называемых комбинационных микросхем.
Главные достоинства логических элементов, по сравнению с другими цифровыми микросхемами, — это их высокое быстродействие (малые времена задержек), а также малая потребляемая мощность (малый ток потребления).
Помимо микропроцессора и системной памяти на системной ( материнской) плате располагаются и другие важные модули, обеспечивающие работоспособность компьютера: контроллеры прерываний и прямого доступа, тактовый генератор , системный таймер , буферные микросхемы, контроллер шины и т.д. В первых компьютерах семейства все эти функции выполняли отдельные специализированные микросхемы сравнительно низкой степени интеграции. В современных компьютерах применяются сверхбольшие интегральные схемы, которые, тем не менее, обеспечивают полную программную и аппаратную совместимость с предыдущими моделями. Эти микросхемы называются набором микросхем или chipset (чипсет). Преимущества такого подхода — chipset занимает меньше места на плате, меньшая потребляемая мощность , значительно большая надежность . Компьютеры, выполненные на системных платах с chipset известных фирм, имеют лучшую репутацию. В большинство наборов микросхем входит так называемый периферийный контроллер , включающий два контроллера прерываний , два контроллера прямого доступа к памяти, таймер , часы реального времени , а также CMOS - память .
7.4.1. Тактовый генератор
Системный тактовый генератор генерирует сигналы синхронизации для работы микропроцессора, всех контроллеров и системной шины. Для обеспечения высокой стабильности тактовых частот и их независимости от температуры применяются кварцевые резонаторы, то есть кристаллы кварца, имеющие высокостабильную частоту собственных колебаний. Как правило, в состав системной платы входит несколько кварцевых резонаторов, каждый из которых обеспечивает свой тактовый сигнал. Тактовую частоту процессора можно выбирать путем установки перемычек на системной плате. Это позволяет пользователю модернизировать компьютер путем замены процессора на другой, рассчитанный на более высокую тактовую частоту. Иногда удается заставить процессор работать на более высокой тактовой частоте, чем та, на которую он рассчитан, но здесь нужно соблюдать осторожность, так как повышение частоты ведет не только к увеличению потребляемой мощности и перегреву микросхемы, но и к ошибкам и сбоям в работе, причем проявляющихся только в отдельных режимах, например, в многозадачном.
В компьютерах на базе процессоров 486 и Pentium применяется деление опорной тактовой частоты для синхронизации системной шины и внутреннее умножение частоты в процессорах. Например, в процессоре 486DX2-66 используется умножение на два тактовой частоты 33,3 МГц, а в процессорах семейства Pentium применяется умножение на 2,5 (при опорной частоте 60 МГц частота процессора 150 МГц) или на 3 (при опорной частоте 66,6 МГц частота процессора 200 МГц).
В общем случае в компьютере существуют следующие тактовые частоты:
- Host Bus Clock (CLK2IN) — это опорная частота (внешняя частота шины процессора). Именно из нее могут получаться другие частоты и именно она задается перемычками (джамперами);
- CPU Clock ( Core Speed ) — это внутренняя частота процессора, на которой работает его вычислительное ядро. Может совпадать с Host Bus Clock или получаться из нее умножением на 1,5, 2, 2,5, 3, 4. Умножение должно быть предусмотрено в конструкции процессора.
- ISA Bus Clock (ATCLK, BBUSCLK) — это тактовая частота системной шины ISA (сигнал SYSCLK). По стандарту она должна быть близка к 8 МГц, но в BIOS Setup имеется возможность выбрать ее через коэффициент деления частоты Host Bus Clock. Иногда компьютер остается работоспособным и при частоте шины ISA около 20 МГц, но обычно платы расширения ISA разрабатываются из расчета на 8 МГц, и при больших частотах они перестают работать. Не следует рассчитывать, что компьютер станет вдвое быстрее при удвоении этой частоты. Для каналов прямого доступа к памяти на системной плате используется еще один тактовый сигнал SCLK , частота которого, как правило, составляет половину от ISA Bus Clock.
- PCI Bus Clock — это тактовая частота системной шины PCI, которая по стандарту должна быть 25 — 33,3 МГц. Ее обычно получают делением частоты Host Bus Clock на нужный коэффициент. В компьютерах предусматривается возможность ее увеличения до 75 или даже 83 МГц, но из соображений надежности работы рекомендуется придерживаться стандартных значений.
- VLB Bus Clock — это частота локальной шины VLB , определяемая аналогично PCI Bus Clock.
7.4.2. Контроллер прерываний
Контроллеры радиальных прерываний в первых компьютерах выполнялись на микросхемах i8259, каждая из которых имела 8 входов запроса прерываний. В IBM PC AT применялось две таких микросхемы, в результате чего количество входов запросов прерываний увеличилось до 15. Режимы работы контроллеров прерываний определяются процессором путем записи соответствующих управляющих кодов по адресам в пространстве устройств ввода/вывода.
О циклах обмена по прерываниям уже говорилось в разделе 2.2.2. При поступлении запроса прерывания на один из входов IRQ и удовлетворении этого запроса контроллер прерываний вырабатывает выходной сигнал запроса прерывания , поступающий на процессор. В ответ на это процессор запрашивает контроллер о том, прерывание с каким адресом вектора необходимо обслужить. Всего прерываний может быть 256 (от 00 до FF). Номер прерывания, полученный от контроллера, процессор умножает на 4 и получает, таким образом, адрес памяти, где хранится адрес начала программы обработки прерываний (вектор прерывания). Присваивание каждому из каналов IRQ своего номера процессор осуществляет на этапе инициализации контроллера.
Контроллер прерываний может выполнять следующий набор операций:
- маскирование запросов на прерывание, то есть временное запрещение реакции на них;
- установка приоритетов запросов по различным входам, то есть разрешение конфликтов при одновременном приходе нескольких запросов на прерывание;
- работа в качестве основного контролера (Master) или подчиненного ( Slave ).
Для маскирования прерываний используется внутренний регистр контроллера, программно доступный процессору как по записи, так и по чтению. Замаскирован может быть каждый запрос (по каждой из линий IRQ ), путем установки соответствующего бита маскирования в записываемом в контроллер управляющем байте.
Схема приоритетов прерываний может быть задана процессором программным путем. В базовом варианте все приоритеты фиксированы (то есть IRQ0 имеет высший приоритет, а IRQ7 — низший). Но в принципе высший уровень приоритета задается для любого из входов запросов, можно также установить циклическое переключение приоритетов (последний обслуженный запрос получает низший приоритет), обеспечивая тем самым всем запросам равные приоритеты. Если во время обработки прерывания с меньшим уровнем приоритета приходит более приоритетный запрос, то процессор переходит на программу обработки более приоритетного запроса, а после ее выполнения возвращается к программе обработки менее приоритетного запроса. Отметим, что немаскируемое прерывание NMI имеет приоритет выше любого другого аппаратного прерывания .
Завершив выполнение программы обработки прерывания, процессору необходимо с помощью специальной команды сообщить об этом контроллеру прерываний , чтобы разрешить ему дальнейшую работу, в частности, вновь обрабатывать тот же самый запрос.
Контроллер 8259 предусматривает возможность выбора способа распознавания запроса на прерывание — по фронту сигнала IRQ и по уровню этого сигнала. В архитектуре компьютера типа PC используется запрос по фронту.
При каскадировании контроллеров основному контроллеру надо указать, к какому из его входов подключен подчиненный контроллер, а подчиненному контроллеру необходимо указать, к какому входу основного контроллера подключен его выходной сигнал запроса.
Все операции начальной настройки контроллеров прерываний выполняет BIOS, и пользователю нужно прибегать к программированию этих контроллеров только при необходимости смены режимов обслуживания прерываний или при написании собственной программы обработки аппаратных прерываний .
7.4.3. Контроллер прямого доступа к памяти
Контроллер прямого доступа к памяти имеет более сложную структуру по сравнению с контроллером прерываний , что связано с его более сложными функциями. На время ПДП контроллер ПДП становится задатчиком (активным устройством) системной шины, выставляя все основные сигналы шины самостоятельно. Однако все режимы работы контроллера ПДП , все его параметры устанавливаются процессором на этапе инициализации контроллера. В частности, процессор определяет тип решаемой задачи, задает начальный адрес передаваемого или принимаемого массива данных, а также размер этого массива.
В персональном компьютере применяется два четырехканальных контроллера ПДП типа i8237, обеспечивающих 7 каналов ПДП (один канал задействован под каскадирование контроллеров по тому же принципу, что и контроллеры прерываний ). Помимо собственно контроллеров ПДП в подсистему ПДП входят также программно доступные регистр старшего байта адреса и регистры страниц ПДП .
О циклах обмена в режиме ПДП уже говорилось в разделе 2.2.3. Получив сигнал запроса ПДП по одной из линий DRQ , контроллер формирует запрос процессору на захват шины и, получив разрешение от процессора, сообщает о предоставлении ПДП запросившему прямой доступ устройству по соответствующей линии DACK . После этого производится цикл ПДП , пересылающий данные из устройства ввода/вывода в память или наоборот. При этом сам контроллер ПДП формирует только 16 младших разрядов адреса памяти, а восемь старших разрядов содержатся в регистре страниц. Свой собственный регистр страниц соответствует каждому из каналов ПДП .
Передача данных в случае ПДП возможна по одному из следующих режимов:
- Режим одиночной (поцикловой) передачи. В этом случае за время предоставления ПДП выполняется только один цикл передачи данных, и для следующей передачи надо опять же запросить ПДП . Однако адрес памяти, с которым осуществляется обмен, автоматически меняется после каждого цикла. Этот режим позволяет процессору вставлять свои циклы обмена после каждого цикла ПДП .
- Режим передачи блока (режим блочной передачи). В этом режиме за один раз передается целый блок данных определенной длины (до 64 Кбайт). Режим обеспечивает более высокую скорость передачи по сравнению с режимом одиночной передачи, но может на длительное время захватить системную шину, не допуская к ее управлению процессор.
- Режим передачи по требованию. Этот режим позволяет продолжать ПДП до тех пор, пока устройство, запросившее ПДП , не исчерпает весь объем данных.
- Каскадный режим позволяет объединять контроллеры для увеличения количества каналов ПДП .
- В принципе, возможен режим передачи в режиме ПДП из памяти в память, но в компьютере он не используется.
Как и в случае контроллера прерываний , возможны две схемы приоритетов каналов ПДП , выбираемые программно, — фиксированный и циклический. Исходная схема — фиксированные приоритеты, причем нулевой канал имеет максимальный приоритет, а седьмой — минимальный. Во время обслуживания любого запроса ПДП остальные запросы не могут вмешаться, но после завершения обслуживания данного запроса будет обслуживаться запрос с наибольшим приоритетом. Как и в случае контроллера прерываний , возможно программное маскирование каждого канала ПДП .
Перед началом работы каждому из каналов контроллера процессор должен указать режим, в котором он будет работать, базовый адрес памяти, с которого начнется обмен, количество передаваемых байтов или слов, направление записи в память или чтения из памяти (от старших адресов к младшим или наоборот). Возможен режим автоинициализации, при котором после окончания пересылки всего массива данных контроллер автоматически восстанавливает все параметры, и для этого не требуется вмешательство процессора. Предусмотрена также возможность программного запроса ПДП , обслуживаемого так же, как и аппаратный запрос.
7.4.4. Системный таймер и часы реального времени
В качестве системного таймера компьютера используется микросхема трехканального 16-разрядного таймера i8254 или ее аналог. Таймер предназначен для получения программно управляемых временных задержек и генерации сигналов заданной частоты. Таймер позволяет повысить эффективность программирования процессов управления и синхронизации внешних устройств, особенно в реальном времени.
Таймер содержит три независимых канала (0, 1 и 2), каждый из которых может быть, в принципе, запрограммирован на работу в одном из шести режимов счета:
- прерывание терминального счета;
- программируемый генератор одиночного импульса;
- генератор импульсов заданной частоты;
- генератор прямоугольных импульсов типа " меандр ";
- программно формируемый строб;
- аппаратно формируемый строб.
На каждый канал могут подаваться входные синхросигналы. Из каждого канала можно получать сигнал с частотой, равной входной частоте, деленной на произвольное 16-разрядное число. В компьютере на все входы поступают синхросигналы частотой 1,19 МГц. Все каналы таймера в компьютере имеют специальное назначение, поэтому особой свободы в выборе режима работы или переназначении функций у пользователя нет.
- Выход канала 0 связан с сигналом запроса прерывания IRQ0 и обеспечивает прерывание для счетчика реального времени (используется режим работы 3). Пользователю не рекомендуется перепрограммировать этот канал. При старте компьютера канал программируется так, чтобы выдавать импульсы примерно 18,2 раза в секунду. По этому прерыванию программно увеличивается состояние счетчика реального времени. Пользователь может читать состояние данного счетчика из специально выделенной ячейки памяти и применять его для задержек в своих программах.
- Выход канала 1 генерирует сигнал запроса регенерации динамической памяти (режим работы 2). Использование этого канала не по назначению может привести к потере содержимого оперативной памяти .
- Выход канала 2 генерирует тональный сигнал для встроенного динамика компьютера (режим работы 3). Однако разрешение этого тонального сигнала производится установкой выделенных разрядов (0 и 1) программно доступного параллельного порта контроллера периферийных устройств. Один разряд (0) разрешает работу канала, другой разряд (1) пропускает выходной сигнал на динамик.
Таким образом, пользователь компьютера может задействовать только канал 2. Чаще всего его применяют для генерации звуков заданной частоты и длительности. Кроме того, выходной сигнал данного канала программно доступен по чтению из одного из разрядов параллельного порта . Это позволяет, запрограммировав таймер соответствующим образом, выдерживать нужные временные интервалы. Для этого следует программно разрешить генерацию (при отключенном динамике), а затем программно опрашивать выходной сигнал таймера и принимать решения по изменению его уровня.
Подсистема часов реального времени в первых компьютерах выполнялась на микросхеме контроллера MC146818 фирмы Motorola. Этот контроллер содержит 64 байта СMOS-памяти, из которых первые 14 байт используются для часов реального времени, а остальные 50 байт хранят информацию о конфигурации системы.
Для входного тактового сигнала контроллера применяется специальный "часовой" кварцевый генератор с частотой 32 768 кГц, что позволяет с помощью деления частоты получить импульсы с частотой 1 Гц. Контроллер считает секунды, минуты, часы, дни недели, месяцы и годы. Причем работает он даже при отключении питания компьютера, подпитываясь от батареи или аккумулятора. Это позволяет сохранять информацию о текущем времени постоянно.
Помимо счетчика текущего времени, контроллер имеет в своем составе будильник. Будильник может формировать прерывания ( IRQ8 ) с программно заданной периодичностью. Состояния всех счетчиков (секунд, минут, часов и т.д.) программно доступны как по чтению, так и по записи, что позволяет устанавливать нужное время и следить за ним.
Читайте также: