DSP简介-程序员宅基地

技术标签: 人工智能  

一、什么是DSP[1]

DSP,Digital Signal Processor,也就是数字信号处理器。这是一种具有特殊结构的微处理器,是以数字信号来处理大量信息的微处理器。将模拟信号转换成数字信号,用于专用处理器的高速实时处理。

DSP的工作原理:接收外部输入的模拟信号,然后将其转换为数字信号(为0或1),再对数字信号进行运算处理,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。

DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP 指令,可以用来快速地实现各种数字信号处理算法。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是当前越来越热门、应用越来越广泛的微处理器芯片。

二、 DSP的发展

1.世界上第一个单片DSP芯片是1978年AMI公司宣布的S2811

2.1979年,美国Iintel公司发布的商用可编程期间2920是DSP芯片的一个主要里程碑。

以上两种芯片内部都没有现代DSP芯片所必须的单周期芯片。

3.1980年,日本NEC公司推出的μPD7720,这是第一个具有乘法器的商用DSP 芯片。

4.1982年,日本Hitachi 公司推出浮点DSP芯片,是第一个采用CMOS工艺生产浮点DSP芯片。

5.1983年,日本的Fujitsu公司推出的MB8764,其指令周期为120ns ,且具有双内部总线,从而处理的吞吐量发生了一个大的飞跃。

6.1984年,AT&T公司推出的DSP32,是第一个高性能的浮点DSP芯片。

在这么多的DSP芯片种类中,最成功的是美国德克萨斯仪器公司(Texas Instruments,简称TI)的一系列产品。

TI是DSP领域的的老大。

TI公司1982年成功推出第一代DSP芯片:

第一代,TMS32010及其系列产品TMS32011、TMS32C10/C14/C15/C16/C17;

TMS320C1X是定点DSP芯片,采用二级流水线;

第二代,TMS32020、TMS320C25/C26/C28;TMS320C2X系列是定点DSP芯片,采用三级流水线;

第三代,TMS32C30/C31/C32;TMS320C3X系列芯片是浮点DSP芯片,采用四级流水线;

第四代,TMS32C40/C44;TMS320C4X系列芯片是浮点DSP芯片,采用五级流水线;

第五代,TMS32C50/C51/C52/C53;TMS320C5X系列芯片是定点DSP芯片,采用四级流水线;

第六代,TMS320C6X系列;TMS320C6X系列芯是一种新型定点DSP芯片,该芯片的内部结构与以前的DSP芯片不同,内部集成了多个功能单元,可同时执行8条指令,运算能力达1600MIPS。

以及集多个DSP于一体的高性能DSP芯片TMS32C80/C82等。

自1980年以来,DSP芯片获得迅猛发展:

1.从运算速度来看,MAC(一次乘法和一次加法)时间已经从80年代初的400ns(如TMS32010)降低到40ns(如TMS32C40),处理能力提高了10多倍。DSP芯片内部关键的乘法器部件从1980年的占模区的40左右下降到5以下,片内RAM增加一个数量级以上。

2.从制造工艺来看,1980年采用4μ的N沟道MOS工艺,而现在则普遍采用亚微米CMOS工艺。

3.从封装工艺来看,DSP芯片的引脚数量从1980年的最多64个增加到现在的200个以上,引脚数量的增加,意味着结构灵活性的增加。

此外,DSP芯片的发展,是DSP系统的成本、体积、重量和功耗都有很大程度的下降。

三、DSP芯片的类型

1. 根据基础特性

根据DSP芯片的工作时钟和指令类型来分类的。如果DSP芯片在某时钟频率范围内的任何频率上能正常工作,除计算速度有变化外,没有性能的下降,这类DSP芯片一般称之为静态DSP芯片。如果有两种或两种以上的DSP芯片,它们的指令集和相应的机器代码机管脚结构相互兼容,则这类DSP芯片称之为一致性的DSP芯片。

2. 根据数据格式

数据以定点格式工作的DSP芯片称之为定点DSP芯片。以浮点格式工作的称为浮点DSP芯片。不同的浮点DSP芯片所采用的浮点格式不完全一样,有的DSP芯片采用自定义的浮点格式,有的DSP芯片则采用IEEE的标准浮点格式。

3. 根据用途

可分为通用型DSP芯片和专用型的DSP芯片。通用型DSP芯片适合普通的DSP应用,如TI公司的一系列DSP芯片。专用型DSP芯片市为特定的DSP运算而设计,更适合特殊的运算,如数字滤波,卷积和FFT等。

四、DSP芯片的基本结构

DSP芯片的基本结构包括:

(1)哈佛结构;

(2)流水线操作;

(3)专用的硬件乘法器;

(4)特殊的DSP指令;

(5)快速的指令周期。

哈佛结构

哈佛结构的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。与两个存储器相对应的是系统中设置了程序总线和数据总线,从而使数据的吞吐率提高了一倍。由于程序和存储器在两个分开的空间中,因此取指和执行能完全重叠。

流水线与哈佛结构相关,DSP芯片广泛采用流水线以减少指令执行的时间,从而增强了处理器的处理能力。处理器可以并行处理二到四条指令,每条指令处于流水线的不同阶段。

专用的硬件乘法器

乘法速度越快,DSP处理器的性能越高。由于具有专用的应用乘法器,乘法可在一个指令周期内完成。

特殊的DSP指令DSP芯片是采用特殊的指令。

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

TMS320F28335 嵌入式DSP内部结构框图:

TMS320F28335 嵌入式DSP 来自网上 侵删

SEED-DEC28335主要集成了150M系统时钟的DSP、64K x 16 位的片外SRAM、16 路片内12 位A/D、12 路PWM、2 路UART、1 路CAN、一路高速USB、片外4 通道12-位D/A 和串行EEPROM+RTC 实时时钟等外设。这样使其能够应用在电机、电力等工业控制领域。

五、如何选择DSP芯片

一般来说,我们选择DSP芯片时,需要考虑如下因素:

TI系列推荐:

如果用于控制,主要是选择TMS320C2000系列;

如果用于通信,主要是选择TMS320C5000系列;

如果用于图像处理,那就选择6000系列。

C2000简介

拥有增强型正交编码解码模块eQEP、SCI通信接口、SPI外设接口、eCAN总线通信模块、看门狗电路、通用数字I/O口、多通道缓冲串口、外部中断接口等多种功能模块,为功能复杂的控制系统设计提供了方便; 同时由于其性价比高,越来越多地被应用于数字电机控制、工业自动化、电力转换系统、医疗器械及通信设备中[2]。

具体指标:

1.运算速度。运算速度是芯片的一个最重要的性能指标,也是选择芯片时所需要考虑的一个主要因素。运算速度可以用以下几种性能指标来衡量:

(1) 指令周期。就是执行一条指令所需要的时间,通常以纳秒(ns)为单位。

(2) MAC时间。即一次乘法加上一次加法的时间。

(3) FFT执行时间。即运行一个N点FFT程序所需的时间。

(4) MIPS。即每秒执行百万条指令。

(5) MOPS。即每秒执行百万次操作。

(6) MFLOPS。即每秒执行百万次浮点操作。

(7) BOPS。即每秒执行十亿次操作。

2.价格。根据实际应用,确定一个价格适中的芯片。

3.硬件资源。

4.运算速度。

5.开发工具。

6.功耗。

另外还要考虑一些其它的因素,如封装的形式等等。

DSP应用系统的运算量是确定选用处理能力多大的DSP芯片的基础。确定一个DSP系统的运算量以选择DSP芯片的方法:

1. 按样点处理

就是DSP算法对每一个输入样点循环一次。比如:设计一个采用LMS算法的256抽头的自适应FIR滤波器,假定每个抽头的计算需要3个MAC周期,则256抽头计算需要256*3=768个MAC周期。如果采样频率为8KHz,即样点之间的间隔为125μs的时间,DSP芯片的MAC周期为200μs,则768个周期需要153.6μs的时间,显然无法实时处理,需要选用速度更快的芯片。

2. 按帧处理

有些数字信号处理算法不是每个输入样点循环一次,而是每隔一定的时间间隔(通常称为帧)循环一次。所以选择DSP芯片应该比较一帧内DSP芯片的处理能力和DSP算法的运算量。假设DSP芯片的指令周期为P(ns),一帧的时间为⊿τ(ns),则该DSP芯片在一帧内所提供的最大运算量为⊿τ/ P 条指令。

六、DSP系统

三大特色:强大数据处理能力、数字信号处理的实时性和高运行速度,最值得称道。一般具有如下的一些主要特点:

(1) 在一个指令周期内可完成一次乘法和一次加法。

(2) 程序和数据空间分开,可以同时访问指令和数据。

(3) 片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。

(4) 具有低开销或无开销循环及跳转的硬件支持。

(5) 快速的中断处理和硬件I/O支持。

(6) 具有在单周期内操作的多个硬件地址产生器。

(7) 可以并行执行多个操作。

(8) 支持流水线操作,使取指、译码和执行等操作可以重叠执行。

与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。

数字信号处理系统是以数字信号处理为基础,因此具有数字处理的全部特点:

(1) 接口方便。DSP系统与其它以现代数字技术为基础的系统或设备都是相互兼容,这样的系统接口以实现某种功能要比模拟系统与这些系统接口要容易的多。

(2) 编程方便。DSP系统种的可编程DSP芯片可使设计人员在开发过程中灵活方便地对软件进行修改和升级。

(3) 稳定性好。DSP系统以数字处理为基础,受环境温度以及噪声的影响较小,可靠性高。

(4) 精度高。16位数字系统可以达到的精度。

(5) 可重复性好。模拟系统的性能受元器件参数性能变化比较大,而数字系统基本上不受影响,因此数字系统便于测试,调试和大规模生产。

(6) 集成方便。DSP系统中的数字部件有高度的规范性,便于大规模集成。

目前广泛应用的是TMS320F28335芯片系列。

DSP芯片实例TMS320C542:

TMS320C542属于TI公司C5000系列。C5000系列具有以下特点:

  ·改进的哈佛结构,包含一条程序总线,三条数据总线和四条地址总线

  ·高度并行的CPU和针对应用优化的硬件

  ·针对算法和高级语言优化的指令集

  ·先进的IC技术使其既高性能又低功耗。

C5000系列DSP微处理器内部结构功能框图,如图1所示。包括:40bit算数逻辑单元(ALU);2个40bit累加器A和B;17×17bit乘加单元、40bitMAC ,可作64级FIR运算而不必考虑溢出;计算、选择、存储单元(CCSU),特别适合Viterbi等算法;40bit桶型移位寄存器;片上双存取RAM,每机器周期可存取两次;片上单存取RAM,可同时访问两块片上存储区;片上外围接口,包括串口、定时器、PLL、HPI接口等。

  TMS320C542自身特点如下:

  ·25ns单周期定点指令执行时间,5V供电

  ·10K Words16bit 片上双存取RAM

  ·64K Words程序,64K Words数据,64K Words I/O存储空间

  ·2K Words HPI接口,可通过此接口方便地与主设备进行信息交换,主设备也可通过此接口下载DSP程序

  ·一个自动缓冲的串口和一个TDM串口,且都可用作标准同步串口

  此外,C5000系列DSP可使用JTAG接口进行调试,可完全控制DSP上的所有资源,使用方便可靠。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_45190660/article/details/131760903

智能推荐

SimpleFOC(五)—— 双电机控制_loop222-程序员宅基地

文章浏览阅读7.4k次,点赞2次,收藏37次。目录一、硬件说明1、硬件清单2、硬件连接二、程序演示三、其他控制模式1、速度模式2、速度和力矩混合模式 一、硬件说明1、硬件清单序号名称数量1Arduino UNO12simpleFOCShield V2.0.323带磁编码器的云台电机2412V电源15方口USB线1如下图所示: 2、硬件连接  ⑴、驱动板背面跳线  两个驱动板,一个接9、5、6、8,另一个接3、10、11、7。  ⑵、编码器连接  Arduin_loop222

Linux高级IO-程序员宅基地

文章浏览阅读1k次,点赞16次,收藏20次。IO主要分为两步:第一步是等,即等待IO条件就绪。第二步是拷贝,也就是当IO条件就绪后将数据拷贝到内存或外设。任何IO的过程,都包含“等”和“拷贝”这两个步骤,但在实际的应用场景中“等”消耗的时间往往比“拷贝”消耗的时间多,因此要让IO变得高效,最核心的办法就是尽量减少“等”的时间。

python websocket-http实现fastapi-sse_sse_starlette flask-程序员宅基地

文章浏览阅读1.6k次。实现目的:因为项目从flask迁移到fastapi上,导致flask-sse无法使用期间尝试了很多websocket相关库如:starlette.websocketssse_starlette.sse import EventSourceResponse等期间踩了无数坑后来发现了websocket-client库第一步 搭建简单的fastapi 服务from fastapi import FastAPI, Requestfrom client_web import_sse_starlette flask

Am335x 应用层之SPI操作_spi_ioc_message-程序员宅基地

文章浏览阅读1w次。我们先来看一下SPI的时序图,下面的内容转自http://blog.chinaunix.net/uid-8307196-id-2032955.htmlSPI接口有四种不同的数据传输时序,取决于CPOL和CPHL这两位的组合。图1中表现了这四种时序,时序与CPOL、CPHL的关系也可以从图中看出。图1CPOL是用来决定SCK时钟信号空闲时的电平,CPOL=0,空闲_spi_ioc_message

时序预测 | MATLAB实现基于LSTM-AdaBoost长短期记忆网络结合AdaBoost时间序列预测 替换数据可以直接使用,注释清楚,适合新手_adaboost能集成lstm-程序员宅基地

文章浏览阅读858次,点赞18次,收藏21次。在金融市场、气象预测、股票走势等领域,时间序列预测一直是一个重要的问题。随着人工智能和机器学习的发展,越来越多的方法被应用于时间序列预测中。本文将介绍一种基于长短期记忆网络(LSTM)结合AdaBoost的时间序列预测方法。长短期记忆网络是一种特殊的循环神经网络,它在处理时间序列数据时表现出色。LSTM网络能够学习长期依赖关系,对于时间序列数据中的趋势和周期性变化有着较好的表现。然而,单独的LSTM网络可能无法充分捕捉时间序列数据中的复杂特征,因此需要结合其他方法进行预测。_adaboost能集成lstm

一文弄懂神经网络中的反向传播法——BackPropagation_神经元模型 反向传播-程序员宅基地

文章浏览阅读307次,点赞2次,收藏2次。最近在看深度学习的东西,一开始看的吴恩达的UFLDL教程,有中文版就直接看了,后来发现有些地方总是不是很明确,又去看英文版,然后又找了些资料看,才发现,中文版的译者在翻译的时候会对省略的公式推导过程进行补充,但是补充的又是错的,难怪觉得有问题。反向传播法其实是神经网络的基础了,但是很多人在学的时候总是会遇到一些问题,或者看到大篇的公式觉得好像很难就退缩了,其实不难,就是一个链式求导法则反复用。如果不想看公式,可以直接把数值带进去,实际的计算一下,体会一下这个过程之后再来推导公式,这样就会觉得很容易了。 _神经元模型 反向传播

随便推点

代码大全2(读书笔记10)_把一段代码放入一个命名恰当的子程序内,是说-程序员宅基地

文章浏览阅读418次。109、为未来的变化做准备  如果你预计到某个程序会被修改,你可以把预计要被改动的部分放到单独的类里,同其他部分隔离开,这是个好主意。之后你就可以只修改这个类或用新的类来取代它,而不会影响到程序的其余部分了。 110、子程序优点一-----------降低复杂度  创建子程序的一个最重要的原因,就是为了降低程序的复杂度。可能通过创建子程序来隐藏一些信息,这样你就不必再考虑这些信息了_把一段代码放入一个命名恰当的子程序内,是说

CAM 和 Grad-CAM 实现_guided_model-程序员宅基地

文章浏览阅读1.5w次,点赞9次,收藏66次。https://bindog.github.io/blog/2018/02/10/model-explanation/推荐这个博客,感觉原理讲的比较清楚。代码: 代码参考链接:https://github.com/jacobgil/keras-grad-cam 对其中有问题的地方进行了更改。from keras.applications.vgg16 import ( V..._guided_model

C# wince5.0下的插入、删除、更新源码_c#wince源码-程序员宅基地

文章浏览阅读1k次。using System;using System.Collections.Generic;using System.Text;using System.Data.SqlServerCe;using System.IO;using System.Collections;using System.Data;using System.Drawing;using System.Windo_c#wince源码

算法导论第三版 10.1-6习题答案_算法导论15.3-6答案-程序员宅基地

文章浏览阅读436次。10.1-6答案:设定两个栈为s1和s2,那么s1用来ENQUEUE(),s2用来DEQUEUE(),当然s1需要用来为DEQUEUE()操作作过渡,流程如下:(1)首先将入队元素1,2,3依次放进栈s1。此时s1元素从低到高为1,2,3,s2中暂时无元素。(2)然后依次将1,2,3从s1中弹出并且放入s2中。此时s1栈空,s2中元素从低到高依次为3,2,1(3)若此时进行还需要ENQU..._算法导论15.3-6答案

java编译提示错误_javac编译提示错误需要为 class、interface 或 enum-程序员宅基地

文章浏览阅读1k次。HelloWorld.java:1: 需要为 class、interface 或 enum锘缝ublic class HelloWorld{^1 错误这个错误出现的原因主要是在中文操作系统中,使用一贯的“javac HelloWorld.java”方式编译UTF-8(带BOM)编码的.java源文件,在没有指定编码参数(encoding)的情况下,默认是使用GBK编码。当编译器用GBK编码来编译U..._d:\jdkcode>javac helloworld.java helloworld.java:1: 错误: 需要 class、interf

spring security 集成cas单点登录核心配置及相关java代码_cas登录核心代码-程序员宅基地

文章浏览阅读3.1k次。最近项目中需要集成单点登录,所以最近研究了下,同时也在前面的章介绍了cas服务端的搭建,接下来security 集成cas 亲测可行,网上也是有很多不完整的代码,免得误导大家1.web.xml配置 kun-web contextConfigLocation classpath:webApplication.xml,classpath:application_cas登录核心代码