Explanatory_note_(ДП_23.05.03.16.152_ПЗ) (1228617), страница 2
Текст из файла (страница 2)
Рисунок 2.1 – Сравнение гарвардской и традиционной архитектуры
К приемуществам гарвардской архитектуры относятся:
- длинное слово команды: разрядность команд микроконтроллера несколько больше чем 8-ми разрядная шина памяти данных. Это стало возможным из-за раздельных шин доступа к памяти программ и к памяти данных. Разделение шин доступа к разным видам памяти позволяет произвольно выбирать разрядность команд микроконтроллера (не кратное 8-ми разрядной шине данных), что в свою очередь дает возможность эффективно использовать память программ и оптимизировать разрядность шины программ к архитектурным требованиям микроконтроллера;
- команда состоит из единственного слова: все команды микроконтроллеров однословные 14-ти разрядные. Четырнадцатиразрядная шина доступа к памяти программ позволяет выполнить выборку 14-ти разрядной команды за один машинный цикл микроконтроллера. При использовании однословных команд число слов в памяти программ равняется максимальному числу команд программы микроконтроллера. Это означает, что все ячейки памяти имеют силу команды. Как правило в традиционной архитектуре большинство команд многобайтные. Микроконтроллер, имеющий четыре килобайта памяти, содержит примерно две тысячи команд. Коэффициент использования памяти примерно равен двум к одному и зависит от конкретного приложения. Поскольку каждая команда может состоять из нескольких байт, то нет никакой гарантии, что каждая ячейка памяти программ имеет силу команды;
- конвейерная обработка команд: конвейерная обработка команд состоит из двух стадий: выборка команды из памяти, выполнение команды. Выборка команды происходит в первый машинный цикл (TCY, тактовую частоту устройства разделенную на число, для PIC контроллеров число равно четырем), а выполнятся команда во втором машинном цикле TCY. Однако, из-за одновременной выборки текущей команды и выполнения предыдущей в каждом машинном цикле TCY происходит выборка и выполнение команд;
- команды выполняются за один машинный цикл: полная выборка команды происходит за один машинный цикл (TCY) из-за того, что шина доступа к памяти программ 14-ти разрядная. Каждая команда содержит всю необходимую информацию и выполняется за один машинныйцикл. При выполнении команды может возникать задержка в один машинный цикл, если результат команды изменяет содержимое счетчика команд PC. Задержка в один машинный цикл необходима для выборки новой команды, которая должна быть выполнена;
- небольшое число команд: когда система команд хорошо проработана и команды ортогональны (симметричны), то требуется меньшее число команд для решения всех необходимых задач. С меньшим числом команд изучение микроконтроллера значительно упрощается;
- Файловая структура данных: обращение к регистрам памяти данных можно выполнить прямой или косвенной адресацией. Все регистры специального назначения, включая счетчик команд, отображается в памяти данных;
- Все команды ортогональны (симметричны): ортогональная система команд дает возможность выполнить любую операцию с любым регистром памяти данных прямой или косвенной адресацией. В ортогональной системе команд малое количество "специальных команд", что упрощает изучение и программирование микроконтроллеров не теряя эффективности кода программы.
В микроконтроллерах среднего семейства используется только две не ортогональные команды, реализующие особенности ядра.
Команда SLEEP – переводит микроконтроллер в режим пониженного энергопотребления.
Команда CLRWDT – подтверждает нормальную работу микроконтроллера, предотвращая сброс по переполнению сторожевого таймера WDT [5].
2.1.2 Порты ввода/вывода
Универсальные порты ввода/вывода могут рассматриваться как самые простые периферийные модули. Они позволяют микроконтроллерам PIC контролировать работу и управлять другими устройствами. С целью расширения функциональных возможностей некоторые каналы портов ввода/вывода мультиплицированы с другими периферийными модулями. Набор дополнительных функций каналов портов ввода/вывода зависит от реализованных периферийных модулей в микроконтроллере. Как правило, при включенном периферийном модуле, соответствующий вывод микроконтроллера не может использоваться как универсальный канал ввода/вывода.
Для большинства каналов портов ввода/вывода регистры TRISx управляют направлением данных на выводе. Бит TRIS«x» управляет направлением данных на канале PORT«x». Если бит TRIS, соосветствующий определенному порту ввода/выда, установлен в высокий логический уровень то соответствующий канал порта ввода/вывода работает как вход, а если бит TRIS сброшен в нулевой логический уровень, то канал ввода/вывода работает как выход.
Простой способ запомнить направление канала ввода/вывода и состояние битов регистров TRIS:
- «1» – напоминает «In» (ввод);
- «0» – напоминает «Out» (выход).
Биты регистра PORT представляют собой D-триггеры, управляющие портом ввода/вывода. При чтении регистра PORT возвращается состояние выводов порта. Это означает, что необходима некоторая осторожность при выполнении команд со структурой «чтение – модификация – запись» для изменения логического уровня на выходах порта.
На рисунке 2.2 показана типовая структурная схема одного канала порта ввода/вывода. На этом рисунке не показана ситуация подключения дополнительного периферийного модуля к каналу порта. Чтение регистра PORT возвращает состояние на выводах порта, а запись выполняется в выходную защелку. Обратите внимание на операции «чтение – модификация – запись». Например, BSF (установка бита) или BCF (обнуление бита). Сначала происходит чтение состояния выводов порта, изменение полученного значения, а затем выполняется запись в выходную защелку порта.
Следует отметить что в целях повышения защищенности микроконтроллера все порты ввода/вывода имеют защитные диоды, подключенные к VDD (плюс шины питания) и VSS (минус шины питания), которые не позволяют повредить контроллер при случайной подаче повышенного напряжения.
Когда периферийный модуль подключен к выводу порта, функциональные возможности канала порта ввода/вывода могут измениться, в соответствии с требованиями периферийного модуля. Например, модуль АЦП (Аналого-Цифровой Преобразователь) или LCD (Liquid Crystal Display, Жидкокристаллический дисплей), которые настраивают на соответствующие каналы портов ввода/вывода для работы с периферийным модулем при сбросе микроконтроллера.
Рисунок. 2.2 – Типовая структурная схема одного канала порта ввода/вывода
В случае с АЦП это может предотвратить повышенное энергопотребление при подаче аналоговых уровней на входы микроконтроллера после сброса. При включении некоторых периферийных модулей отменяется действие битов TRIS. Поэтому следует избегать команд «чтение – модификация – запись» с регистрами TRIS (например BSF, BCF, XORWF (исключающее ИЛИ) и т.д.). Для правильной настройки битов TRIS необходимо обратиться к описанию соответствующего периферийного модуля. Некоторые выводы портов могут быть переключены на аналоговые входы внутреннего блока АЦП или на входы источника опорного напряжения VREF. Для каждого вывода необходимо определить режим его работы (аналоговый вход или цифровой канал ввода/вывода) настройкой управляющих битов в регистре ADCON1 (регистр управления АЦП). Когда вывод работает как аналоговый вход, то чтение состояния этого вывода будет давать результат «лог. 0». Регистры TRIS управляет направлением каналов ввода/вывода, даже когда он работает в режиме аналогового входа. Пользователь должен гарантировать, что соответствующий бит TRIS установлен в «лог. 1», если вывод используется как аналоговый вход.
3 ОБЗОР ВНУТРЕННЕЙ СТРУКТУРЫ КОНТРОЛЛЕРА PIC18F452
Микроконтроллер PIC18F452 входит в серию PIC18Fxx2. В данную серию МК также входят:
-
PIC18F242;
-
PIC18F252;
-
PIC18F442.
Все они являются однокристальными 8-ми разрядными FLASH CMOS микроконтроллером с 10-ти разрядным АЦП, производящимся компанией Microchip Technology Incorporated. Выпускаются в 28-ми выводных и 40/44-выводных корпусах. Двадцати восьми выводные микроконтроллеры не имеют модуля ведомого параллельного порта (PSP), а число реализованных в них входных каналов АЦП равно пяти.
Рассмотрим микроконтроллер PIC18F452 детельнее. Это высокоскоростной RISC микроконтроллер, в основные оссобенности которого входят:
-
оптимизированная архитектура и система команд для написания программ на языке «Cи»;
-
система команд совместима с командами семейств PIC16C, PIC17C и PIC18C;
-
линейное адресное пространство памяти программ 32 килобайта;
-
линейное адресное пространство памяти данных 1.5 килобайт;
-
быстродействие до 10 MIPS;
-
тактовая частота от внутреннего тактового генератора до 4 МГц;
-
тактовая частота в режиме PLL (делитель частоты) от 4 МГц до 10 МГц;
-
шестнадцати разрядные команды, восьми разрядные данные;
-
система приоритетов прерываний;
-
аппаратное умножение 8×8=16 за один машинный цикл (получение 16-ти разрядных чисел из 8-ми разрядных).
Характеристики периферийных модулей:
-
высокая нагрузочная способность портов ввода/вывода;
-
три входа внешних прерываний;
-
таймер (счетчик) TMR0: 8-ми (16-ти) разрядный, с программируемым 8-ми разрядным предделителем;
-
второй 16-ти разрядный таймер/счетчик TMR1;
-
третий 8-ми разрядный таймер/счетчик TMR2 с 8-разрядным регистром периода (основной для ШИМ);
-
четвертый 16-ти разрядный таймер/счетчик TMR3;
-
вторичный генератор тактового сигнала на основе TMR1/TMR3;
-
два модуля CCP(модуль захвата/сравнения сигналов). Выводы модуля CCP могут работать как:
-
16-разрядный захват, максимальная разрешающая способность 6,25 нс (TCY/16);
-
16-разрядное сравнение, максимальная разрешающая способность 100 нс (TCY);
-
ШИМ, разрядность от 1 до 10 бит, Максимальная частота ШИМ сигнала 156 кГц при 8 бит, 39 кГц при 10 бит.
-
модуль ведущего последовательного синхронного порта (MSSP);
-
3-х проводной интерфейс SPI;
-
I2C (ведущий и ведомый режим);
-
адресуемый модуль USART, поддержка интерфейса RS-485 и RS-232;
-
модуль PSP, ведомый параллельный порт.
Аналоговые периферийные модули:
-
модуль 10-ти разрядного АЦП;
-
высокая скорость преобразования;
-
работа модуля АЦП в SLEEP режиме микроконтроллера;
-
дифференциальная нелинейность (DNL) = 2Lsb (Least significant bit, наименьшее значение напряжения, которое может быть измерено АЦП), Интегральная нелинейность (INL) = 2Lsb;
-
программируемый детектор пониженного напряжения (PLVD);
-
при обнаружении снижения напряжения возможна генерация прерываний;
-
программируемый сброс по снижению напряжения питания.
Особенности микроконтроллера:
-
100000 гарантированных циклов стирание/запись памяти программ;
-
1000000 гарантированных циклов стирание/запись EEPROM памяти данных;
-
возможность самопрограммирования;
-
сброс по включению питания (POR), таймер включения питания (PWRT), таймер запуска генератора (OST);
-
сторожевой таймер WDT c отдельным RC генератором;
-
программируемая защита кода программы;
-
режим пониженного энергопотребления и режим SLEEP;
-
выбор режима работы тактового генератора, включая:
-
4×PLL (от основного генератора);
-
вторичный генератор (32кГц).
-
внутрисхемное программирование по двухпроводной линии (ICSP) с одним напряжением питания 5В;
-
внутрисхемная отладка по двухпроводной линии (ICD), основанная КМОП технологии;
-
высокоскоростная энергосберегающая КМОП технология;
-
полностью статическая архитектура;
-
широкий диапазон напряжений питания от 2,0 В до 5,5 В;
-
промышленный и расширенный температурные диапазоны.
На рисунках 3.1 и 3.2 показана структурная схема 40-ка выводного микроконтроллеров и его цоколевка (распиновка), а в таблице 3.1 представлено назначение выводов 40-ка выводных микроконтроллеров.
Рисунок. 3.1. Структурная схема микроконтроллера PIC18F452















