Выбрать главу

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

1.3. Микроконтроллеры семейства AVR

AVR — это новое семейство 8-разрядных RISC-микроконтроллеров фирмы Atmel. Эти микроконтроллеры позволяют решать множество задач встроенных систем. Они отличаются от других распространенных в настоящее время микроконтроллеров большей скоростью работы, большей универсальностью. Быстродействие данных микроконтроллеров позволяет в ряде случаев применять их в устройствах, для реализации которых ранее можно было применять только 16-разрядные микроконтроллеры, что позволяет ощутимо удешевить готовую систему. Кроме того, микроконтроллеры AVR очень легко программируются — простейший программатор можно изготовить самостоятельно буквально в течение 30 минут!

По заявлению фирмы-производителя микроконтроллеров (www.atmel.com) микроконтроллеры семейства AVR можно перепрограммировать до 1000 раз, причем непосредственно в собранной схеме.

Все это делает эти микроконтроллеры очень привлекательными для создания новых разработок.

Почему именно AVR?

Микроконтроллеры AVR разработаны фирмой Atmel и обладают следующими основными характеристиками:

• очень быстрая гарвардская RISC-архитектура загрузки и выполнения большинства инструкций в течение ОДНОГО цикла тактового генератора. При этом достигается скорость работы примерно 1 MIPS на МГц. Частота тактового генератора многих типов микроконтроллеров AVR может достигать 10…16 МГц (10…16 MIPS!) (MIPS — Millions Instructions per Second — миллионов операций в секунду). Отсутствует внутреннее деление частоты, как, например, в микроконтроллерах PIC. Таким образом, если использован кварцевый резонатор с частотой 16 МГц, микроконтроллер будет работать с быстродействием почти 16 MIPS;

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

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

• микроконтроллеры AVR имеют 32 регистра, все из которых напрямую работают с АЛУ. Это значительно уменьшает размер программ. В других микроконтроллерах, как правило, для осуществления, например, сложения один из операндов обязательно должен находиться в специальном регистре — аккумуляторе. Таким образом, необходимо сначала его туда занести, затем после выполнения операции результат из аккумулятора нужно переписать в регистр для хранения результата. Итого получается уже три команды. В микроконтроллерах AVR то же самое займет всего одну команду;

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

• наличие дешевых и простых в использовании программных средств. Многие полноценные программы доступны в свободно распространяемом варианте, как, например, отладчик AVR Studio, ассемблер Wavrasm, множество версий программаторов и даже компилятор языка С — avr gcc. Некоторые из этих программ имеются на компакт-диске, прилагаемом к книге;

• узлы PWM (широтно-импульсная модуляция), таймеры/счетчики, аналоговый компаратор и последовательный порт UART встроены в микроконтроллеры и могут управляться с помощью прерываний, что значительно упрощает работу с ними;

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

• отсутствует необходимость переключать страницы памяти (в отличие, например, от микроконтроллеров PIC);