Download A circuit for controlling an electric field in an fMRI... Yujie Qiu, Wei Yao, Joseph P. Hornak

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Operational amplifier wikipedia , lookup

Radio transmitter design wikipedia , lookup

Analog-to-digital converter wikipedia , lookup

Schmitt trigger wikipedia , lookup

Transistor–transistor logic wikipedia , lookup

405-line television system wikipedia , lookup

Wien bridge oscillator wikipedia , lookup

Integrated circuit wikipedia , lookup

Phase-locked loop wikipedia , lookup

Flip-flop (electronics) wikipedia , lookup

Valve RF amplifier wikipedia , lookup

Regenerative circuit wikipedia , lookup

Analog television wikipedia , lookup

Rectiverter wikipedia , lookup

Oscilloscope history wikipedia , lookup

Index of electronics articles wikipedia , lookup

Time-to-digital converter wikipedia , lookup

Opto-isolator wikipedia , lookup

Transcript
A circuit for controlling an electric field in an fMRI phantom.
Yujie Qiu, Wei Yao, Joseph P. Hornak
Magnetic Resonance laboratory
Rochester Institute of Technology
Rochester, NY 14623-5604
June 2013
This report presents a circuit for controlling a high voltage which can be applied to an
electric field cell used in an NMR or MRI experiment. The circuit is typically located in the
magnet room and interfaces to the imager through the pulse monitor. The circuit is powered
by batteries.
The circuit consisted of control, timing, and output sections. See Fig. 1 for a diagram
of the circuit and Table 1 for a component list. Each section was shielded to minimize the
pickup of signal from the imager and the introduction of noise into the images. The control
section contained the pulse logic, 235 V battery pack, relay, and shielded output cables. The
timing section was based on an Arduino Nano microprocessor. Interfacing to the MRI
system was done through the pulse monitor which was used to trigger the EPI sequences.
The timing part of the circuit is based on the Arduino Nano micro-controller. One
digital output, D12, is amplified and sent to the clock pin of the J-K flip flop (IC1). The other
output, D11, is sent to Red LED D5 (λ = 660nm) and IR LED D6 (λ = 940nm) as the input of
the finger sensor for peripheral triggering. The lights of these wavelengths are absorbed by
the oxyhemoglobin and deoxyhemoglobin respectively. Usually the absorption rates are
used to calculate the ratio of the oxyhemoglobin and deoxyhemoglobin. Here the
fluctuation of the signals from the two LEDs is regarded as the frequency of the heartbeat.
The LED D4 at the right side of Arduino is used to show the working status of D5 and D6,
while D3 at the left side of Arduino is used to show if Arduino is powered. BT2 provides the
electric source for Arduino.
The control circuit shows how the digital output D12 is transmitted. The signal is
magnified by two transistors (Q1 and Q2) as the input of the clock pin (Pin 4) of the J-K flip
flop (IC1). The electric source of IC1 is provided by BT1. According to the function table,
since J and
are all set to 1, the clock signal will toggle the output (Q) of the J-K flip flop,
i.e., if Q is 0 at first, change it to 1 and vice visa. When Q is 1, this signal is transmitted to
drive the relay (K1). The function of the relay is to control a high-power circuit by a
low-power signal. It is connected with the 235 V battery pack (BT3) to set the on and off
state of the electric field. The function of the four RF chokes (L1-L4) is twofold: first, to
block RF signals from the RF pulses and induced signals from the switching of the gradients
from getting into the controller, and second to block clock signals from the controller from
‐1‐ getting into the imager. Two LEDs are used to show the status of the system, D1 for the
connection, D2 for the state of the 235 V electric field. The specifics of the electric
components are listed in Table 1.
Controll
Timing
Fig. 1.
The schematic diagram of the circuit.
‐2‐ Table 1. Components List
Batteries
BT1
4.5 V (3x1.5 V)
BT2
235 V (20x12 V)
BT3
9V
Capacitor
C1 470 pf
Relay
K1 OMRON G3VM-2L
Transistors
Q1, Q2 C945
Q3 2030
RF Chokes
L1-4
100 µH Diodes
D1-5 Red LED
D6 IR LED
Resistors
R1 680 Ω
R2,3
6.8 k Ω
R4 3.3 k Ω
R5,6
1kΩ
R7 5.6 k Ω
R8-13 680 Ω
Integrated Circuits
IC1 SN74HC109N
Switches
S1,2
SPST
S3 Momentary
Fig. 2 presents the timing diagram for the application of E-field pulses in a SE-EPI
sequence. In this sequence TEF is the duration of the E field, TTD is the MRI system trigger
delay, and TED the electric field delay. Blocks of n images are collected with the E field,
followed by n images without E. This n-on, n-off collection is repeated m times. The code
used to create the pulses in the timing diagram is presented in Table 2.
Cardiac
Trigger
Pulse
Sequence
SE-EPI
SE-EPI
E-Field
Trigger
E-Field
n
TEF
n
m
TR
TED
TTD
Fig. 2. Timing diagram for applying an electric field pulses during an SE-EPI sequence.
‐3‐ Table 2.
Code used to generate the pulse timing in Fig. 2.
/* Pulse Control
output: two digital pulses
*/
//Pulse duration
const int d5 = 5;
int ledPins[]={11,12};
int val[3];
int d[4];
int idx = 0;
int times = 10;
// the setup routine runs once when you press reset:
void setup() {
// initialize the input and output.
Serial.begin(9600);
for (int index = 0; index < 2; index ++)
pinMode(ledPins[index], OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
d[0] = 15;
d[1] = 200;
d[2] = 1500;
d[3] = d[2] - d[1] - d[0] - d5;
if (d[3] < 0)
{
d[2] = d[1] + d[0] + d5;
d[3] = 0;
}
if (idx/times)
with(d[0],d[1],d[3]);
else
without(d[2]);
idx++;
if (idx == 2*times)
idx = 0;
//Write numbers in the window
Serial.print("Delay is ");
Serial.println(d[0]);
Serial.print("Length is ");
Serial.println(d[1]);
Serial.print("TR is ");
Serial.println(d[2]);
Serial.println("");
}
void without(int d2)
{
//Pulse for the IR LED
digitalWrite(ledPins[0], HIGH);
delay(d5);
digitalWrite(ledPins[0], LOW);
‐4‐ delay(d2-d5);
}
void with(int d0,int d1, int d3)
{
//Pulse for the IR LED
digitalWrite(ledPins[0], HIGH);
delay(d5);
digitalWrite(ledPins[0], LOW);
delay(d0-d5);
//Pulse for the J-K flip flop
digitalWrite(ledPins[1], HIGH);
delay(d5);
digitalWrite(ledPins[1], LOW);
delay(d1-d5);
digitalWrite(ledPins[1], HIGH);
delay(d5);
digitalWrite(ledPins[1], LOW);
delay(d3);
}
‐5‐