- •Раздел 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.10. Интерфейс мпсу с изолированной системой шин
Интерфейсом называется совокупность аппаратных и программных средств, позволяющих организовать обмен информацией между МП и внешними устройствами, в том числе и с ИМС памяти.
Между аппаратными и программными средствами МПСУ существует тесная взаимосвязь. Команды МП могут исполняться только в той аппаратной среде, которая поддерживает входящие и выходящие сигналы МПСУ по циклам и тактам в соответствии с диаграммами, приведенными на рис.1.20 и рис.1.26. Для этого аппаратная часть структурно должна выглядеть так, как приведено на тех же рисунках.
Классификация подключаемых к МП устройств на ИМС памяти и ВУ предопределяет не только различие схем подключения, но и использование различных команд информационного обмена между МП и устройствами. В соответствии с этим делением устройств, подключаемых к МПСУ, интерфейс строится с изолированной и общей системой шин для ИМС памяти и ВУ.
Характеристики МПСУ с изолированной системой шин:
- для работы с внешними устройствами используются команды OUT и IN - вывода и ввода информации;
- для работы с памятью используются все остальные команды МП;
- адресные пространства ИМС памяти и ВУ изолированы друг от друга, поэтому адреса ИМС памяти и ВУ могут даже совпадать.
Достоинства интерфейса с изолированной системой шин:
- простота принципиальной электрической схемы МПСУ, особенно в части дешифрации адресов, и во многих случаях вообще не нужны дешифраторы;
- адресное пространство используется на 100%.
Недостатки интерфейса с изолированной системой шин:
- для работы требуется максимальный набор управляющих сигналов: , , , и ;
- усложняется программа, в которой производятся логические и арифметические операции над данными, связанными с ВУ, так как используемые две команды для работы с ВУ выполняют лишь простой ввод и вывод информации;
- всего можно адресовать 256 устройств ввода и вывода, так как размер адреса ВУ составляет 8 бит (в командах OUT и IN операнд однобайтный).
Характеристики МПСУ с общей системой шин:
- для работы с ВУ используются все те же команды, которые применяются для работы с ИМС памяти;
- адресное пространство ВУ и памяти общее и поэтому адреса ВУ и ячеек памяти должны быть различными.
Достоинства интерфейса с общей системой шин:
- для работы требуется сокращенный набор управляющих сигналов: , и ;
- упрощается программа, в которой производятся логические и арифметические операции над данными, связанными с ВУ;
- можно адресовать 65536 устройств ввода и вывода, так как размер адреса ВУ составляет 16 бит.
Недостатки интерфейса с общей системой шин:
- усложняются дешифраторы адреса ВУ;
- большие потери адресного пространства, которые можно уменьшить, значительно усложнив дешифраторы адресов.
Принципиальная схема МПСУ с изолированной системой шин при обслуживании одного ВУ приведена на рис.1.29а. Внешними устройствами ввода являются кнопки П ("Пуск") и С ("Стоп") с регистром RG, внешним устройством вывода – катушка контактора К с D-триггером Т. Релейный вариант исполнения системы управления контактором приведен на рис.1.28.
На рис.1.29а прямое подключение контактора К к триггеру нужно считать условным. Схемы выходных каскадов, обеспечивающих усиление по мощности, рассмотрены на рис.1.68…1.70. Синхроимпульсом записи информации (бита данных) является сигнал , который поступает по проводу 29. Бит, предназначенный для записи в триггер, является битом D0 шины данных.
Сигналы, снимаемые с кнопок П и С, являются двухстабильными, что делает невозможным их прямое подключение к ШД. Они подключены к ШД МП через регистр RG, выход которого является трехстабильным. Запись в регистр RG сигналов состояния кнопок П и С происходит по сигналу SYNC, который поступает на вход STB регистра и который появляется в каждом машинном цикле выполняемой команды (рис.1.20 и рис.1.26). Чтение регистра RG осуществляется по сигналу , который поступает по проводу 28 на ножку .
Память содержит только одну ИМС ПЗУ. Вход этой ИМС заземлен, и ИМС получается выбранной постоянно. Такое решение оправдано тем, что выбор единственной ИМС памяти лишен смысла. Открывается ПЗУ для чтения сигналом , поступающему по проводу 26 на ножку .
В ПЗУ записана программа управления контактором К с помощью кнопок П и С. Алгоритм управления приведен на рис.1.29а, на нем даны все пояснения. Программа управления, составленная в соответствии с приведенным алгоритмом, приведена на рис.1.30 (все коды 16-ричные).
Адрес |
Код команды |
Метка |
Мнемокод |
Комментарии |
|||
0000 |
DB |
00 |
|
|
М1 |
IN 00 |
Чтение состояния кнопок П и С |
0002 |
E6 |
01 |
|
|
|
ANI 01 |
Выделить бит состояния кнопки С |
0004 |
C2 |
15 |
00 |
|
|
JNZ М4 |
Если С нажата, то К выключить |
0007 |
DB |
00 |
|
|
М2 |
IN 00 |
Чтение состояния кнопок П и С |
0009 |
E6 |
02 |
|
|
|
ANI 02 |
Выделить бит состояния кнопки П |
000B |
C2 |
00 |
00 |
|
|
JNZ М1 |
Если П нажата, то К включить |
000E |
3E |
01 |
|
|
М3 |
MVI A, 01 |
В аккумулятор код включения К |
0010 |
D3 |
00 |
|
|
|
OUT 00 |
Вывод бита D0=1 в D-триггер |
0012 |
C3 |
00 |
00 |
|
|
JMP М1 |
Возврат в начало программы |
0015 |
3E |
00 |
|
|
М4 |
MVI A, 00 |
В аккумулятор код выключения К |
0017 |
D3 |
00 |
|
|
|
OUT 00 |
Вывод бита D0=0 в D-триггер |
0019 |
C3 |
00 |
00 |
|
|
JMP М1 |
Возврат в начало программы |
Рис.1.30. Программа управления контактором |
Приведем расширенные комментарии, акцентируя внимание на состоянии элементов принципиальной схемы МПСУ и прохождении сигналов в ней.
Команда IN 00. Ввод байта из RG в аккумулятор А. К регистру RG подключены кнопки П и С.В команде IN указан произвольный номер 00 внешнего устройства ввода – регистра RG. Это оправдано тем, что ВУ ввода единственное и для его выбора достаточно сигнала , который появляется в процессе выполнения команды IN.
Команда ANI 01. Выполняется операция логического умножения аккумулятора, в котором содержится данные о состоянии кнопок П и С, и константы 01Н=0000.0001В. В результате умножения бит 0 аккумулятора остается таким же, каким он был при вводе из RG, а остальные биты аккумулятора подавятся – обратятся в 0. Эта операция называется маскированием байта умножением. Бит 0 аккумулятора отражает состояние кнопки С. Если кнопка С не нажата, то после маскирования в аккумуляторе окажется код 0000.0000В=00Н и установится значение Z=1 флага нуля , а при нажатой кнопке С – код 0000.0001В=01Н и установится значение Z=0 флага нуля.
Команда JNZ M4. Проверяется флаг Z нуля. Если Z=0 (кнопка С нажата и разомкнута), то переход на метку M4 программы. Иначе выполняется следующая записанная по программе команда.
Команда IN 00. Ввод байта из RG в аккумулятор А.
Команда ANI 02. Маскированием выделяется состояние бита 1 аккумулятора. Бит 1 отображает состояние кнопки П. Если кнопка П не нажата, то после маскирования в аккумуляторе окажется код 0000.0010В=02Н и установится значение Z=0 флага нуля , а при нажатой кнопке П – код 0000.0000В=00Н и установится значение Z=1 флага нуля.
Команда JNZ М1. Проверяется флаг Z нуля. Если Z=0 (кнопка П не нажата и не замкнута), то переход на начало программы – метку М1. Иначе выполняется следующая команда.
Команда MVI A, 01. Прямая загрузка в аккумулятор А константы 01Н=0000.0001В, в которой 0-й бит равен 1.
Команда OUT 00. Вывод содержимого аккумулятора в ВУ – D-триггер. На вход D триггера поступает сигнал нулевого бита байта данных с ШД, а на вход С триггера поступает единичный строб, полученный инверсией нулевого строба , поступившего с провода 29. Так как содержимое нулевого бита аккумулятора равно 1, то D-триггер установится в состояние 1 и контактор К включится.
Команда JMP М1. Безусловный переход на начало программы.
Команда MVI A, 00. Прямая загрузка в аккумулятор А константы 00Н= 0000.0000В, в которой 0-й бит равен 0.
Команда OUT 00. Вывод содержимого аккумулятора в ВУ – D-триггер. Так как содержимое нулевого бита аккумулятора равно 0, то D-триггер установится в состояние 0 и контактор К выключится.
Команда JMP М1. Безусловный переход на начало программы.
Коды приведенной программы должны быть перенесены в ПЗУ. Таблица прошивки ПЗУ приведена на рис.1.31.
Принципиальная схема МПСУ с изолированной системой шин при обслуживании нескольких ВУ приведена на рис.1.29б. Внешними устройствами ввода являются кнопки П ("Пуск") и С ("Стоп") с регистром RG, внешним устройством вывода – катушка контактора К с D-триггером Т (эти подключения такие же как и на рис.10.1а и, поэтому, не показаны).
-
Адрес
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0000
DB
00
E6
01
C2
15
00
DB
00
E6
02
C2
00
00
3E
01
0010
D3
00
C3
00
00
3E
00
D3
00
C3
00
00
Рис.1.31. Таблица прошивки ПЗУ
При обслуживании нескольких ВУ может потребоваться значительный объем памяти для размещения программ управления. Поэтому ИМС ПЗУ может быть несколько. На схеме показана только одна из ИМС блока ПЗУ, в котором размещена программа управления контактором К. Примем следующие условия работы:
1). До и после программы управления контактором К существуют программы управления другими ВУ.
2). Блок ПЗУ состоит из однотипных ИМС с объемом памяти каждой 211=2048 ячеек или 2Кбайт.
3). Стартовый адрес программы управления контактором равен 2036Н.
4). ВУ ввода и вывода имеют одинаковый адрес – 47Н.
При наличии множества корпусов ИМС памяти и нескольких ВУ требуются дешифраторы, с помощью которых будет производиться выбор корпуса ИМС памяти и ВУ.
Для дешифрации адреса 47Н=0100.0111В внешних устройств применены 4 инвертора и 1 логический элемент 8И-НЕ. По схеме дешифратора проверяется, что при коде 0100.0111В на выходе элемента 8И-НЕ установится сигнал 0.
Для дешифрации адреса 2036Н=0010.0000.0011.0110В определим порядковый номер ИМС, в которой записана программа управления контактором К, в блоке памяти из однотипных ИМС. Так как емкость одной ИМС типа КР573РФ2 составляет 204810 байт (индекс 10 указывает на десятичную запись числа), то порядковый номер ИМС, в которой используется ячейка с адресом 2036Н=826410, равен: 8264/2048=4,035=4 (округление результата). Для дешифрации ИМС блока ПЗУ используем биты А13, А12 и А11 адреса, выставляемого на ША, так как биты А10…А0 адреса заводятся напрямую на адресный порт ИМС памяти. В коде 2036Н биты А13, А12 и А11 образуют код 100В. На схеме биты А13, А12 и А11 заведены на вход дешифратора DC типа КР555ИД7. При коде 100В активным будет вывод 4, что совпало с расчетом порядкового номера ИМС ПЗУ с адресом 2036Н. Следовательно, если на ША будет выставлен адрес 2036Н, то на вход ИМС ПЗУ поступит сигнал 0, которым будет выбрана требуемая ИМС. На входах остальных ИМС блока памяти в это же время будут сигналы 1 и все эти ИМС будут отключены от ШД МП.
Алгоритм управления приведен на рис.1.29б, на нем даны все пояснения. Особенность алгоритма в том, что после совершения действий по включению или выключению контактора К возврата на начало этой программы нет, а выполняется команда управления другим ВУ. Вход в программу управления контактором К осуществляется извне после завершения программы управления другим ВУ.
Программа управления, составленная в соответствии с алгоритмом, приведена на рис.1.32 (все коды 16-ричные).
Адрес |
Код команды |
Метка |
Мнемокод |
Комментарии |
|||
2036 |
DB |
47 |
|
|
М1 |
IN 47 |
Чтение состояния кнопок П и С |
2038 |
E6 |
01 |
|
|
|
ANI 01 |
Выделить бит состояния кнопки С |
203А |
C2 |
4В |
20 |
|
|
JNZ М4 |
Если С нажата, то К выключить |
203D |
DB |
47 |
|
|
М2 |
IN 47 |
Чтение состояния кнопок П и С |
203F |
E6 |
02 |
|
|
|
ANI 02 |
Выделить бит состояния кнопки П |
2041 |
C2 |
4F |
20 |
|
|
JNZ Конец |
Если П нажата, то К включить, иначе выйти из программы |
2044 |
3E |
01 |
|
|
М3 |
MVI A, 01 |
В аккумулятор код включения К |
2046 |
D3 |
47 |
|
|
|
OUT 47 |
Включить контактор К |
2048 |
C3 |
4F |
20 |
|
|
JMP Конец |
Выйти из программы |
204B |
3E |
00 |
|
|
М4 |
MVI A, 00 |
В аккумулятор код выключения К |
204D |
D3 |
47 |
|
|
|
OUT 47 |
Выключить контактор К |
204F |
|
|
|
|
Конец |
|
1-я команда управления другим ВУ |
Рис.1.32. Программа управления контактором |
При выводе информации в ВУ дешифратор адреса при коде 47 выдает сигнал 0, из которого логическим элементом 2ИЛИ-НЕ совместно с сигналом формируется единичный строб для записи данных в D-триггер.
При вводе информации из ВУ дешифратор адреса при коде 47 выдает сигнал 0, из которого логическим элементом 2ИЛИ совместно с сигналом формируется единичный строб для считывания данных из регистра RG.
Рассмотрим подробно на сигнальном уровне выполнение команды OUT 47, расположенной по адресу 204DН.
После завершения выполнения команды MVI A, 00, расположенной по адресу 204ВН, в счетчике команд МП будет находиться адрес следующей команды – 204DН=0010.0000.0100.1101В. Этот адрес МП выставит на ША и будет выполнен цикл М1. Биты А13…А11 адреса образуют код 100В, по которому на выходе 4 дешифратора DC установится сигнал 0 и которым будет выбрана ИМС ПЗУ. Битами А10…А0 ША будет выбрана ячейка памяти в ПЗУ. При выполнении цикла М1 сформируется сигнал и в такте Т3 (рис.1.20) байт из ПЗУ перепишется в регистр команд МП. Этот байт имеет код D3 и является КОП. По завершении считывания байта счетчик команд инкрементируется и в нем установится адрес 204ЕН.
МП, используя прошивку дешифратора команд ДШК, установит, что команда с КОП D3 является двухбайтной, и будет выполняться за 3 цикла. Поэтому МП выставит взятый из счетчика команд адрес 204ЕН= 0010.0000.0100.1110В на ША и будет выполнять цикл М2. Битами А13…А11 адреса через дешифратор будет выбрана снова ИМС ПЗУ, остальными битами – выбрана ячейка памяти внутри ИМС ПЗУ. При выполнении цикла М2 сформируется сигнал и в такте Т3 байт из ПЗУ перепишется во временный регистр МП. Этот байт имеет код 47 и является операндом команды OUT 47. По завершении считывания байта счетчик команд инкрементируется и в нем установится адрес 204FН.
Далее, во исполнение результатов расшифровки КОП, будет выполняться 3-й цикл М3 – цикл записи байта в ВУ. На ШД МП, которая переключена на вывод, установится код 00Н, взятый из аккумулятора, а на ША МП выставит код 47Н. По этому коду наборным дешифратором сформируется на выходе сигнал 0. При выполнении цикла М3 сформируется сигнал =0 и в такте Т3 логическим элементом 2ИЛИ-НЕ, на входе которого присутствуют два нулевых сигнала, сформируется единичный сигнал, который поступит на вход С синхронизации D-триггера. На информационный вход D этого триггера уже поступает нулевой бит (так как предыдущей командой MVI A, 00 в нулевой бит аккумулятора был записан 0) с ШД МП, и по синхросигналу С в D-триггер запишется 0.
Команда OUT 47 выполнена до конца. Было 2 обращения к ПЗУ и одно – к ВУ. Эти обращения на уровне прохождения сигналов поддержаны схемой МПСУ.
Далее будет выполняться команда, записанная по адресу 204FН.