46071 (665366), страница 2
Текст из файла (страница 2)
организацией данных и типом используемого транслятора.
Системы управления контроллера - это программный продукт, обеспечивающий хранение, обновление и выборку информации, представленной в формализованном виде на различных носителях.
Существует множество контроллеров, представляемых различными
производителями. Наибольшее распространение получили контроллеры на основе микрокомплекта 8051. Наибольшую популярность среди них имеет микроконтроллер фирмы INTEL 8051.
С-51
ICC8051 поддерживает не только 8051 (КР1816ВЕ51), но и все другие микро-ЭВМ, использующие ту же основную архитектуру и систему команд (8032, 8044, 80515, 80525 и т.д.). Может потребоваться только изменение объявлений регистров специального назначения и портов ввода/вывода.
Особенности ICC8051 V.4.00:
- два режима компиляции: стандарт ANSI и стандарт ANSI + расширение языка для 8051
- Шесть моделей памяти, обеспечивающих поддержку любых задач, от совсем простых до сложных систем, использующих переключение банков памяти
- Дополнительный атрибут для переменных, определяющий тип памяти размещения: DATA, IDATA, XDATA или CODE
- Статическое размещение локальных переменных позволяет сгенерировать компактный и быстрый код
- Переменные типа SFR (регистр специального назначения) и BIT
(прямоадресуемые биты) могут объявляться и использоваться как стандартные типы данных в языке Си
- Возможность написания на Си функций-обработчиков прерываний (включая определение векторов прерываний) без использования ассемблера
- Поставляемые вместе с компилятором обьявления SFR и BIT, специфичных для каждого члена семейства кристаллов 8051.
Компилятор Си ICC8051 поддерживает все основные элементы языка Си в стандарте ANSI. Переменные располагаются в памяти, начиная со старшего байта и заканчиваются младшим ("старший байт - по младшему адресу").
Переменные всегда плотно упакованы в памяти, т.к. архитектура 8051 не требует выравнивания данных.
[1] Специфические для 8051 типы данных sfr и bit отличаются от стандартных типов данных языка Си, т.к. размещаются в особых областях памяти.
[2] Описание "char" эквивалентно "unsigned char", но может быть изменено на "signed char" с помощью опции компилятора -с.
[3] Перечисляемые переменные ("enum") размещаются с использованием наиболее короткого возможного типа данных, определяемого диапазоном перечисляемых констант - от "char" до "int".
Assembler (INTEL 8051)
Система микропрограммирования является набором компактных программных продуктов для разработки программ для микропроцессоров. СМ реализована для работы на ряде компьютеров, от небольших 16-разрядных персональных машин до 32-разрядных суперминикомпьютеров.
В нем имеется ряд примеров использования как стандартных", так и имеющих особенности средств СМ. Отметим, что независимые средства ассемблера СМ очень просты и эффективны.
СМ ассемблеры - это мощные МАКРО-ассемблеры со средствами перемещения
программ, с универсальными характеристиками и применением. Хотя ассемблеры созданы на базе одного и того же основного пакета, они обладают высокой степенью совместимости с ассемблерами разработчиков микропроцессоров. Основные предметы - это способы использования ассемблера, поддержка модульного программирования и связь с языками высокого уровня.
Все ассемблеры двухпроходные, выполняются как одна программа. Во время выполнения не создается временных файлов.
Все ассемблеры, так же как и ХLINK, используют для внутренних вычислений 32-разрядные структуры, что позволяет виртуально генерировать код любого размера (т.е. не существует предела в 64 кБайт, что могло бы затруднить использование процессоров типа 68000).
Для обеспечения совместимости внутри пакета было применено несколько компромиссных решений, с учетом совместимости с ассемблерами разработчиков микропроцессоров. Особенно это касается макро-конструкций, которые сильно различаются у различных разработчиков. Во многих отношениях, однако, СМ превосходит оригинальные ассемблеры. Следующая таблица дает грубое
представление о степени совместимости этого пакета:
Совместимы по:
- машинным командам (именам и синтаксису)
- директивам определения констант (именам и синтаксису)
- директивам распределения памяти (именам и синтаксису)
- разделителям
- меткам
- основным операторам (+,-,*,/)
- ORG и EQU
Не совместимы по:
- директивам перемещения
- расширениям операторов
- средствам условной трансляции
- опциям и командам управления ассемблером
- макросредствам.
Заметим, что средства, перечисленные в разделе "не совместимы", часто отличаются от оригинальных ассемблеров разработчиков только синтаксисом.
Наиболее популярными на сегодняшний день у программистов являются С-51 и Assembler 8051, так как оба они позволяют получать исходный код.
Постановка задачи
Результатом данного проектирования должен явиться программный продукт контроллера, обеспечивающий данными вычислитель о скорости летательного аппарата. Система должна обеспечивать считывание с датчиков и обработку данных, используя следующий набор операций: считывание, обработка, формирование слов, выдача на ЦАП приборной скорости.
Входными данными служат:
-
счтанные данные с маски приборной скорости;
-
счтанные данные с маски максимальной скорости;
Выходными формами служат :
-
слово 206 в соответствии с РТМ;
-
слово 207 в соответствии с РТМ;
-
слово 271 в соответствии с РТМ;
-
данные с ЦАП приборной скорости.
Кроме того, система должна включать в себя следующие подсистемы:
-
контроль программного обеспечения;
-
контроль о выходе из строя маски приборной скорости;
-
контроль о выходе из строя маски максимальной скорости;
-
контроль о превышении скорости более чем на 2 км/ч, сигнализируя о перегрузки;
-
частота обновления минимальная 31 мсек по каждому значению и максимальная 60 мсек по каждому значению.
Цена младшего разряда по 206 и 207 слову 0,11575
В качестве базового языка программирования использовать
язык С-51 совместно с Assembler 8051.
Выводы
В настоящем разделе выпускной работы были проведены следующие работы:
- анализ автоматизированных контроллеров, и микропроцессоров, на основе чего произведена их классификация;
- рассмотрена и проанализирована проблема выбора инструментальных средств для разработки контроллера, на основании чего выбраны языки С-51 и Assembler;
- на основании анализа требуемого к контроллера было сформулирована задача и требования к комплексу программ деятельности контроллера.
Обобщенная структура и алгоритм функционирования контроллера
Данные в системе представляют собой информацию в виде переменных, которым жестко заданы адреса переменных для обмена между программами обслуживания контроллера.
Выбор инструментальных средств и элементной базы.
При выборе элементной базы прибора контроля учитывались следующие обстоятельства:
- построить разрабатываемую технику на современном уровне (по функциям, стоимости, энергопотреблению и габаритам) исключительно на отечественных элементах не представляется возможным;
- так как мощность, потребляемая МК, в значительной мере определяет возможности разработки экономичной аппаратуры, применения кабелей питания небольшого сечения и должна быть выбрана микро мощная элементная база. Часть схемы контроллера может быть выполнена на элементной базе с небольшим быстродействием, однако для другой части схемы должны быть применены микро мощные элементы с высоким быстродействием. Одним из, таким элементом является микроконтроллер Intel 87C51FB.
Применяемый в разработке микроконтроллер Intel 87C51FB обладает следующими основными характеристиками, которые необходимо знать для выполнения поставленной в дипломном проекте задаче.
Intel87C51FB относится к семейству n-МОП технологии и выпускается в корпусе БИС, имеющем 40 внешних выводов. Цоколевка корпуса и наименования выводов показаны на рис 3.1. Для работы Intel87C51FB требуется один источник электропитания +5 В. Через четыре программируемых порта ввода/вывода Intel87C51FB взаимодействует со средой в стандарте ТТЛ-схем с тремя состояниями выхода. Корпус Intel87C51FB имеет два вывода для подключения кварцевого резонатора, четыре вывода для сигналов, управляющих режимом работы МК, и восемь линий порта 3, которые могут быть запрограммированы пользователем на выполнение специализированных (альтернативных) функций обмена информацией со средой.
Рис 3.1.
Разработки на базе контроллеров Intel87C51FB поддерживается ассемблером, программным симулятором, внутрисхемным эмулятором фирмы Phyton и программатором.
Серия Intel87C51FB подходит для широкого спектра приложений от схем высокоскоростного управления автомобильными и электрическими двигателями до экономичных удаленных приемопередатчиков, показывающих приборов и связных процессоров. Наличие ПЗУ позволяет подстраивать параметры в прикладных программах (коды передатчика, скорости двигателя, частоты приемника и т.д.).
Малые размеры корпусов, как для обычного, так и для поверхностного монтажа, делает эту серию микроконтроллеров пригодной для портативных приложений. Низкая цена, экономичность, быстродействие, простота использования и гибкость ввода/вывода делает Intel87C51FB привлекательным даже в тех областях, где ранее не применялись микроконтроллеры. Например, таймеры, замена жесткой логики в больших системах, сопроцессоры.
Приведем краткий обзор характеристик МК:
- 111 базовых команд;
- Большинство команд (94) имеют формат один или два байта и выполняются за один или два машинных цикла;
- рабочая частота 12 МГц
- -байтное АЛУ и схемы аппаратурной реализации команд умножения и деления;
- 14 - битовые команды;
- двунаправленная 8-битная шина;
- стираемое программируемое ПЗУ программ емкостью 64 Кбайт;
- ОЗУ данных емкостью 128 байта;
- два 16-битных таймера/счетчика;
- программируемые схемы ввода/вывода (32 линий);
- блок двухуровневого векторного прерывания от пяти источников;
- асинхронный канал дуплексного последовательного ввода/вывода информации со скоростью до 375 Кбит/с;
- генератор, схему синхронизации и управления;
- 8 х 4 регистров общего использования;
- 128 программно-управляемых флагов;
- прямая, косвенная и относительная адресация данных и команд;
- четыре источника прерывания:
Структурная схема микропроцессора
Рассмотрим структурную схему микроконтроллера Intel87C51FB рисунок 3.2.
Рис 3.2.
Основу структурной схемы образует внутренняя двунаправленная 8-битная шина, которая связывает между собой все основные узлы и устройства: резидентную память, АЛУ, блок регистров специальных функций, устройство управления и порты ввода/вывода. Рассмотрим основные элементы структуры и особенности организации вычислительного процесса.
Арифметическо-логическое устройство
8-битное АЛУ может выполнять арифметические операции сложения, вычитания, умножения и деления; логические операции И, ИЛИ, исключающее ИЛИ, а также операции циклического сдвига, сброса, инвертирования и т.п. В АЛУ имеются программно недоступные регистры T1 и T2, предназначенные для временного хранения операндов, схема десятичной коррекции и схема формирования признаков.
Простейшая операция сложения используется в АЛУ для инкрементирования содержимого регистров, продвижения регистра-указателя данных и автоматического вычисления следующего адреса РПП. Простейшая операция вычитания используется в АЛУ для декрементирования регистров и сравнения переменных.
Простейшие операции автоматически образуют "тандемы" для выполнения в АЛУ таких операций, как, например, инкрементирование 16-битных регистровых пар. В АЛУ реализуется механизм каскадного выполнения простейших операций для реализации сложных команд. Так, например, при выполнении одной из команд условной передачи правления по результату сравнения в АЛУ трижды инкрементируется СК, дважды производится чтение из РПД, выполняется арифметическое сравнение двух переменных, формируется 16-битный адрес перехода и принимается решение о том, делать или не делать переход по программе. Все перечисленные операции выполняются в АЛУ всего лишь за 2 мкс.