description
This article treats the design and programming of a PCI expansion card, build around the Texas Instruments TMS320C31 floating point DSP. We encountered the need for a development system, which could be used for development of advanced applications in signal processing. The existing development kits usually use serial or parallel interface to the host PC, which are too slow for advanced signal processing applications. There are also some expansion cards using the ISA interface and very few PCI cards, but none of them suits them suits the defined needs. The expansion card consist of several units: The first is the memory unit, which consist of 1 MB static memory implemented in the form of two memory banks of 128k x 32bit. The schemantic of the first memory is shown in figure 2. A 215 kB Flsh memory fot booting and initialization is in-system programmable. The second unit is the PCI local bus interface for connecting to the host PC, which is realized with the PLX PCI9050 PCI bridge/9/. The PCI bridge provides low cost connectivity for PCI slave designs. It is specifically targeted at easing the transition of existing ISA designs to the more feature rich and performance oriented PCI bus. The PCI 9050 provides direct slave PCI functions by interfacing the adapter's I/O circuitry (control, address and data lines) to a host computer's microprocessor/memory architecture via the 32-bit PCI bus, which typically runs at 33 MHz. The behavior of the bridge is controled via the local configuration registers in table 1. The third unit is the two channel analog input/output interface, which consists of a 20-bit stereo audio CODEC from Crystal (CS4222/8/), supporting sampling rates up to 48 kHz, the corresponding input and output buffers and a microphone preampflifier. The fourth unit is presented with expansion connectors for connecting applicationsspecific hardware and an emulator connector for connection of hardware emulator unit. The system data transfer rates between the DSP and the host PC very between 50 MB/s and 132 MB/s. These figures are valid for the DSP running at 50 MHz. This means that the DSP can read with a 25 MHz clock (25 MHz x 32 bit = 100 MB/s) and write with a 12,5 MHz clock (50 MB/s). In this way the whole 1 MB RAM on the expansion card can be rewritten in 20 ms. When accessing the memory via the PCI bus, the local bus operates with a 33 MHz clock, which gives us the peak performance of 132 MB/s. The development environment consists of the device drivers for Windows 95/98/NT/2000 and the utilities for initialization of the system, downloading of program code and communication with the card via the PCI bus. Without upgrades, the system is capable to run applications like a spectrum analyzer for low frequencies (up to 20 kHz), 32 channel logic analyzer with a frequency up to 25 MHz, a 32 bit generator of digital signals, with a frequency up to 12,5 MHz, FIR filters with about 500 coefficients for filtering analogue signals, which are sampled with a frequency up to 48 kHz, a sound effect processor, and many more.