Литература
1. Кузнецов С. И., Лукин Г. С. Модернизированная система поверки преобразователей высокочастотных гидроакустических полей // Наука, техника и образование, 2015. № 12 (18).
2. ГОСТ Р МЭК 62127-3-2010.
3. Авилочкина Н. В. ГОСТ Р МЭК 62127-2-2009. Гидрофоны. Общие требования к методикам калибровки в частотном диапазоне до 40 МГц. Москва: Изд - во ФГУП«СТАНдАрТИНФОРМ», 2011.
4. Bacon D. R. IEEE Trans. Sonics Ultrason. Vol. SU-29, 1982.
Применение цифровых сигнальных процессоров серии BF-504F для устройств измерения гидроакустического давления Лосев Г. И.
Лосев Герман Игоревич /Losev German Igorevich — инженер, студент, кафедра систем автоматического управления и контроля, Национальный исследовательский университет Московский институт электронной техники, г. Москва
Аннотация: в статье рассматриваются способы устранения недостатков устройств измерения гидроакустического давления за счет цифровой обработки сигналов. Описываются требования для реализации фильтров, работающих в режиме реального времени, что является достаточно частой задачей при разработке устройств ЦОС. В соответствии с этими требованиями в статье предлагается использовать процессор BlackFin-504F. В статье также представлен алгоритм фильтрации, реализованный в среде VisualDSP++ и методы оптимизации его работы на процессорах семейства BlackFin, для достижения максимальной производительности.
Ключевые слова: устройства измерения гидроакустического давления, цифровая обработка сигналов, процессоры семейства BlackFin, цифровая фильтрация, оптимизация.
Традиционная конструкция гидроакустических преобразователей хорошо зарекомендовала себя в условиях морских полигонов. Однако со временем требования к этим устройствам начали ужесточаться. Точность, с которой современные гидрофоны измеряют полезный сигнал на фоне намного более сильных помех, стала недостаточной для задач современной гидроакустики. Поскольку эти устройства являются аналоговыми, они имеют ряд недостатков. Обработка получаемых данных с устройства занимает долгое время и требует сложных программ. Сигнал, полученный с такого устройства, необходимо отфильтровать не только от наводимых в индустриальных условиях помех, но и от шумов, связанных с дрейфом параметров аналоговой аппаратуры. В связи с этим на предприятии ВНИИФТРИ было принято решение разработать цифровой модуль для устройств измерения гидроакустического давления, который будет преобразовывать, передавать данные, а также производить предварительную обработку. Помимо очевидного преимущества устранения ошибок фильтрации, связанных с колебаниями пассивных элементов в течение времени и под действием температуры, дрейфом ОУ и т.д., цифровые фильтры способны воплотить характеристики, которые, в лучшем случае, было бы чрезвычайно сложны, или даже невозможно достичь с помощью аналоговой реализации фильтров.
Во многих задачах, связанных с обработкой сигнала, получаемого с гидроакустической головки устройства, необходимо, что бы цифровой фильтр работал в реальном времени. Это накладывает определенные требования на ЦСП (цифровой сигнальный процессор), связанные с частотой квантования сигнала и сложностью фильтра. Ключевым моментом является то, что процессор ЦОС должен заканчивать все вычисления за период квантования, что бы он был готов обработать следующие пакеты данных. Предположим, что нужно обработать аналоговый сигнал с полосой пропускания fa. Это значит, что частота квантования АЦП fs должна быть по меньшей мерей равной 2 fa. Таким образом, все операции вычисления должны быть выполнены за время, равное периоду квантования —. Время вычисления зависит от порядка фильтра и скорости ЦСП. Каждый порядок
fs
требует одной операции сложения и одной операции умножения. Некоторые процессоры для стандартной цифровой обработки сигналов могут выполнять один полный отсчёт фильтра за 13,3 нс. Процессору, для того что бы воплотить фильтр N-го порядка необходимо N+5 инструкций. При реализации фильтра 100-го порядка полное время выполнения составит 1,4 мс. Это соответствует
максимально возможной частоте выборки в 714 кГц, тем самым ограничивая максимальную полосу пропускания сигнала в несколько сотен кГц. Ограничение в скорости работы можно преодолеть, сначала храня данные АЦП, полученные на большой скорости, во внутренней буферной памяти. Эта память затем читается на скорости, которая совместима со скоростью цифрового фильтра на базе ЦОС процессора. По этим причинам был выбран процессор Blackfin-504F. Архитектура процессоров Blackfin объединяет функциональности микроконтроллеров и ЦСП, поэтому отпадает необходимость в двух различных устройствах [1]. Также стоит обратить внимание на максимальную тактовую частоту BF504 в 400 МГц и суммарную производительность в 800 MMAC [3]. Эти показатели недоступны микроконтроллерам даже со специальными блоками ЦОС, что существенно расширяет спектр задач для Blackfin, а также позволяет разработчикам реже задумываться об оптимизации кода. Другим важным преимуществом является объемная встроенная флэш-память размером до 32 Мбайт. Это позволило полностью отказаться от интерфейса с внешней памятью. При этом размеры процессора составляют всего 12х12 мм. Кроме того, отладочные платы для процессоров BF504, при достаточно малой цене, содержат всю необходимую периферию, а поставляемая вместе с ними среда разработки VisualDSP++, за счет развитой базы встроенных библиотек, позволяет легко портировать код, как на этот процессор, так и на другие процессоры данного семейства [1].
Чтобы устройство могло обрабатывать сигнал, получаемый с датчика, в режиме реального времени, кроме выбора микроэлектронной базы необходимо и выбрать алгоритм фильтрации сигналов. Архитектура всех стандартных ЦСП (цифровых сигнальных процессоров) была оптимизирована как минимум для стандартных известных алгоритмов: фильтры с бесконечной импульсной характеристикой (БИХ) и конечной импульсной характеристикой (КИХ). Широко известно, что для реализации БИХ фильтров на ЦСП процессорах, имеющих архитектуру с фиксированной точкой, требуется тщательное разложение передаточной функции фильтра для того, чтобы преодолеть проблемы с точностью. Биквадратная реализация БИХ фильтров является одним из лучших решений для использования на стандартных ЦСП. Более старые ЦСП имеют достаточно простую адресацию данных с блоком умножения и сложения (MAC), рассчитанным только на один цикл. Стандартная реализация биквадрата использует пять коэффициентов. Ядро биквадратного фильтра может достигать теоретического минимума в пять циклов/биквадрат для подобных процессоров. Современные ЦСП обычно используют более сложную адресация и обладают сложной иерархической архитектурой. Теоретическая производительность биквадратного алгоритма на процессорах BF504, обладающих двумя блоками MAC, может достигать 2,5 циклов/биквадрат.
Алгоритм биквадратного БИХ фильтра достаточно сложно реализовать. К счастью поставляемая с процессорами среда разработки VisualDSP++ имеет встроенную библиотеку фильтров, в которую включена функция для данного типа фильтров:
void iir_fr16(const fract16 x[], fract16y[], int Ni,
iir_state_fr16 *s).
Ядро этой функции воспроизводит следующую передаточную функцию:
Wt(z) =
bl0 + b{z~
+ bl2z~
1 + a[z_1 + al2z~
при что соответствует структурной схеме на рисунке 1.
Рис. 1. Структурная схема биквадратного фильтра 58
Для функций iir_fr16 требуется ~3 neb циклов, где ne это чётное число входных значений, а в это число биквадратных секций. Такая производительность достаточно близка к теоретической, что позволяет использовать эту функцию во многих практических задачах фильтрации сигнала [4].
Для достижения максимальной производительности алгоритмов фильтрации как встроенных в программную среду VisualDSP++ средств, так и сторонних программных решений, необходимо оптимизировать код для работы с процессорами серии Blackfin. Процессоры Blackfin обладают рядом особенности, которые позволят добиться производительности программ ЦОС, достаточной, что для работы устройства в режиме реального времени. К примеру, за счёт того, что для многих фильтров характерны повторяющие операции, наличие аппаратной поддержки циклов значительно увеличивает скорость работы алгоритмов цифровой фильтрации сигналов. Это достигается благодаря специальному буферу команд цикла глубиной четыре элемента. Если код содержит не более четырёх команд, то, независимо от количества итераций, обращение к памяти не потребуется, поскольку команды будут выбираться из буфера цикла. Кроме того, для максимальной эффективности использования аппаратных ресурсов процессора могут быть использованы многофункциональные команды. Процессор Blackfin не являются суперскалярными, однако они допускают параллельный вызов до трёх команд с некоторыми ограничениями. Время исполнения таких команд будет определяться временем исполнения самой медленной из них. Также, за счет двух идентичных вычислительных блока, входящих в состав процессоров Blackfin, можно выполняться сразу две операции умножения-накопления за один процессорный цикл над четырьмя входными операндами в режиме SIMD (одна команда, разные данные). Такой режим позволяет в два раза уменьшить количество итераций, для вычисления одного выходного отсчёта обычного фильтра, или реализовать эффективную обработку двух потоков данных [5]. Наиболее полезным инструментом для оптимизации кода является часть программного обеспечения VisualDSP++, поставляемого вместе с отладочными платами процессоров, называемая Statistical Profiler. Также существует глобальный подход к оптимизации кода. Во-первых, компилятор может настроить на сохранение памяти или на скорость работы программы.). Использование Statistical Profiler позволяет программисту быстро сконцентрироваться на блоках кода, которые во время работы программы используют наибольшую часть производительности процессора. После этого можно программно отправить эти блоки из Flash памяти в более быструю память SRAM процессора. Кроме того, можно воспользоваться функцией, когда некоторые блоки программы заменяются автоматически на блоки, написанные на ассемблере, внутри программы на Си. Наконец, компиляторы, наподобие тех, что доступны для Blackfin, могут использовать двухфазную обработку, чтобы устанавливать отношения между различными исходными файлами внутри одного проекта для дальнейшего ускорения выполнения программы (межпроцедурный анализ) [1]. Заключение:
В данной статье был показан ряд решений, который можно использовать в устройствах цифровой обработки, которые должны работать в реальном времени. Такой подход к реализации устройств цифровой обработки информации, к примеру, устройства измерения гидроакустического давления, позволит реализовывать быстродействующие алгоритмы цифровой фильтрации, имеющие ряд преимуществ перед аналоговыми, при этом сохраняя компактность и невысокую стоимость устройства. Также продемонстрированные решения по оптимизации программы фильтрации позволяют реализовывать дополнительные функции на устройстве, а также использовать его в более сложных устройствах, таких как векторные приёмники, в которых необходимо принимать и обрабатывать данные с четырёх измерительных каналов.
Литература
1. Лосев Г. И. Применение и оптимизация стороннего бесплатного программного обеспечения на процессорах семейства BlackFin // Наука, техника и образование, 2015. № 12 (18). С. 104-109.
2. Лосев Г. И., Кузнецов С. И., Лукин Г. С. Разработка устройства преобразования и передачи информации, получаемой с гидроакустического преобразователя // Наука, техника и образование, 2016. № 5 (23). С. 48-50.
3. ADSP-BF504-BF504F-BF506F DATA Sheet Rev. B. [Электронный ресурс]. Режим доступа: http://www.analog.cOm/en/products/processors-dsp/blackfin/adsp-bf504f.html#product-overview/ (дата обращения: 17.05.2016).
4. An Implementation of High Performance IIR Filtration on 2-MAC Blackfin DSP Architecture // DSP-MCOM 2005 Kosice, Slovak republic. 13-14 September, 2005.
5. Сотников А. Проектирование с использование процессоров Analog Devices. Цифровой КИХ-фильтр // Компоненты и технологии, 2010. № 10.