Исследование и разработка акустического дефектоскопа на основе метода свободных колебаний (Квалификационная работа бакалавра), страница 8

В качестве примеров компиляторов можно привести стандартный AVR assembler, а также компиляторы языка Си avrgcc, AVR Code Vision, ICC, компилятор языка  Паскаль Embedded AVR Pascal /23/.

Отдельно стоит сказать о таких средствах, как конструкторы кода. Они представляют собой графическую среду для разработки программного обеспечения для МК на языке ассемблера, но в отличие от классического ассемблера, программа вводится в виде алгоритма с древовидными ветвлениями, и отображается на плоскости в двух измерениях. Сеть условных и безусловных переходов отображается графически, в удобной векторной форме. Это к тому же освобождает программу от бесчисленных имен меток, которые в классическом ассемблере являются неизбежным балластом. Вся логическая структура программы становится наглядной.

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

По оценке пользователей, по сравнению с классическим ассемблером, время на разработку программного обеспечения сокращается в 3-5 раз /22/. Наиболее распространенный конструктор кода сейчас - Algorithm Builder для МК AVR Геннадия Громова /22/, поддерживающий также отладку создаваемой программы, чтение/запись МК, заготовки кода и шаблоны. Свободно распространяемая версия имеет ограничение на объем кода, создаваемого конструктором. К средствам отладки относят также интегрированные среды разработки и эмуляторы. Эмуляторы позволяют определить электрическую принципиальную схему устройства, выполнить «обвязку» МК радиоэлектронными компонентами, и, в конечном счете, произвести моделирование схемы.


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

5.2.1 Общие сведения

В настоящее время существуют несколько семейств 8-битных микроконтроллеров для решения прикладных задач. Наиболее распространенные семейства в настоящее время – микроконтроллеры PIC и AVR /6, 5/, имеющие структуру, как показано на рисунке 10 /21/.

Рисунок 10 - Структура 8-битного МК общего назначения

Кратко опишем ее. Ядро МК – сердце микроконтроллерного устройства. Его задача состоит в исполнении программы, записанной в специальную память (память программ). Ядро МК содержит устройство выборки и декодирования команд, арифметико-логическое устройство (АЛУ), внутренние регистры. Регистры общего назначения в архитектуре рассматриваемых здесь МК не входят в ядро (этот момент будет прояснен ниже). Ядро связано с остальными компонентами микроконтроллерной системы.

Память программ – место для хранения последовательности команд, выполнение которых и занимается МК. Как правило, это FLASH-память, с большим числом (порядка 1000) циклов перезаписи. Однако для удешевления МК выпускаются также модели с однократно записываемой памятью программ. Имеет смысл их использовать при выпуске готового микроконтроллерного устройства, если заранее известно, что программа не должна быть изменена в дальнейшем.

Оперативная память – память под переменные программы и стек. В МК рассматриваемого здесь класса оперативная память, как правило, совмещена с регистрами общего назначения (РОНы) и регистрами ввода/вывода в одном адресном пространстве, как показано на рисунке 11.

Рисунок 11 - ОЗУ 8-битных МК общего назначения

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

Тактовый генератор вырабатывает тактовые импульсы, которые синхронизируют работу МК, его логики и периферийных устройств.

Цепь сброса служит для правильного запуска и останова МК.

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

Аналоговые порты служат той же цели – подключению внешних, но уже аналоговых устройств. Это АЦП и ЦАП. Некоторые МК могут ими комплектоваться.

Таймеры служат для отсчета временных интервалов в программе. Например, в устройстве-секундомере они незаменимы. МК чаще всего содержат несколько таймеров, настраиваемых на разные интервалы.

Сторожевой таймер служит другой цели. Он предназначен для предотвращения сбоев программы. Он работает следующим образом: после запуска начинает отсчет заданного временного интервала. Если программа не перезапустит его до истечения этого ин­тервала времени, сторожевой таймер перезапустит микроконтроллер. Таким образом, программа должна давать сторожевому таймеру сигнал – все в порядке. Если она этого не сделала, значит, по какой-либо причине произошел сбой.

Для реализации устройства был выбран МК фирмы Atmel семейства AVR, модель ATmega 128 /5/. Его технические характеристики представлены в таблице 1. Опишем его подробнее в плане классификации, данной выше. Попутно мы будем объяснять аргументы в пользу выбора именно данного МК для реализуемого устройства.

Таблица 1 - Технические характеристики МК ATmega128

Память программ, кб

Память EEPROM, кб

ОЗУ, кб

Кол-во команд

Порты ввода/вывода

Аппаратное умножение

8-ми разрядный таймер

16-ти разрядный таймер

Сторожевой таймер

10-разр. АЦП, каналы

Встроенный генератор

Напряжение питания

Тактовая частота, МГц

Производительность, MIPS

128

4

4

133

48

+

2

2

+

8

+

4,0-5,5 В

0-16

0-16