Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КП МПС Варианты.doc
Скачиваний:
78
Добавлен:
12.04.2015
Размер:
1.44 Mб
Скачать
    1. Гальваническая развязка

Гальваническая изоляция используется, в основном, для следующих целей:

  • для связи блоков аппаратуры, между которыми имеется значительная разность потенциалов;

  • для защиты входных цепей измерительных устройств от помех и наводок;

  • управление сильноточными и высоковольтными цепями.

В настоящее время распространены три вида связи, обеспечивающих гальваническую изоляцию – трансформаторная (пример построения источника питания на рис.4.3), ёмкостная и оптическая (см. рис.4.14).

    1. Выбор микроконтроллера

В задании на курсовой проект определяется семейство микроконтроллеров, на котором необходимо построить микропроцессорную систему. Это несколько ограничивает свободу выбора основного элемента МПУ, хотя следует заметить, что в любом семействе можно найти микроконтроллер, наиболее удовлетворяющий условиям задачи. Если рассмотреть условия реальной разработки микропроцессорного устройства, то в большинстве случаев разработчик также ограничен в свободе выбора. Это объясняется несколькими причинами, в частности, наличием на фирме определенных инструментальных средств, стоимостными параметрами, преемственностью, имеющимися наработками программного обеспечения и т.д.

В первую очередь необходимо определиться с архитектурой микроЭВМ на базе, которой будет вестись разработка МПУ: открытую или закрытую архитектуру она должна иметь. Контроллеры открытой архитектуры позволяют увеличивать объём памяти программ и данных за счет подключения внешних микросхем. Если внутренней памяти МикроЭВМ недостаточно для решения стоящих перед разработчиком задач, то во многих случаях необходимо остановиться на варианте открытой архитектуры.

Рис.4.17. Структура МПУ с выбранным микроконтроллером

Далее анализируются внутренние ресурсы микроконтроллера, на наличие необходимых модулей: число линий портов ввода/вывода, достаточное количество внутренних и внешних прерываний, мощность блока таймеров (схем захвата и сравнения), наличие охранного таймера, развитой системы сброса, специализированных узлов (АЦП, ЦАП) и т.д. Естественно, наличие встроенного АЦП не гарантирует, что он подойдёт по своим параметрам для вашей задачи, следовательно, также необходимо проанализировать и параметры встроенных устройств. Не следует отдавать предпочтение самому мощному микроконтроллеру данной серии, так как его ресурсы, как правило, являются избыточными для задач данного курсового проекта.

На рис.4.17 показан пример структуры МПУ с модулями, входящими в состав микроконтроллера.

  1. Проектирование программных средств микропроцессорных устройств

Основа современной программной технологии –модульноеиструктурное программирование, когда программа проектируется в виде относительно независимых модулей (каждый из которых объединенединойлогической организацией), а ее управляющие структуры обходятся без использования (или с минимальным использованием) меток и операторов условного и безусловного переходов.

Одно из преимуществ структурного программирования состоит в том, что программа может быть проанализирована проверкой ее структуры, позволяя обнаруживать в ней ошибки уже на стадии проектирования. Следовательно, структурная технология программирования предполагает достаточно высокий уровень абстрагирования с целью выделения составных частей проблемы (модулей) и повышения уверенности в корректности конечного результата.

Структурное программирование сосредотачивает свое внимание на одном из наиболее подверженных ошибкам факторов – логике программы – и включает три основные компоненты:нисходящее проектирование,модульное программированиеиструктурное кодирование(написание программы).

Нисходящее проектирование

Нисходящее проектирование использует иерархическийподход к построению функциональной структуры программных средств. Оно используется на начальной стадии разработки проекта. Суть его достаточно проста и состоит в следующем.

На первом(верхнем) уровне определяетсяглавная цель(цели) программного средства, совпадающая, как правило, с основной целью решаемой им задачи.

На второмуровне определяются функции, обеспечивающие выполнение главной цели.

На третьемуровне определяются функции, обеспечивающие выполнение функций предыдущего уровня и т.д.

Модульное программирование

Метод программирования, когда вся программа разбивается на группы модулей, каждый со своей контролируемой структурой, четкими функциями и хорошо определенным интерфейсом с внешней средой, называется модульным программированием.

Обеспечение высокого качества разрабатываемых сложных программных проектов является весьма трудной задачей. Решение данной задачи можно осуществить путем обеспечения высокого качества на всех этапах разработки. При этом вся задача разбивается на отдельные объекты (модули), имеющие хорошо обозримые структуру и функции, относительно небольшие размеры и сложность. При таком модульном подходе сложность программных средств редуцируется к существенно меньшей сложности составляющих его компонент, каждая из которых выполняет четкие функции, обеспечивающие в совокупности с другими компонентами требуемое функционирование программных средств в целом.

Критерий разбиения на модули основывается на принципе черного ящика. Данный подход предполагает на стадии проектирования программных средств представлять их в виде совокупности функционально связанных модулей, каждый из которых реализует одну из допустимых функций.

Современная концепция модульного программирования базируется на следующих основных предпосылках:

  • модули должны быть, по возможности, небольшого объема и определять допустимые им для обработки данные, операции их обработки;

  • каждый модуль включает спецификациии самотело; при этом спецификации определяют правила использования модуля, а тело – методы их реализации;

  • рекомендуется использовать межмодульные связи древовидного типа; наилучшей организацией может считаться такая, когда каждый модуль связан с одним модулем верхнего уровня (получает информацию) и одним модулем нижнего уровня (передает информацию);

  • организация модулей должна обеспечивать независимость их разработки, программирования и отладки; это достигается независимостью от входной информации, приемника выходной и предыстории.

Спецификация модуля выполняет важныеинтерфейсныефункции и может использоваться в двух основных аспектах: разработчиком в качестве описания требований к модулю ипользователемв качестве информации о выполняемых модулем функциях.

Структурное кодирование

В задачу структурного кодирования входит получение корректной программы на основе простых управляющих структур. В качестве базовых выбираются управляющие структуры: следования, ветвления, организации циклов и вызова подпрограмм. Схематично базисные управляющие конструкции структурированных программ показаны на рис.5.1. Каждая управляющая структура имеет строго по одному входу и выходу. Более того, следование, ветвление и организация циклов составляют тот минимальный базис, на основе которого можно создать любую корректную программу с одним входом, одним выходом, без зацикливания и недостижимых команд. Следование отражает сам принцип последовательного выполнения операторов программы, пока не встретится изменяющий эту последовательность оператор. Ветвление определяет выбор одного из возможных путей дальнейших вычислений; типичными операторами, обеспечивающими данную управляющую структуру, являются:

IF a THEN b ELSE c и CASE.

Рис.5.1. Базовые управляющие конструкции структурированных программ:

а – следование; в – ветвление; с - цикл

Структура цикл реализует повторное выполнение группы операторов, пока не выполняется некоторое логическое условие; типичными операторами, обеспечивающими данную управляющую структуру, являются:

DO, DO_WHILE и DO_UNTIL.

Расширение набора операторов указанных типов, включая оператор вызова подпрограмм, существенно облегчает программирование, не нарушая при этом структурированности программ.

Любой сложности и размера программы можно получать на основе соответствующего сочетания расширенного базиса управляющих структур. Такой подход позволяет отказаться в программах от использования меток и безусловных переходов. Структура таких программ четко прослеживается от начала (сверху) до конца (вниз) при отсутствии передач управления на верхние уровни.