Где находятся контроллеры в компьютере
Только та информация, которая хранится в ОЗУ Оперативно-запоминающие устройство, доступна процессору для обработки. Поэтому необходимо, чтобы в его оперативной памяти находились программа и данные.
В ПК информация с внешних устройств (клавиатуры, жесткого диска и т.д.) пересылается в ОЗУ, а информация (результаты выполнения программ) с ОЗУ также выводится на внешние устройства (монитор, жесткий диск, принтер и т.д.).
компьютер контроллер программа микропроцессор
Таким образом, в компьютере должен осуществляться обмен информацией (ввод-вывод) между оперативной памятью и внешними устройствами. Устройства, которые осуществляют обмен информацией между оперативной памятью и внешними устройствами называются контроллерами или адаптерами, иногда картами. Контроллеры, адаптеры или карты имеют свой процессор и свою память, т.е. представляют собой специализированный процессор.
Контроллеры или адаптеры (схемы, управляющие внешними устройствами компьютера) находятся на отдельных платах, которые вставляются в унифицированные разъемы (слоты) на материнской плате.
Чтобы компьютер мог работать, необходимо, чтобы в его оперативной памяти находились программа и данные. А попадают они туда из различных устройств компьютера - клавиатуры, дисководов для магнитных дисков и т.д. Обычно эти устройства называют внешними, хотя некоторые из них могут находится не снаружи компьютера, а встраивается внутрь системного блока. Результаты выполнения программ также выводятся на внешние устройства - монитор, диски, принтер и т.д.
Таким образом, для работы компьютера необходим обмен информацией между оперативной памятью и внешним устройством. Такой обмен называется вводом - выводом. Но этот обмен не происходит непосредственно: между любым внешним устройством и оперативной памятью в компьютере
Имеются целых два промежуточных звена:
- 1. для каждого внешнего устройства имеется электронная схема, которая им управляет. Эта схема называется контролером, или адаптером. Некоторые контроллеры (например, контроллер дисков) могут управлять сразу несколькими устройствами.
- 2. Все контроллеры и адаптеры взаимодействуют с процессором и оперативной памятью через системную магистраль передачи данных, которую в просторечии обычно называют шиной.
Одним из контроллеров, которые присутствуют почти в каждом компьютере, является контроллер портов ввода-вывода. Эти порты бывают следующих типов:
- · параллельные (обозначаемые LPT1-LPT4), к ним обыкновенно подключаются принтеры
- · асинхронные последовательные (обозначаемые COM1 - COM3). Через них обычно подсоединяются мышь, модем и т.д.
- · игровой порт - для подключения джойстика.
Некоторые устройства могут подключаться и к параллельным, и к последовательным портам. Параллельные порты выполняют ввод и вывод с большой скоростью, чем последовательные (за счет использования большего числа проводов в кабеле).
Начну с того, что слово контроллер - это широкое понятие, под которое подходит масса определений. Но лучше начать по порядку.
Само слово контроллер происходит от английского controller (управляющее устройство). Как вы понимаете, под словом устройство можно понимать что угодно, а слово "управляющее" показывают основную функцию устройства. Предлагаю ознакомиться с основными направлениями, куда применимо данное слово:
- микроконтроллер - управляющее устройство, созданное внутри микросхемы. По сути это просто микросхема, которая может решать различные задачи. Примером может быть atmega, PIC, ARM и другие.
В данном случае микроконтроллер нуждается в дополнительных элементах для того, чтобы организовать его удобную работу. Но он тоже, по сути, является контроллером.
- Если взять плату, посадить не неё микроконтроллер, несколько вспомогательных элементов, таких как кварцевый генератор, резисторы, конденсаторы, диоды и так далее, мы уже получим контроллер . Он может быть учебным или макетным, как Ардуино. А может быть промышленным, если у него продумана защита от "тяжелых" внешних факторов, присутствующих на производстве. (Это очень примитивное сравнение, так как нюансов там намного больше)
Пример такого контроллера.
Например, в любом компьютере есть контроллер прерываний (но может быть блоком в процессоре, а не отдельной микросхемой) . Это устройство, которое перехватывает управление по сигналу от внешнего устройства. Чтобы обработать заявку на прерывание.
Или, в том же компьютере, есть контроллер доступа к жесткому диску. На флешкарте есть контроллер доступа к области памяти. Задача таких микросхем - обеспечить работу схем в рамках локальных задач
- Программируемый логический контроллер (ПЛК) - это линейка контроллеров, созданных, в основном, промышленного исполнения и предназначенных для решения разных алгоритмических задач. В основном это набор логических функций, которые закладываются программистом и выполняются контроллером. Например, есть технологический цикл изготовления детали, где есть чередование или одновременная работа нескольких устройств. ПЛК отлично с этим справится.
Пример диаграммы работы ПЛК.
Это еще только начало, так как контроллеры очень сильно отличаются по функционалу.
- Контроллерконкретного устройства . например контроллер двигателя или контроллер питания. В данном случае это уже не плата, а отдельное устройство, управляющее работой агрегата. Например, инжектор можно смело назвать контроллером управления ДВС (двигателем внутреннего сгорания), хотя по факту главным в системе является человек, который жмёт на педаль газа. Можно употребить слово в таких случаях: контроллер электродвигателя, контроллер двигателя, контроллер системы резервного питания, контроллер генератора.
- Контроллер домена . В этом случае, это не микросхема или плата, это серьезное устройство на процессоре, на котором установлена отдельная операционная система, и одна из задач этой системы - организация работы сети(сетевого домена). Но термин контроллер использован абсолютно верно.
- Игровой контроллер . Устройство для обработки сигналов от человека и управления программой.
Как вы уже поняли, контроллер, это устройство (чаще всего), блок устройства или программа, решающая задачу управления сопряженным блоком или устройством.
Кроме того, Вам могут быть полезны статьи:
Если информация оказалось знакомой, то можешь пройти Небольшой тест на знание азов электроники .
Что ты хочешь узнать?
Ответ
Что такое контроллер:
Контроллер – это специальный процессор в компьютере, который управляет внешними устройствами (монитором, принтером и т. д.) .
Микроконтроллер – это такая хитрая микросхема, внутри которой находится самый настоящий компьютер. В этом компьютере есть все, что необходимо для самостоятельной работы:
Контроллеры – это устройства, позволяющие производить обработку цифровых сигналов. Буквально несколько десятилетий назад все логические системы строились на основе электромеханических реле. Они до сих применяются, но в большинстве сфер были вытеснены микроконтроллерами. Наибольшее распространение контроллеры получили в промышленности, именно в системах управления и автоматизации. Впервые на рынке электроники появилось устройство MODICON производства Bedford Associates в 1960-х годах.
Аналогичные устройства, разработанные другими компаниями, стали известны как ПЛК. А если точнее, то это программируемые логические контроллеры. Их работа зависит от программы, которую записывают при помощи персонального компьютера через специальный интерфейс. Именно благодаря использованию устройств на контроллерах получилось заменить большое количество электромеханических реле логическими элементами.
Особенности ПЛК
Для того чтобы понять, что такое контроллер, необходимо разобраться с его устройством и назначением. У программируемого элемента несколько входов – с их помощью происходит контролирование состояния выключателей и датчиков. И есть выходные клеммы, которые подают сигналы различного уровня на электроклапаны, контакторы, электроприводы, реле и другие исполнительные устройства.
Программирование ПЛК очень простое, потому что язык, на котором это делается, очень схож с логикой работы электромагнитных реле. Если инженер-электрик или обычный монтер умеет читать схемы релейных систем, то он без особых трудностей сможет выполнить программирование контроллеров. Это займет немного времени, все зависит от количества логических элементов и функций.
Нужно отметить, что, в зависимости от модели ПЛК, подключение к ним источников сигналов и особенности программирования будут незначительно отличаться. Но суть процедуры настройки остается неизменной.
Подключение элементов к ПЛК
В корпусе контроллера есть оптический изолятор – простой светодиод. С его помощью происходит связь входной клеммы и общей. При подаче напряжения на ПЛК загорается светодиод – именно по нему можно судить о том, что устройство работает. На выходе происходит генерация сигнала при помощи компьютерной схемотехники – активируется устройство переключения. В качестве переключающего устройства могут использоваться электромагнитные реле, транзисторы, силовые ключи, тиристоры. Выходы обозначаются буквой Y. На каждом выходе устанавливается светодиод, сигнализирующий о том, что устройство работает.
Как происходит программирование
Контроллеры – это устройства, позволяющие обрабатывать электрический сигнал и преобразовывать его. На сегодняшний день в ПЛК ставится логика при помощи компьютерной программы. Именно она определяет, на каких выходных клеммах будет присутствовать напряжение при определенных условиях на входных клеммах. Отчасти эта логика схожа с той, которая применяется в релейной схемотехнике. Но в ней нет никаких реле, переключателей, контактов. Написание и просмотр программы происходит при помощи компьютера, который соединяется с портом программирования.
Логика простой программы
Допустим, у нас есть контроллер, лампа и выключатель. Контроллер подключается к источнику питания, со входом соединяется выключатель, а на выходе ставится лампа. При нажатии кнопки должна загораться лампа. Вариант простейшей программы для ПЛК:
- При разомкнутом выключателе на вход не подается напряжение, поэтому на выходе лампа не будет загораться.
- При нажатии на кнопку подается сигнал на вход. В программе контакты, соответствующие порту, будут активироваться. Все мнимые реле начнут работать внутри контроллера. Это образное обозначение, на деле никаких электромагнитных реле в нем нет. В результате появляется напряжение на выходе контроллера и лампа загорается.
Все действия, которые производятся с контроллерами, удобнее всего рассматривать на примере электромагнитных реле. Так нагляднее видна работа устройства.
Зачем нужен компьютер
Универсальность ПЛК
Чтобы понять всю силу и универсальность программируемых компонентов, необходимо рассмотреть несколько типов программ. Контроллер – это программируемый элемент, поэтому без вторичной настройки подключенных к нему элементов можно изменить все заданные команды. Допустим, вам нужно изменить программу, рассмотренную выше – при замыкании кнопки должна тухнуть лампа, а при размыкании загораться.
Для выполнения такой команды нужно просто поменять местами типы команд, которые были ранее. При нажатии на кнопку должно подаваться напряжение на вход ПЛК, а мнимое реле, которое находится в нем, имеет нормально-замкнутые контакты. Поэтому при подаче напряжения контакты размыкаются и лампа тухнет. Но когда в схеме контроллера пропадает сигнал, мнимое реле замыкает контакты и лампа загорается.
Преимущества контроллеров
Одно из преимуществ контроллеров – это возможность реализации в программном обеспечении логического контроля. Причем, в отличие от релейного оборудования, выходной сигнал может использоваться столько раз, сколько требуется для автоматизации. При помощи контроллера для систем автоматизации можно спроектировать систему запуска и останова электродвигателя. Чтобы построить аналогичную систему на электромеханических элементах, нужно использовать три реле.
При использовании контроллера на две входные клеммы подключаются кнопки. На выходе устанавливается электрический двигатель. Логика выглядит таким образом:
- При нажатии кнопки, соединенной с выводом Х1, происходит запуск мотора. При этом контакты мнимого реле запускаются и на выходе появляется напряжение питания.
- При нажатии кнопки, соединенной с Х2, мотор останавливается. При этом происходит игнорирование того факта, что ранее была нажата первая кнопка.
Причем все процессы, которые происходят в контроллерной системе, могут дублироваться для удаленного мониторинга. Именно с помощью такого свойства реализуется удаленное управление системами. Теперь вы знаете, что такое контроллеры и каковы их ключевые особенности. Программирование устройств может осилить любой человек, который разбирается в компьютерной и релейной технике.
Любой, кто разбирал компьютер, видел как много различных элементов на материнской плате, в этой статье я постараюсь кратко описать и показать основные компоненты, устанавливаемые на материнские платы современных компьютеров.
Или мосфет. Обычно используется для усиления, генерации и преобразования электрических сигналов. В общем случае транзистором называют любое устройство, которое имитирует главное свойство транзистора - изменения сигнала между двумя различными состояниями при изменении сигнала на управляющем электроде.
Резистор - это пассивный элемент радиоэлектронной аппаратуры, предназначенный для создания в электрической цепи требуемой величины электрического сопротивления, обеспечивающий перераспределение и регулирование электрической энергии между элементами схемы.
Электролитические конденсаторы схожи с аккумуляторами, но в отличии от которых выводят весь свой заряд в крошечные доли секунды. Используются, чтобы выровнять напряжение или блокировать постоянный ток в цепи.
Керамические SMD, танталовые, ниобиевые и др. Лучше для электроники, которая не требует высокой интенсивности работы.
Светодиод (LED). В основном LED - крошечные лампочки.
Катушки и индуктивности
Индуктор (дроссель) - обмотка провода, катушка, используется для смягчения скачка тока при запуске. Зачастую стоят перед процессором.
Генератор тактовых частот.
Генератор тактовых частот (клокер) — устройство, формирующее тактовые частоты, используемые на материнской плате и в процессоре.
Кварц перемещает энергию назад и вперед между двумя формами в равные доли времени. Задаёт частоту работы всей электрической схемы.
SuperIO (SIO, MultiIO, MIO, "мультик").
Третья по значимости и размеру микросхема на материнской плате – после мостов. Отвечает за порты ввода-вывода (COM, LPT, GamePort, инфракрасный порт, PS/2 для клавиатуры и мыши и др.). Является микроконтроллером (выполняет часть прошивки биос), выродился из контроллера клавиатуры, но в современных платах выполняет множество важных функций. Он например мониторит сигналы с Шим и когда убедится что всё ОК с питанием - даёт южному мосту команду "нажали на вкл, запускайся", ещё он управляет режимами S0-S5. На текущий момент это его основной функционал, а функции ввода - вывода - отмирающий придаток. Зачастую обладает дополнительным функционалом:
встроенный Hardware Monitoring
контроллер управления скоростью вентиляторов
интерфейс для подключения CompactFlash-карт.
ШИМ-контроллер (от Широтно-Импульсная Модуляция) - главная микросхема, управляющая напряжением на материнской плате.
Мосты (северный и южный).
Северный мост (MCH).
Одним из основным составляющим компонентом материнской платы будь то компьютера либо ноутбука является Северный мост (англ. Northbridge; в отдельных чипсетах Intel, также — контроллер-концентратор памяти с английского Memory Controller Hub)
MCH является системным контроллером чипсета на материнской плате платформы x86, к которому в рамках организации взаимодействия подключено следующие оборудование:
1. через Front Side Bus — микропроцессор, если в составе процессора нет контроллера памяти, тогда через шину контроллера памяти подключена— оперативная память.
2. через шину графического контроллера — видеоадаптер (в материнских платах нижнего ценового диапазона, видеоадаптер часто встроенный. В таком случае северный мост, произведенный Intel, называется GMCH (от англ. Chipset Graphics and Memory Controller Hub).
Исходя из назначения, северный мост определяет параметры (возможный тип, частоту, пропускную способность):
- системной шины и, косвенно, процессора (исходя из этого — до какой степени может быть разогнан компьютер);
- оперативной памяти (тип — например SDRAM, DDR, DDR2, её максимальный объем);
Во многих случаях именно параметры и быстродействие северного моста определяют выбор реализованных на материнской плате шин расширения (PCI, PCI Express) системы.
В свою очередь, северный мост соединён с остальной частью материнской платы через согласующий интерфейс и южный мост. Когда технологии производства не позволяют скомпенсировать возросшее, вследствие усложнения внутренней схемы, тепловыделение чипа, современные мощные микросхемы северного моста помимо пассивного охлаждения (радиатора) для своей бесперебойной работы требуют использования индивидуального вентилятора или системы жидкостного охлаждения, что в свою очередь увеличивает энергопотребление всей системы и требует более мощного блока питания.
Минуя северный мост согласно нашей схеме двигаясь на юг на материнской плате расположен южный мост.
Южный мост ( ICH)
Южный мост (от англ. Southbridge) (функциональный контроллер), также известен как контроллер-концентратор ввода-вывода (от англ. I/O Controller Hub, ICH).
Если взять функциональность, то южный мост включает в себя:
- контроллеры шин PCI, PCI Express, SMBus, I2C, LPC, Super I/O;
- PATA (IDE) и SATA контроллеры;
- часы реального времени (Real Time Clock);
- управление питанием (Power management, APM и ACPI);
- энергонезависимую память BIOS (CMOS);
- звуковой контроллер (обычно AC'97 или Intel HDA).
Опционально южный мост также может включать в себя контроллер Ethernet, RAID-контроллеры, контроллеры USB, контроллеры FireWire, аудио-кодек и др. Реже южный мост включает в себя поддержку клавиатуры, мыши и последовательных портов, но обычно эти устройства подключаются с помощью другого устройства — Super I/O (контроллера ввода-вывода).
Поддержка шины PCI включает в себя традиционную спецификацию PCI, но может также обеспечивать и поддержку шины PCI-X и PCI Express. Хотя поддержка шины ISA используется достаточно редко, она все таки является неотъемлемой частью современного южного моста. Шина SM используется для связи с другими устройствами на материнской плате (например, для управления вентиляторами). Контроллер DMA позволяет устройствам на шине ISA или LPC получать прямой доступ к оперативной памяти, обходясь без помощи центрального процессора.
Системная память CMOS, поддерживаемая питанием от батареи, позволяет создать ограниченную по объёму область памяти для хранения системных настроек (настроек BIOS).
Меню настроек Bios.
Северный и южный мосты материнской платы вкупе составляют одно целое устройство управления всей системой так сказать глаза, уши, руки ЦП. Вкупе эти два чипа называются – чипсет.
Чипсет (англ. chipset) — набор микросхем, спроектированных для совместной работы с целью выполнения набора каких-либо функций. Так, в компьютерах чипсет, размещаемый на материнской плате выполняет роль связующего компонента, обеспечивающего совместное функционирование подсистем памяти, центрального процессора (ЦП), ввода-вывода и других. Чипсеты так можно встретить и в других устройствах, например, в радиоблоках сотовых телефонов.
Чаще всего чипсет современных материнских плат компьютеров состоит из двух основных микросхем северного и южного моста (иногда объединяемых в один чип, т. н. системный контроллер-концентратор (англ. System Controller Hub, SCH):
Иногда в состав чипсета включают микросхему Super I/O, которая подключается к южному мосту по шине Low Pin Count и отвечает за низкоскоростные порты: RS232, LPT, PS/2.
Существуют и чипсеты, заметно отличающиеся от традиционной схемы. Например, у процессоров для разъёма LGA 1156 функциональность северного моста (соединение с видеокартой и памятью) полностью встроена в сам процессор, и следовательно, чипсет для LGA 1156 состоит из одного южного моста, соединенного с процессором через шину DMI.
Создание полноценной вычислительной системы для персонального и домашнего компьютера на базе, состоящих из столь малого количества микросхем (чипсет и микропроцессор) является следствием развития техпроцессов микроэлектроники развивающихся по закону Мура.
В создании чипсетов, обеспечивающих поддержку новых процессоров, в первую очередь заинтересованны фирмы-производители процессоров. Исходя из этого, ведущими фирмами (Intel и AMD) выпускаются пробные наборы, специально для производителей материнских плат, так называемые англ. referance-чипсеты. После обкатки на таких чипсетах, выпускаются новые серии материнских плат, и по мере продвижения на рынок лицензии (а учитывая глобализацию мировых производителей, кросс-лицензии) выдаются разным фирмам-производителям и, иногда, субподрядчикам производителей материнских плат.
Список основных производителей чипсетов для архитектуры x86: Intel, NVidia, ATI/AMD: (после перекупки в 2006 году ATi вошла в состав Advanced Micro Devices), Via, SiS
Микропроцессор (ЦП)- является полным механизмом вычисления.
BIOS (Basic Input-Output System) микросхемы основной системы ввода/вывода.
Технология Dual Bios на материнских платах производства Gigabyte. В случае сбоя основного bios его можно восстановить из резервной микросхемы.
Батарейка CMOS. Служит для хранения настроек BIOS и для поддержания системного времени в актуальном состоянии.
Аудиокодек (англ. Audio codec; аудио кодер/декодер) — компьютерная программа или аппаратное средство, предназначенное для кодирования или декодирования аудиоданных.
Сетевой контроллер (Onboard LAN).
Сетевой контроллер (Onboard LAN) представляет собой отдельную микросхему. Как и в случае с аудио кодеком при выходе из строя может сильно греться. Ремонтируется так же заменой или демонтажем.
Иногда, при неисправности внуренней сетевухи или звуковухи компьютер может не стартануть вводя в ступор южник. Можно починить материнскую плату просто отпаяв микросхему и как правило с вероятностью 80% компьютер заводится и тогда отключив в BIOS
сеть и/или звук и вставив внешнюю плату можно пользоваться компьютером без опаски.
Помимо микропроцессора и системной памяти на системной ( материнской) плате располагаются и другие важные модули, обеспечивающие работоспособность компьютера: контроллеры прерываний и прямого доступа, тактовый генератор , системный таймер , буферные микросхемы, контроллер шины и т.д. В первых компьютерах семейства все эти функции выполняли отдельные специализированные микросхемы сравнительно низкой степени интеграции. В современных компьютерах применяются сверхбольшие интегральные схемы, которые, тем не менее, обеспечивают полную программную и аппаратную совместимость с предыдущими моделями. Эти микросхемы называются набором микросхем или 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 ) с программно заданной периодичностью. Состояния всех счетчиков (секунд, минут, часов и т.д.) программно доступны как по чтению, так и по записи, что позволяет устанавливать нужное время и следить за ним.
Читайте также: