Лекция № 2 (1085691)
Текст из файла
ЛЕКЦИЯ № 2.
Характеристика основных функциональных узлов процессорного ядра микроконтроллеров среднего уровня.
Память программ (ПП).
1) Способ занесения записи по последовательному каналу с помощью двух линий по I2С, где имеется 2 счётчика: один считает синхросигнал, другой считает ячейки памяти. Этот способ называется ICSP - можно программировать непосредственно на плате, для этого на плате должен быть разъем для программирования.
2) Разрядность равна 14.
3) Объём памяти программ: 512 X 14 разрядов;
1024 X 14 разрядов; Для микроконтроллеров нижнего
2048 X 14 разрядов; уровня.
4096 X 14 разрядов;
8192 X 14 разрядов.
Для микроконтроллеров высокого уровня 1 М слов X 16 разрядов.
Это внутренняя память
У микроконтроллеров нижнего и среднего уровня память программ не может быть расширена за счёт подключения внешних микросхем памяти.
| Для микроконтроллеров, имеющих более 512 слов памяти программ используется страничная адресация памяти (один управляющий бит в регистре STATUS). | |
Счетчик команд.
Счетчик команд и регистр PCLATCH (защёлка) имеют разрядность 13 бит. Младший байт счетчика (PCL) доступен для чтения и записи и находится в регистре 02h. Старшие разряды счетчика команд не могут быть напрямую записаны или считаны и берутся из регистра PCLATH (PC latch high), адрес которого 0Ah. Содержимое PCLATH передается в старшие разряды счетчика команд, когда он загружается новым значением.
Старшие биты счетчика команд загружаются из PCLATH разными способами:
-
Если в счетчик команд загружается новое значение во время выполнения команд CALL, GOTO, то в два старших разряда счетчика команд <12:11> загружается содержимое двух разрядов <4: 3> регистра PCLATH.
-
Если в младший байт счетчика команд (PCL) производится запись, то в пять старших
разрядов счетчика команд <12:8> загружается содержимое пяти разрядов <4: 0> регистра PCLATH.
При выполнении команды CALL или при выполнении прерывания весь 13-битный счетчик команд помещается в стек. При выполнении процедуры возврата из подпрограммы (команды RETLW, RETFIE или RETURN) содержимое счетчика команд восстанавливается из стека. Регистр PCLATCH при операциях со стеком не изменяется.
Третий и четвертый разряды регистра PCLATCH используются для обращения к страницам 1, 2 и 3 программной памяти. Так, например, если необходимо перейти с нулевой страницы на первую, то нужно записать в третий разряд регистра PCLATCH единицу. При этом переключение происходит не сразу, а по команде CALL или по команде безусловного перехода.
BCF PCLATCH, 3
GOTO PACE1_METKA
Стек.
Стек – это память, в которую загружается содержимое счетчика команд при вызове/ возврате из подпрограмм или по прерыванию. Микроконтроллеры среднего уровня имеют восьмиуровневый аппаратный стек шириной 13 бит. Область стека не принадлежит ни к программной области, ни к области данных, а указатель стека пользователю недоступен.
Стек работает как циклический буфер. Следовательно, после того как стек был загружен 8 раз, девятая загрузка перепишет значение первой. Десятая загрузка перепишет вторую и т.д. Если стек был выгружен 9 раз, счетчик команд становится таким же, как после первой выгрузки.
Запись в стек производится по команде CALL “NAME” или по запросам прерывания (если они разрешены):
(PC) → ((SP)) (SP) + 1→ (SP)
Возврат обратно происходит по команде:
-
возврата из подпрограммы:
RETURN ((SP)) → (PC)
-
возврата из подпрограммы c загрузкой константы в W:
RETLW L ((SP)) → (PC) L → (W)
-
возврата из прерывания:
RETFIE ((SP)) → (PC) 1 → GIE
(разрешение прерывания)
Организация памяти данных.
1) В связи с малой разрядностью командного слова, память данных разбита на банки. Число банков у микроконтроллеров среднего уровня может быть два или четыре, а у микроконтроллеров верхнего уровня их шестнадцать.
2) Существует два способа адресации:
-
прямая адресация;
-
косвенная адресация.
Прямая адресация.
При прямой адресации адрес ячейки памяти указывается в команде. Номер банка определяется содержимым RP1 и RP0 <6:5> регистра состояния. Память данных разделена на четыре банка. Каждый банк содержит по 128 ячеек. Номер ячейки в банке определяется семью младшими разрядами адреса. Таким образом, когда производится прямая 9-битная адресация, младшие 7 бит берутся как прямой адрес из кода операции, а два бита указателя страниц (RP1, RP0) из регистра статуса (03h).
Одним из недостатков РIC – контроллеров является необходимость указания в них: к какому банку мы обращаемся, так как в этом случае нужно иметь перед собой карту памяти, определяющую где какие регистры находятся (особенно управляющие).
Например, при переходе из 0 в 1 банк нужно установить бит в пятом разряде регистра STATUS:
BCF STATUS, 5
В последние 3-4 года появилась ещё одна директива:
BANKSEL имя регистра
Косвенная адресация.
Существует специальный регистр косвенной адресации FSR. В нём семь младших разрядов <6:0> указывают номер ячейки в банке. Номер банка определяется содержимым старшего разряда регистра STATUS <7> и старшего разряда регистра FSR <7>. Таким образом, при косвенной адресации необходимый 9 – битный адрес формируется объединением содержимого 8 – битного FSR регистра и бита IRP из регистра статуса.
Признаком косвенной адресации является обращение к регистру INDF. Любая команда, которая использует INDF (адрес 00h) в качестве регистра фактически обращается к указателю, который хранится в FSR (адрес 04h). Чтение косвенным образом самого регистра INDF даст результат 00h.
Пример: пусть мы находимся в нулевом банке и нам необходимо:
((FSR)) +1 → ((FSR))
Тогда: MOVLW .10 ; запись десятичного числа в W
MOVWF FSR ; пересылка из W в регистр FSR
INCF INDF, F ; инкремент регистра и запись в тот же регистр
Два варианта распределения памяти у четырёх – банковых
микроконтроллеров среднего уровня.
1.) На примере: PIC16F873.
Регистры общего назначения (POH) 0 и 2 банка, а также POH 1 и 3 банка имеют прямое отображение друг на друга (дублируются), то есть, несмотря на то, что у них разные адреса физически они одни и те же.
Исходя из этого, POH занимает: 96 * 2 = 192 байта.
2.) На примере: PIC16F877.
Банк 3
16 ячеек доступа (POH) 0, 1, 2 и 3 банков зеркально отображаются друг на друга, то есть к ним можно обращаться без обращения к банкам.
Исходя из этого, POH занимает: (80 * 4) + (3 * 16) = 368 байта, а
PCH занимает: 512 - 368 = 144 байта.
Система запуска (сброса).
Она должна обеспечивать:
1) задержку на время нарастания питающего напряжения до номинальной величины.
2) задержку на время разгона тактового генератора, то есть до тех пор, пока его амплитуда и частота не будет требуемой заданной величины.
3) запись в счетчик команд нулевого значения. После этого микроконтроллер должен начать работать, то есть из нулевой ячейки адреса команд микроконтроллер должен достать команду, дешифроваться и т.д.
Это происходит следующим образом:
После того, как подано напряжение питания, оно должно нарастать.
После того, как напряжение питания пересекло уровень 1,5 Вольт, таймер запуска начинает счет выдержки времени. По истечении выдержки около 72 – 96 мс считается, что напряжение достигло номинала и запускается другой таймер выдержки на стабилизацию кварцевого генератора. Программируемый бит конфигурации позволяет разрешать или запрещать выдержку от встроенного таймера запуска. Если питание батарейное выдержка от встроенного таймера запуска не нужна. Таймер на стабилизацию генератора отчитывает 1024 импульса от начавшего работу генератора. Считается, что кварцевый генератор за это время вышел на режим. При использовании RC генераторов – выдержка на стабилизацию не производится. Затем в счетчике команд устанавливается нулевое значение и начинается работа настоящего тактового генератора.
Сброс.
Сброс можно осуществить подачей на специальный вход MCLR отрицательного импульса.
Также сброс может происходить от сторожевого таймера.
Сторожевой таймер (Watch Dog).
Сторожевой таймер – это устройство, предназначенное для двух целей:
-
для выхода из порочного круга (зависания);
-
для выхода из спящего режима.
Сторожевой таймер работает от полностью автономного внутреннего RC-генератора. Это позволяет сторожевому таймеру продолжать работать в режиме SLEEP, когда внутренний тактовый генератор процессора остановлен, и периодически выводить контроллер в нормальный режим.
Если сторожевой таймер включен, то нормально работающая программа должна периодически обнулять счетчик сторожевого таймера, не допуская сброса процессора. Когда происходит сбой, сторожевой таймер перестает программно обнуляться, после его переполнения происходит сброс процессора и повторная инициализация устройства.
Номинальный период срабатывания сторожевого таймера составляет 18 миллисекунд.
Для реализации больших задержек необходим предделитель. Он может иметь такие коэффициенты деления: 1 : 1; 1 : 2; 1 : 4; ... 1 : 128.
Применяя предделитель с коэффициентом деления до 1:128 можно реализовать интервал величиной до 2,3 сек, который зависит от температуры и напряжения питания. В исключительных ситуациях, когда присутствует минимально возможное питающее напряжение и высокая температура, период срабатывания сторожевого таймера с предделителем может достигать трех и более секунд.
Команда CLRWDT обнуляет сторожевой таймер и предделитель, если он подключен к WDT. Это запускает выдержку времени сначала и предотвращает на некоторое время выработку сигнала сброс. Команда SLEEP также очищает сторожевой таймер и предделитель, если он подключен к WDT, что позволяет достичь максимального пребывания в режиме SLEEP до момента пробуждения по сбросу от WDT.
Когда происходит переполнение счетчика сторожевого таймера, он генерирует либо сигнал сброса, либо сигнал сброса для выхода из режима SLEEP. Одновременно с сигналом сброса от WDT обнуляется 4 бит «TO» в регистре STATUS.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















