Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Алгоритмическое обеспечение




Аннотация

Выпускная квалификационная работа бакалавра: 85 с, 20 рисунков, 7 таблиц, 22 источника, два приложения.

Презентация: 17 слайдов MicrosoftPowerPoint

 

МОДЕЛЬ РАКЕТЫ, БОРТОВОЙ КОНТРОЛЛЕР, FreeRTOS, PROTEUS

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

 


 


Определения, обозначения, сокращения

· ТЗ– техническое задание;

· ОС–операционная система;

· ПО – программное обеспечение;

· МК– микроконтроллер;

· ОСРВ – операционная система реального времени;

· Порт – реализация платформонезависимого ПО на конкретной платформе.

· Драйвер–набор файлов driver.c и driver.h, которые обеспечивают низкоуровневый доступ к регистрам для получения специфичных для данного устройства/переферии возможностей;

· Сервис – тип модуля, который обеспечивает более приложение–ориентированное ПО, такое как USB–классы, функции файловой системы, архитектурно–оптимизированные библиотеки DSP, графический библиотеки и т.д;

· Digital Motion Processor –цифровой процессор движения;

· ПБ–процессорный блок;

· ШИМ –широтно–импульсная модуляция;

· Трансивер (англ. transceiver, от слов transmitter – передатчик и receiver – приёмник) – приёмопередатчик;

· ADC–АЦП – аналого–цифровой преобразователь;

· GPS–Global Positioning System – система глобального позиционирования, аналог ГЛОНА́СС – глобальной навигационной спутниковой системы;

· GPIO – интерфейс ввода/вывода общего назначения;

· PowerGood – вывод регулятора напряжения, меняющего состояние, когда на выводе обратной связи (Feedbackpin)напряжение ниже пороговой величины;

· Нить (поток выполнения) – наименьшая единица обработки, исполнение которой может быть назначено ядром операционной системы, в терминах FreeRTOS нить именуется как «task» – задача.


 

Оглавление

Введение. 7

1 Постановка задачи. 9

1.1 Описание конструкции ракеты.. 9

2 Структурная организация. 15

3 Алгоритмическое обеспечение. 19

3.1 Основные режимы работы.. 19

3.2 Структуры данных модуля навигации. 21

3.4 Алгоритм вычисления приборной скорости. 25

3.4 Структуры данных трансивером.. 26

3.5 Особенности операционных систем в микроконтроллерах. 29

3.8 Реализация управления сервомашинками. 31

4 Комплекс технических средств. 34

4.1 Приёмопередатчик CC1125. 34

4.2 Антенна. 35

4.3 Модуль навигации ML8088sE.. 36

4.4 Датчик давления MPX5100DP. 36

4.5 Карта памяти. 38

4.6 Исполнительные механизмы.. 38

4.8 Модуль ориентации MPU–9250. 39

4.9 Микроконтроллер. 40

4.10 Блок питания. 41

5 Программное обеспечение системы.. 43

5.2 Структура программного обеспечения. 43

5.4 Драйвер CC1125. 47

5.5 Сервис FatFs. 49

6 Отладка контроллера. 50

Заключение. 55

Список использованных источников. 56

Приложение А Справочные таблицы.. 59

Приложение Б Листинг программы.. 65

 


Введение

Беспилотные летательные аппараты БПЛА в настоящее время получили широкое распространение во многих областях науки и техники. Их используют в качестве средств разведки, боевых ударных самолетов, для аэрофотосъемок и геологоразведки, исследовании труднодоступных местностей, контроля экологической обстановки и метеоусловий, доставки грузов и так далее. По мере снижения стоимости БПЛА область их применения постоянно расширяется. В европейской программе фундаментальных научных исследований до 2025 года Cosmic Vision нет ни одной пилотируемой миссии, даже среди заявок [1].

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

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

Целью выпускной квалификационной работы является разработка бортовой системы сбора данных и управления моделью ракеты типа TSR, разработанной студентами Самарского университета для участия в C’Space.

C’Space – это международного уровня мероприятие по запуску ракет больших (суммарный импульс более 500 Н×с), малых, а также по сбросу кансатов (атмосферных зондов) из ракет и с аэростата. Уже не первый раз запуски проходят на полигоне военной базы Camp de Ger.

Команда Самарского университета участвует в C’Space в секции больших ракет. В рамках сотрудничества с ISAE (г. Тулуза) наша команда строит ракеты для вывода атмосферных зондов французских и собственного производства на высоту до 2 км. Первые две версии бортовой системы сбора данных и управления моделью ракеты прошли апробацию в рамках запусков ракетTSR 1.0 (2015 г.) и TSR 1.1 (2016 г.)Частично тема разработки бортовой система сбора данных и управления моделью ракеты была рассмотрена автором в публикации[2].

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

 


 


Постановка задачи

Конструкция ракеты представлена на рисункеРисунок 1.

Рисунок 1 – Компоновка ракеты

1.1 Описание конструкции ракеты

Ракета выполнена с применением композитных материалов. С учётом массы и предела высоты выбирается один из доступных двигателей. В ракетах TSR устанавливается двигатель PRO-75 3G [2,3].Имеются две ступени, на каждой размещается полноценная бортовая система и парашют. Отделение осуществляется первой ступенью.Второй ступенью осуществляется выброска атмосферных зондов.

Цикл полёта ракеты:

· Ракета готова к старту, размещена на стартовом столе, электроника включена;Не более 40 минут;

· Ракета набирает высоту;около 16 секунд;

· Ракета достигла предела высоты, расстыковка ступеней, небольшая задержка, открытие парашютов, выброска зондов;около 3 секунд;

· Ракета снижается и достигает земли; около 140 секунд.

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

Система реализует следующие функции:

· Предстартовая проверка работоспособности системы

· Определение момента запуска ракеты;

· Отсчет времени относительно старта;

· Управление включением механизмов для выброса зондов и парашютов;

· Обработка параметров и формирование структур данных для хранения и передачи информации;

· Запись текущей информации на карту памяти для последующего анализа;

· Передача информации полёта по радиоканалу;

· Включение радиомаяка в месте приземления;

· Измерение параметров траектории полета и местоположения ракеты.

После проверки работоспособности ракета устанавливается на стартовый стол. Запуск производится путём подачи импульса на контакты запуска двигателя. Этот импульс подаётся отдельной системой, не входящей в состав рассматриваемой.

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

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

 

Рисунок 2 – Высота ракеты над уровнем моря по секундам от старта

На рисунке Рисунок 3 представлена часть такого расчёта – график зависимости скорости полёта от времени (время приземления не показано). Когда скорость перестанет быть значительной, можно выпустить парашют, вытолкнуть атмосферные зонды.

Рисунок 3 – Расчёт скорость/время для второй ступени TSR 1.1

Контроль параметров траектории и состояния ракеты обычно выполняется с помощью инерциально–измерительной системы, которая включает в себя цифровые 3–осевой акселерометр, 3–осевой гироскоп, 3–осевой магнитометрипроцессор обработки сигналов. В данной работе эта подсистема не рассматривается частично, для неё предусматривается только соответствующий интерфейс и ресурсы контроллера.

В разрабатываемой системе рассматривается возможность измерения скорости полета, местоположения, закладывается возможность для расширения номенклатуры измерений.

Средства определения местоположения ракеты должны обеспечивать работу с действующими системами спутниковой навигации. Наибольшую точность способны обеспечить гибридные приёмники.

Основным элементом управления на борту является системный таймер, который при достижении определенного времени, заданного программой полета, включает выброс зондов и парашюта. Абсолютная погрешность измерения относительного времени для исполнения этой задачи не должна превышать 0,1%.

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

В качестве исполнительных механизмов используются популярные в моделизме рулевые машинки (сервомашинки) с мощностью на валу достаточной для открытия люков и выброса зондов. Управление машинками выполняется широтно-импульсными модуляторами.

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

При выборе параметров радиоканала необходимо учитывать дальность приема и передачи (мощность передатчика), требуемую скорость обмена, частоту передачи, которая должна находиться в нелицензируемом диапазоне, потребляемую мощность, тип антенны.

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

Предстартовая проверка работы системы должна определить работоспособность контроллера системы, датчиков и исполнительных механизмов. Для её реализации необходимо разработать тестовые программы, поместить их в память команд и запустить их с помощью внешнего пульта, содержащего средства ввода информации и отображения.

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

Печатная плата бортовой электроники выполнена в виде круга и используется в дополнение к силовым шпангоутам. В качестве примера показан вид печатной платы, разработанный для первой версии ракеты (рисунок Рисунок 4).

 

Рисунок 4Печатная плата второй ступени TSR 1.1

Бортовая электроника должна функционировать при температуре от плюс 50 до минус 10 °C в режиме «полёт» и от плюс 30 до 0 °C во всех остальных (при хранении и зарядке аккумуляторов).

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

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

Численные значения измеряемых параметров и их диапазоны приведены в ТЗ.

Структурная организация

Особенностью разработки структуры на основе ОМК является наличие в составе любого типа контроллера функционально полного процессорного блока [4].Структурная схема системы приведена на рисунке

Рисунок5.

Рисунок 5 – Структурная организация бортовой системы

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

В микроконтроллерах наиболее широкое распространение получили последовательные синхронно–асинхронные порт USART и синхронные порты SPI и I2C. Современная электронная аппаратура наиболее часто использует именно эти порты. Поэтому при выборе аппаратуры для проектируемой системы было отдано предпочтение устройствам, обеспечивающим передачу информации через порты USART, SPI, I2C.

USART используется в устройствах с пониженными требованиями по быстродействию и относительно длинной линией связи.

SPI, I2C применяются, в основном, для внутриплатного и межмодульного обмена информацией на высокой скорости. Достоинством I2C по сравнению с SPI является возможность работы с несколькими ведущими устройствами и минимальное количество линий связи (2 линии), которое не зависит от числа подключенных устройств.

Поэтому для проектируемой системы наиболее оптимальным было бы использование I2C, но не все требуемые устройства содержат этот порт.

Определения параметров траектории выполняется модулем навигации ML8088sE, который работает с системой ГЛОНАСС, GPS, Галилео. Фиксируемые параметры (время местоположения ракеты по Всемирному координированному времени UTC, широта, долгота, горизонтальная составляющая скорости, направление скорости, магнитное склонение и так далее) принимаются микроконтроллером в виде строки формата NMEA через последовательный порт USART. Периодичность вывода информации может быть задана при настройке модуля.

Передачу данных по радиоканалу осуществляет трансиверCC1125, имеющий множество возможностей для настройки. Онспособен работать на нелицензируемых частотах 443 и 868 МГц, обеспечивая значительную мощность, поддерживает различные режимы модуляции и большой диапазон скоростей обмена. Выбранный модуль пользуется большой популярностью, существуют готовые модули с аналоговой частью,производитель поставляет ПО для быстрой настройки. Этот модуль и абсолютное большинство его аналогов взаимодействуют с помощью интерфейса SPI.В качестве наиболее близких аналогов CC1125 можно рассматривать трансиверы серии CC.

Информация полёта фиксируется на карте памяти, выполняющей роль чёрного ящика. Существуют карты памяти с различными интерфейсами подключения. В проекте используется карта памяти типа SD как самая распространённая и доступная. Взаимодействие осуществляется поSPI. В качестве альтернативы может рассматриваться карта памяти типа MMC, имеющая схожие характеристики.

Контроль параметров траектории и состояния ракеты обычно выполняется с помощью инерциально-измерительной системы, которая включает в себя цифровые 3–осевой акселерометр, 3–осевой гироскоп, 3–осевой магнитометр. Наличие множества датчиков на печатной плате повышают её сложность, уменьшают надёжность. Выбранный датчик MPU–9250 сочетает в себе не только все эти устройства, но и предоставляет вычислительные мощности для их обработки. Датчик имеет большой диапазон, подходящий для применения в проекте. Обмен происходит по интерфейсу I2C, что позволяет в случае необходимости вынести чувствительный датчик на некоторое расстояние от источников помех. В данной работе инерциальная подсистема рассматривается частично.

Выбранный датчик дифференциального давления MPX5100DP позволяет получить скорость полёта по продольной оси.Он имеет подходящий диапазон измеряемого давления, приемлемую погрешность и невысокую стоимость.На рынке представлено не так много датчиков, удовлетворяющих требованиям. Преимущественно они аналоговые и с питанием более 3,3 В.Таким образом, необходим блок АЦП и согласователь уровней. АЦП может быть внешним или в составе МК (предпочтительно). Анализ характеристик АЦП в составе МК фирмы Atmel (Atmega128, ATSAME70J19A) показал их пригодность. В качестве согласователя уровней предлагается резистор как наиболее простое решение в сочетание со встроенными в IO порт защитными диодами.

Сервомашинки предназначены для приведения кинематики ракеты в движение. Для этого они обладают достаточным крутящим моментом – 9,6 кг/см.Существует ограничение по скорости отклика, сервомашинка должна поворачивать вал на 60° за время менее 1 с. Изделие TGY-AN10 обладает необходимыми качествами, доступно по цене и было использовано в ракете TSR 1.1. Клавиатура предназначена для ручного управления сервомашинками и подключается к МК через GPIO.

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

Для решения поставленной задачи необходимы процессорный блок, обладающий ОЗУ и ПЗУ, пять линий ввода/вывода, контроллер прерываний,контроллеры интерфейсов SPI, I2C, USART; АЦП;до трёх аппаратных таймеров.Требуемый объем ОЗУ и ПЗУ для хранения данных и команд будут уточнены в процессе разработки программного обеспечения.

 


 


Алгоритмическое обеспечение

3.1 Основные режимы работы

На рисунке Рисунок 6 изображены основные режимы работы электроники и переходы между ними.

Рисунок 6 – Режимы работы аппаратуры

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

На рисунке 7 изображена диаграмма деятельности бортовой системы.

 

Рисунок 7 – Диаграмма деятельности системы

При подаче питания на МК он переходит к инициализации. Активируется контроллеры всех используемых интерфейсов: SPI, I2C, USART, GPIO, прерываний. Активируется работа с файловой системой, открывается файл для записи на карте памяти. Создаются нити, часть из них запускается, часть приостанавливается, чтобы быть запущенными в нужный момент.Аппаратура находится в режиме «готов». В этом режиме возможно использование клавиатуры для ручного открытия/закрытия сервомашинок. МК постоянно анализирует состояние чеки и сообщения от акселерометра. В случае размыкания чеки или установления факта значительного ускорения аппаратура переходит в режим «полёт». В этом режиме клавиатура отключается, происходит опрос имеющихся датчиков: местоположения, давления и других, передача информации полёта в эфир, резервирование на карту памяти. Также система занимается анализом времени полёта относительно старта, подачей сигналов на исполнительные механизмы в нужный момент. По истечении заранее рассчитанного времениполёта аппаратура переходит в режим «приземл.», отключается резервирование на карту памяти, в эфир передаётся только местоположение, активируется режим пониженного энергопотребления.

3.2 Структурыданныхмодуля навигации

Модуль навигации использует протокол NMEA 0183v3.1 для коммуникации с МК. Общий вид строк в NMEA 0183:

· символ «$».

· 5-буквенный идентификатор сообщения. Первые две буквы – идентификатор источника сообщения, следующие три буквы — идентификатор формата сообщения, согласно протоколу NMEA 0183 определённой версии.

· список данных (буквы, цифры и точки), разделённых запятыми. Если какие-либо данные отсутствуют внутри строки, запятые всё равно ставятся (например «,,»). Некоторые поля в конце строки могут отсутствовать вовсе.

· символ «*».

· 2-значное 16-ричное число — контрольная XOR-сумма всех байт в строке между «$» и «*».

· <CR><LF> (конец строки).

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

$GPRMC,hhmmss.sss,A,GGMM.MM,P,gggmm.mm,J,v.v, b.b, ddmmyy, x.x, n,m*hh<CR><LF>

где «GP» — идентификатор источника; в приведенном примере это GPS, «GL» — ГЛОНАСС, «GA» — Галилео, «GN» — ГЛОНАСС+GPS;

«hhmmss.sss» — время фиксации местоположения по Всемирному координированному времени UTC: «hh» — часы, «mm» — минуты, «ss.sss» — секунды. Длина дробной части секунд варьируется. Лидирующие нули не опускаются;

«A» — статус: «A» — данные достоверны, «V» — недостоверны;

«GGMM.MM» — широта. 2 цифры градусов(«GG»), 2 цифры целых минут, точка и дробная часть минут переменной длины. Лидирующие нули не опускаются;

«P» — «N» для северной или «S» для южной широты;

«gggmm.mm» — долгота. 3 цифры градусов(«ggg»), 2 цифры целых минут, точка и дробная часть минут переменной длины. Лидирующие нули не опускаются;

«J» — «E» для восточной или «W» для западной долготы;

«v.v» — горизонтальная составляющая скорости относительно земли в узлах. Число с плавающей точкой. Целая и дробная части переменной длины;

«b.b» — путевой угол (направление скорости) в градусах. Число с плавающей точкой. Целая и дробная части переменной длины. Значение равное 0 соответствует движению на север, 90 — восток, 180 — юг, 270 — запад;

«ddmmyy» — дата: день месяца, месяц, последние 2 цифры года (ведущие нули обязательны);

«x.x» — магнитное склонение в градусах (в ML8088sE отсутствует);

«n» — направление магнитного склонения (в ML8088sE отсутствует);

«m» — индикатор режима: «A» — автономный, «D» — дифференциальный, «E» — аппроксимация, «N» — недостоверные данные;

«hh» — контрольная сумма;

<CR> — байт равен 0x0D;

<LF> — байт равен 0x0A.

Приемник ML8088sE позволяет осуществлять определение текущего местоположения и вывод информации с различным периодом [5]. Период определения координат (период решения навигационной задачи) задается параметром CDB-ID 303 «GNSS Fix Rate» в секундах, пределы изменения 0,1с…255с.

Вывод информации осуществляется в нескольких страницах (наборах сообщений), имеющих разные темпы и условия вывода (приведено в таблице А3).

Передаваемые сообщения разрешаются установкой в «1» значения соответствующего бита, запрещаются, соответственно, установкой значения в «0». Фабрично установленное значение параметра 210 составляет 0x00000000. Фабрично установленное значение параметра 211 составляет 0x00000000. Фабрично установленное значение параметра 201 составляет 0x00180055. Так как в бортовой системе достаточно одного сообщения RMC, в значение параметра CDB-ID 201 следует записать 0x00000040 (изменение вступает в силу немедленно). Достаточное время вывода RMC – 0,5 с, тогда в параметр CDB-ID 190, задающий время вывода Набора сообщений 0 следует записать 0x01.

Команда установки значения параметра ML8088sE

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

$PSTMSETPAR,<ConfigBlock><ID>,<param_value>[,<mode>]*<cr><lf>

где

<ConfigBlock> – указывает блок конфигурационных параметров (1 – текущая конфигурация, 2 – конфигурация, принятая по умолчанию, 3 – конфигурация, сохраненная в памяти NVM);

<ID> – идентификатор параметра (CDB-ID);

<param_value> – значение параметра или маска бита;

[,<mode>] – (опционально, по умолчанию 0) режим записи (0 – прямая запись значения в том виде, как оно введено, 1 – запись значения в виде побитного логического ИЛИ текущего и введенного значений, 2 – запись значения в виде побитного логического И текущего значения и инвертированного введенного значения.

Примеры установки значения параметра 201 (CDB-ID 201) в 0x0040

$PSTMSETPAR,1201,00000040,0*<cr><lf>

Примеры установки значения параметра 190 (CDB-ID 190) в 0x01

$PSTMSETPAR,1190,01,0*<cr><lf>

где

<cr> – возврат каретки есть 0x0D;

<lf> – подача строки есть 0x0A.

Алгоритм работы с модулем навигации в программе

Инициализировать соответствующий USART;

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

Принимать данные в прерывании как важные, хранить в буфере.

3.4 Алгоритм вычисления приборной скорости

На рисунке ниже представлена зависимость выхода датчика дифференциального давления MPX5100DP от давления.

Рисунок 8 – Зависимость напряжения от давления

Результат преобразования ADCW переводится в напряжение  по следующей формуле

где опорное напряжения АЦП.

         

Значение давления вычисляется на основании формулы

 

 

где напряжение питания датчика,𝑃𝑟𝑒𝑠𝑠𝑢𝑟𝑒𝐸𝑟𝑟𝑜𝑟=2,5 для MPX5100DP, 𝑇𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑒𝐹𝑎𝑐𝑡𝑜𝑟=1 при температурах 0 – 85°C.

Скорость вычисляется согласно уравнению Эйлера [6]

где давление, измеряемое датчиком, ρ плотность воздуха.

Плотность воздуха может быть получена различными путями. Стандартной величиной плотности воздуха на уровне моря в соответствии с Международной стандартной атмосферой принимается значение 1,225 кг/м³, которая соответствует плотности сухого воздуха при 15 °С и давлении 101330 Па. Для иных температур и давлений существую таблицы [7].

Возможно вычислить плотность по уравнению Клапейрона-Менделеева [8].

Алгоритм работы с трансивером в программе:

Инициализировать АЦП;

Выбрать канал АЦП с датчиком;

Произвести измерение;

Сохранить код АЦП в буфере для последующего преобразования на ПК.

3.4 Структуры данных трансивером

На рисунке ниже приведена последовательность возможных состояний трансивера CC1125 после подачи питания.

Работа с трансивером начинается с инициализации регистров настройками. После инициализации трансивера он оказывается в состоянии IDLE (см.рисунок 9). Необходимо перейти в состояние Transmit mode. Так как существует неуверенность в том, в каком точно состоянии сейчас находится трансивер (не исключены TX_FIFO_ERROR и RX_FIFO_ERROR), то предварительно точно переведём его в IDLE, а затем уже в Transmit mode, для удобства вызов необходимых команд был сгруппирован в процедуреCC112X_TxMode.

Рисунок 9 – Логические состояния CC1125

Данные для передачи должны быть загружены в TXFIFO буфер трансивера, к ним будет добавлена некоторая служебная информация (в том числе CRC), после чего произойдёт передача по радиоканалу. В случае необходимости можно также принимать радиопередачи. Для этого необходимо читать RXFIFO буфер (служебная информация в него не попадает).

Алгоритм работы с трансивером в программе:

Инициализировать SPI, выбрать трансивер;

Инициализировать трансивер начальными настройками;

Перевести трансивер в Transmit mode;

Записывать данные в TXFIFO для передачи по радио;

Читать данные из RXFIFO в случае необходимости приёма.

С каждого средства измерения данные приходят пакетом, но порядок прихода пакетов не регламентируется, хотя и ожидается. Для формирования пакета передачи (таблица 1) необходимо сгруппировать все пришедшие за определённый промежуток пакеты, которые предполагается отправить. Данная задача решается с помощью кольцевых буферов. Период передачи согласно ТЗ.

Структура пакета для передачи одинакова для карты памяти и для трансивера. Расчёт расхода канала приведён ниже.

Таблица 1– Структура пакета для передачи

 

 


Легко видеть, что при периоде передачи 1 с запас ширины канала составит 57 байта. Это позволяет во время передачи основного пакета дополнительно передавать небольшие сообщения о состоянии системы, пройденных этапах полёта, возникших неполадках.

3.5 Особенности операционных систем в микроконтроллерах

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

Рассмотрим некоторые основные возможности, предоставляющие применение операционных систем при программировании микроконтроллеров.

Во-первых, многозадачность. Программист оформляет код нитей, а операционная система переключает их в соответствии с алгоритмом и устройством планировщика (кооперативная или вытесняющая многозадачность). Большинство современные ОСРВ учитывают приоритет нитей (задаётся программистом).

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

Во-третьих, операционная система предоставляет средства для синхронизаций между нитями: семафоры бинарные, циклические, группы событий (Event Group), мьютексы, очереди и другие.

В-четвёртых, использование ОСРВ улучшает читабельность и наглядность программного кода и повышает удобство написания программы командой разработчиков.

В разрабатываемой системе применение ОСРВ обусловлено необходимостью дальнейшего расширения.

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

ОСРВ требует от МК много памяти: система размещает в RAM свои внутренние переменные; размещает создаваемые задачи (их текущее состояние, адрес возврата, внутренние таймеры и др.), система занимает место и в программной памяти.

Если к запуску готово несколько нитей, ОСРВ переключает их, выдавая машинное время и ресурсы по очереди, обычно – с учётом приоритетов. Готовая к выполнению нить с высшим приоритетом захватит ОСРВ до той поры, пока не изменит своё состояние, что может привести к нежелательным эффектам.

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

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

Существует проблема доверия к коду операционной системы, особенно при использовании ОСРВ в жизненно важных областях.

Существуют множество систем ОСРВ: Salvo, TI-RTOS, uClinux, VxWorks, FreeRTOS. Их преимущества и недостаткирассмотрены в литературе[11, 12].Лучшими характеристиками для проекта обладает FreeRTOS.FreeRTOS имеет следующие положительные стороны: модифицированная лицензия GPL [9]; портирована на большое количество микроконтроллеров; мощный функционал; существуют различные дополнительные библиотеки; хорошая документация. Среди недостатков стоит отметить, что в отсутствии готовой сборки для данного МК, необходим сложный процесс портирования.

Существуют смежные с FreeRTOS продукты – это OpenRTOS и SafeRTOS, они реализуют те же подходы и предоставляют почти те же возможности. SafeRTOS прошёл сертификацию на соответствие стандарту безопасности IEC 61508 – коммерческий продукт фирмы WITTENSTEIN high integrity systems [10]. Основные лицензионные отличия между FreeRTOS и OpenRTOS приведены в таблице А4.

3.8Реализация управления сервомашинками

Для управления сервомашинками используется ШИМ. В работе необходимо 3 канала ШИМ, предусмотрена возможность их увеличения.

Для управления сервомашинкой необходимо на управляющий вход подавать импульсный сигнал с одинаковой частотой и разной длительностью импульса. Длительность импульса от 0,7 до 2,3мс определяет положение привода, что иллюстрирует рисунок ниже.

 

Рисунок 10 – Цикл работы сервомашинки

Реализация в бортовой системе. Каждаясервомашинка подключена к своему выводу МК. Необходимо реализовать ШИМ на 8 каналов. Импульсы будут генерироваться одним таймером, в прерывании. Принцип генерации: все импульсы на сервомашинки задаются одновременно. Затем в таймер, в регистр сравнения, заносится время длительности первого импульса. По прерыванию сравнения происходит сброс бита на порту первого канала, загрузка в регистр сравнения таймера значения длительности второго импульса.Таймер продолжает, загружая по очереди длительности импульсов и отрабатывая все каналы. Досчитав до 20мс, цикл повторяется.При таком подходе необходимо, однако, сортировка сервомашинок по возрастанию длительности интервала.

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

 

Рисунок 11 – Цикл работы сервомашинок

Запустить таймер, задав некоторое начального значение для прерывания совпадения.

Объявить некоторую переменную,обнулить, переменная будет считать такты. Для каждого сервопривода требуется два такта: фронт импульса и спад.

При первом попадании в прерывание на выводе реализуемого ШИМ задать «1», требуемая длительность импульсазаписать в регистр совпадения, увеличить счетчик.

При втором срабатывании прерывания проверить счетчик, сбросить вывод, записать в регистр число, характеризующее значение счётного регистра в моментзапуска второго сервопривода. И так далее…

Таким образом невозможно задействовать более 10 сервомашинок, однако такое ограничение не входит в противоречие с ТЗ.

 










Последнее изменение этой страницы: 2018-04-12; просмотров: 322.

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