реклама
ОНЛАЙН АПТЕКА НИЗКИХ ЦЕН
цены ниже розничных точек. доставка по украине

    Проектирование и Согласование любых объектов в Киеве    
Антилопа

proxy  статьи  библиотека  softice  free_юр.консультация  hard  iptv
рекламодателям  фирмы/add  расшифровка штрих-кодов  links/add

http://kiev-security.org.ua

Содержание

Технология программирования AVR

  1. Способы программирования энергонезависимой памяти AVR;
  2. LOCK, FUSE и SIGNATURE;
  3. Программно-аппаратные средства поддержки AVR.

1. Способы программирования энергонезависимой памяти AVR

В процессе программирования AVR-микроконтроллеров выполняют следующие операции по стиранию, чтению и записи различных элементов энергонезависимой памяти кристалла:

AVR-микроконтроллеры обычно поставляются со стертыми встроенными FLASH и EEPROM блоками памяти (содержимое всех ячеек = $FF), готовыми к программированию.

В Таблице 1 перечислены возможные способы программирования элементов энергонезависимой памяти AVR.

Параллельное программирование требует использования дополнительного источника повышенного напряжения (12 В), использует большое число выводов микроконтроллера и выполняется на специальных программаторах. Такое программирование удобно, когда при массовом производстве необходимо "прошивать" большое количество кристаллов.

Последовательное программирование не требует дополнительного источника питания и может выполняться непосредственно в микропроцессорной системе (In System Programming) через последовательный SPI-интерфейс, который использует всего четыре вывода AVR-микроконтроллера. Возможность внутрисистемного программирования является одним из важнейших достоинств AVR, так как позволяет значительно упростить и удешевить процесс разработки и модернизации программного обеспечения.

Параллельный и последовательный способы программирования предполагают использование внешнего программирующего процессора. EEPROM память может также программироваться самим AVR под управлением программы (самопрограммирование).

Таблица 1:   Способы программирования AVR
  FLASH LOCK-биты FUSE-биты EEPROM
Параллельное
программирование
+ + + +
Последовательное
программирование
+ + -
(+)
+
Само-
программирование
Анонсировано - - +

LOCK-биты программируются как параллельно, так и последовательно. FUSE-биты у младших моделей AVR могут программироваться только последовательно, а у старших - и параллельно, и последовательно. SYGNATURE-байты доступны для чтения при любом способе программирования, если кристалл не засекречен LOCK-битами.

Операция "Chip erase" выполняется в обоих режимах программирования. Во время нее стираются все ячейки FLASH и EEPROM памяти, а также LOCK-биты. Причем LOCK-биты стираются только после того, как будет очищена вся память программ. На состояние FUSE бит операция "Chip erase" не оказывает воздействия.

FLASH и EEPROM блоки памяти программируются байт за байтом в любом из режимов программирования.

Для EEPROM памяти в режиме последовательного программирования автоматически обеспечивается цикл стирания. Таким образом, существует возможность побайтной перезаписи отдельных ячеек EEPROM. Если же требуется изменить содержимое каких-либо ячеек FLASH памяти, то необходимо выполнять операцию "Chip erase", которая у всех кристаллов, кроме Mega AVR, стирает не только целиком всю FLASH, но и содержимое EEPROM. У Mega AVR имеется FUSE бит EESAVE, программирование которого приводит к тому, что при выполнении операции "Chip erase" содержимое EEPROM сохраняется.
 

2. LOCK, FUSE и SIGNATURE

В энергонезависимой памяти AVR имеется несколько специализированных бит и байт.

LOCK-биты (LB1, LB2) предназначены для защиты программной информации, содержащейся во FLASH-памяти. Возможные режимы защиты перечислены в Таблице 2. Запрограммировав биты защиты, стереть их можно лишь во время очистки FLASH-памяти (операция "Chip erase"), которая уничтожает и всю программу.

Таблица 2:   Режимы защиты программной информации AVR
Состояние Lock-бит Тип защиты
Режим LB1 LB2
1 1 1 Защита отсутствует
2 0 1 Запрет программирования Flash
(и Eeprom для старших моделей AVR)
3 0 0 Запрет как программирования, так и чтения Flash
(и Eeprom для старших моделей AVR)

FUSE-биты позволяют задавать некоторые конфигурационные особенности микроконтроллера. Состав FUSE бит каждого конкретного типа AVR (Таблица 3) обусловлен особенностями построения узлов сброса, тактирования и программирования кристалла.

У всех микроконтроллеров, поддерживающих последовательное программирование, имеется FUSE-бит SPIEN, который позволяет разрешать ("0" - по умолчанию) или запрещать ("1") этот режим перезаписи кристалла.

FUSE-бит RCEN позволяет выбрать в качестве источника тактового сигнала AVR внутренний RC-генератор ("0").

FUSE-биты FSTRT, CKSEL [0 .. 3], SUT [0, 1] задают время задержки старта AVR-микроконтроллера после сброса.

Схемой контроля питания, если она имеется, управляют FUSE-биты BODEN (разрешение ("0") / запрещение ("1")) и BODLEVEL.

У Mega AVR имеется FUSE бит EESAVE, программирование ("0") которого приводит к тому, что при выполнении операции "Chip erase" содержимое EEPROM памяти сохраняется без изменения.

Tiny AVR содержат FUSE-бит RSTDISBL, который позволяет запретить ("0") внешний сброс микроконтроллера для того, чтобы увеличить количество программируемых входов/выходов за счет вывода RESET.

FUSE-биты CKSEL 0 ... 3 у Tiny AVR задают источник тактового сигнала микроконтроллера (табл. 3).

Таблица 3:   FUSE биты AVR микроконтроллеров
Тип AVR FUSE-биты
С1200 SPIEN RCEN
С2313, С4414, С8515, С8535, С2323 SPIEN, FSTRT
С2343 SPIEN, RCEN
С4433
С2333
SPIEN, BODLEVEL, BODEN, CKSEL0, CKSEL1, CKSEL2
Mega AVR SPIEN, SUT0, SUT1, EESAVE
Tiny10/11 FSTRT, RSTDISBL,
CKSEL0, CKSEL1, CKSEL2
Tiny12 SPIEN, RSTDISBL, BODLEVEL, BODEN CKSEL0, CKSEL1, CKSEL2, CKSEL3
Tiny22 SPIEN, RCEN

Три энергонезависимых SIGNATURE-байта в энергонезависимой памяти AVR служат для идентификации типа кристалла, программируются на фабрике и доступны только для чтения.
 

3. Программно-аппаратные средства поддержки AVR

Подготовка программы для AVR-микроконтроллера выполняется на персональном компьютере и состоит из следующих этапов:

Каждый из этапов требует использования специальных программных и аппаратных средств. В Таблице 4 перечислены наиболее доступные из них на сегодняшний день. Базовые программные средства для программирования AVR на ассемблере распространяются фирмой ATMEL бесплатно. Аппаратные средства поддержки программирования AVR а также более развитые средства для программирования AVR на языке C фирмы IAR Systems имеют коммерческое исполнение.

Таблица 4:   Программно-аппаратные средства поддержки AVR
Этапы подготовки программы для AVR Аппаратные средства Программные средства
MS-DOS WINDOWS
1. Создание текста программы - любой тестовый редактор DOS, создающий ASCII-файл WAVRASM
(www.atmel.com)
 
или EWA90
(www.iar.com)
2. Трансляция - AVRASM (www.atmel.com)
3. Отладка программы На компьютере 3.1. - AVRSTUDIO
(www.atmel.com)
 
или EWA90
(www.iar.com)
В микропроцессорной системе (МП) 3.2.
STK100, STK200 или STK300 c кабелем к LPT порту
  ATMEL_AVR_ISP
(www.atmel.com)
3.3.
-Ваша МП система с SPI разъемом
-Кабель к LPT порту
AVREAL(www.chat.ru/
~avreal
, www.ln.com.ua/
~real/avreal
)
 
3.4.
-Ваша МП система с SPI разъемом
-Программатор FLASHER
FLASHER
(поставляется с программатором)
FLASHER
(поставляется с программатором)
3.5
-Ваша МП система
-Внутрисхемный эмулятор фирмы Атмел
(ICEPRO- для Classic AVR), ICE200- для Tiny и Classic AVR),
(MEGAICE для mega AVR)
- AVRSTUDIO
(распространяется бесплатно)
 
EWA90
(www.iar.com)
4. Окончательное программирование AVR 4.1 Последовательное программирование
 
аналогично
аналогично
3.2, 3.3, 3.4
аналогично
3.2, 3.3, 3.4
аналогично
3.2, 3.3, 3.4
4.2
Параллельное программирование
4.2.1.
Программатор FLASHER
FLASHER
(поставляется с программатором)
FLASHER
(поставляется с программатором)
4.2.1.
Программатор СТЕРХ
STERH
(поставляется с программатором)
STERH
(поставляется с программатором)

При работе в среде MS-DOS для выполнения первого и второго этапа приходится пользоваться различными средствами. Для создания текста программы подойдет любой текстовый редактор DOS, который формирует на выходе ASCII-файлы, например, встроенный редактор Norton Commander, редактор Multi Edit и т. п. Для трансляции текста программы в коды фирмой ATMEL предлагается DOS-версия программы-транслятора AVRASM.

Для работы в среде Windows 3.11/95/NT фирмой Атмел предлагается программа WAVRASM, которая позволяет выполнить создание текста программы и его трансляцию внутри единой оболочки и обеспечивает дополнительный сервис для быстрого поиска синтаксических ошибок в тексте программы.

Результатом Вашей работы на первом этапе является файл <эимя_файла>.asm, который содержит текст программы (расширение имени файла обычно указывает на язык программирования) и является входным для программ-трансляторов, которые, в свою очередь, создают четыре новых файла: файл-листинг (<эимя_файла>.lst), объектный файл (<эимя_файла>.obj), файл-прошивку FLASH-памяти (<эимя_файла>.hex), файл-прошивку EEPROM-памяти (<эимя_файла>.eep).

Файл-листинг - это отчет транслятора о своей работе. В нем приводится транслируемая программа в виде исходного текста, каждой строке которого сопоставлены соответствующие двоичные коды. Кроме того, листинг содержит сообщения о выявленных ошибках.

Объектный файл, создаваемый программой WAVRASM, используется в дальнейшем как входной для программы-отладчика AVRSTUDIO и имеет специальный формат.

Файлы прошивки FLASH и EEPROM блоков памяти предназначены для работы с любыми последовательными и параллельными программаторами AVR и имеют стандартные форматы.

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

Для программирования AVR-микроконтролеров на языке C фирмой IAR Systems предлагается развитый пакет Embedded Workbench EWA90 (www.iar.com). Этот пакет объединяет в себе:

При использовании пакета EWA90 этапы создания текста программы, трансляции, компоновки и симуляции программы выполняются в одной интегрированной оболочке. У разработчика появляется возможность сочетать в одной программе и преимущества языка высокого уровня C для основной части программы, и компактность ассемблера для подпрограмм, критичных ко времени исполнения.

Отладка программы AVR-микроконтроллеров может выполняться двумя основными способами: на персональном компьютере при помощи программы-симулятора или в реальной микропроцессорной системе. Два эти способа взаимно дополняют друг друга.

Программы-симуляторы Atmel AVRSTUDIO или IAR C_SPY отображают на экране компьютера Вашу программу и состояние внутренних регистров AVR. Таким образом, становится возможным наблюдать изменения переменных, которые происходят внутри микроконтроллера при выполнении тех или иных команд программы. Отметим, что в реальной системе при помощи осциллографа невозможно просмотреть состояние внутренних регистров. Использование симуляторов эффективно при отладке подпрограмм, которые выполняют численную обработку внутренних данных.

В то же время отладку подпрограмм, связанных с какими-либо внешними элементами, удобно выполнять непосредственно в рабочей системе. Например, если микроконтроллер генерирует ШИМ-сигналы, управляющие яркостью свечения светодиодов, то оценить игру красок Вы сможете только глядя на реальный макет.

Для отладки программы в рабочей системе, кроме программных средств, требуются также и аппаратные. В Таблице 4 представлены различные варианты построения отладочной системы, отличающиеся стоимостью и возможностями.

Наиболее быстрый, не требующий пайки способ построения микропроцессорной системы на основе AVR - это приобретение какого-либо комплекта AVR STARTER KIT фирмы ATMEL. В настоящее время существует три разновидности таких комплектов: STK100 для TinyAVR, STK200 для Classic AVR и STK300 для MegaAVR.

Наборы STK100, STK200 и STK300 содержат небольшую печатную плату DEVELOPMENT BOARD, кабель для последовательного программирования AVR через LPT-порт компьютера, дискеты с программным обеспечением (ATMEL_AVR_ISP), CD-ROM с полной документацией на все типы AVR и многочисленными примерами прикладных программ для AVR. Содержимое дискет и CD-ROM диска можно также найти на www.atmel.com

Плата DEVELOPMENT BOARD из наборов STK200, STK300 имеет следующие узлы:

Универсальность DEVELOPMENT BOARD удобна для обучения и для макетирования новых разработок.

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

В этом случае кроме собственного макета необходимо приобрести еще какое-либо программирующее устройство.

Параллельное программирование, которое требует извлечения AVR-микроконтроллера из системы и установки его в программатор, весьма неудобно на этапе отладки программы.

Для последовательного программирования собственной микропроцессорной системы по SPI-интерфейсу можно воспользоваться программой ATMEL_AVR_ISP, если Вы являетесь обладателем кабеля к LPT порту из наборов STK200 или STK300.

Если же у Вас нет фирменного кабеля, то можно воспользоваться программой AVREAL, которую разработал и подарил всему миру (www.chat.ru/~avreal, www.ln.com.ua/~real/avreal) Александр Редчук. Программа AVREAL работает под DOS и, кроме обычных функций просмотра, стирания и записи энергонезависимой памяти, обеспечивает возможность дописывать FLASH-память AVR без очередного стирания кристалла, а также вести подсчет количества циклов перезаписи энергонезависимой памяти.

Кроме того, функцией программирования по последовательному SPI-интерфейсу обладает параллельный программатор FLASHER.

Способ отладки микропроцессорной системы при помощи SPI-интерфейса отличается своей дешевизной, но, однако, имеет и недостатки. Во-первых, каждый раз при внесении изменений в программу Вы перепрограммируете FLASH-память микроконтроллера, количество циклов перезаписи которой ограничено хоть и достаточно большим (1000), но все же конечным числом. Во-вторых, описанный способ не дает возможности пошаговой отладки программы.

В связи с этим, фирмой ATMEL разработаны более мощные, но и более дорогие внутрисхемные эмуляторы) ICE200, ICEPRO и megaICE. Они представляют собой микропроцессорные устройства, которые с одной стороны связываются с Вашей микропроцессорной системой через панель, предназначенную для установки AVR-микроконтроллера, а с другой - с персональным компьютером и работают под управлением уже упоминавшейся программы фирмы Атмел AVRSTUDIO. Внутрисхемные эмуляторы позволяют выполнять программу в Вашей системе в пошаговом режиме и неограниченное число раз вносить изменения в программу. При работе с внутрисхемным эмулятором Вы одновременно можете на экране компьютера наблюдать состояние внутренних ресурсов процессора, а на микропроцессорной плате - реакцию системы на те или иные команды программы.

Завершающим этапом программирования AVR-микроконтроллера является занесение в память уже отлаженной программы. Оно может быть выполнено так же, как и при отладке программы, то есть через SPI-интерфейс. Однако необходимо помнить, что последовательное программирование младших моделей AVR не позволяет изменять FUSE-биты микроконтроллера.

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

1999

Содержание

HOME


Если у вас есть сайт или домашняя страничка - поддержите пожайлуста наш ресурс, поставьте себе кнопочку, скопировав этот код:

<a href="http://kiev-security.org.ua" title="Самый большой объем в сети онлайн инф-ции по безопасности на rus" target="_blank"><img src="http://kiev-security.org.ua/88x31.gif" width="88" height="31" border="0" alt="security,безопасность,библиотека"></a>

Идея проекта(C)Anton Morozov, Kiev, Ukraine, 1999-2022,