Главная страница
Навигация по странице:

  • Надёжность ПО

  • Практическая часть.

  • Контрольные вопросы.

  • Практическая работа №74. Программные модели аппаратных средств микропроцессорных систем. Цель работы

  • Общие сведения.

  • Аппаратные средства современных микроконтроллеров на примере МК Motorola

  • Методические указания для практических занятий по дисциплине мдк. 02. 01


    Скачать 7.37 Mb.
    НазваниеМетодические указания для практических занятий по дисциплине мдк. 02. 01
    Дата09.09.2022
    Размер7.37 Mb.
    Формат файлаpdf
    Имя файлаMetod_Mikroprocessornye-sistemy_PZ_09.02.01_2020.pdf
    ТипМетодические указания
    #669073
    страница40 из 43
    1   ...   35   36   37   38   39   40   41   42   43
    Прикладное ПО. В настоящее время при разработке прикладного ПО для микроконтроллеров и других типов встраиваемых микропроцессоров всё шире применяются языки программирования высокого уровня (С, Паскаль, Бейсик и др.). Управляющие конструкции и структуры данных языков высокого уровня отражают понятия, естественные для некоторой предметной области (обработки информации, управления и т. п.), а не архитектуру микропроцессорной системы. По сравнению с языками ассемблера языки высокого уровня обеспечивают следующие основные преимущества:
    − большую гибкость в описании алгоритмических конструкций и структур данных благодаря наличию различных операторов, типов данных и других развитых языковых средств;

    326
    − наглядность и удобство использования за счёт поддержки методов структурного программирования и существования обширных библиотек функций;
    − переносимость программного обеспечения
    (программы, написанные на стандартизованных языках высокого уровня, могут быть перенесены на другие микропроцессоры без внесения изменений или с незначительными изменениями);
    − ускорение разработки и упрощение сопровождения разработанного ПО.
    Программа, написанная на языке высокого уровня, как правило, имеет больший объём и медленнее выполняется, чем аналогичная программа на языке ассемблера. Тем не менее, современные компиляторы с языков высокого уровня имеют эффективные средства оптимизации и позволяют получать программы, сравнимые по эффективности с программами на языке ассемблера. В том случае, если характеристики разработанной программы не удовлетворяют заданным требованиям (по быстродействию или размеру кода), используется сле- дующий приём: выявляются критические с точки зрения производительности участки программы и записываются на языке ассемблера. Например, на языке ассемблера зачастую составляются процедуры обработки прерываний, которые, как следует из принципов организации режима работы по прерываниям, долж- ны выполняться максимально быстро.
    Одним из наиболее популярных языков высокого уровня является язык С, характеризующийся следующими достоинствами:
    − небольшим количеством элементов языка;
    − высокой скоростью выполнения написанных на нём программ;
    − поддержкой модульного программирования; − возможностью работы на аппаратном уровне.
    Благодаря сочетанию управляющих структур, характерных для языков высокого уровня, с возможностью манипулирования битами, байтами и указателями (адресами) язык С занимает промежуточное положение между языками высокого уровня и языком ассемблера, в связи с чем язык C иногда называют языком среднего уровня. Язык С является стандартизованным, что значительно упрощает сопровождение и расширение написанного на нём программного обеспечения. Наибольшее распространение получила версия языка С, соответствующая стандарту, принятому в 1989 г. Американским национальным институтом стандартизации ANSI
    (American National Standards Institute). В 1999 г. был утверждён новый ANSI/ISO-стандарт языка
    C (ISO – International Standards Organization – Международная организация по стандартизации).
    Этот стандарт включает ряд усовершенствований и несколько новых средств, часть из кото- рых позаимствована из языка C++.
    Архитектура AVR-микроконтроллеров специально оптимизирована для использования компиляторов с языков высокого уровня: AVR-микроконтроллеры имеют память программ большого объёма, содержат большое количество РОН, обладают высоким быстродействием.
    Одним из средств разра- ботки ПО для AVR-микроконтроллеров с использованием языков высокого уровня является оптимизирующий С-компилятор ICC AVR фирмы ImageCraft
    Creations. Пользовательский интерфейс компилятора ICC AVR выполнен в виде интегрированной среды разработки, включающей в себя текстовый редактор и менеджер проекта. Компилятор формирует несколько файлов, среди которых стандартный hex-файл для загрузки в память программ микроконтроллера и файл с листингом в текстовом формате.
    Компилятор совместим со стандартом ANSI. Исходный текст может содержать вставки на ассемблере (строки или ассемблерные модули). Библиотеки включают распределение памяти, строковые и математические функции, а также специальные функции, обеспечивающие доступ к энергонезависимой памяти данных и периферийным устройствам микроконтроллера.
    В качестве иллюстрации возможности использования языка С в микроконтроллерных разработках на рисунке ниже приведён фрагмент программы на языке С. В программе использованы комментарии в стиле С++, поддерживаемые компилятором ICC AVR.
    Надёжность ПО. Для сложных программных комплексов (особенно программных комплексов специализированных микропроцессорных систем, например, бортовых вычислителей) весьма актуальной является задача обеспечения высокой надёжности. Под надёжностью программного обеспечения понимается вероятность его работы без отказов в

    327
    течение определённого периода времени, рассчитанного с учётом стоимости каждого отказа.
    Отказ программного обеспечения – это проявление имеющейся в нём ошибки, заключающееся в том, что ПО не выполняет необходимых действий (операций). В зависимости от причины, порождающей ошибку, источники ошибок ПО можно разделить на внутренние и внешние.
    Внутренние – это ошибки проектирования, ошибки алгоритмизации, ошибки программирования, недостаточное качество средств защиты, ошибки в документации и т. п. Внешние ошибки свя- заны со сбоями и отказами аппаратуры, искажением информации в каналах связи, изменением конфигурации системы, ошибками пользователя.
    Число ошибок в ПО, допущенных на стадии разработки, зависит от используемой технологии проектирования, организации работ и квалификации исполнителей и в принципе не является функцией времени. Однако интенсивность отказов аппаратуры из-за ошибок в ПО является функцией времени и может с течением времени как снижаться, так и повышаться. При этом отказы аппаратных средств являются функцией времени и обусловлены физическим старением, износом или разрушением отдельных элементов в процессе эксплуатации, хранения, транспортировки.
    Выделяют следующие методы проектирования надёжного ПО:
    − методы предупреждения ошибок, позволяющие минимизировать или исключить появление ошибок;
    − методы обнаружения ошибок, направленные на выявление ошибок в программном обеспечении;
    − методы обеспечения устойчивости к ошибкам, позволяющие системе функционировать при наличии ошибок и устранять их последствия.
    Методы предупреждения ошибок включают в себя комплекс мер, направленных на уменьшение количества ошибок, допускаемых в процессе проектирования программного обеспечения. Основными методами предупреждения ошибок является уменьшение сложности

    328
    ПО, совершенствование способов обмена информацией, обнаружение и устранение ошибок на каждом этапе разработки ПО (до этапа тестирования).
    Сложность является одной из главных причин низкой надежности программного обеспечения. В общем случае сложность объекта является функцией количества связей между его компонентами. Для уменьшения сложности ПО используются два основных приёма – иерархическое построение ПО и минимизация связей («сцепления») между модулями.
    Иерархическое построение ПО состоит в разделении программного комплекса по уровням понимания (абстракции), что позволяет анализировать систему, скрывая несущественные для данного уровня детали реализации других уровней. Минимизация связей между модулями заключается в усилении независимости отдельных программных модулей. Использование такого приёма должно предотвращать ситуацию, когда изменение одного модуля влечёт за собой необходимость внесения изменений в другие программные модули, связанные с ним. Методы обнаружения ошибок базируются на введении в программное обеспечение различных видов избыточности – временнóй, информационной и программной. Временнáя избыточность заключается в использовании части производительности процессора для контроля исполнения и восстановления работоспособности ПО после сбоя. Информационная избыточность состоит в дублировании части данных информационной системы для обеспечения надёжности и контроля достоверности данных. Программная избыточность подразумевает, что компоненты программно- го комплекса проектируются исходя из предположения, что другие компоненты и исходные данные содержат ошибки, и должны их обнаруживать. Программная избыточность обеспечивает нахождение и регистрацию ошибок, выполнение одинаковых функций разными модулями системы и сопоставление результатов обработки; контроль и восстановление данных с использованием других видов избыточности.
    Методы обеспечения устойчивости к ошибкам направлены на минимизацию ущерба, вызванного наличием ошибок, и реализуются путём обработки сбоев аппаратуры, повторного выполнения операций, динамического изменения конфигурации, выполнения специальных операций в случае отказа отдельных функций системы, копирования и восстановления данных и ряда других действий. Основным способом обнаружения ошибок в программном обеспечении является тестирование. Из-за бесконечного числа возможных сочетаний исход- ных данных исчерпывающее тестирование всех ветвей алгоритма любой слож- ной программы во всех режимах практически неосуществимо. Поэтому считается, что сложные программные комплексы неизбежно содержит ошибки, которые выявляются в течение длительного периода при эксплуатации (иногда на протяжении всего периода эксплуатации). Выделяют следующие этапы тестирования программных комплексов:
    − автономное тестирование – контроль отдельного программного модуля отдельно от других модулей программного комплекса;
    − тестирование сопряжений – контроль связей между частями программного комплекса
    (модулями, компонентами, подсистемами);
    − тестирование функций – контроль выполнения программным комплексом необходимых функций;
    − комплексное тестирование – проверка соответствия программного комплекса заданным требованиям;
    − тестирование конфигураций – проверка каждого конкретного варианта поставки
    (установки) программного комплекса.
    Ошибки в программах и данных могут проявиться на любой стадии тестирования, а также в период эксплуатации системы. Зарегистрированные и обработанные сведения должны использоваться для выявления отклонений от требований заказчика или технического задания.
    Хотя при наличии неисправленной ошибки в ПО, приводящей к отказу при определённом сочетании входных данных, этот отказ проявится в случае последующего выполнения программы при том же сочетании входных данных, тем не менее можно считать, что отказы ПО носят вероятностный характер, так как, во-первых, ошибки в ПО распределены случайным образом, а во-вторых, случайными являются и конкретные наборы входных данных. Поэтому

    329
    интервал времени безотказной работы программного обеспечения также является случайной величиной.
    Практическая часть.
    Дополнить программу недостающими операторами в подпрограмме обработки внешнего прерывания INT1. Откомпилировать программу с помощью компилятора ICC AVR, проделав следующие операции. Запуск программы ICC AVR производится из группы ImageCraft
    Development Tools меню Пуск → Программы.
    1. Создать новый проект с помощью команды New меню Project. В появившемся диалоговом окне Save New Project As… ввести имя проекта. После нажатия кнопки «ОК» в правой части окна программы ICC AVR в области представления иерархии проекта появится схематичное изображение иерархии соз- данного проекта.
    2. Создать файл с исходным текстом программы. Для этого воспользоваться командой
    New меню File, после чего на экране появится окно редактора исходных текстов программ.
    Ввести и отредактировать текст программы; сохранить файл (с расширением .c), воспользовавшись командой Save As меню File.
    3. Включить созданный файл с исходным текстом программы в проект командой Add
    File(s) меню Project или контекстного меню области представления иерархии проекта.
    4. Провести компиляцию созданной программы, воспользовавшись командой Make project меню Project. По сообщениям, выводимым в процессе компиляции в нижней части окна программы ICC AVR (в области сообщений) убедиться в отсутствии ошибок. По окончании компиляции в рабочем каталоге проекта будет создано несколько новых файлов, среди которых файл листинга (с расширением .lst) с и файл-прошивка памяти программ (с расширением .hex).
    5.Проанализировать листинг трансляции. По приведённым в листинге трансляции данным определить объём, занятый программой в памяти, и сравнить это значение с одноимённым параметром для аналогичной ассемблерной программы.
    6. Занести эти сведения в отчёт. Отчёт должен содержать: титульный лист с указанием номера и названия работы, номера группы и фамилий выполнивших работу; цель работы; исходный текст и листинг трансляции созданной программы, а также сведения, указанные в задании.
    Контрольные вопросы.
    1. Назначение системного программного обеспечения.
    2. Основные функции встраиваемых операционных систем.
    3. Особенности операционных систем реального времени.
    4. Преимущества и недостатки языков высокого уровня по сравнению с языком ассемблера.
    5. Достоинства языка программирования C.
    6. Характеристики надёжности программного обеспечения.
    7. Способы повышения надёжности программного обеспечения.
    Практическая работа №74. Программные модели аппаратных средств
    микропроцессорных систем.
    Цель работы: ознакомление с работой основных аппаратных средств современных микроконтроллеров семейства Motorola.
    Общие сведения.
    Все МК обладают процессорным ядром. Семейство объединяет ряд моделей. Отдельные модели в составе семейства различаются набором периферийных модулей, которые подключаются к внутренней межмодульной магистрали. Основные отличия между отдельными представителями семейства состоят в типе и объеме размещенной на кристалле резидентной памяти, количестве параллельных портов и контроллеров последовательных интерфейсов.
    Структура современных микроконтроллеров на примере МК MC68HC912B32 приведена на следующем рисунке:

    330
    Резидентное ОЗУ объемом 1024 байта (1Кб). Встроенное в кристалл микроконтроллера
    ОЗУ используется для хранения промежуточных результатов вычислений. Число ячеек, равное
    1К, достаточно для большинства прогнозируемых для семейства 68HC12 применений.
    Резидентная энергонезависимая память данных типа EEPROM объемом 768 б. Этот тип энергонезависимой памяти (энергонезависимая память сохраняет содержимое после отключения питания) обычно используют для сохранения изменяемых констант прикладной программы.
    Например, в области EEPROM могут храниться коды доступа к данной модели устройства, или на основе ячеек EEPROM могут быть организованы счетчики аварий исполнительного механизма, которым управляет микропроцессорный контроллер. Энергонезависимая память типа EEPROM позволяет выполнять операции записи и перезаписи содержимого ячеек памяти в течение сеанса работы микропроцессорного устройства под управлением прикладной программы, а также чтение ячеек памяти в произвольном порядке.
    Резидентная память программ типа Flash объемом 32 Кб. Этот тип памяти предназначен для хранения прикладной программы, которая функционально завершена, прошла отладку и тестирование на реальном объекте. Объем памяти программ МК B32 составляет 32 Кб, что позволяет разместить в ней достаточно большие программы. Использование Flash памяти в качестве памяти программ позволяет реализовать технологию программирования в системе ISP
    (In System Programming). Эта технология обеспечивает выполнение операций стирания и записи новых кодов в резидентное ПЗУ программ микроконтроллера без демонтажа МК с платы конечного изделия. Мультиплексированная шина адрес/данные для адресации внешней памяти и периферийных устройств. Число выводов корпуса, в котором размещается полупроводниковый кристалл микроконтроллера, ограничено. Причиной тому – стремление разработчика выпускать миниатюрные и относительно недорогие МК, в то время, как увеличение числа выводов корпуса увеличивает его размеры и стоимость. Одним из способов сокращения числа выводов корпуса
    МК при сохранении функций этих выводов является мультиплексирование линий магистралей адреса и данных для сопряжения МК с внешней памятью. При мультиплексировании одни и те

    331
    же выводы МК на протяжении одного временного интервала используются для передачи информации об адресе внешней ячейки памяти, а в течение другого временного интервала – для обмена данными с этой ячейкой. В микроконтоллере B функции мультиплексированных во времени магистралей адрес/данные выполняют линии портов Port A и Port B (см. рис.).
    Аппаратные средства современных микроконтроллеров на примере МК Motorola
    Многофункциональный таймер. Подсистема реального времени МК семейства 68HC12 включает несколько модулей, но основным является таймер с 16-разрядным счетчиком временной базы, программируемым делителем частоты тактирования и 8 каналами входного захвата IC (Input Capture) или выходного сравнения OC (Output Compare). Эти каналы могут быть сконфигурированы произвольно: любое число каналов из 8 настраивается на реализацию функции входного захвата IC, оставшиеся каналы – на функцию выходного сравнения OC. При этом возможны конфигурации, когда все каналы находятся в режиме IC или в режиме OC. Такая организация модуля таймера позволяет производить точные измерения временных характеристик входных сигналов МК, и генерировать многоканальные импульсные последовательности на его выходах.
    Независимый 16 разрядный счетчик внешних событий. Этот модуль также принадлежит к подсистеме реального времени. Он предназначен для подсчета так называемых внешних событий, каждое из которых представляется импульсом на одном из входов МК. Модули контроллеров последовательных интерфейсов SPI (Serial Peripheral Interface) и SCI (Serial
    Communication Interface).
    Микроконтроллеры семейства 68HC12 обладают достаточно мощными аппаратными средствами для обмена с другими устройствами в последовательном коде. Модуль контроллера
    SPI реализует обмен в синхронном режиме, в то время как модуль SCI предназначен для асинхронного последовательного обмена. Синхронный режим обмена в стандарте SPI характеризуется более высокими скоростями обмена по сравнению с стандартным асинхронным протоколом. Однако расстояние между взаимодействующими устройствами ограничено 20…30 см. Интерфейс в стандарте SPI часто используется для подключения к МК дополнительных интерфейсных компонентов, установленных на плате с МК. Например, МК семейства 68HC12 не имеют в своем составе цифроаналоговых преобразователей (ЦАП). Поэтому система с МК может быть дополнена внешней ИС ЦАП, подключенной к микроконтроллеру с использованием встроенного модуля контроллера SPI. Интерфейс асинхронного обмена SCI часто используется для обмена данным между двумя и более контроллерами, т.к на его основе созданы интерфейсы, сигналы которых могут передаваться на значительные расстояния.
    Модуль аналого-цифрового преобразователя ATD (Analog To Digital convertion system).
    Большинство сигналов в системах, которыми управляют микроконтроллеры, имеют аналоговую природу. Например, температура и давление воздуха окружающей среды изменяются плавно, а не скачкообразно. Для работы с аналоговыми сигналами в микропроцессорной системе, эти сигналы должны быть предварительно преобразованы в цифровую форму. В русскоязычной литературе говорят, что эти сигналы должны быть оцифрованы. Для этой цели в составе МК B32 имеется модуль аналого-цифрового преобразователя. Модуль имеет 8 входов для одновременного подключения восьми измеряемых аналоговых сигналов. Однако оцифровка этих сигналов будет производиться последовательно. Измеряемые аналоговые сигналы будут подключаться ко входу одного аналого-цифрового преобразователя (АЦП) посредством встроенного в модуль ATD мультиплексора. Оцифрованный сигнал представляется в 8 и или 10 разрядном прямом коде без знака. Два дополнительных бита кода представления результата позволяют увеличить чувствительность АЦП с 19.53 до 4.88 мВ.
    Модуль широтно-импульсного модулятора PWM (Pulse Width Modulation). Широтно- импульсная модуляция (ШИМ) – один из способов формирования импульсного сигнала с регулируемыми временными характеристиками. Способ широтно-импульсной модуляции часто используется для регулирования скорости вращения двигателей постоянного тока, а также для управления электрическими двигателями других типов. Для генерации ШИМ сигнала в МК B32 могут быть использованы аппаратные средства модуля многофункционального таймера TIM.
    Однако МК B32 оснащен специальным модулем ШИМ. Этот модуль позволяет генерировать

    332
    четыре независимых импульсных последовательности с 8 разрядным разрешением для задания коэффициента заполнения, или две импульсные последовательности с 16 разрядным заданием коэффициента заполнения. Допускается комбинация этих режимов. Например, ШИМ сигнал используется для управления двигателем рулевого управления в игрушечных радиоуправляемых машинках. Для того, чтобы машинка повернула направо или налево, она должна получить импульсный сигнал, у которого частота следования импульсов постоянная, а длительность импульсов изменяется. Отношение длительности импульса к длительности периода сигнала называется коэффициентом заполнения. Машинка повернет налево, если коэффициент заполнения менее 50% , или направо, если коэффициент заполнения превышает 50%. Модуль
    PWM микроконтроллера B позволяет организовать импульсную последовательность с требуемыми значениями периода следования и коэффициента заполнения при использовании минимального числа команд прикладной программы.
    Модуль контроллера CAN интерфейса msCAN12 (Motorola Scalable Controller Area
    Network) содержит в себе набор аппаратных средств для поддержки коммуникационного протокола промышленных сетей в стандарте CAN 2.0 A/B.
    1   ...   35   36   37   38   39   40   41   42   43


    написать администратору сайта