Arquitectura de un Circuito Integrado para la Medición Autónoma de

Anuncio
1
Revista Argentina de Trabajos Estudiantiles
Arquitectura de un Circuito Integrado para la
Medición Autónoma de Presión Sanguı́nea
J. Carrique, L. Centurión, M.Cipolletti, M. Di Federico†, P. Julián†, P. S. Mandolesi†
Dto. Ingenierı́a Eléctrica y Computadoras, Universidad Nacional del Sur, Av. Alem 1253, Bahı́a
Blanca. Email: j.carrique@ieee.org
Resumen— En este trabajo se describen los lineamientos principales para la implementación de un tensiómetro
digital, dispositivo capaz de medir la presión sanguı́nea de
manera no invasiva. Se plantea un diseño modular implementable como circuito integrado para aplicación especı́fica
(ASIC), partiendo de una descripción mixta en layout y en
lenguaje de descripción de hardware (VHDL).
Abstract— In this work it is described the principal items
for the implementation of a digital tensiometer , device capable to measure the blood pressure in a non-invasive way.
A modular design that can be implemented as an ASIC
circuit is proposed, starting with a mixed description in
layout and VHDL languaje of hardware description.
SerialOut
7
7
Filtro IIR
Pasa Bajo
Comunicación paralelo/serie
ClkUser
______
______________________
RST /Start
Strobe
P/S
_______________
(Busy/Ready)
Diast.
Sist.
Lógica de control
Strobe
_________________________
Busy/Ready
_______________________
Strobe
Pulsos
Palabras clave— Tensiómetro digital, descripción de hardware, ASIC.
Start /RST
7
Filtro IIR
Pasa Bajo
PulsoIIR
Ready
7
Detección
de
envolvente
Pico
SyncPico
Detección
de presión
CLK
Fig. 1. Diagrama general del sistema
I. Introducción
Cada vez que late, el corazón impulsa la sangre, que
transporta oxı́geno y nutrientes, a través de los kilómetros
de arterias y venas del organismo. La presión arterial
es la fuerza ejercida por la sangre contra las paredes de
las arterias. Todo el mundo posee cierta presión arterial
para que la sangre llegue a los órganos y músculos del
organismo.
La presión sanguı́nea puede medirse por métodos invasivos. Si bien estos métodos son los más precisos, en la
práctica rara vez se utilizan. Por el contrario, los métodos
no invasivos son utilizados ampliamente debido a su simplicidad, costo y principalmente por comprometer menos
la salud de los pacientes frente a cualquier alternativa invasiva.
En el método tradicional se coloca un estetoscopio entre
el brazo y un brazalete, se infla el mismo hasta lograr
una presión adecuada (200 mmHg por ejemplo), luego se
libera gradualmente la válvula de alivio hasta escuchar
unos ruidos (ruidos de Korotkoff) que señalan cuándo la
presión en el brazalete coincide con la presión arterial. El
primer ruido coincide con el valor de la presión arterial
alta o sistólica y el último coincide con la presión arterial
baja o diastólica.
Una alternativa al método tradicional es utilizar el
método oscilométrico. En este método se reemplaza el
estetoscopio por la medición de la presión en el brazalete,
separando las oscilaciones producidas por las pulsaciones
de la señal de presión.
Contando con la amplitud de las pulsaciones, se analiza la pendiente de la envolvente de las mismas. De la
†Docentes. P. Julián está afiliado con CONICET; P. S. Mandolesi
está afiliado con CIC.
TRATE05-012
información experimental y de la bibliografı́a especı́fica se
determina que la envolvente de la presión permite obtener
el momento aproximado donde la presión sanguı́nea y la
presión medida coinciden. Desde el comienzo del proceso
de medición la pendiente de la envolvente es monótona creciente pasando por un máximo al momento de la máxima
presión sanguı́nea para luego de unos instantes volverse
monótona decreciente pasando por la presión mı́nima al
momento de máxima pendiente decreciente.
II. Bloques del sistema
Para el diseño de la arquitectura se asume que se cuenta
con la señal de presión sanguı́nea y con la componente de
alta frecuencia de la misma, ambas señales correctamente
digitalizadas.
La arquitectura propuesta consta de varios bloques funcionales, que se relacionan como muestra la Fig.1. Los
distintos tipos de bloques funcionales son los siguientes:
- Filtro pasa bajo digital de respuesta infinita al impulso (IIR)
- Detector de envolvente de pulsos cardı́acos
- Detector de máximos locales en la pendiente de la
envolvente de pulsos cardı́acos
- Conversor paralelo/serie utilizado para la comunicación
- Lógica de control general
La señal de pulsaciones que ingresa al sistema contiene
la información de sincronismo para capturar los datos de
presión sistólica y diastólica. Esta señal es suavizada por
un filtro promediador antes de pasar a la siguiente etapa de
Vol. I - Nº 1 - Febrero 2006
58
2
Revista Argentina de Trabajos Estudiantiles
Start /RST
____________________ _ _ _
Start /RST
7
Strobe
7
Pulsos
Filtro IIR
Pasa Bajo
7
7
PulsoIIR
PulsoIIR
Ready
Ready
CLK
Detección
de
envolvente
Fig. 2. Interfase de un filtro IIR
Pico
SyncPico
CLK
Fig. 3. Interfase del módulo de detección de envolvente
detección de envolvente, que es la encargada de obtener las
pulsaciones sanguı́neas determinando los máximos locales
de la misma. Por último las pulsaciones se pasan a la
etapa que realiza el algoritmo de detección de la presión
sanguı́nea que envı́a la señal de captura de presión máxima
y mı́nima a los registros de comunicación.
El algoritmo de detección básicamente busca la máxima
pendiente positiva y negativa[1]. De esta manera, almacenando el valor de presión en el momento que ocurra
la máxima pendiente creciente y decreciente se habrá almacenado la presión arterial máxima y mı́nima. Entonces los aspectos principales para la detección de la
presión sanguı́nea dada la amplitud de las pulsaciones son:
- Determinación de la pendiente de la envolvente de
los púlsos
- Determinación del momento de máxima pendiente
negativa y positiva
Una vez realizada la medición de presión los datos son
entregados en forma serial con un reloj externo.
A. Fitro pasabajos IIR
Freescale Semiconductor, Inc...
La función que debe cumplir el bloque representado en
la Fig. 3, encargado de la detección de envolvente es la
siguiente: dada una forma de onda conocida muestreada
en tiempos discretos por un conversor A/D y filtrada con
determinadas caracterı́sticas que se detallan más adelante,
otorga el máximo de la misma y señaliza a la etapa siguiente que el dato en la salida es válido. Estos datos son
enviados a la etapa siguiente que determina cuándo tiene
que capturarse la presión sistólica y diastólica. Se observa
en la parte superior de la Fig. 4 la señal de entrada,
sobre la cual están los pulsos cardı́acos necesarios para la
sincronización de la etapa siguiente. Para poder extraer
más eficientemente (en términos de la conversión A/D)
los pulsos cardı́acos, la señal de presión se filtra por medio
de un filtro pasa altos, resultando la señal de la parte
inferior. Para una mejor visualización de esta señal, y a los
efectos de poder relacionar las restricciones impuestas se
ve a continuación una ampliación de la misma. Entonces
extracted oscillation signal at the output of the amplifier.
3
2.5
2
1.5
Oscillation signal is extracted here
1
0.5
0
0
5
10
15
20
Time (seconds)
25
30
35
40
Figure 3. CP signal at the output of the pressure sensor
3.5
MAP
3
SBP
DBP
2.5
2
Vo (volts)
B. Detección de envolvente
TRATE05-012
attenuation of 10 dB to the 1 Hz signal, the oscillation signal
becomes 3.8 mV to 11.4 mV respectively. Experiments
Vi (volts)
Se diseñaron filtros IIR digitales en VHDL para las
señales digitales correspondientes a la presión y a las pulsaciones. En el diseño queda asociado el orden de los mismos a una constante, para facilitar la utilización de una
misma topologı́a para ambos filtros.
En la Fig. 2 se pueden apreciar las lı́neas de interconexión que forman la interfase de un filtro IIR.
los valores que se desean rescatar son los máximos picos
positivos por encima de 1,75 V que se observan en la Fig.
5.
Para el diseño de la máquina de estados que comanda
esta etapa detallaremos las restricciones necesarias para
un correcto funcionamiento:
- Una vez hallado el máximo no se sensa la señal por
un tiempo (máscara de 450 ms.), para prevenir la
identificación de pulsos prematuros debidos a oscilaciones en la electrónica.
- Toda señal de entrada por debajo de un nivel de
continua se considera ruido 1,75 V.y no se procesa.
- La señal debe ser suave.
- La señal del filtro solo es válida cuándo la entrada
Ready = 1.
- La salida es válida cuándo SYNCPICO = 1.
- La señal PULSOSIIR solo es válida cuándo Ready
=1
La máquina de estados del módulo de detección de enFreescale
Inc. observar enAN1571
volvente, compuesta
por 4 Semiconductor,
estados, se puede
indicate that, the amplification factor of the amplifier is chosen
The oscillation signal varies from person to person. In
el
diagrama de la Fig. 8.
to be 150 so that the amplified oscillation signal is within the
general, it varies from less than 1 mmHg to 3 mmHg. From the
output limit of the amplifier (5 mV to 3.5 V). Figure 3(a) shows
transfer function of MPX5050GP, this will translate to a voltage
Aofcontinuación
se explican
uno
ellos:
the output
fromde
the pressure
sensor and Figure 3(b) shows the
output
12 mV to 36 mV signal. Since
the filter gives an cada
1.5
1
0.5
0
10
15
20
25
30
35
Time (seconds)
Figure 3b.
oscillation
signal at the
output of señal
amplifierfiltrada por
Fig. 4. Arriba: señal
deExtracted
presión
original.
Abajo:
un pasa altos
Vol. I - Nº 1 - Febrero 2006
Motorola Sensor Device Data
59
For More Information On This Product,
Go to: www.freescale.com
3
Freescale Semiconductor, Inc.
AN1571
SOFTWARE DESCRIPTION
Upon system power–up, the user needs to manually pump
the cuff pressure to approximately 160 mmHg or 30 mmHg
above the previous SBP. During the pumping of the inflation
bulb, the microcontroller ignores the signal at the output of the
amplifier. When the subroutine TAKE senses a decrease in
CP for a continuous duration of more than 0.75 seconds, the
microcontroller will then assume that the user is no longer
pumping the bulb and starts to analyze the oscillation signal.
Figure 5 shows zoom–in view of a pulse.
Revista Argentina de Trabajos Estudiantiles
3
Freescale Semiconductor, Inc...
1.75
Vo (volt)
450 ms
Premature pulse
–8.5
–8.3
–8.1
–7.9
–7.7
–7.5
–7.3
–7.1
Time (second)
Figure 5. Zoom–in view of a pulse
Fig. 5. Ampliación de la señal de presión filtrada con un pasa altos
First of all, the threshold level of a valid pulse is set to be 1.75
V to eliminate noise or spike. As soon as the amplitude of a
pulse is identified, the microcontroller will ignore the signal for
450 ms to prevent any false identification due to the presence
of premature pulse ”overshoot” due to oscillation. Hence, this
algorithm can only detect pulse rate which is less than 133
beats per minute. Next, the amplitudes of all the pulses
detected are stored in the RAM for further analysis. If the
microcontroller senses a non–typical oscillation envelope
shape, an error message (“Err”) is output to the LCD. The user
will have to exhaust all the pressure in the cuff before
re–pumping the CP to the next higher value. The algorithm
ensures that the user exhausts all the air present in the cuff
before allowing any re–pumping. Otherwise, the venous blood
trapped in the distal arm may affect the next measurement.
Therefore, the user has to reduce the pressure in the cuff as
soon as possible in order for the arm to recover. Figure 6 is a
flowchart for the program that controls the system.
Reset: Cuando comienza cada ciclo se tiene que asegurar que los valores que utiliza para calcular la pendiente
estén en el peor caso, ası́ no se pierden datos por valores
iniciales incorrectos. Cada vez que se termina un ciclo se
pasa por un estado de Reset (RST). En él solo se está un
pulso de reloj y se utiliza para inicializar la máscara y el
dato anterior a un valor predefinido.
BD: Este estado se llama búsqueda de disparo dado que
es el encargado de encontrar cuándo la señal comienza a
subir y esto se puede apreciar en el diagrama de estados
simbolizado con la letra S que es igual al signo de la diferencia entre la presión anterior y la presión actual, la cual
representa si la pendiente asciende o cae, es decir si S=1
la pendiente es negativa y si S=0 es positiva. Como en
el inicio, el dato anterior es definido al nivel máximo, la
pendiente calculada
en BD será 1. DespuésMotorola
evolucionará
Sensor Device Data
6
For More Information On This Product,
Go to: www.freescale.com
dependiendo de la señal
de entrada. Cuando ocurra el
cambio de S de 1 a 0 la señal comenzará a subir y entonces
se habrá cambiado al siguiente estado.
BM: Búsqueda de máximo. En este estado, se desea
hallar cuándo la pendiente pasa de 0 a 1, entonces el dato
guardado anteriormente será el valor máximo y la máquina
evolucionará a su siguiente paso.
Mask: Máscara. La función de este estado es enmascarar la señal de entrada por un tiempo definido (450 ms)
para prevenir falsos disparos que suelen ocurrir después
de un máximo. Además, al comienzo de este estado, se
levanta la salida SYNCPICO indicando que hay un dato
válido a la salida. La máquina transiciona al estado de
RST cuando se cumple el periodo de 450 ms fijado por la
CONT=0
Fig. 7. Simulación del módulo de detección de envolvente
máscara.
A continuación se mostrará la simulación del módulo
de detección de envolvente para constatar su correcto
funcionamiento. Esta parte del sistema se especificó en
VHDL, las simulaciones fueron realizadas con el entorno
de desarrollo de ALTERA. Fig. 7 sólo se pueden observar
con claridad las salidas SYNCPICO (transiciones de 1 a
0) y PICO, la primera representa si el dato es válido y la
segunda si es el máximo de ese perı́odo.
La señal MAINCLK es el reloj principal del sistema,
PULSOSIIR es la señal de entrada, Ready habilita si
PULSOSIIR es válido, Start es el encargado de iniciar la
medición de presión, PICO es la señal de salida del módulo
de detección de envolvente (máximo de PULSOSIIR) y
SYNCPICO avisa a la etapa siguiente que el máximo del
perı́odo se encuentra la salida.
En la Fig. 8 se puede observar como varı́a la señal de
entrada PULSOSIIR que es una representación numérica
de la Fig. 5. La salida del sistema es el máximo local
de PULSOSIIR. Cuando se detecta un máximo local la
señal PICO guarda este valor y SYNCPICO pasa de 0 a 1
avisando a la etapa siguiente que se tiene un nuevo dato
válido.
C. Detección de la presión máxima y mı́nima
Para la implementación de este algoritmo se presentó
un prediseño a nivel de compuertas para luego pasar a
una especificación VHDL, su esquema de entrada salida
se puede observar en la Fig. 9. Se trabajó con valores
de pendiente positivos, es decir, con el valor absoluto de
la pendiente, y con el signo de la pendiente. Además se
tuvo especial cuidado en la inicialización de las variables
CONT=0
MASK
RST
CLK
S=1
BD
S=1
BM
S=0
S=0
Fig. 6. Máquina de estados del módulo de detección de envolvente
TRATE05-012
Fig. 8. Detalle de la simulación de la máquina de estados del módulo
de detección de envolvente
Vol. I - Nº 1 - Febrero 2006
60
4
Revista Argentina de Trabajos Estudiantiles
actualData
_______________________
Start /RST
Sist. Diast.
No se actualiza en este
bloque (stIdle)
antSignoSlope <=
signoSlope
7
Pico
SyncPico
Detección
de presión
actualData
<
antData
si
signoSlope <= '1'
no
CLK
signoSlope <= '0'
Tener en cuenta que
antSignoSlope no sera
el signoSlope anterior
antSignoSlope
= '0'
Fig. 9. Interfase del módulo de detección de presión máxima
SI
RESET maxSlope
del sistema para garantizar el correcto funcionamiento del
módulo.
El diagrama funcional del mismo es el que se puede
apreciar en las Fig. 10 y Fig. 11. El módulo se mantiene
ocioso esperando por la ocurrencia de un pulso de presión,
la ocurrencia de una pulsación activa el mecanismo de
detección.
Estando con pendiente positiva si se encuentra una pendiente mayor a la máxima pendiente encontrada hasta ese
momento, inicializada en cero, se muestrea la presión y
se promueve el nuevo máximo, es decir que se efectúa una
búsqueda sucesiva de un máximo muestreándose la presión
en todos los máximos locales. En el momento que se de el
mayor de los máximos, se muestrea la presión sanguı́nea
correcta; el proceso es análogo para la detección con pendiente negativa. Como la pendiente se toma en valor absoluto, otra vez se inicializa la máxima pendiente en cero.
En la Fig. 12 se puede apreciar el resultado de una simulación del bloque de procesamiento en acción en conjunto
con el resto del sistema. El pulso en la linea Sist produce
la grabación del valor actual de presión, en el registro de
salida quedando almacenada entonces la presión sistolica.
Esta parte consiste en almacenar los datos que vienen
del conversor A/D (Presión Alta y Baja). Dichas presiones
se almacenan en forma paralela y son mostradas al exterior en forma serie. Para esto se utilizan dos registros de 7
bits que están conectados en serie entre si y además están
nueva pulsacion
procesamiento
idle
fin procesamiento
Fig. 10. Diagrama general de estados para la detección de presión
máxima y mı́nima.
TRATE05-012
antData <=
actualData
slope = ABS(antData - actualData)
stINewSlope
slope >
maxSlope
si
no
maxSlope <= slope
pulso Diast ó Sist
stIMaxSlope
Idle
Fig. 11. Secuencia de estados del bloque de procesamiento.
D. Módulo de comunicaciones
no hay pulsacion
stIdle
realimentados, ver Fig. 13. La realimentación está para
que una vez que el operario realizó una lectura queden
en los registros la última medida que se hizo, sin modificación alguna para el supuesto caso que se necesite volver
a extraer los datos.
Es necesario contar con dos relojes diferentes, uno para
lectura que lo provee el operario y otro para escritura generado por el sistema. El manejo de los dos periodos de reloj
se llevó a cabo utilizando dos multiplexores manejados
por la señal de control Busy/Ready la cual proviene de la
lógica de control. En sı́ntesis lo que se logró fue que si se
está haciendo una escritura (Busy/Ready = 0), gobierna
el CLK del sistema (Sist o Diast, dependiendo del dato a
guardar) y si se está haciendo una lectura (Busy/Ready
= 1) gobierna el CLK provisto por el usuario.
Escritura: como se dijo en un principio la escritura se
hace en forma paralela. El dato está disponible en el BUS
y es almacenado en un registro con la ocurrencia de un
Vol. I - Nº 1 - Febrero 2006
61
5
RevistasignalPulsoZoom.vwf*
Argentina de Trabajos Estudiantiles
Date: May 9, 2005
0 ps
Project: v001
80.0 ms
160.0 ms
200.0 ms
75.0 ms
MainClk
Data_in
Strobe
38
42
46
50
54
58
62
89
+125.0 ms
59
58
56
7 bits Reg (Sist. Data)
54
50
45
42
30
21
10
clk
7 bits Reg (Diast. Data)
12
clk
Rst_Start
____
Busy / Ready
Sist
7 bits
Dist
IIR_LP:IIR_PULSO|acumulador 70 35 77 39 85 43 93 47 101 51 109 55 117 59 148 74 133 67 125 63 119 60 114 57 107 54 99 50 92 46 76 38 59 30 40 20 32 16 28 14 28
IIR_LP:IIR_PULSO|Ready
MUX
MUX
envelope:instEnvelope|contador
450
envelope:instEnvelope|data_ant
envelope:instEnvelope|SyncPico
127
46
50
SistDiast:instSistDiast|signoSlope
SistDiast:instSistDiast|slope
0
SistDiast:instSistDiast|maxSlope
3
54
58
7
7
CLK. Para ubicar la presión alta en su correspondiente
registro y la baja en el suyo se hace uso de las señales de
control Sist y Diast (señales de CLK) que provienen de
la máquina principal del sistema (detección de presión).
Esto es, con la señal de control Sist solamente se habilita el
registro donde vá el dato sistólico y con la señal de control
Diast se habilita el registro donde vá el dato diastólico.
Page 1
of 1 ya
Lectura: se realiza en modo serie. Una vez
que
existen datos válidos (finalización de una medición) se
genera una señal de control para informarle al operario
que está en condiciones de extraerlos. Es ahı́ cuando éste
debe proveer el CLK correspondiente para la lectura y ası́
obtener bit a bit la información completa.
La realimentación hace que los bits no solo salgan uno
a uno hacia el exterior sino que también vayan rotando en
los registros hasta volver a su posición inicial quedando
ası́ nuevamente la información disponible para el caso en
que se necesite volver a leerlos. Está claro que es necesario
que la cantidad de CLK provisto por el operario sean exactamente 14, de modo de evitar una falsa lectura debido
al defasaje de la información en los registros.
D.1 Diseño de los registros para el módulo de comunicación
Los registros se realizaron mediante un arreglo de flip
flops y multiplexores, ver Fig. 14. Los multiplexores
tienen la función de mandar el dato paralelo al flip flop
cuando se trate de una escritura o de mandar el dato serie cuando se esté realizando una lectura (realimentación).
P
D
Q
S
FF D
b0
P
D
Q
FF D
P
D
0
Sist
Clk
Diast
Fig. 14. Esquema de multiplexado de reloj
Para discriminar si se está haciendo una lectura o una escritura, a estos multiplexores les llega también la señal de
control Busy/Ready.
Vale recordar que cada registro funciona con su CLK
(uno con el CLK Sist y el otro con el Diast).
III. Conclusiones
Se puede notar de la Fig. 10 que en general el módulo
Revision: v001
de detección de la presión se encuentra
ocioso durante la
espera de una pulsación por lo que se podrı́a optimizar
su funcionamiento para reducir el consumo. El método
implementado resulta de gran utilidad y ayuda, dado que
permite el monitoreo rutinario de pacientes internados en
forma automática.
Resulta también importante destacar que si bien el
mismo podrı́a implementarse utilizando otra plataforma,
como un dispositivo lógico programable (PLD) o un microcontrolador, la alternativa presentada permite implementar gran parte de la lógica necesaria para la medición
de la presión sanguı́nea en un circuito integrado, lo cual
a su vez permitirı́a reducir costos de fabricación por volumen, y de esta forma equipar a los hospitales con un
método confiable y económico de medición continua de la
presión sanguı́nea.
Referencias
[1] Cari Bryant, Michol Cooper, and Andrew DeHennis, ”Analysis
of Invasive and Non-Invasive Blood Pressure Signals”, BME458
Final Project Report Winter 2001
[2] Neil H. E. Weste and Kamran Eshraghian, ”Principles of CMOS
VLSI design”, Addison-Wesley EEUU (1993).
[3] Jan M. Rabaey, Anantha Chandrakasan, Borivoje Nikolic, ”Digital Integrated Circuits”, Second Edition, ISBN: 0-13-090996-3,
Prentice Hall (1996).
Q
FF D
Out
b13
b1
____
Busy / Ready
S
7 bits
74
Fig. 12. Simulación del bloque de procesamiento junto con el resto
del sistema.
S
Out
14
Clk (sistolico)
Clk (diastolico)
Fig. 13. Cascada de flip flops que implementan el registro serie
paralelo
TRATE05-012
Vol. I - Nº 1 - Febrero 2006
62
Descargar