Разработка программного обеспечения блока

Автор работы: Пользователь скрыл имя, 12 Марта 2015 в 07:14, курсовая работа

Краткое описание

Научная деятельность в России не стоит на месте, в том числе и сфера науки, связанная с инженерными боеприпасами. Такой вид боеприпасов обладает рядом функций, таких как обнаружение цели, классификация цели и управление временем срабатывания устройства. Важным свойством, характеризующим этот вид вооружения, является наличие «электронного мозга», способного выполнять различные задачи, такие как классификация цели или расчет временного интервала, после которого устройство сработает. С каждым годом разрабатывается все больше новых и современных видов таких боеприпасов.

Вложенные файлы: 1 файл

ДИПЛОМ КОНЕЧНЫЙ.docx

— 2.53 Мб (Скачать файл)

Архитектура и система команд AVR создавалась при непосредственном участии разработчиков компилятора языка Си и в ней были учтены все особенности этого языка. Компиляция исходных текстов, написанных на языке Си, осуществляется очень быстро и дает компактный, эффективный код.

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

 

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

Следовательно, Си - наиболее удобный язык для начинающих знакомиться с микроконтроллерами AVR и для серьезных разработчиков.

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

Фирма Atmel поставляет мощный компилятор ассемблера, который входит в среду разработки AVR Studio, работающую под Windows. Наряду с компилятором, среда разработки содержит отладчик и эмулятор. Эта среда разработки поддерживает как программирование на языке Си, так и на языке Ассемблер. AVR Studio бесплатная и доступна для скачивания на сайте Atmel.

В настоящее время существует достаточное количество компиляторов Си для AVR. Самым мощным из них считается компилятор фирмы IAR Systems. IAR C Compiler имеет обширные возможности по оптимизации кода и поставляется в составе интегрированной среды разработки IAR Embedded Workbench, включающей в себя также компилятор ассемблера, линкер, менеджер проектов и библиотек, а также отладчик.

Фирмой Image Craft выпускается компилятор языка Си, получивший достаточно широкую популярность. Image Craft C Compiler обладает неплохим уровнем оптимизации кода и достаточно низкой ценой.

Не меньшую популярность завоевал Code Vision AVR C Compiler, цена полной версии этого компилятора невысока и составляет 150 EUR. Компилятор поставляется вместе с интегрированной средой разработки, в которую, помимо стандартных возможностей, включена достаточно интересная функция - CodeWizardAVR Automatic Program Generator. Наличие в среде разработки последовательного терминала позволяет производить отладку программ с использованием последовательного порта микроконтроллера.

Очень известной стала интегрированная среда разработки WinAVR. Она включает мощные компиляторы Си и ассемблера, программатор AVRDUDE, отладчик, симулятор и множество других вспомогательных программ и утилит. WinAVR прекрасно интегрируется со средой разработки AVR Studio от Atmel. Ассемблер идентичен по входному коду ассемблеру AVR Studio. Компиляторы Си и ассемблера имеют возможность создания отладочных файлов в формате COFF, что позволяет применять не только встроенные средства, но и использовать мощный симулятор AVR Studio. Еще одним немаловажным плюсом является то, что WinAVR распространяется свободно без ограничений (производители поддерживают GNU General Public License).

При создании данного проекта для прошивки микроконтроллера использовался программный проект созданный в Image Craft восьмой версии. Также для отладки отдельных блоков программы использовалась AVR Studio, так как у нее есть встроенный эмулятор, позволяющий проверить работу программы.

Для того чтобы обеспечить более продолжительную работу блока используются энергосберегающие режимы микроконтроллера.

 

Для долговременной работы микроконтроллера от одного и того же источника питания нужно использовать спящие режимы. Использование спящих режимов позволяет отключить неиспользуемые модули в микроконтроллере, что позволяет экономить энергию. Всего ИС 1887ВЕ1У имеет шесть режимов сна. Для введения в любой из них необходимо записать логическую единицу в разряд SE регистра MCUCR и выполнить команду «_SLEEP()» (для ImigeCraft 8.05 AVR). С помощью разрядов SM2, SM1 и SM0 в регистре MCUCR выбирается тип спящего режима. 

Виды энергосберегающих режимов ИС 1887ВЕ1У и их выбор:

Режимы сна

SM2

SM1

SM0

Режим холостого хода

0

0

0

Режим снижения шума АЦП

0

0

1

Режим хранения

0

1

0

Режим микропотребления

0

1

1

Режим  ожидания

1

1

0

Режим длительного ожидания

1

1

1


 

 

Регистр управления МПУ – MCUCR

Бит

7

6

5

4

3

2

1

0

Разряд

SM2

SE

SM1

SM0

ISC11

ISC10

ISC01

ISC00


 

 

Режим холостого хода:

Останавливается работа ЦПУ, но разрешается при этом, чтобы SPI, UART, аналоговый компаратор, AЦП, двухпроводной последовательный интерфейс, таймеры/счетчики, сторожевой таймер и система прерывания продолжали работать. Подобный спящий режим в основном останавливает clkCPU и clkFLASH, позволяя при этом работать другим тактовым сигналам.

 

Режим снижения шума АЦП:

Останавливается работа ЦПУ, но разрешается продолжение работы АЦП, внешних прерываний, слежения за адресом двухпроводного последовательного интерфейса, таймера/счетчика 2 и сторожевого таймера (при разрешении его работы). Этот спящий режим в основном останавливает clkI/O, clkCPU и clkFLASH, позволяя при этом работать другим тактовым сигналам. Это уменьшает внешние шумы АЦП, разрешая выполнять измерения с повышенной разрешающей способностью. Если АЦП включен, то преобразование начинается автоматически при вводе данного режима. Кроме прерывания от завершенного преобразования АЦП, только внешний сброс, сброс сторожевого таймера, сброс от схемы контроля за снижением питания (Brown-out Reset), прерывание при совпадении адреса двухпроводного последовательного интерфейса, прерывание таймера/счетчика 2, прерывание готовности SPM/EEPROM, внешние прерывания по уровню на INT0 или INT1, или внешнее прерывание на INT2 могут вывести МПУ из режима понижения шума АЦП.

 

 

Режим хранения:

В этом режиме внешний генератор останавливается, в то время как внешние прерывания, слежение за совпадением адреса двухпроводного последовательного интерфейса и сторожевой таймер (если разрешена его работа) продолжают работать. Только внешний сброс, сброс сторожевого таймера, сброс от схемы контроля за снижением питания (Brown-out Reset), прерывание при совпадении адреса двухпроводного последовательного интерфейса, внешние прерывания по уровню INT0 или INT1 или внешнее прерывание для INT2 могут активировать МK. Этот спящий режим в основном блокирует все генерируемые синхронизирующие сигналы, разрешая работать только асинхронным модулям.

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

удерживаться в течение некоторого времени для того, чтобы вызвать активацию МК.

При пробуждении из режима пониженной мощности имеет место задержка, пока

микроконтроллер перейдет в активный режим. Это позволяет перезапустить тактовый генератор и стабилизировать его работу после остановки. Период пробуждения определяется теми же конфигурационными битами CKSEL, которые определяют период сброса.

 

Режим микропотребления:

Этот режим аналогичен режиму хранения за одним исключением: если таймер/счетчик 2 тактируются асинхронно, т. е. устанавливается разряд AS2 в ASSR, то таймер/счетчик 2 будет продолжать работать во время «сна».

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

Если асинхронный таймер не тактируется асинхронно, то вместо режима хранения рекомендуется режим микропотребления, поскольку содержимое регистров в асинхронном таймере должно рассматриваться как неопределенное после активации в режиме хранения, если AS2 равно нулю.

Этот режим ожидания в основном приостанавливает все тактовые сигналы, за исключением clkASY, разрешая работу только асинхронных модулей, включая таймер/счетчик 2, если тактирование выполняется асинхронно.

 

Режим ожидания:

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

 

Режим длительного ожидания:

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

 

 

Режимы работы интегральной микросхемы 1887ВЕ1У и ток потребления:

 

Режим работы

Ток потребления

Активный режим

3,7мА

Режим холостого хода

1,75мА

Режим снижения шума АЦП

1,2мА

Режим хранения

0,05мА

Режим микропотребления

0,05мА

Режим ожидания

0,05мА

Режим длительного ожидания

0,05мА


 

 

Для прошивки микроконтроллера используется следующий HEX-файл:

 

:0200000014C02A

:02000400D0C06A

:020008009AC09C

:0400100058C0E0C034

:14002A00CFE5D2E0CDBFDEBFC451D0400AEA08830024E0E6A5

:14003E00F0E010E0ED36F10711F00192FBCF0083EAE2F0E056

:14005200A0E6B0E010E000E00BBFEA32F10721F0C8953196A1

:140066000D92F9CFC2D0FFCFE199FECF27B620FCFDCF1FBBD9

:14007A000EBB2DBBE29AE19AE199FECF0895E199FECF1FBBC5

:14008E000EBBE09A0DB3089522242EBC89EE8DBD80E28CBD22

:1400A20083E18BBD82E18ABD83E189BD82E188BD83E187BDFA

:1400B60082E186BD2FBC85E08EBD08952A923A924A925A9208

:1400CA008A939A93AA93BA932FB62A9289EE8DBD80E28CBD41

:1400DE0081E090E0A0E0B0E040906B0050906C00209069008D

:1400F20030906A00280E391E4A1E5B1E30926A00209269001B

:1401060050926C0040926B0085E08EBD29902FBEB991A99180

:14011A009991899159904990399029901895222425BC88E00D

:14012E0082BD8FE584BD8FE983BD87E085BD08952A923A9243

:140142004A925A928A939A93AA93BA932FB62A928FE584BDB7

:1401560081E090E0A0E0B0E040906700509068002090650020

:14016A0030906600280E391E4A1E5B1E3092660020926500AE

:14017E00509268004092670087E085BD82B58830E9F72990B9

:140192002FBEB991A9919991899159904990399029901895B3

:1401A6008A938FB78A93F89481E08093620089918FBF8991E1

:1401BA001895222423BE8BE882BF85E78CBF81E0809363001B

:1401CE0085E083BF08952A928A932FB62A928BE882BF222465

:1401E2002092630029902FBE89912990189522242ABA87E03D

:1401F60084BB87EF81BB88E082BBB0993FC029B301E010E06A

:14020A0031DF01E010E03BDF00936400083311F487E085BB07

:14021E0020906400222011F4222425BA80916400883011F41A

:1402320081E085BB80916400803111F482E085BB80916400D5

:14024600803211F484E085BB80916400883111F483E085BB73

:14025A0080916400803311F486E085BB80916400883211F489

:14026E0085E085BB22242ABA2BBA000087E08ABB25B22BBA60

:1402820086B38170813009F0A6C185E489BF80E080936900A0

:1402960080936A0080936B0080936C0080E0809365008093EF

:1402AA006600809367008093680001E010E0E7DE0093640058

:1402BE007894EADE32DF84C08CE090E0A0E0B0E040906B00DC

:1402D20050906C002090690030906A00281639064A065B065B

:1402E60009F04EC0979A22243324309261002092600009C031

:1402FA0080916000909161000196909361008093600080E00F

:14030E009DE720906000309061002816390674F322243324A5

:14032200309261002092600009C0809160009091610001963F

:14033600909361008093600080E09DE72090600030906100A7

:14034A002816390674F322243324309261002092600009C020

:14035E0080916000909161000196909361008093600080E0AA

:140372009DE720906000309061002816390674F388E082BB39

:1403860088E190E0A0E0B0E0409067005090680020906500E6

:14039A0030906600281639064A065B0609F4919A88E190E0FA

:1403AE00A0E0B0E04090670050906800209065003090660071

:1403C200281639064A065B0609F4909A89E190E0A0E0B0E0E8

:1403D6004090670050906800209065003090660028163906DC

:1403EA004A065B0608F46ACF22242092620080E385BF80E8B0

:1403FE008BBF7894E9C080916200813091F4222420926200E9

:14041200949AD3DE809163008130E1F3959ACDDE80916300B0

:140426008130E1F382B3877D82BB8AE891E2A0E0B0E0409002

:14043A006700509068002090650030906600281639064A06F7

:14044E005B0699F480916400883379F4949AAFDE80916300E0

Информация о работе Разработка программного обеспечения блока