ОРГАНИЗАЦИЯ ОДНОКРИСТАЛЬНЫХ 8-РАЗРЯДНЫХ МП
И МИКРОЭВМ [4, 11]
Типичная структура МП устройства (системы)[4, 11]
На рис. 59 представлена упрощенная типичная структура МП устройства или системы, предназначенной для обработки данных или управления некоторым процессом. Примерно такую же структуру имеют ЭВМ широкого назначения.
Центральное место в этой структуре занимает МП, который выполняет арифметические и логические операции над данными, осуществляет программное управление процессом обработки информации, взаимодействие всех устройств, входящих в систему. Работа МП происходит под воздействием схемы синхронизации и начальной установки, выполняющей, в том числе и функции генератора тактовой частоты МП.
Представленная структура отражает наиболее распространенный магистрально – модульный принцип организации МП устройств и систем. Отдельные блоки являются функционально законченными модулями со своими встроенными схемами управления, выполненными в виде одного или нескольких кристаллов БИС, заключенных в корпусе с соответствующим количеством выводов. Обмен информацией между модулями осуществляется посредством коллективных шин (магистралей), к которым имеют доступ все основные модули системы. В каждый данный момент времени возможен обмен данными только между одним модулем. Читать информацию с ШД могут все остальные модули одновременно.
Магистральный принцип построения сопряжений модулей (интерфейс) МП системы предполагает наличие информационно-логической совместимости модулей, которая реализуется путем использования единых способов представления информации алгоритма управления обменом, форматов команд управления обменом и способа синхронизации.
Для МП характерна 3-шинная структура содержащая: ША на которую
МП выставляет двоичный код адреса ячейки памяти или устройства ввода/вывода (УВВ); ШД через которую происходит обмен данными между модулями и ШУ. Типовая структура МП системы предполагает наличие общего сопряжения (интерфейса): для модулей памяти ПЗУ, предназначенного для хранения программ начальной загрузки и тестирования универсальных МП систем, а также рабочих специализированных МП систем и ОЗУ, предназначенного для хранения программ и данных, причем последние в этом случае загружаются в ОЗУ с накопителей; для модулей периферийных устройств – внешних запоминающих устройств (накопителей) и УВВ.
В качестве периферийных устройств в МП системах могут быть клавиатура, дисплей, накопитель на магнитном диске, ЦАП и АЦП, исполнительные устройства и т.п.
Периферийные устройства подключаются к шинам интерфейса через программируемые адаптеры и программируемые контроллеры. На рис. 59 изображен программируемый параллельный адаптер (ППА) и программируемый связной адаптер (ПСА). Наличие программируемых адаптеров и контроллеров делает универсальным ввод/вывод информации в МП системе. В структуре МП интерфейс является узким местом из-за ограниченного числа выводов корпуса. Узкий интерфейс МП приводит к необходимости использования двунаправленных линий передачи, что сопровождается усложнением схем буферных усилителей, и необходимости временного мультиплексирования (использования по нескольким назначениям, причем для каждого из назначений отведен свой промежуток времени) чисел. Это также усложняет схему МП, снижает скорость передачи информации через интерфейс и требует наличия специальных линий для идентификации передаваемой информации.
Рис. 59. Типичная структура микропроцессорного устройства
Однокристальный МП К580ВМ80 [4; 11]
МП серии К580 предназначен для работы с памятью (постоянной и оперативной) емкостью до 64 Кбайт. Память имеет байтовую – структуру возможна адресация в памяти любого байта.
Организации МП серии К580 отмечена следующими основными особенностями:
− 3-х шинной структурой с ША, ШД и ШУ;
− магистральным принципом связей, реализованным в виде связывающей основные узлы МП двунаправленной ЩД, имеющей ширину, равную длине слов (8-двоичных разрядов), обрабатываемых МП;
− наличием регистровой памяти, образованной программно-доступными общими и специализированными регистрами, а также регистрами временного хранения;
− наличием средств организации стековой памяти;
− наличием 16-разрядной шины адреса, обеспечивающей возможность адресации любого байта в памяти емкостью 64 Кбайт;
− наличием операций над двухбайтовыми словами (16-разрядными числами, адресами):
− использованием 3 форматов команд (1, 2, 3-байтного) и разнообразных способов адресации (прямой, регистровой, косвенной, непосредственной, стековой), позволяющих при коротком 8-разрядном слове иметь достаточно гибкую систему команд;
− возможность реализации векторного многоуровневого приоритетного прерывания путем подключения к МП контроллера прерываний;
− возможность реализации режима прямого доступа к памяти путем подключения к МП контроллера прямого доступа к памяти;
− наличием эффективных средств работы с подпрограммами и обработки запросов прерываний.
МП заключен в корпус с 40 выводами (рис. 60). Для его работы необходим тактовый генератор с рекомендуемой частотой f = 2МГц и источник питания с уровнями ±5В, 12В.
Входные и выходные сигналы (за исключением сигналов синхронизации тактовым генератором) имеют стандартные ТТЛ уровни и имеют нагрузочную способность, рассчитанную на 1 ТТЛ вход.
5В 20 -5В 11
12В 28 ОБЩ 2
Рис. 60. Назначение выводов корпусов МП К580
С позиции пользователя можно выделить следующие основные узлы:
а) шина адресов (ША), на которую МП выставляет 16-разрядный двоичный код адреса ячейки памяти или 8-разрядный код устройства ввода/вывода (УВВ), с которыми МП производит обмен информацией;
б) 8-разрядная шина данных (ШД), через которую МП осуществляет обмен информацией;
в) Схема управления МП системой, сигналы которой используются в шине управления ШУ МП системы для организации взаимодействия МП, памяти и УВВ;
г) Блок регистров, предназначенный для хранения оперативной информации;
д) АЛУ, выполняющее обработку данных;
е) шина управления (ШУ), по которой передаются управляющие сигналы, синхронизирующие работу МП с другими узлами МП системы.
Блок регистров МП содержит программно-доступные регистры, обозначаемые буквами: А, В, С, D, Е, F, Н, L, SP, PC (рис. 61).
Рис. 61. Структура однокристального МП К580ВМ80
Регистр А является регистром-аккумулятором, находится один из операндов и фиксируется результат операции, и через который осуществляется обмен данными с портами ввода/вывода.
Регистры В, С, D, Е, Н, L являются регистрами общего назначения (РОН). Так же, как и аккумулятор А они работают с 8-разрядными словами.
Для работы с 16-разрядными словами регистры могут объединяться в пары (В и С), (D и Е), (Н и L), (A и F), обозначаемые: В, D, Н и PSW. Регистровая пара Н при занесении в нее адреса ячейки памяти может быть также использована для косвенной адресации при обмене информацией между РОН и памятью, что существенно упрощает программу и повышает быстродействие обмена.
Регистр признаков F фиксирует особенности выполнения АЛ операций, устанавливая 1 в соответствующем разряде признаки:
Z – при нулевом результате;
СY – перенос из старшей тетрады при переполнении (заеме) разрядности результата;
S – при отрицательном результате;
Р – при четном количестве единиц в результате;
АС – при наличии числа больше 15 в младшей тетраде результата (перенос).
Счетчик команд образован регистровой парой PC, в которой хранится адрес текущей ячейки памяти, хранящий код текущей команды, выводимый через буфер на ША.
Объединение регистров А и F в пару PSW используется при необходимости сохранения в стековой памяти и восстановления из нее записанной в них информации. Регистровая пара SP используется как указатель стека при организации такой памяти.
Для организации стека выделяется группа последовательно расположенных ячеек памяти, а адрес последней ячейки памяти (вершина стека) увеличивается на единицу и заносится в указатель стека SP. При операции занесения слова в стек слово помещается в следующую по порядку уменьшения адресов ячейку памяти, адрес которой автоматически устанавливается в SP.
При считывании из стека сначала из ячейки памяти, адрес которой хранится в SP, извлекается слово, а затем содержимое SP автоматически увеличивается. Таким образом, в стеке автоматически реализуется дисциплина обслуживания «последний зашел – первый вышел». Поэтому при операциях со стеком команды не содержат адресов ячеек памяти стека, но содержат имена регистровых пар, обменивающихся информацией со стеком. Стеки широко используются при работе с подпрограммами.
Схема управления использует следующие сигналы:
RESET – системный сброс (установка счетчика команд PС на нулевой адрес; запрет прерываний и отмена режима остановки);
φ1 и φ2 – сигналы, поступающие от генератора тактовых импульсов;
SYNC – сигнал начала цикла выборки кода команды (M1);
READY – сигнал готовности внешнего устройства к обмену информацией;
WAIT – сигнал о работе МП в режиме ожидания;
INT – сигнал запроса на прерывание от внешнего устройства;
INTA – сигнал разрешения прерывания для внешнего устройства;
HОLD – сигнал запроса от внешнего устройства для прямого доступа к памяти;
НLDА – разрешение ПДП;
DBIN – сигнал направления передачи данных для управления двунаправленным буфером шины данных ( ШД → ЦП);
WP – сигнал записи данных из МП во внешнее устройство.
Управление МП системой [4; 11]
Управляющее устройство МП серии 580 состоит из двух независимых частей:
1. Первичного автомата, управляющего процессами внутри МП;
2. Схемы, обрабатывающей сигналы и генерирующей управляющие сигналы в МП системе.
Выполнение рабочего цикла команды начинается с опроса триггера прерывания. Если запрос прерывания имел место, то автомат передает управление специальной программе обработки прерывания и выполняется соответствующая подпрограмма обслуживания данного запроса прерывания. При отсутствии прерывания управляющий автомат генерирует управляющие сигналы выборки кода команды из памяти и формирования в счетчике команд адреса следующей выборки. Затем управляющий автомат дешифрует код операции и генерирует сигналы ШУ, реализующие в МП заданную операцию.
Существенная особенность работы первичного автомата состоит в том, что его алгоритм содержит условный оператор ожидания готовности операнда, что позволяет использовать различные типы внешней памяти УВВ, имеющие разные времена обращения.
Схема управления системой в зависимости от кода текущей команды, состояния первичного автомата, а также от значений оповещающих сигналов в шине управления, вырабатывает управляющие сигналы, которые реализуют процедуры системного обмена информацией. Автомат в зависимости от сложности команды реализует цикл команд за 1...5 машинных циклов. Один машинный цикл требуется МП для одного обращения к памяти или УВВ. Выборка байта команды, байта адреса или данных требует 1 машинного цикла. Аналогичность операций, выполняемых в этих циклах, позволяет реализовать их в течение цикла команды на одном и том же оборудовании первичного автомата.
Эффективность работы управляющего автомата достигается за счет машинных циклов переменной длины (3...5 машинных тактов. Имеется 10 видов циклов:
1. выборка кодов команды (цикл Ml);
2. чтение из памяти;
3. запись в память;
4. чтение из стека;
5. запись в стек;
6. чтение из УВВ;
7. запись в УВВ;
8. разрешение прерывания;
9. разрешение остановки;
10. разрешение прерывания в режиме остановки.
Для идентификации вида машинного цикла в начале каждого цикла МП генерирует сигнал синхронизации SYNC, который совместно с сигналом тактового генератора используется для записи в регистр PrCC слова состояния, находящегося в системном контроллере, слова состояния процессора, используемый (СК) системным контроллером для управления ходом выполнения команды.
На рис. 62 изображена временная диаграмма основного никла работы МП в условиях, когда присутствует внешний управляющий сигнал READY, информирующий о готовности внешнего устройства к обмену информацией.
На первом такте синхронизации Tl МП выставляет на шине адресов адрес очередной команды А 15-0. Начинается цикл выборки кода команды Ml. Одновременно на линии синхронизации SYNC появляется единичный сигнал, который, во-первых, идентифицирует информацию на шине данных D 0-7 как словосостояние процессора (ССП), которое должно быть загружено во внешний регистр РгСС, а во-вторых, свидетельствует о начале машинного цикла Ml. По окончании сигнала синхронизации буферная схема шины данных приводит ЩД в режим ввода, о чем свидетельствует единичный сигнал на линии DBIN шины управления.
В такте Т2 МП осуществляет проверку готовности внешнего устройства к обмену в том случае, если это устройство генерирует сигнал READY. Первичный автомат управления переводит МП в состояние ожидания и будет находится в нем до тех пор, пока на линии управления READY не появится единичный, свидетельствующий о готовности внешнего устройства к обмену, сигнал. До появления этого сигнала первичный автомат находится в состоянии ожидания целое число машинных циклов TW и выдает на ШУ единичный сигнал WAIT. Из альтернативных состояний Т2 и TW первичный автомат всегда переходит на такт Т3, в котором происходит чтение или запись слова в память. Состояния Т4 и Т5 отводятся для реализации операции, заданной кодом команды и не всегда являются обязательными. Выполнение некоторых сложных операции требует многократного (до 3-х) прохода по циклу состоянии от Tl до Т5 (несколько машинных циклов).
На рис. 63 показана временная диаграмма прерывания. Периферийное оборудование МП системы может запросить для обмена информацией с МП прерывание текущей программы у МП и вызов подпрограммы обработки прерывания путем подачи сигнала INT на вход запроса прерывания МП. Этот сигнал может возникнуть в любой момент цикла команды. Обработка прерывания организована таким образом, что запрос прерывания фиксируется во внутреннем триггере запроса на прерывания МП только при переходе первичного автомата к циклу Ml, то есть к начальному циклу очередной команды, и только в случае, если программным путем будет разрешено прерывание (использована в программе команда ЕI). Выполнение этих условий приведет к тому, что следующий машинный цикл Ml будет циклом обработки запроса прерывания.
Машинный цикл прерывания, которой начинается на такте Tl в условиях разрешенного прерывания, в основных чертах повторяет машинный цикл выборки (на шину адресов выводится содержание счетчиков команд, а на шину данных слово состояния, которое фиксируется в РгСС). Слово состояния цикла содержит единицы в разряде D0 (разрешено прерывание), D1 (работа с внешними устройствами УВВ) и D5 (цикл Ml). Устанавливается нулевой уровень входного сигнала INTA МП (прерывание разрешено), который используется периферийным оборудованием процедур, определенных прерыванием. Кроме этого сбрасывается внутренний триггер прерываний, что приводит к запрету последующих запросов на прерывание.
Отличие машинного цикла прерывания от цикла выборки состоит в том, что содержимое счетчика команд не инкрементируется, а запоминается в стековой памяти, чтобы оно могло быть восстановлено после окончания подпрограммы обработки прерывания для продолжения прерванной программы. На такте Т3 периферийное оборудование на шине данных должно выставить код команды RSTN и CALL, которая читается МП и выполняется.
При выполнении команды CALL МП еще дважды выдает нулевой уровень сигнала INTA по которому УBB выдает, а МП читает два байта адреса начала подпрограммы обработки прерывания.
T1 | T2 | TW | T3 | T4 | T5 | |
φ1 φ2 A0… A15 D0… D7 D0… D7 SYNC READY WAIT DBIN WR | Фиксация слова состояния в PrCC | |||||
Выдача адреса и слова состояния | Проверка сигналов READY, INT, HOLD | Согласование по времени доступа к данным | Чтение или запись данных | Выполнение операции (если нужно) |
Рис. 62. Временная диаграмма цикла выполнения команды
М1 | М2 | М3 | ||||||||||||||||
Т3 | Т1 | Т2 | Т3 | Т4 | Т5 | Т1 | Т2 | Т3 | Т1 | Т2 | Т3 | |||||||
А15...0 D7...0 SYNC DBIN WR Внутренний сигнал «Возврат к М1» INTA INT Внутренний сигнал «Состояние триггера ЗПР» Внутренний сигнал «Запрет инкремента счетчика РС» Слово в РrСС |
|
| (РС) φ1 | RST | (SR) -1 | (РСН) | (SR) -2 | (PCL) |
Рис. 63. Временная диаграмма работы МП в режиме прерывания
В машинных циклах М2 и МЗ содержание счетчика команд побайтно записывается в стек (на ША выводится содержимое указателя стека SP). Управляющее устройство МП позволяет выполнять операции с прямым доступом к памяти (ПДП). При этом обмен данными между ОП и периферийным устройством производится быстрее, чем при обмене под управлением МП. Этот режим целесообразен при обмене блоками данных. Выставляя на линии HOLD запрос ПДП УВВ, может приостанавливать нормальный вычислительный процесс в MП и кратковременно осуществлять управление по шинам МП системы. Первичный автомат при этом вырабатывает управляющие сигналы, переводящие буферные схемы шин адреса и данных системы и разрешает сигналам HLDA прямой доступ к памяти. По окончании режима ПДП УВВ снимает сигнал запроса HOLD, в результате чего МП снимает сигнал HLDA и возвращается к выполнению вычислительного процесса.
ОДНОКРИСТАЛЬНЫЙ МИКРОКОНТРОЛЛЕР К 1816 [4, 11]
Общие сведения[4, 11]
Однокристальный 8-разрядный микроконтроллер (МК) имеет в своем составе все атрибуты небольшой микроЭВМ: арифметико-логическое устройство; устройство управления; ПЗУ для записи программ; ОЗУ для хранения данных и интерфейсные схемы для УВВ. Вследствие незначительного объема памяти, простой системы команд и ограниченных возможностей ввода-вывода МК используются в качестве специализированного вычислителя, включенного в контур управления объектом или процессом. Организация, система команд и средства ввода-вывода информации в МК лучше всего приспособлены для решения задач управления и регулирования в сравнительно несложных объектах, приборах и технологических процессах.
В состав аппаратных средств МК входят: стираемое перепрограммируемое ПЗУ (СППЗУ) программ емкостью 1 Кбайт; регистровое ОЗУ данных емкостью 64 Кбайта; 8-разрядное арифметико-логическое устройство (АЛУ); устройство управления; 8-битный программируемый таймер/счетчик событий; программно-управляемые схемы ввода-вывода (27 линий).
Организация МК и его система команд допускает в случае необходимости расширение функционально-логических возможностей. С использованием внешних микросхем емкость ППЗУ программ может быть расширена до 4 Кбайт. Кроме того, архитектура МК обеспечивает возможность прямой адресации внешнего ОЗУ емкостью 256 байт. С использованием более сложных программно-реализуемых способов адресации емкость внешнего ОЗУ может быть расширена до требуемого объема страницами по 256 байт в каждой. Число линий связи с УВВ может быть расширено практически без ограничений путем подключения интерфейсных схем КР580ВВ55.
В МК реализована система векторного прерывания до 2 источников: внутреннего таймера/счетчика событий и внешнего источника. Внутренний 8-уровневый стек обеспечивает автоматическое сохранение и восстановление основных параметров вычислительного процесса при запросах на прерывание и при возврате после обслуживания прерываний.
Три 8-разрядных порта ввода-вывода информации, два входа тестирующих сигналов и один вход запроса прерывания обеспечивают связь МК с объектом управления по 27 линиям. Кроме того, имеются выводы для подключения внешнего генератора тактовых импульсов и для передачи таких сигналов, как системный сброс, строб адреса внешней памяти, чтение, запись. Вывод, через который МК в процессе работы выдает сигналы для стробирования УВВ, на этапе программирования СППЗУ используется для подачи программируемого сигнала. Выводы, через которые подаются сигналы пошаговой работы и режима внешнего доступа, используются на этапе отладки МК при тестировании прикладной программы.
МК может работать с тактовой частотой от 1 до 6 МГц. При подключении к выводам Х1 и Х2 стандартного кварцевого резонатора на 5, 994 МГц цикл однобайтной команды составляет 2,5 мкс, с двухбайтной – 5 мкс. МК требует источник питания 5 В мощностью 1,5 Вт при допустимом отклонении 10%. Диапазон рабочих температур от 0 до +70ºС
Организация микроконтроллера К 1816[4, 11]
На рис. 64 показана структура микроконтроллера (МК), основу которой образует внутренняя двунаправленная 8-разрядная шина, которая связывает между собой все устройства МК. Обмен информацией с внешними устройствами осуществляется с использованием нижеуказанных сигналов.
ПРОГ/СТБВВ – входной сигнал программирующего СППЗУ импульса +25 В и выходной сигнал для стробирования УВВ при работе.
Х1 – входной сигнал с кварцевого резонатора или внешнего генератора.
Х2 – входной сигнал с другого вывода кварцевого резонатора.
СБРОС – входной сигнал системного сброса при запуске МК; сигнал 0 при программировании и проверке СППЗУ.
ШАГ – сигнал, который совместно с сигналом САВП позволяет выполнить программу с остановом после исполнения очередной команды; используется на этапе отладки.
РВП – выходной сигнал, разрешающий доступ к внешней памяти только тогда, когда происходит обращение к внешней памяти программ.
САВП – строб адреса внешней памяти; сигнал используется для приема и фиксации адреса внешней памяти во внешнем регистре; сигнал является идентификатором машинного цикла и выводится с частотой в 5 раз меньше тактовой.
ЧТ – выходной сигнал, стробирующий чтение из внешнего ОЗУ или УВВ.
ЗП – выходной сигнал, стробирующий запись во внешнее ОЗУ или УВВ.
ТО – входной сигнал, используемый в командах условного перехода по событию JTO и JNTO; используется при программировании СППЗУ; выходной сигнал внутреннего тактового генератора по команде ЕNTO CLC.
Т1 – входной сигнал, используемый в командах условного перехода по событию JT1 и JNT1; используется также для подсчета количества внешних событий счетчиком внешних событий по команде STRT CNT.
ЗПР – входной сигнал запроса прерывания от внешнего источника.
РВД – входной сигнал режима внешнего доступа; высокий уровень сигнала заставляет МК выполнять выборку команд только из внешнего ПЗУ.
ПОРТ Р1 – 8-разрядный квазидвунаправленный порт ввода-вывода информации; каждый разряд может быть запрограммирован на ввод или на вывод.
ПОРТ Р2 – 8-разрядный квазидвунаправленный порт ввода-вывода информации; каждый разряд может быть запрограммирован на ввод или на вывод; разряды D0...D3 во время чтения из внешнего ППЗУ содержат старшие разряды счетчика команд; во время ввода-вывода используются для схемы расширения ввода-вывода и адресуют внешние порты Р4...Р7.
ПОРТ BUS – 8-разрядный двунаправленный порт ввода-вывода информации; может быть переведен в высокоимпендансное состояние; может выполнять прием и выдачу байтов синхронно с сигналами ЧТ и ЗП; при обращении к внешнему ППЗУ выдает 8 младших разрядов счетчика команд и затем по сигналу РВП принимает байт кода команды; при обращении к внешнему ОЗУ выдает 8 разрядов адреса синхронно с сигналом САВП, а затем обменивается с ОЗУ информацией по сигналам ЧТ и ЗП.
Арифметико-логическое устройство (АЛУ) включает в себя следующие устройства: комбинационная схема обработки байтов, регистр-аккумулятор А, схема десятичного корректора и схема формирования признаков, которые используются логической схемой управления программой.
АЛУ может выполнять следующие операции: сложение байта с переносом или без него; логические операции И, ИЛИ, ИСКЛЮЧАЮЩИЕ ИЛИ, НЕ; инкремент и декремент байта; циклический и арифметический сдвиги байта вправо или влево; обмен тетрад в байте; десятичную коррекцию содержимого аккумулятора. Аккумулятор используется в качестве регистра операнда и регистра результата. При выполнении операций обработки данных в АЛУ формируются признаки, часть которых не фиксируется в регистре слова состояния процессора ССП, а формируются комбинационной схемой (признак нуля Z и признаки единицы в битах аккумулятора В0...В7). Признаки переполнения С и вспомогательного переноса (из младшей тетрады в старшую) АС фиксируются в регистре ССП. Биты ССП хранят следующую информацию:
D0...D2 – указатель стека;
D3 = 1 – не используется;
D4 = ВS – селектор банка регистров;
D5 = F0 – признак пользователя F0;
D6 = AC – признак вспомогательного переноса;
D7 = C – признак (переполнения) переноса.
Кроме перечисленных признаков при условных переходах МК может оперировать с признаками F0 и F1, функциональное назначение которых определяется разработчиком, признаком переполнения таймера FT, признаками наличия сигналов на входах Т0 и Т1. Программистом могут быть также использованы признаки рабочего банка регистров BS и выбранного блока внешней памяти МВ. Кроме этого после окончания каждого машинного цикла опрашивается признак разрешения/запрета прерывания EI.
Память программ и память данных в МК [4, 11]
Физически и логически разделены. Память программ реализована во внутреннем СППЗУ емкостью 1 Кбайт. Максимальное же адресное пространство, отводимое под программу, составляет 4 Кбайта. Счетчик команд имеет 12 двоичных разрядов, но инкрементируются в процессе работы только младшие 11 разрядов. Состояние старшего разряда счетчика команд может быть изменено командами выбора одного из двух блоков внешней памяти программ (SEL MB0 и SEL MB1), емкостью по 2 Кбайта каждый. Во внутренней памяти программ имеются три адреса: адрес 0, по которому передается управление сразу же после окончания сигнала системного сброса СБРОС и в котором должна храниться команда безусловного перехода к началу программы; адрес 3, по которому должен храниться вектор прерывания; адрес 7, по которому должен храниться вектор прерывания от таймера/счетчика событий.
Помимо разбиения на блоки память программ разбивается на страницы по 256 байт в каждой. В командах условного перехода задается 8-битный адрес, позволяющий осуществить переход только внутри текущей страницы. Для переходов внутри блока памяти следует дополнительно использовать команды безусловного перехода или вызова подпрограммы, которые оперируют с 11-разрядными адресами.
Для доступа к хранящимся в СППЗУ константам используются как косвенная адресация, при которой содержимое аккумулятора указывает либо на адрес внутри текущей страницы, либо на адрес внутри страницы 3, так и непосредственная адресация, в которой операндом является второй байт команды.
В МК с памятью программ более чем 2 Кбайта возникает проблема размещения подпрограмм в 2 блоках памяти, так как МК не имеет средств считывания и анализа старшего разряда счетчика команд. Поэтому необходимо следить за тем, чтобы подпрограммы, взаимно вызывающие друг друга, располагались в пределах одного блока памяти. В противном случае при условном вызове подпрограмм может возникнуть трудноразрешимая проблема правильного определения номера блока для передачи управления в процессе выхода из подпрограмм.
Внутренняя память данных емкостью 64 байта имеет в своем составе 2 банка рабочих регистров, по 8 регистров в каждом, которые расположены в ячейках с адресами 0...7 и 24...31. Выбор одного из 2-х банков осуществляется командой SEL RB. Рабочие регистры доступны командам с регистровой адресацией, а все ячейки ОЗУ доступны командам с косвенной адресацией. В качестве регистров косвенного адреса используются регистры R0 и R1. Ячейки ОЗУ с адресами 8...23 адресуются указателем стека из ССП могут быть использованы в качестве 8-уровневого стека. Малая емкость стека ограничивает число возможных внешних источников прерывания в МК системе. МК не имеет команд загрузки байта в стек и в нем фиксируется только содержимое счетчика команд и старшая тетрада ССП (признаки).
В силу этого программисту необходимо следить за тем, чтобы вложенные подпрограммы не использовали одноименные ячейки ОЗУ в качестве рабочих регистров. В МК системах, использующих внешнее ОЗУ, доступ к ее ячейкам возможен путем косвенной адресации через регистры R0 и R1, возможен доступ к внешней памяти объемом 256 байт.
Структура портов Р1 и Р2 квазидвунаправленная и специфична для программиста МК 1816 тем, что в процессе ввода информации выполняется операция логического И над вводимыми данными и текущими (последними выведенными в данный порт) данными. Для того, чтобы можно было осуществить ввод, программист должен следить за тем, чтобы в соответствующий разряд порта была выведена 1. Квазидвунаправленные структуры портов Р1 и Р2 и команды логических операций ANL и ORL представляют программисту эффективное средство маскирования для обработки однобитовых входов и выходов МК.
В системе команд МК есть команды, которые позволяют выполнить запись нулей и единиц в любой разряд или группу разрядов порта. Но так как в этих командах маска задается непосредственно операндом, то необходимо знать распределение сбрасываемых и устанавливаемых разрядов порта на этапе разработки исходной программы. В этом случае, если маска вычисляется программой и заранее неизвестна, то необходимо иметь копию состояния порта в ОЗУ. Эта копия по командам логических операций соединяется с вычисляемой маской в аккумуляторе и затем загружается в порт. Необходимость этой процедуры вызвана тем, что квазидвунаправленная структура не позволяет выполнить операцию чтения состояния портов Р1 и Р2, зафиксированных по последней команде вывода.
Порт Р1 отличается от порта Р2 тем, что его младшие 4 бита могут быть использованы для расширения МК системы по вводу-выводу. Через младшую тетраду по специальным командам с обращением к портам Р4...Р7 возможен доступ к 4 внешним четырехбитным портам ввода-вывода. Работа этих внешних портов синхронизируется сигналом ПРОГ/СТБВВ.
Порт ввода-вывода BUS представляет собой двунаправленный буфер с тремя состояниями (ввод, вывод и высокоимпендансное состояние) и предназначен для побайтного ввода, вывода или ввода-вывода информации.
Если порт BUS используется для двунаправленных передач, то обмен через него выполняется по командам MOVX. При выводе байта генерируется стробирующий сигнал ЗП, а выводимый байт фиксируется в буферном регистре. При вводе байта генерируется стробирующий сигнал ЧТ, но вводимый байт в буферном регистре не фиксируется. При отсутствии обмена информацией порт по своим выходам находится в высокоимпендантном состоянии.
Если порт BUS используется как однонаправленный, то вывод через него выполняется по команде OUTL, а ввод – по команде INS. Вводимые и выводимые через порт BUS данные можно маскировать с помощью команд AND и OR, что позволяет выделить и обрабатывать в байте отдельный бит или их группу. Для этого предварительно по команде OUTL BUS, А в порт BUS из аккумулятора должна быть загружена маска.
В МК системах простой конфигурации, когда порт BUS не используется в качестве порта-расширителя системы, обмен информацией выполняется по командам INS, OUTL и MOVX, однако при этом необходимо помнить о том, что выводимый по команде OUTL байт фиксируется в буферном регистре, команда MOVX уничтожает содержимое буферного регистра порта.
В МК системах, имеющих внешнюю память программ, порт BUS используется как для выдачи адреса внешней памяти, так и для приема кода команды из внешней памяти. В таких системах использование команд OUTL BUS недопустимо, так как фиксация в буферном регистре порта выводимого байта является причиной неправильной выборки следующей команды.
Управление работой микроконтроллера[4, 11]
Устройство управления МК совместно с логической схемой переходов в каждом цикле каждом цикле команды формирует последовательность сигналов, управляющих функциями всех блоков МК и системой их взаимосвязи. Рассмотрение работы МК и особенностей реализации тех или иных процедур удобно выполнить путем анализа работы отдельных блоков МК в различных режимах его работы.
Синхронизация микроконтроллера осуществляется внешним и внутренним генератором тактовым импульсом.
Внешний генератор подключается к выводам XI и Х2. При работе внутреннего генератора к этим выводам должен быть подключен кварцевый резонатор или LC цепь, дающие частоту тактовых импульсов. Это частота делится на три, после него используется для системной синхронизации МК и может выдаваться на вывод то после команды ENTO CLC. Сигналы системной синхронизации поступают и на счетчик машинных циклов, на выходе которого через каждые 5 сигналов синхронизации МК формируется сигнал САВП, идентифицирующий каждый машинный цикл и используемый частотой в расширенных МК системах для стробирования адреса внешней памяти (рис. 65а). На первом также машинного цикла МК производит выборку кода команды из ячейки памяти программ по установленному на предыдущем машинном цикле на внутренней шине адресу (рис. 65б).
На втором машинном также выбранный код дешифруется, счетчик команд инкрементируется.
На третьем машинном также начинается выполнение команды, выдается новый адрес на внутреннюю шину адресов, выдается сигнал САВП и, при обращении к внешней памяти в порты BUS и Р2 выдается адрес ячейки памяти, который должен зарегистрирован внешним регистром адресом по сигналу САВП или ПРОГ/СТБВВ. На четвертом машинном такте продолжается выполнение команды.
Выдается при обращении к внешнему ОЗУ или УВВ сигнал ПРОГ/СТБВВ. Выдается при обращении к внешней памяти программ сигнал РВП, по которому буфер внешней памяти должен подключить ее шину к порту BUS.
На пятом и последнем машинном также заканчивается выполнение команды, выдаются сигналы ЧТ им ЗП на внешнее ОЗУ или УВВ для чтения или записи данных.
Системный сброс задается сигналом низкого уровня длительностью уровня не менее 50 мс на входе СБРОС. При этом МК производит следующие действия: устанавливает на нулевой адрес указатель стека; устанавливает порт BUS в высокоимпендансное состояние, а порты Р1 и Р2 – в режим ввода; выбирает банк регистров 0 и блок памяти 0, запрещает прерывания, останавливает таймер и выдачу синхросигнала на вывод Т0; сбрасывает признак переполняет таймера FT и признаки пользователя F0 и F1.
Пошаговый режим работы используется на этапе отладки МК системы и представляет разработчику возможность выполнить прикладную программу покомандно с выводом адреса очередной команды через порт BUS и младшую тетраду порта Р2. Для работы в таком режиме необходим внешний D триггер. В исходном состоянии D-триггер выдает сигнал низкого уровня на вход ШАГ микроконтроллера, который в конце машинного цикла переводит МК в режим ожидания.
Нажатием кнопки разработчик переводит D-триггер в противоположное состояние, сигнал ШАГ принимает значение высокого уровня. МК начинает машинный цикл. Задним фронтом сигнала САВП триггер переключается в исходное состояние, что вновь приводит МК в состояние ожидания после завершения машинного цикла.
Счетчик команд и логика условных переходов. Только 10 младших разрядов счетчика команд используется для адресации 1 КБайта внутренней памяти программ, а 2 старших разряда для обращения к внешней памяти программ расширенной МК системы. При этом инкрементируются только 11 младших разрядов счетчика, а его старший разряд устанавливается программой при выборе блока памяти.
|
S5 | S1 | S2 | S3 | S4 | S5 | S1 |
Выборка команды | Дешиф- рация | ВЫПОЛНЕНИЕ | Выборка команды | |||
Выдача адреса | Инкремент СК | ВЫДАЧА АДРЕСА |
|
|
|
|
|
|
|
СС
САВП
РВГ
ЧТ, ЗП
ПРОГ/СТБВВ
б)
Рис. 65. Схема синхронизации МК: а – временные диаграммы машинного
цикла и б – цикла команды.
Логика условных переходов МК позволяет прикладной программе проверять не только внутренние признаки, но и условия, внешние по отношению к МК. По командам условного перехода в случае удовлетворения проверяемого условия в счетчик команд (разряды 0...7) загружается адрес перехода внутри страницы памяти из второго байта команды. Логика переходов оперирует с набором событий, представленном в таблице 17.
Таблица 17
Устройство | Условие перехода | |
Аккумулятор | Все нули | Не все нули |
Выбранный бит аккумулятора | - | |
Признак переноса С | ||
Признаки пользователя F0, F1 | - | |
Признак переполнения таймера/счетчика FT | - | |
Тестовые входа Т0, Т1 | ||
Вход запроса прерывания | - |
При безусловном межстраничном переходе в старшие разряды счетчика команд загружается номер страницы, который задается в старшей тетраде первого байта команды.
Прерывание должно быть предварительно разрешено программой по команде ENI, после чего проверяется линия запроса прерывания от внешнего источника ЗПР на наличие сигнала низкого уровня во время действия сигнала САВП, но при наличии запроса передача управления по адресу 3 произойдет только при завершении цикла команды. При обработке прерывания, как при вызове подпрограммы, содержимое счетчика команд и старшая тетрада слова состояния программы (PSW) сохраняется в стеке. Система прерывания одноуровневая, так как после распознавания прерывания все последующие запросы на прерывание (внутренние и внешние) игнорируются до тех пор, пока командой возврата из подпрограммы RETR вновь будет разрешено прерывание. Прерывание может быть запрещено командой DISI.
Таймер/счетчик событий выполнен на базе 8-разрядного суммирующего двоичного счетчика и может быть использован для формирования временных задержек и для подсчетчика внешних событий. Содержимое счетчика можно прочитать в аккумулятор или модифицировать из аккумулятора командой MOV.
Две команды STRT Т и STRT CNT настраивают и запускают счетчик в режиме таймера или в режиме счетчика событий соответственно. Остановить работу (но не сбросить содержимое) можно или командой STOP TCNT, или сигналом системного сброса СБРОС.
Из конечного состояния FF счетчик переходит в начальное состояние 00. При этом устанавливается в 1 признак переполнения счетчика, который может вызвать прерывание, если оно было разрешено командой EN TCNTI. передающее управление, в отличие от внешнего прерывания, по адресу 7.
В режиме таймера синхросигналы машинного цикла САВП делятся по чистоте на 32 и поступают на вход счетчика. При частоте синхросигнала 400 КГц счетчик инкрементируется через каждые 80 мкс. Путем программной установки счетчика в исходное состояние и анализа признака переполнения могут быть реализованы различные временные задержки, лежащие в диапазоне от 80 мкс до 20 мс. Временные задержки длительностью более 20 мс (256 состояний счетчика) могут быть получены накоплением переполнений в рабочем регистре под управлением программой.
В режиме счетчика событий внутренний счетчик инкрементируется при переходе сигнала на входе Т1 с высокого уровня на низкий.
Режим внешнего доступа осуществляется подачей сигнала (+5В) на вход РВД. При этом внутренняя память программ отключается, и выборка команд осуществляется только из внешней памяти. Такой режим удобен на этапе отладки МК системы, т. к. позволяет пользователю подключать внешнюю память, содержащую или диагностическую программу, или варианты прикладной программы.
При повышении сигнала РВД до +25В возможно выполнить чтение внутренней памяти программ извне, что важно на этапе программирования внутренней памяти для проверки правильности записи программы.
Программирование и проверка СППЗУ состоит из ряда последовательных действий требует использования программатора, генерирующего специальные сигналы, а также представляющего средства входа в МК адресов данных, обеспечивающего средства контроля введенной информации.
Дата добавления: 2016-01-30; просмотров: 949;