Montevideo, 27-29 de setiembre de 2006 IBERSENSOR 2006 Modular System for Real Time Image Generation with Ultrasound Arrays J. Camacho*, C. Fritsch, M. Parrilla, A. Ibáñez Instituto de Automática Industrial (CSIC) La Poveda (Arganda), 28500 Madrid (Spain) (*) Jorge Camacho, +34 91 871 19 00, [email protected] Abstract Obtaining real time images with ultrasonic arrays require complex electronic systems, mainly because of the large quantity of active elements, high frequency of ultrasound signals, high voltage used during emission and demanding signal processing and beam-forming functions. For research purposes, as well as for Non Destructive Testing (NDT) and Medicine applications, a very flexible equipment regarding hardware configuration and algorithm implementation is required. This is not usually available on commercial equipment. In this work we present the development of a modular and scalable system for real time imaging with ultrasonic arrays, flexible enough for implementing new excitation, signal processing and beam-forming techniques for NDT and Medicine applications. Keywords: Ultrasound Hardware, Ultrasound Beamforming, Phased Array, SAFT, Progressive Focusing Correction. Introducción En la actualidad existen distintas técnicas para la obtención de imágenes con arrays ultrasónicos pero todas ellas constan básicamente de cinco etapas: 1) Excitación de los elementos del array, 2) Adquisición de las señales de cada elemento, 3) Composición de los haces o de la imagen, 4) Procesamiento de señal y 5) Representación Gráfica. Según la técnica que se utilice, los esquemas de excitación y composición son diferentes (ej. Phased-Array, SAFT, etc.) variando los requerimientos del sistema en función de la técnica utilizada. La excitación se realiza mediante la generación de pulsos o trenes de pulsos de alta tensión para cada uno de los elementos del array de manera independiente. Controlando el instante de excitación de cada elemento se logra deflectar y focalizar el haz ultrasónico en el medio, lo cual permite en sucesivos disparos generar un barrido en la zona de interés (técnica Phased-Array). Variando la deflexión se genera un barrido sectorial, mientras que cambiando el grupo de elementos activos en cada disparo se genera un barrido lineal. En la técnica SAFT uno o varios elementos del array son excitados simultáneamente generando en el medio un frente de ondas no focalizado, lo cual se repite para elementos distintos en cada disparo. En cualquiera de estas técnicas pueden utilizarse códigos binarios durante la excitación, con el fin de mejorar la relación señal-ruido o para separar en recepción las señales generadas con cada elemento. Las discontinuidades en la densidad del medio generan ondas acústicas reflejadas que son ISBN: 9974-0-0337-7 convertidas nuevamente por el mismo array en señales eléctricas (modo Pulso-Eco), o captadas por un segundo array (modo Pitch&Catch). Las señales generadas por cada elemento del array son amplificadas y digitalizadas de forma independiente por circuitos electrónicos dedicados, que incorporan funciones como la compensación automática de ganancia y el filtrado analógico de señal. Una vez digitalizadas, las señales de cada elemento deben componerse para obtener una línea focalizada de la imagen. Por ejemplo, en la técnica PhasedArray se suman de forma coherente para obtener una única traza correspondiente a un determinado ángulo de deflexión con focalización en uno o más puntos de esa dirección. Para focalizar en múltiples puntos es necesario retardar el inicio de la adquisición de cada elemento y variar el instante de muestreo de cada señal a lo largo de la adquisición en tiempo real. En la técnica SAFT se almacenan las señales recibidas por todos los elementos y se componen una vez realizada la excitación de todos los elementos del array. Para cualquier técnica utilizada es necesario cierto procesamiento de señal en tiempo real que incluye, entre otros, filtros Pasa-Banda, Detectores de envolvente y Reductores de datos. La representación gráfica de la imagen se realiza en general en un computador externo con una interfaz de usuario que permite tanto tomar medidas sobre la imagen adquirida como cambiar los parámetros de funcionamiento del sistema. El sistema presentado en este trabajo implementa todas las funcionalidades descritas anteriormente de manera flexible y modular, lo cual permite utilizar 1/6 Montevideo, 27-29 de setiembre de 2006 IBERSENSOR 2006 distintos esquemas de excitación, procesamiento y generación de la imagen en tiempo real. Está dividido en tarjetas que controlan la emisión, recepción y procesamiento de 32 elementos del array, con la posibilidad de conectar varias de estas tarjetas para manejar arrays de mayor tamaño. 1 Arquitectura Para lograr un sistema modular fue necesario definir una arquitectura, identificar bloques funcionales y buscar una implementación física que permitiera la sustitución de estos bloques al cambiar los requerimientos. Elegimos AMPLIA [1] como la arquitectura del sistema por ser altamente modular, escalable y diseñada específicamente para sistemas de ultrasonido. E/S EXTERNAS - Pulsers, Conversores A/D, Encoders, etc. PC MÓDULO N UCI INTERFAZ PC - PC104 - USB .... MÓDULO 0 BUS AMPLIA - 32 bits Datos + 8 bits Control - BUS Bidireccional y Segmentado Figura 1 – Esquema de la arquitectura AMPLIA. En AMPLIA (Figura 1) se define una Unidad de Control e Interfaz (UCI), un Bus de 32 bits de datos y Módulos Genéricos. La UCI implementa la comunicación con el ordenador externo mediante algún bus estándar (Actualmente PC104 o USB). Tiene la capacidad de almacenar secuencias de comandos para ser ejecutados sin intervención del ordenador externo, posee una memoria para almacenar los resultados de la adquisición y puede manejar distintas fuentes de disparo (Interno, Externo, Base de Tiempos y Encoder). Los Módulos AMPLIA se interconectan mediante un BUS bidireccional y segmentado de 32 bits de datos y 8 bits de control. La cantidad de módulos está limitada a 256 únicamente por la capacidad de direccionamiento del sistema, ya que al ser un bus segmentado no presenta problemas de carga. Además de comunicarse entre sí mediante el BUS AMPLIA, los módulos pueden contar con entradas y salidas externas (Pulsers, Conversores A/D, Encoders, etc.). El funcionamiento de un sistema AMPLIA está dividido en dos fases: 1) Configuración, en la cual se envían comandos desde la UCI hacia los módulos con el fin de configurar los parámetros de operación, y 2) Procesamiento, donde los módulos ISBN: 9974-0-0337-7 entregan a la UCI los resultados de la adquisición. En este último caso cada módulo genera señales externas (ej. Pulsers) y procesa en tiempo real tanto los datos externos (ej. Conversores AD) como los generados por el módulo anterior, para luego transferirlos al módulo siguiente hasta llegar a la UCI. Esta arquitectura en pipeline permite el procesamiento de datos en tiempo real a la frecuencia del reloj maestro del sistema (Típicamente 40 MHz). Para este sistema se definieron dos tipos de módulos AMPLIA: 1) Módulos Digitalizadores y 2) Módulos Base. Los Módulos Digitalizadores incorporan la emisión, recepción y procesamiento para 8 elementos del array. Están implementados físicamente por dos tarjetas, una analógica con la electrónica de excitación y recepción para cada elemento, y una digital que controla la generación de pulsos de excitación y realiza la conversión AD y el procesamiento de las señales. Para la técnica Phased-Array realiza el beam-forming de las 8 señales del módulo y compone el resultado con la señal entregada por el módulo anterior antes de entregar el resultado al módulo siguiente. Para la técnica SAFT almacena las señales de cada elemento para ser transferidas y procesadas por el ordenador externo. Cada Módulo Base se conecta a 4 Módulos Digitalizadores formando en una misma tarjeta un subsistema completo de 32 elementos. Para PhasedArray cada Módulo Base realiza el beam-forming de la señal generada por sus 4 Módulos Digitalizadores con la señal conformada de los 32 elementos del siguiente Módulo Base en la cadena de procesamiento. Además implementa funciones comunes a sus 4 módulos, como son el filtrado digital, detección de envolvente, reducción de datos y generación de la curva de ganancia. Físicamente el sistema está implementado con 3 tipos de tarjetas: 1) Analógicas, 2) Digitales y 3) Tarjetas Base. Esta última contiene la electrónica que implementa el Módulo Base y provee de conectividad a 4 tarjetas analógicas y 4 tarjetas digitales que conforman los 4 Módulos Digitalizadores (Figura 2). De esta manera cada Tarjeta Base con sus módulos conectados forma un subsistema completo analógico-digital de 32 elementos. Para aumentar la cantidad de elementos activos del sistema se conectan sobre una tarjeta de interconexión (TARMA) hasta 6 Tarjetas Base, con lo cual se obtiene un sistema de 192 canales. Es 2/6 Montevideo, 27-29 de setiembre de 2006 posible interconectar varias tarjetas TARMA para manejar arrays de mayor tamaño (p. ej. arrays 2D). TARJETA BASE ELECTRÓNICA DIGITAL MÓDULO BASE MÓDULO DIGITALIZADOR TARJETA DIGITAL TARJETA ANALÓGICA MÓDULO DIGITALIZADOR TARJETA DIGITAL TARJETA ANALÓGICA MÓDULO DIGITALIZADOR TARJETA DIGITAL TARJETA ANALÓGICA MÓDULO DIGITALIZADOR TARJETA DIGITAL TARJETA ANALÓGICA BUS AMPLIA BUS ANALÓGICO CONECTORES HACIA EL ARRAY Figura 2 – Esquema de una tarjeta base de 32 canales. Las señales analógicas de cada Tarjeta Base se unen en una Tarjeta Frontal que posee el conector para el array. Esta Tarjeta Frontal puede conectar las señales de cada Tarjeta Base directamente a los elementos correspondientes en el array o incorporar una electrónica de multiplexado que permita seleccionar distintos elementos cuando la cantidad de elementos del array es superior a la cantidad de canales del sistema. Para el prototipo construido se fabricó una tarjeta con una relación de multiplexado de 128 a 32, lo cual permite utilizar un array de 128 elementos con una sola Tarjeta Base de 32 canales para realizar Barrido Lineal (apertura activa de hasta 32 elementos), técnicas de apertura dispersa, pitchcatch, etc. 2 Tarjeta Analógica Cada una de estas tarjetas contiene la electrónica analógica necesaria para excitar y recibir señales de 8 elementos del array. Los pulsers o circuitos de excitación son capaces de generar pulsos, trenes de pulsos, escalones (steps) o picos (spikes) de hasta 200V de amplitud, tiempos de subida y bajada menores a 5ns. Cada pulser está formado por un par de transistores MOSFET de potencia en ISBN: 9974-0-0337-7 IBERSENSOR 2006 configuración PUSH-PULL, controlados por dos señales digitales con niveles lógicos CMOS_3.3V. Para la recepción de las señales se utilizaron amplificadores de bajo ruido con ganancia variable entre 0 y 55dB, y se implementaron filtros analógicos para limitar el ancho de banda del sistema entre 350kHz y 20MHz (Figura 3). Cuando se trabaja en modo Pulso-Eco es necesario proteger la entrada de los amplificadores contra la alta tensión generada por los pulser. En general se utiliza un limitador de tensión formado por un par de diodos y una resistencia serie, lo cual tiene la desventaja de consumir corriente durante la excitación. Para este sistema se diseñó un circuito de protección activa basado en un transistor MOSFET de deplexión, que actúa como una llave analógica controlada por la tensión de entrada. De esta manera, cuando la tensión de entrada supera un umbral fijado en -3V la llave se abre protegiendo los amplificadores, y se cierra durante la recepción de las señales que en ningún caso superan este umbral. La ventaja de este circuito es que durante la generación del pulso de alta tensión el transistor presenta muy alta impedancia eliminando el consumo de corriente que presenta el limitador de diodos, y la baja impedancia durante la recepción reduce la pérdida de señal e introduce muy poco ruido. Una de las medidas realizadas fue el nivel de ruido a la entrada de cada canal. Para ello se midió el ruido RMS a la salida de los amplificadores, a máxima ganancia y con la entrada sin conectar. Figura 3 – Transferencia promedio medida sobre los amplificadores (sin filtro anti-aliasing). La banda pasante en -3dB es 0.37-77 MHz, y en -6dB es 0.24-85 MHz. Dividiendo este valor entre la ganancia del sistema se puede estimar el ruido equivalente a la entrada y teniendo en cuenta la máxima excursión de la señal se calcula la máxima SNR a la entrada del sistema. El valor medio obtenido para los 32 elementos del prototipo construido fue de 78 dB. 3/6 Montevideo, 27-29 de setiembre de 2006 También se midió el cross-talk entre elementos adyacentes conectando un transductor monoelemento de 8 MHz en un canal y adquiriendo con todos los canales. El valor medio obtenido para canales adyacentes fue de -34 dB. IBERSENSOR 2006 internamente se obtienen los dos relojes complementarios con los cuales se registran los datos del conversor. Para absorber las diferencias de tiempo debidas al ruteo de las señales en la tarjeta es necesario ajustar la fase de los relojes internos para registrar las señales en el momento óptimo. Figura 4 – Fotografía de una Tarjeta Analógica, de dimensiones 97 x 43 mm. Para generar las señales de control a los pulser se implementó en la FPGA un bloque de excitación capaz de generar pulsos, trenes de pulsos o códigos binarios de hasta 16 bits (configurables e independientes para cada elemento). La resolución en el ancho de los pulsos es de 6.25 ns y el período mínimo 12.5ns lo cual permite excitar transductores de hasta 40 MHz. El instante de inicio de la excitación es programable para cada elemento con una resolución de 6.25ns. El PCB para esta tarjeta fue realizado en 6 capas para reducir al máximo el ruido externo, utilizando planos de tierra en todas las capas. Los componentes fueron colocados para minimizar las dimensiones de la tarjeta, y en el trazado de las señales se tuvieron en cuenta consideraciones de ruido y cross-talk entre canales. Para la técnica SAFT se implementó en la FPGA de cada módulo la lógica que permite almacenar hasta 4096 muestras (100 µs) de cada uno de los elementos del array. Al finalizar la adquisición se transfieren al ordenador externo que, tras obtener las señales correspondientes a todos los disparos, realiza la composición de la imagen. 3 Tarjeta Digital Para la técnica Phased-Array cada FPGA realiza la composición del haz en recepción para cada uno de sus 8 elementos, y compone, en tiempo real, el resultado con la señal entregada por el módulo anterior. Para la composición se implementó, además de la focalización fija, la técnica de Corrección Focal Progresiva (FocPro) [2], que permite focalizar en recepción a lo largo de toda la adquisición con un error en el instante de muestreo menor a medio ciclo de reloj (3.125 ns). Esta técnica implica modificar, en tiempo real, el instante de adquisición de cada muestra para ajustar los tiempos de vuelo de la onda ultrasónica desde cada elemento a cada uno de los focos. Como el instante de muestreo real no puede ser modificado de forma independiente para cada canal debido a que cada conversor AD digitaliza 4 canales con un mismo reloj, las señales muestreadas a 40MHz son interpoladas por 4 dentro de la FPGA para lograr una resolución en el muestreo de 6.25 ns. La técnica FocPro minimiza la cantidad información necesaria para definir una ley focal codificando cada corrección en la adquisición con 1 bit y variando la cantidad de muestras entre focos, asegurando siempre un error acotado en el instante de muestreo Para focalizar a distancias muy cercanas al array, sin perder resolución, se implementó un algoritmo de apertura dinámica que permite aumentar la cantidad de elementos activos a medida que avanza la adquisición. Cada Tarjeta Digital contiene la electrónica de digitalización y procesamiento para 8 elementos del array. Se utilizó un dispositivo de lógica programable (FPGA XILINX Spartan3 X3S1000) donde se implementa la lógica de excitación, adquisición, apertura dinámica, apodización, beamforming, almacenamiento y comunicación AMPLIA de cada módulo. Este tipo de dispositivos aporta una gran flexibilidad al sistema ya que pueden ser fácilmente reconfigurados para implementar diferentes técnicas de inspección y procesamiento de señal. Cuentan con una memoria RAM interna de 384 kbits que cubre los requerimientos de almacenamiento tanto para la técnica Phased-Array como para la técnica SAFT. Para la digitalización de las señales se utilizaron conversores cuádruples de 12bits y 40MHz con salida serie diferencial (LVDS). La interfaz serie reduce significativamente la cantidad de señales digitales en la tarjeta, lo cual es necesario para lograr el nivel de integración buscado. La principal desventaja de este tipo de interfaz es la elevada tasa de transferencia de bits, en este caso 480 Mbps (12 bits a 40 Msps con lectura en doble flanco), lo cual requiere un diseño cuidadoso de la lógica de adquisición dentro de la FPGA. Cada conversor AD genera un reloj de 240 MHz que indica con sus dos flancos (DDR) el instante en que es válido cada uno de los 12 bits de cada muestra. Dicho reloj se conecta a entradas dedicadas en la FPGA e ISBN: 9974-0-0337-7 4/6 Montevideo, 27-29 de setiembre de 2006 En un barrido angular cada disparo corresponde a un ángulo de deflexión distinto, y por lo tanto tiene asociadas una ley focal en emisión y una en recepción. Cada ley focal en emisión está compuesta por los retardos aplicados a los N elementos del array, y cada ley focal en recepción está compuesta por N retardos iniciales que determinan la posición del primer foco. Para poder generar una imagen completa sin la intervención del ordenador externo, se pueden almacenar en cada FPGA hasta 256 leyes focales para los 8 elementos de cada módulo. A partir del primer foco en recepción se utilizan los códigos de corrección focal. Debido a que la memoria que almacena los códigos de corrección focal para la técnica FocPro está limitada a 16384 códigos, se puede configurar el sistema para que varias líneas angularmente próximas utilicen un mismo conjunto de códigos de corrección focal, pero distinta ley focal El PCB de esta tarjeta fue realizado en 6 capas debido a la alta densidad de señales. Para lograr el tamaño de placa buscado se utilizó para la FPGA un encapsulado BGA (Ball Grid Array) que provee una alta densidad de pines. Para el ruteo de señales se tomaron como principales criterios, minimizar el cross-talk entre pistas y reducir la emisión electromagnética que puede introducir ruido en la etapa analógica del sistema. IBERSENSOR 2006 coeficientes programables, y permite eliminar ruido y señales de baja frecuencia después del beamforming. El detector de envolvente realiza la rectificación de onda completa y suaviza la señal mediante un filtro de media móvil adaptado a la frecuencia central del transductor. El reductor de datos provee una reducción de (N+2):2, con N configurable, y funciona entregando en orden de aparición, el máximo y el mínimo de la señal en cada uno de los intervalos definidos por el factor de reducción N, lo que asegura la detección de todos los picos. En cada Módulo Base se implementó también el control de ganancia para los amplificadores, con la posibilidad de variar la misma de forma arbitraria durante la adquisición programando una memoria dedicada de 2048 posiciones (Compensación Atenuación-Distancia). Cada Tarjeta Base posee los conectores para 4 Tarjetas Analógicas y 4 Tarjetas Digitales, implementando el BUS AMPLIA entre módulos. Ademas posee 2 conectores hacia el array, uno para trabajar en modo Pulso-Eco y otro para conectar el array de recepción en el modo Pitch&Catch. Cada Tarjeta Analógica cuenta con llaves analógicas que permiten seleccionar el modo de operación. Además cada uno de estos conectores posee 4 líneas digitales para controlar los multiplexores que pueden estar presentes en la Tarjeta Frontal. El PCB de esta tarjeta también fue realizado en 6 capas, ya que en el trazado de las líneas analógicas hacia el array es necesario minimizar el cross-talk intercalando tierra entre señales y separando las mismas en distintas capas del impreso. Figura 5 – Fotografía de una Tarjeta Digital, de dimensiones 68 x 43 mm. Figura 6 – Fotografía de una Tarjeta Base, de dimensiones 250 x 100 mm. 4 Tarjeta Base 5 Tarjeta de multiplexado La tarjeta base posee también una FPGA (Xilinx Spartan3 X3S1000) que implementa funciones comunes a los 4 Módulos Digitalizadores que controla. Además, realiza el beam-forming de sus 4 módulos con el resultado del Módulo Base anterior en el caso de Phased-Array. Se implementaron en el Módulo Base 3 bloques de procesamiento de señal: 1) un Filtro Pasa-Banda, 2) un Detector de Envolvente y 3) un Reductor de Datos. El filtro pasa-banda es un FIR de 63 ISBN: 9974-0-0337-7 Para el prototipo construido se diseñó una Tarjeta Frontal con capacidad de multiplexar los 32 canales activos del sistema sobre un array de 128 elementos, lo cual permite realizar barridos lineales y aperturas dispersas. Los multiplexores están controlados por la Tarjeta Base mediante 4 líneas de control incluidas en el conector analógico. El PCB de esta placa fue realizado en 8 capas, debido a la gran cantidad de señales, todas ellas 5/6 Montevideo, 27-29 de setiembre de 2006 analógicas, que necesitan ser apantalladas para minimizar el cross-talk y reducir el ruido del sistema. IBERSENSOR 2006 recepción a lo largo de toda la adquisición, minimizando la cantidad de memoria necesaria para almacenar las leyes focales. En la Figura 9 se comparan dos imágenes de una probeta industrial adquiridas con un solo foco en recepción contra una tercera obtenida con la técnica ProFoc. El sistema es capaz de adquirir en tiempo real y sin la intervención del ordenador externo, imágenes de hasta 256 líneas. Se realizaron pruebas sobre distintas probetas industriales y un phantom médico, y los resultados obtenidos son ampliamente satisfactorios. Figura 7 – Fotografía de una Tarjeta Frontal Multiplexada, de dimensiones 200 x 130 mm. 6 Software El software de control y visualización fue realizado en lenguaje C++ para sistemas operativos Microsoft Windows® de 32 bits. Está dividido en 3 capas: 1) Drivers de Bajo Nivel, 2) Funciones de Hardware y 3) Funciones de Interfaz de Usuario. La primera incluye las rutinas de comunicación con la interfaces PC104 y AMPLIA, y se encarga de transferir a la UCI el programa a ejecutar. Las Funciones de Hardware traducen los valores de la adquisición definidos por el usuario en los parámetros físicos del sistema. La capa de más alto nivel implementa la interfaz de usuario, formada por funciones de entrada de datos y funciones de visualización de resultados en tiempo real. Figura 9 – Imágenes de una pieza de acero con 2 grupos de 3 taladros transversales separados 5mm. Las imágenes superiores se obtuvieron utilizando un solo foco en recepción a 20 mm (izqda) y 40 mm (dcha) de profundidad. La imagen inferior se obtuvo utilizando la técnica de focalización progresiva (FocPro). Agradecimientos Este trabajo ha sido realizado en el marco del proyecto DPI2004-06470 del Mº de Educación y Ciencia. Referencias Figura 8 - Imagen del software de Control y Visualización [1] C. Fritsch, T. Sánchez, D. Jiménez: AMPLIA: Una Arquitectura Modular para el Procesamiento y Despliegue de Imagen Acústica, Revista de Acústica (ISBN: 84-87985-03-3), vol 31, 2000. [2] J. Camacho, M. Parrilla, C. Fritsch: Dynamic Focusing for Medical Echography, Ibersensor 2006, 27-29 Sept. 2006, Montevideo, Uruguay. 7 Resultados Se construyó un prototipo de 32 canales activos y capacidad de multiplexado de 32 a 128 elementos, capaz de funcionar en modo Full Phased Array en tiempo real o registrando las señales de cada elemento para su procesamiento offline. Se implementó la técnica de Corrección Focal Progresiva, que permite focalizar el haz en ISBN: 9974-0-0337-7 6/6