Development of a Flexible Pulse Programmer for MRI Using a Commercial Digital Signal Processor Board

INTRODUCTION Recent sophisticated fast NMR imaging sequences require a high performance pulse programmer as well as a high speed gradient and RF system. However, to construct such a pulse programmer is not easy because many parameters including three channel gradient amplitudes must be controlled at a high time resolution. One approach to the MRI pulse programmer is to use a hardware logic circuit consisting of a clock counter, address counter, digital comparator, and word memory. The logic circuit for such pulse programmer, however, becomes very complicated and the wiring increases explosively. Use of some computer system for the NMR pulse programmer is a well known solution. But PC or other usual board computers cannot be used to generate exact time sequences because these computers have system interruptions by the system timers and refresh cycles for DRAM devices. Most of digital signal processor (DSP) board systems are, however, made to give exact time sequences which can be used for NMR pulse sequences. We have thus developed a flexible pulse programmer for MRI using a commercial DSP board. HARDWARE SYSTEM The DSP board used is DSP6031 (mtt Instruments Japan) which has a 32-bit floating point DSP chip (TMS320C31, Texas Instruments) running at the 40 MHz clock frequency with the 50 ns instruction cycle. This board has four 12-bit ADC, four 12-bit DAC, and an 8-bit digital I/O port. All of them are assembled on a full size PC-AT extension card. This DSP board can be connected to other extension boards (full size PC-AT cards) using a 32-bit I/O bus. We used one extension card for 32-bit digital outputs. These two PC-AT full size cards connected with the DSP I/O bus were installed to a PC running under MS-DOS or Windows95. The DSP has the internal 32-bit timer of which clock is synchronized with the DSP clock. Because the timer can generate interrupt signals to the DSP operation (50 ns cycle) and the minimum clock cycle of the timer is 100 ns, the DSP can generate pulses at 100 ns time resolution. PROGRAM FOR THE PULSE PROGRAMMER Figure 1 shows the overview of the program developed for the pulse programmer. This program consists of three major components. The first component is the time table of the pulse sequence written with a text editor. The second component is the DSP program to generate pulse sequences. The key operation in the program is the timer interrupt operation: at first, the delay time is loaded to the timer register, then the interruption from the timer takes place after the delay time, and the event is output according to the event data in the time table. This DSP program was developed using the cross C compiler and the cross assembler for the DSP chip on the host PC running under MS-DOS version 6.2. The third component is the program to convert the time table to the timing and event data used for the DSP and to download the DSP code and timing data to the DSP memory. gradient waveforms RF control lines