Posts tagged ‘AVR’

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 5. Очереди



Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Мы продолжаем изучение FreeRTOS — операционной системы для микро­контроллеров. В пятой части статьи основное внимание сфокусировано на очередях — безопасном механизме взаимодействия задач друг с дру­гом. Будут показаны опасности организации взаимодействия между зада­чами «напрямую» и обосновано применение очередей, а также рассказано об основных принципах, заложенных в функционирование очередей. Читатель узнает о том, как создать очередь, как записать данные в очередь и прочитать их оттуда. Будут освещены вопросы целесообразного выбора типа данных, хранящихся в очереди, и назначения приоритетов задачам, которые записывают и считывают данные из очереди.
Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 4. Приоритеты. Выделение памяти.

Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
В этой статье будет продолжено изучение FreeRTOS — операционной систе­мы для микроконтроллеров. Здесь описан процесс принудительного изме­нения приоритета задач в ходе их выполнения, показано, как динамически создавать и уничтожать задачи. Рассмотрен вопрос о том, как расходуется память при создании задач. Подведен итог по вытесняющей многозадачности во FreeRTOS и рассказано о стратегии назначения приоритетов задачам под названием Rate Monotonic Scheduling. Далее мы обсудим тему кооператив­ной многозадачности, ее преимущества и недостатки и приведем пример про­граммы, использующей кооперативную многозадачность во FreeRTOS. Автор уделил внимание и альтернативным схемам планирования: гибридной много­задачности и вытесняющей многозадачности без разделения времени.
Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 3. Задачи и события.

Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Продолжать подробное рас­смотрение и демонстрацию возможностей FreeRTOS на платформе реального МК не всегда удобно. Гораздo удобнее использовать в ка­честве платформы любой х86 совместимый настольный компьютер, используя соответствующий порт FreeRTOS. Все последующие при­меры будут приведены для порта для х86 совместимых процессоров, работающих в реальном режиме. Мы используем бесплатный пакет Open Watcom, включающий Си-компилятор и среду разработки, об особенностях установки которого будет сказано ниже. Получаемые в результате компиляции и сборки исполнимые (ехе) файлы могут быть выполнены из интерпретатора команд Windows (cmd.exe). В ка­честве альтернативы можно использовать бесплатный эмулятор ОС DOS под названием DOSBox, который позволит выполнять примеры не только из-под Windows, но и из-под UNIX-подобных (FreeBSD, Fedora, Gentoo Linux) и некоторых других ОС.
Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 2. Основы работы ОСРВ

Основы работы ОСРВ

Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Прежде чем говорить об особенностях FreeRTOS, следует остановиться на основных принципах работы любой ОСРВ и пояснить значение терминов, которые будут приме­няться в дальнейшем. Эта часть статьи будет особенно полезна читателям, которые не зна­комы с принципами, заложенными в ОСРВ.

Основой ОСРВ является ядро (Kernel) опе­рационной системы. Ядро реализует осново­полагающие функции любой ОС. В ОС об­щего назначения, таких как Windows и Linux, ядро позволяет нескольким пользователям выполнять множество программ на одном компьютере одновременно.

Каждая выполняющаяся программа пред­ставляет собой задачу (Task). Если ОС позволя­ет одновременно выполнять множество задач, она является мультизадачной (Multitasking).
Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 1. Введение

Я разработал немногим более 10 электронных устройств и вполне обходился в их низкоруровневой работе без операционной системы. Ситуация поменялась, когда функционал следующего девайса резко расширился. Кроме того, появилась необходимость в задаче, которая вызывается через заданные интервалы времени, причем точность вызова влияет на результат. Также стало понятно, что написать все ПО за выделенное время не получится, и оно будет создано позже. После недолгих размышлений я понял, что в проект необходимо включить операционную систему реального времени (ОСРВ или RTOS). Читать полностью »

Comment

Радиомодули rfm12b

При разработке навигационной системы мобильного робота нам были необходимы беспроводные радио модули. Сначала мы попробовали радио модули tr24. Но оказалось, что они передают на слишком малое расстояние. Следующими радио модулями, которые мы попробовали стали rfm12. Для работы с ними существует бесплатная библиотека для AVR. В этой статье я опишу как использовать эти радио модули и опишу наш опыт их использования.
Читать полностью »

Comment

Arduino bootloader STK500V2.

      В нашей предыдущей статье, посвященной устройству Arduino,  мы обсуждали работу бутлодера.  Напомню, что обмен данными ведется согласно протоколу STK500V2. В отличие от своего предшественника 1й версии он позволяет прошивать контроллеры с объемом памяти более 128К (актуально для новых Mega2560). Кроме того,  работает на увеличенной скорости 115200 бод.

Исходный код бутлодера позволяет использовать его в различных контроллерах AVR:  ATmega8, ATmega16, ATmega32, ATmega8515, ATmega8535, ATmega162, ATmega128,  ATmega1280,  ATmega2560, AVR_ATmega2561 без каких-либо доработок.

Одна из главных идей проекта Arduino – создать дешевое и простое электронное устройство, для которого можно создать модули расширения (shield) и написать код. По замыслу разработчиков это позволит  использовать плату в различных проектах.   Но на практике возникает необходимость для каждой задачи в отдельности создать свое электронное устройство.  Библиотеки, среда разработки и  бутлодер  в совокупности могут серьезно облегчить этот процесс. Читать полностью »

Комментарии (3)

Arduino UniRobot. Комплексная электронная плата управления роботом.

В данной статье мы рассмотрим нашу самую свежую разработку.  Кратко возможности устройства:

- плата построена на контроллере ATMega 2560 и полностью совместима с дистрибутивом разработки и библиотеками  Arduino. Читать полностью »

Comment

Протокол с гарантией доставки для tr24a

При создании навигационной системы робота для участия в Eurobot 2011 мы решили использовать радио модули tr24. Но при работе с ними выяснилась одна проблема: иногда они теряют передаваемые пакеты. В нашей системе планировалось по радиоканалу передавать управляющие команду, поэтому потеря данных была просто недопустима. В связи с этим мне пришлось разработать протокол общения радио модулей tr24, гарантирующий доставку пакета.

Сначала в вкратце опишу, что собой представляла система. Имелось три периферийных маяка, которые должны были по радиоканалу принимать команды и выполнять некоторый набор действий. Имелся локатор на роботе противника, который должен был по радиоканалу обмениваться данными с локатором на нашем роботе. Оба локатора должны были по очереди слать команды маякам и друг другу. Аппаратно все пять устройств были выполнены идентично. Про схему подключения радио модулей tr24 в этих устройствах можете посмотреть здесь. Подробнее про навигационную систему робота - здесь.

Читать полностью »

Комментарии (7)