- •Ответы по дисциплине мпт (2015 г.)
- •1. Основные понятия и определения микропроцессорной техники: микропроцессор, микропроцессорная система, микрокомпьютер, контроллер, микроконтроллер. Принципы построения микропроцессорных систем.
- •2. Архитектура микропроцессора: архитектура со сложной системой команд (cisc-процессоры), архитектура с упрощенной системой команд (risc-процессоры), принстонская и гарвардская архитектуры.
- •3. Структура микропроцессорной системы и основные режимы ее работы – выполнение основной программы, обслуживание прерываний, прямой доступ к памяти.
- •4. Классификация микропроцессоров: универсальные и специализированные, цифровые сигнальные процессоры и микроконтроллеры
- •5. Классификация и структура микроконтроллеров (мк). Процессорное ядро мк, его основные характеристики.
- •6. Типы памяти микроконтроллеров: память программ, память данных, регистры.
- •7. Однокристальные микроконтроллеры семейства pic: состав и общая характеристика. Микроконтроллер pic16f84a: основные параметры, внутренняя структура, назначение выводов.
- •8. Микроконтроллер pic16f84a: организация памяти программ и данных, портов ввода/вывода.
- •9. Применение языка Си для разработки программ микроконтроллерных систем. Интегрированная среда mikroC pro для pic-микроконтроллеров.
- •10. Представление информации в языке Си: имена, типы данных, переменные и константы, массивы и строки.
- •11. Арифметические операции в языке mikroC. Виды операций, примеры их использования в программах.
- •12. Операции отношения и логические в языке mikroC. Виды операций, примеры их использования в программах.
- •13. Поразрядные операции в языке mikroC. Виды операций, примеры их использования в программах.
- •14. Операторы выбора if и switch в языке mikroC. Выполняемые функции, примеры их использования в программах.
- •15. Операторы цикла языка mikroC: for, while, do … while. Выполняемые функции, примеры использования в программах.
- •16. Операторы перехода языка mikroC: break, continue, goto. Выполняемые функции, промеры использования в программах.
- •17. Функции языка mikroC: определение и прототипы.
- •18. Управление отдельными разрядами регистров pic-микроконтроллеров в языке mikroC. Встроенные функции формирования временных задержек компилятора mikroC pro for pic.
- •19. Программирование на mikroC типовых процедур управления для pic-микроконтроллеров: управление светодиодом, формирование периодических сигналов, опрос контактов переключателя.
- •20. Средства аналогового ввода/вывода микроконтроллеров: назначение, принцип построения аналого-цифрового преобразователя (ацп). Модуль ацп в pic-микроконтроллерах.
- •21. Микроконтроллеры семейства avr фирмы Atmel: общая характеристика, внутренняя структура
- •22. Интегрированная среда разработки для avr-микроконтроллеров mikroC pro for avr. Программирование параллельного ввода/вывода данных в avr-микроконтроллерах
- •23. Программирование на mikroC для avr-микроконтроллеров процедур управления отдельными разрядами портов, опроса контактов переключателей
- •24. Интерфейсы микропроцессорных систем, классификация и принципы построения. Интерфейсы параллельные и последовательные, синхронные и асинхронные
- •25. Последовательный асинхронный интерфейс rs-232. Назначение, форматы передачи данных, основные технические характеристики
- •26. Последовательные асинхронные интерфейсы rs-422 и rs-485. Назначение, форматы передачи данных, основные технические характеристики
- •27. Последовательный синхронный интерфейс spi. Назначение, форматы передачи данных, основные технические характеристики
- •28. Интерфейсная шина i2c. Назначение, форматы передачи данных, основные технические характеристики
- •29. Интерфейсная шина can. Назначение, форматы передачи данных, основные технические характеристики
- •30. Общие принципы и основные этапы разработки микроконтроллерных систем. Разработка и отладка аппаратных средств и программного обеспечения. Методы совместной отладки аппаратных и программных средств
30. Общие принципы и основные этапы разработки микроконтроллерных систем. Разработка и отладка аппаратных средств и программного обеспечения. Методы совместной отладки аппаратных и программных средств
Микропроцессорные системы можно условно разделить на два основных класса: универсальные, которые используются для решения широкого круга задач обработки информации, и управляющие, которые специализируются на решение задач управления различными процессами и объектами. Типичным примером универсальных МПС являются персональные компьютеры, которые применяются в самых различных сферах деятельности. Управляющие МПС в настоящее время выпускаются, в основном, на основе микроконтроллеров, что позволяет значительно упростить и удешевить такие системы. В технической литературе их обычно именуют микроконтроллерными системами (МКС).
Основные этапы разработки микроконтроллерных систем
Общая процедура разработки МКС включает этапы, показанные на рис.1. Процесс разработки МКС содержит ряд специфических этапов, обусловленных наличием в системе как аппаратных, так и программных средств.
Начальным этапом разработки МКС является составление технического задания. Техническое задание (ТЗ) состоит из набора требований, которые должна выполнять проектируемая МКС. На этом этапе из общей задачи, часто поставленной абстрактно и независимо от техники ее реализации, формируются конкретные четкие технические требования к МКС и выполняемые функции на основе принятых для технического описания терминов и определений параметров, характеристик и режимов работы.
Следующий этап – разработка архитектуры МКС подразумевает определение оптимального состава аппаратных и программных средств для решения поставленной задачи. При этом разработчик решает, какие функции системы будут реализованы аппаратными средствами (АС), а какие – программным обеспечением (ПО). Определяется номенклатура АС: выбирается тип микроконтроллера, объем и тип памяти, номенклатура периферийных устройств, протоколы обмена информацией и состав требуемых сигналов управления системой. Определяется также состав ПО: номенклатура необходимых программных модулей, характер их взаимодействия, используемый язык программирования. Результатом выполнения этого этапа являются частные технические задания на проектирование АС и ПО.
Дальнейшая разработка МКС может производиться раздельно и параллельно для аппаратных и программных средств (программного обеспечения ПО). Методы, применяемые при их разработке, будут рассмотрены далее.
Далее следует этап комплексной отладки аппаратных средств и программного обеспечения МКС. Хотя аппаратные и программные средства в отдельности проходят этапы, которые тоже называются отладкой, комплексная, являющаяся наиболее сложным этапом, осуществляется при непосредственном взаимодействии и взаимосвязи программных и аппаратных средств, т.е. рабочей программы и прототипа аппаратуры МКС. Основной задачей на этом этапе является объединение или, по-другому, интегрирование аппаратных и программных средств МКС. Наличие неизбежных ошибок в программе и необходимость экспериментальной обработки взаимодействия программы с реальным объектом в реальном времени требует применения специальных методов и средств отладки. На этапе комплексной отладки обычно используются лабораторные источники питания. Часть внешних источников сигналов может моделироваться.
После выполнения этапа комплексной отладки аппаратных и программных средств отлаженная программа заносится с помощью программатора в энергонезависимую память МК, и прототипная МКС может быть испытана в рабочих условиях с подключением полного набора внешних устройств (датчиков сигналов, объектов управления, пульта оператора для управления и контроля), а также питания от штатного источника. В процессе опытной эксплуатации в рабочих условиях выявляются ошибки, не обнаруженные на этапе отладки, определяется реакция системы на возможные непредвиденные ситуации.
Рис. 1. Основные этапы разработки микроконтроллерной системы
Если после испытания МКС в рабочих условиях она выполняет все необходимые функции, обеспечивает все характеристики и требования, предъявляемые к ней в техническом задании (ТЗ), то производится окончательная разработка технической документации на аппаратные средства и программное обеспечение. Далее изготавливаются опытные образцы МКС, которые сдаются в эксплуатацию, а затем и в серийное производство.
Разработка и автономная отладка аппаратных средств МКС
Этап разработки аппаратных средств (АС) может быть выполнен традиционными методами, с помощью которых проектируется и моделируется электрическая схема, разрабатывается печатная плата или несколько плат, после чего выполняется монтаж и отладка макета. Однако во многих случаях можно обеспечить значительное сокращение сроков и повышение качества разработки АС путем использования «полуфабрикатов» или готовых изделий, выпускаемых рядом производителей. Этот класс средств разработки получил название плат развития. Условно их можно разделить на следующие типы: системные комплекты – наборы размещенных на плате аппаратных средств, достаточных для реализации несложных устройств; отладочные платы и системы; целевые платы – программно-аппаратные комплексы, ориентированные на использование после отладки в качестве прототипной МКС.
Эти средства могут использоваться для следующих целей: тестирование и отладка программного обеспечения устройств на основе реальных образцов микроконтроллеров; комплексная отладка макета МКС, используемого затем в качестве образца для реализации прототипной системы; сборка и отладка прототипной или целевой МКС, в состав которого входят платы развития в качестве базовых модулей.
Практически все типы плат развития содержат в своем составе порты для подключения управляющего персонального компьютера. Ряд типов отладочных и целевых плат имеют также отдельное поле для макетирования пользователем дополнительных устройств с помощью проводного монтажа.
Если состав средств, имеющихся на плате развития, достаточен для реализации проектируемой МКС, то ее разработка сводится к созданию программного обеспечения и выполнению комплексной отладки МКС. Если имеющихся средств недостаточно, то они проектируются и размещаются на дополнительной плате, подключаемой к разъему на плате развития с помощью кабеля. Так реализуется прототип разрабатываемой МКС, на котором можно выполнить комплексную отладку программных и аппаратных средств, а в ряде случаев и провести проверку функционирования в рабочих условиях. После этого нетрудно разработать рабочий вариант МКС, объединив на одной плате используемые модули прототипной системы.
На этапе автономной отладки АС основными инструментами разработчика являются традиционные измерительные приборы – мультиметры, логические пробники, осциллографы, а также логические анализаторы, которые обладают широкими возможностями контроля состояния различных узлов МКС в заданные моменты времени.
Разработка и отладка программного обеспечения
Этап разработки программного обеспечения (ПО) для МКС является очень ответственным и трудоемким. По некоторым данным затраты на разработку ПО в 3-10 раз превышают затраты на приобретение и изготовление аппаратных средств.
При программировании МКС чаще всего используются язык Ассемблер или язык Си. Машинно-ориентированный (низкого уровня) язык Ассемблер применяется в случаях, когда имеются жесткие ограничения на объем требуемой памяти или на время выполнения программных модулей. Такие случаи являются достаточно типичными для МКС, поэтому Ассемблеры являются одним из основных средств создания ПО для МКС. В тех случаях, когда указанные ограничения не очень жесткие, для создания ПО используются языки высокого уровня (обычно Си).
В процессе разработки и отладки ПО используют следующие программные средства: ассемблеры, компиляторы; симуляторы.
Симуляторы (Simulators) – это программно-логические модели микроконтроллеров, используемые при отладке программ. Обычно они входят в состав отладчиков.
Отладчики (Debuggers) являются основным инструментом разработчика ПО, без которого практически невозможно получит работоспособные объектные модули рабочей программы. Отладчик реализует различные режимы выполнения транслируемой программы, позволяет производить просмотр и коррекцию регистров и ячеек памяти и т.д. В настоящее время все эти программные средства обычно используются совместно в составе интегрированной среды (оболочки) разработки IDE (Integrated Development Environment). Примером может служить интегрированная среда разработки MPLAB IDE, выпускаемой фирмой Microchip. Она имеет в своем составе менеджер проектов, текстовый редактор, ассемблер и симулятор, допускает подключение компиляторов языков высокого уровня типа Паскаль или Си.
Методы и средства совместной отладки аппаратных и программных средств
Этап совместной отладки аппаратных и программ в реальном масштабе времени является самым трудоемким и требует использования инструментальных средств отладки. В настоящее время такими средствами являются:
внутрисхемные эмуляторы;
внутрисхемные отладчики;
отладочные мониторы;
платы развития;
эмуляторы ПЗУ;
JTAG-эмуляторы.
Внутрисхемный эмулятор (ВСЭ) – это программно-аппаратное средство, способное заменить эмулируемый (отлаживаемый) МК в разрабатываемой МКС. Это наиболее мощное и универсальное отладочное средство, работающее под управлением персонального компьютера, упрощает очень трудоемкий процесс отладки и делает его удобным и наглядным для разработчика.
Стыковка ВСЭ с МКС производится при помощи кабеля со специальной эмуляционной головкой, которая вставляется вместо МК в отлаживаемую систему. Основа ВСЭ – это эмуляционная микросхема от фирмы-производителя микроконтроллеров. Она представляет собой такой же МК, для отладки которого используется, но имеет дополнительные возможности, а главное, выводы для доступа к внутренней памяти, периферийным модулям и служебным регистрам. Кроме эмуляционной микросхемы в состав ВСЭ входят интерфейс связи с персональным компьютером, память для хранения отлаживаемой программы, отладочной информации и точек останова. Также необходимо ПО для персонального компьютера, под управлением которого работает ВСЭ.
Достоинства ВСЭ очевидны – это быстрый и легкий доступ ко всем внутренним ресурсам эмулируемого МК, высокая скорость обновления отлаживаемой программы, поскольку она записывается не в программную память МК, а в ОЗУ, которое подменяет память программ.
Но у ВСЭ также есть и ряд недостатков: большая сложность и стоимость; ВСЭ не может использоваться в качестве внутрисхемного программатора для микроконтроллеров.
Внутрисхемный отладчик (In-Circuit Debugger – ICD), так же как и эмулятор, служит для внутрисхемной отладки МКУ, но принцип работы у него иной. Отладка осуществляется на штатном серийном микроконтроллере, при этом отлаживаемая программа записывается во Flash-память МК. Для того, чтобы функционировал режим внутрисхемной отладки, в серийные образцы микроконтроллеров встраивают специальный отладочный механизм. Для отладки этот механизм включается, а при обычной работе микроконтроллера в составе МКС он выключается с помощью конфигурационного слова МК.
Отладочный монитор – это специальная программа, загружаемая в память отлаживаемой МКС. Она вынуждает МК выполнять кроме основной программы управления еще и отладочные функции: загрузку кодов программы пользователя в свободную от монитора память; установку точек останова; запуск и останов загруженной программы в реальном времени; проход программы пользователя по шагам; просмотр, редактирование содержимого памяти и управляющих регистров.
Достоинством этого подхода являются очень малые дополнительные затраты при сохранении возможности вести отладку в реальном времени. Кроме того, отладочные мониторы используют тот же МК, который входит в состав разрабатываемой МКС.
Главным недостатком является отвлечение ресурсов МК на отладочные и связные с компьютером функции: монитор занимает некоторый объем памяти, задействованы прерывания, последовательный порт, часто и таймер.
Платы развития являются своеобразными конструкторами для макетирования МКС. Их очень удобно использовать для разработки и отладки аппаратных средств МКС. Однако их также можно использовать и для совместной отладки аппаратных и программных средств разрабатываемых МКС.
Возможности по отладке, предоставляемые комплектом «плата развития плюс монитор», безусловно, не столь универсальны, как возможности внутрисхемного эмулятора. Кроме того, некоторая часть ресурсов МК в процессе отладки отбирается для работы монитора. Тем не менее, наличие готового набора программно-аппаратных средств, позволяющих без потери времени приступить к монтажу и отладке МКС, во многих случаях являются решающим фактором. Особенно если учесть, что стоимость такого комплекта намного меньше, чем стоимость внутрисхемного эмулятора.
Эмуляторы ПЗУ используются при отладке МКС, рабочая программа которых размещается во внешнем ПЗУ. Эмулятор ПЗУ содержит ОЗУ, которое подключается к МК вместо штатного ПЗУ и работает под управлением присоединенного к эмулятору внешнего компьютера. Это устройство позволяет пользователю избежать многократных циклов перепрограммирования ПЗУ в процессе отладки ПО.
Таким образом, эмуляторы ПЗУ могут выполнить значительную часть функций внутрисхемных эмуляторов. При этом их реализация оказывается намного проще и дешевле, так как они не эмулируют сам МК, который в процессе отладки продолжает работать в составе МКС. Однако, основной недостаток эмулятора ПЗУ – возможность использования только для МК, которые могут обращаться к внешней памяти программ, сильно сужает их область применения.
JTAG-эмуляторы. JTAG – это стандартный интерфейс, применяемый для тестирования электронных компонентов и устройств. Исторически он появился как название специальной группы разработчиков, созданной по инициативе фирмы Texas Instruments для выработки стандарта на производство тестопригодных БИС (Joint Test Action Group – JTAG).
JTAG-интерфейс оказался прекрасным инструментом не только для задач тестирования БИС, но и для решения широкого круга других задач. В частности, возможности JTAG-интерфейса позволили применить его для внутрисхемного программирования и отладки микроконтроллеров, что используется в изделиях ряда производителей электронных компонентов. Отлаживаемый МК и эмулятор соединяются через интерфейс JTAG посредством специально выделенных на МК выводах. Такое подключение дает возможность отлаживать МКС в той конфигурации и с тем МК, с которым она будет работать. Это снимает как вопросы быстродействия эмулятора, так и вопросы изменения электрических параметров при его подключении. JTAG-эмулятор не оказывает на работу программы никакого влияния. Она выполняется на полной скорости работы МК без каких-либо задержек и ограничений. При использовании технологии JTAG происходит переход от эмуляции МК внешним компьютером к непосредственному контролю над ним при выполнении программы. JTAG-эмулятор может не только контролировать и управлять процессорным ядром МК, но для него доступны также периферийные модули и память, причем независимо от того, размещены они на кристалле МК или вне его.
JTAG-эмуляторы являются очень эффективными, удобными и мощными средствами отладки МКУ, однако они могут применяться только в том случае, если МК имеет встроенный JTAG-интерфейс.
