
- •Предисловие
- •Арифметические действия в двоичной и десятичной
- •Формы и виды представления информации.
- •1000 М – длина волокон
- •Организация однокристальных 8-разрядных мп
- •Мульти-
- •Признаки
- •Память программ и память данных в мк [4, 11]
- •Организация интерфейса микропроцессорных
- •Приложения
- •Двоично-десятичная система счисления (Методическая разработка)
- •Взлеты и падения клайва синклера
- •Локальные вычислительные сети (лвс)
- •Что такое модем и как он работает
- •Международные Стандарты Модемов
- •О возможности соединения со скоростью 56 Кбит/сек
- •Как улучшить качество модемной связи
- •Быстрее, еще быстрее!
- •Модемные удвоители
- •Спутниковый канал в Internet
- •Кабельные модемы
- •Vbi: передача данных по каналам телевизионного вещания
- •Факс-модемы
- •Современные модемы
- •Сотовые модемы
- •Компоненты сети
- •Литература
- •Оглавление
СППЗУ
программ
(1К × 8)
Дешифратор
СК
0...7
СК
8...11
Таймер-счетчик
событий
ПОРТ
Р1
ПОРТ
Р2
Квазидву-направленные
линии
ВВОДА/ВЫВОДА
ПОРТ
BUS
Двунаправленные
линии
ВВОДА/ВЫВОДА
РА
Дешифратор
ОЗУ
данных
(64 × 8)
плексор
ССП
Логика
переходов
АЛУ
Десятичный
корректор
Аккумулятор
РК
Дешифратор
Синхронизация
Старт
Чтение,
запись
Управление
внешней
памятью
Прерывание
Тест
Программи-
рование,
строб ВВ
Режим
внешнего
доступа
У
С
Т
Р
О
Й
С
Т
В
О
У
П
Р
А
В
Л
Е
Н
И
Я
Х1
Х2
Сброс
Шаг
ЧТ
ЗП
РВП
САВП
ЗПР
ТØ (синхр)
Т1
ПРГ/СТБВВ
РВД
Рис. 64. Структура
микроконтроллера К 1816
Регистр Т
Мульти-
Признаки
Арифметико-логическое устройство (АЛУ) включает в себя следующие устройства: комбинационная схема обработки байтов, регистр-аккумулятор А, схема десятичного корректора и схема формирования признаков, которые используются логической схемой управления программой.
АЛУ может выполнять следующие операции: сложение байта с переносом или без него; логические операции И, ИЛИ, ИСКЛЮЧАЮЩИЕ ИЛИ, НЕ; инкремент и декремент байта; циклический и арифметический сдвиги байта вправо или влево; обмен тетрад в байте; десятичную коррекцию содержимого аккумулятора. Аккумулятор используется в качестве регистра операнда и регистра результата. При выполнении операций обработки данных в АЛУ формируются признаки, часть которых не фиксируется в регистре слова состояния процессора ССП, а формируются комбинационной схемой (признак нуля 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 младших разрядов счетчика, а его старший разряд устанавливается программой при выборе блока памяти.
ENТ0
CLC
Т0
Х1
6 МГц
0,5 мкс (2 МГц)
Кварцевый
резонатор
Счетчик по
модулю 3
Х2
СС
Счетчик циклов
(модуль 3)
2,5 мкс (400 кГц)
а
САВП
Машинный цикл
(2,5 мкс)
-
S5
S1
S2
S3
S4
S5
S1
Выборка
команды
Дешиф-
рация
ВЫПОЛНЕНИЕ
Выборка
команды
Выдача адреса
Инкремент СК
ВЫДАЧА АДРЕСА
S1
S2
S3
S4
S5
S1
S2
СС
САВП
Р
ВГ
ЧТ, ЗП
ПРОГ/СТБВВ
б)
Рис. 65. Схема синхронизации МК: а – временные диаграммы машинного
цикла и б – цикла команды.
Логика условных переходов МК позволяет прикладной программе проверять не только внутренние признаки, но и условия, внешние по отношению к МК. По командам условного перехода в случае удовлетворения проверяемого условия в счетчик команд (разряды 0...7) загружается адрес перехода внутри страницы памяти из второго байта команды. Логика переходов оперирует с набором событий, представленном в таблице 17.
Таблица 17
Устройство |
Условие перехода |
|
Аккумулятор |
Все нули |
Не все нули |
Выбранный бит аккумулятора |
- |
1 |
Признак переноса С |
0 |
1 |
Признаки пользователя F0, F1 |
- |
1 |
Признак переполнения таймера/счетчика FT |
- |
1 |
Тестовые входа Т0, Т1 |
0 |
1 |
Вход
запроса прерывания
|
0 |
-
|
При безусловном межстраничном переходе в старшие разряды счетчика команд загружается номер страницы, который задается в старшей тетраде первого байта команды.
Прерывание должно быть предварительно разрешено программой по команде 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В возможно выполнить чтение внутренней памяти программ извне, что важно на этапе программирования внутренней памяти для проверки правильности записи программы.
Программирование и проверка СППЗУ состоит из ряда последовательных действий требует использования программатора, генерирующего специальные сигналы, а также представляющего средства входа в МК адресов данных, обеспечивающего средства контроля введенной информации.