DSP开发入门综述-程序员宅基地

技术标签: dsp  汇编  c  产品  fft  存储  compression  

    DSP是Digital Signal Processing(数字信号处理)或Digital Signal Processor(数字信号处理器)的缩写。这一章中我们要讲的内容是,如何开始采用一个或多个数字信号处理芯片对输入信号(数字信号)进行分析、处 理。所以在你进行DSP开发之前,你应该明确以下几个问题:
    (1).你是否应该或需要使用DSP?
    (2).你应该选择哪个型号的DSP?
    (3).你熟悉你即将使用的DSP吗?包括它的硬件结构、外设控制、指令系统、寻址方式以及开发环境(工具)?

1-1为什么要采用数字信号处理?
  (1)灵活性
    在模拟处理系统,当需要改变一个模拟系统的应用时,你可能不得不修改硬件设计,或调整硬件参数。而在数字处理系统,你可以通过改变数字信号处理软件来修改设置,以适应不同的需要。
  (2)精度
    在模拟处理系统,系统精度受元器件影响,同一批次产品可能有不同的性能。而在数字处理系统中,精度仅与A/D的位数和计算机字长、算法有关,它们是在设计系统是就已经决定了的。
  (3)可靠性和可重复性
    模拟系统易受环境温度、湿度、噪声、电磁场等的干扰和影响,而数字系统的可靠性和可重复性好。
  (4)大规模集成
    模拟系统尽管已有一些模拟集成电路,但品种较少、集成度不高、价格较高。而数字系统中DSP体积小、功能强、功耗小、一致性好、使用方便、性能/价格比高。
  (5)虚拟特性与升级
    一套模拟系统系统只能对应一种功能,升级意味着新型号的系统的研制。而数字系统中一套系统对应多种功能,只要装上不同的软件即可。
 
    图1软件使得数字系统更加灵活
    (6)特殊应用:有些应用只有数字系统才能实现
    例如:信息无失真压缩(LOSSLESS COMPRESSION)、V型滤波器(NOTCH FILTER)、线性相位滤波器(LINEAR PHASE FILTER)等等.
但数字信号处理也有局限性:
    (1)  实时性
    模拟系统中除开电路引入的延时外,处理是实时的。而数字系统:由计算机的处理速度决定。
  (2)高频信号的处理:
    模拟系统可以处理包括微波毫米波乃至光波信号,而数字系统:按照奈奎斯特准则的要求,受S/H、A/D和处理速度的限制。
  (3)模拟与数字信号的转换
    现实世界的信号绝大多数是模拟的(温度、速度、压力等),转换成的电信号也是模拟的(电流、电压等)。要实现数字处理,就必须进行转换。所以一般在一个DSP系统中都有数/模或模/数转换电路,这也限制了DSP的应用。下面是一个采用DSP做信号处理的典型框图:
 

1-2 DSP的发展与特点
DSP的特点
(1)哈佛结构
    程序与数据存储空间分开,各有独立的地址总线和数据总线,取指和读数可以同时进行,从而提高速度。
(2)用指令流水线
(3)硬件乘法/累加器
    在卷积、数字滤波、FFT、相关、矩阵运算等算法中,都有∑SA(k)B(n-k)一类的运算,其中包含大量重复乘法和累加。在通用计算机的乘法用软件实 现,需要用若干个机器周期。而DSP有专用的硬件乘法器,使用MAC指令(取数、乘法、累加),可以在单周期内完成。
(4)多种寻找方式
    循环寻址(Circular addressing),位倒序(bit-reversed)等特殊指令,使FFT、卷积等运算中的寻址、排序及计算速度大大提高。1024点FFT的时间己小于1ms。
(5)独立的DMA总线和控制器
    有一组或多组独立的DMA总线,可以与CPU的程序、数据总线并行工作。在不影响CPU工作的条件下,DMA速度已达800Mbyte/s以上。(6)多 处理器接口现在的DSP中大多都提供了串口和并口,使多个处理器可以很方便的并行或串行工作。如TMS320C40有6个8-bit的接口,VC5420 提供MsBSP和16位的并口,ADI的ADSP21160也有类似的结构。
(7)所有DSP芯片都包含JTAG(Joint Test Action Group)标准测试接口(IEEE 1149标准接口),便于对DSP作片上的在线仿真和多DSP条件下的调试。

DSP的发展

  • 更高的运行速度和信号处理速度
  • 多DSP协同工作
  • 更方便的开发环境
  • 大量专用DSP的出现(DSP核)
  • 更低的价格,或更高的性能/价格比
  • 更广泛的应用(每年以30%增长)
  • 更低的功耗(55X 0.05mw/MIPS)

1-3 TI的DSP系列
DSP的主要供应商
  目前市场上的主要DSP生产商包括TI,ADI,Motorola,Lucent和Zilog等,其中TI占有最大市场份额。作为第一片DSP产品 TMS32010的生产商和DSP行业的领头者,TI公司的产品包括从低端的低成本低速度DSP到高端大运算量的DSP产品。
TI的三大主力DSP产品
C5000系列:C54X,C54XX,C55X(低功耗)
C2000系列:C20X,F20X,F24X,F24XX(控制器)
C6000系列:C62XX,C67XX,C64X(高性能)
TI其他DSP产品
C3X系列(浮点):C30,C31,C32,VC33
C2x和C5x系列:C20,C25,C50等
C4X、C8X系列
DSP主要供应商的网站
  德州仪器(TI):http://www.ti.com,http://www.ti.com.cn
  模拟器件(ADI):http://www.analog.com
  郎讯科技:http://www.1ucent.com
  莫托罗拉:http://www.mot.com

1.4 TI的DSP系列介绍
  目前,广泛使用的TI的DSP有三个系列:C2000,C5000和C6000,C3X也有使用,而其他型号都基本淘汰。需要提醒注意的是,同一系列中不 同型号的DSP一般都具有相同的DSP核,相同或兼容的汇编指令系统;而它们的差别仅在于片内存储器的大小,外设资源(如定时器、串口、并口等)的多少。 不同系列的DSP它们的汇编指令系统不兼容,但汇编语言的语法非常相似。除了汇编语言外,TI还为每个系列都提供了优化c编译器,方便用户使用c(使用 ANSI的标准c)语言进行开发,效率可以做到手工汇编的90%甚至更高。下面我们简单介绍这个常用系列:
1.C2000系列:
    C2000系列是一个控制器系列,全部为16位定点DSP。该系列中的一些型号具有片内FLASH RAM,如TMS320F24x,TMS320LF240x等。TI所有DSP中,也只有C2000有FLASH。作为控制器,C2000系列除了有一个 DSP核以外,还有大量的外设资源,如A/D、定时器、各种串口(同步或异步)、WATCHDOG、CAN总线、PWM发生器、数字IO脚等等。特别是 C2000的异步串口可以与PC的UART相连,也是TI所有DSP中唯一具有异步串口的系列。
 
图2  C2000系列DSP的型号
2.C5000系列:
    C5000系列是一个定点低功耗系列,特别适用于手持通讯产品,如手机、PDA、GPS等。目前的处理速度一般在80MIPS一400MIPS。 C5000系列主要分为C54xx和C55XX两个系列。两个系列在执行代码级是兼容的,但他们的汇编指令系统却不同。目前TMS320VC5402的零 售价在¥60一¥80元,性价比极高。C5000包含的主要外设有McBPS同步串口,HPI并行接口,定时器,DMA等。其中C55XX提供EMIF外 部存储器扩展接口,允许用户直接使用SDRAM、SBSRAM、SRAM、EPROM等各种存储器。而C54XX没有提供EMIF,所以只能直接使用静态 存储器SRAM和EPROM。另外,C5000系列一般都使用双电源供电,其I/0电压和核电压一般不同,而且不同型号也有差别。不过,TI提供了全系列 的DC—DC变换器可以解决DSP的电源问题。
    C5000系列一般都提供PGE封装,便于PCB板的制作。
 
图3 C5000系列DSP
3.C3X系列:
    C3X系列虽然不是目前TI的主流产品,但作为一个32位的低价位浮点DsP,仍然被广泛使用。其中,TMS320VC33的价格大约在¥200元左右, 其最高处理速度为150MFLOPs。C3X系列的结构比较简单,外设也比较少,主要有同步串口,DMA通道,定时器,能用于数字I/O的引脚也只有2 条。下面是VC33的简单情况:

  • 高品质的浮点DSP,13ns和17ns指令周期
  • 34Kx32Bit片内RAM
  • X5 PLL时钟产生器
  • 低功耗,<200mv@150MFLOPS
  • 16/32bits整数和32/40bits浮点数运算
  • 32位指令字,24bits地址线
  • 具有BOOTLOADER。一个串口,两个32位的定时器和DMA
  • 八个扩展精度寄存器,R0,R1,。。R7
  • 双电压共电,1.8V核电压和3.3V的I/O电压
  • 支持JTAG调试标准。四个简单、高效的预译码信号

4.C6000系列:
    C6000系列是一个32位的高性能的DSP芯片,目前处理速度从800MIPS一2400MIPS,而且还在不断提高。其中,C62XX为定点系 列,C67XX和C64XX为浮点系列。同C55XX一样,C6000也提供EMIF扩展存储器接口,方便用户使用各种外部扩展存储器,如SBSRAM、 SDRAM、SRAM、EPROM。C6000提供的主要外设有McBPS同步串口,HPI并行接口,定时器,DMA等。另外,在C6000的一些型号中 还提供了PCI接口。C6000几乎都只提供BGA球形封装,在PCB板制作时需要多层板,增加了开发和调试的难度。另外,C6000系列的功耗较大,需 要仔细考虑DSP与系统其他部分的电力分配,选择适当的DC—DC转换器。

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

智能推荐

一文搞懂各种架构(业务架构、应用架构、数据架构...-程序员宅基地

文章浏览阅读7.8k次,点赞9次,收藏67次。01 什么是架构和架构本质02 架构分层和分类03 架构的级别04应用架构的演进05衡量架构的合理性06 常见架构误区07 架构知识体系01 什么是架构和架构本质在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟..._业务架构 应用架构

apfs扩容_小米2020pro增强版 黑苹果 最新教程-程序员宅基地

文章浏览阅读1.3k次。小米笔记本2020增强版黑苹果,经由本人萃心研究,并整合各位大佬的驱动及设置后,完美运行!相信你找到这篇文章的时候已经踩过很多坑了!毕竟我也是从小白过来的!本教程友好对待一切小白!但弱智问题请查询别的教程!本篇教程,全由个人实操总结而成,并已经成功驱动白卡蓝牙Wi-Fi,以及测试过intel板载蓝牙Wi-Fi,可完美运行,若是解锁,则可以进行睡眠,真正的睡眠!并非伪睡眠!本文章基于各位已经理解并能..._ru.efi 解锁cfg

SpringBoot集成MyBatis-Plus-Join_spring boot +mybatis-plus-join-程序员宅基地

文章浏览阅读425次,点赞4次,收藏5次。MyBatis-Plus-Join (简称 MPJ)是一个 MyBatis-Plus的增强工具,在 MyBatis-Plus 的基础上只做增强不做改变,为简化开发、提高效率而生。_spring boot +mybatis-plus-join

开关电源电路图及原理12v分析-详细版_12v开关电源电路图及原理-程序员宅基地

文章浏览阅读1.5w次,点赞12次,收藏131次。开关电源电路图及原理12v(开关电源电路图及原理详解)开关电源电路图及原理进行讲解,仅供参考!1、开关电源的电路组成开关电源的主要电路是由输入电磁干扰滤波器(EMI)、整流滤波电路、功率变换电路、PWM控制器电路、输出整流滤波电路组成。辅助电路有输入过欠压保护电路、输出过欠压保护电路、输出过流保护电路、输出短路保护电路等。开关电源的电路组成方框图如下:2、输入电路的原理及常见电路(1)AC输入整流滤波电路原理:① 防雷电路:当有雷击,产生高压经电网导入电源时,由MOV1、MOV2、MOV3:F1、F2、F_12v开关电源电路图及原理

Java学习笔记(八):缓冲流、转换流和序列化流_转换流和序列化流的-程序员宅基地

文章浏览阅读237次。foochane :https://foochane.cn/article/2020010201.html文章目录1 缓冲流1.1 概述1.2 字节缓冲输出流成员方法构造方法使用步骤代码示例1.3 字节缓冲输入流成员方法构造方法使用步骤代码示例1.4 基本字节流和缓冲字节流效率测试基本流缓冲流缓冲流使用数据1.5 字符缓冲输出流成员方法构造方法使用步骤代码示例1.6 字符缓冲输入流成员方法构..._转换流和序列化流的

koa-body koa2 使用 koa-body 代替 koa-bodyparser 和 koa-multer_koabody is not a function-程序员宅基地

文章浏览阅读4.6k次,点赞3次,收藏11次。koa2 使用 koa-body 代替 koa-bodyparser 和 koa-multer评论:7·阅读:22543·喜欢:7一、需求 二、koa-body 的基本使用 1、安装依赖 2、app.js 3、有用的参数 1)koa-body 的基本参数 2)formidable 的相关配置参数 4、获取文件上传后的信息 三、结果..._koabody is not a function

随便推点

(转载)循序渐进学习嵌入式Linux开发技术-程序员宅基地

文章浏览阅读39次。再次申明,本文是转载,为以后查找留个记号。嵌入式时代已经来临,你还在等什么? ---循序渐进学习嵌入式开发技术最近经常有用人单位给我打来电话,问我这有没有嵌入式Linux方面的开发人员,他们说他们单位急需要懂得在嵌入式linux环境下的软件开发人员,我回答说,现在每年毕业的大学生那么多,还招不到合适的软件开发人员吗?他跟我说,毕业大学生虽然多,但大部分都能力不够,不能达到他们的工作的要...

如何成功在M1 macbook上运行Ubuntu20.04_ubuntu20.04 for m1-程序员宅基地

文章浏览阅读8.3k次,点赞5次,收藏19次。如何在搭载M1芯片的苹果电脑上跑UbuntuParallels官方发布了针对搭载apple silcon M1芯片的Mac的测试版虚拟机,笔者已经成功运行,具体步骤总结如下:第一步 安装测试版 Parallels Desktop需要去官网注册账户然后下载专门的测试软件参考地址:官网地址步骤如下:Meet the new Parallels Desktop (官网页面To run a virtual machine on a new Mac computer with the Apple M1 _ubuntu20.04 for m1

STM32单片机智能手环心率计步器体温-程序员宅基地

文章浏览阅读654次,点赞9次,收藏15次。STM32F103C8T6单片机核心板电路、ADXL345传感器电路、心率传感器电路、温度传感器和lcd1602电路组成。通过重力加速度传感器ADXL345检测人的状态,计算出走路步数、走路距离和平均速度。过心率传感器实时检测心率,通过温度传感器检测温度。通过LCD1602实时显示步数、距离和平均速度、心率以及温度值。主要学习ADXL345,心率传感器等等。

Pandas 修改index_pandas修改df index-程序员宅基地

文章浏览阅读190次。Pandas 修改index。_pandas修改df index

Sharding-JDBC主子表(绑定表)关联_shardingjdbc 对2张表分表,那么联表查询-程序员宅基地

文章浏览阅读2.7k次。主子表关联在我们的开发业务中是及其常见的,本文我们就来看下如何在分库分表的情况下,使用来完成主子关联。官方文档指分片规则一致的主表和子表。例如:t_order 表和 t_order_item 表,均按照 order_id 分片,则此两张表互为绑定表关系。绑定表之间的多表关联查询不会出现笛卡尔积关联,关联查询效率将大大提升。其中 t_order 在 FROM 的最左侧,ShardingSphere 将会以它作为整个绑定表的主表。_shardingjdbc 对2张表分表,那么联表查询

为什么我们从github clone下来的maven项目本地运行报错_idea github下的项目报错-程序员宅基地

文章浏览阅读226次。github上的项目clone到本地,比如是个Springboot的项目,我们用idea运行莫名其妙的报各种问题,常见的有以下异常:- java.lang.NoClassDefFoundError:xxxx- java.lang.ClassNotFoundException:xxxxx- java.lang.NoSuchMethodError:xxxx- java.lang.LinkageError:xxxx_idea github下的项目报错