Бортовой управляющий комплекс сверхмалой космической платформы

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

Рубрика Астрономия и космонавтика
Вид дипломная работа
Язык русский
Дата добавления 08.03.2014
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

При использовании данного датчика будут задействованы только выводы Vdd, GND, SDA, SCL, отвечающие соответственно за питание, заземление, передачу данных и тактирование. Адресные выводы A0, A1 и A2 использованы не будут, как и NC (No Internal Connection).

Разработка программного обеспечения имеет своей конечной целью создания файла прошивки для ПЛИС. Учитывая это, а также возможности среды разработки ISE Xilinx, целесообразно использовать в качестве отдельных элементов структуры проекта встроенные и/или сторонние IP-ядра (Intellectual Property Core), представляющие собой готовые блоки для проектирования микросхем. Поскольку в стандартных библиотеках среды разработки ISE отсутствует IP-ядро интерфейса I2c, принято решение использовать стороннее бесплатное IP-ядро I2c-master, написанное на языке VHDL (рисунок 2.5), имеющего совместимость с используемой при отладке отладочной платы с ПЛИС Xilinx Spartan-6.

У данного блока имеются следующие входные порты: clock (тактирование, счетное время), reset_n (отвечает за асинхронную перезагрузку ядра), ena (если его значение равно "0" - остановка работы ядра, "1" - включение ядра, загрузка данных с портов addr,rw,data_wr), addr (адрес необходимого slave-устройства), rw ("0" - режим записи, "1" - режим чтения), data_wr (передаваемые данные на устройства); выходные порты: data_rd (считываемые с устройства данные), busy ("0" - индикатор режима ожидания, "1" - индикатор работы ядра), ack_error ("0" - ошибки отсутствуют, "1" - в процессе работы возникли ошибки) - при каждом перезапуске ядра данный буфер накопления ошибок обнуляется.

Также имеется два порта, работающих как на прием, так и на отправку информации - sda (линия данных), scl (линия тактирования).

Логика работы данного ядра представлена на рисунке 2.6 При запуске подсистемы ядро находится в режиме ожидания (состояние ready), при этом постоянно (с заданной частотой clock) считывает информацию с порта ena. В случае, если оно принимает значение "0" - состояние зацикливается само на себя повторяя обновление информации. Если ena = "1", то ядро начинает свою работу. Вначале происходит обнуление всех регистров и перезапись констант, затем - считывание информации с портов addr, rw (состояние command). Проделав данные операции, система определяет значение параметра rw - чтение/запись. В случае, если rw = "1", то происходит определения устройства по заданному ранее параметру addr, задание констант для работы мастера и непосредственное считывание информации с устройства. Если rw = "0", то выбирается устройство, согласно значению addr и считывание информации с slave-устройства. Данные операции могут прерваться 3 способами. Первый - задание параметру ena значения "0" (система переходит в режим ожидания и прекращает своё функционирование), второй - переназначение параметра rw на противоположный, что влечет за собой переходит в иной режим чтения/записи информации с/на устройство, третий - перезагрузка ядра путем подачи на вход reset_n "0". Отличие третьего от первых двух заключается в том, что при перезагрузке ядра происходит прерывание независимо от текущего состояния системы, обнуление значений data_rd и ack_error, задания значения "1" на выход busy, а в двух первых случаях вначале закончится текущая программа работа, а затем перейдет в необходимое состояние.

В соответствии с циклом работы данного интерфейса разработана простейшая система управления данным интерфейсом (рисунок 2.7). Согласно данной SF-диаграмме работа управляющего автомата представляет собой замкнутый бесконечный цикл, в котором инициализируещее состояние First выдает разрешающее значение "1" на вход данной диаграммы enai2c, которые впоследствии при создание проекта в ISE будет соединен со входом ena IP-ядра I2c. Затем происходит остановка работы интерфейса значением "0" того же порта и снятие действующего значения температуры с выхода data_rd IP-ядра, подающегося на вход data_in управляющего автомата и присвоение локальной переменной data этого же значения. Следующее состояние First3 реализует передачу данных показаний температурного датчика на выход управляющего автомата mem, который будет соединен с отдельным автоматом управления внутренней памятью самой платы.

В соответствии с циклом работы данного интерфейса разработана простейшая система управления данным интерфейсом (рисунок 2.7). Согласно данной SF-диаграмме работа управляющего автомата представляет собой замкнутый бесконечный цикл, в котором инициализирующее состояние First выдает разрешающее значение "1" на вход данной диаграммы enai2c, которые впоследствии при создание проекта в ISE будет соединен со входом ena IP-ядра I2c. Затем происходит остановка работы интерфейса значением "0" того же порта и снятие действующего значения температуры с выхода data_rd IP-ядра, подающегося на вход data_in управляющего автомата и присвоение локальной переменной data этого же значения. Следующее состояние First3 реализует передачу данных показаний температурного датчика на выход управляющего автомата mem, который будет соединен с отдельным автоматом управления внутренней памятью самой платы.

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

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

Поскольку было принято решение об использовании при отладке только одного температурного датчика. Реализация полного алгоритма представлена на рисунке 2.8.

Алгоритм работы данной SF-диаграммы следующий: поступаемая информация обрабатывается последовательно на предмет превышения порога истинных значений. Для данного датчика они являются +125 и - 55 градусов Цельсия. Заранее оговорено, что датчик работает в целочисленном двоичном режиме передачи информации о температуре (7-разрядный код - значение температуры, 1 бит - знак температуры). Например, значению + 125 градусов Цельсия соответствует код 01111101, - 55 - 11001001, 0 градусов - 00000000. Шаг измеряемой температуры - 1 градус. В итоге, в случае обнаружение выхода измеряемого параметра из интервала допустимых значений к записываемому в память коду прибавляется логическая 1 для последующего декодирования на наземном пункте управления, если нет - то логический ноль.

Логическая "1" при декодировании на НКУ может быть следствием либо неисправности датчика, либо превышения пороговой температуры работы космического аппарата, что маловероятно.

2.3 Разработка SF-модели алгоритма управления системой энергоснабжения

Основными функциями, которые должна выполнять система электроснабжения, являются:

1. Получение, хранение, правильное использование энергии.

2. Распределение энергии.

3. Защита БКУ от перегрузок.

Для получения энергии будут использоваться солнечные батареи. СБ будут располагаться на 5 из 6 сторон спутника, это связано с тем, что одна из сторон может быть задействована под полезную нагрузку [20,21]. СБ будут соединены параллельно, и каждая будет защищена диодом, чтобы энергия не тратилась впустую. Для производства максимальной энергии, используется MPPT - это устройство ищет такое значение напряжения на СБ, чтобы энергия была максимальна. Затем идет соединение с АБ (аккумуляторной батареей) и общей шиной. АБ батарея подключается к СБ через защитную схему. В шине же, задается некоторое значение напряжения, которое потом может быть легко преобразовано к виду, который требует нагрузка, с помощью конвертера. В случае, если меняется нагрузка, для её подключения к СЭС необходимо только добавить нужный конвертер.

Была создана модель простейшей системы электроснабжения наноспутника:

На данной Simulink схеме можно выделить несколько основных компонентов:

1. Solar Panel - модель солнечной батареи, для её работы принимается количество параллельно и последовательно связанных элементов, температура СБ, напряжение на элементе, а также солнечный поток.

2. Battery - представляет собой АБ, можно изменять тип, напряжения, тип АБ, начальный уровень зарядки. Данный элемент из стандартной библиотеки Simulink.

3. Battery_manage - управляющий автомат, принимает значение тока генерируемого СБ, а также уровень заряда АБ.

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

Модель солнечной батареи была создана на основе теоретического представления. Для инициализации же батареи, необходимо задать количество элементов соединенных параллельно и последовательно. Таким образом, задав параметры некоторой батареи, можно узнать мощность, которую она генерирует, узнать, сколько элементов нужно для получения конкретной мощности, а также узнать другие зависимости, например от T. В Simulink уже имеется библиотека с электрическими системами, поэтому имеет смысл сделать модель СБ совместимой с данной библиотекой, для этого применяется элемент Controlled Current Source, который преобразует сигнал идущий с СБ, в совместимый.

В связи с тем, что спутник некоторое время находится на солнечной стороне, а некоторое время на теневой - это вынуждает нас использовать АБ. Однако, АБ обладает рядом характеристик за которыми необходимо следить, а значить требуется создать управляющее устройство. В данном автомате имеется два основных состояния - спутник находится на солнечной стороне Light, на теневой стороне Dark. Состояние Light в свою очередь имеет 2 под состояния, Charge - т.е. в данный момент идет зарядка, и Discharge - т.е. в данный момент батарея не заряжается. Состояние Dark - имеет 3 под состояния - Work, Low_charge, Very_Low. Если батарея заряжена достаточно, т.е. имеет более 10% своей емкости, то происходит работа в автономном режиме. Если случается так, что батарея имеет низкий заряд, т.е. < 10%, то отправляется сообщение на другие системы, о том, что низкий заряд батареи. Если же заряд становится еще меньше, то происходит отключение основной шины от источников питания, т.е. все системы отключаются. Это связано с тем, что Li-ion АБ имеет свойство деградировать при сильном разряде батареи. Можно проанализировать работу на основе выходных данных (рисунок 2.11).

На данном рисунке изображена осциллограмма заряда АБ. В начальный момент заряд составляет 20%, до момента времени 1000 происходит зарядка АБ, и также часть энергии уходит в нагрузку (состояние Light. Charge). В момент времени 1000 спутник переходит на теневую сторону и происходит переключение на работу от аккумулятора (состояние Dark. Work), АБ разряжается, что видно по наклонённой прямой. Далее работа происходит аналогично. Также данный подход к проектированию СЭС подразумевает еще одну интересную особенность. Мы может сделать часть системы настоящими, а часть оставить моделями, затем сделать небольшие изменения в Simulink-схеме и получить работоспособную модель. Это позволяет на любом этапе проверять правильность созданной модели и вносить коррективы в уже существующие или еще создающиеся устройства.

На данный момент в качестве основных источников электропитания космической платформы "Синергия" приняты два литиево-полимерных аккумулятора, находящихся внутри каркаса, и шесть солнечных батарей, расположенных снаружи на боковых гранях КА (рисунок 2.12 - 2.14).

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

Разработанная модель представлена на рисунке 2.15.

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

Состояние EnControl реализует функции взаимодействия с блоком обработки разовых команд, приходящих с наземного комплекса управления. При входе в данное состояние внутренней переменной stEN присваивается значение уже известного из предыдущей главы порта вывода данных energy. Далее принимается решение о дальнейшим действии, исходя из значения самой этой переменной: в случае, если stEN=1, то подаются значения "0" на порты вывода PL и SEND, первый из них отключает энергопитания полезной нагрузки космического аппарата, второй - передающую антенну и систему формирования исходящей информации, расположенной в бортовом радиотехническом комплексе; если же stEN=0, то ничего не происходит и состояние перезагружает информацию с порта.

Состояния EnOn и ZenON (также как и EnOn1 и ZenON1) являются зависимыми. Есть возможность реализовать функции, выполняемые ими в одном состоянии, но они разнесены с целью увеличить производительность за счет многопоточности простых задач, а также обеспечения постоянного контроля за напряжением аккумуляторных батарей. Следует сказать, что данные состояния дублируются, поскольку на платформе "Синергия" предусмотрено 2 аккумуляторных батареи, а солнечная батарея представляет собой совокупность нескольких работающих на один контур управления.

Состояние EnOn реализует проверку текущего напряжения на аккумуляторной батареи. Информация в двоичном коде поступает из микроконтроллера СЭС, который считывает её с датчика напряжения. Поскольку максимальное напряжение работы выбрано аккумуляторной литиевой батареи равно 12 В, порог принятия решения был выбран равным половине, т.е.6 В. В случае если текущее напряжения ниже 6 В, активируется состояние ZenOn и управляющий автомат включает заряд от солнечных батареи на данный аккумулятор и отключает питание с него самого. Когда напряжение вновь приходит в норму, происходит перестройка в обычный режим - космический аппарат питается параллельно энергией, запасенной в аккумуляторах и поступающей с солнечных батарей.

Таким образом, были созданы SF-диаграммы для трех подсистем бортового комплекса управления. С ходом их разработки производилась непосредственная симуляция в Simulink. Данные, полученные в ходе этого, полностью соответствуют теоретическим. Следовательно, следующим шагом должна быть непосредственная генерация HDL-кода и его верификация с помощью специальных аппаратных средств.

3. Практическая реализация бортового управляющего комплекса в базисе ПЛИС FPGA

3.1 Создание лабораторного макета БКУ сверхмалой космической платформы

Для создания лабораторного макета была использована отладочная плата Nexys 3 производителя Digilent (рисунок 3.1). Эта плата содержит в себе ПЛИС FPGA Xilinx Spartan 6 (XC6SLX16-CSG324), 16 Мбайт RAM-памяти, 32 Мбайт PRAM памяти, встроенный генератор, настроенный на частоту 100 МГц, четырехразрядный семисегментный индикатор, 8 LED-индикаторов, 8 ручных реле-переключателей, 5 кнопочных переключателей, порты ввода-вывода информации: VGA, VHDC, 4 Pmod, Ethernet 10/100, USB, USB-UART. Структурная схема отладочной платы также приведена на данном рисунке.

Второй составляющий отладочного процесса является плата с напаянными на неё датчиками (рисунок 3.2).

Плата состоит из трех датчиков, чьи ножки подведены к выводам, соответствующим формату физического интерфейса Pmod и интерфейсу обмена данными I2c. Причем отдельно собраны в один контур 2 датчика (магнитометр и акселлерометр), а датчик температуры на другой контур. Сделано это для отработки работы интерфейса I2c с адресацией и без неё. Информация по используемым датчикам приведена в таблице 3.1.

Таблица 3.1 - Сводная таблица информации об используемых датчикам при формировании лабораторного макета

Датчик

Производитель

Модель

Поддержка

интерфейсов

Напряжение

питания

Температурный датчик

Dallas Semiconductor

DS1624S+

I2c

2.7 - 5.5 В

Акселерометр

Bosch

BMA150

I2c, SPI

2.16 - 3.6 В

Магнитометр

Honeywell

HMC5883L

I2c, SPI

3.3 В

Используемый физический интерфейс Pmod является собственной разработкой фирмы Digilent Inc. Поэтому, дополнительная плата с датчиками была выполнена вручную.

Датчик температуры DS1624S+ позволяет измерять температуру в пределах от - 55 до +125 градусов Цельсия, что соответствует условиям, в которых будет находиться аппарат в космическом пространстве. Он позволяет проводить измерения с точностью до 0.5 градуса, однако при его использования был выбран режим, в котором работа происходит только с целочисленным значением показаний. График зависимости ошибки передаваемой информации в зависимости от температуры устройства представлен на рисунке 3.3.

Интерфейс Pmod представляет собой 12-пиновый разъем (рисунок 3.4) со стандартным размером входа, включающим 2 входа для подачи питания (1,7 на рисунке), 2 - для заземления (2,8 на рисунке) и 8 - информационных (3-6, 9-12 на рисунке). Он позволяет работать с напряжением 3.3 В и 5.5 В, что полностью удовлетворяет условиям используемых датчиков. Для использования протокола I2c задействуются порты 1-4 и 7-10 физического интерфейса Pmod. Протокол I2c использует две шины: SDA - шина данных и SCL - шина тактирования, что соответствует портам 3,9 и 4,10 соответственно.

Для проверки работоспособности всего проекта использовалось следующее программное обеспечение: для создания имитационной модели, её программной верификации, перевода в HDL-код - пакеты программ Stateflow, Simulink, HDL-coder системы автоматизированного проектирования и разработки Matlab; для синтезирования файла прошивки ПЛИС, разводки платы - система автоматизированного проектирования Xilinx ISE 13.3; программатор для ПЛИС - Adept. Общий вид лабораторного макета представлен на рисунке 3.5.

Плата подключается к компьютеру с помощью интерфейса USB-prog, что существенно упрощает работу при программировании ПЛИС. Файл прошивки записывается в ПЗУ отладочной платы, что позволяет не терять информацию в случае её отключения.

В итоге, для отладки программного HDL-кода на отладочной плате использовались: порт ввода-вывода информации Pmod, 8 LED-индикаторов для отображения значений температуры в реальном времени, 3 реле переключателя для изменения режима работы конечного автомата.

3.2 Автоматическая генерация кода конфигурации ПЛИС на базе модели БКУ

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

Для автоматической генерации HDL кода используется встроенная утилита HDL coder toolbox системы автоматизированного проектирования и разработки Matlab, которая позволяет довольно простыми методами получить необходимый код на заданном языке программирования. HDL Coder генерирует синтезируемый Verilog и/или VHDL код из функций Matlab, моделей Simulink и диаграмм Stateflow. Полученный HDL-код может быть использован для программирования ПЛИС или прототипирования.

В состав HDL Coder входит инструмент под названием HDL Workflow Advisor (помощник по работе с HDL), который автоматизирует программирование ПЛИС компаний Xilinx и Altera. Можно контролировать HDL-архитектуру и реализацию, выделять критические пути и генерировать отчеты об использовании аппаратных ресурсов. Обеспечивается трассируемость между моделью Simulink и сгенерированным VHDL и Verilog кодом, что позволяет верифицировать его для приложений, требующих высокого уровня надежности.

Ключевые особенности:

не зависящий от конечного устройства, синтезируемый VHDL и Verilog код;

генерация кода поддерживается для системных объектов и функций Matlab, а также

блоков Simulink;

автоматы Мили и Мура и реализация управляющей логики с использованием Stateflow;

рабочий помощник для программирования плат с ПЛИС компаний Xilinx и Altera;

совместное использование ресурсов и восстановление синхронизации для достижения

компромисса между скоростью и площадью;

интеграция старого кода.

Генерация HDL-кода для ПЛИС происходит в несколько шагов:

создание проекта, комбинируя код Matlab, блоки Simulink и диаграммы Stateflow;

оптимизация модели для достижения требуемых показателей площади схемы и скорости;

генерация HDL-кода с помощью встроенного помощника по работе с HDL для Matlab

и Simulink;

проверка сгенерированного кода с использованием HDL Verifier.

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

После синтеза проекта можно просмотреть отчет по времени и выделить в модели Simulink узкие места с ограничениями по времени. Эта интеграция со средствами синтеза позволяет быстро производить рабочие операции и значительно сокращает время проектирования на ПЛИС.

Чтобы быстро проверить полученный HDL-код, вместе с ним генерируются и тестовые вектора, которые можно настроить с помощью разнообразных опций, добавляющих дополнительные входные сигналы для кода. Также можно создать скрипт для автоматизации процесса компиляции и симуляции кода в HDL-симуляторах. HDL Verifier позволяет сгенерировать два типа моделей ко-симуляции:

выполнение ко-симуляции HDL-кода в Simulink и HDL-симуляторе, таком как Cadence

Incisive или Mentor Graphics ModelSim и Questa;

FPGA-in-the-loop (FIL) - для проверки проекта в Simulink и плате с ПЛИС.

Общая итоговая модель, созданная при помощи пакета Stateflow среды автоматизированного проектирования и разработки Matlab представлена на рисунках 3.6 - 3.9.

Данная модель содержит 3 вложенных состояния - Radio, Telemetry, Energy, что соответствует конечным автоматам, отвечающим за обработку радиокоманд (рисунок 2.2), сбор и обработку телеметрической информации (рисунок 2.3), управление системой энергоснабжения (рисунок 2.4). Логика работы данных Stateflow-диаграмм уже описывалась. Стоит упомянуть лишь о том, что общая структура работы выполнена в виде параллельной декомпозиции, что является неотъемлемой частью современной системы.

Автоматическая генерация кода предлагает использовать в качестве конечного продукта два языка - VHDL и Verilog. По заявлению фирмы Xilinx оптимальным языком для выпущенных данной компанией устройств является VHDL, несмотря на это принято решение о генерации кода обоих языков с целью последующего сравнения по непосредственным текстовым размерам.

На этапе изучения утилиты HDL Coder было выявлено, что некоторые стили создания диаграмм Stateflow HDL coder не поддерживает, в частности таблицы истинности и древа if-else с безусловными переходами выше пятого порядка [15]. В соответствии с этим модель была доработана.

Перед началом генерации кода разработчика говорят о необходимости настроить параметры созданной модели для оптимальной работы с HDL кодером. Вручную делать это не представляется целесообразным, поскольку для этого достаточно ввести в командной строке Matlab команду: >>hdlsetup "Имя модели".

Наиболее удобным и простым в реализации способом для генерации HDL кода является использование утилиты HDL Workflow Advisor, позволяющей пошагово произвести генерацию кода (рисунок 3.10).

Первым шагом является установка целевого назначения использования утилиты, а также непосредственно самой аппаратуры, для которой будет генерироваться код (рисунок 3.11). В данной работе используется просто генерация HDL кода для ПЛИС Xilinx Spartan 6 сборки csg324. Дополнительно в этом же диалоговом окне устанавливается конечная директория для сохранения файлов, а также инструмент для синтезирования сгенерированного кода. В случае установки, к примеру программы Xilinx ISE в качестве ПО для отработки кода, появляется дополнительный пункт 4 FPGA Synthesis and Analysis. На данном этапе это не представляет интереса, поскольку в дальнейшем проведена непосредственная генерация кода конфигурации в Xilinx ISE.

Следующий шаг - подготовка имитационной модели Simulink для генерации HDL кода. На данном этапе автоматизировано проводятся следующие виды проверок: общая (проверка установок и параметров модели), проверка на наличие циклически замкнутых алгебраических выражений, проверка на отсутствие неподдерживаемых для генерации блоков в составе модели и проверка на временные интервалы симулирования (рисунок 3.12).

Третий шаг - установка пользовательских настроек для генерируемого кода (рисунок 3.13). В числе данных настроек: выбор генерируемого кода (VHDL/Verilog); выбор тематики отчетов, создаваемых по результатам генерации; установка наименований для портов тактирующих импульсов, сброса и разрешающего; выбор вида сигнала сброса (синхронный/асинхронный); выбор установок по оптимизации кода; выбор стиля кодирования и комментариев. Стоит сказать, что также на данном этапе возможен выбор непосредственно генерируемых файлов, в числе которых могут быть: HDL код, Testbench код и модель для косимуляции с выбираемым там же симулятором (например Mentor Graphics ModelSim).

Таким образом были сгенерированы три файла: satellite. vhd, Model_HDL. vhd и Model_HDL_pkg. vhd, что соответствует коду для SF-диаграммы и коду высшего уровня иерархии. В случае успешно прохождения всех этапов на экран выводится отчет о процедуре генерации HDL кода (рисунок 3.14).

В данном отчете можно увидеть всю необходимую информацию как о выходных данных, так и об программном обеспечении, используемом для генерации. Представляет интерес тип отчета, в котором указаны элементы, создаваемые на ПЛИС в результате загрузки данного кода в микросхему. С целью проведение эксперимента была проведена автоматическая генерация HDL кода на языках VHDL и Verilog. Сравнительные данные о типе используемых элементов на ПЛИС и их количестве представлены в таблице 3.2.

Таблица 3.2 - Сравнительная таблица использования ресурсов ПЛИС для VHDL и Verilog кодов

VHDL

Verilog

Перемножители

10

12

Сумматоры

32

41

Регистры

110

109

Элементы памяти

0

0

Мультиплексоры

140

134

Общая длина кодового текста

2475

2500

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

Таким образом, можно говорить об удачном прохождении этапа автоматической генерации HDL код на основе имитационной модели Simulink/Stateflow. Следующим шагом станет верификация созданного программного обеспечения, генерация файла конфигурации ПЛИС и его проверка на лабораторном макете.

3.3 Верификация кода конфигурации по технологии Model-Based Design

На данном этапе задача состоит в верификации полученного ранее кода по технологиям Model-Based Design. Существует несколько видов данных проверок, а именно:

1. Model-in-the-Loop (MIL) - тестирование модели в режиме симуляции - происходит в среде Simulink, в результате чего на выходе модели при воздействии тестового вектора получаем набор значений.

2. Software-in-the-Loop (SIL) - тестирование программного обеспечения в замкнутом окружении. На данном этапе вся модель, состоящая из блоков Simulink, написанных на языке Matlab, переводится в единый блок S-функции, конфигурируемый на языке C или C++.

3. Processor-in-the-Loop (PIL) - тестирование контроллера в отладочном окружении. Сгенерированный по данной технологии код исполняется на целевом процессоре или на эмуляторе набора инструкций.

4. Hardware-in-the-Loop (HIL) - тестирование аппаратно-программного комплекса на тестовом оборудовании. Обычно выполняется в лаборатории как финальный тест перед интеграцией системы и полевыми испытаниями.

5. FPGA-in-the-Loop (FIL) - разновидность технологии HIL, непосредственно реализуемая в базисе ПЛИС.

В данной работе принято необходимым тестирование в режимах SIL и FIL. При проведении верификации SIL откомпилированный и сгенерированный код для локальной операционной системы выполняется в имитационной модели, где целевая модель заменяется на созданный блок Simulink.

Для программного тестирования используется Real-Time Workshop Embedded Coder. В результате удачной генерации модели на экране отображается блок сгенерированной S-функции. S-функция - это описание логики работы модели на языке, понятным Simulink.

При тестировании по данной технологии целевым системным файлом в настройках генерации кода выбирается ert. tlc. В соответствии с этим открывается возможность выбора создания блока для SIL или PIL (рисунок 3.16).

В результате построения инициализируется вызов нового окна Simulink, где создается модель для SIL верификации (рисунок 3.11)ю

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

Процесс верификации FPGA-in-the-Loop сводится к разработке модульного теста (вектора), получение результатов от воздействия тестового вектора на компонент и сравнение полученных результатов с ожидаемыми результатами (рисунок 3.13) [11].

При проведении процедуры FIL тестовый вектор подается одновременно на Simulink модель и отладочную плату, прошитую кодом компонента через отладочный интерфейс - в данной технологии применяется Ethernet соединение. Результаты работы ПЛИС передаются обратно в модель Simulink и сравниваются с результатами моделирования.

Для создания модели верификации FIL используется утилита FPGA-in-th-Loop Wizard. В результате прохождения всех стадий генерируется FIL блок для модели Simulink и файл прошивки для загрузки на отладочную плату (рисунок 3.14).

Затем в имитационной модели происходит замена на FIL блок и запускается процесс симуляции. При этом данные поступают через Ethernet интерфейс непосредственно на саму отладочную плату, выходные данные снимаются с неё таким же образом.

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

Заключающим шагом стало создание файла прошивки в САПР Xilinx ISE, специально предназначенной для работы с продуктами данной компании-производителя. Данная программа используется для оптимизации кода конфигурации и создания файла прошивки ПЛИС. Таким образом в качестве входных данных используется файла HDL кода, автоматически сгенерированные ранее.

Xilinx ISE представляется собой последовательный набор процедур, предназначенный для оптимизации создаваемого кода конфигурации под задаваемую аппаратную платформу (рисунок 3.15).

В результате прохождения всех шагов на выходе создается файл прошивки, который загружается на отладочную плату с помощью специального программатора Adept, поставляемого в комплекте (рисунок 3.16). Результатом является наглядное соответствие функционирования программного кода на отладочной плате (рисунок 3.17).

В результате проведенной работы сгенерированный код VHDL был проверен по технологиям Software-in-the-Loop и FPGA-in-the-Loop, а также был сгенерирован код конфигурации ПЛИС в программе Xilinx ISE, впоследствии загружен на саму отладочную плату и автономно отработан. Таким образом можно сказать, что принятая в данной работе концепция построения бортового комплекса управления может быть реализована. В результате автоматической генерации HDL кода, сгенерированные файлы были использованы для непосредственного формирования кода конфигурации ПЛИС Spartan 6. Стоит сказать, что вполне возможен выбор другой платформы на базисе ПЛИС. При этом кроссплатформенность данного метода обеспечивается утилитами HDL Workfloor Advisor и FPGA-in-the-Loop Wizard, входящими в состав пакета программ Matlab, то есть обеспечена необходимая кроссплатформенность создаваемого программного обеспечения.

Заключение

Цель работы - выбор концепции построения бортового управляющего комплекса научно-образовательной микроспутниковой платформы, а также его программная реализация по технологии Model-Based Design - достигнута.

Обоснование и выбор схемы построения бортового комплекса управления выполнены в полном объеме. В результате обзора типичных схем реализации БКУ наноспутников была выбрана централизованная как наиболее компромиссная и простая в реализации. На основе результатов исследования эксплуатируемых КА было принято решения отказаться от использование операционной системы реального времени в пользу концепции построения БКУ на основе конечных автоматов. В соответствии с этим было принято решение о использовании технологии Model-Based Design для разработки программного обеспечения на базе ПЛИС FPGA, поскольку она обеспечит необходимую многозадачность и компактность реализации узлов БКУ.

Поставленная задача разработки имитационной модели в среде Simulink и Stateflow выполнена полностью. В результате была разработана визуальная модель трех подсистем БКУ: приема и обработки командно-программной информации, сбора и обработки телеметрической информации и управления энергоснабжением.

Автоматическая генерация HDL кода выполнена в полном объеме. Успешно проведена верификация на основе технологий Software-in-the-Loop и FPGA-in-the-Loop, подтвердившая функциональность сгенерированного кода VHDL. Был создан лабораторный макет на основе отладочной платы с ПЛИС Xilinx Spartan 6 и платы с датчиками, используемыми на платформе "Синергия". На основе результатов автоматической генерации кода с помощью программы Xilinx ISE был получен код конфигурации ПЛИС. Впоследствии он был загружен в память отладочной платы лабораторного макета и успешно автономно проверен.

Материалы работы прошли апробацию на всероссийских научно-технических конференциях "Молодежь. Техника. Космос" и "Инновационный арсенал молодежи", опубликованы в сборниках "Молодежь. Техника. Космос: труды IV Общероссийской молодежной науч. - техн. конф. / Балт. гос. техн. ун-т. - СПб.; 2012. (Библиотека журнала "ВОЕНМЕХ. Вестник БГТУ", № 15)"; "Инновационный арсенал молодежи: труды III науч. - техн. конф. / ФГУП "КБ "Арсенал"; Балт. Гос. Техн. ун-т. - СПб.; 2012".

Результаты работы внедрены при разработке бортового радиотехнического комплекса микроспутниковой платформы "Синергия" ООО "Лаборатория "Астрономикон".

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

1. Микрин Е.А. Бортовые комплексы управления космическими аппаратами и проектирование их программного обеспечения: учебное пособие. М.: Изд-во МГТУ им. Н.Э. Баумана, 2003.336 с.

2. Малыгин Д.В. Универсальная платформа "Синергия" блочно-модульного исполнения: Материалы XV Международной конференции "Решетневские чтения". - Красноярск: Изд-во ОАО "ИСС им. М.Ф. Решетнева", 2011. С.377-378.

3. Малыгин Д.В. Применение сверхмалых космических аппаратов для исследования стратов: Труды IV Общероссийской молодежной науч. - техн. конф. "Молодежь. Техника. Космос".14-17 марта 2012 года, Санкт-Петербург. - СПб.: Изд-во Балт. гос. техн. ун-та, 2012. С.176-178.

4. Микрин Е.А. и др. Принципы построения бортовых комплексов управления автоматических космических аппаратов // Control Sciences. № 3.2004. С.62-66

5. Бровкин А.Г., Бурдыгов Б.Г., Гордийко С.В. Бортовые системы управления космическими аппаратами: учеб. пособие. Под ред.А.С. Сырова. М.: Изд-во "МАИ-ПРИНТ", 2010

6. Косткин М. и др. Архитектурные и схемотехнические решения вычислительно-управляющих комплексов на основе микросхем программируемой логики. Компоненты и технологии. 2008. № 5

7. Сулейманова А.М. Системы реального времени: учебное пособие. Уфа: Изд-во Уфимск. гос. авиац. техн. ун-т, 2004.292 с.

8. Гилл А. Введение в теорию конечных автоматов. М.: Изд-во Наука, 1966.272 с.

9. Деменков Н.П. Модельно-ориентированное проектирование. Промышленные АСУ и контроллеры. 2008. № 11.

10. Model-based design, 4 April 2013, www.wikipedia.com

11. Model-based design, 1994-2013, www.mathworks.com.

12. Toshinori Kuwahara, Felix Bohringer, Albert Falke etc. FPGA-based operational concept and payload data processing for the Flying Laptop satellite / Acta Astronautica 65 (2009).

13. Hans Tiggeler, Tanya Vladimirova, Daixun Zheng, Jiri Gaisler. Experiences Designing a System-on-a-Chip for Small Satellite Data Processing and Control. Surrey Space Centre, University of Surrey, Guildford, UK.

14. Черных И.В. Simulink - среда создания инженерных приложений. М.: Изд-во "Диалог-МИФИ", 2004.491 с.

15. Stateflow and Stateflow Coder User's Guide. www.mathworks.com.

16. Stateflow and Stateflow Coder Release Notes, www.mathworks.com.

17. Тенищева T.А., Технический облик бортового радиотехнического комплекс сверхмалой космической платформы "Синергия". "Инновационный арсенал молодежи: труды III науч. - техн. конф. / ФГУП "КБ "Арсенал"; Балт. Гос. Техн. ун-т. - СПб.; 2012".

18. Cubesat Space Protocol, www.wikipedia.com

19. AX 25. www.wikipedia.com

20. Savita Nema, R. K. Nema, Gayatri Agnihotri,” Matlab / simulink based study of photovoltaic

cells / modules / array and their experimental verification”, INTERNATIONAL JOURNAL OF

ENERGY AND ENVIRONMENT Volume 1, Issue 3, 2010 pp.487-500.

21. California Polytechnic State University, "The Design of an Efficient, Elegant, and Cubic Pico-Satellite Electronics System”, 2004.

22. Ветринский Ю.А., Варёнов А.А. Концепция построения бортового информационно-управляющего комплекса научно-образовательного микроспутника // XL неделя науки СПбГПУ: материалы Междунар. науч. - практ. конф.5-10 декабря 2011 года, Санкт-Петербург. Ч.2. - СПб.: Изд-во Политехн. ун-та, 2011. С.24 - 25.

23. Варёнов А.А. Визуальное проектирование кроссплатформенного программного обеспечения бортового комплекса управления наноспутника "Cubesat" // Молодежь. Техника. Космос: труды IV Общероссийской молодежной науч. - техн. конф. / Балт. гос. техн. ун-т. - СПб.; 2012. - 380 с. (Библиотека журнала "ВОЕНМЕХ. Вестник БГТУ", № 15). С.241 - 243.

Размещено на Allbest.ru


Подобные документы

  • История возникновения и развития беспилотных летательных аппаратов. Состав бортового оборудования современных беспилотных летательных аппаратов (БЛА). Бортовой комплекс навигации и управления. Особенности работы и устройства ряда систем управления БЛА.

    реферат [7,4 M], добавлен 17.01.2010

  • Анализ баллистических характеристик космического аппарата. Расчет масс служебных систем, элементов топлива. Зона обзора на поверхности Земли и полоса обзора. Изучение системы электроснабжения, обеспечения теплового режима, бортового комплекса управления.

    курсовая работа [53,7 K], добавлен 10.07.2012

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

    контрольная работа [1,2 M], добавлен 11.01.2010

  • Требования к структуре малых космических объектов. Основные элементы корпуса спутника, имеющие соединение с телом ракеты-носителя. Структурно-параметрический синтез универсальной платформы, ее расчет на прочность. Выбор оптимальной формы корпуса аппарата.

    дипломная работа [4,1 M], добавлен 05.12.2014

  • Изучение основных целей миссии автоматического космического аппарата "Кассини". Выведение на орбиту. Полёт к Сатурну. Описание систем электроснабжения, обеспечения тепловых режимов, ориентации и стабилизации. Бортовой радиокомплекс, научная аппаратура.

    курсовая работа [1,1 M], добавлен 28.03.2014

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

    реферат [57,5 K], добавлен 30.03.2011

  • Воздействие солнечной активности на процессы, происходящие на нашей планете. Влияние космической радиации на жизнь на Земле. Ионосфера как самая плотная плазменная оболочка Земли. Влияние ионосферы на состояние радиоэфира. Связь эпидемий с космосом.

    реферат [301,1 K], добавлен 19.05.2011

  • Обзор основных направлений по автоматизированным комплексам пневмоиспытаний изделий ракетно-космической техники. Автоматизированный комплекс КПА ПИ. Требования к блоку имитаторов. Разработка математической модели. Тепловая модель платы блока имитаторов.

    дипломная работа [8,1 M], добавлен 18.10.2016

  • Программа NASA демонстрации лазерной связи со спутником на Лунной орбите LLCD. Космический аппарат LADEE, его научное оборудование. Основные компоненты линии лазерной космической связи для проведения эксперимента. Установление лазерной космической связи.

    реферат [9,0 M], добавлен 15.05.2014

  • Основы государственной космической программы Российской Федерации в области космической деятельности. Направления работ в данной области исследований. Содержание космических программ Китая, Индии и Бразилии, оценка научных достижений и финансирование.

    презентация [1,5 M], добавлен 06.04.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.