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 processing. The 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