
- •Основные понятия и определения микропроцессорной техники: микропроцессор, микропроцессорная система, микроконтроллер. Принципы построения микропроцессорных систем.
- •Архитектура микропроцессора: архитектура со сложной системой команд (cisc-процессоры), архитектура с упрощенной системой команд (risc-процессоры). Принстонская и гарвардская архитектуры.
- •3. Структура микропроцессорной системы и основные режимы ее работы – выполнение основной программы, обслуживание прерываний, прямой доступ к памяти.
- •4. Модуль процессора микропроцессорной системы. Состав модуля – операционный блок, блок управления, интерфейсный блок. Выполняемые функции.
- •5. Модуль памяти мпс. Выполняемые функции. Основные характеристики. Типы микросхем, применяемых для построения постоянной и оперативной памяти микропроцессорных систем.
- •6. Реализация обмена данными между внешними устройствами и микропроцессорной системой (мпс). Модуль ввода/вывода мпс, выполняемые функции, функциональная схема устройства ввода/вывода.
- •7. Понятие о системе команд микропроцессоров. Основные группы команд. Способы адресации операндов в микропроцессорах.
- •Форматы команд
- •Способы адресации операндов и команд
- •Адресация операндов
- •Адресация команд
- •Группы команд микропроцессора
- •8. Классификация и структура микроконтроллеров (мк). Процессорное ядро мк, его основные характеристики.
- •9. Типы памяти микроконтроллеров: память программ, память данных, регистры, внешняя память.
- •Память программ
- •Память данных
- •Регистры мк
- •Внешняя память
- •10. Порты ввода/вывода: назначение, основные типы. Таймеры микроконтроллеров: назначение, внутренняя структура.
- •Таймеры микроконтроллеров
- •12. Интерфейсы микропроцессорных систем, классификация и принципы построения
- •14. Последовательные асинхронные интерфейсы: rs-232, rs-422, rs-485, ирпс (интерфейс радиальный последовательный). Назначение, форматы передачи данных, основные технические характеристики.
- •15. Последовательные синхронные интерфейсы: spi (Synhronous Peripheral Interface), i2c (Inter Integrated Circuit). Назначение, форматы передачи данных, основные технические характеристики.
- •Интерфейсная шина i2c
- •16. Однокристальные микроконтроллеры семейства mcs-51: состав и общая характеристика. Структурная организация: регистры, память данных и программ.
- •17. Однокристальные микроконтроллеры семейства mcs-51: порты ввода/вывода, таймеры/счетчики, последовательный порт, система прерываний. Назначение, основные особенности.
- •18. Работа микроконтроллеров семейства mcs-51 в автономном режиме, способы подключения внешней памяти программ и данных.
- •21. Микроконтроллеры подсемейства pic18: общая характеристика, особенности архитектуры и системы команд.
- •Организация памяти
- •Система прерывания
- •Порты ввода/вывода
- •Генератор тактовых импульсов
- •Система команд pic18
- •Основные этапы разработки микроконтроллерных систем
- •Разработка и автономная отладка аппаратных средств мкс
- •Разработка и отладка программного обеспечения
- •23. Язык Ассемблер для микроконтроллеров семейства mcs-51: назначение, структура полей предложений на языке Ассемблер, директивы Ассемблера.
- •Поля предложения на языке Ассемблер
- •Примеры
- •Директивы Ассемблера
- •Метка Операция Операнды Комментарий
- •Метка Операция Операнды Комментарий
- •Опрос двоичного датчика
- •Ожидание события
- •Формирование временной задержки
- •Формирование управляющих сигналов из мк
- •Защита от дребезга контактов
- •25. Методы ввода информации с клавиатуры для микроконтроллеров семейства mcs-51: виды клавиатур, схема подключения контактов клавиатур к микроконтроллеру, методы опроса клавиатуры.
- •Описание микроконтроллерного устройства
- •Создание исходного файла базовой программы
- •Включение и выключение светодиода. Чтобы подать логическую единицу на вывод rb0 (для включения светодиода) необходимо в нулевой бит регистра portb записать 1:
- •Опрос переключателя. Ниже приведен текст программы, которая по нажатию клавиши sa1 включает светодиод vd1, а при ее отпускании светодиод гаснет.
- •Представление информации в языке Си
- •Операции и выражения в Си
- •Операторы управления вычислительным процессом
- •Функции
Разработка и автономная отладка аппаратных средств мкс
Этап разработки аппаратных средств (АС) может быть выполнен традиционными методами, с помощью которых проектируется и моделируется электрическая схема, разрабатывается печатная плата или несколько плат, после чего выполняется монтаж и отладка макета. Однако во многих случаях можно обеспечить значительное сокращение сроков и повышение качества разработки АС путем использования «полуфабрикатов» или готовых изделий, выпускаемых рядом производителей. Этот класс средств разработки получил название плат развития. Условно их можно разделить на следующие типы: системные комплекты – наборы размещенных на плате аппаратных средств, достаточных для реализации несложных устройств; отладочные платы и системы; целевые платы – программно-аппаратные комплексы, ориентированные на использование после отладки в качестве прототипной МКС.
Эти средства могут использоваться для следующих целей: тестирование и отладка программного обеспечения устройств на основе реальных образцов микроконтроллеров; комплексная отладка макета МКС, используемого затем в качестве образца для реализации прототипной системы; сборка и отладка прототипной или целевой МКС, в состав которого входят платы развития в качестве базовых модулей.
Практически все типы плат развития содержат в своем составе порты для подключения управляющего персонального компьютера. Ряд типов отладочных и целевых плат имеют также отдельное поле для макетирования пользователем дополнительных устройств с помощью проводного монтажа.
Если состав средств, имеющихся на плате развития, достаточен для реализации проектируемой МКС, то ее разработка сводится к созданию программного обеспечения и выполнению комплексной отладки МКС. Если имеющихся средств недостаточно, то они проектируются и размещаются на дополнительной плате, подключаемой к разъему на плате развития с помощью кабеля. Так реализуется прототип разрабатываемой МКС, на котором можно выполнить комплексную отладку программных и аппаратных средств, а в ряде случаев и провести проверку функционирования в рабочих условиях. После этого нетрудно разработать рабочий вариант МКС, объединив на одной плате используемые модули прототипной системы.
На этапе автономной отладки АС основными инструментами разработчика являются традиционные измерительные приборы – мультиметры, логические пробники, осциллографы, а также логические анализаторы, которые обладают широкими возможностями контроля состояния различных узлов МКС в заданные моменты времени.
Разработка и отладка программного обеспечения
Этап разработки программного обеспечения (ПО) для МКС является очень ответственным и трудоемким. По некоторым данным затраты на разработку ПО в 3-10 раз превышают затраты на приобретение и изготовление аппаратных средств.
При программировании МКС чаще всего используются язык Ассемблер или язык Си. Машинно-ориентированный (низкого уровня) язык Ассемблер применяется в случаях, когда имеются жесткие ограничения на объем требуемой памяти или на время выполнения программных модулей. Такие случаи являются достаточно типичными для МКС, поэтому Ассемблеры являются одним из основных средств создания ПО для МКС. В тех случаях, когда указанные ограничения не очень жесткие, для создания ПО используются языки высокого уровня (обычно Си).
В процессе разработки и отладки ПО используют следующие программные средства: ассемблеры, компиляторы; симуляторы.
Симуляторы (Simulators) – это программно-логические модели микроконтроллеров, используемые при отладке программ. Обычно они входят в состав отладчиков.
Отладчики (Debuggers) являются основным инструментом разработчика ПО, без которого практически невозможно получит работоспособные объектные модули рабочей программы. Отладчик реализует различные режимы выполнения транслируемой программы, позволяет производить просмотр и коррекцию регистров и ячеек памяти и т.д. Отладчик воспринимает программу на уровне объектного кода или в символическом виде, с использованием введенных разработчиком имен и меток. Символические отладчики являются наиболее удобным средством отладки, так как они представляют и воспринимают информацию в наиболее наглядной и удобной для программиста форме. Для визуализации состояния системы на экране монитора современные отладчики используют многооконный графический интерфейс.
В настоящее время все эти программные средства обычно используются совместно в составе интегрированной среды (оболочки) разработки IDE (Integrated Development Environment). Примером может служить интегрированная среда разработки MPLAB IDE, выпускаемой фирмой Microchip. Она имеет в своем составе менеджер проектов, текстовый редактор, ассемблер и симулятор, допускает подключение компиляторов языков высокого уровня типа Паскаль или Си.
Методы и средства совместной отладки аппаратных и программных средств
Этап совместной отладки аппаратных и программ в реальном масштабе времени является самым трудоемким и требует использования инструментальных средств отладки. В настоящее время такими средствами являются:
внутрисхемные эмуляторы;
внутрисхемные отладчики;
отладочные мониторы;
платы развития;
эмуляторы ПЗУ;
JTAG-эмуляторы.
Внутрисхемный эмулятор (ВСЭ) – это программно-аппаратное средство, способное заменить эмулируемый (отлаживаемый) МК в разрабатываемой МКС. Это наиболее мощное и универсальное отладочное средство, работающее под управлением персонального компьютера, упрощает очень трудоемкий процесс отладки и делает его удобным и наглядным для разработчика.
Стыковка ВСЭ с МКС производится при помощи кабеля со специальной эмуляционной головкой, которая вставляется вместо МК в отлаживаемую систему. Основа ВСЭ – это эмуляционная микросхема от фирмы-производителя микроконтроллеров. Она представляет собой такой же МК, для отладки которого используется, но имеет дополнительные возможности, а главное, выводы для доступа к внутренней памяти, периферийным модулям и служебным регистрам. Кроме эмуляционной микросхемы в состав ВСЭ входят интерфейс связи с персональным компьютером, память для хранения отлаживаемой программы, отладочной информации и точек останова. Также необходимо ПО для персонального компьютера, под управлением которого работает ВСЭ.
Достоинства ВСЭ очевидны – это быстрый и легкий доступ ко всем внутренним ресурсам эмулируемого МК, высокая скорость обновления отлаживаемой программы, поскольку она записывается не в программную память МК, а в ОЗУ, которое подменяет память программ.
Но у ВСЭ также есть и ряд недостатков: большая сложность и стоимость; ВСЭ не может использоваться в качестве внутрисхемного программатора для микроконтроллеров.
Внутрисхемный отладчик (In-Circuit Debugger – ICD), так же как и эмулятор, служит для внутрисхемной отладки МКУ, но принцип работы у него иной. Отладка осуществляется на штатном серийном микроконтроллере, при этом отлаживаемая программа записывается во Flash-память МК. Для того, чтобы функционировал режим внутрисхемной отладки, в серийные образцы микроконтроллеров встраивают специальный отладочный механизм. Для отладки этот механизм включается, а при обычной работе микроконтроллера в составе МКС он выключается с помощью конфигурационного слова МК.
Примером внутрисхемного отладчика является MPLAB ICD2 фирмы Microchip для микроконтроллеров семейств PIC18Fxxx. Принцип работы ICD2 следующий. Во время работы МК при достижении точки останова или в пошаговом режиме вырабатывается немаскируемое прерывание, и управление передается подпрограмме отладчика (она записывается в последние ячейки памяти программ МК). Эта подпрограмма выполняет функцию передачи через отладчик в компьютер содержимого ячеек памяти МК, а также изменения его и переключения режима работы по команде с компьютера. Таким образом, с помощью MPLAB ICD2 можно отладить программу МКС или использовать его в качестве программатора (в том числе и внутрисхемного). Невысокая стоимость ICD2 делает его весьма привлекательным многофункциональным отладочным средством.
Отладочный монитор – это специальная программа, загружаемая в память отлаживаемой МКС. Она вынуждает МК выполнять кроме основной программы управления еще и отладочные функции: загрузку кодов программы пользователя в свободную от монитора память;
установку точек останова; запуск и останов загруженной программы в реальном времени; проход программы пользователя по шагам; просмотр, редактирование содержимого памяти и управляющих регистров. Программа монитора обязательно должна работать совместно с внешним компьютером, на котором происходит визуализация и управление процессом отладки.
Достоинством этого подхода являются очень малые дополнительные затраты при сохранении возможности вести отладку в реальном времени. Кроме того, отладочные мониторы используют тот же МК, который входит в состав разрабатываемой МКС.
Главным недостатком является отвлечение ресурсов МК на отладочные и связные с компьютером функции: монитор занимает некоторый объем памяти, задействованы прерывания, последовательный порт, часто и таймер.
Платы развития являются своеобразными конструкторами для макетирования МКС. Их очень удобно использовать для разработки и отладки аппаратных средств МКС. Однако их также можно использовать и для совместной отладки аппаратных и программных средств разрабатываемых МКС.
Фирмы-изготовители обычно комплектуют платы развития простыми средствами отладки на базе отладочного монитора. Имеются два типа мониторов отладки: один тип используется для МК, имеющих внешнюю шину для работы с внешним ПЗУ программ, второй – для МК, не имеющих внешней шины. То есть работающих только с внутренним (резидентным) ПЗУ программ.
Возможности по отладке, предоставляемые комплектом «плата развития плюс монитор», безусловно, не столь универсальны, как возможности внутрисхемного эмулятора. Кроме того, некоторая часть ресурсов МК в процессе отладки отбирается для работы монитора. Тем не менее, наличие готового набора программно-аппаратных средств, позволяющих без потери времени приступить к монтажу и отладке МКС, во многих случаях являются решающим фактором. Особенно если учесть, что стоимость такого комплекта намного меньше, чем стоимость внутрисхемного эмулятора.
Эмуляторы ПЗУ используются при отладке МКС, рабочая программа которых размещается во внешнем ПЗУ. Эмулятор ПЗУ содержит ОЗУ, которое подключается к МК вместо штатного ПЗУ и работает под управлением присоединенного к эмулятору внешнего компьютера. Это устройство позволяет пользователю избежать многократных циклов перепрограммирования ПЗУ в процессе отладки ПО.
Таким образом, эмуляторы ПЗУ могут выполнить значительную часть функций внутрисхемных эмуляторов. При этом их реализация оказывается намного проще и дешевле, так как они не эмулируют сам МК, который в процессе отладки продолжает работать в составе МКС. Однако, основной недостаток эмулятора ПЗУ – возможность использования только для МК, которые могут обращаться к внешней памяти программ, сильно сужает их область применения.
JTAG-эмуляторы. JTAG – это стандартный интерфейс, применяемый для тестирования электронных компонентов и устройств. Исторически он появился как название специальной группы разработчиков, созданной по инициативе фирмы Texas Instruments для выработки стандарта на производство тестопригодных БИС (Joint Test Action Group – JTAG).
JTAG-интерфейс проектировался для организации информационной связи между произвольным числом БИС на печатной плате, в приборе и т.д. Основное требование при этом состояло в минимизации числа контактов БИС, необходимого для информационного обмена. Обычно используются четыре (реже пять) выделенных для JTAG-интерфейса контакта БИС. Эти контакты образуют так называемый порт доступа (Test Access Port – TAP) контроллера управления JTAG-интерфейса (TAP Controller).
JTAG-интерфейс оказался прекрасным инструментом не только для задач тестирования БИС, но и для решения широкого круга других задач. В частности, возможности JTAG-интерфейса позволили применить его для внутрисхемного программирования и отладки микроконтроллеров, что используется в изделиях ряда производителей электронных компонентов. Так, все микроконтроллеры и цифровые сигнальные процессоры фирмы Texas Instruments (TI) имеют JTAG-интерфейс, который используется для работы внутрисхемного JTAG-эмулятора. Эти эмуляторы выпускаются как самой фирмой TI, так и другими сертифицированными производителями.
Отлаживаемый МК и эмулятор соединяются через интерфейс JTAG посредством специально выделенных на МК выводах. Такое подключение дает возможность отлаживать МКС в той конфигурации и с тем МК, с которым она будет работать. Это снимает как вопросы быстродействия эмулятора, так и вопросы изменения электрических параметров при его подключении. JTAG-эмулятор не оказывает на работу программы никакого влияния. Она выполняется на полной скорости работы МК без каких либо задержек и ограничений. При использовании технологии JTAG происходит переход от эмуляции МК внешним компьютером к непосредственному контролю над ним при выполнении программы. JTAG-эмулятор может не только контролировать и управлять процессорным ядром МК, но для него доступны также периферийные модули и память, причем независимо от того, размещены они на кристалле МК или вне его.
JTAG-эмуляторы являются очень эффективными, удобными и мощными средствами отладки МКУ, однако они могут применяться только в том случае, если МК имеет встроенный JTAG-интерфейс.