Наверняка многие и вас знают или даже видели, каким образом управляются большие автоматизированные объекты, например, атомная станция или завод со множеством технологических линий: основное действо часто происходит в большой комнате, с кучей экранов, лампочек и пультов. Это комплекс управления обычно называется ГЩУ — главный щит управления для контроля за производственным объектом.
Наверняка вам было интересно, как всё это работает с точки зрения аппаратной и программной части, и какие там используются протоколы передачи данных. В этой статье мы разберемся, как различные данные попадают на ГЩУ, как подаются команды на оборудование, и что вообще нужно, чтобы управлять компрессорной станцией, установкой производства пропана, линией сборки автомобиля или даже канализационно-насосной установкой.
- Нижний уровень или полевая шина — то, с чего всё начинается
- Верхний уровень: от гирлянды до целой рабочей станции
- «Древние» протоколы передачи данных: Modbus и HART
- Второе поколение протоколов или не совсем промышленные шины ISA, PCI(e) и VME
- Как работают современные промышленные шины и протоколы
- Последовательные и параллельные шины
- 🔥 Видео
Видео:Цифровые интерфейсы и протоколыСкачать
Нижний уровень или полевая шина — то, с чего всё начинается
Этот неясный для непосвященных набор слов используется, когда нужно описать средства общения устройств управления с подведомственным оборудованием, например, модулями ввода-вывода или измерительными устройствами.
Под устройствами управления мы подразумеваем ПЛК, т.е. программируемые логические контроллеры (англ. PLC), или ПКА, т.е. программируемые контроллеры автоматизации (англ. PAC). Между ПЛК и ПКА есть некоторые различия, однако, в рамках данной статьи они не существенны, поэтому для упрощения будем использовать общий термин «контроллер».
В русскоязычном сообществе асушников канал общения между контроллером и другими устройствами обычно называют «полевой шиной», потому что он отвечают за передачу данных, которые приходят с «поля».
«Поле» — это глубокий профессиональный термин, обозначающий тот факт, что некое оборудование (например, датчики или исполнительные механизмы), с которым взаимодействует контроллер, находятся где-то далеко-далеко, на улице, в полях, под покровом ночи. И неважно, что датчик может быть расположен в полуметре от контроллера и измерять, допустим, температуру в шкафу автоматики, все равно считается, что он находится «в поле». Чаще всего сигналы с датчиков, приходящие в модули ввода-вывода все-таки преодолевают расстояния от десятков до сотен метров (а иногда и больше), собирая информацию с удаленных площадок или оборудования. Собственно, поэтому шина обмена, по которой контроллер получает значения с этих самых датчиков, называется обычно полевой шиной или реже шиной нижнего уровня или промышленной шиной.
Тут следует отметить, что в Европе и США полевым уровнем считаются только сами устройства, расположенные «в поле», но не среда передачи данных. В российских реалиях термин «полевая шина» или «шина нижнего уровня», пожалуй, слегка размыт и обозначает способ передачи данных от модулей ввода-вывода к контроллеру и наоборот.
Общая схема автоматизации промышленного объекта
Итак, электрический сигнал от датчика проходит некое расстояние по кабельным линиям (чаще по обычному медному кабелю с некоторым количеством жил), к которым подсоединяются несколько датчиков. Затем сигнал попадает в модуль обработки (модуль ввода-вывода), там он преобразуется в понятный контроллеру цифровой язык. Далее этот сигнал по полевой шине попадает непосредственно в контроллер, где и обрабатывается уже окончательно. На основе таких сигналов и строится логика работы самого контроллера. Существует и обратный путь: от контроллера команда управления по полевой шине попадает в модуль вывода, где преобразуется из цифрового вида в аналоговый и поступает по кабельным линиям к исполнительным механизмам и различным устройствам (на схеме выше не указаны).
Видео:03. Основы устройства компьютера. Память и шина. [Универсальный программист]Скачать
Верхний уровень: от гирлянды до целой рабочей станции
Верхним уровнем называют все то, к чему может прикасаться обычный смертный оператор, который управляет технологическим процессом. В простейшем случае верхний уровень представляет собой набор лампочек и кнопочек. Лампочки сигнализируют оператору о неких происходящих событиях в системе, кнопочки служат для подачи команд контроллеру. Такую систему часто называют «гирлянда» или «ёлка», потому что выглядит очень похоже (как можно убедиться по фотографии в начале статьи).
Если оператору повезло больше, то в качестве верхнего уровня ему достанется панель оператора — некий плоскопанельный компьютер, который тем или иным образом получает данные для отображения от контроллера и выводит их на экран. Такая панель обычно монтируется на сам шкаф автоматики, поэтому взаимодействовать с ней приходится, как правило, стоя, что вызывает неудобства, плюс качество и размер изображения — если это малоформатная панелm — оставляет желать лучшего.
Ну и, наконец, аттракцион невиданной щедрости — рабочая станция (а то и несколько дублирующих), представляющая собой обычный персональный компьютер.
Для наглядного отображения информации на рабочих станциях и плоскопанельных компьютерах используют специализированное программное обеспечение — SCADA-системы. На человеческий язык SCADA переводится как система диспетчерского управления и сбора данных. Она включает в себя множество компонентов, таких как человеко-машинный интерфейс, визуализирующий технологические процессы, систему управления этими процессами, систему архивирования параметров и ведение журнала событий, систему управления тревогами и т.д. Всё это дает оператору полноценную картину происходящих на производстве процессов, а также возможность ими управлять и оперативно реагировать на отклонения от технологического процесса.
Оборудование верхнего уровня обязано взаимодействовать неким образом с контроллером (иначе зачем оно нужно?). Для такого взаимодействия используются протоколы верхнего уровня и некая технология передачи, например, Ethernet или UART. В случае с «ёлкой» таких изощрений, конечно, не нужно, лампочки зажигаются с использованием обычных физических линий, никаких мудреных интерфейсов и протоколов там нет.
В общем-то, этот верхний уровень менее интересен, нежели полевая шина, поскольку этого верхнего уровня может вообще не быть (из серии нечего там смотреть оператору, контроллер сам разберется, что и как нужно делать).
Видео:Синхронные и асинхронные линии связиСкачать
«Древние» протоколы передачи данных: Modbus и HART
Мало кто знает, но на седьмой день создания мира Бог не отдыхал, а создавал Modbus. Наравне с HART-протоколом, Modbus, пожалуй, самый старый промышленный протокол передачи данных, он появился аж в 1979 году.
В качестве среды для передачи изначально использовался последовательный интерфейс, затем Modbus реализовали поверх TCP/IP. Это синхронный протокол по схеме «мастер-слейв» (главный-подчиненный), в котором используется принцип «запрос-ответ». Протокол довольно тяжеловесный и медленный, скорость обмена зависит от характеристик приемника и передатчика, но обычно счет идет чуть ли не на сотни миллисекунд, особенно в реализации через последовательный интерфейс.
Более того, регистр передачи данных Modbus является 16-битным, что сразу же накладывает ограничения на передачу типов real и double. Они передаются либо по частям, либо с потерей точности. Хотя Modbus до сих пор повсеместно используется в случаях, когда не нужна высокая скорость обмена и потеря передаваемых данных не критична. Многие производители различных устройств любят расширять протокол Modbus своим исключительным и очень оригинальным образом, добавляя нестандартные функции. Поэтому данный протокол имеет множество мутаций и отклонений от нормы, но все же до сих пор успешно живет в современном мире.
Протокол HART тоже существует с восьмидесятых годов, это промышленный протокол обмена поверх двухпроводной линии токовой петли, в которую напрямую включаются датчики 4-20 мА и другие приборы с поддержкой протокола HART.
Читайте также: Датчик давления в шинах рендж ровер 2015
Для коммутации линий HART используются специальные устройства, так называемые HART-модемы. Также существуют преобразователи, которые на выходе предоставляют пользователю уже, допустим, протокол Modbus.
Примечателен HART, пожалуй, тем, что помимо аналоговых сигналов датчиков 4-20 мА в цепи передается и цифровой сигнал самого протокола, это позволяет соединить цифровую и аналоговую часть в одной кабельной линии. Современные HART-модемы могут подключаться в USB-порт контроллера, соединяться по Bluetooth, либо же старинным способом через последовательный порт. Десяток лет назад по аналогии с Wi-Fi появился и беспроводной стандарт WirelessHART, работающий в диапазоне ISM.
Видео:Лекция 310. Шина USB - функциональная схемаСкачать
Второе поколение протоколов или не совсем промышленные шины ISA, PCI(e) и VME
На смену протоколам Modbus и HART пришли не совсем промышленные шины, такие как ISA (MicroPC, PC/104) или PCI/PCIe (CompactPCI, CompactPCI Serial, StacPC), а также VME.
Настала эра вычислителей, имеющих в своем распоряжении универсальную шину передачи данных, куда можно подключать различные платы (модули) для обработки некоего унифицированного сигнала. Как правило, в этом случае процессорный модуль (вычислитель) вставляется в так называемый каркас, который обеспечивает взаимодействие по шине с другими устройствами. Каркас, или, как его любят называть трушные автоматизаторы, «крейт», дополняется необходимыми платами ввода-вывода: аналоговыми, дискретными, интерфейсными и т.д., либо все это слепливается в виде бутерброда без каркаса — одна плата над другой. После чего это многообразие на шине (ISA, PCI, etc.) обменивается данными с процессорным модулем, который таким образом получает информацию с датчиков и реализовывает некую логику.
Контроллер и модули ввода-вывода в каркасе PXI на шине PCI. Источник: National Instruments Corporation
Все бы ничего с этими шинами ISA, PCI(e) и VME, особенно для тех времен: и скорость обмена не огорчает, и расположены компоненты системы в едином каркасе, компактно и удобно, горячей замены плат ввода-вывода может и не быть, но пока еще и не очень хочется.
Но есть ложка дегтя, и не одна. Распределенную систему довольно сложно построить в такой конфигурации, шина обмена локальная, нужно что-то придумывать для обмена данными с другими подчиненными или равноправными узлами, тот же Modbus поверх TCP/IP или какой другой протокол, в общем, удобств маловато. Ну и вторая не очень приятная штука: платы ввода-вывода обычно ждут на вход какой-то унифицированный сигнал, и гальванической развязки с полевым оборудованием у них нет, поэтому нужно городить огород из различных модулей преобразования и промежуточной схемотехники, что сильно усложняет элементную базу.
Промежуточные модули преобразования сигнала с гальванической развязкой. Источник: DataForth Corporation
«А что с протоколом обмена по промышленной шине?» — спросите вы. А ничего. Нет его в такой реализации. По кабельным линиям сигнал попадает с датчиков на преобразователи сигналов, преобразователи выдают напряжение на дискретную или аналоговую плату ввода-вывода, а данные с платы уже читаются через порты ввода/вывода, средствами ОС. И никаких специализированных протоколов.
Видео:лекция 403 CAN шина- введениеСкачать
Как работают современные промышленные шины и протоколы
А что теперь? К сегодняшнему дню классическая идеология построения автоматизированных систем немного поменялась. Роль сыграли множество факторов, начиная с того, что автоматизировать тоже должно быть удобно, и заканчивая тенденцией на распределенные автоматизированные системы с удаленными друг от друга узлами.
Пожалуй, можно сказать, что основных концепций построения систем автоматизации на сегодняшний день две: локализованные и распределенные автоматизированные системы.
В случае с локализованными системами, где сбор данных и управление централизовано в одном конкретном месте, востребована концепция некоего набора модулей ввода-вывода, соединенных между собой общей быстрой шиной, включая контроллер со своим протоколом обмена. При этом, как правило, модули ввода-вывода включают в себя и преобразователь сигнала и гальваническую развязку (хотя, разумеется, не всегда). То есть конечному потребителю достаточно понять, какие типы датчиков и механизмов будут присутствовать в автоматизированной системе, сосчитать количество требуемых модулей ввода-вывода для разных типов сигналов и соединить их в одну общую линейку с контроллером. В этом случае, как правило, каждый производитель использует свой любимый протокол обмена между модулями ввода-вывода и контроллером, и вариантов тут может быть масса.
В случае распределенных систем справедливо все, что сказано в отношении локализованных систем, кроме этого, важно, чтобы отдельные компоненты, например, набор модулей ввода-вывода плюс устройство сбора и передачи информации — не очень умный контроллер, который стоит где-нибудь в будке в поле, рядом с краном, который перекрывает нефть, — могли взаимодействовать с такими же узлами и с главным контроллером на большом расстоянии с эффективной скоростью обмена.
Как разработчики выбирают протокол для своего проекта? Все современные протоколы обмена обеспечивают довольно высокое быстродействие, поэтому зачастую выбор того или иного производителя обусловлен не скоростью обмена по этой самой промышленной шине. Не так важна и реализация самого протокола, потому что, с точки зрения разработчика системы, это все равно будет черный ящик, который обеспечивает некую внутреннюю структуру обмена и не рассчитан на вмешательство извне. Чаще всего обращают внимание на практические характеристики: производительность вычислителя, удобство применения концепции производителя к поставленной задаче, наличие нужных типов модулей ввода-вывода, возможность горячей замены модулей без разрыва шины и т.д.
Популярные поставщики оборудования предлагают собственные реализации промышленных протоколов: например, всем известная компания Siemens разрабатывает свою серию протоколов Profinet и Profibus, компании B&R — протокол Powerlink, Rockwell Automation — протокол EtherNet/IP. Отечественное решение в этом списке примеров: версия протокола FBUS от российской компании Fastwel.
Есть и более универсальные решения, которые не привязаны к конкретному производителю, такие как EtherCAT и CAN. Мы подробно разберем эти протоколы в продолжении статьи и разберемся, какие из них лучше подходят для конкретных применений: автомобильной и аэрокосмической промышленности, производства электроники, систем позиционирования и робототехники. Оставайтесь на связи!
Видео:15 Параллельные и последовательные интерфейсыСкачать
Последовательные и параллельные шины
По способу передачи сигнала все шины можно разделить на последовательные и параллельные.
Основным отличием параллельных шин от последовательных является сам способ передачи данных. Параллельные шины можно рассматривать как совокупность сигнальных линий (можно сказать что просто проводников), объединённых по их назначению (данные, адреса, управление), которые имеют определённые электрические характеристики и протоколы передачи информации. Группы этих сигнальных линий также называются шинами:
Читайте также: Шина центара ванти винтер
— Линии для обмена данными (шина данных);
— Линии для адресации данных (шина адреса);
— Линии для управления данными (шина управления);
Для каждой из этих шин вводится понятие ширины. В параллельных шинах понятие «ширина шины» соответствует её разрядности – количеству сигнальных линий, или, другими словами, количеству одновременно передаваемых («выставляемых на шину») битов информации. Сигнал на каждой линии может принимать два значения 0 и 1 (линия с двумя состояниями). Сигналом для старта и завершения цикла приёма/передачи данных служит внешний синхросигнал.
Для передачи в шине может использоваться положительная логика или отрицательная логика. При положительной логике высокий уровень напряжения соответствует логической единице на соответствующей линии связи, низкий – логическому нулю. При отрицательной логике – наоборот.
На рис … показана в приближенном виде передача данных по шине шириной 8 разрядов (т.е. шина имеет 8 линий для передачи данных и одну для синхросигнала). Понятно, что за один цикл по 8-разрядной шине может передаваться один байт.
Проблема параллельных шин в том, что каждая линия такой шины имеет свою длину, свою паразитную ёмкость и индуктивность, а также взамоиндуктивность. При параллельной передаче байты мешают друг другу вследствие наличия взаимоиндуктивности, поэтому вероятность ошибок увеличивается, чем ограничивается частота шины.
Помимо линий (проводников) важным компонентом шины является контроллер шины,который осуществляет управление процессом обмена данными и служебными сигналами и обычно выполняется в виде отдельной микросхема либо интегрируется в микросхемы Chipset. Для работы контроллера шины нужен внешний синхронизирующий сигнал (тактовая частота), который вырабатывается опорным генератором.
Еще раз обсудим особенности каждой из видов шин (линий), перечисленных выше.
Шина данных – это основная шина, по которой собственно и происходит передача информации. Количество ее разрядов (линий связи) определяет скорость и эффективность информационного обмена. Скорость передачи данных (она же пропускная способность) высчитывается по формуле:
скорость передачи данных = тактовая частота * разрядность * [2..4]
Полученное число не является реальным. В жизни на шины влияет куча всевозможных факторов: неэффективная проводимость материалов, помехи, недостатки конструкции и сборки а также многое другое. По некоторым данным, разность между теоретической скоростью передачи данных и практической может составлять до 25%.
Будет передано |
Синхросигнал |
Рисунок Работа параллельной шины, сигналы на линии данных |
Шина данных всегда двунаправленная, так как предполагает передачу информации в обоих направлениях.
Шина адреса — вторая по важности шина, которая определяет максимально возможную сложность микропроцессорной системы, то есть допустимый объем памяти и, следовательно, максимально возможный размер программы и максимально возможный объем запоминаемых данных. Количество адресов, обеспечиваемых шиной адреса, определяется как N =2 I , где I, – количество разрядов. Разрядность шины адреса обычно кратна 4 и может достигать 64. Шина адреса может быть однонаправленной (когда магистралью всегда управляет только процессор) или двунаправленной (когда процессор может временно передавать управление магистралью другому устройству).
Для снижения общего количества линий связи магистрали часто применяется мультиплексирование шин адреса и данных. То есть одни и те же линии связи используются в разные моменты времени для передачи как адреса, так и данных (в начале — адрес, потом — данные). Понятно, что мультиплексированная шина адреса/данных обеспечивает меньшую скорость обмена. Иногда в шинах применяется частичное мультиплексирование, то есть часть разрядов данных передается по немультиплексированным линиям, а другая часть — по мультиплексированным с адресом линиям.
Шина управления — это вспомогательная шина, управляющие сигналы на которой обеспечивают согласование работы процессора (или другого хозяина магистрали, задатчика, master) с работой памяти или устройства ввода/вывода (устройства-исполнителя, slave).
Для успешной передачи данных не достаточно установить их на шине данных и задать адрес на шине адреса. Для того чтобы данные были записаны (считаны) в регистре устройств, подключенных к шине, адреса которых указаны на шине адреса, необходим ряд служебных сигналов: записи/считывания, готовности к приему/передачи данных, подтверждения приема данных, аппаратного прерывания, управления и др. Все эти сигналы передаются по шине управления.
Управляющие сигналы также обслуживают запрос и предоставление прерываний, запрос и предоставление прямого доступа.
Самые главные управляющие сигналы — это стробы обмена, то есть сигналы, формируемые процессором и определяющие моменты времени, в которые производится пересылка данных по шине данных, обмен данными.
— Строб записи (вывода), который определяет момент времени, когда устройство-исполнитель может принимать данные, выставленные процессором на шину данных;
— Строб чтения (ввода), который определяет момент времени, когда устройство-исполнитель должно выдать на шину данных код данных, который будет прочитан процессором.
При этом большое значение имеет то, как процессор заканчивает обмен в пределах цикла, в какой момент он снимает свой строб обмена. Возможны два пути решения, синхронный и асинхронный обмен, (рис. ….) соответственно, шины также делятся на синхронные и асинхронные:
— При синхронном обмене процессор заканчивает обмен данными самостоятельно, через раз и навсегда установленный временной интервал выдержки (tвыд), то есть без учета интересов устройства-исполнителя;
— При асинхронном обмене процессор заканчивает обмен только тогда, когда устройство-исполнитель подтверждает выполнение операции специальным сигналом (так называемый режим handshake — рукопожатие).
Достоинства синхронного обмена – более простой протокол обмена, меньшее количество управляющих сигналов. Недостатки — отсутствие гарантии, что исполнитель выполнил требуемую операцию, а также высокие требования к быстродействию исполнителя, при синхронном обмене приходится искусственно увеличивать длительность строба обмена для соответствия требованиям большего числа исполнителей, чтобы они успевали обмениваться информацией в темпе процессора.
Рисунок Синхронный и асинхронный обмен.
Достоинства асинхронного обмена — более надежная пересылка данных, возможность работы с самыми разными по быстродействию исполнителями. Недостаток — необходимость формирования сигнала подтверждения всеми исполнителями, то есть дополнительные аппаратурные затраты.
Линии шины управления могут быть как однонаправленными, так и двунаправленными.
В последовательных шинах используется одна сигнальная линия (возможно использование двух отдельных каналов для разделения потоков приёма-передачи). Соответственно, информационные биты здесь передаются последовательно. Данные для передачи через последовательную шину облекаются в пакеты (пакет – единица информации, передаваемая как целое между двумя устройствами), в которые, помимо собственно полезных данных, включается некоторое количество служебной информации: старт-биты, заголовки пакетов, синхросигналы, биты чётности или контрольные суммы, стоп-биты и т. п.
В качестве примера приведем описание обмена для последовательного интерфейса RS-232.
Данные передаются пакетами по одному байту (8 бит). Вначале передаётся стартовый бит, противоположной полярности состоянию незанятой линии, после чего передаётся непосредственно кадр полезной информации – 8 бит. Увидев стартовый бит, приемник выжидает интервал T1 и считывает первый бит, потом через интервалы T2 считывает остальные информационные биты. Последний бит — стоповый бит, говорящий о том, что передача завершена. Очень важно, чтобы тактовые частоты приемника и передатчика были одинаковыми, допустимое расхождение — не более 10%.
Читайте также: Шина для дифавтоматов abb 3 фазы
Рисунок Работа последовательной шины, формат данных RS-232
Последовательные шины – не обязательно значит «однобитные», здесь возможны и 2, и 8, и 32 бит ширины при сохранении присущей последовательным шинам пакетной передачи данных, то есть в пакете импульсов данные, адрес, другая служебная информация разделены на логическом уровне.
Последовательные шины часто используют более чем два состояния линии (иногда дополнительные состояния используют для служебной информации).
Малое количество сигнальных линий и логически более сложный механизм передачи данных последовательных шин оборачиваются для них существенным преимуществом – возможностью наращивания рабочих частот. Последовательный способ передачи имеет преимущество перед параллельным если длина линии превышает хотя бы несколько сантиметров.
Поясним понятие прерывание появившееся при рассмотрении шины управления. Прерывание это сигнал, сообщающий процессору о наступлении какого-либо события, иными словами, это событие, которое говорит системе, что что-то произошло, и требует вмешательства. При этом выполнение текущей последовательности команд приостанавливается, и управление передаётся обработчику прерывания, который выполняет работу по обработке события и возвращает управление в прерванный код. Прерывание используется для быстрой реакции процессора на ситуации, о которых сообщают внешние устройства.
Для того чтобы устройство могло сообщить процессору о наступлении события, на шине управления присутствуют специальные линии прерывания – IRQ (Interrupt ReQuest — запрос прерывания). Каждое устройство, которое желает иметь возможность «обращать на себя внимание» процессора, должно быть связано с одной из линий прерывания на шине.
Когда устройство собирается оповестить процессор о наступлении какого-либо события (например, нажатии клавиши, завершении операции чтения/записи на диске, поступлении сигнала от модема, и т.п.), оно выставляет на лини прерывания шины управления сигнал, называемым запросом прерывания
Когда по одной из линий IRQ поступает сигнал (см. рис. …), процессор запоминает текущее значение счетчика команд и текущее состояние регистра флагов, после этого начинает выполняться обработчик прерываний(или процедура обслуживания прерываний) – это специальная процедура, вызываемая по прерыванию для выполнения его обработки. Когда обработчик прерываний выполнит свою работу, происходит возврат из прерывания, т.е. процессор продолжит выполнять прерванную программу (с запомненного адреса и с запомненным регистром состояния).
С каждой из линий IRQ связан адрес программы обработки называемый вектор прерывания (или адрес вектор). О местоположении векторов прерывания будет рассказано в разделе посвященном памяти.
Первое поколение процессоров использовало 8 линий прерывания, а начиная со второго 15 линий. Эти линии обозначаются как IRQ – IRQ15.
Посмотреть с какой из линий IRQ связано то или иное устройство в сиcтеме Windows можно при помощи диспетчера устройств (Рис …).
Рисунок Ресурсы устройства «последовательный порт»
Несколько устройств могут использовать одно IRQ совместно. При совместном использовании несколькими устройствами одной линии возможен конфликт прерываний. Если два устройства находятся на одной линии прерываний, то операционная система может их спутать и переслать исполняемый кусок программы не тому «железке». Например, сетевая плата и звуковая карта находятся на 10 прерывании. Сетевая карта получает пакет из локальной сети с запросом на получение файла и отправляет запрос на прерывание центральному процессору.
Процессор отрабатывает прерывание, останавливает исполняемую задачу и передает управление драйверу сетевой карты, для отработки необходимых для приемки файла действий. Драйвер начинает работу с устройством, от которого пришло прерывание. Вот только работать он начинает не с сетевой платой, а со звуковой картой, находящейся на той же линии, передавая ей команды для приемки файла. Звуковая карта пытается исполнить принятые команды, что приведет к зависанию компьютера.
Чтобы избежать такого конфликта иногда приходится переназначать прерывания для устройств вручную.
Существует еще одна небольшая тонкость. Все линии прерываний имеют свой приоритет. Чем выше приоритет у линии прерывания, тем быстрее процессор ответит на запрос от устройства находящегося на этой линии. Обслуживание прерываний с учетом приоритета означает, что если во время обработки прерывания поступает более приоритетное прерывание, то текущая процедура обработки прерывания прекращается, и процессор начинает выполнять обработку вновь поступившего более приоритетного прерывания. После завершения этой процедуры процессор возвращается к выполнению приостановленной процедуры обработки прерывания. С другой стороны если во время выполнения процедуры обслуживания прерывания процессор получает новое прерывание с меньшим приоритетом, то это прерывание (менее приоритетное) будет обработано только после завершения текущей процедуры обработки прерывания.
Все что говорилось о прерывания выше, относилось к аппаратным прерываниям, еще раз напоминаем, что они используются для организации взаимодействия с внешними устройствами.
Помимо аппаратных существуют программные прерывания, которые вызываются следующими ситуациями:
— особый случай, возникший при выполнении команды и препятствующий нормальному продолжению программы (деление на ноль, переполнение, нарушение защиты памяти, отсутствие нужной страницы в оперативной памяти и т.п.);
— наличие в программе специальной команды прерывания, используемой обычно программистом при обращениях к специальным функциям операционной системы для ввода-вывода информации.
Прямой доступ к памяти (DMA)
До сих пор мы рассматривали шину как магистраль, обеспечивающую связь процессора со всеми остальными устройствами компьютера. Однако, возможен режим при котором обмен по шине идет без участия процессора. Такой режим обмена данными между устройствами или же между устройством и памятью (RAM), без участия процессора называется прямой доступ к памяти (Direct Memory Access, DMA). В результате скорость передачи увеличивается, так как данные не пересылаются в процессор и обратно.
В упрощенном виде использование этого режима выглядит так: Внешнее устройство, требующее обслуживания, сигнализирует процессору (для этого используется специальная линия в шине управления), что режим прямого доступа к памяти необходим, в ответ на это процессор заканчивает выполнение текущей команды и отключается от шины, сигнализируя запросившему устройству, что обмен в режиме DMA можно начинать. (Говорят, что устройство осуществило захват шины — bus mastering) Устройство, успешно осуществившее захват шины, самостоятельно выставляет на шину сигналы адреса и управления, и исполняет в течение какого-то времени ту же ведущую роль на шине, что и процессор. Доступ процессора к шине при этом кратковременно блокируется.
Когда пересылка информации будет закончена, процессор вновь возвращается к прерванной программе, продолжая ее с той точки, где его прервали.
- Свежие записи
- Нужно ли менять пружины при замене амортизаторов
- Скрипят амортизаторы на машине что делать
- Из чего состоит стойка амортизатора передняя
- Чем стянуть пружину амортизатора без стяжек
- Для чего нужны амортизаторы в автомобиле
🔥 Видео
Лекция "Интерфейсы (часть I). RS-232/422/485. SPI"Скачать
Как работает LIN шина автомобиля. K-Line L-Line шины данных. Лин шина автомобиля. Lin-bus networkСкачать
Последовательное и Параллельное Соединение Проводников // Физика 8 классСкачать
Что такое интерфейс RS485? Интерфейс RS485 и оборудование BolidСкачать
Шины ОГЭ 2024. Задания 1-5 ОГЭ по математикеСкачать
Лекция 256. Интерфейс RS-485Скачать
2020весна ЦУиМП Параллельная шинаСкачать
Как в дома приходит НУЛЕВОЙ проводник? Отследили путь от электростанции к розетке! #энерголикбезСкачать
лекция 373 элементы протокола Modbus RTUСкачать
Питание DALI | Особенности подключения | Шина DALIСкачать
Лекция 307. Интерфейс SPIСкачать
Подробно про CAN шинуСкачать
Как правильно подключить УЗОСкачать