Бродин В. Б., Шагурин И. И. Микроконтроллеры (1999) (1095894), страница 33
Текст из файла (страница 33)
2.3. Память программ может быть целиком внешней (сигнал ЕА - О), либо при обращении по младшим 4К адресов 'код извлекается из ячеек внутренней памяти микроконтроллера, а содержимое старших 60К берется из внешней памяти системы (сигнал ЕА - 1). Микроконтроллеры 8751Н имеют бит секретности, предназначенный для защиты внутренней памяти программ от доступа извне. Значение этого бита программируется один раз, очищен ои может быть только при полном стирании всей внутренней памяти программ. При установленном бите секретности запрещается не только чтение внутренней памяти извне, ио и ее допрограммировапие, а также РРРР: ОРГГ: во: ТР.
0000; Память программ Внугренняя память данных Внешняя память данных Рис. 2.3. Организация памяти микроконтроллеров типа 8061 159 МСЗ-61 ! 21 Т 2 МИКРОКОНТРОЛЛЕРЫ СЕМ обращение к внешней памяти программ. Механизм программирования и верификации внутренней памяти программ здесь рассматриваться не будет, поскольку в продаже имеются программаторы различных типов и стоимости. Это позволяет разработчику сосредоточиться на решении основной задачи.
Универсальный профессиональный программатор ККОМ описан в гл. 4. Память данных делится на внешнюю и внутреннюю, каждая из них имеет свое пространство адресов. В архитектуре МСЗ-51 пространство адресов внутренней памяти данных объединяет все внутренние программно доступные ресурсы. Это пространство размером 256 байт в свою очередь делится на Десятичный адрес 127 Шестнадцатеричный адрес 7Е1 7В 7А 78 7Е 7Е 70 7С 77 76 75 73 72 71 70 6Е 6Е 60 6С 6В 6А 67 66 65 5Г 5Е 50 57 56 55 63 62 5В 5А 53 52 5С 58 50 40 4В 4А 4С 46 45 43 42 ЗВ ЗА 41 40 ЗГ ЗЕ 30 ЗС 37 36 35 33 32 31 30 2Г 2Е 20 2С 2В 2А 28 27 26 25 1Г 1Е 10 23 22 1В 1А 21 20 24 18 16 15 13 12 17 10 ОВ ОА ОГ ОЕ 00 ОС 08 09 07 06 05 03 02 04 01 00 БАНК 3 !8: 17: 24 23 БАНК 2 10: ОЕ: 16 15 БАНК 1 КО 08; 07: БАНК 0 00: 2Е1 гЕ; 20: 2С: 2В: 2А: 29: 28: 27: 26: 25: 24: 23; 22: 21: 20: 1Е: Рис.
2.4. Структура внутреннего ОЗУ данных 47 46 45 44 43 42 41 40 39 38 37 36 35 34 ЗЗ 32 31 МИКРОКОНТРОЛЛЕРЫ АРХИТЕКТУРА ПРОГРАММИРОЕАНИ ИНТЕРФЕЙС 16() пространство адресов внутреннего О 3 У (размером 128 байт) и пространство адресов регистров специальных функций. Область внутреннего ОЗУ изобра- жена на рис. 2А, ячейки области занимают младшие адреса внутренней памяти данных с ООН по 7РН. В этой области памяти выделяются два фрагмента: е младшие 32 адреса занимают четыре регистровых банка, каждый из кото- рых содержит по восемь регистров общего назначения КО..К7.
Текущий банк определяется значением битов КЗО, К31 регистра РЗ'ХК Таким образом, млад- шие 32 ячейки ОЗУ, кроме адресов, имеют имена; е ячейки с адресами в диапазоне 32 А8 имеют прямо адресуемые биты, ад- реса битов этой части ОЗУ находятся в диапазоне ООН..7ГН. На рис. 2.5 изображена область регистров специальных функций.
В нее вклю- чены все программно доступные регистры (управления и данных) внутренних Состояние после сброса чный адрес адцатеричный Имя регистра Десяти Шеста адрес огг: ОРО: оон оон ОЕО оон РТ2 РБ РТ! РХ1 РТО РХО В0 ВС ВВ ВА В9 ВВ ХХООООООВ О В В. РРН ово: ЕТ2 ЕБ ЕТ! ЕХ1 ЕТО ЕХО А0 АС АВ АА А9 АВ ЕА АР 168 1Е ОхООООООВ ОАВ: !60 Р2 РГН ОАО: 153 Бвцу ххххххххВ БМО БМ1 БМ2 КЕН ТВВ КВВ 9Г 9Е 90 9С 9В 9А Т1 й! 99 98 ООН ! 52 БСО1Ч 144 Р! 98: 90: 80: ВС: ВВ: ВА: 89: ГЕН ООН ООН ООН ООН ООН 141 ТН1 140 ТНО 139 Т!.1 !Зв т!.О 137 ТМ00 ТШ Тй1 ТРО ТКО 1Е1 ВГ ВЕ 80 ВС ВВ 1Т! 1ЕО 1ТО ВА 89 88 ! 36 ТСО1Ч 135 РСОН 131 0РН 130 0Р1. 129 БР 128 РО ООН ОоххООООВ 88: 87: 83 х2' х!.
хо: ООН ООН 07Н РРН 97 Рб Г5 Г4 РЗ 82 Р! РО Е7 Еб Е5 Е4 ЕЗ Е2 Е1 ЕО СУ АС РО КБ1 КБО От' Р 07 06 05 04 03 02 00 В7 Вб В5 В4 ВЗ В2 В1 ВО А7 Аб А5 А4 АЗ А2 А1 АО 97 96 95 94 93 92 9! 90 87 86 85 84 83 82 8! 80 Рис. 2.5. Регистры специальных функций 24О В 224 АСС 208 РБЕЕ 184 1Р 176 РЗ 161 МСВ-6! 151 ГЛАВА . микРскоитгслле сем блоков ввода-вывода.
Эта область формально занимает старшие 128 байт внутренней памяти ланных, но обращение должно осуществляться по определенным адресам ячеек или отдельных битов. Обращение по промежуточным адресам приведет к ошибочному результату. Все регистры имеют как символические имена, так и адреса в качестве ячеек внутренней памяти. Часть регистров содержит прямо адресуемые биты. Адреса битов находятся в диапазоне 8ОН..Р7Н. Назначение регистров специальных функций следующее: Ина регистра Назначение АСС Аккумулятор, основной операционный регистр В Дополнительный регистр для операций умножения и деления; в других командах может рассматриваться как обычный РОН РЯ ет' Регистр, хранящий слово состояния процессора 1Р Регистр приоритетов прерываний РЗ Регистр порта РЗ 1Е Регистр разрешения прерываний Р2 Регистр порта Р2 ЯВОР Регистр данных последовательного порта ЯСОМ Регистр управления последовательного порта Р1 Регистр порта Р1 ТН1 Старший регистр таймера-счетчика 1 ТНО Старший регистр таймера-счетчика 0 Т1.1 Младший регистр таймера-счетчика 1 ТЬО Младший регистр таймера-счетчика 0 ТМОР Регистр режима таймеров-счетчиков ТСОМ Регистр управления таймеров-счетчиков РСОМ Регистр управления энергопотреблением ЯР Регистр указателя стека РРН, ОРЬ Указатель данных РРТВ состоит из регистра старшего байта ВРН и регистра младшего байта ОРЬ, содержит 16-разрядный адрес для обращения к внешней памяти данных РО Регистр порта РО Формат всех регистров специальных функций будет рассмотрен в разделах, посвященных описанию системы прерываний и функций отдельных блоков ввода-вывода.
Здесь приведен формат регистра РЯ%; хранящего слово состояния процессора. Этот регистр вместе с аккумулятором содержит результат выполнения команд. миклоконтколлкиы: кккитккттлл ллотккммииовлни инталеетс 162 РБУК СУ АС РО К51 К50 ОУ Р Номер Функция бита Имя флага ст РЯ'тК7 Флаг переноса АС РЗтК6 Флаг вспомогательного переноса (между тетрадами) РБЪК5 Флаг О, возможно программирование пользователем в общих целях РО К$1 Р5%А Первый бит селектора регистрового банка КЯО РЗЪКЗ Нулевой бит селектора регистрового банка ОУ РБЖ2 Флаг переполнения РЯ'тК1 Флаг, определяемый пользователем РЯ'тКО Флаг четности.
Устанавливается/очищается аппаратно каждый цикл инструкции и показывает нечетное/четное число '1' в аккумуляторе 2.4. Синхронизация, магистральные циклы Синхронизация микроконтроллеров 8051 осуществляется с использованием внутреннего инвертирующего усилителя, который может быть превращен в синхрогенератор посредством подключения к выводам ХТА1.1 и ХТА1.2 внешнего кварцевого резонатора. Вывод ХТА).1 является входом, а вывод ХТАЕ2 выходом внутреннего усилителя.
Для синхронизации может быть использован и внешний синхрогенератор. Схемы подключения внешнего резонатора и синхрогенератора приведены на рис. 2.6. Машинный цикл служит в основном для целей внутреннего микропрограммного управления. При описании последовательности сигналов или событий фазам в машинном цикле присваивают номера с 81Р1 по 56Р2. Цикл выполнения каждой команды состоит из одного, двух или четырех машинных циклов. Внутри микроконтроллера частота внешнего синхросигнала делится на 2. Период внутреннего синхросигнала определяет длительность интервала времени, который фирма 1пте! называет состоянием 51 («зса1еэ), а мы будем называть втаклтом. Этот интервал состоит из двух фаз Р1 и Р2. Более крупной единицей времени является машинный цикл, включающий шесть тактов 81..56. По длительности он равен 12 периодам внешнего синхросигнала.
глана с микиоконт алены с ий иа м -сз з з 16З Кеерн илн керамический резонатор Внеизннй синкрсснгн Внешний сннкрсснги б) в) Рис. 2.6. Подключение времязадающих цепей: использование внутреннего генератора (а); использование внешнего генератора для НМОЗ версии (б); использование внешнего генераторе для СНМОЗ версии (в) Протоколы обмена микроконтроллеров семейства МСБ-51 по магистрали реализованы в виде комбинаций следующих трех типов магистральных циклов (рис.
2.7): е ввод кода команды из внешней памяти программ без обращения к внешней памяти данных; Э чтение из внешней памяти данных; Е запись во внешнюю память данных. Первый тип магистрального цикла (рис. 2.7а) является основным, имеет длительность Б тактов (12 периодов ХТА1.). Ои характеризуется выработкой двух импульсов сигнала АЕЕ, который служит для промежуточной фиксации младшего байта адреса при обращении к внешней памяти (из порта РО в регистр-защелку). В этом типе магистрального цикла сигнал А).Е стробирует адрес памяти программ, источником которого является счетчик 164 МИКРОКОНТРОАЛЕРМ АРХИТЕКТУРА ПРОГРАММИРОЕАНИ ИНТЕРФЕЙС команд (регистры РСН и РСЕ).
Сигнал РБЕХ№ является сигналом чтения кода из внешней памяти программ. В этом типе магистрального цикла он также вырабатывается дважды. Оба сигнала становятся активными первый раз на фазе Б1Р2, а второй раз на фазе Б4Р2. Во время второй выборки производится чтение следующего байта кода. Если этот байт в данной команде не нужен, он игнорируется, а счетчик команд не инкрементируется.
Этот тип магистрального цикла является основным, поскольку отсутствие обращения к внешней памяти данных позволяет реализовать с его помощью самые короткие команды (рис. 2.8а,б) длительностью в один машинный цикл (6 тактов, 12 периодов Ровс). Поскольку сигнал АЕЕ вырабатывается постоянно, с частотой Ровс/6, он может быть использован для целей внешней синхронизации. Второй тип магистрального цикла (рис.2.76) имеет длительность 12 тактов и характеризуется тем, что второй сигнал АЕЕ на фазе Б1Р2 второго машинного цикла не вырабатывается. Сигнал РБЕХ№ остается пассивным с фазы Б4Р2 первого машинного цикла до фазы Б6Р1 следующего цикла, запрещая чтение байта кода. Второй импульс сигнала АЕЕ стробирует фиксацию адреса памяти данных, источником которого в микроконтроллере является регистр РРТК (РРН и РРЕ) или регистр К1 (при косвенной адресации).
Во втором случае содержимое регистра выдается через порт РО, а старшие восемь разрядов определяются значением в регистре порта РО. Далее, начиная с фазы Б1Р1 первого цикла до фазы Б4Р1 второго цикла, становится активным сигнал КР№. Ои стробирует ввод данных через порт РО. Последующие импульсы сигналов А|Е и РБЕХ№ вводят код следующего байта команды. Третий тип магистрального цикла (рис. 2.7в) имеет длительность 12 тактов и в основном аналогичен второму типу.