DSP56002EVM based system for analysis of TCD signal
The
DSP56002EVM
module, available from Motorola is a cheap and usefull tool
for getting familiar with DSP56002 processor.
However this simple system may also be suitable for more serious
applications.
I have used it for analysis of the signal obtained from Transcranial Doppler
- a device for noninvasive measurement of the blood flow velocity in the
cerebral vessels.
Two analogue signals provided by the TCD device (the "in-phase" component
and the "quadrature" component) are connected to the analog inputs of the EVM
board.
The signals are separated into two components: one associated with flow toward
the transducer, and the second - associated with flow outward the transducer.
The calculated spectrum and estimated mean and maximum frequencies
are sent through the serial interface. Additionally the calculated maximum frequency is
output as the analogue signal through the headphones output of the EVM (However
you must be aware, that the "ground" pin in headphones jack of EVM is not connected to the
EVM's ground!!!).
Software of the system
The software is written in the DSP56002 assembly language.
The source consists of four assembly files:
- 1. evm_tcd.asm
- This is the main source file, which includes the rest of them.
The procedures implemented in this file initialize the EVM's hardware
and start the data acquisition. The analog signals connected to the codec's
input are sampled with frequency of 9.6 kHz. The samples are then stored into
the circular buffer. Whenever the specified amount of data is available, the
user provided "ProcessData" routine is executed. This file may be used for any
application which requires the block processing of sampled data.
Some of the procedures are based on the "ada_init.asm" and "txrx_isr.asm"
files copyrighted by Motorola.
Some information is obtained from the
CS4215 codec's datasheet.
- 2. process.asm
- This file, included by evm_tcd.asm, implements the data processing routine,
which analyses the acquired
segment of data, and calculates: spectrum (with FFT), mean frequency, and max
frequency (with percentile method).
The data sent through the serial interface contain:
- 0x80 - marker of the new record
- Data for the flow toward the transducer
- The max frequency (signed char)
- The mean frequency (signed char)
- 127 values of log2 of the power (signed char)
- Data for the flow outward the transducer
- The max frequency (signed char)
- The mean frequency (signed char)
- 127 values of log2 of the power (signed char)
I hope that in the future I will find some time to
add other algorithms of analysis.
- 3. sincos.asm
- This file may be found in the
56000.zip
archive on the Motorola's WWW site. Please fill in the
form
after downloading.
- 4. fftr2a_x.asm
- This file is a slightly modified version of "fftr2a.asm" file, available in the
56000.zip.
Here is the patch file, containing my modifications.
In Unix you should use "patch -p0 < fftr2a.patch; mv fftr2a.asm fftr2a_x.asm"
to obtain this file.
Information available on Motorola's WWW site
Some parts of my code are based on the sample code provided by Motorola on their
DSP Development Software Download Area "Dr. Bub".
I used some code from "ada_init.asm" and "txrx_isr.asm" files available in the
evm27.zip file, and
"fftr2a.asm" and "sincos.asm" available in the
56000.zip
After downloading the above files you should fill in the
form.
Additionally I have used information available in the following books, included with
the EVM board, but also available in the Internet:
-
DSP56000 24-bit Digital Signal Processor Family Manual
-
DSP56002 Digital Signal Processor User's Manual
- DSP56002 Data Sheet
If you have any comments about this page, or about my code, please mail me
Wojciech Zabolotny
Last modified: Tue Sep 1 15:49:10 CEST 1998