Значительно уменьшить дозу радионуклидов, вводимых в кровь пациента, и при этом получить качественное изображение можно с помощью метода кодированной апертуры.[1]
Построенную по этому принципу систему можно разделить на два крупных блока - блок формирования тени и блок восстановления изображения.
Первый блок состоит из кодированной апертуры (маски) - непрозрачного для излучения экрана с набором миниатюрных отверстий (пинхолов), размещенных по поверхности экрана по псевдослучайному закону и из матрицы детекторов (например, ФЭУ), расположенной на некотором расстоянии от маски. Таким образом, первый блок создает и регистрирует тень изображения.
Второй блок - компьютер, в который по шине данных передается информация от детекторов. На этапе реконструкции требуется выполнение значительных по объему и сложности математических вычислений (вычисляется свертка матрицы тени с матрицей обратной матрице кодированной апертуры). Учитывая то, что умножение и сложение являются весьма длительными операциями, вычисление свертки является весьма длительной операцией.
Добиться ускорения процесса восстановления можно двумя методами.
Во-первых, увеличивая производительность вычислительной техники.
Во-вторых, опираясь на теорию представления, можем считать, что возбуждение детектора является результатом логической операции между сигналом от источника и кодированной апертурой.[2] Таким образом восстанавливать изображение мы можем, используя только логические операции, а, следовательно, возможна аппаратная реализация блока восстановления на основе контроллера сбора-обработки информации (на базе микроконтроллер AVR - сопроцессор ПЛИС FPGA).
Использование отдельного аппаратного модуля позволит значительно сэкономить ресурсы процессора. Кроме того, ускорит восстановление изображения так как:
- Логические функции выполняются быстрее арифметических;
- Скорость функционирования ПЛИС очень высока;
- Обработка матрицы тени производится не поэлементно, а построчно.
Дополнительным преимуществом будет являться то, что благодаря отсутствию умножителей и сумматоров, выполняющих операции в явном виде, вычисления в блоке восстановления осуществляются без использования сигналов переноса. Тем самым блок может функционировать в режиме реального времени.[2]
Работа блока была промоделирована. Результаты, полученные при восстановлении изображения логическими функциями, соответствуют результатам полученным при восстановлении классическим методом.
Работа выполнена в рамках проекта МНТЦ №893.
В качестве аппаратного модуля предлагается использование специального блока на основе универсального контроллера PRC3-6.
В состав контроллера входят:
- AVR - Микроконтроллер (процессор);
- FPGA - ПЛИС сопроцессора ввода-вывода и обработки данных;
- Система связи RS-485/232 - Модуль связи с ПЭВМ;
- EEPROM - Последовательное ПЗУ хранения данных;
- FPGA I/O - Интерфейс связи «Микропроцессор-ПЛИС»;
- USER I/O - Интерфейс связи с внешними устройствами.
Основными составными частями контроллера PRC3-6 являются:
- AVR - Микроконтроллер (процессор);
- FPGA - ПЛИС сопроцессора ввода-вывода и обработки данных;
- HOST I/O - Система связи RS-485/232 (Модуль связи с HOST-процессором или ПЭВМ);
- EEPROM - Последовательное ПЗУ хранения данных;
- Peripheral I/O - Блок связи с внешними устройствами внешними устройствами (ВУ);
- Buff North, East, South, West - Буферы связи с ВУ;
- CONF - Модуль конфигурирования ПЛИС на основе ПЗУ AT17_512A с помощью устройства ATDH2225;
- JTAG - Разъем конфигурирования ПЛИС с помощью интерфейса JTAG и устройства ByteBlaster MV;
- FPGA I/O - Интерфейс связи «Микропроцессор-ПЛИС»;
- USER I/O - Универсальный (конфигурируемый пользователем) интерфейс связи с ВУ;
- I/O - Интерфейс последовательной связи с ВУ.
С помощью интерфейса USER I/O (до 70 линий, конфигурируемых пользователем) к сопроцессору могут подключаться датчики или исполнительные устройства. При этом может обеспечиваться последовательное или параллельное сопряжение в соответствии с требованиями различных стандартов, физические параметры которых определяются возможностями используемых буферов или приемо-передатчиков. Стандартные буферы могут обеспечить многоуровневое (Multivolt) ТТЛ-сопряжение с устройствами 5В и 3,3В-логики, а после несложной доработки и 2,5В-логики. Добавлением приемо-передатчиков, осуществляемое путем установки дополнительных плат с мезанинным принципом размещения, достигается расширение возможных используемых интерфейсов. Сюда можно отнести такие интерфейсы как RS-422/485, IEEE1284, USB (1.1-2.0), IrDA и многие другие. Удаление ВУ может составлять расстояния более 1 км, скорость передачи может превышать значения 1-100 Мбайт/с. Помимо ВУ предусматривается возможность подключения к каналам USER I/O других контроллеров типа PRC3-6 или иных типов.
Конфигурирование FPGA может осуществляться традиционными способами, с помощью интерфейса JTAG и устройства ByteBlaster MV или модуля конфигурирования ПЛИС на основе ПЗУ AT17_512A. ПЗУ типа AT17, в свою очередь может программироваться с помощью устройства ATDH2225. Существует возможность удаленного конфигурирования ПЛИС или перепрограммирования AT17 с последующим конфигурированием FPGA путем соединения внешним кабелем Peripheral I/O и модулей JTAG или CONF. После такого подключения осуществляется передача/обмен данными под управлением AVR, данные для конфигурирования могут находиться в ПЗУ EEPROM или поступать от HOST-процессора. Предусмотрен режим переконфигурирования схемы FPGA в режиме "ON-Line", в работающем контроллере.
В качестве вспомогательного модуля хранения данных используются микросхемы (до 2 ИМС) последовательного ПЗУ типа AT25xxx, суммарной емкостью до 128кбайт. Программирование ПЗУ осуществляется микроконтроллером AVR. Предусмотрена возможность удаленного программирования ПЗУ со стороны HOST-процессора и программирование (перезапись данных) со стороны AVR, включая режим записи текущих данных в реальном масштабе времени при проведении измерений или диагностики. Дополнительно реализована возможность замены ПЗУ, размещенной в специальной панели на плате. Информация, хранящаяся в ПЗУ используется микроконтроллером и может содержать:
- Текущие данные измерительных систем и систем управления,
- Калибровочные и поправочные значения, кодировочные таблицы,
- Систему меню и базовые значения для системы ручного управления,
- Варианты конфигураций схемы ПЛИС,
- Иную информацию.
Основные вопросы разработки обеспечения аппаратных и программных средств поддержки DSP-приложений, включая алгоритмы основных функций, широко освещается в технической литературе, например в работах [3], [4]. Как правило, в качестве средства реализующего выполнение алгоритмов подразумевается использование специализированных DSP-процессоров или центрального процессора ПЭВМ. Однако, в ПЛИС некоторые операции выполняются не менее эффективно (см. таблицу 1 и 2), а, в ряде случаев, превосходят результаты характерные для процессоров.
Таблица 1. Выполнение некоторых операций в FPGA
ACEX 1K Device Performance |
|||
Application |
Performance |
||
Speed Grade |
Units |
||
-2 |
-3 |
||
16-bit loadable counter |
232 |
185 |
MHz |
16-bit accumulator |
232 |
185 |
MHz |
16-to-1 multiplexer |
4.5 |
6.6 |
ns |
16-bit multiplier with 3-stage pipeline |
131 |
93 |
MHz |
256x16 RAM read cycle speed |
196 |
143 |
MHz |
256x16 RAM write cycle speed |
143 |
111 |
MHz |
Таблица 2. Выполнение некоторых DSP-операций в FPGA
ACEX 1K Device Performance for Complex Designs |
|||
Application
|
Performance |
||
Speed Grade |
Units |
||
-2 |
-3 |
|
|
16-bit, 8-tap parallel finite impulse response (FIR) filter |
156 |
116 |
MSPS |
8-bit, 512-point Fast Fourier transform (FFT) function |
28.7 |
38.9 |
ms |
92 |
68 |
MHz |
Основные функции микроконтроллера AVR в контроллере PRC3-6:
- Обеспечение связи с HOST-процессором и управление связью с ВУ,
- Обеспечение управлением работой составных частей контроллера и обменом данными между ними, арбитраж работы системы,
- Управление предварительной обработкой данных и выполнение ряда математических операций, например умножение,
- Принятие решений при управлении работой подключенных устройств.
Благодаря использованию микропроцессора и ПЛИС удалось на одной плате совместить достоинства как алгоритмической, так и быстрой параллельной многоканальной обработки данных.
СПИСОК ЛИТЕРАТУРЫ
- Г.А. Федоров, С.А. Терещенко Вычислительная эмиссионная томография. Москва. Энергоатомиздат, 1990г.
- О.А. Ханджян Начала и основы теории представления. Москва. Диалог-МГУ, 1998г.
- Оллсон Г., Пиани Д. Цифровые системы автоматизации и управления. - СПб.: Невский Диалект, 2001. 557с. ил.
- Солонина А.И., Улахович Д.А., Яковлев Л.А. Алгоритмы и процессоры цифровой обработки сигналов. - СПб.: БХВ- Петербург, 2001.-464с.: ил.