ГОС 2015 — МПС


Микропроцессорные системы
Аппаратные средства поддержки реального и календарного времени в микропроцессорных и микроконтроллерных системах (таймеры и процессоры событий).
Таймеры и процессоры событий
Большинство задач управления, которые реализуются с помощью МК, требуют исполнения их в реальном времени. Под этим понимается способность системы получить информацию о состоянии управляемого объекта, выполнить необходимые расчетные процедуры и выдать управляющие воздействия в течение интервала времени, достаточного для желаемого изменения состояния объекта. Возлагать функции формирования управления в реальном масштабе времени только на центральный процессор неэффективно, так как это занимает ресурсы, необходимые для расчетных процедур. Поэтому в большинстве современных МК используется аппаратная поддержка работы в реальном времени с использованием таймера (таймеров). Модули таймеров служат для приема информации о времени наступления тех или иных событий от внешних датчиков событий, а также для формирования управляющих воздействий во времени. Модуль таймера 8-разрядного МК представляет собой 8-ми или 16-разрядный счетчик со схемой управления. Схемотехникой МК обычно предусматривается возможность использования таймера в режиме счетчика внешних событий, поэтому его часто называют таймером/счетчиком. Структура типичного 16-разрядного таймера/счетчика в составе МК приведена.  В памяти МК 16-разрядный счетчик отображается двумя регистрами: TH — старший байт счетчика, TL — младший байт. Регистры доступны для чтения и для записи. Направление счета — только прямое, то есть при поступлении входных импульсов содержимое счетчика инкрементируется. В зависимости от настройки счетчик может использовать один из источников входных сигналов:
импульсную последовательность с выхода управляемого делителя частоты fBUS;
сигналы внешних событий, поступающие на вход TOCKI контроллера.
В первом случае говорят, что счетчик работает в режиме таймера, во втором — в режиме счетчика событий. При переполнении счетчика устанавливается в «единицу» триггер переполнения TF, который генерирует запрос на прерывание, если прерывания от таймера разрешены. Пуск и останов таймера могут осуществляться только под управлением программы. Программным способом можно также установить старший и младший биты счетчика в произвольное состояние или прочитать текущий код счетчика.Рассмотренный «классический» модуль таймера/счетчика широко применяется в различных моделях относительно простых МК. Он может использоваться для измерения временных интервалов и формирования последовательности импульсов. Основными недостатками «классического» таймера/счетчика являются:
потери времени на выполнение команд пуска и останова таймера, приводящие к появлению ошибки при измерении временных интервалов и ограничивающие минимальную длительность измеряемых интервалов времени единицами мс;
сложности при формировании временных интервалов (меток времени), отличных от периода полного коэффициента счета, равного (Kдел/fBUS) · 216;
невозможность одновременного обслуживания (измерения или формирования импульсного сигнала) сразу нескольких каналов.
Первые их двух перечисленных недостатков были устранены в усовершенствованном модуле таймера/счетчика, используемом в МК семейства MCS-51 (Intel). Дополнительная логика счетного входа позволяет тактовым импульсам поступать на вход счетчика, если уровень сигнала на одной из линий ввода равен «1». Такое решение повышает точность измерения временных интервалов, так как пуск и останов таймера производится аппаратно. Также в усовершенствованном таймере реализован режим перезагрузки счетчика произвольным кодом в момент переполнения. Это позволяет формировать временные последовательности с периодом, отличным от периода полного коэффициента счета. Однако эти усовершенствования не устраняют главного недостатка модуля «классического» таймера — одноканального режима работы. Совершенствование подсистемы реального времени МК ведется по следующим направлениям:
увеличение числа модулей таймеров/счетчиков. Этот путь характерен для фирм, выпускающих МК со структурой MCS-51, а также для МК компаний Mitsubishi и Hitachi;
модификация структуры модуля таймера/счетчика, при которой увеличение числа каналов достигается не за счет увеличения числа счетчиков, а за счет введения дополнительных аппаратных средств входного захвата (input capture — IC) и выходного сравнения (output compare — OC). Такой подход используется, в частности, в МК компании Motorola.
Принцип действия канала входного захвата таймера/счетчика иллюстрирует.Схема детектора события «наблюдает» за уровнем напряжения на одном из входов МК. Чаще всего это одна из линий порта ввода/вывода. При изменении уровня логического сигнала с «0» на «1» и наоборот вырабатывается строб записи, и текущее состояние счетчика   таймера записывается в 16-разрядный регистр входного захвата. Описанное действие в микропроцессорной технике называют событием захвата. Предусмотрена возможность выбора типа сигнала на входе, и это воспринимается как событие:
положительный (передний) фронт сигнала;
отрицательный (задний) фронт сигнала;
любое изменение логического уровня сигнала.
Выбор типа события захвата устанавливается в процессе инициализации таймера и может неоднократно изменяться в ходе выполнения программы. Каждое событие захвата приводит к установке в «1» триггера входного захвата и появлению на его выходе флага (признака) входного захвата ICF. Состояние триггера входного захвата может быть считано программно, а если прерывания по событию захвата разрешены — формируется запрос на прерывание   INT IC.Использование режима входного захвата позволяет исключить ошибки измерения входного интервала времени, связанные со временем перехода к подпрограмме обработки прерывания, так как копирование текущего состояния счетчика осуществляется аппаратными, а не программными средствами. Однако время перехода на подпрограмму обработки прерывания накладывает ограничение на длительность измеряемого интервала времени, так как предполагается, что второе событие захвата произойдет позже, чем код первого события будет считан МК.Структура аппаратных средств канала выходного сравнения представлена на.Цифровой компаратор непрерывно сравнивает текущий код счетчика   таймера с кодом, который записан в 16-разрядном регистре выходного сравнения. В момент равенства кодов на одном из выходов МК устанавливается заданный уровень логического сигнала. Обычно предусмотрено три типа изменения сигнала на выходе Pxj в момент события выходного сравнения:
установка высокого логического уровня;
установка низкого логического уровня;
инвертирование сигнала на выходе.
При наступлении события сравнения устанавливаются в «1» триггер выходного сравнения и соответствующий ему признак выходного сравнения OCF. Аналогично режиму входного захвата состояние триггера выходного сравнения может быть считано программно, а если прерывания по событию сравнения разрешены — формируется запрос на прерывание   INT OC.Режим выходного сравнения предназначен, прежде всего, для формирования временных интервалов заданной длительности. Длительность сформированного временного интервала определяется только разностью кодов, последовательно загружаемых в регистр выходного сравнения, и не зависит от программного обеспечения МК. Время, необходимое для записи нового значения кода в регистр канала сравнения, ограничивает минимальную длительность формируемого временного интервала.Модули усовершенствованного таймера используются в составе МК в различных модификациях. При этом число каналов входного захвата и выходного сравнения в модуле может быть различным. Так, в МК семейства HC05 фирмы Motorola типовыми решениями являются модули 1IC+1OC или 2IC+2OC, а модуль таймера в составе МК только один. В ряде модулей каналы могут быть произвольно настроены на функцию входного захвата или выходного сравнения посредством инициализации. Счетчик модуля усовершенствованного таймера может не иметь функции программного останова. В этом случае состояние счетчика нельзя синхронизировать с каким-либо моментом работы МК, и такой счетчик характеризуется как свободно считающий (free counter).Аппаратные средства усовершенствованного таймера позволяют решить многие задачи управления в реальном времени. Однако по мере роста сложности алгоритмов управления отчетливо проявляются ограничения модулей усовершенствованного таймера, а именно:
недостаточное число каналов захвата и сравнения, принадлежащих одному счетчику временной базы. Это не позволяет сформировать синхронизированные между собой многоканальные импульсные последовательности;
однозначно определенная конфигурация канала (или захват или сравнение) часто не удовлетворяет потребностям решаемой задачи;
формирование сигналов по методу широтно-импульсной модуляции (ШИМ) требует программной поддержки, что снижает максимально достижимую частоту выходного сигнала.
Поэтому следующим этапом развития модулей подсистемы реального времени МК стали модули процессоров событий. Впервые модули процессоров событий были использованы компанией Intel в МК семейства 8xC51Fx. Этот модуль получил название программируемого счетного массива (Programmable Counter Array — PCA).РСА обеспечивает более широкие возможности работы в реальном масштабе времени и в меньшей степени расходует ресурсы центрального процессора, чем стандартный и усовершенствованный таймеры/счетчики. К преимуществам РСА также можно отнести более простое программирование и более высокую точность. К примеру, РСА может обеспечить лучшее временное разрешение, чем таймеры 0, 1 и 2 МК семейства MCS-51, так как счетчик РСА способен работать с тактовой частотой, втрое большей, чем у этих таймеров. РСА также может решать многие задачи, выполнение которых с использованием таймеров требует дополнительных аппаратных затрат (например, определение фазового сдвига между импульсами или генерация ШИМ-сигнала). РСА состоит из 16-битного таймера-счетчика и пяти 16-битных модулей сравнения-защелки, как показано.Таймер-счетчик РСА используется в качестве базового таймера для функционирования всех пяти модулей сравнения-защелки. Вход таймера-счетчика РСА может быть запрограммирован на счет сигналов от следующих источников:
выход делителя на 12 тактового генератора МК;
выход делителя на 4 тактового генератора МК;
сигнал переполнения таймера 0;
внешний входной сигнал на выводе ЕСI (P1.2).
Любой из модулей сравнения-защелки может быть запрограммирован для работы в следующих режимах:
защелкивания по фронту и/или спаду импульса на входе CEXi;
программируемого таймера;
высокоскоростного выхода;
широтно-импульсного модулятора.
Модуль 4 может быть также запрограммирован как сторожевой таймер (Watchdog Timer – WDT).Режим защелкивания по импульсу на входе МК эквивалентен режиму входного захвата (IC ) усовершенствованного таймера. Режимы программируемого таймера и высокоскоростного выхода близки по своим функциональным возможностям к режиму выходного сравнения (OC).В режиме ШИМ на соответствующем выводе МК формируется последовательность импульсов с периодом, равным периоду базового таймера/счетчика PCA. Значение 8-разрядного кода, записанное в младший байт регистра-защелки соответствующего модуля задает скважность формируемого сигнала. При изменении кода от 0 до 255 скважность меняется от 100 % до 0,4 %. Режим ШИМ очень прост с точки зрения программного обслуживания. Если изменения скважности не предполагается, то достаточно один раз занести соответствующий код в регистр данных модуля, проинициализировать режим ШИМ, и импульсная последовательность будет воспроизводиться с заданными параметрами без вмешательства программы. Назначение и особенности работы сторожевого таймера будут рассмотрены далее отдельно. При работе модуля сравнения-защелки в режиме защелки, программируемого таймера или высокоскоростного выхода модуль может сформировать сигнал прерывания. Сигналы от всех пяти модулей сравнения-защелки и сигнал переполнения таймера РСА разделяют один вектор прерывания. Иными словами, если прерывания разрешены, то и сигнал переполнения таймера PCA и сигнал от любого из модулей вызывают одну и ту же подпрограмму прерываний, которая должна сама идентифицировать источник, вызвавший ее. Для работы с внешними устройствами таймер-счетчик РСА и модули сравнения-защелки используют выводы P1 порта МК. Если какой-либо вывод   порта не используется при работе РСА, или РСА не задействован, порт может применяться стандартным образом. Реализованный в 8xC51FX PCA оказался настолько удачным, что архитектура данных МК стала промышленным стандартом де-факто, а сам PCA многократно воспроизводился в различных модификациях микроконтроллеров разных фирм. Тенденция развития подсистемы реального времени современных МК находит свое отражение в увеличении числа каналов процессоров событий и расширении их функциональных возможностей.
ОРГАНИЗАЦИЯ ПОДСИСТЕМ ПРЕРЫВАНИЙ В МИКРОПРОЦЕССОРНЫХ И МИКРОКОНТРОЛЛЕРНЫХ СИСТЕМАХ.
Обработка информации по прерываниям позволяет реализовывать эффективное взаимодействие с медленно действующими устройствами, а также оперативно откликаться на реальные события по запросам от ПУ.
Физический интерфейс наиболее простой системы прерываний является единственной линией IRQ (Interrupt Request), сигнал с которой воспринимается как запрос на прерывание. При приеме запроса на прерывание ЦП активизирует программу обслуживания прерывания, передавая ее начальный адрес в РС. Старое содержимое РС, являющееся адресом возврата в прерванную программу, автоматически сохраняется в стеке. Возврат в прерванную программу осуществляется последней командой в программе обслуживания прерываний (командой RET), которая адрес возврата из стека возвращает в РС. Начальный адрес программы обслуживания прерываний, загружаемый в РС, определяется МП. Такие входы запросов прерываний имеются, например, у микропроцессора К1821ВМ85 (TRAP, RST 7.5, RST 6.5, RST 5.5).
Вход INT микропроцессоров (ВМ80, ВМ85, Z80 и др.) называют маскируемым, что означает возможность разрешения или запрещения обслуживания запроса, поступившего на этот вход. Формирование начального адреса подпрограммы обработки прерываний требует получения от подсистемы прерывания кодов команды CALL или команды RSTn (для МП ВМ80, ВМ85, Z80).
В МПС на микропроцессорах платформы х86 стартовый адрес процедуры обслуживания прерываний определяется обращением к таблице прерываний через однобайтный вектор, формируемый аппаратными средствами подсистемы прерываний.
В зависимости от числа подтвержденных запросов прерывания, одновременно находящихся на обслуживании, различают одноуровневые и многоуровневые системы прерываний. Примером одноуровневой системы с двумя источниками запросов является система прерываний микроконтроллера К1816ВЕ48, а двухуровневой с пятью источниками запросов – К1816ВЕ51.
Для создания приоритетных многоуровневых систем прерываний применяются программируемые контроллеры прерываний К580ВН59 и К1810ВН59А. Микросхема ВН59 является аналогом микросхемы 8259 (Intel), используется в МПС на 8-разрядных МП (ВМ80, ВМ85, ВМ1 и др.), а ВН59А – в МПС и на 8-разрядных, и на 16-разрядных микропроцессорах платформы х86.
Формирование сигналов прерываний - запросов ВУ на обслуживание происходит в контроллерах соответствующих ВУ. В простейших случаях в качестве сигнала прерывания может использоваться сигнал "Готовность ВУ", поступающий из контроллера ВУ в системный интерфейс микроЭВМ. Однако такое простое решение обладает существенным недостатком - процессор не имеет возможности управлять прерываниями, т. е. разрешать или запрещать их для отдельных ВУ. В результате организация обмена данными в режиме прерывания с несколькими ВУ существенно усложняется.
ОСНОВНЫЕ ФУНКЦИИ ИНСТРУМЕНТАЛЬНЫХ ПАКЕТОВ ПРОЕКТИРОВАНИЯ ПРОМЫШЛЕННЫХ СИСТЕМ АВТОМАТИЗАЦИИ И УПРАВЛЕНИЯ (НА ПРИМЕРАХ ИНСТРУМЕНТАЛЬНОГО ПАКЕТА STEP7 ИЛИ ЛЮБОГО ИНОГО).
Пакет прикладных программ – это комплекс программ, предназначенный для решения задач определенного класса (функциональная подсистема, бизнес-приложение).
Различают следующие типы ППП:
    общего назначения (универсальные);
    метод-ориентированные;    проблемно-ориентированные;    глобальных сетей;
    организации (администрирования) вычислительного процесса.
STEP 7 – это базовый пакет программ, включающий в свой состав весь спектр инструментальных средств, необходимых для программирования и эксплуатации систем управления, построенных на основе систем автоматизации SIMATIC S7/C7/WinAC.  Отличительной особенностью пакета STEP 7 является возможность разработки комплексных проектов автоматизации, базирующихся на использовании множества программируемых контроллеров, промышленных компьютеров, устройств и систем человеко-машинного интерфейса, устройств распределенного ввода-вывода, сетевых структур промышленной связи. Ограничения на разработку таких проектов накладываются только функциональными возможностями программаторов или компьютеров, на которых инсталлирован STEP 7.
Основные функции STEP 7:
Конфигурирование и определение параметров настройки аппаратуры;
Конфигурирование систем промышленной связи и настройку параметров передачи данных;
Программирование, тестирование, отладка и запуск программ отдельных систем автоматизации, а также их локальное или дистанционное обслуживание;
Документирование и архивирование данных проекта;
Функции оперативного управления и диагностирования аппаратуры.
Все перечисленные функции поддерживаются мощной системой интерактивной помощи. STEP 7 обеспечивает параллельное выполнение работ по одному проекту несколькими разработчиками. Единственным ограничением при этом является невозможность одновременной записи данных несколькими разработчиками.
Кроме того из этого редактора доступны функции системной диагностики, которые позволяет определить текущее состояние программируемого контроллера, а также выявить любые дефекты в модулях. Подробная информация о дефекте может быть вызвана двойным нажатием кнопки мыши на изображение модуля. Объем и вид этой информации определяются типом модуля.
ОТКРЫТЫЕ МАГИСТРАЛЬНО МОДУЛЬНЫЕ СИСТЕМЫ. ОСНОВНЫЕ ТРЕБОВАНИЯ К ОТКРЫТЫМ СИСТЕМАМ РЕАЛЬНОГО ВРЕМЕНИ. СТАНДАРТЫ МЭК 61131.
Открытые магистрально-модульные системы (ОММС) используются для построения современных управляющих систем

Рис.4.1. Общая схема управляющей системы:
КИПиА – контрольно-измерительные приборы и средства автоматизации; УСО – устройство связи с объектом;
УЭВМ – управляющая электронно-вычислительная машина;
АРМ – автоматизированное рабочее место;
SCADA (Supervisor Control And Data Acquisition) – программное обеспечение операторских станций технологических процессов;
СУБД РВ – системы управления базами данных реального времени
Открытая система – это система, построенная по магистрально-модульному принципу на основе совместимых унифицированных компонентов, не имеющих логических ограничений по наращиванию, сопровождаемая исчерпывающей информацией по всем видам обеспечения и отвечающая требованиям работы в реальном масштабе времени.
Признаки ОММС
требования по реализации работы в реальном масштабе времени;
открытая модульная архитектура;
стандартизация всех видов программного обеспечения;
совместимость с протоколами и интерфейсами вычислительных сетей общего назначения и промышленных сетей;
развитый стандартный инструментарий;
распределенность и мультипроцессорность.
Магистрально-модульный принцип построения включает в себя:
замену аппаратных компонентов без выключения системы (“hot swapping”, горячая замена);
распределенность построения, большое количество и разнообразие подключаемых периферийных устройств (ПУ), следовательно большое количество каналов прерываний. Например, в ПК 15 IRQ, свободных для подключения ПУ, как правило, 5. Чтобы подключить и обслужить большее количество ПУ, не поможет увеличение процессорной мощности и емкости винчестера. Это пример логического ограничения по наращиванию.
необходимость стандартизации аппаратного и программного обеспечения. Бывают различные группы стандартов: корпоративные (Siemens), национальные (ANSI, ГОСТ), международные (ISO, IEC). Чем выше ранг стандарта, тем более открытой является система. К примеру, в универсальных ПК открытость частичная, в результате – ограниченная по развитию система. Стандарты ОММС распространяются как на конструктив, так и на ПО (POSIX).
В качестве основного требования к ОСРВ выдвигается требование обеспечения предсказуемости илидетерминированности поведения системы в наихудших внешних условиях, что резко отличается от требований к производительности и быстродействию универсальных ОС. Хорошая ОСРВ имеет предсказуемое поведение при всех сценариях системной загрузки (одновременные прерывания и выполнение потоков).
Классические требования к ОСРВ на сегодняшний день можно разделить на несколько групп. В различных источниках эти группы выбираются по-разному. Например, в [3] выделены следующие категории для сравнения свойств ОСРВ:
свойства ядра (архитектура, поддержка множества процессов и множества процессоров, устойчивость к отказам);
диспетчеризация (алгоритм, механизм  присвоения  приоритетов, время для освобождения задачи);
модель процесс/нить/задача (число уровней приоритетов, защита от инверсии приоритетов, состояния задачи, максимальное число задач, задержка переключения задач, динамическое изменение приоритетов);
управление памятью (минимальный и максимальный объём оперативной и ROM-памяти на задачу, максимальная адресуемая память для задачи, поддержка защиты памяти, динамическое распределение памяти, виртуальная память, сжатие памяти);
управление прерываниями и исключениями (вытесняемые обработчики прерываний, наихудшее время обработки прерывания, модифицируемость таблицы векторов прерываний);
интерфейс прикладного программирования (совместимость библиотек, точное абсолютное время, поддержка внешних часов, примитивы синхронизации, сетевые протоколы, соответствие стандартам, ввод/вывод, файловые системы);
процесс разработки (методология разработки, поставка в исходных или объектных кодах, поддерживаемые компиляторы, процессоры и языки программирования);
коммерческая информация (стоимость, платежи за runtime-системы, срок присутствия на рынке, использование в ответственных приложениях, тип и стоимость технической поддержки).
Для программирования ПЛК используются стандартизированные языки МЭК (IEC) стандарта IEC61131-3
Языки программирования (графические)
LD (Ladder Diagram) — Язык релейных схем — самый распространённый язык для PLC
FBD (Function Block Diagram) — Язык функциональных блоков — 2-й по распространённости язык для PLC
SFC (Sequential Function Chart) — Язык диаграмм состояний — используется для программирования автоматов
CFC (Continuous Function Chart) — Не сертифицирован IEC61131-3, дальнейшее развитие FBD
Языки программирования (текстовые)
IL (Instruction List) — Ассемблеро-подобный язык
ST (Structured Text) — Паскале-подобный язык
Стандарт МЭК 61131-3 устанавливает пять языков программирования ПЛК, три графических и два текстовых. Первоначально стандарт назывался IEC 1131-3 и был опубликован в 1993 г. но в 1997 г. МЭК (IEC) перешел на новую систему обозначений и в названии стандарта добавилась цифра "6".
Основной целью стандарта было повышение скорости и качества разработки программ для ПЛК, а также создание языков программирования, ориентированных на технологов, обеспечение соответствия ПЛК идеологии открытых систем, исключение этапа дополнительного обучения при смене типа ПЛК.
Системы программирования, основанные на МЭК 61131-3, характеризуются следующими показателями:
надежностью создаваемого программного обеспечения. Надежность обеспечивается тем, что программы для ПЛК создаются с помощью специально предназначенной для этого среды разработки, которая содержит все необходимые средства для написания, тестирования и отладки программ с помощью эмуляторов и реальных ПЛК, а также множество готовых фрагментов программного кода;
возможностью простой модификации программы и наращивания ее функциональности;
переносимостью проекта с одного ПЛК на другой;
возможностью повторного использования отработанных фрагментов программы;
простотой языка и ограничением количества его элементов.
Языки МЭК 61131-3 появились не как теоретическая разработка, а как результат анализа множества языков, уже используемых на практике и предлагаемых рынку производителями ПЛК. Стандарт устанавливает пять языков программирования со следующими названиями:
структурированный текст (ST - Structured Text);
последовательные функциональные схемы (SFC - "Sequential Function Chart");
диаграммы функциональных блоков (FBD - Function Block Diagram);
релейно-контактные схемы, или релейные диаграммы (LD - Ladder Diagram);
список инструкций (IL - Instruction List).
Графическими языками являются SFC, FBD, LD. Языки IL и ST являются текстовыми.
В стандарт были введены несколько языков (а не один) для того, чтобы каждый пользователь мог применить наиболее понятный ему язык. Программисты чаще выбирают язык IL (похожий на ассемблер) или ST, похожий на язык высокого уровня Паскаль; специалисты, имеющие опыт работы с релейной логикой, выбирают язык LD, специалисты по системам автоматического управления (САУ) и схемотехники выбирают привычный для них язык FBD.
Выбор одного из пяти языков определятся не только предпочтениями пользователя, но и смыслом решаемой задачи. Если исходная задача формулируется в терминах последовательной обработки и передачи сигналов, то для нее проще и нагляднее использовать язык FBD. Если задача описывается как последовательность срабатываний некоторых ключей и реле, то для нее нагляднее всего будет язык LD. Для задач, которые изначально формулируются в виде сложного разветвленного алгоритма, удобнее будет язык ST.
Языки МЭК 61131-3 базируются на следующих принципах:
вся программа разбивается на множество функциональных элементов - Program Organization Units (POU), каждый из которых может состоять из функций, функциональных блоков и программ. Любой элемент МЭК-программы может быть сконструирован иерархически из более простых элементов;
стандарт требует строгой типизации данных. Указание типов данных позволяет легко обнаруживать большинство ошибок в программе до ее исполнения;
имеются средства для исполнения разных фрагментов программы в разное время, с разной скоростью, а также параллельно. Например, один фрагмент программы может сканировать концевой датчик с частотой 100 раз в секунду, в то время как второй фрагмент будет сканировать датчик температуры с частотой один раз в 10 сек;
для выполнение операций в определенной последовательности, которая задается моментами времени или событиями, используется специальный язык последовательных функциональных схем ( SFC);
стандарт поддерживает структуры для описания разнородных данных. Например, температуру подшипников насоса, давление и состояние "включено-выключено" можно описать с помощью единой структуры "Pomp" и передавать ее внутри программы как единый элемент данных;
стандарт обеспечивает совместное использование всех пяти языков, поэтому для каждого фрагмента задачи может быть выбран любой, наиболее удобный, язык;
программа, написанная для одного контроллера, может быть перенесена на любой контроллер, совместимый со стандартом МЭК 61131-3.
Любой ПЛК работает в циклическом режиме. Цикл начинается со сбора данных с модулей ввода, затем исполняется программа ПЛК и оканчивается цикл выводом данных в устройства вывода. Поэтому величина контроллерного цикла зависит от времени исполнения программы и быстродействия процессорного модуля.

СЕГМЕНТАЦИЯ ПАМЯТИ В РЕАЛЬНОМ И ЗАЩИЩЕННОМ РЕЖИМАХ МИКРОПРОЦЕССОРОВ АРХИТЕКТУРЫ IA-32.
Сегментация — механизм адресации, обеспечивающий существование нескольких независимых адресных пространств как в пределах одной задачи, так и в системе в целом для защиты задач от взаимного влияния. В основе механизма сегментации лежит понятие сегмента, который представляет собой независимый поддерживаемый на аппаратном уровне блок памяти.Для процессоров Intel, начиная с i8086, принят особый подход к управлению памятью. Каждая программа в общем случае может состоять из любого количества сегментов, но непосредственный доступ она имеет только к трем основным сегментам (кода, данных и стека), а также к дополнительным сегментам данных числом от одного до трех. Программа заранее не знает, по каким физическим адресам будут размещены ее сегменты. Этим занимается операционная система. Операционная система размещает сегменты программы в оперативной памяти по определенным физическим адресам, после чего помещает значения этих адресов в определенные места. Куда именно, зависит от режима работы процессора. Так, в реальном режиме эти адреса заносятся непосредственно в соответствующие сегментные регистры, а в защищенном режиме они попадают в элементы специальной системной таблицы дескрипторов. Внутри сегмента программа обращается к адресам относительно начала сегмента линейно, то есть начиная с 0 и заканчивая адресом, равным размеру сегмента. Этот относительный адрес, или смещение, который процессор использует для доступа к данным внутри сегмента, называется эффективным.Отличия моделей сегментированной организации памяти в различных режимах хорошо прослеживаются на схеме (рис. 1.3). Различают три основных модели:
сегментированная модель памяти реального режима;
сегментированная модель памяти защищенного режима;
сплошная модель памяти защищенного режима.
Сегментация памяти обеспечивается при любом режиме работы процессора. Сегментация реализуется путем разбиения адресного пространства на отдельные блоки — сегменты, доступ к которым производится в соответствии с определенными правилами. Сегментированная память представляет собой набор блоков, характеризуемых определенными атрибутами — такими, как расположение, размер, тип (стек, программа, данные), характеристика защиты. В системе на основе процессора Р6 каждой задаче доступны до 8192 сегментов величиной до 4 Гбайт каждый. Таким образом обеспечивается возможность использования до 64 Тбайт виртуальной памяти. Для обращения к ячейке сегментированной памяти используется составной (логический) адрес, который состоит из селектора, задающего базовый адрес сегмента (начало), и относительного адреса ячейки (байта, слова) в сегменте. Арифметическое сложение базового и относительного адреса дает физический (линейный) адрес байта или слова (одинарного, двойного или счетверенного). Правила определения базового адреса сегмента зависят от режима работы микропроцессора — реальный или защищенный.
Сегментная организация памяти в реальном режиме
-254000182245
Вся память делится на сегменты
Адреса сегментов хранятся в сегментных регистрах, деленные на 16
Виртуальный адрес ячейки представляет собой комбинацию сегмент:смещение
Физический адрес ячейки вычисляется как сегмент*16+смещение
Сегментная организация памяти в защищенном режиме
-25400089535Используются 32-х разрядные адреса начал сегментов (базы) и смещения
Для хранения баз сегментов используются таблицы дескрипторов сегментов
Выбор дескриптора осуществляется по его номеру (селектору) хранящемуся в сегментном регистре
Линейный адрес формируется как база+смещение
ОБМЕН ДАННЫМИ В РЕЖИМЕ ПДП МИКРОПРОЦЕССОРНЫХ И МИКРОКОНТРОЛЛЕРНЫХ СИСТЕМАХ. ОРГАНИЗАЦИЯ ПОДСИСТЕМ ПДП.
Одним из способов обмена данными с ВУ является обмен в режиме прямого доступа к памяти (ПДП). В этом режиме обмен данными между ВУ и основной памятью микроЭВМ происходит без участия процессора. Обменом в режиме ПДП управляет не программа, выполняемая процессором, а электронные схемы, внешние по отношению к процессору. Обычно схемы, управляющие обменом в режиме ПДП, размещаются в специальном контроллере, который называется контроллером прямого доступа к памяти.
Обмен данными в режиме ПДП позволяет использовать в микроЭВМ быстродействующие внешние запоминающие устройства, такие, например, как накопители на жестких магнитных дисках, поскольку ПДП может обеспечить время обмена одним байтом данных между памятью и ВЗУ, равное циклу обращения к памяти.
Для реализации режима прямого доступа к памяти необходимо обеспечить непосредственную связь контроллера ПДП и памяти микроЭВМ. В целях сокращения количества линий в шинах микроЭВМ контроллер ПДП подключается к памяти посредством шин адреса и данных системного интерфейса. При этом возникает проблема совместного использования шин системного интерфейса процессором и контроллером ПДП. Можно выделить два основных способа ее решения: реализация обмена в режиме ПДП с "захватом цикла" и в режиме ПДП с блокировкой процессора.
Существуют две разновидности прямого доступа к памяти с "захватом цикла". Наиболее простой способ организации ПДП состоит в том, что для обмена используются те машинные циклы процессора, в которых он не обменивается данными с памятью. В такие циклы контроллер ПДП может обмениваться данными с памятью, не мешая работе процессора. Однако возникает необходимость выделения таких циклов, чтобы не произошло временного перекрытия обмена ПДП с операциями обмена, инициируемыми процессором. В некоторых процессорах формируется специальный управляющий сигнал, указывающий циклы, в которых процессор не обращается к системному интерфейсу. При использовании других процессоров для выделения таких циклов необходимо применение в контроллерах ПДП специальных селектирующих схем, что усложняет их конструкцию. Применение рассмотренного способа организации ПДП не снижает производительности микроЭВМ, но при этом обмен в режиме ПДП возможен только в случайные моменты времени одиночными байтами или словами.
Более распространенным является ПДП с "захватом цикла" и принудительным отключением процессора от шин системного интерфейса. Для реализации такого режима ПДП системный интерфейс микроЭВМ дополняется двумя линиями для передачи управляющих сигналов "Требование прямого доступа к памяти" (ТПДП) и "Предоставление прямого доступа к памяти" (ППДП).
Управляющий сигнал ТПДП формируется контроллером прямого доступа к памяти. Процессор, получив этот сигнал, приостанавливает выполнение очередной команды, не дожидаясь ее завершения, выдает на системный интерфейс управляющий сигнал ППДП и отключается от шин системного интерфейса. С этого момента все шины системного интерфейса управляются контроллером ПДП. Контроллер ПДП, используя шины системного интерфейса, осуществляет обмен одним байтом или словом данных с памятью микроЭВМ и затем, сняв сигнал ТПДП, возвращает управление системным интерфейсом процессору. Как только контроллер ПДП будет готов к обмену следующим байтом, он вновь "захватывает" цикл процессора и т.д. В промежутках между сигналами ТПДП процессор продолжает выполнять команды программы. Тем самым выполнение программы замедляется, но в меньшей степени, чем при обмене в режиме прерываний.
Режим ПДП является самым скоростным способом обмена, который реализуется с помощью специальных аппаратных средств – контроллеров ПДП без использования программного обеспечения. Для осуществления режима ПДП контроллер должен выполнить ряд последовательных операций (рис. 3.38):
принять запрос DREQ на ПДП от ВУ;
сформировать запрос HRQ на захват шин для ЦП;
принять сигнал HLDA, подтверждающий этот факт после того, как ЦП войдет в состояние захвата (ШД, ША, ШУ в z-состояние);
сформировать сигнал DACK, сообщающий ВУ о начале выполнения циклов ПДП;
сформировать на ША адрес ячейки памяти, предназначенный для обмена;
выработать сигналы обеспечивающие управление обменом;
по окончании цикла ПДП либо повторить цикл ПДП, изменив адрес, либо прекратить ПДП, снятием запроса на ПДП.
Циклы ПДП выполняются с последовательно расположенными ячейками памяти, поэтому контроллер ПДП должен иметь счетчик адреса ОЗУ. Число циклов ПДП определяется специальным счетчиком. Управление обменом осуществляется специальной логической схемой, формирующей в зависимости от типа обмена пары управляющих сигналов: (циклы чтения), (циклы записи). Из изложенного следует, что контроллер ПДП по запросу должен взять на себя управление системными шинами и выполнять совмещенные циклы чтения/вывода или записи/ввода до тех пор, пока содержимое счетчика циклов ПДП не будет равно нулю. На рис. 3.38 показана структурная схема МПС с контроллером ПДП.

Для МИКРОКОНТРОЛЛЕРОВ К1816ВЕ51 или ST7, STM8, STM32 ПОЯСНИТЕ И ПРОДЕМОНСТРИРУЙТЕ ПРИМЕРАМИ ПРОГРАММИРОВАНИЕ РЕЖИМОВ РАБОТЫ ТАЙМЕРОВ/ СЧЕТЧИКОВ.
В составе микроконтроллера К1816ВЕ51 имеются регистровые пары с именами TH0, TL0 и TH1, TL1, на основе которых функционируют два независимых программно-управляемых 16-битных таймера/счётчика событий (T/C0 и T/C1). При работе в качестве таймера содержимое T/C инкрементируется в каждом машинном цикле, то есть через каждые 12 периодов резонатора. При работе в качестве счётчика содержимое T/C инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на соответствующий (T0, T1) вход микроконтроллера. Опрос сигналов выполняется в каждом машинном цикле. Для гарантированного прочтения входного считываемого сигнала он должен удерживать значение 1 как минимум в течение одного машинного цикла.
Для управления режимами работы и для организации взаимодействия таймеров с системой прерывания используются два регистра специальных функций TMOD и TCON. Для обоих T/C режимы работы 0, 1 и 2 одинаковы. Режимы 3 для T/C0 и T/C1 различны.
Режим 0.
Перевод любого T/C в этот режим делает его 8-разрядным таймером, на вход которого подключен 5-битный предделитель частоты на 32. В этом режиме таймерный регистр имеет разрядность 13 бит. При переходе из состояния “все единицы” в состояние “все нули” устанавливается флаг прерывания от таймера TF1. Входной синхросигнал таймера 1 разрешен (поступает на вход T/C), когда управляющий бит TR1 установлен в 1 и либо управляющий бит GATE (блокировка) равен 0, либо на внешний вход запроса прерывания INT1 поступает уровень 1.
Установка бита GATE в 1 позволяет использовать таймер для измерения
длительности импульсного сигнала, подаваемого на вход запроса прерывания.
Режим 1.
Работа любого T/C в этом режиме такая же, как и в режиме 0, за исключением того, что таймерный регистр имеет разрядность 16 бит.
Режим 2.
В этом режиме работа организована таким образом, что переполнение (переход из состояния “все единицы” в состояние “все нули”) 8-битного
счётчика TL1 приводит не только к установке флага TF1, но и автоматически перезагружает в TL1 содержимое старшего байта (TH1) таймерного регистра, которое предварительно было задано программным путем. Перезагрузка оставляет содержимое TH1 неизменным. В режиме 2 T/C0 и T/C1 работают совершенно одинаково.
Режим 3.
В этом режиме T/C0 и T/C1 работают по-разному. T/C1 сохраняет неизменным своё текущее содержимое. Иными словами, эффект такой же, как и при сбросе управляющего бита TR1 в нуль. В этом режиме TL0 и TH0 функционируют как два независимых 8-битных счётчика. Работу TL0 определяют управляющие биты T/C0 (C/T, GATE, TR0), входной сигнал INT0 и флаг переполнения TF0.
Работу TH0, который может выполнять только функции таймера (подсчёт машинных циклов микроконтроллера), определяет управляющий бит TR1. При этом TH0 использует флаг переполнения TF1.
Режим 3 используется в тех случаях, когда требуется наличие дополнительного 8-битного таймера или счётчика событий. Можно считать, что в режиме 3 микроконтроллер имеет в своем составе три таймера/счётчика.
В том случае, если T/C0 используется в режиме 3, T/C1 может быть или включен, или выключен, или переведен в свой собственный режим 3, или может быть использован последовательным портом в качестве генератора частоты передачи, или, наконец, может быть использован в любом применении, не требующем прерывания.

ПОЯСНИТЕ МОДУЛЬНЫЙ ПРИНЦИП ПОСТРОЕНИЯ МИКРОКОНТРОЛЛЕРОВ, КОМПОНЕНТЫ ПРОЦЕССОРНОГО ЯДРА, СОСТАВ И ХАРАКТЕРИСТИКИ МОДУЛЕЙ. ПРИМЕРЫ АРХИТЕКТУР РЕАЛЬНЫХ МИКРОКОНТРОЛЛЕРОВ.
(нет примеров)
Микроконтроллеры (МК) имеют модульный принцип организации, представляют собой законченную микропроцессорную систему обработки информации и созданную в виде большой интегральной микросхемы. МК в пределах одного кристалла объединяет основные функциональные блоки микропроцессорной управляющей системы: центральный процессор (ЦПУ), постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), периферийные устройства ввода и вывода информации (УВВ). Все МК одного семейства содержат базовый функциональный блок и изменяемый функциональный блок.. Базовый функциональный блок включает:
- центральный процессор;
- внутренние магистрали адреса, данных и управления;- схему формирования многофазной импульсной последовательности для тактирования ЦПУ и межмодульных магистралей;
- устройство управления режимами работы МК, такими как активный режим, режим пониженного энергопотребления, состояния начального запуска и прерывания.
Базовый функциональный блок называют процессорным ядром МК. Тип процессорного ядра определяет имя семейства МК.
Изменяемый функциональный блок включает модули разных типов памяти, модули периферийных устройств, модули генераторов синхронизации и некоторые дополнительные модули специальных режимов работы МК. Каждый модуль подключается к магистралям процессорного ядра. Это позволяет на уровне функционального проектирования новой модели МК подсоединять разнообразные модули к магистралям процессорного ядра, создавая, таким образом, разнообразные по структуре МК в пределах одного семейства. Совокупность модулей, разработанных для определенного процессорного ядра, принято называть библиотекой периферийных модулей. Библиотека современного семейства МК включает модули пяти функциональных групп:
1) модули памяти;
2) модули периферийных устройств;
3) модули встроенных генераторов синхронизации;
4) модули контроля напряжения питания и хода выполнения программы;
5) модули внутрисхемной отладки и программирования.
В направлениях развития 8-разрядной элементной базы МК прослеживается тенденция к закрытой архитектуре, при которой линии внутренних магистралей адреса и данных отсутствуют на выводах корпуса МК, что не позволяет подключать внешние микросхемы памяти. Разработчики обычно предлагают ряд модификаций МК с одним и тем же набором периферийных модулей и различающихся объемом резидентной памяти программ и данных.
Группа модулей периферийных устройств имеет следующие основные типы:
- параллельные порты ввода-вывода;
- таймеры-счетчики, таймеры периодических прерываний, процессоры событий;
- контроллеры последовательного интерфейса связи нескольких типов (UART, SCI, SPI, IIC, CAN, USB);
- аналого-цифровые преобразователи (АЦП);
- цифроаналоговые преобразователи (ЦАП);
- контроллеры ЖК индикаторов и светодиодной матрицы.
Архитектура микропроцессоров Intel P6 и Р7. Конвейеризация вычислительных процессов, использование кэш-памяти программ и данных, предсказание ветвлений и спекулятивное выполнение.
Процессоры семейства Р6, продолжая общую линию микропроцессоров Intel 80x86, имеют ряд архитектурных и структурных особенностей по сравнению с предыдущими моделями микропроцессоров фирмы Intel. Наиболее характерными из этих особенностей являются:
гарвардская структура с разделением потоков команд и данных с помощью введения отдельных внутренних блоков кэш-памяти для хранения команд и данных, а также шин для их передачи;
суперскалярная архитектура, обеспечивающая одновременное выполнение нескольких команд в параллельно работающих исполнительных устройствах;
динамическое исполнение команд, реализующее изменение последовательности команд (выполнение команд с опережением — спекулятивное выполнение), использование расширенного регистрового файла (переименование регистров), эффективное предсказание ветвлений;
двойная независимая шина, содержащая отдельную шину для обращения к кэш-памяти 2-го уровня (выполняется с тактовой частотой процессора) и системную шину для обращения к памяти и внешним устройствам (выполняется с тактовой частотой системной платы).
Процессоры семейства Р6 имеют следующие характеристики:
32-разрядная внутренняя структура;
использование системной шины с 36 разрядами адреса и 64 разрядами данных;
раздельная внутренняя кэш-память 1-го уровня (L1) для команд и данных емкостью по 16 Кбайт;
поддержка общей кэш-памяти команд и данных 2-го уровня (L2) емкостью до 2 Мбайт;
конвейерное исполнение команд с реализацией 12 ступеней конвейера;
предсказание направления программного ветвления с высокой точностью;
ускоренное выполнение операций с плавающей точкой;
приоритетный контроль при обращении к памяти (защищенный режим);
поддержка реализации мультипроцессорных систем;
наличие внутренних средств, обеспечивающих самотестирование, отладку и мониторинг производительности.
Конвейерная обработка представляет собой процесс, при кото- ром сложные действия разделяются на более короткие стадии. Их параллельное выполнение позволяет более полно использовать об- рабатывающие ресурсы конвейера.
В процессорах Р6 реализован конвейер команд с 12 ступенями их выполнения.
При прохождении семи первых ступеней (до блока изменения последовательности ROB) сохраняется исходный порядок следования команд, на трех исполнительных ступенях последовательность команд может быть нарушена, две заключительные ступени обеспечивают запись полученных результатов в память или регистры с восстановлением исходного порядка их следования. Такое восстановление выполняется буферным блоком MOB при записи результатов в память или блоками изменения последовательности и распределения команд (ROB и RS) при записи результатов в регистр (блок RRF).
Последовательная работа конвейера команд нарушается при поступлении команд условных переходов, так как в случае выполнения условия перехода, которое проверяется в исполнительном устройстве, потребуется перезагрузка конвейера — очистка всех предыдущих ступеней и выборка команды из новой ветви программы. Чтобы сократить или исключить потери времени, связанные с перезагрузкой длинного 12-ступенчатого конвейера, используется блок предсказания ветвлений. Его основной частью является ассоциативная память, называемая буфером адресов ветвлений (ВТВ — Branch Target Buffer), в которой хранятся 512 адресов ранее выполненных переходов. Кроме того ВТВ содержит четыре бита предыстории ветвления, которые указывают, выполнялся ли переход при четырех предыдущих выборках данной команды. При поступлении очередной команды условного перехода указанный в ней адрес сравнивается с содержимым ВТВ. Если этот адрес не содержится в ВТВ, то есть ранее не производились переходы по данному адресу, то предсказывается отсутствие ветвления. В этом случае продолжается выборка и декодирование команд, следующих за командой перехода. При совпадении указанного в команде адреса перехода с каким-либо из адресов, хранящихся в ВТВ, производится анализ предыстории. В процессе анализа определяется чаще всего реализуемое направление ветвления, а также выявляются чередующиеся переходы. Если предсказывается выполнение ветвления, то выбирается и загружается в конвейер команда, размещенная по предсказанному адресу. Одновременно в блоке выборки-декодирования сохраняется декодированная следующая команда. Если после анализа условия ветвления выясняется, что предсказание было неправильным, эта декодированная команда поступает из УУ в исполнительное устройство, обеспечивая сокращение потерь времени на перезагрузку конвейера.
Используемый алгоритм предсказания ветвлений ориентирован на достаточно частое повторение обращения к процедуре, которая обеспечивается определенной ветвью программы. При этом рекомендуется более часто используемые процедуры располагать в ветвях, следующих непосредственно за командой перехода, чтобы сократить время перезагрузки конвейера при ошибочно предсказанных ветвлениях. По имеющимся оценкам данный алгоритм обеспечивает вероятность правильного предсказания ветвлений на уровне 90% .
Обмен с основной памятью при использовании кэш-памяти производится с помощью пакетных циклов обращения, которые позволяют за один цикл переслать содержимое целой строки кэш-памяти (32 байта). Внешняя 64-разрядная шина данных позволяет выполнить такую пересылку за 5 тактов машинного времени: первый такт служит для установки адреса строки, а в течении следующих четырех тактов идет передача данных. При этом необходимые сигналы управления обменом устанавливаются только один раз (в начале цикла), а изменение младших разрядов адреса в тактах передачи осуществляется автоматически основной памятью.
При формировании адресов обеспечивается обращение к заданному сегменту памяти. Каждый сегмент может делиться на страницы, размещаемые в различных разделах адресного пространства. Блоки трансляции адреса обеспечивают формирование физических адресов команд и данных при использовании страничной организации памяти. При этом для сокращения времени трансляции используется внутренняя буферная память TLB (Translation Look-aside Buffer), которая хранит базовые адреса наиболее часто используемых страниц.
Спекулятивное выполнение инструкций - это способность процессора исполнить инструкции в порядке, отличном (как правило, с опережением) от порядка во входном потоке инструкций (что определяется кодом исполняемой программы), но завершить и возвратить (commit) результаты исполнения инструкций в порядке, соответствующем оригинальному входному потоку инструкций.
Организация вода – вывода данных в микропроцессорных системах.
В ЭВМ применяются три режима ввода/вывода:
программно-управляемый ВВ (называемый также программным или нефорсированным ВВ),
ВВ по прерываниям (форсированный ВВ)
и прямой доступ к памяти.
Первый из них характеризуется тем, что инициирование и управление ВВ осуществляется программой, выполняемой процессором, а внешние устройства играют сравнительно пассивную роль и сигнализируют только о своем состоянии, в частности, о готовности к операциям ввода/вывода.
Во втором режиме ВВ инициируется не процессором, а внешним устройством, генерирующим специальный сигнал прерывания. Реагируя на этот сигнал готовности устройства к передаче данных, процессор передает управление подпрограмме обслуживания устройства, вызвавшего прерывание. Действия, выполняемые этой подпрограммой, определяются пользователем, а непосредственными операциями ВВ управляет процессор.
Наконец, в режиме прямого доступа к памяти, который используется, когда пропускной способности процессора недостаточно, действия процессора приостанавливаются, он отключается от системной шины и не участвует в передачах данных между основной памятью и быстродействующим ВУ.
Заметим, что во всех вышеуказанных случаях основные действия, выполняемые на системной магистрали ЭВМ, подчиняются двум основным принципам. 1. В процессе взаимодействия любых двух устройств ЭВМ одно из них обязательно выполняет активную, управляющую роль и является задатчиком, второе оказывается управляемым, исполнителем. Чаще всего задатчиком является процессор. 2. Другим важным принципом, заложенным в структуру интерфейса, является принцип квитирования (запроса - ответа): каждый управляющий сигнал, посланный задатчиком, подтверждается сигналом исполнителя. При отсутствии ответного сигнала исполнителя в течение заданного интервала времени формируется так называемый тайм-аут, задатчик фиксирует ошибку обмена и прекращает данную операцию. 
Программно-управляемый ввод/вывод
Данный режим характеризуется тем, что все действия по вводу/выводу реализуются командами прикладной программы. Наиболее простыми эти действия оказываются для "всегда готовых" внешних устройств, например индикатора на светодиодах. При необходимости ВВ в соответствующем месте программы используются команды IN или OUT. Такая передача данных называется синхронным или безусловным ВВ.
Однако для большинства ВУ до выполнения операций ВВ надо убедиться в их готовности к обмену, т.е. ВВ является асинхронным. Общее состояние устройства характеризуется флагом готовности READY, называемым также флагом готовности/занятости (READY/BUSY). Иногда состояния готовности и занятости идентифицируются отдельными флагами READY и BUSY, входящими в слово состояния устройства.
Процессор проверяет флаг готовности с помощью одной или нескольких команд. Если флаг установлен, то инициируются собственно ввод или вывод одного или нескольких слов данных. Когда же флаг сброшен, процессор выполняет цикл из 2-3 команд с повторной проверкой флага READY до тех пор, пока устройство не будет готово к операциям ВВ (рис.10.1.). Данный цикл называется циклом ожидания готовности ВУ и реализуется в различных процессорах по-разному.

Рис. 10.1. Цикл программного ожидания готовности внешнего устройства
Основной недостаток программного ВВ связан с непроизводительными потерями времени процессора в циклах ожидания. К достоинствам следует отнести простоту его реализации, не требующей дополнительных аппаратных средств.
Организация прерываний в микроЭВМОдной из разновидностей программно-управляемого обмена данными с ВУ в микроЭВМ является обмен с прерыванием программы, отличающийся от асинхронного программно-управляемого обмена тем, что переход к выполнению команд, физически реализующих обмен данными, осуществляется с помощью специальных аппаратных средств.
Команды обмена данными в этом случае выделяют в отдельный программный модуль - подпрограмму обработки прерывания. Задачей аппаратных средств обработки прерывания в процессоре микроЭВМ как раз и является приостановка выполнения одной программы (ее еще называют основной программой) и передача управления подпрограмме обработки прерывания. Действия, выполняемые при этом процессором, как правило, те же, что и при обращении к подпрограмме. Только при обращении к подпрограмме они инициируются командой, а при обработке прерывания - управляющим сигналом от ВУ, который называют "Запрос на прерывание" или "Требование прерывания".
Эта важная особенность обмена с прерыванием программы позволяет организовать обмен данными с ВУ в произвольные моменты времени, не зависящие от программы, выполняемой в микроЭВМ. Таким образом, появляется возможность обмена данными с ВУ в реальном масштабе времени, определяемом внешней по отношению к микроЭВМ средой. Обмен с прерыванием программы существенным образом экономит время процессора, затрачиваемое на обмен. Это происходит за счет того, что исчезает необходимость в организации программных циклов ожидания готовности ВУ, на выполнение которых тратится значительное время, особенно при обмене с медленными ВУ.
Организация прямого доступа к памяти
Одним из способов обмена данными с ВУ является обмен в режиме прямого доступа к памяти (ПДП). В этом режиме обмен данными между ВУ и основной памятью микроЭВМ происходит без участия процессора. Обменом в режиме ПДП управляет не программа, выполняемая процессором, а электронные схемы, внешние по отношению к процессору. Обычно схемы, управляющие обменом в режиме ПДП, размещаются или в специальном контроллере, который называется контроллером прямого доступа к памяти, или в контроллере самого ВУ.
Обмен данными в режиме ПДП позволяет использовать в микроЭВМ быстродействующие внешние запоминающие устройства, такие, например, как накопители на жестких магнитных дисках, поскольку ПДП может обеспечить время обмена одним байтом данных между памятью и ВЗУ, равное циклу обращения к памяти.

Для микроконтроллеров К1816ВЕ51 или ST7, STM8, STM32 поясните и продемонстрируйте примерами адресацию данных и команд, адресацию стека, выполнение косвенных переходов в программе.
К1816ВЕ51:
В семействе микроконтроллеров MCS используются следующие способы адресации данных: прямая, непосредственная, косвенная регистровая, регистровая и прямая адресация типа память-память.
При косвенном способе адресации резидентной памяти данных используются все восемь битов адресных регистров R0 и R1и шестнадцати разрядный указатель DPTR.

Рис.11.1. Карта адресуемых битов в резидентной памяти данных
Символическая адресация
При использовании ассемблера для получения объектных кодов программ допускается применение в программах символических имен регистров специальных функций, портов и их отдельных битов (рис. 11.2.).
Для адресации отдельных битов и портов (такая возможность имеется не у всех регистров специальных функций) можно использовать символическое имя бита следующей структуры: <имя регистра или порта>.<номер бита>.
Например, символическое имя пятого бита аккумулятора будет следующим: АСС.5. Символические имена являются зарезервированными словами, и их не надо определять с помощью директив ассемблера.

Рис. 11.2. Карта адресуемых битов в блоке регистров специальных функций
Обращение к ВншОЗУ выполняется с помощью косвенной адресации с использованием специального регистра DPTR и только через аккумулятор: MOVX @DPTR, A ; A -> M[DPTR] MOVX A, @DPTR ; M[DPTR] -> A. 
Способы адресации операндов В системе команд ОМЭВМ К1816ВЕ51 реализованы широкие возможности по адресации операндов, при этом наряду с традиционными способами расширены возможности по способам представления форматов данных. Используются следующие форматы: - побитовый; - потетрадный (4 бита); - побайтный (8 бит); - 16-разрядный. Кроме основных способов адресации, добавлена базово-индексная адресация – разновидность косвенной адресации, когда в команде указываются источники двух частей адреса A+PC или A + DPTR. Часть адреса, находящаяся в аккумуляторе, воспринимается как смещение адреса с учетом знака, то есть смещение на +-128. Например, MOVC A, @A + PC ; M[A + PC] -> A, MOVC A, @A + DPTR ; M[A + DPTR] -> A. 
Косвенный переход
Команда JMP @А + DPTR позволяет передавать управление по косвенному адресу. Эта команда удобна тем, что предоставляет возможность организации перехода по адресу, вычисляемому самой программой и неизвестному при написании исходного текста программы.
8-битный указатель стека (SP) может адресовать любую область RDM. Его содержимое инкрементируется прежде, чем данные будут запомнены в стеке в ходе выполнения команд PUSH и CALL. Содержимое SP декрементируется после выполнения команд POP и RET. Подобный способ адресации элементов стека называют прединкрементным/постдекрементным. В процессе инициализации микроконтроллера после сигнала RST в SP автоматически загружается код 07Н. Это значит, что если прикладная программа не переопределяет стек, то первый элемент данных в стеке будет располагаться в ячейке RDM с адресом 08Н.
Двухбайтный регистр-указатель данных DPTR обычно используется для фиксации 16-битного адреса в операциях с обращением к внешней памяти. Командами микроконтроллера регистр-указатель данных может быть использован или как 16-битный регистр, или как два независимых 8-битных регистра (DPH и DPL).
12. Для микроконтроллеров К1816ВЕ51 или ST7, STM8, STM32 поясните и продемонстрируйте примерами доступность памятей программ и данных, регистров функциональных устройств, возможность выполнения битовых операций.
Основные требования к открытым системам реального времени. Стандарты МЭК 61131. Языки программирования ПЛК. Стандарты МЭК 61131.3.
В качестве основного требования к ОСРВ выдвигается требование обеспечения предсказуемости илидетерминированности поведения системы в наихудших внешних условиях, что резко отличается от требований к производительности и быстродействию универсальных ОС. Хорошая ОСРВ имеет предсказуемое поведение при всех сценариях системной загрузки (одновременные прерывания и выполнение потоков).
Классические требования к ОСРВ на сегодняшний день можно разделить на несколько групп. В различных источниках эти группы выбираются по-разному. Например, в [3] выделены следующие категории для сравнения свойств ОСРВ:
свойства ядра (архитектура, поддержка множества процессов и множества процессоров, устойчивость к отказам);
диспетчеризация (алгоритм, механизм  присвоения  приоритетов, время для освобождения задачи);
модель процесс/нить/задача (число уровней приоритетов, защита от инверсии приоритетов, состояния задачи, максимальное число задач, задержка переключения задач, динамическое изменение приоритетов);
управление памятью (минимальный и максимальный объём оперативной и ROM-памяти на задачу, максимальная адресуемая память для задачи, поддержка защиты памяти, динамическое распределение памяти, виртуальная память, сжатие памяти);
управление прерываниями и исключениями (вытесняемые обработчики прерываний, наихудшее время обработки прерывания, модифицируемость таблицы векторов прерываний);
интерфейс прикладного программирования (совместимость библиотек, точное абсолютное время, поддержка внешних часов, примитивы синхронизации, сетевые протоколы, соответствие стандартам, ввод/вывод, файловые системы);
процесс разработки (методология разработки, поставка в исходных или объектных кодах, поддерживаемые компиляторы, процессоры и языки программирования);
коммерческая информация (стоимость, платежи за runtime-системы, срок присутствия на рынке, использование в ответственных приложениях, тип и стоимость технической поддержки).
Для программирования ПЛК используются стандартизированные языки МЭК (IEC) стандарта IEC61131-3
Языки программирования (графические)
LD (Ladder Diagram) — Язык релейных схем — самый распространённый язык для PLC
FBD (Function Block Diagram) — Язык функциональных блоков — 2-й по распространённости язык для PLC
SFC (Sequential Function Chart) — Язык диаграмм состояний — используется для программирования автоматов
CFC (Continuous Function Chart) — Не сертифицирован IEC61131-3, дальнейшее развитие FBD
Языки программирования (текстовые)
IL (Instruction List) — Ассемблеро-подобный язык
ST (Structured Text) — Паскале-подобный язык
Стандарт МЭК 61131-3 устанавливает пять языков программирования ПЛК, три графических и два текстовых. Первоначально стандарт назывался IEC 1131-3 и был опубликован в 1993 г. но в 1997 г. МЭК (IEC) перешел на новую систему обозначений и в названии стандарта добавилась цифра "6".
Основной целью стандарта было повышение скорости и качества разработки программ для ПЛК, а также создание языков программирования, ориентированных на технологов, обеспечение соответствия ПЛК идеологии открытых систем, исключение этапа дополнительного обучения при смене типа ПЛК.
Системы программирования, основанные на МЭК 61131-3, характеризуются следующими показателями:
надежностью создаваемого программного обеспечения. Надежность обеспечивается тем, что программы для ПЛК создаются с помощью специально предназначенной для этого среды разработки, которая содержит все необходимые средства для написания, тестирования и отладки программ с помощью эмуляторов и реальных ПЛК, а также множество готовых фрагментов программного кода;
возможностью простой модификации программы и наращивания ее функциональности;
переносимостью проекта с одного ПЛК на другой;
возможностью повторного использования отработанных фрагментов программы;
простотой языка и ограничением количества его элементов.
Языки МЭК 61131-3 появились не как теоретическая разработка, а как результат анализа множества языков, уже используемых на практике и предлагаемых рынку производителями ПЛК. Стандарт устанавливает пять языков программирования со следующими названиями:
структурированный текст (ST - Structured Text);
последовательные функциональные схемы (SFC - "Sequential Function Chart");
диаграммы функциональных блоков (FBD - Function Block Diagram);
релейно-контактные схемы, или релейные диаграммы (LD - Ladder Diagram);
список инструкций (IL - Instruction List).
Графическими языками являются SFC, FBD, LD. Языки IL и ST являются текстовыми.
В стандарт были введены несколько языков (а не один) для того, чтобы каждый пользователь мог применить наиболее понятный ему язык. Программисты чаще выбирают язык IL (похожий на ассемблер) или ST, похожий на язык высокого уровня Паскаль; специалисты, имеющие опыт работы с релейной логикой, выбирают язык LD, специалисты по системам автоматического управления (САУ) и схемотехники выбирают привычный для них язык FBD.
Выбор одного из пяти языков определятся не только предпочтениями пользователя, но и смыслом решаемой задачи. Если исходная задача формулируется в терминах последовательной обработки и передачи сигналов, то для нее проще и нагляднее использовать язык FBD. Если задача описывается как последовательность срабатываний некоторых ключей и реле, то для нее нагляднее всего будет язык LD. Для задач, которые изначально формулируются в виде сложного разветвленного алгоритма, удобнее будет язык ST.
Языки МЭК 61131-3 базируются на следующих принципах:
вся программа разбивается на множество функциональных элементов - Program Organization Units (POU), каждый из которых может состоять из функций, функциональных блоков и программ. Любой элемент МЭК-программы может быть сконструирован иерархически из более простых элементов;
стандарт требует строгой типизации данных. Указание типов данных позволяет легко обнаруживать большинство ошибок в программе до ее исполнения;
имеются средства для исполнения разных фрагментов программы в разное время, с разной скоростью, а также параллельно. Например, один фрагмент программы может сканировать концевой датчик с частотой 100 раз в секунду, в то время как второй фрагмент будет сканировать датчик температуры с частотой один раз в 10 сек;
для выполнение операций в определенной последовательности, которая задается моментами времени или событиями, используется специальный язык последовательных функциональных схем ( SFC);
стандарт поддерживает структуры для описания разнородных данных. Например, температуру подшипников насоса, давление и состояние "включено-выключено" можно описать с помощью единой структуры "Pomp" и передавать ее внутри программы как единый элемент данных;
стандарт обеспечивает совместное использование всех пяти языков, поэтому для каждого фрагмента задачи может быть выбран любой, наиболее удобный, язык;
программа, написанная для одного контроллера, может быть перенесена на любой контроллер, совместимый со стандартом МЭК 61131-3.
Любой ПЛК работает в циклическом режиме. Цикл начинается со сбора данных с модулей ввода, затем исполняется программа ПЛК и оканчивается цикл выводом данных в устройства вывода. Поэтому величина контроллерного цикла зависит от времени исполнения программы и быстродействия процессорного модуля.
Программируемые логические контроллеры (ПЛК). Принципы работы ПЛК сканирующего типа. Рабочие циклы и время реакции ПЛК.
Программи́руемый логи́ческий контро́ллер (сокр. ПЛК; англ. programmable logic controller, сокр. PLC; более точный перевод на русский — контроллер с программируемой логикой), программируемый контроллер — электронная составляющая промышленного контроллера, специализированного (компьютеризированного) устройства, используемого дляавтоматизации технологических процессов. В качестве основного режима работы ПЛК выступает его длительное автономное использование, зачастую в неблагоприятных условиях окружающей среды, без серьёзного обслуживания и практически без вмешательства человека.
Иногда на ПЛК строятся системы числового программного управления станков.
ПЛК являются устройствами реального времени. ПЛК имеют ряд особенностей, отличающих их от прочих электронных приборов, применяемых в промышленности:
в отличие от микроконтроллера (однокристального компьютера) — микросхемы, предназначенной для управления электронными устройствами — областью применения ПЛК обычно являются автоматизированные процессы промышленного производства в контексте производственного предприятия;
в отличие от компьютеров, ориентированных на принятие решений и управление оператором, ПЛК ориентированы на работу с машинами через развитый ввод сигналов датчиков и вывод сигналов на исполнительные механизмы;в отличие от встраиваемых систем ПЛК изготавливаются как самостоятельные изделия, отдельные от управляемого при его помощи оборудования.
В системах управления технологическими объектами логические команды, как правило, преобладают над арифметическими операциями над числами с плавающей точкой, что позволяет при сравнительной простоте микроконтроллера (шины шириной 8 или 16 разрядов), получить мощные системы, действующие в режимереального времени. В современных ПЛК числовые операции в языках их программирования реализуются наравне с логическими. Все языки программирования ПЛК имеют лёгкий доступ к манипулированию битами в машинных словах, в отличие от большинства высокоуровневых языков программирования современных компьютеров.
ПЛК сканирующего типа работают циклически по методу периодического опроса входных данных. Именно такая модель обеспечивается в среде программирования CoDeSys. Рабочий цикл ПЛК включает 4 фазы:
опрос входов,
выполнение пользовательской программы,
установку значений выходов и
некоторые вспомогательные операции (диагностика, подготовка данных для отладчика, визуализации и т.д).
Прикладная программа имеет дело с одномоментной копией значений входов. Внутри одного цикла выполнения программы, значения входов можно считать константами. Такая модель упрощает анализ и программирование сложных логических и последовательностных алгоритмов. Очевидно, что время реакции на событие будет зависеть от времени выполнения одной итерации прикладной программы.
Рис.14.1 Рабочий цикл для ПЛК работающего по методу периодического опроса входных данных.
В технических характеристиках ПЛК приводится типовое время рабочего цикла. При его измерении пользовательская программа должна содержать 1К логических команд (на языке IL МЭК 61131-3). Сегодня ПЛК имеют типовое значение времени рабочего цикла, измеряемое единицами миллисекунд и менее. События, требующие быстрой реакции, выделяются в отдельные задачи, приоритетность и период выполнения которых можно изменять.
Рабочие циклы и время реакции ПЛК.
Задачи управления требуют непрерывного циклического контроля. В любых цифровых устройствах непрерывность достигается за счет применения дискретных алгоритмов, повторяющихся через достаточно малые промежутки времени. Таким образом, вычисления в PLC всегда повторяются циклически. Одна итерация, включающая замер, обсчет и выработку воздействия, называется рабочим циклом PLC.
Выполняемые действия зависят от значения входов контроллера, предыдущего состояния и определяются пользовательской программой.
По включению питания PLC выполняет самотестирование и настройку аппаратных ресурсов, очистку оперативной памяти данных (ОЗУ), контроль целостности прикладной программы пользователя. Если прикладная программа сохранена в памяти, PLC переходит к основной работе, которая состоит из постоянного повторения последовательности действий, входящих в рабочий цикл.
Рабочий цикл PLC состоит из нескольких фаз.
1. Начало цикла.
2. Чтение состояния входов.
3. Выполнение кода программы пользователя.
4. Запись состояния выходов.
5. Обслуживание аппаратных ресурсов PLC.
6. Монитор системы исполнения.
7. Контроль времени цикла.
8. Переход на начало цикла.
Абсолютное большинство PLC работают по методу периодического опроса входных данных (сканирования). PLC опрашивает входы, выполняет пользовательскую программу и устанавливает необходимые значения выходов. Для математических систем характеристикой качества работы является правильность найденного решения. В системах реального времени помимо правильности решения определяющую роль играет время реакции. Логически верное решение, полученное с задержкой более допустимой, не является приемлемым.
Время реакции — это время с момента изменения состояния системы до момента выработкисоответствующей реакции. Если изменение значений входов произошло непосредственно перед фазой чтения входов, то время реакции будет наименьшим и равным времени сканирования. Худший случай, когда изменение значений входов происходит сразу после фазы чтения входов. Тогда время реакции будет наибольшим, равным удвоенному времени сканирования минус время одного чтения входов. Иными словами, время реакции PLC не превышает удвоенного времени сканирования (Рис. 14.2).

Рис.14.2. Время сканирования
Помимо времени реакции PLC, существенное значение имеет время реакции датчиков и исполнительных механизмов, которое также необходимо учитывать при оценке общего времени реакции системы.
Существуют PLC, которые реализуют команды непосредственного доступа к аппаратуре входов и выходов, что позволяет обрабатывать и формировать отдельные сигналы с длительностью меньшей длительности рабочего цикла.
Для уменьшения времени реакции сканирующих контроллеров алгоритм программы разбивается на несколько задач с различным периодом исполнения. В наиболее развитых системах пользователь имеет возможность создавать отдельные программы, исполняемые по прерыванию, помимо кода, исполняемого в рабочем цикле. Такая техника позволяет PLC существенно форсировать ограничение реакции временем сканирования при небольшом количестве входов, требующих сверхскоростной реакции. Время цикла сканирования является базовым показателем быстродействия PLC. Программа PLC может рассматриваться как постоянно бегущая замкнутая цепь. Инструкция пользователя считывается непрерывно и когда считывается последняя инструкция, операция начинается снова. Это называется сканированием программы, а период – временем сканирования. Время зависит от размера программы и скорости процессора.
Организация подсистем прерываний в МП системах на микроконтроллерах платформы х86, Pentium.
При работе микропроцессорной системы часто возникают ситуации, когда требуется прервать выполнение текущей программы и перейти к подпрограмме, обеспечивающей необходимую реакцию системы на создавшиеся обстоятельства. Такие ситуации называются прерываниями или исключениями в зависимости от причин, вызывающих их возникновение. Специальные виды таких прерываний реализуются при отладке программ, для чего в состав процессора введены необходимые функциональные блоки, работа которых контролируется с помощью регистров отладки DR7-0.
Для современных процессоров и систем, реализуемых на их основе, применяется тестирование и самотестирование. Процессоры семейства Р6 содержат ряд средств, которые обеспечивают выполнение данных процедур.
В МПС на микропроцессорах платформы х86 стартовый адрес процедуры обслуживания прерываний определяется обращением к таблице прерываний через однобайтный вектор, формируемый аппаратными средствами подсистемы прерываний
В общем случае, все эти ситуации разделяются по принципу их обнаружения, источника возникновения и реакции на них на следующие три категории:
прерывания и особые ситуации — обнаруживаются и обрабатываются процессором в самые различные моменты времени и могут происходить как из внешних так и из внутренних источников, все другие типы экстраординарных ситуаций занимают более низкий уровень иерархии и могут обрабатываться, только если сперва заявят о своем существовании через прерывание или особую ситуацию;
исключительные ситуации FPU — могут возникать только при выполнении команд сопроцессора и полностью определяются его текущим состоянием, генерация исключительной ситуации в свою очередь может вызывать генерацию прерывания или особой ситуации, обработчик которой далее сам разбирается с тем, какое исключение произошло и какие действия в связи с этим следует предпринять;
исключительные ситуации SIMD — могут возникать только при выполнении SIMD-команд и полностью определяются состоянием SIMD-регистров процессора, сообщают о своем возникновении также, как и исключения FPU через специальное прерывание, т.е. обработчик прерывания или особой ситуации должен сам программным путем определить причину его поступления.
Прерывания и особые ситуации — это специальные средства, обеспечивающие быструю реакцию процессора на внешние воздействия и прочие неожиданные ситуации. При поступлении прерывания или генерации особой ситуации выполнение программы прерывается, а управление передается специальной процедуре — обработчику прерывания или особой ситуации. В большинстве случаев, когда обработка прерывания или особой ситуации заканчивается, управление может быть возвращено в прерванную программу, которая продолжит свое выполнение с той самой точки, в которой она была остановлена. Процессор производит автоматическое сохранение/восстановление состояния для обеспечения этой возможности.
Существует два источника поступления прерываний и три типа особых ситуаций.
Прерывания:
внешние маскируемые прерывания — принимаются на выводе INTR# CPU, если флаг EFLAGS.IF установлен, маскируемые прерывания не проходят;
внешние немаскируемые прерывания — принимаются на выводе NMI# CPU, механизм запрета немаскируемых прерываний отсутствует.
Особые ситуации:
генерируемые процессором особые ситуации — возникают в процессе и по результатам выполнения команд, разделяются на ошибки, ловушки и сбои;
программные прерывания — могут быть вызваны командами INTO, INT 3, INT n, BOUND;
особые ситуации генерируемые средствами самопроверки процессора.
Обработка прерываний в реальном и защищенном режимах
В реальном режиме для перехода к обслуживанию запроса прерывания или исключения процессор обращается к таблице векторов прерываний, которая располагается в начальной области памяти, начиная с адреса 0…0h. Элементами таблицы являются вектора прерываний – начальные адреса подпрограмм обслуживания различных типов прерываний. Вектор прерывания в реальном режиме содержит четыре байта (два байта база сегмента кода и два байта смещение). Размер всей таблицы может составлять 1024 байт, чтобы обслуживать до 256 возможных видов прерываний.
При возникновении прерываний процессор производит следующие действия:
- Заносит текущее значение регистров CS и IP в стек.
- Заносит текущее значение регистра FLAGS в стек/
- Запрещает прерывания, устанавливая признак IF в регистре EFLAGS.
- Устанавливает признаки TF=RF=AC=0 в регистре EFLAGS.
- Загружает в регистры CS, IP новое содержимое из таблицы прерываний.
Возврат из подпрограммы обслуживания прерываний выполняется командой IRET, которая восстанавливает сохраненное в стеке содержимое регистров FLAGS, CS, IP.
В защищенном режиме вызов подпрограмм обслуживания прерываний осуществляется через дескрипторную таблицу прерываний IDT (Interrupt Descriptor Table), которая может располагаться в любом месте адресного пространства памяти. Базовый линейный адрес этой таблицы хранится в регистре IDTR. Загрузка содержимого этого регистра осуществляется командой LIDT, а сохранение выполняется командой SIDT. Команда LIDT является привилегированной и может выполняться только программой, имеющей высший уровень привилегий CPL=0. Команда SIDT может быть выполнена при любом уровне привилегий программы.
47 16 15 0
Базовый адрес IDT Границы IDT
Рис. 4.2. Формат содержимого регистра IDTR
Элементами таблицы IDT являются системные дескрипторы прерываний, имеющие размер по 8 байт. Поэтому максимальный размер таблицы IDT составляет 2 Кбайт при использовании всех 256 видов прерываний (исключений). В таблице могут содержаться три вида системных дескрипторов: шлюз прерывания, шлюз ловушки и шлюз задачи.
Шлюзы содержат селектор вызываемого при обслуживании сегмента, который поступает в регистр CS, и относительный адрес первой команды подпрограммы обслуживания, который загружается в регистр EIP. В дескрипторе также содержится бит Р, указывающий на присутствие (при значении Р=1) в памяти сегмента, в котором находится соответствующая подпрограмма обслуживания, и двух битовое поле gDPL, определяющее уровень привилегий шлюза (см. раздел 3.1). Бит D в байте доступа определяет режим работы процессора при обслуживании прерываний: если значение D=0, то процессор функционирует как 16-разрядный процессор 80286, если D=1, то обеспечивается 32-разрядный режим функционирования, характерный для процессоров 386, 486, Pentium, P6.
Передача управления через шлюз прерывания или шлюз ловушки может сопровождаться изменением уровня привилегий. Процессор проверяет значение gDPL в дескрипторе шлюза при выполнении программных прерываний, вызываемых командами INT n, INT3, INTO. Переход к выполнению подпрограммы обслуживания в этих случаях производится, если уровень привилегий текущей программы меньше или равен значению gDPL шлюза: CPL<=gDPL. Таким образом, величина gDPL ограничивает уровень привилегий программ, которые могут вызывать данную процедуру обслуживания. При выполнении других видов прерываний и исключений процессор игнорирует gDPL шлюза.
Уровень привилегий сегмента команд, в котором размещается подпрограмма обслуживания, должен быть меньше или равен уровню привилегий текущей программы: DPL<=CPL. Нарушение этого правила приводит к исключению типа #GP. Поэтому рекомендуется подпрограммы обслуживания прерываний и исключений располагать в сегментах с уровнем привилегий DPL=0, чтобы избежать ситуации, когда при поступлении запроса прерывания или исключения уровень текущей программы CPL окажется меньше, чем DPL сегмента команд обработчика прерывания.
При возникновении прерывания процессор сохраняет в стеке следующую информацию (рис 4.3):
•Содержимое регистра SS прерванной процедуры (если имеет место изменение уровня привилегий).
•Содержимое регистра ESP прерванной процедуры (если имеет место изменение уровня привилегий).
•Содержимое регистра EFLAGS.
•Содержимое регистра CS.
•Содержимое регистра EIP.
•Код ошибки (если он формируется для данного исключения).

Рис. 4.3. Использование стека при прерываниях в защищенном режиме
После сохранения в стеке содержимого регистра EFLAGS процессор устанавливает в этом регистре значения признаков TF=VM=NT=0. Единственное различие между использованием шлюза ловушки и шлюза прерывания состоит в том, как процессор поступает с признаком IF. Если вызов подпрограммы обслуживания производится через шлюз прерывания, то процессор после сохранения в стеке содержимого регистра EFLAGS устанавливает значение признака IF=0, запрещая маскируемые прерывания. Если переход к подпрограмме обслуживания осуществляется через шлюз ловушки, то значение признака IF не изменяется.
Возврат из подпрограммы обслуживания прерывания осуществляется с помощью команды IRET. При восстановлении из стека содержимого регистра EFLAGS действуют следующие правила:
•поле IOPL восстанавливается только, если CPL=0,
•флаг IF изменяется только, если CPL < IOPL.
Формат дескриптора шлюза задачи при реализации прерываний и исключений имеет вид, представленный на рис.3.16. Когда прерывание обрабатывается через шлюз задачи, то процессор выполняет обычную процедуру переключения задач, как это описано в разд. 3.4.
При реализации некоторых исключений (табл. 4.1) процессор заносит в стек код ошибки, формат которого приведен на рис. 4.4.
31 16 15 3210
Резервировано Индекс селектора TI IDX XT
Рис. 4.4. Формат кода ошибки
Индекс селектора (биты 15-3) - указывает на дескриптор, использование которого вызвало исключение. Биты IDT, TI указывает на таблицу, в которой находится неверный дескриптор. Бит IDT=1, если дескриптор находится в таблице IDT. При значении бита IDT=0 размещение дескриптора определяется битом TI: если Tl=0, то дескриптор находится в таблице GDT, если Т1=1 - в таблице LDT. Бит ЕХТ=1, если исключение вызвано не выполняемой программой, а внешним сигналом прерывания.
Микропроцессоры платформы х86, Pentium: управление виртуальной памятью, средства защиты памяти.
Виртуа́льная па́мять (англ. Virtual memory) — технология управления памятью ЭВМ, разработанная для многозадачных операционных систем. При использовании данной технологии для каждой программы используются независимые схемы адресации памяти, отображающиеся тем или иным способом на физические адреса в памяти ЭВМ. Позволяет увеличить эффективность использования памяти несколькими одновременно работающими программами, организовав множество независимых адресных пространств (англ.), и обеспечить защиту памяти между различными приложениями. Также позволяет программисту использовать больше памяти, чем установлено в компьютере, за счет откачки неиспользуемых страниц на вторичное хранилище
При использовании виртуальной памяти упрощается программирование, так как программисту больше не нужно учитывать ограниченность памяти или согласовывать использование памяти с другими приложениями. Для программы выглядит доступным и непрерывным все допустимое адресное пространство, вне зависимости от наличия в ЭВМ соответствующего объёма ОЗУ.
Применение механизма виртуальной памяти позволяет:
упростить адресацию памяти клиентским программным обеспечением;
рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);
изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью).
Страничная память — способ организации виртуальной памяти, при котором единицей отображения виртуальных адресов на физические является регион постоянного размера (т. н. страница). Типичный размер 4096 байт, для некоторых архитектур до 128 КБ.
Страничная организация памяти обеспечивается только в защищенном режиме. Для ее реализации необходимо с помощью команды LMSW или MOV CR0 установить в регистре CR0 значение бита страничной адресации PG=1. При этом сегменты делятся на отдельные страницы емкостью 4 Кбайт или 4 Мбайт, размещаемые в различных позициях адресного пространства ОЗУ. Страницы могут группироваться в разделы. Размещение разделов и страниц в ОЗУ производится диспетчером памяти, входящим в состав операционной системы. Диспетчер задает базовые адреса разделов и страниц, которые хранятся в памяти в виде адресных таблиц. При использовании страничной организации блоки трансляции адреса, входящие в состав процессора, преобразуют адрес, сформированный MIU (при выборке операнда) или блоком выборки-декодирования (при выборке команды), в реальный физический адрес байта или слова. В процессе этого преобразования, который называется страничной трансляцией адреса, блок трансляции обращается к хранящимся в ОЗУ адресным таблицам. Чтобы уменьшить число таких обращений и повысить производительность процессора, базовые адреса 32 страниц памяти команд и данных, к которым выполнялись последние обращения, записываются во внутренние буферы трансляции адреса (TLB). При обращении к этим страницам их базовые адреса считываются из буфера, поэтому формирование физического адреса происходит существенно быстрее.
Страничная трансляция позволяет расширить объем адресуемой памяти до 64 Гбайт, используя 36-разрядную шину адреса. Такая возможность реализуется, если установить в регистре управления CR4 значение бита РАЕ=1. При этом в адресных таблицах задаются 36-разрядные базовые адреса разделов и страниц, а размер страниц может составлять 4 Кбайт или 2 Мбайт.
СРЕДТСВА ЗАЩИТЫ ПАМЯТИ
Процессоры Р6 имеют специальные средства, обеспечивающие в защищенном режиме защиту от случайного (непредусмотренного решаемой задачей) обращения к сегментам и страницам, хранящимся в памяти. Система защиты предусматривает различные виды контроля, которые реализуются процессором:
• контроль доступа к сегментам и страницам, который обеспечивается описанной ниже системой привилегий;
• контроль использования сегментов и страниц, который вводит ряд ограничений на возможные виды обращения к ним: запрещение записи в сегменты данных (страницы), разрешенные только для чтения, запрещение чтения сегментов программ (страниц), разрешенных только для выполнения, запрещение обращения к незагруженным (отсутствующим) сегментам и страницам и ряд других;
•ограничение набора выполняемых команд в зависимости от уровня привилегий выполняемой программы (выделение привилегированных команд).
Для защиты информации, хранящейся в сегментах памяти, используется система привилегий, которая регулирует доступ к тому или иному сегменту в зависимости от уровня его защищенности и от степени важности (привилегированности) запроса. В процессорах Р6, так же как в более ранних моделях 80286, 80386, 80486, Реntium установлены четыре уровня привилегий РL (privilege level), которые задаются номерами от 0 до 3. Наиболее привилегированным является уровень с меньшим номером. Степень защищенности сегмента так же имеет четыре уровня, которые схематически представляются в виде вложенных колец защиты (рис. 16.1).

Рис. 16.1. Уровни привилегий и защиты
Соответствующие уровни защищенности иллюстрируются на примере сегментов программ. Наименее защищенными (привилегированными) являются прикладные программы пользователя, для которых выделяется уровень с номером РL=3. Уровни с номерами РL=0, 1, 2 отводятся для системных программ (супервизора), которые можно разделить на три уровня в зависимости от требований к их защищенности. Наиболее защищенная часть — ядро операционной системы (ОС) имеет уровень РL=0. В ядро входит часть ОС, обеспечивающая инициализацию работы, управление доступом к памяти, защиту и ряд других жизненно важных функций, нарушение которых полностью выводит систему из строя. Основная часть программ ОС (утилиты) должна иметь уровень РL=1. К уровню РL=2 обычно относят ряд служебных программ ОС, например, драйверы внешних устройств, системы управления базами данных, специализированные подсистемы программирования и другие.
Для программ с различными уровнями привилегий организованы отдельные стеки. Таким образом, в системе, использующей все четыре уровня привилегий, функционируют четыре различных стека, каждый из которых обслуживает только программы соответствующего уровня. При передаче управления программе другого уровня производится переключение стеков.
В соответствии с уровнями привилегий и защищенности установлены следующие правила доступа для сегментов программ и данных.
1. Данные из сегмента, имеющего уровень защиты РL могут быть выбраны программой, имеющей такой же или более высокий уровень привилегий.
2. Сегмент программ (процедура), имеющий уровень защиты РL может быть вызван программой, имеющей такой же или более низкий уровень привилегий. Различные варианты вызова сегментов программ описаны ниже.
Уровни защиты и привилегий определяются двумя битами, значение которых указывает номер кольца защиты или уровня. В зависимости от места размещения эти биты имеют различное назначение.
Уровень привилегий дескриптора DPL. задается битами 5,6 в байте доступа дескриптора. Указывает уровень защищенности сегмента, то есть номер кольца защиты, к которому он относится.
Уровень привилегий запроса RPL задается битами 0,1 селектора, загружаемого в сегментный регистр. Этот уровень устанавливается выполняемой программой, которая с помощью данного селектора обращается к памяти системы.
Текущий уровень привилегий CPL задается битами 0,1 селектора, размещенного в регистре сегмента программ СS. Определяет уровень привилегий выполняемого в настоящий момент сегмента программы.
Чтобы избежать частых нарушений хода выполнения программы из-за несоблюдения правил доступа к сегментам, в набор команд процессора введены специальные команды, используемые для проверки различных условий доступа. Команда LAR осуществляет загрузку в регистр байта доступа сегмента, выбираемого с помощью селектора, который содержится в адресуемой ячейке памяти или регистре. После этой операции процессор может произвести побитный анализ содержимого байта доступа, определяя возможности обращения к данному сегменту.
СРЕДСТВА И МЕТОДЫ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ И ЕГО ОТЛАДКИ МИКРОКОНТРОЛЛЕРНЫХ СИСТЕМ. ИНТЕГРИРОВАННЫЕ СРЕДЫ ПРОЕКТИРОВАНИЯ.
Средства разработки и отладки программного обеспечения
После того как разработчиком были распределены функции микропроцессорной системы между аппаратной и программной ее частями, их разработка до определенного момента может проводиться автономно.
Для разработки программного обеспечения в настоящее время используются интегрированные среды разработки, содержащие в своем составе текстовые редакторы, компиляторы, редакторы связей, загрузчики и симу ляторы.
Текстовые редакторы служат для создания текста программы. Как правило, они имеют более ограниченные возможности посравнению с универсальными программами этого типа и ориентированы на особенности написания программ на используемых языках программирования.
Традиционным языком программирования для МПС, работающих в реальном масштабе времени (а именно к этому классу относится большинство систем управления, сбора и обработки информации на базе однокристальных микроконтроллеров и ЦСП), является Ассемблер. В настоящее время в распоряжение разработчиков практически повсеместно предоставляется также компилятор с языкаСи, а иногда Си++ и даже Паскаля. Как правило, в этом случае используются специальные оптимизирующие компиляторы, но даже они не всегда позволяют написать приемлемую по времени выполнения и объему памяти программу, что вызывает необходимость их доработки на Ассемблере.
Редактор связей собирает единый исполняемый модуль из нескольких объектных программных модулей.
Если программы предыдущих типов используются при любом процессе программирования, то симуляторы являются специфическим программным средством, используемым в процессе проектирования МПС.
Симуляторы предоставляют пользователю возможность выполнить тестирование и отладку разработанного программного обеспечения на программно-логической модели микропроцессора.
Симуляторы позволяют запустить программу и полностью проследить ее исполнение. Загрузив программу в симулятор,пользователь имеет возможность запускать ее в пошаговом или непрерывном режимах, задавать условные или безусловные точки останова, контролировать и свободно модифицировать содержимое ячеек памяти и регистров моделируемого микропроцессора.
Симулятор охватывает сразу несколько процессоров одного семейства. Выбор конкретного типа МП среди моделей семейства обеспечивается соответствующими опциями меню. При этом моделируется работа ЦП, всех портов ввода/вывода, прерываний и другой периферии.
Изначально отладка программ с использованием симуляторов велась на уровне машинных команд в символьных обозначениях регистров.
В состав современных симуляторов входят также отладчики на языках высокого уровня, поскольку в комплект разработчика, как правило, входит и соответствующий компилятор.
Основное достоинство симуляторов заключается в том, что, поскольку они не требуют наличия реальных аппаратных средств,разработка программного обеспечения может идти параллельно с их разра боткой.
Главным недостатком этого подхода является то, что, поскольку моделирование осуществляется программным способом, отлаживаемая программа исполняется не в реальном масштабе времени. При этом все сигналы ввода/вывода должны генерироваться специальными подпрограммами, разработанными для имитации периферийных устройств. Однако существует мнение, что хорошо написанный симулятор дает достаточно точное представление о работе программы целевого МП, включая ее временные характеристики.
Изначально симуляторы создавали сами разработчики МП БИС и продавали их по очень низкой цене или даже поставляли бесплатно, для того чтобы потенциальные пользователи могли заранее познакомиться с особенностями новых схем и начать разработку ПО для них до появления на рынке достаточного количества новых БИС. Ныне симуляторы поставляет множество производителей эмуляторов и компиляторов, в то время как традиционные поставщики - производители интегральных схем - предпочитают покидать этот рынок.
Средства отладки программ должны: а) управлять исполнением программ (останавливать, изменять порядок, запускать и т. д.); 
б) собирать информацию о ходе выполнения программы; в) обеспечивать обмен информацией (диалог) между программистом и ЭВМ на уровне языка программирования; г) моделировать работу отсутствующих аппаратных средств микропроцессорной системы.
Отладка программ микропроцессорной системы проводится, как правило, на тех же ЭВМ, на которых велась разработка программ, и на том же языке программирования, на котором написаны отлаживаемые программы, и может быть начата на ЭВМ даже при отсутствии аппаратуры МПС. При этом в системном программном обеспечении ЭВМ должны находиться программы (интерпретаторы или эмуляторы), моделирующие функции отсутствующих аппаратных средств. Так, разработка и автономная отладка программных средств может вестись на больших ЭВМ, миниЭВМ, микроЭВМ, система команд которых не совпадает с системой команд используемого микропроцессора. Кроме того, при отладке программ может отсутствовать внешняя среда микропроцессорной системы, ее также необходимо моделировать.
Проверка корректности программ, т.е. проверка соответствия их внешним спецификациям, осуществляется тестированием. Программы проверяются на функционирование с различными исходными данными. Результаты функционирования программ сравниваются с эталонными значениями.
Отладка программ подразделяется на следующие этапы: планирование отладки; составление тестов и задания на отладку; исполнение программ; информирование о результатах исполнения программ по заданным исходным данным; анализ
Для микроконтроллеров К1816ВЕ51 или ST7, STM8, STM32 поясните и продемонстрируйте примерами ввод и вывод данных в параллельном и последовательном кодах.
Способы обмена данными в микропроцессорных системах. Пояснение выполните на примерах структурных схем и фрагментах программ обмена.
пРимеров нет!
Практически любая развитая микропроцессорная система (в том числе и компьютер) поддерживает три основных режима обмена по магистрали:
программный обмен информацией;
обмен с использованием прерываний (Interrupts);
обмен с использованием прямого доступа к памяти (ПДП, DMA — Direct Memory Access).
Программный обмен информацией является основным в любой микропроцессорной системе. Он предусмотрен всегда, без него невозможны другие режимы обмена. В этом режиме процессор является единоличным хозяином (или задатчиком, Master) системной магистрали. Все операции (циклы) обмена информацией в данном случае инициируются только процессором, все они выполняются строго в порядке, предписанном исполняемой программой.
Процессор читает (выбирает) из памяти коды команд и исполняет их, читая данные из памяти или из устройства ввода/вывода, обрабатывая их, записывая данные в память или передавая их в устройство ввода/вывода. Путь процессора по программе может быть линейным, циклическим, может содержать переходы (прыжки), но он всегда непрерывен и полностью находится под контролем процессора. Ни на какие внешние события, не связанные с программой, процессор не реагирует (рис. 19.1). Все сигналы на магистрали в данном случае контролируются процессором.

Рис. 19.1. Программный обмен информацией.
Обмен по прерываниям используется тогда, когда необходима реакция микропроцессорной системы на какое-то внешнее событие, на приход внешнего сигнала. В случае компьютера внешним событием может быть, например, нажатие на клавишу клавиатуры или приход по локальной сети пакета данных. Компьютер должен реагировать на это, соответственно, выводом символа на экран или же чтением и обработкой принятого по сети пакета.
В общем случае организовать реакцию на внешнее событие можно тремя различными путями:
с помощью постоянного программного контроля факта наступления события (так называемый метод опроса флага или polling);
с помощью прерывания, то есть насильственного перевода процессора с выполнения текущей программы на выполнение экстренно необходимой программы;
с помощью прямого доступа к памяти, то есть без участия процессора при его отключении от системной магистрали.
Первый случай с опросом флага реализуется в микропроцессорной системе постоянным чтением информации процессором изустройства ввода/вывода, связанного с тем внешним устройством, на поведение которого необходимо срочно реагировать.
Во втором случае в режиме прерывания процессор, получив запрос прерывания от внешнего устройства (часто называемый IRQ —Interrupt ReQuest), заканчивает выполнение текущей команды и переходит к программе обработки прерывания. Закончив выполнение программы обработки прерывания, он возвращается к прерванной программе с той точки, где его прервали (рис. 19.2).
Здесь важно то, что вся работа, как и в случае программного режима, осуществляется самим процессором, внешнее событие просто временно отвлекает его. Реакция на внешнее событие по прерыванию в общем случае медленнее, чем при программном режиме. Как и в случае программного обмена, здесь все сигналы на магистрали выставляются процессором, то есть он полностью контролируетмагистраль. Для обслуживания прерываний в систему иногда вводится специальный модуль контроллера прерываний, но он в обмене информацией не участвует. Его задача состоит в том, чтобы упростить работу процессора с внешними запросами прерываний. Этот контроллер обычно программно управляется процессором по системной магистрали.

Рис. 19.2. Обслуживание прерывания.
Естественно, никакого ускорения работы системы прерывание не дает. Его применение позволяет только отказаться от постоянного опроса флага внешнего события и временно, до наступления внешнего события, занять процессор выполнением каких-то других задач.
Прямой доступ к памяти (ПДП, DMA) — это режим, принципиально отличающийся от двух ранее рассмотренных режимов тем, что обмен по системной шине идет без участия процессора. Внешнее устройство, требующее обслуживания, сигнализирует процессору, что режим ПДП необходим, в ответ на это процессор заканчивает выполнение текущей команды и отключается от всехшин, сигнализируя запросившему устройству, что обмен в режиме ПДП можно начинать.
Операция ПДП сводится к пересылке информации из устройства ввода/вывода в память или же из памяти в устройство ввода/вывода. Когда пересылка информации будет закончена, процессор вновь возвращается к прерванной программе, продолжая ее с той точки, где его прервали (рис. 1.13). Это похоже на режим обслуживания прерываний, но в данном случае процессор не участвует в обмене. Как и в случае прерываний, реакция на внешнее событие при ПДП существенно медленнее, чем при программном режиме.
Понятно, что в этом случае требуется введение в систему дополнительного устройства (контроллера ПДП), которое будет осуществлять полноценный обмен по системной магистрали без всякого участия процессора. Причем процессор предварительно должен сообщить этому контроллеру ПДП, откуда ему следует брать информацию и/или куда ее следует помещать. КонтроллерПДП может считаться специализированным процессором, который отличается тем, что сам не участвует в обмене, не принимает в себя информацию и не выдает ее (рис. 1.14).

Рис. 19.3. Обслуживание ПДП.

Рис. 19.4. Информационные потоки в режиме ПДП.
В принципе контроллер ПДП может входить в состав устройства ввода/вывода, которому необходим режим ПДП или даже в состав нескольких устройств ввода/вывода. Теоретически обмен с помощью прямого доступа к памяти может обеспечить более высокуюскорость передачи информации, чем программный обмен, так как процессор передает данные медленнее, чем специализированныйконтроллер ПДП. Однако на практике это преимущество реализуется далеко не всегда. Скорость обмена в режиме ПДП обычно ограничена возможностями магистрали. К тому же необходимость программного задания режимов контроллера ПДП может свести на нет выигрыш от более высокой скорости пересылки данных в режиме ПДП. Поэтому режим ПДП применяется редко.
Если в системе уже имеется самостоятельный контроллер ПДП, то это может в ряде случаев существенно упростить аппаратуруустройств ввода/вывода, работающих в режиме ПДП. В этом, пожалуй, состоит единственное бесспорное преимущество режимаПДП.
Какие способы обмена данными применяются в микропроцессорных системах. Поясните на примерах структурных схем и фрагментах программ обмена.
пРимеров нет!
Практически любая развитая микропроцессорная система (в том числе и компьютер) поддерживает три основных режима обмена по магистрали:
программный обмен информацией;
обмен с использованием прерываний (Interrupts);
обмен с использованием прямого доступа к памяти (ПДП, DMA — Direct Memory Access).
Программный обмен информацией является основным в любой микропроцессорной системе. Он предусмотрен всегда, без него невозможны другие режимы обмена. В этом режиме процессор является единоличным хозяином (или задатчиком, Master) системной магистрали. Все операции (циклы) обмена информацией в данном случае инициируются только процессором, все они выполняются строго в порядке, предписанном исполняемой программой.
Процессор читает (выбирает) из памяти коды команд и исполняет их, читая данные из памяти или из устройства ввода/вывода, обрабатывая их, записывая данные в память или передавая их в устройство ввода/вывода. Путь процессора по программе может быть линейным, циклическим, может содержать переходы (прыжки), но он всегда непрерывен и полностью находится под контролем процессора. Ни на какие внешние события, не связанные с программой, процессор не реагирует (рис. 19.1). Все сигналы на магистрали в данном случае контролируются процессором.

Рис. 19.1. Программный обмен информацией.
Обмен по прерываниям используется тогда, когда необходима реакция микропроцессорной системы на какое-то внешнее событие, на приход внешнего сигнала. В случае компьютера внешним событием может быть, например, нажатие на клавишу клавиатуры или приход по локальной сети пакета данных. Компьютер должен реагировать на это, соответственно, выводом символа на экран или же чтением и обработкой принятого по сети пакета.
В общем случае организовать реакцию на внешнее событие можно тремя различными путями:
с помощью постоянного программного контроля факта наступления события (так называемый метод опроса флага или polling);
с помощью прерывания, то есть насильственного перевода процессора с выполнения текущей программы на выполнение экстренно необходимой программы;
с помощью прямого доступа к памяти, то есть без участия процессора при его отключении от системной магистрали.
Первый случай с опросом флага реализуется в микропроцессорной системе постоянным чтением информации процессором изустройства ввода/вывода, связанного с тем внешним устройством, на поведение которого необходимо срочно реагировать.
Во втором случае в режиме прерывания процессор, получив запрос прерывания от внешнего устройства (часто называемый IRQ —Interrupt ReQuest), заканчивает выполнение текущей команды и переходит к программе обработки прерывания. Закончив выполнение программы обработки прерывания, он возвращается к прерванной программе с той точки, где его прервали (рис. 19.2).
Здесь важно то, что вся работа, как и в случае программного режима, осуществляется самим процессором, внешнее событие просто временно отвлекает его. Реакция на внешнее событие по прерыванию в общем случае медленнее, чем при программном режиме. Как и в случае программного обмена, здесь все сигналы на магистрали выставляются процессором, то есть он полностью контролируетмагистраль. Для обслуживания прерываний в систему иногда вводится специальный модуль контроллера прерываний, но он в обмене информацией не участвует. Его задача состоит в том, чтобы упростить работу процессора с внешними запросами прерываний. Этот контроллер обычно программно управляется процессором по системной магистрали.

Рис. 19.2. Обслуживание прерывания.
Естественно, никакого ускорения работы системы прерывание не дает. Его применение позволяет только отказаться от постоянного опроса флага внешнего события и временно, до наступления внешнего события, занять процессор выполнением каких-то других задач.
Прямой доступ к памяти (ПДП, DMA) — это режим, принципиально отличающийся от двух ранее рассмотренных режимов тем, что обмен по системной шине идет без участия процессора. Внешнее устройство, требующее обслуживания, сигнализирует процессору, что режим ПДП необходим, в ответ на это процессор заканчивает выполнение текущей команды и отключается от всехшин, сигнализируя запросившему устройству, что обмен в режиме ПДП можно начинать.
Операция ПДП сводится к пересылке информации из устройства ввода/вывода в память или же из памяти в устройство ввода/вывода. Когда пересылка информации будет закончена, процессор вновь возвращается к прерванной программе, продолжая ее с той точки, где его прервали (рис. 1.13). Это похоже на режим обслуживания прерываний, но в данном случае процессор не участвует в обмене. Как и в случае прерываний, реакция на внешнее событие при ПДП существенно медленнее, чем при программном режиме.
Понятно, что в этом случае требуется введение в систему дополнительного устройства (контроллера ПДП), которое будет осуществлять полноценный обмен по системной магистрали без всякого участия процессора. Причем процессор предварительно должен сообщить этому контроллеру ПДП, откуда ему следует брать информацию и/или куда ее следует помещать. КонтроллерПДП может считаться специализированным процессором, который отличается тем, что сам не участвует в обмене, не принимает в себя информацию и не выдает ее (рис. 1.14).

Рис. 19.3. Обслуживание ПДП.

Рис. 19.4. Информационные потоки в режиме ПДП.
В принципе контроллер ПДП может входить в состав устройства ввода/вывода, которому необходим режим ПДП или даже в состав нескольких устройств ввода/вывода. Теоретически обмен с помощью прямого доступа к памяти может обеспечить более высокуюскорость передачи информации, чем программный обмен, так как процессор передает данные медленнее, чем специализированныйконтроллер ПДП. Однако на практике это преимущество реализуется далеко не всегда. Скорость обмена в режиме ПДП обычно ограничена возможностями магистрали. К тому же необходимость программного задания режимов контроллера ПДП может свести на нет выигрыш от более высокой скорости пересылки данных в режиме ПДП. Поэтому режим ПДП применяется редко.
Если в системе уже имеется самостоятельный контроллер ПДП, то это может в ряде случаев существенно упростить аппаратуруустройств ввода/вывода, работающих в режиме ПДП. В этом, пожалуй, состоит единственное бесспорное преимущество режимаПДП.
ОСНОВНЫЕ ФУНКЦИИ ИНСТРУМЕНТАЛЬНЫХ ПАКЕТОВ ПРОЕКТИРОВАНИЯ ПРОМЫШЛЕННЫХ СИСТЕМ АВТОМАТИЗАЦИИ И УПРАВЛЕНИЯ (НА ПРИМЕРАХ ИНСТРУМЕНТАЛЬНОГО ПАКЕТА STEP7 ИЛИ ЛЮБОГО ИНОГО).
Пакет прикладных программ – это комплекс программ, предназначенный для решения задач определенного класса (функциональная подсистема, бизнес-приложение).
Различают следующие типы ППП:
    общего назначения (универсальные);
    метод-ориентированные;
    проблемно-ориентированные;
    глобальных сетей;
    организации (администрирования) вычислительного процесса.
STEP 7 – это базовый пакет программ, включающий в свой состав весь спектр инструментальных средств, необходимых для программирования и эксплуатации систем управления, построенных на основе систем автоматизации SIMATIC S7/C7/WinAC.  Отличительной особенностью пакета STEP 7 является возможность разработки комплексных проектов автоматизации, базирующихся на использовании множества программируемых контроллеров, промышленных компьютеров, устройств и систем человеко-машинного интерфейса, устройств распределенного ввода-вывода, сетевых структур промышленной связи. Ограничения на разработку таких проектов накладываются только функциональными возможностями программаторов или компьютеров, на которых инсталлирован STEP 7.
Основные функции STEP 7:
Конфигурирование и определение параметров настройки аппаратуры;
Конфигурирование систем промышленной связи и настройку параметров передачи данных;
Программирование, тестирование, отладка и запуск программ отдельных систем автоматизации, а также их локальное или дистанционное обслуживание;
Документирование и архивирование данных проекта;
Функции оперативного управления и диагностирования аппаратуры.
Все перечисленные функции поддерживаются мощной системой интерактивной помощи. STEP 7 обеспечивает параллельное выполнение работ по одному проекту несколькими разработчиками. Единственным ограничением при этом является невозможность одновременной записи данных несколькими разработчиками.
Кроме того из этого редактора доступны функции системной диагностики, которые позволяет определить текущее состояние программируемого контроллера, а также выявить любые дефекты в модулях. Подробная информация о дефекте может быть вызвана двойным нажатием кнопки мыши на изображение модуля. Объем и вид этой информации определяются типом модуля.
22. Для микроконтроллеров К1816ВЕ51 или ST7, STM8, STM32 поясните и продемонстрируйте примерами ввода и вывода данных в параллельном и последовательном кодах, возможности программирования операций с отдельными разрядами портов.
СИСТЕМНОЕ И ПРИКЛАДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ МАГИСТРАЛЬНО-МОДУЛЬНЫХ СИСТЕМ.
Основным способом организации МПС является магистрально-модульный (23.1): все устройства, включая и микропроцессор, представляются в виде модулей, которые соединяются между собой общей магистралью. Обмен информацией по магистрали удовлетворяет требованиям некоторого общего интерфейса, установленного для магистрали данного типа. Каждый модульподключается к магистрали посредством специальных интерфейсных схем.

Рис. 23.1. Магистрально-модульный принцип построения микропроцессорной системы
Магистрально-модульные системы – это один из методов организации систем автоматизации. ММСА состоят из одного или нескольких электронных блоков, механически объединённых в одном каркасе - крейте, и общей шины – магистра- ли. Магистраль - это совокупность электрических проводников, соединяющих различные блоки (модули) системы автоматизации. Обмен данными между модулями происходит через магистраль. Управляющим устройством – «хозяином» магистрали является специальный модуль – контроллер (рис. 1.). Он выполняет все процедуры по адресации остальных устройств, их чтению/записи, обработке запросов и т.п. В некоторых специфических случаях на магистрали могут устанавливаться несколько контроллеров, которые могут брать на себя управление магистралью. Очень часто контроллер является «интеллектуальным» и содержит процессор. Тогда часть функций управляющей ЭВМ, как например, работа с конкретными модулями, передаётся ему. Для подключения к управляющей ЭВМ контроллер содержит интерфейсный узел. Физическое соединение, обеспечивающее связь с ЭВМ, выполняется посредством какой-либо стандартной линии связи/шины: Ethernet, CANbus, RS-232, либо нестандартной. ЭВМ Линия связи ЭВМ/крейт контроллер Крейт Модули Магистраль Рис. 1. Устройство Магистрально-модульной сис- темы автоматизации Основным достоинством магистрально-модульных систем автоматизации является их гибкость: имея набор модулей можно организовывать различные варианты контрольно- измерительных систем, при необходимости можно быстро внести измерения в конфигурацию оборудования: добавить модули, произвести замену и т.д.
В любой магистрально-модульной системы, можно выделить основные элементы: крейт, модули, магистраль
Крейт (или корзина) – это механический каркас, в который устанавливаются модули, кроме этого, в крейте располагаются: магистраль, блок питания, система охлаждения. В случае большой системы автоматизации, с множеством измерительных приборов уста- новленных в нескольких крейтах, они (крейты) могут быть смонтированы в специальную стойку.
Модули – это электронные блоки, выполняющие различные функции: измерение, гене- рация сигналов, хранение информации, преобразование сигналов и др. Модули устанавливаются в крейт и подключается к магистрали.
Магистраль - это совокупность электрических проводников, соединяющих различные модули системы автоматизации. В устройстве магистрали можно выделить несколько шин.
Шина – это набор электрических проводников сгруппированных по функциональному назначению. В общем случае, можно выделить следующие типы шин: шина адреса, шина данных, шина команд, шина состояния, шина управления, шина арбитража, шины прерывания [2].
Шины адреса – предназначена для выбора модуля установленного в крейт. Выбор мо-дуля (или адресация) может выполняться различными способами: двоичное кодирование, географическая адресация и т.п. В системах PXIe, используемых в практикуме, поддержи- вается географическая (позиционная) адресация – каждому месту в крейте отводится от- дельная сигнальная линия.
Шина данных – предназначена для передачи данных. Чаще всего, разрядность шины (количество проводников сгруппированных в шину) кратна байту: 8, 16, 24, 32 разряда. В результате, за один такт, по шине могут быть переданы, соответственно: 1, 2, 3, 4 байта. Для уменьшения общего количества проводников в шине, шина адреса и шина данных могут выполняться мультиплексированными – т.е. одни и те же линии используются как для посылки адреса, так и для данных, но посылки разнесены по времени, фиксация мо- ментов (стробирование), когда происходит передача адреса, а когда данных происходит по сигналам на шине управления.
Шина команд – используется для управления операциями на магистрали. По шине пе- редаются команды модулям, например: произвести чтение, выдать данные, начать работу и т.п. Полный список команд, выполняемых модулем определяется стандартом, в котором выполнена система автоматизации.
Шина состояния – используется для передачи данных о результате выполнения опера- ций каким-либо модулем, например: модуль закончил работу, при работе модуля возникла ошибка, модуль готов к работе и т.д. Все вышеперечисленные шины: шина команд, шина данных, шина адреса, шина со- стояния могут быть мультиплексированы, (т.е. по одним и тем же линиям передаются ад- рес, данные, команды, состояние). Мультиплексирование может быть частичным: адрес – данные мультиплексированы, а шина команд и состояния – выполняются отдельными линиями. Наличие мультиплексированных шин на магистрали характерно для современных стандартов систем автоматизации: cPCI, PXI, PXIe. 3 Шина управления – предназначена для синхронизации работы модулей или передачи информации. В состав шины управления могут входить: линии стробирования (по этим линиям передаются сигналы разделяющие адрес, данные, и т.д. на мультиплексированных шинах), тактовые линии (по ним передаются сигналы постоянной формы и частоты, чаще всего прямоугольный меандр, подаваемые на все модули одновременно для синхронизации работы модулей во времени), линии сброса и очистки (по ним передаются сигналы модулям перейти в начальное состояние).
Шина арбитража – предназначена для того, чтобы реализовать модулям доступ к магистрали в соответствии с приоритетом. Расстановка приоритета на доступ к магистрали необходима, например, чтобы не образовалось два или более модулей пытающихся по од- ним и тем же линиям передавать данные, если возникнет такое состояние, то данные будут потеряны.
Шина прерываний – предназначена для того чтобы определить, что модуль запрашивает обработку какого-либо события: закончено измерение, требуются данные, и т.д. Все вышеперечисленные шины не обязательно должны присутствовать в магистрально- модульной системе. Их наличие или отсутствие, а так же способ реализации: разрядность, мультиплексированы или нет, и т. д. определяется спецификацией на систему.
Программы работы МПС размещаются в модулях постоянных запоминающих устройств (ПЗУ) и оперативных запоминающих устройств (ОЗУ).
Аппаратные средства поддержки реального и календарного времени в микропроцессорных и микроконтроллерных системах (таймеры и процессоры событий).
Таймеры и процессоры событий
Большинство задач управления, которые реализуются с помощью МК, требуют исполнения их в реальном времени. Под этим понимается способность системы получить информацию о состоянии управляемого объекта, выполнить необходимые расчетные процедуры и выдать управляющие воздействия в течение интервала времени, достаточного для желаемого изменения состояния объекта. Возлагать функции формирования управления в реальном масштабе времени только на центральный процессор неэффективно, так как это занимает ресурсы, необходимые для расчетных процедур. Поэтому в большинстве современных МК используется аппаратная поддержка работы в реальном времени с использованием таймера (таймеров). Модули таймеров служат для приема информации о времени наступления тех или иных событий от внешних датчиков событий, а также для формирования управляющих воздействий во времени. Модуль таймера 8-разрядного МК представляет собой 8-ми или 16-разрядный счетчик со схемой управления. Схемотехникой МК обычно предусматривается возможность использования таймера в режиме счетчика внешних событий, поэтому его часто называют таймером/счетчиком. Структура типичного 16-разрядного таймера/счетчика в составе МК приведена.  В памяти МК 16-разрядный счетчик отображается двумя регистрами: TH — старший байт счетчика, TL — младший байт. Регистры доступны для чтения и для записи. Направление счета — только прямое, то есть при поступлении входных импульсов содержимое счетчика инкрементируется. В зависимости от настройки счетчик может использовать один из источников входных сигналов:
импульсную последовательность с выхода управляемого делителя частоты fBUS;
сигналы внешних событий, поступающие на вход TOCKI контроллера.
В первом случае говорят, что счетчик работает в режиме таймера, во втором — в режиме счетчика событий. При переполнении счетчика устанавливается в «единицу» триггер переполнения TF, который генерирует запрос на прерывание, если прерывания от таймера разрешены. Пуск и останов таймера могут осуществляться только под управлением программы. Программным способом можно также установить старший и младший биты счетчика в произвольное состояние или прочитать текущий код счетчика.Рассмотренный «классический» модуль таймера/счетчика широко применяется в различных моделях относительно простых МК. Он может использоваться для измерения временных интервалов и формирования последовательности импульсов. Основными недостатками «классического» таймера/счетчика являются:
потери времени на выполнение команд пуска и останова таймера, приводящие к появлению ошибки при измерении временных интервалов и ограничивающие минимальную длительность измеряемых интервалов времени единицами мс;
сложности при формировании временных интервалов (меток времени), отличных от периода полного коэффициента счета, равного (Kдел/fBUS) · 216;
невозможность одновременного обслуживания (измерения или формирования импульсного сигнала) сразу нескольких каналов.
Первые их двух перечисленных недостатков были устранены в усовершенствованном модуле таймера/счетчика, используемом в МК семейства MCS-51 (Intel). Дополнительная логика счетного входа позволяет тактовым импульсам поступать на вход счетчика, если уровень сигнала на одной из линий ввода равен «1». Такое решение повышает точность измерения временных интервалов, так как пуск и останов таймера производится аппаратно. Также в усовершенствованном таймере реализован режим перезагрузки счетчика произвольным кодом в момент переполнения. Это позволяет формировать временные последовательности с периодом, отличным от периода полного коэффициента счета. Однако эти усовершенствования не устраняют главного недостатка модуля «классического» таймера — одноканального режима работы. Совершенствование подсистемы реального времени МК ведется по следующим направлениям:
увеличение числа модулей таймеров/счетчиков. Этот путь характерен для фирм, выпускающих МК со структурой MCS-51, а также для МК компаний Mitsubishi и Hitachi;
модификация структуры модуля таймера/счетчика, при которой увеличение числа каналов достигается не за счет увеличения числа счетчиков, а за счет введения дополнительных аппаратных средств входного захвата (input capture — IC) и выходного сравнения (output compare — OC). Такой подход используется, в частности, в МК компании Motorola.
Принцип действия канала входного захвата таймера/счетчика иллюстрирует.Схема детектора события «наблюдает» за уровнем напряжения на одном из входов МК. Чаще всего это одна из линий порта ввода/вывода. При изменении уровня логического сигнала с «0» на «1» и наоборот вырабатывается строб записи, и текущее состояние счетчика   таймера записывается в 16-разрядный регистр входного захвата. Описанное действие в микропроцессорной технике называют событием захвата. Предусмотрена возможность выбора типа сигнала на входе, и это воспринимается как событие:
положительный (передний) фронт сигнала;
отрицательный (задний) фронт сигнала;
любое изменение логического уровня сигнала.
Выбор типа события захвата устанавливается в процессе инициализации таймера и может неоднократно изменяться в ходе выполнения программы. Каждое событие захвата приводит к установке в «1» триггера входного захвата и появлению на его выходе флага (признака) входного захвата ICF. Состояние триггера входного захвата может быть считано программно, а если прерывания по событию захвата разрешены — формируется запрос на прерывание   INT IC.Использование режима входного захвата позволяет исключить ошибки измерения входного интервала времени, связанные со временем перехода к подпрограмме обработки прерывания, так как копирование текущего состояния счетчика осуществляется аппаратными, а не программными средствами. Однако время перехода на подпрограмму обработки прерывания накладывает ограничение на длительность измеряемого интервала времени, так как предполагается, что второе событие захвата произойдет позже, чем код первого события будет считан МК.Структура аппаратных средств канала выходного сравнения представлена на.Цифровой компаратор непрерывно сравнивает текущий код счетчика   таймера с кодом, который записан в 16-разрядном регистре выходного сравнения. В момент равенства кодов на одном из выходов МК устанавливается заданный уровень логического сигнала. Обычно предусмотрено три типа изменения сигнала на выходе Pxj в момент события выходного сравнения:
установка высокого логического уровня;
установка низкого логического уровня;
инвертирование сигнала на выходе.
При наступлении события сравнения устанавливаются в «1» триггер выходного сравнения и соответствующий ему признак выходного сравнения OCF. Аналогично режиму входного захвата состояние триггера выходного сравнения может быть считано программно, а если прерывания по событию сравнения разрешены — формируется запрос на прерывание   INT OC.Режим выходного сравнения предназначен, прежде всего, для формирования временных интервалов заданной длительности. Длительность сформированного временного интервала определяется только разностью кодов, последовательно загружаемых в регистр выходного сравнения, и не зависит от программного обеспечения МК. Время, необходимое для записи нового значения кода в регистр канала сравнения, ограничивает минимальную длительность формируемого временного интервала.Модули усовершенствованного таймера используются в составе МК в различных модификациях. При этом число каналов входного захвата и выходного сравнения в модуле может быть различным. Так, в МК семейства HC05 фирмы Motorola типовыми решениями являются модули 1IC+1OC или 2IC+2OC, а модуль таймера в составе МК только один. В ряде модулей каналы могут быть произвольно настроены на функцию входного захвата или выходного сравнения посредством инициализации. Счетчик модуля усовершенствованного таймера может не иметь функции программного останова. В этом случае состояние счетчика нельзя синхронизировать с каким-либо моментом работы МК, и такой счетчик характеризуется как свободно считающий (free counter).Аппаратные средства усовершенствованного таймера позволяют решить многие задачи управления в реальном времени. Однако по мере роста сложности алгоритмов управления отчетливо проявляются ограничения модулей усовершенствованного таймера, а именно:
недостаточное число каналов захвата и сравнения, принадлежащих одному счетчику временной базы. Это не позволяет сформировать синхронизированные между собой многоканальные импульсные последовательности;
однозначно определенная конфигурация канала (или захват или сравнение) часто не удовлетворяет потребностям решаемой задачи;
формирование сигналов по методу широтно-импульсной модуляции (ШИМ) требует программной поддержки, что снижает максимально достижимую частоту выходного сигнала.
Поэтому следующим этапом развития модулей подсистемы реального времени МК стали модули процессоров событий. Впервые модули процессоров событий были использованы компанией Intel в МК семейства 8xC51Fx. Этот модуль получил название программируемого счетного массива (Programmable Counter Array — PCA).РСА обеспечивает более широкие возможности работы в реальном масштабе времени и в меньшей степени расходует ресурсы центрального процессора, чем стандартный и усовершенствованный таймеры/счетчики. К преимуществам РСА также можно отнести более простое программирование и более высокую точность. К примеру, РСА может обеспечить лучшее временное разрешение, чем таймеры 0, 1 и 2 МК семейства MCS-51, так как счетчик РСА способен работать с тактовой частотой, втрое большей, чем у этих таймеров. РСА также может решать многие задачи, выполнение которых с использованием таймеров требует дополнительных аппаратных затрат (например, определение фазового сдвига между импульсами или генерация ШИМ-сигнала). РСА состоит из 16-битного таймера-счетчика и пяти 16-битных модулей сравнения-защелки, как показано.Таймер-счетчик РСА используется в качестве базового таймера для функционирования всех пяти модулей сравнения-защелки. Вход таймера-счетчика РСА может быть запрограммирован на счет сигналов от следующих источников:
выход делителя на 12 тактового генератора МК;
выход делителя на 4 тактового генератора МК;
сигнал переполнения таймера 0;
внешний входной сигнал на выводе ЕСI (P1.2).
Любой из модулей сравнения-защелки может быть запрограммирован для работы в следующих режимах:
защелкивания по фронту и/или спаду импульса на входе CEXi;
программируемого таймера;
высокоскоростного выхода;
широтно-импульсного модулятора.
Модуль 4 может быть также запрограммирован как сторожевой таймер (Watchdog Timer – WDT).Режим защелкивания по импульсу на входе МК эквивалентен режиму входного захвата (IC ) усовершенствованного таймера. Режимы программируемого таймера и высокоскоростного выхода близки по своим функциональным возможностям к режиму выходного сравнения (OC).В режиме ШИМ на соответствующем выводе МК формируется последовательность импульсов с периодом, равным периоду базового таймера/счетчика PCA. Значение 8-разрядного кода, записанное в младший байт регистра-защелки соответствующего модуля задает скважность формируемого сигнала. При изменении кода от 0 до 255 скважность меняется от 100 % до 0,4 %. Режим ШИМ очень прост с точки зрения программного обслуживания. Если изменения скважности не предполагается, то достаточно один раз занести соответствующий код в регистр данных модуля, проинициализировать режим ШИМ, и импульсная последовательность будет воспроизводиться с заданными параметрами без вмешательства программы. Назначение и особенности работы сторожевого таймера будут рассмотрены далее отдельно. При работе модуля сравнения-защелки в режиме защелки, программируемого таймера или высокоскоростного выхода модуль может сформировать сигнал прерывания. Сигналы от всех пяти модулей сравнения-защелки и сигнал переполнения таймера РСА разделяют один вектор прерывания. Иными словами, если прерывания разрешены, то и сигнал переполнения таймера PCA и сигнал от любого из модулей вызывают одну и ту же подпрограмму прерываний, которая должна сама идентифицировать источник, вызвавший ее. Для работы с внешними устройствами таймер-счетчик РСА и модули сравнения-защелки используют выводы P1 порта МК. Если какой-либо вывод   порта не используется при работе РСА, или РСА не задействован, порт может применяться стандартным образом. Реализованный в 8xC51FX PCA оказался настолько удачным, что архитектура данных МК стала промышленным стандартом де-факто, а сам PCA многократно воспроизводился в различных модификациях микроконтроллеров разных фирм. Тенденция развития подсистемы реального времени современных МК находит свое отражение в увеличении числа каналов процессоров событий и расширении их функциональных возможностей.
ВВОД/ ВЫВОД ИНФОРМАЦИИ В ПОСЛЕДОВАТЕЛЬНЫХ КОДАХ: ПРОБЛЕМЫ, ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММИРУЕМЫХ АППАРАТНЫХ СРЕДСТВ, НАДЕЖНОСТЬ И ДОЛГОВЕЧНОСТЬ.
Интерфейсы последовательных каналов ввода/вывода в микропроцессорных системах реализуются с использованием БИС 8251 (российский аналог – 580ВВ51). Микросхема представляет собой универсальный синхронно-асинхронный приемопередатчик последовательной связи, выполняющий функции приема и преобразования параллельных форматов слов в последовательные для их передачи по каналам связи и последовательных форматов, принимаемых из каналов связи в параллельный формат для ввода в процессор. Микросхема может быть запрограммирована для работы в пяти режимах: асинхронная передача, асинхронный прием, синхронная передача, синхронный прием с внутренней синхронизацией, синхронный прием с внешней синхронизацией.
Последовательная передача данных может быть в асинхронном или синхронном режимах. При асинхронной передаче каждому передаваемому коду символа предшествует старт-бит, сигнализирующий приемнику о начале очередной посылки. Далее следуют биты данных (5 – 8) и возможно бит паритете – P (бит контроля четности).
Завершает посылку один или два стоповых бита, гарантирующих выдержку между соседними посылками. Старт-бит (всегда лог.0) обеспечивает простой механизм синхронизации приемника фронтом сигнала старт-бита. Внутренний генератор синхронизации приемника использует счетчик-делитель опорной частоты, обнуляемый в момент приема начала старт-бита. Этот счетчик формирует строб импульсы, по которым приемник фиксирует последующие принимаемые биты в середине их временных интервалов. Генераторы синхронизации передатчика и приемника, естественно, настраиваются на равные частоты. Чем выше частота передачи, тем больше влияние искажения фронтов на фазу принимаемого сигнала и тем больше погрешность привязки стробов к середине битового интервала.

Синхронный режим предполагает постоянную активность канала передачи данных. Посылка начинается с передачи кода синхросимвола (одного или двух). Далее коды символов передаются плотным потоком. Если у передатчика нет данных для передачи, то он заполняет паузу непрерывной посылкой кодов синхросимволов. В синхронном режиме необходима внешняя синхронизация приемника и передатчика, либо использование само-синхронизирующего кодирования, при котором на приемной стороне из принятого сигнала формируются импульсы синхронизации.
В качестве связных адаптеров применяются специальные микросхемы, например 8251А, 8250, 16450, 16550А (Intel). В качестве примера рассмотрим микросхему программируемого связного адаптера КР580ВВ51А, являющуюся аналогом микросхем 8251А.

Приложенные файлы

  • docx 800654
    Размер файла: 1 MB Загрузок: 0

Добавить комментарий