ADZS-BF548 EZ-KIT Lite:
комфортная разработка
Андрей САВИЧЕВ
Сигнальные процессоры в настоящее время достигли той степени интеграции, что представляют, по сути, мощные процессоры для встроенных приложений, включающие, как и прежде, аппаратную поддержку высокоэффективной цифровой обработки сигналов. Вследствие этого представленная в конце 2007 года фирмой Analog Devices оценочная плата ADZS-BF548 EZ-KIT Lite выглядит как настоящий мультимедийный компьютер (рис. 1).
Установка 4,3-дюймового TFT WQVGA (480x272x24 бит) RGB LCD, а также 2,5-дюймового 40-гигабайтного жесткого диска не будет излишней, поскольку новый сигнальный процессор ADSP-BF548 содержит встроенные видеоакселератор и контроллеры ATAPI.
Кроме уже привычных для сигнальных процессоров семейства Blackfin встроенных контроллеров SPI, CAN, UART, SPORT, EPPI и Ethernet появились также новые, поддерживающие такие популярные стандарты как USB OTG, SD IO, Host DMA. Устройство интерфейсов внешней шины позволяет подключать такие распространенные на сегодняшний день устройства хранения данных, как NAND Flash и Burst Flash.
Через USB можно подключать к плате и любые виды USB Flash Drive. Среди устройств, которые могут быть использованы для ввода информации, кроме распространенных USB-устройств (клавиатура, мышь), отметим встроенный в процессор контроллер клавиатуры с установленной на плате 4x4 матрицей, touchscreen-контроллер AD7877 и поворотный потенциометр с встроенным в ADSP-BF548 кодером вращения. Последний позволяет использовать привычный в аналоговых приборах способ задания параметров с по-
мощью потенциометра. При этом нет необходимости использовать АЦП.
На рис. 2 представлена архитектура ADSP-BF548 EZ-KIT Lite.
Внутренняя память объемом до 324 кбайт организована как сегментированная и может быть сконфигурирована привычным для пользователей процессоров Blackfin образом. Но есть также новшества, связанные с технологией защиты данных и кода Lockbox (в небольшой обзорной статье мы не сможем уделить этому должного внимания).
Внешняя память представляет собой динамическую память с синхронным доступом (DDR) емкостью 64 Мбайт (8x16 разрядовх4 банка). Такое разнообразие интерфейсов и наличие памяти достаточно большой емкости наводит на мысли об использовании операционных систем, обычно устанавливаемых на мобильных устройствах. И действительно, при желании несложно найти в Интернете портированные для процессора ADSP-BF548 операционные системы. Этого вопроса мы
коснемся чуть позже, а пока лишь отметим, что поскольку данная плата оценочная, операционная система на ее жестком диске производителем не устанавливается.
При включении питания вы видите на экране цветного LCD всего лишь стартовый тест. Но разработчику доступны исходные тексты этого теста, а также драйверов, поддерживающих все аппаратные возможности сигнального процессора ADSP-BF548 и оценочной платы. Они находятся на CD, входящем в комплект поставки.
На обратной стороне платы (рис. 3) имеются знакомые многим разработчикам разъемы EXPANSION INTERFACE. Однако прежде чем принимать решение о расширении возможностей оценочной платы, необходимо ознакомиться с ее электрическими принципиальными схемами [1]. Также необходимо обратить внимание на конструктивные особенности данной платы.
Особо отметим аксессуары для платы (рис. 4). Здесь, разумеется, представлены далеко не все
кабели и устройства, которые поставляются вместе с платой. Обращайте, пожалуйста, внимание на комплектность поставки.
От разнообразия того, что вы получаете вместе с платой в большой красивой коробке, просто голова идет кругом. В документации, к счастью, есть не только все необходимые схемы и описания, но также и схема расположения соединителей на печатной плате (рис. 5).
Давайте сделаем несколько первых шагов для более подробного ознакомления с возможностями нового процессора и оценочной платы на его основе. Начнем, пожалуй, с видеоакселератора — самого зримого отличия данного продукта от «классики жанра» семейства Blackfin.
Видеоакселератор
Как и в случае с универсальными процессорами, у разработчиков сигнальных процессоров Blackfin возникла необходимость «разгрузить» основные блоки вычислений от «рутинных» операций, используемых при отображении видеоинформации. Сразу оговоримся, что цели достичь возможностей современных видеопроцессоров персональных компьютеров не было.
Поэтому усилия разработчиков ADSP-BF548 сосредоточились на ограниченном круге задач отображения графической информации. Типичная из них — выделить некоторую деталь на изображении объекта (это может быть объект охраны, контролируемый узел промышленного оборудования или деталь на панели виртуального прибора). Такое выделение осуществляется при помощи маски на полупрозрачном экране (с регулируемой прозрачностью).
Результат совмещения исходного изображения (MAIN IMAGE) и накладываемого изображения — маски (OVERLAY IMAGE) нужно размещать в видеопамяти для отображе-
ния в одном из стандартных форматов, пригодных для вывода на дисплеи различных типов (рис. 6).
Другой типичной задачей цифровой обработки двумерных графических изображений является их оконтуривание и раскрашивание, например, опознанных объектов (в задачах распознавания графических образов). Для выделения на результирующем изображении контуров и выделения цветом (текстурой, полупрозрачностью) может эффективно использоваться устройство, построенное по той же функциональной схеме (рис. 6).
Таким образом, при ограниченном количестве операций видеоакселератора наложения, преобразования цветов и форматов для хранения видеоданных можно достичь весьма существенной экономии вычислительных ресурсов процессора семейства В1аскАп.
Все изменения в памяти производятся с помощью трех выделенных для этих целей контроллеров БМЛ. Акселератор работает с ви-
Таблица 1. Сегменты внутренней памяти процессора ADSP-BF548
Сегменты внутренней памяти Объем, кбайт
L1 Instruction SRAM/Cache 16
L1 Instruction SRAM 48
L1 Data SRAM/Cache 32
L1 Data SRAM 32
L1 Scratchpad SRAM 4
L1 ROM 64
L2 128
деоданными форматов RGB888 или YUV4:2:2 (4:4:4).
Контроллеры DMA обеспечивают доступ во внутреннюю память сигнального процессора в сегментах L1, L2 (табл. 1).
Видеоакселератор реализует следующие основные функции:
• альфа-сопряжение (взвешенное наложение, alpha blending);
Таблица 2. Регистры видеоакселератора
Наименование регистра Разрядность, бит Назначение Адрес
PIXC_INTRSTAT 16 регистр статуса прерывания PIXC 0xFFC0443C
PIXC_CTL 16 регистр управления PIXC 0xFFC04400
PIXC_PPL 16 выбор пиксельного разрешения строки 0xFFC04404
PIXC_LPF 16 выбор количества линий в кадре 0xFFC04408
PIXC_RYCON 16 выбор коэффициента R/Y для матрицы преобразования цветов 0xFFC04440
PIXC_GUCON 32 выбор коэффициента G/U для матрицы преобразования цветов 0xFFC04444
PIXC_BVCON 32 выбор коэффициента B/V для матрицы преобразования цветов 0xFFC04448
PIXC_GCBIAS 32 выбор величины смещения для матрицы преобразования цветов 0xFFC0444C
PIXC_TC 32 выбор значений весовых коэффициентов для альфа-сопряжения 0xFFC04450
PIXC_xHSTART 16 начальные горизонтальные координаты для областей наложения полупрозрачных масок A и B 0xFFC0440C 0xFFC04420
PIXC_xHEND 16 конечные горизонтальные координаты для областей наложения полупрозрачных масок A и B 0xFFC04410 0xFFC04424
PIXC_xVSTART 16 начальные вертикальные координаты для областей наложения полупрозрачных масок для A и B 0xFFC04414 0xFFC04428
PIXC_xVEND 16 конечные вертикальные координаты для областей наложения полупрозрачных масок для A и B 0xFFC04418 0xFFC0442C
PIXC Control Register (PIXC_CTL)
Read/Write
15 14 13 12 11 10 9 8 7 6 5 4 3 2
OxFFCO 4400
1 0
0 0
о 0
о 0
WM_LVL ---------------------
(Watermark Level — Both FIFOs)
00 — one location empty
01 — 25% empty
10 — 50% empty
11 — 75% empty
OVR_STAT (Overlay FIFO Status) -10 — Empty 01 — Full
IMG_STAT (Image FIFO Status)
10 — Empty 01 - Full
TC_EN (Transparent Color Enable)
0 — Disable transparent color
1 — Enable transparent color
UDS_MOD (Resampling Mode) —
0 — Duplicating for upsampling and
dropping for downsampling
1 — Averaging for both upsampling
and downsampling
0 0
0 0 0 0 0 000
Reset = 0x0000
PIXC_EN (Pixel Comp Enable)
0 — Disable PIXC operation
1 — Enable PIXC operation
OVR_A_EN (Overlay A Enable)
0 — Disable
1 — Enable
OVR_B_EN (Overlay B Enable)
0 — Disable
1 — Enable
IMG_FORM (Image Data Format) 0-YUV
1 - RGB
OVR_FORM (Overlay Data Format)
0 —YUV
1 - RGB
OUT_FORM {Output Data Format)
0 —YUV
1 — RGB
Рис. 8. Регистр управления видеоакселератором
• цветовое кодирование («хроматический ключ», chroma keying);
• преобразование форматов данных о цвете. Для программиста видеоакселератор выглядит как набор регистров (табл. 2), расположенных по определенным адресам в системной памяти.
Чтобы не перегружать статью, мы приведем формат лишь одного из этих регистров — Р1ХС_СТГ.0бычно вся необходимая для программиста информация, описывающая битовые поля этих регистров и обозначения самих регистров, приводится в заголовочном h-файле.
Когда функции наложения разрешены, то есть комбинация OVR_A_EN или OVR_B_EN не является нулевой, результирующий отображаемый на экране пиксель имеет цвет, определяемый по формуле:
С = (B(a+1))/16+(A(15-a))/16,
где A — определяет цвет пикселя на основном «образе подкладки» main image, background
image, и эти 8-битные данные располагаются в основном буфере; B — определяет цвет налагаемой полупрозрачной маски в буфере наложения overlay image, foreground image.
Значение альфа разрядностью 4 бита определяет степень прозрачности наложения. При максимальном значении 15 накладываемая маска полностью теряет прозрачность, и в результате в этой экранной области мы видим только саму маску (foreground image).
С помощью PIXC_EN=1 необходимо разрешить работу видеоакселератора.
В следующей части статьи мы продолжим рассмотрение новых возможностей процессора ADSP-BF548 и оценочной платы ADZS-BF548 EZ-KIT Lite на его основе. ■ Продолжение следует
Литература
1. ADSP-BF548 EZ-KIT Lite Evaluation System Manual. http://www.analog.com/UploadedFiles/ Associated_Docs/70955664ADSP_BF548_EZ_KIT_ Lite_Manual_Rev_1_1.pdf