- •Раздел 1. Микропроцессорные системы управления.
- •Раздел 2. Микроконтроллерные системы управления.
- •Раздел 3. Вопросы эксплуатации микропроцессорных устройств.
- •1. Микропроцессорные системы управления
- •1.1. Принципы построения и основы работы
- •Вопросы и задания
- •1.2. Элементная база мпсу
- •Вопросы и задания
- •1.3. Оперативные запоминающие устройства.
- •Вопросы и задания
- •1.4. Постоянные запоминающие устройства.
- •Вопросы и задания
- •1.5. Архитектура микропроцессора типа кр580вм80
- •Вопросы и задания
- •1.6. Типы машинных циклов и слово состояния
- •Вопросы и задания
- •1.7. Командные циклы чтения/записи
- •Вопросы и задания
- •1.8. Командный цикл подтверждения прерывания.
- •1.9. Принципиальные электрические схемы
- •Вопросы и задания
- •1.10. Интерфейс мпсу с изолированной системой шин
- •Вопросы и задания
- •1.11. Интерфейс мпсу с общей системой шин
- •1.12. Организация обслуживания запросов прерывания
- •Вопросы и задания
- •1.13. Программируемый контроллер
- •Вопросы и задания
- •1.14. Программируемый контроллер прерываний
- •Вопросы и задания
- •1.15. Программируемый интервальный таймер
- •Вопросы и задания
- •1.16. Мпсу с вводом-выводом аналоговой информации
- •Вопросы и задания
- •1.17. Выходные каскады мпсу
- •Вопросы и задания
- •2. Микроконтроллерные системы управления
- •2.1. Архитектура микроконтроллера к1816ве51
- •Вопросы и задания
- •2.2. Принципиальная электрическая схема порта
- •2.3. Схемы подключения внешней памяти к мк51
- •Вопросы и задания
- •2.4. Интерфейс мк51 с большим числом
- •Вопросы и задания
- •2.5. Таймер/счетчики мк51.
- •Вопросы и задания
- •2.6. Система прерываний мк51. Использование прерываний в программах
- •Вопросы и задания
- •2.7. Основы организации
- •Допустимые различия скорости приемо-передачи
- •2.8. Организация мультиконтроллерных систем
- •Программы инициализации станции и абонентов
- •Программы станции и абонента в сеансе "станция→абонент"
- •2.9. Микроконтроллерная система управления
- •3. Вопросы эксплуатации микропроцессорных устройств
- •3.1. Отладка аппаратных средств мпсу
- •Вопросы и задания
- •3.2. Отладка программного обеспечения мпсу
- •Вопросы и задания
- •3.3. Методы обеспечения помехоустойчивости мпсу
- •Вопросы и задания
- •1. Группа команд пересылок
- •2. Группа команд инкремента-декремента
- •3. Группа арифметических команд
- •4. Группа логических команд
- •5. Группа команд сдвига
- •6. Группа команд передачи управления
- •7. Группа команд работы со стеком
- •8. Группа команд ввода-вывода и управления микропроцессором
- •1. Группа команд пересылок
- •2. Группа команд арифметических операций
- •3. Группа команд логических операций
- •4. Группа команд операций с битами
- •5. Группа команд передачи управления
- •Дворак Николай Маркович микропроцессорные устройства
- •В высших учебных заведениях 3-4 уровней
- •98309, Г. Керчь, ул. Орджоникидзе, 82
- •98309, Г. Керчь, ул. Орджоникидзе, 82
Вопросы и задания
1. Обоснуйте целесообразность применения в МПСУ микросхемы ППИ.
2. Поясните функциональную схему ППИ.
3. Для чего служат управляющие слова режима и порта С?
4. Основываясь на схеме, определите адресные пространства микросхем памяти (ПЗУ и ОЗУ) и ППИ.
5. Основываясь на схеме, определите адреса ВУ ввода (кнопок) и вывода (контактора), виды команд работы с ВУ.
6. Составьте программу настройки ППИ на заданный вариант ввода-вывода.
7. Составьте команды установки и сброса заданного бита порта С.
8. Поясните исполнение на сигнальном уровне команд программы управления контактором.
1.14. Программируемый контроллер прерываний
Программируемый контроллер прерываний (ПКП) типа КР580ВН59 широко применяется в МПСУ и служит для обработки до 8 запросов прерывания в соответствии с назначенными им приоритетами. Схемой ПКП предусмотрена возможность объединения до 9 ПКП в один блок прерываний МПСУ, который обрабатывает до 64 запросов прерывания.
1.14.1. Функциональная схема ПКП. Настройка режимов работы
Функциональная схема ПКП типа КР580ВН59 приведена на рис.1.47.
Программирование контроллера заключается в определении режима (дисциплины) обработки сигналов запросов прерывания IR0…IR7. Из множества возможных режимов [1,3,7,8,9,10,19] рассмотрим только два, которые чаще всего используются в МПСУ:
1). Режим фиксированных приоритетов. Высший приоритет назначается запросу IR0, низший - IR7. У промежуточных запросов IR1…IR6 приоритет снижается при движении от запроса IR0 к запросу IR7. В этом режиме ПКП сам вызывает подпрограмму обслуживания прерывания. Приоритеты запросам назначаются с той целью, чтобы поступивший запрос высшего приоритета был бы выполнен раньше за счет приостановки обслуживания запроса низшего приоритета.
2 ). Режим опроса, при котором ПКП воспринимает сигналы IR0…IR7 запросов прерывания, выделяет из них запрос с высшим приоритетом, но не вызывает сам подпрограмму обслуживания прерывания. МП должен периодически обращаться к ПКП с целью выяснения того, поступили ли запросы прерывания.
Ядро ПКП составляют три регистра:
IRR – регистр запросов прерываний, который детектирует фронт сигналов IR0…IR7 (переход из 0 в 1), устанавливает в 1 соответствующий внутренний триггер при готовности МП к обслуживанию запроса прерывания и сбрасывает триггер в 0 с момента начала обслуживания МП запроса прерывания.
ISR – регистр обслуживания. В этом регистре хранится информация о тех запросах, которые были приняты МП к обслуживанию, причем состояние обслуживания может быть любым: обслуживание прервано, запрос обслуживается и обслуживание завершено.
IMR – регистр масок прерываний, в котором отмечены запросы, допущенные и запрещенные к обслуживанию.
Реакция ПКП и МП на поступивший запрос сводится к следующему:
1). По фронту сигнала IRN (N=0…7) регистр IRR формирует сигнал постоянного уровня 1, причем, если до ответа МП сигналом (см. п.4) сигнал IRN сбросится в 0, то это будет равносильно отсутствию запроса.
2). В работу вступает шифратор приоритетов PR. На вновь поступивший сигнал запроса шифратор выполняет анализ содержимого регистров IRR, ISR и IMR. Если в регистре масок прерываний IMR поступивший запрос отмечен как запрещенный к обслуживанию или в регистре обслуживания ISR уже отмечены как обслуживаемые запросы равного или высшего приоритетов, то поступивший запрос получает отказ. В противном случае шифратор приоритетов PR через блок управления посылает в МП сигнал INT=1 запроса прерывания.
3). МП, если прерывания не запрещены, переходит к выполнению командного цикла "Подтверждение прерывания". В цикле М1 формируется импульс "Обслуживание прерывания" (рис.1.26). Напомним, что с момента выполнения командного цикла "Подтверждение прерывания" МП отключается от входа INT, о чем сообщает сигналом INTE=0. Сигнал INTE можно также сбросить в 0, выполнив команду DI – "Запрет прерываний". Для того, чтобы МП реагировал на сигнал, поступающий на вход INT, ранее должна быть выполнена команда ЕI - "Разрешение прерываний".
4). По 1-му импульсу , принятому ПКП, им выставляется на ШД код CD команды CALL и одновременно в регистре IRR запросов прерываний фиксируется (защелкивается в триггере) уровнем 1 поступивший запрос прерывания. Теперь сброс в 0 сигнала IRN не остановит процесс запуска подпрограммы обслуживания прерывания.
5). МП, приняв код CD, продолжает выполнение командного цикла "Подтверждение прерывания", но диаграммы сигналов будут несколько отличаться от тех, которые приведены на рис.1.26. В циклах М2 и М3 микропроцессор посылает каждый раз импульсы и считывает информацию из ПКП.
6). По 2-му импульсу ПКП выставляет на ШД младший байт стартового адреса подпрограммы обработки прерывания, а по 3-му импульсу - старший байт стартового адреса. Таким образом, в счетчик команд МП будет загружен полный стартовый адрес подпрограммы обработки прерывания. Этот адрес может быть любым из области адресов ПЗУ. Такой свободный выбор стартовых адресов блока подпрограмм обработки прерывания предпочтительнее фиксированного их расположения, что характерно при применении команды RST (рис.1.36), для которой стартовые адреса располагаются только в начале области адресов ПЗУ.
7). МП выполняет циклы М4 и М5, сохраняя адрес отложенной команды в стеке.
8). ПКП после передачи старшего байта стартового адреса:
- сбрасывает сигнал INT в ноль;
- сбрасывает в регистре IRR запросов прерываний в ноль триггер-защелку последнего запроса прерывания;
- устанавливает в регистре обслуживания ISR в 1 триггер-защелку последнего принятого к обслуживанию запроса прерывания, который является запросом со старшим приоритетом из всех зафиксированных в регистре ISR.
На этом МП приступает к обслуживанию запроса прерывания. Связь ПКП с МП теряется до поступления нового запроса IRN. ПКП не может самостоятельно определить то, в каком состоянии находится процесс обслуживания допущенных запросов прерывания. МП, завершив выполнение подпрограммы обслуживания прерывания, должен изменить содержимое триггера ISR ПКП с тем, чтобы ПКП продолжил прием новых и повторных запросов прерываний.
Работа ПКП настраивается путем записи в него управляющих слов инициализации (УСИ) и управляющих слов операций (УСО). Программная модель ПКП, согласно рис.1.47 представляет собой набор, состоящий из регистров IRR, ISR, IMR, регистра инициализации и др., (последние из соображений простоты рисунка на нем не показаны).
Для настройки на режим фиксированных приоритетов нужно до разрешения командой EI прерываний произвести инициализацию ПКП с помощью двух управляющих слов – УСИ1 и УСИ2 (рис.1.48).
Признаками УСИ1 являются значения бита адреса А0=0 и группы бит данных – D4D3D0=100.
Признаками УСИ2 являются бит адреса А0=1 и запись УСИ2 при следующем обращении к ПКП после записи в него УСИ1.
УСИ1 содержит информацию о структуре блока прерываний МПСУ и о младшем байте стартового адреса подпрограммы обслуживания прерывания.
При D1=1 блок прерываний МПСУ состоит только из одного ПКП и обслуживает до 8 запросов прерываний. В этом случае нужно на вход ПКП подать 1, а выводы каскадирования CAS0, CAS1 и CAS2 не использовать.
При D1=0 блок прерываний МПСУ может содержать от 2 до 9 ПКП и обслужить до 64 запросов прерывания, причем один из них является ведущим, а остальные – ведомыми. ПКП объединяются в блок линиями каскадирования, на ведущий подается , а на ведомые - [1,3,7,8,9,10,19].
Бит D2 УСИ1 определяет структуру и содержание младшего байта стартового адреса подпрограммы обслуживания прерывания. Формат младшего байта при D2=1 и D2=0 приведен, соответственно, на рис.1.49а и рис.1.49б.
УСИ2 содержит старший байт стартового адреса подпрограммы обслуживания прерывания.
После ввода УСИ1 и следом за ним – УСИ2 устанавливается режим фиксированных приоритетов, а в регистры IRR, ISR и IMR записываются нули.
Рассмотрим пример инициализации ПКП в составе схемы, приведенной на рис.1.48, с назначением стартового адреса 0780Н подпрограммы обслуживания прерывания запроса IR0 и стартовыми адресами следующих запросов, отстоящими друг от друга с шагом 8 байт. Программа инициализации приведена на рис.1.50.
Мнемокод |
Комментарии |
MVI A, 92 |
Загрузка в аккумулятор А кода 92Н=1001.0010В, в котором: D7D6=10 (два старших разряда А7А6 младшего байта адреса), D5=0 или 1 (бит не используется, и его значение может быть любым), D4D3D0=100 (признак УСИ1), D2=0 (шаг адресов 8 байт), D1=1 (один ПКП) |
Рис.1.50. Программа инициализации ПКП
OUT ВЕ |
Вывод УСИ1 в ПКП с адресом ВЕH= 1011.1110B, в котором А6=0 (выбор ИМС ПКП), А0=0 – признак УСИ1 |
MVI A, 07 |
Загрузка в аккумулятор А кода 07Н=0000.0111В – старшего байта адреса |
OUT ВF |
Вывод УСИ2 в ПКП с адресом ВFH= 1011.1111B, в котором А6=0 (выбор ИМС ПКП), А0=1 – признак УСИ2 |
Рис.1.50. Продолжение |
В соответствии с проведенной инициализацией стартовые адреса для всех возможных запросов IR0…IR7 будут следующими (затемненными отмечены биты адреса, формируемые по данным регистра ISR):
-
- для IR0:
0
0
0
0.
0
1
1
1.
1
0
0
0.
0
0
0
0
B
=
0780H
- для IR1:
0
0
0
0.
0
1
1
1.
1
0
0
0.
1
0
0
0
B
=
0788H
- для IR2:
0
0
0
0.
0
1
1
1.
1
0
0
1.
0
0
0
0
B
=
0790H
:
- для IR7:
0
0
0
0.
0
1
1
1.
1
0
1
1.
1
0
0
0
B
=
07B8H
МП, завершив подпрограмму обслуживания прерывания, должен сообщить об этом ПКП с тем, чтобы удалить из регистра ISR информацию об обслуженном запросе прерывания. После этого ПКП может в дальнейшем посылать в МП сигнал запроса прерывания INT=1 для вновь поступающих запросов IRN того же или низших приоритетов. Для такой цели используется либо команда СКПА – слова конца прерывания адресуемого (рис.1.48), либо команда СКП – слова конца прерывания без указания адреса, имеющая код 20Н. Признаками СКПА и СКП являются А0=0 и D4D3=00. В команде СКПА битами D2D1D0 задается двоичный код номера обслуженного запроса прерывания, информацию о котором нужно удалить из регистра ISR. Блок команды завершения подпрограммы обслуживания прерывания по запросу IR5 приведен на рис.1.51.
Мнемокод |
Комментарии |
MVI A, 65 |
Загрузка в аккумулятор А кода СКПА 65Н=0110.0101В, в котором: D2D1D0=101 – код числа 5 |
OUT ВЕ |
Вывод СКПА в ПКП с адресом ВЕH= 1011.1110B, в котором А6=0 (выбор ИМС ПКП), А0=0 – признак СКПА |
EI |
Разрешение прерываний. Прерывания разрешаются не сразу после выполнения этой команды, а только после выполнения одной команды - в данном случае – команды RET |
RET |
Возврат из подпрограммы обслуживания прерывания на адрес отложенной в стеке команды |
Рис.1.51. Завершение подпрограммы обслуживания прерывания |
Команду СКП можно использовать только в режиме работы ПКП с фиксированными приоритетами. Из регистра ISR будет удалена информация о последнем обслуженном запросе прерывания. При использовании СКП в программе нужно произвести замену команды MVI A, 65 на команду MVI A, 20.
С помощью управляющего слова маскирования (рис.1.52) в любой момент времени после завершения инициализации можно программно установить и сбросить отдельные биты регистра масок прерываний IMR. При включении питания или сбросе во все биты Mi регистра IMR записываются нули.
Мнемокод |
Комментарии |
Маскирование запросов прерывания, поступающих на входы IR1 и IR3 |
|
MVI A, 0А |
Загрузка в аккумулятор А кода 0АН=0000.1010 УСМ, в котором равны 1 биты D1 и D3 маскирования запросов IR1 и IR3 |
OUT BF |
Вывод управляющего слова маскирования в ПКП с адресом ВFH= 1011.1111, в котором А6=0 (выбор ИМС ПКП), А0=1 (признак УСМ) |
Снятие маски со всех запросов прерывания |
|
MVI A, 00 |
Загрузка в аккумулятор А кода 00H=0000.0000 управляющего слова снятия маски со всех запросов прерывания |
OUT BF |
Вывод управляющего слова маскирования в ПКП с адресом ВF |
Рис.1.52. Формат управляющего слова и программа маскирования |
Режим опроса ПКП настраивается программой, приведенной на рис.1.53.
Мнемокод |
Комментарии |
MVI A, 0С |
Загрузка в аккумулятор А кода 0С управляющего слова режима опроса ПКП |
OUT ВЕ |
Вывод содержимого аккумулятора А в ПКП с адресом ВЕH |
Рис.1.53. Настройка режима опроса |
После этой настройки ПКП из принятых сигналов запросов прерывания IR0…IR7 будет только формировать двоичный код запроса с высшим приоритетом и хранить его в слове состояния ПКП (рис.1.54).
-
I
x
x
x
x
IRR2
IRR1
IRR0
I=0/1 – нет запроса/есть запрос
Не используются
Код запроса высшего приоритета
Рис.1.54. Формат слова состояния ПКП
Программа чтения слова состояния приведена на рис.1.55.
Мнемокод |
Комментарии |
MVI A, 0С |
Загрузка в аккумулятор А кода 0С управляющего слова режима опроса ПКП |
OUT ВЕ |
Вывод управляющего слова состояния в ПКП с адресом ВЕH. Этим выводом МП сообщает ПКП, что следующей командой будет чтение слова состояния |
IN BE |
Чтение слова состояния (пересылка содержимого в аккумулятор МП) |
Рис.1.55. Чтение слова состояния ПКП |
1.14.2. МПСУ с программируемым контроллером прерываний
Принципиальная схема МПСУ приведена на рис.1.48. Производится включение и выключение контактора К с помощью кнопок П - "Пуск" и С – "Стоп", а также введена кнопка А аварийного отключения не только контактора К, но и всех объектов автоматизации. Последнее выполняется с помощью реле аварийного РА, которое своими контактами воздействует на цепи отключения всех объектов. Кнопки С и А заведены на ПКП на входы, соответственно, IR5 и IR3. Кнопка А имеет приоритет выше, чем у кнопки С. При одновременном нажатии кнопок А и С в первую очередь будет выполнена подпрограмма обслуживания кнопки А.
В схеме применена линейная адресация ИМС памяти и ИМС внешних устройств – ППИ и ПКП. Адреса ППИ (выбор ППИ битом А5): РА – DСН, РВ – DDН, PC – DEН, РУС - DFН. Адреса ПКП (выбор ПКП битом А6): УСИ1 и СКП - BEН, УСИ2 - BFН.
Программа управления контактором К и аварийного отключения приведена на рис.1.56.
Адрес |
Код команды |
Метка |
Мнемокод |
Комментарии |
|||
0000 |
3E |
90 |
|
|
Иниц. ППИ |
MVI A, 90 |
Инициализация ППИ: - порт РА на ввод; - порты В и С на вывод |
0002 |
D3 |
DF |
|
|
|
OUT DF |
|
0004 |
31 |
FF |
0F |
|
Стек |
LXI SP, 0FFF |
Загрузка вершины стека |
0007 |
3E |
92 |
|
|
Иниц. ПКП |
MVI A, 92 |
Инициализация ПКП (см. рис.1.50) |
0009 |
D3 |
BE |
|
|
|
OUT BE |
|
000B |
3E |
07 |
|
|
|
MVI A, 07 |
|
000D |
D3 |
BF |
|
|
|
OUT BF |
|
000F |
FB |
|
|
|
|
EI |
Разрешение прерываний |
Начало блока основных программ пользователя |
|||||||
: |
|
|
|
|
: |
: |
: |
|
|
|
|
|
Нач. К |
IN DC |
Чтение порта РА |
|
|
|
|
|
|
ANI 10 |
Выделение бита состояния кнопки П |
|
|
|
|
|
|
JNZ Кон. К |
Контактор К не включать, если П=1 |
|
|
|
|
|
|
MVI A, 09 |
Включить контактор К, используя УС порта С (см. рис.1.41) |
|
|
|
|
|
|
OUT DF |
|
|
|
|
|
|
Кон. К |
|
|
: |
|
|
|
|
: |
: |
: |
Конец блока основных программ пользователя |
|||||||
0798 |
F5 |
|
|
|
П/п IR3 |
PUSH PSW |
Сохранить в стеке PSW (см. рис.1.15) |
0799 |
3E |
01 |
|
|
|
MVI A, 01 |
Выключить контактор К, включить аварийное реле РА |
079B |
D3 |
DE |
|
|
|
OUT DE |
|
079D |
3E |
20 |
|
|
|
MVI A, 20 |
Вывод в ПКП слова конца прерывания (см. рис.1.51) |
079F |
D3 |
BE |
|
|
|
OUT BE |
|
07A1 |
F1 |
|
|
|
|
POP PSW |
Извлечь из стека PSW |
07A2 |
FB |
|
|
|
|
EI |
Разрешить прерывания |
07A3 |
C9 |
|
|
|
|
RET |
Выйти из подпрограммы |
Рис.1.56. Программа управления контактором с использованием ПКП
Адрес |
Код команды |
Метка |
Мнемокод |
Комментарии |
|||
07A4 |
00 |
… |
00 |
|
|
NOP |
4 холостых операции |
07А8 |
FB |
|
|
|
П/п IR5 |
EI |
Разрешить прерывания* |
07A9 |
F5 |
|
|
|
|
PUSH PSW |
Сохранить в стеке PSW (см. рис.1.15) |
07AA |
3E |
08 |
|
|
|
MVI A, 08 |
Выключить контактор К, используя УС порта С |
07AC |
D3 |
DF |
|
|
|
OUT DF |
|
07AE |
3E |
20 |
|
|
|
MVI A, 20 |
Вывод в ПКП слова конца прерывания (см. рис.1.51) |
07B0 |
D3 |
BE |
|
|
|
OUT BE |
|
07B2 |
F1 |
|
|
|
|
POP PSW |
Извлечь из стека PSW |
07B3 |
C9 |
|
|
|
|
RET |
Выйти из подпрограммы |
Рис.1.56. Продолжение |
* В подпрограмме П/п IR5 обслуживания запроса прерывания IR5 сразу разрешаются прерывания на тот случай, когда может поступить запрос от IR3 более высокого приоритета и он должен прервать подпрограмму П/п IR5.