Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПособиеМПЭВС_ч2

.pdf
Скачиваний:
26
Добавлен:
11.05.2015
Размер:
2.62 Mб
Скачать

4.2 Последовательный программный обмен

111

3) типа сообщения по назначению:

а) командные (с возможными вариантами идентификации);

б) информационные (с возможными вариантами идентификации);

в) контрольные и осведомительные к передаваемому пакету.

С учётом этих атрибутов должен формироваться пакет посылок асинхронного или синхронного формата. Приём, передача пакетов посылок по последовательному каналу позволяет участникам передач и обмена данными вести обработку данных в соответствии с принятыми алгоритмами и программами для параллельных форматов. Перечисленные выше атрибуты в форматах сообщений представляются в явной форме или неявно, а нормы и правила приёма/передачи определяются, как

протоколы обмена информацией.

Последовательная одновременная (дуплексная) передача данных в два направления с асинхронным или синхронным форматом посылок реализована в микросхеме 580ВВ51А (аналог i8251А). В этой микросхеме встроены парные преобразователи Пф1, Пф2. Микросхеме соответствует состав функций универсального синхронно-асинхронного приёмопередатчика (наименование УСАПП) с настройкой режима обмена, формата посылок, скорости передачи, включения в формат бита паритета, стоповых битов. Предусмотрено управление и контроль процесса обмена. В современных МПК и однокристальных микроЭВМ применены аналогичные по составу микросхеме i8251А встроенные аппаратные ресурсы последовательной передачи данных в виде полной (USART) или упрощенной (например, без режима синхронной передачи Universal Asynchronous Receiver and Transmitter

(UART)) модификации модуля УСАПП. Сведения по адаптеру 580ВВ51А приведены в приложении Ж папки электронных материалов к пособию.

4.2.2 Интерфейсы ввода-вывода

Технология управления средствами взаимодействия объектов структуры ЭВС по параллельным и последовательным каналам передачи данных непрерывно совершенствуется вместе с совершенствованием самих технических средств. Распространённость обменных взаимодействий определила внимание разработчиков

ипользователей к типизации средств приёма и передачи информации, правил

исоглашений по их применению. Для обозначения совокупности показателей

исвойств, проявляющихся в процессах обмена информацией, распространено понятие «интерфейс».

Интерфейс как логическая структура характеризуется совокупностью правил, алгоритмов, соглашений по организации обмена данными между компонентами комплекса технических средств. Как физическая структура, интерфейс характеризуется, совокупностью физических, механических, функциональных характеристик средств подключения, поддерживающих взаимодействие. Как программная структура, интерфейс характеризуется языком описания объектов и процессов, сервисными услугами пользователей программной составляющей интерфейса. Стандартом ГОСТ 26.016–81 интерфейсы классифицированы:

по организационной архитектуре;

по функциональному назначению;

112Глава 4. Микроконтроллеры и микропроцессорные системы

по логической и функциональной организации;

по конструктивному исполнению.

По организационной архитектуре интерфейсы характеризуются:

топологией соединения (магистральная, радиальная, каскадная);

форматом доставки сообщений (параллельный, последовательный, комбинированный);

синхронизацией процессов (асинхронная, синхронная, изохронная);

совмещением направлений передачи (двухсторонний одновременный, двухсторонний поочерёдный, односторонний).

По функциональному назначению интерфейсы подразделяются:

на системные (машинные, ввода/вывода);

сосредоточенные магистральные многопроцессорных систем;

периферийного оборудования (общего и специального назначения);

сетей передачи данных;

программно-управляемых модульных комплексов и приборов, локальных сетей;

распределённых систем общего назначения.

По логической и функциональной организации интерфейсы делятся на группы информационных и управляющих, с выделением основных и дополнительных признаков по назначению в группах.

По конструктивному исполнению выделяются группы интерфейсов:

межблочные, взаимодействия автономных блоков устройств;

внутриблочные, взаимодействия модулей (субблоков, плат) блоков;

внутриплатные, взаимодействия модулей, микросхем (БИС, СБИС);

внутрикорпусные, взаимодействия компонентов внутри СБИС.

Вмежблочных соединениях применяются многожильные (плоские несимметричные и симметричные), коаксиальные, оптоволоконные кабели.

Внутриблочные соединения выполняются несимметричными и симметричными шлейфами и печатными проводниками. Внутриплатные соединения исполняются несимметричными и симметричными печатными проводниками плат. Аналогичную реализацию имеют соединения на кристаллах микросхем.

Интерфейсы системные и сосредоточенные магистральных МПС используют параллельный формат доставки сообщений в «ближней» зоне. Интерфейсы прочего функционального назначения предусматривают последовательную и смешанную форму доставки сообщений.

Увеличение степени интеграции электронных устройств повысило роль задач информационной связи внутриблочных, внутриплатных и внутрикорпусных модулей и компонентов (микросхем). Для этих конструктивных исполнений предложено подмножество логических структур последовательных интерфейсов, среди которых выделяются интерфейсы SPI, I2C со специализированной линией синхронизации приема-передачи данных.

4.2 Последовательный программный обмен

113

4.2.3 Последовательный интерфейс SPI

Для последовательной связи в блочных структурах с относительно небольшим взаимным удалением (в зависимости от длительности битового интервала конструкции линий от долей до десятков метров) используется синхронный интерфейс SPI (Serial Peripherical Interface).

В основу интерфейса SPI положен разделённый на две половины шестнадцатиразрядный сдвиговый регистр. Одна половина регистра используется для сдвиговой передачи данных (побитное выталкивание), а другая половина используется для побитового накопления (приёма). Продвижение битов по регистру осуществляется под управлением общей для передающей и приёмной сторон последовательности сигналов синхронизации SCK.

Схема такой структуры приведена на рисунке 4.17.

Рис. 4.17 – Структурная схема интерфейса SPI

Комплекс, связанный через модули SPI, рассчитан на строгое разделение статуса модулей в акциях обмена данными. Один из участников обмена данными должен быть ведущим, а другой ведомым. Символы M, S, I, O на рисунке соответствуют ключевым словам Master, Slave, Input, Output. Последовательностью их перечисления в словах MISO, MOSI на схеме рисунка 4.17 обозначены направления передачи информации между регистрами сдвига SPI (например, MISO MasterInputSlaveOutput обозначает ввод ведущим и вывод подчинённым). Для слова один байт восемь импульсов синхронизирующей последовательности продвигают содержимое сдвигового регистра передающей стороны в регистр приёмника. Таким образом, по линиям MISO, MOSI происходит одновременная побитовая передача двух байт, т. е. выполняется двухсторонний (дуплексный) обмен данными.

Устройство управления модулем интерфейса после программно управляемой настройки обеспечивает контроль процесса продвижения данных по сдвиговому регистру, отмечая начало процесса с момента загрузки данных и сигнализируя завершение передачи байта.

Комплекс может содержать подмножество модулей SPI, но к одновременному обмену управляющими программами допускаются по два модуля. Один из модулей программно настраивается как ведущий (Master), а другой настраивается как

114

Глава 4. Микроконтроллеры и микропроцессорные системы

ведомый (Slave). Переключатели SA1, SA2 нужны для переключения генераторов, если их два на комплекс. При одном общем генераторе на соединённые устройства достаточно одного переключателя, но при значительном удалении приёмника от источника потребуется дополнительный провод в соединении объектов взаимодействия. Интерфейс связывает два активных объекта. Одновременно взаимодействуют один ведущий и один ведомый модули. Идентификация ведомого модуля в SPI предусматривается низким уровнем сигнала /SS (SlaveSelect), который выставляет ведущий модуль на специализированной для этого линии выбора. Состояние сигнала идентификации в одних технических решениях опрашивает ведомое устройство

инастраивается на соответствующую функцию либо ведомого приёмника, либо ведомого передатчика по соглашению. Ведущий модуль выполняет функцию передатчика при ведомом приёмнике и, наоборот, выполняет функцию приёмника при ведомом передатчике, полагая, что один из модулей SPI получает настройку передатчика Master. Его выход на линию SlaveSelect настраивается на вывод,

изагружается состояние /SS для идентификации Slave приёмника. После этого в сдвиговый регистр передатчика Master загружается байт данных к передаче. Разрешается выдача последовательности восьми импульсов SCK ведущей стороной. По завершению серии SCK на аппаратном уровне должен генерироваться запрос на прерывание процесса как признак выполнения передачи и, возможно, приёма байта данных. Если данные стороной Master ожидались по алгоритму взаимодействия, то они считываются и процесс может продолжаться далее. Для ведомого приёмника настройка должна соответствовать Slave приёму. Контроллер приёмника должен проверить низкий уровень /SS от передатчика Master, разрешить прерывание от сдвигового регистра. После завершения передачи данных установится запрос прерывания о готовности данных. По прерыванию данные снимаются с ведомого приёмника, после чего запрос прерывания аппаратно или программно сбрасывается

ипроцесс может быть повторен. Если алгоритм предусматривает перед приёмом загрузку данных Slave приёмника, то после определения состояния /SS в сдвиговый регистр приёмника может быть загружен байт к передаче. Могут генерироваться

идругие сценарии. Расширение состава участников обмена данными в этом виде интерфейса достигается применением такого количества линий идентификации, сколько Slave объектов предусматривается в составе комплекса. При этом каждый дополнительный модуль взаимодействия по линиям MISO, MOSI, SCK, /SS включается параллельно выделенному на рисунке 4.17 фрагменту, соответствующим соединением в точках 1, 2, 3, 4. При соединении учитывается статус линии /SS (для Slave — это входная линия, а для Master — выходная). Расширенная информация по интерфейсу SPI приведена в приложении И папки электронных материалов к пособию.

4.2.4 Последовательный интерфейс I2C

Для последовательной передачи данных интегральных микросхем микроконтроллеров, памяти с произвольным доступом, памяти с электрическим стиранием и записью информации, контроллеров матричных индикаторов, портов дистанционного ввода/вывода, преобразователей разного рода фирма PHILIPS предложила двухпроводную (не считая общего обратного провода) двунаправленную шину по-

4.2 Последовательный программный обмен

115

следовательной передачи данных, названную интерфейсом интегральных микросхем (Inter-Integrated Circuit I2C).

Структурная схема комплекса с модулями связи I2C приведена на рисунке 4.18. Физическая реализация шины содержит две магистральные сигнальные линии, одна из которых (SDA) предназначена для передачи данных, а вторая — однонаправленная (SCL) — для синхронизации передаваемых данных. Источником сигнала SCL синхронизации является ведущий модуль комплекса. Модули комплекса подключены к магистралям SDA, SCL по монтажному И с возможностью управления состоянием линий замыканием на общий провод (установка низкого уровня) или отключением от него (установка высокого уровня) ключами ведущего и выбранного модуля периферии. Каждому ведомому (Slave) модулю I2C присваивается адрес, разрядность которого составляет до 7 бит (см. рисунок 4.19). Адрес передается, как данные, ведущим (Master) устройством в семи старших битах первого байта. Младший бит байта определяет операцию R/W (R/W = 1 — чтение, R/W = 0 — запись) в обмене, выполняемую ведущим модулем.

Рис. 4.18 – Структурная схема комплекса с модулями связи I2C

Все устройства, не успевшие стать к моменту акции передачи ведущими, в этой акции становятся ведомыми. Ведомые, принимая слово адреса, проверяют его соответствие присвоенному им адресу и в девятом такте, подтверждают (или не подтверждают) приём. Форма подтверждения такова, что только при совпадении ведомый на линии SDA устанавливает низкий уровень с удержанием низкого уровня на линии SCL. Остальные переходят в отключённое состояние. Выбранный ведомый модуль после девятого такта выполняет заявленную ведущим модулем операцию обмена (либо выставляет данные при заявленном чтении, либо принимает данные при заявленной ведущим модулем записи).

Рис. 4.19 – Формат первого байта ведущего модуля

Спецификацией интерфейса предусмотрена после условия (START) передача по линии SDA пакета данных:

116Глава 4. Микроконтроллеры и микропроцессорные системы

1)семибитовый адрес ведомого устройства;

2)передача восьмым битом типа операции с ведомым модулем периферии (чтение или запись);

3)передача подтверждения к переданному байту адреса/ данных;

4)передача байта данных от ведущего к ведомому модулю или от ведомого к ведущему;

5)контроль бинарного подтверждения байта данных ведущим или контроль бинарного подтверждения байта данных ведомым.

Вариации сочетаний состояний сигналов на линиях SDA, SCL используются для формирования переходов процесса передачи данных:

пассивное состояние соединения (SDA = 1, SCL = 1);

начало передачи (START) условие (SCL = 1, SDA = 0);

окончание сеанса передачи (STOP) условие (SCL = 1, SDA = 1);

установка (смена) бита данных (SCL = 0, SDA = 0/1);

сопровождение (стробирование) бита данных (SDA = 0/1, SCL = 1);

удержание бита данных (SDA = 1/0, SCL = 0);

повтор позиций 4–6 семь раз для завершения передачи байта.

После передачи байта ведущий модуль освобождает линии, устанавливая (SDA = = 1, SCL = 1), а ведомый модуль после приёма байта должен выставить своим аппаратно-программным ресурсом состояния позиций 4–6 на линиях при SDA = 0, как подтверждение приёма, и состояние SDA = 1, как не подтверждение.

При завершении передачи повторяющимся условием START шина I2C не освобождается, так как это условие также является началом новой передачи.

Если ведомый приемник не подтверждает получение байта, ведущий передатчик должен прервать передачу, генерируя условие STOP для изменения сценария передачи.

Ведущий модуль в режиме приемника выдает подтверждение Ack низким уровнем в девятом такте для каждого принятого байта как признак готовности к продолжению приема. После приёма последнего байта массива в девятом такте ведомый модуль должен выставить SCL = 1 и после этого SDA = 1. Это сочетание ведущий, как приёмник, должен принять к сведению, как завершение сценария передачи массива. Количество байт передаваемых данных не ограничено. Идентификация ведущего модуля не регламентирована, и ведущим может быть любой из объектов, подключённых к магистралям I2C. За условием START должен следить контроллер, претендующий на статус ведущего. Расширенная информация по интерфейсу I2C приведена в приложении И папки электронных материалов к пособию. При изучении вопросов организации интерфейсов МПК и МПС рекомендуется ознакомиться с материалами [5].

4.3 Режимы микропроцессорных систем

117

4.3 Режимы микропроцессорных систем

4.3.1 Прерывания и прямой доступ к внешним ресурсам

В реализациях программного режима объекты контроля и управления играют пассивную роль, сигнализируя микропроцессорному устройству о своем состоянии и, возможно, о готовности к операциям ввода/вывода, а МПК их считывает и загружает данными. Как отмечалось ранее, недостатком программного режима обмена являются непроизводительные потери времени процессора и преодолевается этот недостаток в режимах аппаратных прерываний и прямого доступа. Опора на эти режимы в организации взаимодействия МПК с УСО позволяет делегировать часть функций периферийным средствам. Диалог с такими устройствами переходит из категории опрашиваемых или загружаемых в категорию условно равных участников процесса. Функционирование МПК при наличии запросов на прерывание становится зависимым от внешних запросов. Комплекс модулей МПК, объединённых не только средствами программного режима, но и средствами отработки внешних запросов, нужно определять, как микропроцессорную систему (МПС).

4.3.2 Прерывания. Состав и функции объектов МП систем

Архитектура средств МПК для взаимодействия с окружением по прерываниям достаточно многообразна, характеризуется рядом свойств и показателей, которые подлежат систематизации.

По критерию места источника аппаратных запросов прерывания относительно МП запросы подразделяются на внешние и внутренние. Внешние запросы передаются через выводы внешних подключений МП (или МПУ). Внутренние запросы «скрыты» внутри МП. Реакция на эти запросы является встроенным ресурсом МП и определяется его архитектурой и спецификацией.

По критерию управляемости со стороны процессора запросы подразделяются на маскируемые и немаскируемые. Если аппаратные запросы прерывания могут быть разрешены или запрещены программным управлением МПУ, то такие запросы определяются, как маскируемые. Немаскируемые запросы прерывания подлежат безусловному обслуживанию.

По критерию множественности входов, предусмотренных для ввода запросов прерывания, соответствующая архитектура средств прерывания МПУ может определяться как одноуровневая или многоуровневая. Система прерываний определяется как одноуровневая, когда для ввода запроса предусмотрен один вход процессора. Поэтому актуализируется проблема идентификации запроса и реализации его обслуживания при одновременном поступлении нескольких запросов. Одноуровневые архитектуры для этого преобразуются в многоуровневые применением внешнего расширителя входов запросов и идентификационных признаков.

Задачей аппаратных средств обработки прерывания в МПУ является приостановка выполнения одной программы (ее еще называют основной) и передача управления подпрограмме обработки прерывания.

В многоуровневых архитектурах передача управления предполагает установление статической или динамической очереди обслуживания запросов. Перечисленные критерии позволяют отнести систему прерывания МП 1821ВМ85 к пя-

118

Глава 4. Микроконтроллеры и микропроцессорные системы

тиуровневой по числу входов запросов. Четыре входа запросов (TRAP, RST5.5, RST6.5, RST7.5) связаны с внутренним ресурсом адресации подпрограмм обслуживания запросов, а вход INTR, с числом источников до восьми, для применения должен быть дооснащён внешним расширителем входов запросов и формирователем очереди с идентификационными признаками в форме команды рестарта RSTV (RST0–RST7).

Для быстрых устройств, работающих по прерываниям с множеством абонентов разного уровня быстродействия, применяются такие показатели качества, как

время реакции на прерывание, время обслуживания прерывания, эффективность прерывания, критическое время насыщения режима прерывания.

Под временем реакции понимается время от установки запроса на вход прерываемого МПУ до перехода его на программу обслуживания запроса. Это время

вхудшем случае складывается из времени исполнения самой длинной инструкции

вМПУ, приёма и идентификации запроса, времени сохранения адреса возврата, времени поиска, Первый интервал связан с завершением исполнения начатой инструкции МП, по завершению которой будет анализироваться источник запроса. Время поиска (полинга) может потребоваться в случае, если приём, идентификация, сохранение адреса возврата являются промежуточными в обнаружении и идентификации источника запроса.

Время обслуживания прерывания складывается из времени реакции на запрос и времени исполнения программы обслуживания до возврата.

Эффективность прерывания количественно характеризуется отношением времени обслуживания запроса к времени реакции на запрос. Критическое время насыщения режима прерывания характеризуется временем обслуживания прерывания запроса, приводящим к пропуску реакции на другие запросы.

Комплекс аппаратно-программных средств приёма и адресной обработки запросов образуют систему прерывания МПС.

Налаживание взаимодействия УСО внешнего окружения с МПУ предполагает согласованный учёт их внешних и внутренних свойств и параметров:

для устойчивого и бесконфликтного формирования запросов к МПК;

для бесконфликтного определения очерёдности запросов;

для определения адресов и параметров программ обслуживания. Спецификация отработки запросов определяется архитектурой МП.

4.3.3 Этапы и параметры процессов отработки прерываний

В качестве примера учёта специфики многообразия форм прерываний показательной является организация прерываний МП 1821ВМ85А с шинной организацией внешних подключений УСО и с ресурсами многоуровневой системы прерываний (см раздел 3 пособия и Приложение Г папки электронных материалов к пособию). На рисунке 4.20 приведен вариант подключения входов запросов прерывания с возможностью активизации запроса по входу RST6.5. Прерывание может быть вызвано импульсом положительной полярности амплитудой U1 длительностью не менее 23 тактов частоты FCLK (длительность наиболее продолжительной команды МП в сумме с длительностью одного машинного цикла «Выборка»). При разреше-

4.3 Режимы микропроцессорных систем

119

нии всех маскируемых запросов прерываний и снятой маске с запроса прерывания по входу RST6.5 МП 1821ВМ85А выполнит три машинных цикла прерывания. В первом машинном цикле будет принят код запросов прерываний с контактов МП, сопоставлен с разрешением общих прерываний и состоянием масок прерываний. Все запросы по результату анализа неактивны (установлен низкий уровень соединением входов с общим проводом), за исключением разрешённого запроса RST6.5. Активному запросу по выборке присваивается адрес 0034 h переключения на программу обработки запроса RST6.5, а маска запроса RST6.5 на аппаратном уровне устанавливается. Во втором и третьем машинных циклах текущее значение счётчика команд PC заносится в стек и обновляется адресом рестарта 0034h. Суммарное время реакции МПУ на запрос прерывания RST6.5 в худших условиях не превысит 23 + 6 = 29 тактов частоты FCLK . Векторная область, выделенная ресурсами МПУ под размещение программы обслуживания запроса RST6.5, составляет четыре байтовых ячейки. Ограниченность объёма векторной области требует переключения программы обслуживания в резервную область расширенного объёма. Для этого с адреса 0034h следует применить команду переключения на резервную область JMP xxxx. При этом время реакции на запрос прерывания дополнительно увеличится на 10 тактов команды JMP xxxx и составит 39 тактов.

4.3.4 Аппаратные средств расширения системы прерываний

В МПУ с многоуровневыми прерываниями аппаратные средства поддержки режима встроены в ядро МП. Если среди входов запросов некоторого уровня, как это предусмотрено в архитектуре МП1821ВМ85А, за одним входом запроса скрыто допустимое подмножество запросов, то требуется расширение внешнего аппаратного ресурса для расщепления подмножества на подуровни. На рисунке 4.20 под уровнем INTR скрыты, как минимум, восемь возможных запросов с выделенными векторными областями. Для формирования очереди на обслуживание и идентификации устройств, скрытых под общим входом запросов, необходимы дополнительные внешние аппаратные ресурсы. На рисунке 4.21 приведена структурная схема МПУ с внешним расширителем одноуровневого входа запросов прерывания. Адаптер запросов на рисунок 4.21 представляется узлом логического сложения сигналов запроса. По запросам RST0–RST7, объединённым на входе INTR, МПУ может отреагировать на появление активного запроса, если он разрешён и не блокирован более приоритетными запросами других уровней. При отсутствии разрешения или наличии блокировки с других уровней внешнему объекту следует удерживать сигнал запроса в активном состоянии до установки разрешения. При наличии разрешения сигналом /INTA активируется функционирование внешнего контроллера очереди и номера активного запроса (КОиНАЗ) спецификации RST0–RST7. Контроллер устанавливает очередь по одному из распространённых сценариев и выставляет на шину данных имя запроса для настройки МПУ на программу обслуживания этого запроса. Распространены два способа идентификации устройств, запросивших обслуживания:

представлением векторов прерывания на запрос;

опросом и анализом состояния запросов от устройств.

120

Глава 4. Микроконтроллеры и микропроцессорные системы

Рис. 4.20 – Модуль МПУ для прерывания по входу RST6.5

В системе прерываний с использованием векторов прерываний устройство, запросившее обслуживания, само идентифицирует себя с помощью кода (вектора) прерывания. Микропроцессорное устройство, получив вектор прерывания, восстанавливает адрес подпрограммы обработки прерывания и переключается на него. Каждому запрашивающему устройству в МПУ выделена соответствующая подпрограмма обработки прерывания.

Рис. 4.21 – Расширитель одноуровневого входа запросов

Различают векторные системы с интерфейсным и внеинтерфейсным вектором. В первом случае вектор прерывания формирует контроллер устройства, запросившего обслуживания, во втором — контроллер прерываний, общий для всех устройств, работающих в режиме прерываний.

В системе с интерфейсным вектором приём вектора осуществляется МПУ путём пространственной каскадной (дейзи) цепи, по который сигнал INTA (предоставление прерывания) подаётся в модуль контроллера устройства с наивысшим приоритетом. Если это устройство не требовало обслуживания, то его контроллер пропускает сигнал INTA на следующее устройство, иначе дальнейшее распространение сигнала прекращается и контроллер выдает вектор прерывания на информационную шину.