Бродин В. Б., Шагурин И. И. Микроконтроллеры (1999) (1095894), страница 23
Текст из файла (страница 23)
Временные диаграммы циклов запиои-очитывания при рааличных режимах Синхронизации Таким образом, разрядность данных при обмене с внешней памятью либо задается содержимым байтов конфигурации ССВ О, С СВ1 при начальной установке микроконтроллера, либо может динамически меняться в процессе его работы с помощью сигнала ВТзК При использовании 8-разрядной шины для пересылки 16-разрядного слова выполняются последовательно два цикла обращения к внешней памяти: первый для передачи младшего байта, второй— старшего. 112 МИКРОКОНТРОЛЛЕРЫ; АРКИТЕКГУРА ПРОГРАММИРОВАНИЕ ИНТЕРФЕЙС Особенностью данного микроконтроллера является также возможность реализации нескольких режимов синхронизации сигналов при обращении к внешней памяти. Реализуются четыре режима синхронизации 0..3, номер выбранного режима задается значением числа, указанного в поле МЯЕЕ байта конфигурации ССВ1.
Временные диаграммы циклов записи-считывания для различных режимов синхронизации приведены на рис. 1.46. Типовым является режим 3, где в каждом цикле для передачи адреса и данных требуется по одному такту синхросигналов (СС) длительностью Тс. В режиме 0 вводится дополнительно один такт ожидания, благодаря чему время передачи данных вдвое увеличено.
В режиме 1 формирование адресного строба АЕЕ и сигналов чтения или записи производится, соответственно, на О, 25 Тс и О, 5 Тс раньше. В режиме 2 на О, 25 Тс раньше выдается адрес выбираемой ячейки. Дополнительное увеличение длительности передачи данных достигается с помощью сигнала готовности ГЕЕАГтт'.
Таким образом, выбрав соответствующий режим синхронизации, можно обеспечить различные времена передачи адреса и данных. Это позволяет использовать внешнтото память, реализованную на разных типах микросхем, которые отличаются различным соотношением времени приема адреса и времени выборки информации. Данный микроконтроллер позволяет другому устройству произвести обращение к внешней памяти, выполнив захват шины, как это описано в разделе 1.6 для моделей 8ХС196ХР ЬП3.
Захват шины разрешается, если в регистре 'т(ГЗК установлено значение бита НЕПЕХ - 1. При этом выводы порта Р2, запрограммированные на выполнение специальных функций, служат для обмена управляющими сигналами НОЕВ № (вывод Р2.5), НОЕПА№ (вывод Р2.6), ВКЕЯ№ (вывод Р2.3). Кроме того, в данной модели дополнительно используется вывод Р2.5 порта Р2, на который выдается выходной сигнал 1ХТО11Т№ - О, если при захвате шины другим устройством микроконтроллеру потребовалось обращение к внешней памяти для обслуживания поступившего запроса на прерывание. 1.8.10.
Программирование и защита внутренней памяти Микроконтроллер 8ХС196ХТ содержит на кристалле 32 Кбайта однократно программируемого ПЗУ, ячейки которого располагаются в адресном пространстве ОР2000Н..ОР9РГРН. В исходном состоянии (до программирования) все ячейки содержат число ОРРН («1» во всех разрядах). При записи в ячейку определенные разряды будут изменять значение «1» на «0». Если записать в ячейку число ОГРН, то все разряды сохраняют исходное значение, поэтому содержимое этой ячейки можно изменить при последующем программировании.
Содержимое данного ПЗУ может программироваться пользователем, а также выводиться во внешнюю память с целью его верификации. Для этого предусмотрены специальные режимы работы микроконтроллера: микооконтголлв ы семзястм мсз.зз 11З + режим автопрограммирования, при котором микроконтроллер сам осуществляет программирование своего ПЗУ, перенося в него содержимое внешней памяти; Ф программирование с помощью специального программатора, выполняющего запись содержимого ПЗУ; Ф программирование через универсальный последовательный порт; + оперативное программирование в процессе выполнения рабочей программы пользователя; + контрольное чтение содержимого ПЗУ для его последующей верификации.
Программирование осуществляется путем записи в адресуемую ячейку П 3 У байта входных данных. Для записи каждого байта выполняется пять циклов программирования длительностью по 100 мкс. После пятого цикла производится проверка правильности программирования путем считывания записанного в ячейку байта н его сравнения с входными данными. При использовании программатора и автопрограммировании такая проверка выполняется автоматически, для осталыпях режимов программирования проверка может осуществляться с помощью дополнительных программных средств. Во всех этих режимах микроконтроллер функционирует под управлением специальных программ-мониторов, которые реализуют перечисленные процедуры.
Эти программы хранятся во внутреннем тест-ПЗУ, которое используется только прн программировании и недоступно для записи-считывания. Выбор режима (кроме оперативного программирования) осуществляется путем подачи 4-разрядного кода РМООЕ на выводы Р0.7.А порта РО; РМОПЕ - 0000 — программирование через последовательный порт; РМОПЕ - 0101 — программирование с помощью программатора; РМОРЕ - 0110 — контрольное чтение содержимого ПЗУ; РМООЕ = 1100 — автопрограммирование.
Требуется также подключение напряжения программирования Чпр - 12,5 В. Для реализации указанных процедур необходимо выполнить предварительно следующую последовательность действий. 1. Подать сигнал ВЕЗЕТ№ = 0 и подключить к микроконтроллеру напряжение питания Чп. Выводы Чпр и ЕА№ при этом должны быть отключены. 2. После того, как установится потенциал Чп и работа ГСС стабилизируется, подключить напряжение Чпр к выводу ЕА№. 3. После того, как установится потенциал на выводе ЕА№, подать напряжение программирования па вывод Чпр. 4. Подать на выводы Р0.7.А порта РО соответствующий код РМОВЕ. 114 МИКРОКОНТРОЛЛЕРЫ. АРХИТЕКТУРА.
ЛРОГРАММИРОЕАНИЕ ИНТЕРФЕЙС 5. После этих действий установить значение сигнала КЕЗЕТ№ 1 и перейти к осуществлению программирования, процедура выполнения которого для разных режимов описана ниже. Когда программирование будет закончено, необходимо снова подать сигнал ВЕЗЕТ№ - 0 и произвести отключение напряжения программирования сначала от вывода Чпр, затем от вывода ЕА№, которые должны оставаться неподклточенными до последутощей установки начального состояния микроконтроллера.
Нарушение указанного порядка включения и отклточения напряжений питания н программирования может привести к выходу микроконтроллера из строя. Как при выполнении программирования, так и при последующем функционировании микроконтроллера можно защитить ПЗУ от несанкционированного обращения, установив необходимые значения битов защиты 1.0С1, 0 в байте конфигурации ССВО (см. п. 1.7.3). В режиме программирования используется байт конфигурации РССВ, который хранится во внутреннем тест- ПЗУ и может иметь значения старших битов РССВ7, 6, отличные от битов ССВ0.7, 6 - 1.ОС1, 0 в байте ССВО, который заносится в ячейку внутреннего ПЗУ с адресом ОР2018Н. Байт РССВ записывается в тест-ПЗУ микроконтроллера с помощью программатора.
В начальном состоянии (до программирования) биты РССВ7, 6 имеют единичные значения, разрешающие все режимы программирования и контрольное считывание без защиты. Нулевые значения этих битов защиты запрещают те или иные режимы программирования, либо разрешают их только при вводе в микроконтроллер кода, совпадатощего с кодом защиты. При различных значениях битов РССВ6, 7, ССВ0.6, 7 реализуются разные варианты защиты внутреннего ПЗУ от записи (программирования) и считывания, которые перечислены в табл.
1.34. Проверка допустимости записи или считывания осуществляется путем сравнения 16-байтного кода защиты, предварительно записанного в ячейки внутреннего ПЗУ с адресами ОР2020Н,.ОР202ГН, с 16-байтным ключевым кодом, который вводится в микроконтроллер по этим адресам в начале программирования. При совпадении кодов разрешается последующая запись в остальные ячейки ПЗУ (программирование) или считывание их содержимого для верификации. При несовпадении кодов микроконтроллер входит в бесконечный цикл, выход из которого осуществляется сбросом в начальное состояние (ВЕЗЕТ). Такая защита предусмотрена для режимов автопрограммирования, програмирования с помощью программатора и контрольного чтения ПЗУ.
При программировании через последовательный порт и оперативном программировании проверка кодов защиты не производится. Поэтому при нулевых значениях битов защиты программирование ПЗУ данными способами не допускается. МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСВ-ВЕ 115 Табл. 1.34. Варианты защиты внутреннего ПЗУ ССВ0,6 РССВ.6 Варианты защиты при записи Ото тствие защиты. Запись в ПЗУ дон скается всегда. Аатопрограммнроваиие и программирование с помощью программатора допускаются при совпадении кодов защиты.
Остальные режимы программирования и контрольное чтение ПЗУ не доп скаются. Режимы программирования и контрольное чтение ПЗУ не доп скаются, к мерле ативного п о амму ванна. Никакие режимы программирования и контрольное чтение ПЗУнедоп скаются. РССВ.7 ССВ0.7 Варианты защиты при чтении Ото тствие защиты. Чтение ПЗУ доп скается всегда.