Многоядерное программирование ориентированного на поле управления на Zynq

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

Введение

В этом примере мы показываем рабочий процесс для генерации кода для алгоритма управления двигателем и тестирования сгенерированного кода на оценочной плате Xilinx® Zynq™-7000 SoC ZC702. Алгоритм управления двигателем в примере является Ориентированным на поле Алгоритмом управления, состоявшим из контроллера скорости (быстрый компонент), и контроллер крутящего момента (замедлите компонент). Один типичный рабочий процесс должен сгенерировать код для этих двух компонентов контроллера, загрузить сгенерированный код на оценочную плату и соединить оценочную плату с реальным двигателем. Цель этого примера состоит в том, чтобы показать, как следовать за этим рабочим процессом. Это проиллюстрировано в блок-схеме ниже

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

Пример принимает, что оценочная плата Xilinx® Zynq™-7000 SoC ZC702 соединяется с вашим компьютером. Можно найти шаги связи и установки в документации.

Этот пример требует, чтобы Embedded Coder™ сгенерировал многопоточный код, HDL Coder(TM), чтобы сгенерировать HDL-код и Simscape Power Systems(TM), чтобы смоделировать постоянный магнит синхронная машина в примере. Вы не можете сгенерировать HDL-код в системах Macintosh.

Модель в качестве примера

Модель в качестве примера состоит из двух областей Simulink. В области Permanent Magnet Synchronous Machine существует два блока: блок "Speed and Torque Inputs", который предоставляет ссылочные входные параметры системе с обратной связью и блок "Invertor and Motor", который является объектом, которым мы стремимся управлять в этом примере. Блок "Invertor and Motor" также содержит периферийные устройства: осциллограф, который может использоваться для исследования результатов симуляции и отправителя UDP. Сгенерированный код для отправителя UDP ответственен за отправку данных моделирования с оценочной платы Zynq ZC702 на хост-машину. Ориентированное на поле Управление содержит контроллер скорости "Блоков контроллера" и "Контроллер крутящего момента". Загрузите модель путем ввода

slexFocZynqExample

Определение архитектуры

Целевая архитектура в примере является оценочным комплектом Xilinx Zynq ZC702. Это может быть проверено путем доступа к диалоговому окну "Concurrent Execution", выполняющему шаги:

- Перейдите к Симуляции> Образцовые Параметры конфигурации,

- Нажмите "Configure Tasks" в панели Решателя под разделом Additional Options.

Оценочная плата имеет ARM центральный процессор Cortex-A9 и программируемая пользователем вентильная матрица (FPGA). Существует две задачи, работающие на центральном процессоре ARM. "Закрутите контроллер", сопоставлен с первой задачей и блоками, которые составляют объект (блок "Speed and Torque Inputs" и "Инвертор, и Двигатель") сопоставлены со второй задачей. "Контроллер скорости", действующий в высокой частоте в цикле управления, сопоставлен с FPGA. Эти настройки могут быть изменены в разделе "Tasks and Mapping" диалогового окна "Concurrent Execution".

Сгенерируйте многопоточный и HDL-код

Нажмите Ctrl-B или нажмите на "Deploy to Hardware", чтобы сгенерировать многопоточное и HDL-код. Сгенерированный исполняемый файл и поток битов FPGA будут загружены на плату Zynq автоматически. В порядке выполнить этот шаг, плата Zynq должна быть соединена с компьютером, и среда должна быть установлена правильно. Можно консультировать документацию для получения дополнительной информации.

Получите данные Zynq

Во-первых, откройте осциллограф путем двойного клика "по Результатам симуляции Представления" и запустите симуляцию (Симуляция> Выполнение), чтобы получить следующий вывод:

Сравните эту симуляцию вывод с выводом исполняемого файла, который работает на плате Zynq ZC702. В порядке сделать это сравнение, получите доступ к модели получателя UDP путем двойного клика на "Результатах Развертывания Представления". Когда модель получателя UDP будет выбрана, запустите симуляцию (Симуляция> Выполнение). Команда выполнения отправит сигнал в плату Zynq ZC702, чтобы начать запускать исполняемый файл на плате. Данные моделирования будут отправлены через UDP с платы Zynq ZC702 на хост-машину. Полученный сигнал UDP отображен на осциллографе модели UDP Receiver.

Закройте модель

close_system('slexFocZynqExample', 0);