Digital Signal Processors (DSPs) and Development Tools

According to Wikipedia, a digital signal processor (DSP) is a specialized microprocessor (or a SIP block), with its architecture optimized for the operational needs of digital signal processingThe goal of DSPs is usually to measure, filter and/or compress continuous real-world analog signals. Most general-purpose microprocessors can also execute digital signal processing algorithms successfully, but dedicated DSPs usually have better power efficiency thus they are more suitable in portable devices such as mobile phones because of power consumption constraints. In addition, DSPs often use special memory architectures that are able to fetch multiple data and/or instructions at the same time.

What’s in a DSP:

       A fast CPU that manipulates digitals signals in order to extract useful information from them

       Architecture optimized for signal processing (FFT, Digital filtering, fast arithmetic operations, single-cycle multiplication-addition)

       Specialized addressing modes, like indirect and circular addressing (useful for SP mechanisms)

       Possess efficient I/O peripherals

       Can perform several accesses to memory in a single instruction cycle - high bandwidth between the CPU and Memory

 

 

 

 

An example of one of the first modern DSP systems (Texas Instruments):

 

 

Getting started as a DSP developer: Identify your needs and what matches them best:

      DSP Architecture

      Fixed-Point vs. Floating Point DSP

      Processing Speed

      Texas Instruments TMS320

      The C6713 DSP from TI can be a good fit for many applications requiring floating point operations

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

McASPs

− Two Independent Clock Zones Each (1 TX and 1 RX)

− Eight Serial Data Pins Per Port: Individually Assignable to any of the Clock Zones

− Each Clock Zone Includes:

       − Programmable Clock Generator

       − Programmable Frame Sync Generator

      − TDM Streams From 2-32 Time Slots

      − Support for Slot Size: 8, 12, 16, 20, 24, 28, 32 Bits

      − Data Formatter for Bit Manipulation

      − Wide Variety of I2S and Similar Bit Stream Formats

      − Integrated Digital Audio Interface; Transmitter (DIT) Supports:

     − S/PDIF, IEC60958-1, AES-3, CP-430 Formats

− Up to 16 transmit pins

− Enhanced Channel Status/User Data

− Extensive Error Checking and Recovery

McASPs interface to I2C multichannel ADC, DAC, Codec etc.

 

 

 

McBSP (Multichannel Buffered Serial Port )

Interfaces to:

             High Speed TDM codecs

            AC97 codecs

            Serial EEPROM

      Each port can communicate a full duplex, continuous data stream at rates up to 75 Mbps

      can be used for inter-processor communication as well as for connecting industry standard peripheral devices like codecs, A/D or D/A devices, etc. 

 

 

 

 

 

 

POSSIBLE CONFIGURATIONS

 

 

 

 

 

Other DSP systems based on the C6713

 

 

 

 

PROGRAMMING DSPs

 

 

 

 

 

 

 

Linear Assembly

     Source code  .sa   (created with a text editor)

     An alternative to C or Assembly code

     Creates  .asm source program in much the same way that a C-compiler is used in conjunction with .c code

     The resulting .asm code is typically more efficient than the one resulting by the C-compiler optimizer

     Both must be assembled, to produce .obj code

     Compromize between coding effort and coding efficiency

 

 

The Code Composer Studio (CCSTM)

     TI’s IDE operating under Windows

     Incorporates Editor, Compiler, Linker and Debugger

     C and TI Assembly languages; Familiarity with C is assumed

     RTOS (DSP-BIOS)

     Serves many DSP and DSC families (C6000, C2000 etc)

     Source level debugging

     Memory and Registers displays

     General Extension Language (GEL) capability that allows the user to create functions that extend the usefullness of CCSTM

 

 

The basic development environment:

 

An alternative to the TI’s basic programming/development environment:

 

 

 

 

An example of using MATLAB as a development tool:

 

Resources