Смекни!
smekni.com

Разработка системы теплоснабжения (стр. 6 из 11)

2) разрабатывать архитектуру и систему команд AVR в теснейшем согласии с принципами языка Си так, чтобы аппаратная часть нового микроконтроллера и его система команд были неотъемлемыми частями одного целого и использовались с максимальным к.п.д. Хорошо известно, что в 1990-е годы языки программирования высокого уровня стали стандартным инструментом при создании программного обеспечения для встраиваемых микроконтроллеров. Существенно сокращается время разработки проектов и, соответственно, снижается их стоимость, а также облегчается создание универсальных средств поддержки разработок. Недалеким от истины будет и утверждение, что язык Си является наиболее популярным и эффективным средством для программирования микроконтроллеров. Система команд AVR разрабатывалась при непосредственном участии экспертов по языку Си и учитывает все основные особенности стандарта ANSI C. Результат налицо: компиляция исходных текстов, написанных на Си, осуществляется быстро и дает компактный, эффективный код. Конечно, можно работать и на Ассемблере для еще большего выигрыша в плотности упаковки конечного программного кода, но теперь у разработчика есть разумная альтернатива;

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

Результатом явилось появление нового, очень дешевого, скоростного, легкого в освоении и использовании семейства AT90S 8-разрядных микроконтроллеров марки AVR. Они представляют собой мощный инструмент, базу для создания современных высокопроизводительных и экономичных контроллеров многоцелевого назначения. Так, например, AVR используются в изделиях класса Smart Card для персональных компьютеров, в спутниковых навигационных системах для определения местоположения автомобилей на трассе, в миниатюрных автомобильных пультах дистанционного управления, в сетевых картах и на материнских платах компьютеров, в сотовых телефонах нового поколения и т.д.

Что же представляет собой микроконтроллер AT90S1200? Как он устроен и какова его архитектура? Начнем знакомство с аппаратных возможностей:

– диапазон напряжений питания, В - 2,7 - 6,0;

– тактовая частота, МГц - 0-16;

– количество линий ввода/вывода (max) - 15;

– количество инструкций - 89;

– объем Flash ROM, байт - 1К;

– объем EEPROM, байт - 64;

– количество таймеров/счетчиков - 1;

– аналоговый компаратор - есть;

– SPI (загрузка ROM и EEPROM) - есть;

– сторожевой таймер - есть;

– количество битов защиты - 2;

– число режимов энергосбережения - 2;

– число источников прерывания: внутренних/внешних - 2/1;

– тип корпуса - DIP28, SOIC28, SSOP28.

AT90S1200 имеют Flash-память программ ROM объемом 1K, которая может быть загружена как с помощью обычного программатора, так и посредством SPI интерфейса. Число циклов перезаписи ROM - не менее 1000. Два программируемых бита секретности позволяют защитить память программ от несанкционированного считывания. AT90S1200 имеют также блок энергонезависимой электрически стираемой памяти данных EEPROM объемом 64 байта. Этот тип памяти, доступный программе микроконтроллера непосредственно в ходе ее выполнения, удобен для хранения промежуточных данных, различных констант, таблиц перекодировок, калибровочных коэффициентов и т.п. EEPROM может быть загружена извне как через SPI интерфейс, так и с помощью обычного программатора. Число циклов перезаписи - не менее 100000.

Перечислим периферийные устройства AVR:

– таймер/счетчик, разрядность 8 бит;

– скоростной последовательный интерфейс SPI;

– встроенная система сброса микроконтроллера;

– асинхронный дуплексный последовательный порт UART;

– контроллер прерываний;

– внутренний тактовый генератор;

– сторожевой (WATCHDOG) таймер.

Внутренний тактовый генератор может запускаться от внешнего источника опорной частоты, от внешнего кварцевого резонатора или от внутренней RC-цепочки. Поскольку все AVR полностью статические, минимальная допустимая частота ничем не ограничена (вплоть до пошагового режима). Максимальная рабочая частота определяется конкретным типом микроконтроллера. Ограничения верхней границы частотного диапазона связаны с технологическими проблемами при производстве микросхем и будут устранены в последующих версиях кристаллов. В настоящее время контроллер AT90S1200 версии "F" может работать на частоте 16 МГц при комнатной температуре, а ограничение 12 МГц действует во всем температурном диапазоне [7].

Если времязадающим элементом для тактового генератора AVR является внутренняя RC-цепочка, то частота, на которой работает микроконтроллер, фиксирована и составляет 1 МГц. Это значение приближенное и изменяется в зависимости от величины напряжения питания и температуры корпуса. Выбор источника тактовой частоты (внутренний/внешний) программируется, правда только с помощью внешнего программатора. Как правило, AVR поставляются с фабрики уже "испеченными" для работы от внешнего источника опорной частоты, но можно заказать и другие. При этом в аббревиатуре микроконтроллера появляется литера "A", указывающая на то, что тактовый генератор данного кристалла функционирует от встроенной RC-цепочки, например, AT90S1200A-12PC. Запрограммировать микроконтроллер AT90S1200 на работу от внутреннего RC-генератора через последовательный порт SPI невозможно.

Сторожевой таймер предназначен для защиты микроконтроллера от сбоев в процессе работы. Он имеет свой собственный RC-генератор, работающий на частоте 1 МГц. Как и для основного внутреннего RC-генератора, значение 1 МГц является приближенным и зависит прежде всего от величины напряжения питания микроконтроллера и от температуры.

Порты ввода/вывода AVR имеют число независимых линий "Вход/Выход" от 5 до 32. Каждый разряд любого порта может быть запрограммирован на ввод или на вывод информации. Мощные выходные драйверы обеспечивают типовую токовую нагрузочную способность 20 мА на линию порта (втекающий ток) при максимальном значении 40 мА, что позволяет, например, непосредственно подключать к микроконтроллеру светодиоды и биполярные транзисторы. Общая токовая нагрузка на все линии одного порта не должна превышать 80 мА. Все значения приведены для напряжения питания 5В.

AVR работают в широком диапазоне питающих напряжений от 2,7 В до 6,0 В. Ток потребления в активном режиме зависит от величины напряжения питания и частоты, на которой работает микроконтроллер, и составляет менее 1 мА для 500 кГц, 5...6 мА для 5МГц и 8...9 мА для частоты 12 МГц. AVR также могут быть переведены программным путем в один из двух режимов пониженного энергопотребления. Первый - режим холостого хода (IDLE), когда прекращает работу только процессор и фиксируется содержимое памяти данных, а внутренний генератор синхросигналов, таймеры, система прерываний и сторожевой таймер продолжают функционировать. Ток потребления здесь не превышает 2,5 мА на частоте 12 МГц. Второй - режим микропотребления (SLEEP), когда сохраняется содержимое регистрового файла, но останавливается внутренний генератор синхросигналов. Выход из режима SLEEP возможен либо по сигналу сброса, либо от внешнего источника прерывания. При включенном сторожевом таймере ток потребления в этом режиме составляет около 80 мкА, а при выключенном - менее 1мкА. (Все вышеприведенные значения справедливы для напряжения питания 5 В).

Температурные диапазоны работы микроконтроллеров AVR - коммерческий (0...70С) и индустриальный (-40...+85С).

С точки зрения программиста AVR представляет собой 8-разрядный RISC микроконтроллер, имеющий быстрый Гарвардский процессор, память программ, память данных, порты ввода/вывода и интерфейсные схемы.

Гарвардская архитектура AVR реализует полное логическое и физическое разделение не только адресных пространств, но и информационных шин для обращения к памяти программ и к памяти данных. Способы адресации и доступа к ним также различны. Такое построение уже ближе к структуре скоростных цифровых сигнальных процессоров и обеспечивает существенное повышение производительности за счет:

а) одновременной работы центрального процессора как с памятью программ, так и с памятью данных;

б) расширения до 16 бит разрядной сетки шины данных памяти программ. Следующим шагом на пути увеличения быстродействия AVR является использование технологии конвейеризации, вследствие чего цикл "выборка - исполнение" команды может быть заметно сокращен, повышая тем самым производительность процессора. Например, у микроконтроллеров семейства MCS51 короткая команда выполняется за 12 тактов генератора (1 машинный цикл), в течение которого процессор последовательно считывает код операции и исполняет ее. В PIC-контроллерах фирмы Microchip уже реализована конвейерная обработка. Короткая команда выполняется у них в течение 8 периодов тактовой частоты (2 машинных цикла). За это время последовательно дешифрируется и считывается код операции, исполняется команда, фиксируется результат и одновременно считывается код следующей операции (конвейер). Поэтому одна короткая команда в общем потоке реализуется за 4 периода тактовой частоты или за один машинный цикл. В микроконтроллерах AVR тоже используется одноуровневый конвейер при обращении к памяти программ и короткая команда в общем потоке выполняется, как и в PIC-контроллерах, за один машинный цикл. Главное же отличие состоит в том, что этот цикл у AVR длится всего один период тактовой частоты по сравнению с четырьмя у PIC.