Научная статья на тему 'Процесс разработки и отладки проекта под семейство ПЛИС SmartFusion'

Процесс разработки и отладки проекта под семейство ПЛИС SmartFusion Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
140
41
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Максимов Андрей, Карпов Сергей

В начале 2010 года корпорация Actel выпустила на рынок новое и единственное в своем роде семейство ПЛИС SmartFusion, которое стало логическим продолжением и дополнением предыдущего семейства ПЛИС Fusion c интегрированной аналого-цифровой частью.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Процесс разработки и отладки проекта под семейство ПЛИС SmartFusion»

Процесс разработки и отладки проекта

под семейство ПЛИС SmartFusion

Андрей МАКСИМОВ

maksimov@actel.ru Сергей КАРПОВ

karpov@actel.ru

В начале 2010 года корпорация Actel выпустила на рынок новое и единственное в своем роде семейство ПЛИС SmartFusion, которое стало логическим продолжением и дополнением предыдущего семейства ПЛИС Fusion с интегрированной аналого-цифровой частью.

Структура ПЛИС SmartFusion

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

ный микроконтроллер с процессором ARM Cortex-M3, а также цифро-аналоговый преобразователь (ЦАП).

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

Вкратце рассмотрим структуру Smart-Бшюп (рис. 1). Каждая микросхема включает в себя:

• Реализованный аппаратно ARM-совместимый процессор Cortex-M3 c тактовой частотой работы до 100 МГц и набором команд Thumb-2.

• Набор аппаратных интерфейсных контроллеров: Ethemet MAC 10/100, SPI, UART.

Супервизор

SPI 0

UART О

lzC 0

АРВ 0

| EEPROM [ 1 кбит

+ЗВ

ARM® Cortex"-M3

Контроллер прямого доступа в память (ПДП)

Системные

регистры

РПЗУ

ОЗУ

Шина АНВ

АРВ 2

Контроллер внешней памяти

SmartFusion™

□ Микропроцессорная субсистема (МСС) [ | Конфигурируемая аналоговая часть

I | плис

Таймер_1

10/100

ЕМАС

Таймер_2

SPI 1

I С 1

Аналоговый блок

Изм.тока Компаратор

Изм. Изм.

температуры напряжения

Аналоговый блок

Изм.тока Компаратор

Изм. Изм.

I температуры I напряжения

Аналоговый

вычислительный

блок

Контроллер

управления

выборкой

Контроллер

постобработки

Матрица универсальных логических ячеек VersaTile

ОЗУ ОЗУ ОЗУ ООО ОЗУ ОЗУ ОЗУ

Рис. 1. Структурная схема СнК SmartFusion

Процесс разработки проекта ПЛИС

Процесс разработки ПО

Libero

Smart Design

Трассировка

Временной I Анализ по анализ Я потреблению

Аппаратная отладка

Пакет для разработки ПО SoftConsole, Kell, IAR

Примеры

проекта

Компилятор

Симуляция и отладка

SmartFusion Evalution Kit SmartFusion Development Kit

Рис. 2. Процесс разработки проекта под SmartFusion

Рис. 3. Вид интерфейса конфигурации SmartFusion

• Набор процессорной периферии: системные регистры, таймеры, контроллер прямого доступа к памяти, контроллеры внешней и внутренней памяти.

• Встроенные блоки ПЗУ до 512 кбайт и ОЗУ до 64 кбайт для процессора.

• В микросхеме имеются три встроенных тактовых генератора: кварцевый генератор, формирующий выходную частоту от 32 кГц до 20 МГц, RC-генератор — 100 МГц и 32-Гц кварцевый генератор с отдельной схемой питания и часами реального времени.

• Блок ФАПЧ, который позволяет формировать из входных частот тактовые частоты для процессорной части, аналогового блока, матрицы ПЛИС.

• ПЛИС емкостью до 500 000 системных вентилей и с системной частотой до 350 МГц, выполненная по Flash-технологии.

• До восьми 4608-битных блоков 2-портовой ОЗУ, которые могут быть сконфигурированы как FIFO различной разрядности.

• До трех аналоговых блоков, каждый из которых содержит настраиваемый 12-разрядный АЦП с предварительными масштабирующими ОУ для подстройки динамического диапазона, 12-разрядный ЦАП с выходами по напряжению и току.

• Контроллер управления работой АЦП.

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

Процесс разработки проекта под SmartFusion

Разработка проекта ПЛИС и конфигурирования процессорной и аналоговой частей SmartFusion осуществляется в пакете Actel Libero IDE версии не ниже 9.0, которая включает в себя все необходимые разработчику IP-ядра. Последние версии пакета Libero IDE и обновлений IP для конфигурации процессора и всей периферии SmartFusion можно бесплатно скачать с сайта actel.com.

Libero IDE является интегрированной средой разработки и включает в себя все необходимое ПО для разработки (рис. 2), отладки, синтеза проекта и генерации файла прошивки. Отладка проекта для ПЛИС выполняется с помощью симулятора ModelSim, синтез проекта производится синтезатором Synplify фирмы Synplicity, которые бесплатно поставляются в составе Libero.

Для разработки и отладки ПО для процессорной системы Actel предлагает использовать бесплатную среду разработки SoftConsole, с помощью которой также можно производить и отладку проекта на готовой плате посредством идущего в комплекте отладчика. Пакет SoftConsole бесплатный и скачан с сайта actel.com. При этом есть возможность исполь-

зовать среды разработки сторонних производителей, такие как и IAR.

Конфигурация SmartFusion

Конфигурация аппаратной части Smart-Бшюп осуществляется через удобный графический интерфейс, в котором представлены все ресурсы микросхемы в виде структурной схемы (рис. 3).

Для удобства разработчиков все блоки на панели конфигурации помечены различными цветами. Голубым помечены блоки, которые конфигурируются аппаратно, оран-

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

Рис. 4. Интерфейс настройки тактовых частот

Рассмотрим настройки ряда блоков Smart-Fusion более подробно.

В блоке управления тактовой частотой (рис. 4) имеется возможность выбрать источник тактовой частоты. Им может быть внешний генератор, внутренний RC-генератор 100 МГц или внутренний кварцевый генератор, которому необходим внешний кварц с частотой от 32 кГц до 20 МГц. Тактовые сигналы с этих источников можно завести на вход блока умножения и фазовой автоподстройки частоты, который может работать с частотами до 350 МГц, при этом процессор способен работать на частотах до 100 МГц. В качестве источника тактового сигнала для часов реального времени может быть использован интегрированный низкопотребляющий кварцевый осциллятор с внешним часовым кварцем 32,768 кГц. Блок часов реального времени с осциллятором имеет отдельные входы питания, что позволяет подать на него питание от отдельного источника и снять основное питание с микросхемы без потери времени и остановки системных часов.

В микросхеме предусмотрена возможность гибко организовывать потоки данных между блоками. Например, данные из аналоговых блоков могут быть переданы напрямую в ПЛИС, что позволяет производить необходимую цифровую обработку сигналов (ЦОС) без участия процессора. При помощи этого можно в значительной степени разгрузить процессор от требовательных к производительности задач обработки и «сконцентрироваться» на других задачах.

Процессор может работать как из внешней, так и из внутренней памяти, для этого помимо встроенной в кристалл ОЗУ и ПЗУ к СнК может быть подключена внешняя память через конфигурируемый контроллер внешней памяти (рис. 5). Эта конфигурация позволяет подключить два независимых внешних банка памяти, как ОЗУ, так и Flash ПЗУ различных типов.

В зависимости от объема микросхемы в ней может быть от одного до трех полноценных аналоговых блоков. В каждом из блоков есть 12-разрядный АЦП, работающий по методу последовательного приближения. Все аналоговые сигналы подведены к АЦП через мультиплексор, что дает возможность отслеживать величины сразу нескольких независимых внешних сигналов, поочередно мультиплексируя их в заданной последовательности. Сигнал на вход мультиплексора может подаваться как напрямую с входа микросхемы, так и через блок согласования входных сигналов.

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

Рис. 5. Возможные настройки контроллера внешней памяти

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

Наличие в аналоговых блоках возможности предварительного согласования входных сигналов (рис. 6) позволяет напрямую измерять двуполярное напряжение амплитудой до ±15 В и ток: следует только дополнительно установить внешний шунт. Для измерения температуры требуется внешний датчик, в качестве которого можно использовать рп-транзистор или диод. Использование аналогового компаратора также может быть очень полезным в задачах постоянного мониторинга внешних параметров и их контроля. При необходимости слежения за уровнями входных сигналов есть возможность задействовать флаги, при заданных уровнях они будут выставляться и сниматься. Эти флаги можно использовать, например, как сигналы прерываний для процессора либо как флаги необходимости старта пользовательских контроллеров в ПЛИС.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Максимальная частота работы АЦП составляет до 480 кОтсчетов/с при разрядности АЦП 12 бит и 600 кОтсчетов/c при разрядности 8 бит. Запуск всех АЦП производится единым контроллером, поэтому можно синхронизировать работу нескольких АЦП и добиться ^кратного увеличения производительности

Рис. б. Вид аналогового блока SmartFusion

путем последовательного запуска АЦП на измерение одного и того же сигнала.

Разработка ПО

Для отладки программного обеспечения на плате в среде SoftConsole в качестве JTAG-адаптера используется программатор FlashPro4. Его можно использовать в качестве

JTAG-адаптера для отладки программ в средах Keil и IAR. Это позволяет применять привычную среду разработки, не тратить время на изучение дополнительного ПО, а также использовать все предыдущие наработки.

При создании проекта и конфигурации СнК SmartFusion в корневой папке проекта Libero автоматически генерируется папка Firmware, содержащая драйверы всех

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

Заключение

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

У разработчика ПО есть свобода выбора оболочки для разработки программ. Нет необходимости отказываться от уже привычных и зарекомендовавших себя сред разработки Keil или IAR. Можно использовать предыдущие наработки, а в ряде случаев и целые проекты, разработанные под платформу ARM, практически без изменений. ■

i Надоели баннеры? Вы всегда можете отключить рекламу.