В.Т. Рябов - Устройство и программирование однокристальных микроконтроллеров (1054006), страница 15
Текст из файла (страница 15)
Ошибка на логическом уровне связана с неправильнымописанием логики работы объекта управления (не туда переход по условию, переполнениеячейки памяти при расчетах и т.п.). Такие ошибки транслятор не обнаружит, найти ихможно, просто проигрывая в уме выполнение программы. Это конечно долго, но возможно. Кроме того, есть программы эмуляторы или симуляторы микроконтроллера, которые,выполняясь на инструментальной ЭВМ, имитируют его работу. При этом, в соответствиис кодом управляющей программы, в модели контроллера изменяются регистры общегоназначения, счетчик команд и все другие ресурсы, на которые влияют команды.
Отслеживая переменные в процессе работы программы, вводя точки условного и безусловного останова, словом, используя все типовые приемы отладчика, ошибки на логическом уровнеможно обнаружить и устранить. Хотя этот процесс часто длится не один день.Ошибки на физическом уровне требуют для их выявления работы устройства связис объектом и блока электроавтоматики.
Примеры таких ошибок:− дали команду на включение двигателя, а он не включился из-за того, что импульсслишком короток и был зашунтирован ЭДС самоиндукции катушки реле;− слишком редко опрашивается клавиатура и имеют место пропуски обнаружениянажатий;− не верно выбраны константы пропорционально-интегрально-дифференциального(ПИД) закона управления элементом объекта и т.п.В комплексе устранить ошибки на логическом и физическом уровне можно толькоиспользуя практически готовый контроллер и работая с реальным объектом управления.Существуют следующие способы и инструментальные средства отладки программ:1.
Программный эмулятор (симулятор). Первичным инструментом для отладкиприложений является симулятор. Это программа, которая выполняет программный код,используя модель микроконтроллера, и позволяет при этом программисту наблюдать заходом выполнения программы. При этом можно узнать значения регистров, значения всехячеек памяти, с которым оперирует микропроцессор, на каждом шаге программы.
Частосимулятор является частью интегрированной среды программирования, где отладка программы происходит на уровне исходного текста. Мы уже упоминали о таком способе выявления ошибок на логическом уровне.Основной недостаток отладки с помощью симулятора заключается в том, что неучитываются ограничения, накладываемые конкретной схемой связи микроконтроллера собъектом управления и конкретной реализацией механизма. Выше мы уже говорили, чтотаким методом ошибок на физическом уровне не исправить.2.
“Жги и ломай”. Этот метод заключается в том, что программа запускается на готовом микроконтроллере со схемами связи и на конкретном механизме. Затем анализируется то, как исполнительный механизм управляется программой и принимается решение окоррекции программы, устройства сопряжения, либо механизма. Недостатком метода является большая вероятность выхода механизма из строя и, самое главное, длительностьцикла исправления ошибок. РПЗУ следует перепрограммировать, а это занимает длительное время.3. Эмуляция РПЗУ.
Заключается метод в том, что к статическому ОЗУ прикрепляютбатарейку (таким образом, ОЗУ превращается в РПЗУ). Затем эту микросхему подключают к компьютеру, записывают на нее исследуемую программу и устанавливают ее на место РПЗУ. За счет такого подхода сокращается время на перепрограммирование РПЗУ, ноне устраняется ограниченный сервис в проведении отладки. Приходится использоватьсторонние отладчики, возникают проблемы с их работой в реальном времени. Кроме того,метод применим только при шинной архитектуре построения ЛМК, когда схема памятиавтономна, а не входит в состав ИС МК.
Сейчас этот метод практически не используют.4. Отладочная плата или прототип (starter kit, development board). В настоящее время рядом фирм выпускается большое количество семейств однокристальных микрокон-49троллеров. Это семейство MCS-51, различные семейства PIC-микроконтроллеров фирмыMicroChip, фирмы Texas Instruments и др. Под семейством понимают обычно микроконтроллеры с единой системой команд, отличающиеся друг от друга объемом памяти, конфигурацией внешних выводов (портов), ориентацией на управление теми или иными объектами и т.п. Внутри каждого семейства выпускают сейчас так называемые отладочныеплаты (модули) или прототипы.
На таком прототипе установлен микроконтроллер с минимальным внешним окружением, создающим вычислительное ядро САУ.Рядом с вычислительным ядром обычно расположена макетная область, на которойпользователем могут быть созданы элементы устройств связи с объектом для практической проверки их работоспособности.Имеется канал связи с инструментальной ЭВМ и микроконтроллером, позволяющий записывать в память МК отлаживаемую программу и проводить ее отладку.
Для поддержки этого процесса на кристалле МК «зашита» коммуникационная программа, частобывает достаточно развитый отладчик или даже среда программирования и отладки дляинструментальной машины. Все это позволяет непрерывно проводить процесс написанияи редактирования ПО ЛМК, компиляцию программ и их перезагрузку в память микроконтроллера, что существенно сокращает трудоемкость проводимых работ.После отладки управляющей программы на логическом и физическом уровнях наоснове прототипа разрабатывают «серийный» контроллер, хотя, для единичных экземпляров, ограничиваются и прототипом.5.
Программно-аппаратный или внутрисхемный эмулятор. Это устройство, котороезаменяет микроконтроллер в схеме ЛМК и выполняет программу под управлением программиста. Главное отличие от предыдущего прототипа микроконтроллера в том, что тамвокруг микроконтроллера формировалось УСО и система энергообеспечения исполнительных механизмов. Здесь же за основу берется законченный контроллер с УСО и энергообеспечением и в колодку, в которой в последующем будет размещен штатный микроконтроллер, вставляются выводы программно-аппаратного эмулятора.Хороший, так называемый полный эмулятор, содержит специальный эмуляторныйкристалл, который подсоединяется к ведущему компьютеру или рабочей станции.
Эмуляторный кристалл – это специальный кристалл, обеспечивающий легкий доступ к его памяти программ извне. Память программ этого кристалла представляет собой статическоеОЗУ или флешпамять. Вне стандартной зоны адресов памяти программ расположена программа – монитор, обеспечивающая связь с персональной ЭВМ, поддерживающей процесс отладки. В ЭВМ работает программа – эмулятор. Она отражает содержимое рабочихрегистров микроконтроллера, регистров специальных функций, зоны памяти программ иданных, состояние таких устройств микроконтроллера, как таймеры и приемопередатчики, позволяет изменять состояние этих устройств и памяти, обеспечивает пошаговый режим работы, расставляет и следит за безусловными и условными точками останова, проводит трассировку переменных управляющей программы и ОЗУ.
Наконец, следит за временем выполнения программы. Выпустить такой кристалл под силу только фирмам, выпускающим основную серию, да и то не всем, поскольку он сложнее серийного. Такойэмулятор полностью имитирует работу микроконтроллера, включенного по портовой илишинной архитектуре, не накладывая никаких ограничений.На другом полюсе расположен простой эмулятор, состоящий из двух стандартныхмикроконтроллеров. Один из них выполняет функции эмуляции, но работает не с резидентным РПЗУ, а с внешней памятью программ, представляющей собой статическое двупортовое ОЗУ, способное взаимодействовать с двумя источниками чтения и записи. Другой микроконтроллер содержит программу монитор, также работающую с двух портовымОЗУ и выполняющую во взаимодействии с программой эмулятором выше стоящей персональной ЭВМ все перечисленные ранее функции отладки.
Такой эмулятор может прекрасно справиться с эмуляцией микроконтроллера, включенного по шинной архитектуре,но все же, несмотря на все ухищрения, не вполне адекватен микроконтроллеру в портовой50архитектуре.Программная среда, поставляемая вместе с внутрисхемным эмулятором, содержитвнешнюю оболочку, обеспечивающую сквозную поддержку процесса разработки ПО: менеджер проектов, текстовый редактор, компиляторы с ассемблера и С, программный симулятор, отладчик с развитым сервисом и т.п.Программируя в специальной среде или пользуясь универсальными «открытыми»компиляторами, важно структурировать программное обеспечение.
Существует целый рядкоротких подпрограмм или утилит общего применения, которые применяются практически в каждой программе. Они составляют так называемое ядро или базовую операционную систему. Это:− программа тестирования микроконтроллера;− утилиты двойной арифметики там, где необходимы двухбайтовые целые;− утилиты арифметики с плавающей запятой, если это потребуется;− утилиты проверки целостности управляющей программы;− утилиты настройки приемопередатчика на стандартные протоколы обмена и утилиты реализации обмена;− диспетчер процессов или квантов в «жестком» реальном времени− утилиты расчета управляющих воздействий по типовым законам управления и т.п.Программа тестирования микроконтроллера является универсальной утилитой,проверяющей его работу (выполнение регламентированных операций) и поставляетсяфирмой – изготовителем МК.Утилиты двойной арифметики и утилиты арифметики с плавающей запятой такжеуниверсальны и коллектив разработчиков ПО обычно располагает проверенным комплектом таких подпрограмм.
То же можно сказать и об утилитах настройки приемопередатчика на стандартные протоколы обмена и реализации обмена.Для проверки целостности управляющей программы обычно всякий раз при включении просчитывают сумму ее кодов с нарастающим итогом и сравнивают с фактическойвеличиной суммы, которая просчитана заранее и записана в РПЗУ. При этом используюткоманду чтения в аккумулятор содержимого памяти программ:MOVC A, @A+DPTR.Управляющие программы следует писать, как совокупность отдельных взаимодействующих процессов или квантов (участков кода, выполняемых процессором непрерывно), запускаемых и выполняемых под управлением диспетчера.