Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Почему AVR?

У AVR-контроллеров "с рождения" есть две особенности, которые отличают это семейство от остальных МК. Во-первых, система команд и архитектура ядра AVR разрабатывались совместно с фирмой-разработчиком компиляторов с языков программирования высокого уровня IAR Systems. В результате появилась возможность писать AVR-программы на языке С без большой потери в производительности по сравнению с программами, написанными на языке ассемблера.
Во-вторых, одним из существенных преимуществ AVR стало применение конвейера. В результате для AVR не существует понятия машинного цикла: большинство команд выполняется за один такт. Для сравнения отметим, что пользующиеся большой популярностью МК семейства PIC выполняют команду за 4 такта, а классические 8051 — вообще за 12 тактов (хотя есть и современные модели х5 с машинным циклом в один такт).
Правда, при этом пришлось немного пожертвовать простотой системы команд, особенно заметной в сравнении с х5\, где, например, любые операции пересылки данных внутри контроллера, независимо от способа адресации, выполняются единственной командой mov в различных вариантах, в то время как в AVR почти для каждого способа своя команда, к тому же иногда с ограниченной областью действия. Есть некоторые сложности и в области операций с битами. Тем не менее это не приводит к заметным трудностям при изучении AVR-ассемблера: наоборот, тексты программ получаются короче и больше напоминают программу на языке высокого уровня. Следует также учесть, что из общего числа команд от 90 до 130, в зависимости от модели, только 50-60 уникальных, остальные взаимозаменяемые. И, наконец, этот недостаток полностью нивелируется при использовании языка С, фактически уравнивающего разные архитектуры с точки зрения особенностей программирования.

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

Еще одна особенность AVR со схемотехнической точки зрения — все выводы в них могут пребывать в трех состояниях (вход — отключено — выход) и электрически представляют собой КМОП-структуры (т. е. имеет место симметрия выходных сигналов и высокое сопротивление для входных). В общем случае это значительно удобнее портов #51 (двустабильных и TTL-co-вместимых) и предполагает лучшую помехозащищенность (по крайней мере, от помех по шине "земли").
Суммировав мнения из различных источников и опираясь на собственный опыт, автор пришел примерно к такому подразделению областей применения трех самых распространенных семейств контроллеров.
□ Контроллеры классической архитектуры х51 (первые микросхемы семейства 8051 были выпущены еще в начале 1980-х) лучше всего подходят для общего изучения предмета. Отметим, что кроме Atmel, х5\-совместимые изделия выпускают еще порядка десятка фирм, включая такие гиганты, как Philips и Siemens, есть и отечественные аналоги (серии 1816, 1830 и др.), что делает эту архитектуру наиболее универсальной.
□ Семейство AVR рекомендуется для начинающих электронщиков-практиков, в силу простоты и универсальности устройства, преемственности структуры для различных типов контроллеров, простоты схемотехники и программирования (в данном случае под "программированием" понимается процесс записи программ в микросхему).
□ Р1С фирмы Microchip идеально подходят для проектирования несложных устройств, особенно предназначенных для тиражирования.

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

К тому же три упомянутых семейства МК— лишь наиболее распространенные среди универсальных контроллеров, но далеко не самые массовые вообще. Общее количество существующих семейств микроконтроллеров оценивается приблизительно в 100 с лишним, причем ежегодно появляются все новые и новые. Каждое из этих семейств может включать десятки разных моделей. При этом первое место среди производителей 8-разрядных МК традиционно принадлежит фирме Motorola, в основном за счет контроллеров для мобильных устройств. Компания Microchip со своим семейством PIC занимает третье место, a Atmel — лишь шестое. При этом, кроме 8-разрядных МК AVR, Atmel выпускает еще несколько разновидностей МК, к которым относятся не только упомянутые наследники 8051, но и ARM-процессоры и специализированные МК для различных применений. Тем не менее эта формальная статистика еще ни о чем не говорит — так, среди МК со встроенной flash-памятью Atmel принадлежит уже треть мирового рынка.

Еще в 2002-2003 годах в мире выпускалось ежегодно 3,2 млрд штук микроконтроллеров. Отметим, что объем выпуска процессоров для ПК можно оценить в 200 млн единиц в год, т. е. он составляет всего-навсего около 6% рынка (в финансовом исчислении, правда, соотношение иное, ведь типичная цена рядового МК составляет 2-5 долларов, а процессора для ПК — как минимум на порядок выше, а иногда достигает и сотен долларов). Потому не будет преувеличением утверждать, что специальность электронщика-программиста, специализирующегося на микроконтроллерах, не менее важна и дефицитна, чем компьютерного программиста-системщика или создателя пользовательских приложений.



     
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru