DSP 学习笔记 |(一) 初识 DSP

本文最后更新于:6 天前

由于工作需要,在此开设 DSP 学习笔记系列。如有错误,欢迎交流指正!

一、DSP 概念

数字信号处理器(DSP,Digital Signal Processor)接收经数字化处理的语音、音频、视频、温度、压力或位置等现实世界信号,然后以数学方式进行操作处理。 可以非常迅速地执行”加”、”减”、”乘”、”除”之类数学运算功能。

DSP_block_diagram.svg

通过下图可以清楚了解 MP3 播放器中 DSP 的工作原理。 在录制阶段,模拟音频通过接收器或其他来源输入。 模拟信号接着通过一个模数转换器转换为数字信号,再传至 DSP。 DSP 进行 MP3 编码,然后将文件保存至内存。 在回放阶段,文件从内存中取出,由DSP解码,再经数模转换器转回模拟信号。这样模拟信号就可以通过音响系统输出。 在更复杂的例子中,DSP 将执行其他功能,如音量控制、均衡和用户界面。


DSP 与其它处理器的差别

数字信号处理器(DSP)、通用微处理器(MPU)、微控制器(MCU)三者的区别在于:DSP 面向高性能、 重复性、数值运算密集型的实时处理;MPU 大量应用于计算机;MCU 则适用于以控制为主的处理过程。

二、DSP 结构特点

image-20220716173129183

  1. 哈佛结构:一种将 程序指令存储数据指令存储 分开的存储器结构。可以减轻程序运行时的总线瓶颈。(程序和数据不在同一个地方)

image-20220716173403540

  1. 专业的硬件乘法器

    经典的 FFT、IIR 和 FIR 等数字信号处理算法中,乘法的 DSP 运算的重要组成部分;

    • 时钟周期:晶振频率的倒数;

    • 机器周期:把一条指令分割成若干个阶段,每个阶段就称为机器周期;

    • 指令周期:取指令、译码、操作,完成一条指令所需要的时间。

  2. 流水线操作

    执行指令的几个阶段在程序执行过程中是重叠的,即几条不同的指令同时处于激活状态,每天指令处于不同的阶段。

    取指和取操作数都需要对 CPU 和内存来进行对数据的和指令的交换。由于 DSP 是哈佛结构,CPU 和存储器不在同一位置,所有可以同时进行。在冯诺依曼结构中,数据和指令都在同一存储器中,不能重叠进行。


image-20220716173832518
image-20220716173857726

  1. 特殊的 DSP 指令

    DSP 采用特殊的指令。

  2. 快速的指令周期

    快速的指令周期、哈佛结构、流水线操作、专用的硬件乘法器、特殊的 DSP 指令,再加上集成电路的优化设计可使 DSP 芯片的指令周期在 200ns 以下。

三、DSP 芯片分类

  1. 根据基础特性分类:静态 DSP 芯片、一致性 DSP 芯片
  2. 根据数据格式分类:定点 DSP 芯片、浮点 DSP 芯片
  3. 根据用途分类:通用型 DSP 芯片、专业型 DSP 芯片

四、DSP 内部结构

DSP 包含以下这些重要元件:

  • 程序存储器:储存 DSP 将用来处理数据的程序
  • 数据存储器:储存将要处理的信息
  • 计算引擎:进行数学处理、访问程序存储器中的程序及数据存储器中的数据。
  • 输入/输出:提供一系列功能,与外部连接

4.1 内存总线

内存总线(Memory Bus):包含数据总线和地址总线,总线是为了数据交换的。

以 TI DSP ‘28x 为例,CPU 内部总线:

image-20220716175339210
image-20220716175437558
image-20220714204045145

4.2 CMD 文件

  • 命令文件即 CMD (Command)是 DSP 运行程序必不可少的文件,用于 指定 DSP 存储器分配
  • CMD 文件主要由两个伪指令构成,即 MEMORY 和 SECTIONS;
  • MEMORY 指令定义目标存储器的配置,SECTIONS 指令规定程序中各个段及其在存储器中的位置。

五、DSP 相关名词

  • 模拟信号处理 vs 数字信号处理

    前者可以处理包括微波毫米波乃至光波信号(分辨率很高)。后者按照奈氏准则的要求,受 S/H 、A/D 和处理速度的限制,对高频信号处理没有优势。

  • 在 DSP 开发中就是通过对 DSP 的寄存器进行配置或者赋值,来控制 DSP 使其按照我们预定的功能运行。

  • align = 16,地址对齐,起始地址必须是 16 的倍数。

  • 位: 数字字可细分的最小单位。 位数反映字宽。 字的位数越多,该字代表的数越大。

  • DMA(直接存储器访问):DSP的I/O处理器通过外部、主机、串行、SPI 和 UART 端口支持在 DSP 存储器和外部存储器、主机或外设之间的数据 DMA。 每次 DMA 操作可以传输整块数据。

  • 定点:DSP 操控和表示最适合数字的一种方法,其中该数字不大于单个内部寄存器中的最大数字。 寄存器的大小由其包含的位数确定。 例如,32 位数可能大于 16 位数。

  • 浮点:数字由尾数和指数表示的系统。 例如,a×2b,其中”a”为尾数,b为指数。 利用该方法,DSP 可操纵非常小的数字或非常大的数字。 浮点处理器表示IEEE确定的标准格式数字。 它是由 32 位表示的科学计数法。

  • Von Neumann architecture 架构: 这是大多数(非 DSP)微处理器所用的架构。 该架构采用单一地址和数据总线进行存储器访问

  • Harvard 架构:DSP 使用具有独立总线的内存架构以便编程和存储数据。 两个总线使 DSP 同时获得数据字和指令。

  • I/O 处理器: DSP 具有分布式 DMA 架构,其中每个支持 DMA 的外设均配有 DMA 控制器。 此外,大多数端口可直接(非 DMA)访问内部存储器和 I/O 存储器。 I/O 处理器这一术语在全球范围内指 DMA 控制器、DMA 通道仲裁和外设至总线连接。

  • MIPS: 百万条指令/秒,其中每个指令可执行多个操作。

  • MACS: 乘加/秒

  • MOPS: 百万次操作/秒

  • MFLOPS: 百万次浮点操作/秒

  • 字: 表示数据值的位串。 DSP 中的字长通常为16位、24位、32位和48位。

参考引用

[1] DSP数字信号处理

[2] Let’s Talk DSP

[3] 数字信号处理入门指南

[4] Digital signal processor


本文作者: Eren
本文链接: https://erenship.com/posts/65e8.html
版权声明: 署名-非商业性使用-相同方式共享 4.0 国际(CC BY-NC-SA 4.0

 目录


# Do more, know more, be more