Процесс разработки и отладки проекта под семейство ПЛИС SmartFusion

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

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

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

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

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

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

  • Реализованный аппаратно ARM-совместимый процессор Cortex-M3 c тактовой частотой работы до 100 МГц и набором команд Thumb-2.
  • Набор аппаратных интерфейсных контроллеров: Ethernet MAC 10/100, SPI, I2C,
    UART.
  • периферии: системные регистры, таймеры, контроллер
    прямого доступа к памяти, контроллеры
    внешней и внутренней памяти.
  • Встроенные блоки ПЗУ до 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *