Немного про научный проект… ч. 1

Переселив большую лень, я таки решился написать о недавнем проекте, который, к большому сожалению, так и «не стартанул»… Почему так произошло — тема, не относящаяся к моему блогу, поэтому об этом я распространяться не буду.

Мы разрабатывали электронную (железо, прошивки, тестовое ПО) часть позитронно-эмиссионного томографа (ПЭТ). Лично я же отвечал за железо и тестовое ПО. В статье постараюсь вкратце рассказать о построении ПЭТ и, в частности, о работе небольшого аналогового модуля «дискриминатора сигнала со следящим порогом».

Реклама

Позитронно-эмиссионная компьютерная томография

Позитронно-эмиссионная компьютерная томография (ПЭТ) — радионуклидный томографический метод исследования внутренних органов человека или животного. Метод основан на регистрации пары гамма-квантов, возникающих при аннигиляции позитронов с электронами. Позитроны возникают при позитронном бета-распаде радионуклида, входящего в состав радиофармпрепарата (РФП), который вводится в организм перед исследованием. Аннигиляция позитрона, остановившегося в веществе (в частности, в ткани организма), с одним из электронов среды порождает два гамма-кванта с одинаковой энергией, разлетающихся в противоположные стороны по одной прямой (для простоты далее по тексту буду называть этот процесс событием):

И, накопив некоторое количество событий в разрезе (2D-проекция), проехавшись по всей плоскости исследуемого объекта, в итоге из 2D-проекций получается 3D-модель исследуемого объекта (точнее, модель накопления РФП в теле исследуемого объекта):

Дальнейшее развитие этой технологии — это ПЭТ Time-of-Flight (ToF) типа. Если вкратце, то он даёт более точную модель благодаря тому, что происходит измерение времени полёта обоих гамма-квантов в каждом событии и таким образом вычисляются более точные координаты этого события (в обычном ПЭТ обычно предполагается, что событие было посередине). Различия работы наглядно отображает следующая картинка, показывающая распределение вероятностей координат случившегося события:

И в качестве примера получающегося изображения:

Изображение взято с википедии, построено по методу проекций максимальной интенсивности всего тела человека при ПЭТ-исследовании с использованием 18F- ФДГ. Красные области показывают высокое, синие – очень низкое потребление ФДГ. Помечены нормальный мозг и почки, в мочевом пузыре видна радиоактивная моча от распада ФДГ. В печени наблюдается большая метастатическая опухолевая масса от рака толстой кишки.

Реклама

Блоки сцинтиляторов

Начинается путь регистрации событий с кристаллов ортосиликата-лютеция (или общим названием сцинтиляторы). Гамма-кванты, попадая в сцинтилятор, поглощаются им и дают вспышку “света” в ультрафиолетовом диапазоне, которую и необходимо измерять. Вспышка света ловится SIP-фотодиодами, которые производят различные компании, например Sensl (чуть ниже на фотографиях) или HammaMatsu.

Матрицы сцинтиляторов выглядят вот так:

Это матрица кристаллов LYSO (Ce) — сцинтилляционных кристаллов ортосиликата лютеция-иттрия, легированных церием, каждый из которых почти полностью обворачивается фольгой (кроме одной стороны, к которой прижимаются матрицы SiMP), чтобы не происходило ложных засветов соседних кристаллов.

Примыкающая часть — плата с матрицей фотодиодов ARRAYC-30035-144P-PCB (SiMP):

На нижней стороне на этой платы огромное количество выводов:

Да, к слову, есть забавный вариант исполнения матрицы фотодиодов — 2х2 с BGA шариками:

К разъёмам с нижней стороны матрицы фотодиодов подключается следующая плата, на которой аналоговая схема на ОУ преобразовывает полученные сигналы с матрицы в 4 выходных сигнала (Х+\-, Y+\-).

Для SiPM платы ARRAYC-30035-144P-PCB продолжением является AB424T‐ARRAYB144P, выглядит она вот так:

Вид сбоку подобной сборки плат и фото вживую:

Структурно сборка этих плат следующая:

К этой плате подводится:

  • Двухполярное питание ±2.8 В для аналоговой части;
  • Высокое напряжение BIAS +27.6V для питания матрицы SiMP.

И выводятся следующие аналоговые сигналы:

  • Значение температуры;
  • Значения координат события.

Оцифровывая последние, применив простую формулу, можно определить координаты события и его силу (уровень засвета):

Сами же эти сигналы формируются следующим образом (так называемая ангер-кодировка, более подробно можно прочесть, например, в AND9778/D):

Реклама

Пример флудмэпа на основе 40 миллионов событий (но 27 миллионов отброшено, т. к. имели флаги ошибок):

Здесь можно прекрасно видеть неидеальность оцифровки, расположения сцинтиляторов и неравномерность их прилегания к SiPM-матрице, отчего полученная матрица и отдельные пикселы имеют характерные геометрические искажения или размытия.

Анализ совпадений между парой каналов показывает вполне неплохие результаты для довольно простой хардварной реализации:

Большая часть совпавших событий с разных каналов имеет разбег менее 1 нс и это не конечный результат. Также, проанализировав спектр энергии событий, можно увидеть характерный горб для основного количества событий по величине энергии:

Ну и самое скучное, таким образом они выглядят в виде RAW-данных:

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

Если посмотреть документацию AiT Instruments, то они рекомендуют далее ставить их же дополнительную плату Interface module (4-канальный вариант):

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

Или вот, SiPMIM16 — более продвинутый 16-канальный вариант для более точных вычислений и дальнейшей обработки сигналов в ПЛИС:

В последнем как раз и виден тот самый блок дискриминатора сигналов, который выделяет нужные события по уровню энергии и выдаёт триггерный сигнал, что событие произошло и необходимо начать его обработку.

Если смотреть на такую структурную схему с позиции легкости сборки\модернизации любых научных установок, то да, всё в целом неплохо, но с позиции построения готового блока регистрации события для ПЭТ Interface Module на блок-схеме явно лишний и будет вносить только дополнительные погрешности в оцифровку сигналов, поэтому все необходимое для питания и оцифровки сигналов с SiMP плат необходимо реализовывать на плате ПЛИС.

Вживую плата SiPMIM16 выглядит вот так:

И на ней, помимо горы дорогих буферных ОУ от Analog Devices, сумматора и дискриминатора сигналов, можно заметить горстку DC-DC для генерации питающих напряжений:

Ничего примечательного, в целом, забавно только то, что только тут из всей платы крайне повышенная плотность монтажа (микросхемы с верхней стороны), хотя это не особо и требуется.

Реклама

Блок дискриминатора сигнала со следящим порогом

И вот мы подходим к реализации необходимых для оцифровки сигналов с SiMP-плат и, собственно, регистрации событий модулей на разработанной нами плате. Блок дискриминатора сигнала со следящим порогом — этот модуль нужен для точного определения времени поступления события путём выдачи триггерного сигнала, а также отсеивания событий по выставленному порогу величины минимальной энергии (защита от флуда и активная адаптация к потоку событий).

Пример дискриминатора (входной сумматор раскинут по всей плате) на плате SiPMIM16 от AiT Instruments:

Из примечательного тут можно видеть аналоговую задержку 1505-20B от Data Delay Devices, которые по сути являются простейшей CLC-сборкой:

но из прецизионных элементов, имеющих маленькое значение ppm. Порядки CL-сборок идут с четко фиксированным шагом задержки для конкретного импеданса нагрузки. Значение задержки на плате можно переключать джампером, реализованным на PLD-разъёме.

Далее разберём принцип работы дискриминатора на переработанной схеме…

Реклама

Блок дискриминатора — схемотехника

Рассмотрим схему электрическую (кликните для увеличения):

Особенности представленной схемы:

  • Выходы “TCMP” и “LCMP” для обработки сигналов фронта входного импульса и перехода импульса через пороговое значение для обработки в ПЛИС;
  • Регулируемая задержка перехода через “0” суммарного сигнала в части DA6, DA8, DA9 посредством установки одного из резисторов-перемычек R18 R22 (4 нс, 8 нс, 12 нс, 16 нс, 20 нс);
  • Независимость от отрицательной постоянной составляющей во входном сигнале, фиксируется только импульс благодаря отсечке по постоянному току после входного сумматора на DA1DA4;
  • Инвертирование входного сигнала после сумматора, благодаря этому его последующая обработка возможна более простыми и доступными ЭРИ.

Рассмотрим подробно по отдельным узлам схемы:

На входе стоят буферные повторители на DA1…DA4 с двухполярным питанием ±3 В, их выходы соединены вместе через резисторы и это в итоге представляет собою простой сумматор сигналов ±X и ±Y. Далее постоянная составляющая отсекается посредством С9 и сигнал подаётся на инвертор сигнала, собранный на DA5. Часть схемы приведена ниже в увеличенном варианте, а также на схеме ниже указаны контрольные точки, с которых сняты осциллограммы при входном импульсе амплитудой 0.5 В, поданном на один из входов (остальные подключены к земле):

Осциллограммы сигнала в указанных точках. Желтый луч – это импульс на входе дискриминатора, идущий с генератора сигналов (используется для синхронизации). Голубой луч – это сигнал в указанной контрольной точке.

Сигнал с инвертора снимается с выхода ОУ DA5 и подаётся на два отдельных узла – узел отсечки по уровню и узел выделения фронта входного импульса. Узел отсечки по уровню собран из буферного повторителя на ОУ DA7, компаратора DA10 и представляет собой определение входного сигнала через заданный уровень и установки выходного уровня сигнала в “1”. Сигнал после буферного повторителя на DA7 подаётся на RC фильтр (R15, C25), после чего компаратором DA10 сравнивается с опорным напряжением, заданным на входе “Dref”. На вход “Dref” подаётся постоянное напряжение с внешнего ЦАП, чем и регулируется порог срабатывания компаратора. Фронт сигнала с выхода компаратора DA10 – “LCMP” обозначает переход входного импульса через заданный уровень.

Представленные ниже осциллограммы показывают сигнал в указанных точках:

Узел выделения фронта входного импульса собран на DA6, DT1, DA8, DA9:

Работает узел следующим образом: входной импульс проходит через буферный повторитель на DA6, далее подаётся на инвертирующий вход ОУ DA8, а также на вход аналоговой задержки DT1, с выбираемого выхода которой подаётся на неинвертирующий вход ОУ DA8. В итоге на выходе ОУ DA8 можно видеть осциллограмму, приведённую ниже, на которой видно, что фронт импульса с некоторой постоянной задержкой передаётся на выход ОУ DA8 в инвертированном виде, а с момента спада входного импульса выход ОУ DA8 меняет свое значение на противоположное. Момент перехода через “0” в выходном сигнале ОУ DA8 и есть “вершина” входного импульса с фиксированной задержкой, которая фиксируется компаратором DA9. Фронт сигнала с выхода компаратора DA9 – “TCMP” обозначает время прихода (точнее, его вершины) импульса.

 Последний узел формирования сигнала триггера, он представляет собой триггер с защелкой и сбросом от одновибратора для формирования одиночного импульса на выходе “TRG”:

На вход триггера “CLK” приходят импульсы “TCMP” и по их фронту фиксируются данные на входе “D”, на который подаются импульсы с “LCMP”, свидетельствующие о достаточной величине импульса для исследования. Таким образом, все неподходящие импульсы или ложные срабатывания отбрасываются и не проходят на выход “TRG”. Выход триггера DD2 дублируется инвертирующим триггером Шмидта DD3, после чего выдаётся на выход для исследования на стороне ПЛИС, также выход триггера DD2 заведён на время задающую цепь R25, C28 выход которой через инвертирующий триггер Шмидта сбрасывает состояние триггера DD2. Временная метка для события ставится по спаду сигнала “TRG”:

Контрольная точка “Л”
Реклама

Блок дискриминатора — исследование работы на имитируемых событиях

Работа дискриминатора проверялась от лабораторного источника питания двумя независимыми каналами по 3 В, включенными последовательно для получения двухполярного питания. В качестве источника импульсов взят функциональный генератор сигналов, а выходные сигналы фиксировались цифровым осциллографом.

Снята серия осциллограмм со следующей последовательностью амплитуд сигналов – 50 мВ, 100 мВ, 250 мВ, 500 мВ, 800 мВ, 1000 мВ для каждой из выставленных задержек, посредством резистора перемычки на одном из выходов DT1. Каждому уровню входного сигнала выставлен следующий уровень Dref (Vin – Dref): 50 мВ – 25 мВ, 100 мВ – 50 мВ, 250 мВ – 100 мВ, 500 мВ – 400 мВ, 800 мВ – 500 мВ, 1000 мВ – 500 мВ.

Ниже приведены снятые осциллограммы группами в порядке увеличения входного напряжения и в пределах одной группы в порядке увеличения выставленной задержки DT1.

На снятых осциллограммах верхний сигнал – входной импульс, нижний сигнал – выходной триггер. Осциллограммы имеют инверсные цвета и сняты в режиме “электронного люминофора”.

Примечание: приведу сильно выборочно осциллограммы, т. к. их много, но их отсутствие роли не сыграет.

Серия осциллограмм для входного сигнала 100 мВ в порядке увеличения задержки:

Серия осциллограмм для входного сигнала 800 мВ в порядке увеличения задержки:

На основе вышеприведенных осциллограмм можно построить следующий график дрожания входного импульса от спада выходного триггера, показывающий зависимость джиттера на выбранной задержке от уровня сигнала и наглядно демонстрирующий оптимальное значение задержки DT1:

Также в процессе снятия осциллограмм был выявлен такой феномен – для больших уровней сигналов положительно влияет выставление небольшого порогового значения Dref, что в итоге даёт уменьшение джиттера. Примеры выявленного феномена для 500 мВ, 800 мВ и задержек 4 нс, 8 нс приведены ниже (формат подписи скриншотов задержка/Dref/Vin):

Также замечено ложное срабатывание триггера, если установлено очень маленькое значение Dref и на вход дан значительно превышающий его по амплитуде импульс (пример: Dref = 10 мВ, Vin = 800 мВ).

Реклама

Подытожив, приведу очень краткие итоги по оптимальной работе дискриминатора:

  1. При старте работы задаётся минимальное значение Dref;
  2. После некоторого времени работы, если срабатываний триггера было избыточное количество (забит канал связи или есть пропуски в обработке событий), необходимо повысить Dref;
  3. Dref должен быть не более значения 150 мВ, выше которого начинается ухудшение джиттера на больших сигналах;
  4. В процессе работы регулировать Dref в зависимости от поступающего потока событий прямопропорционально с некоторым гистерезисом;
  5. На малых входных импульсах работа дискриминатора сильно критична к качеству питания.

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

Конец первой части

Статья получилась немаленькая, а ещё надо описать, что происходит с событиями далее, как они оцифровываются, что происходит с потоками событий в итоге и про загадочные аббревиатуры БРГ, БОС. Поэтому продолжение будет в следующей статье.

Надеюсь, это хоть кому-нибудь интересно… XD

Реклама

Ссылки

  • AND9778/D — методы обработки сигналов с SiPM-матриц;
  • AiT Instruments — производитель различного рода отладочных плат для проведения научных опытов;
  • SensL — производитель SiPM-фотодиодов, используемых в ПЭТ;
  • HammaMatsu — производитель оптических сенсоров, компонентов, лазеров и источников различного излучения.

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

Please log in using one of these methods to post your comment:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s