DSP原理及应用--TMS320DM6437架构、指令、功能模块、程序设计及案例分析(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-15 08:48:51

点击下载

作者:陈桂军,贾海蓉,李鸿燕,张雪英

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

DSP原理及应用--TMS320DM6437架构、指令、功能模块、程序设计及案例分析

DSP原理及应用--TMS320DM6437架构、指令、功能模块、程序设计及案例分析试读:

本书封面贴有清华大学出版社防伪标签,无标签者不得销售。版权所有,侵权必究。侵权举报电话:010-62782989 13701121933

图书在版编目(CIP)数据

DSP原理及应用:TMS320DM6437架构、指令、功能模块、程序设计及案例分析/张雪英等编著.—北京:清华大学出版社,2019(高等学校电子信息类专业系列教材)

ISBN 978-7-302-51043-7

Ⅰ. ①D… Ⅱ. ①张… Ⅲ. ①数字信号处理—高等学校—教材 Ⅳ. ①TN911.72

中国版本图书馆CIP数据核字(2018)第191956号责任编辑:盛东亮封面设计:李召霞责任校对:李建庄责任印制:丛怀宇出版发行:清华大学出版社网  址:http://www.tup.com.cn,http://www.wqbook.com地  址:北京清华大学学研大厦A座邮  编:100084社总机:010-62770175邮  购:010-62786544投稿与读者服务:010-62776969,c-service@tup.tsinghua.edu.cn质量反馈:010-62772015,zhiliang@tup.tsinghua.edu.cn课件下载:http://www.tup.com.cn,010-62795954印装者:北京密云胶印厂经  销:全国新华书店开  本:185mm×260mm印  张:14字  数:339千字版  次:2019年1月第1版印  次:2019年1月第1次印刷定  价:49.00元产品编号:072470-01作者简介

张雪英 博士,教授,博士生导师,IEEE会员,中国电子学会高级会员,2006—2010年教育部电子科学与技术教学指导分委员会委员,2013—2017年/2018—2022年教育部电子信息类教学指导委员会委员,山西省教学名师,山西省学术技术带头人。任教于太原理工大学信息与计算机学院,从事语音信号处理、DSP应用、模式识别等领域的教学和科研工作。近年来,在有关刊物和国际会议上发表论文100余篇,其中SCI、EI收录50余篇次;出版专著1部、教材5部,翻译图书2部,主编“十二五”国家级规划教材1部;主持完成国家及省部级项目20余项,授权国家发明专利6项;先后获“山西省教学成果奖”二等奖1项、特等奖1项,主持山西省精品资源共享课1门,多次被评为山西省优秀硕士学位论文指导教师、山西省研究生教育优秀导师。内容简介

TI公司的TMS320C6000系列DSP是目前数字信号处理器中性能最好的产品之一,TMS320DM6437是TMS320C6000系列中一款重要的定点DSP芯片,其处理速度快、功能强大、片内外设丰富,应用广泛。本书全面介绍了TMS320DM6437的体系结构、原理、软硬件开发与程序设计方法,包括TMS320DM6437硬件结构、指令系统、软件开发环境及程序优化方法、片内资源、外设接口。本书还详细介绍了TMS320DM6437芯片在DSP主要算法、语音处理及图像处理方面的程序开发实例。

本书内容全面、实用,讲解通俗易懂,旨在使读者了解TMS320DM6437的体系结构和基本原理,掌握DSP系统的设计和开发过程,书中提供的案例便于读者学习理解DSP的程序开发方法。本书可作为高等院校电子工程、通信工程、自动化、计算机、电气工程和电力电子等专业的高年级本科生和研究生学习DSP的教材,也可供从事DSP应用系统设计开发的技术人员参考。前言PREFACE

TMS320C6000系列DSP是当前多处理通道、多功能和高数据处理速度DSP芯片的代表,其中TMS320C62x/C64x处理器为定点DSP,TMS320C67x处理器为浮点DSP。TMS320C62x、TMS320C64x及TMS320C67x间代码兼容,且均采用高性能、支持超长指令字(VLIW)的VelociTI处理器结构。TMS320DM64x/C64x是TI公司开发的第六代高性能DSP芯片,该器件的关键特性,如VLIW架构、两级存储器/高速缓存体系和EDMA引擎使其成为计算密集型视频/图像应用领域的理想选择。TMS320DM6437是TI公司在2006年推出的定点DSP芯片,是TMS320C6000平台中专门为高性能、低成本视频应用开发,支持达芬奇技术的一款重要的单核DSP处理器芯片,低廉的开发套件与芯片价格使其可以面向低成本应用场合,在图像处理和流媒体领域得到了广泛的应用。

本书以TMS320DM6437为描述对象,以应用系统设计为主线,系统介绍了TMS320DM6437的体系结构、原理、软硬件开发与程序设计,并给出了设计实例,便于读者学习DSP系统的设计方法。

全书共8章,其内容如下。

第1章:绪论。首先对DSP的发展、特点、分类、应用及选择进行了概述;然后对DSP系统构成和设计过程进行了介绍,并简单分析了TI及其他公司生产的一些常用DSP芯片的型号和特点;最后重点介绍了高性能TMS320C6x系列DSP的结构组成、特点和应用。

第2章:TMS320DM6437的硬件结构。介绍TMS320DM6437的基本硬件结构,包括CPU体系结构、数据通路及状态控制寄存器,片内一级程序和数据存储器、片内二级存储器的基本构造及工作方式等。

第3章:TMS320DM6437的指令系统。首先对TMS320DM6437的指令集进行概述,包括指令和功能单元之间的映射、延迟间隙、指令操作码映射图、并行操作、条件操作和寻址方式,重点介绍了TMS320DM6437的指令系统和资源对公共指令集的限制,最后介绍了汇编、线性汇编和伪指令。

第4章:软件开发环境及程序优化。主要介绍DSP软件开发过程和开发工具以及程序的优化方法。软件开发环境介绍了DSP软件开发过程、CCS集成开发环境,以及DSP/BIOS实时操作系统;程序设计及优化部分详细介绍了DSP的程序设计和优化方法,包括C/C++语言程序设计、面向DSP的C/C++语言程序设计流程、C语言源代码的优化、汇编代码的优化、C语言和汇编语言混合编程。

第5章:TMS320DM6437流水线与中断。第一部分介绍了TMS320DM6437的流水线,包括流水线操作、指令和存储器对流水线性能的影响;第二部分介绍了DSP的中断系统,包括TMS320DM6437的中断控制寄存器、中断响应过程、中断嵌套和中断向量程序。

第6章:TMS320DM6437主机接口与多通道缓冲串口。TMS320DM6437主机接口部分介绍了HPI的结构与功能、读/写时序,HPI的操作、寄存器、中断申请以及应用实例;多通道缓冲串口部分介绍了McBSP结构与对外接口、McBSP的寄存器、操作以及应用。

第7章:TMS320DM6437通用输入/输出接口与定时器。详细介绍了TMS320DM6437通用输入/输出和定时器的基本结构和功能使用,包括GPIO接口功能、中断和事件产生、控制寄存器、定时器结构、定时器工作模式及定时器寄存器等。

第8章:TMS320DM6437应用程序设计。详细介绍了一些基于TMS320DM6437的算法实例及其实现过程,包括数字信号处理的基本算法(如FIR、IIR数字滤波器设计和FFT等)、语音信号采集与分析算法、图像点处理、几何变换、图像增强、图像边缘检测算法。通过这些算法实例,应该重点掌握DSP的初始化及一些通信接口的实现过程。

本书由张雪英、李鸿燕、贾海蓉和陈桂军合作编写。张雪英编写了第1章与第2章;李鸿燕编写了第3章与第4章;贾海蓉编写了第5章与第6章;陈桂军编写了第7章与第8章和附录。全书由张雪英教授统稿。

在本书的编写过程中,得到了太原理工大学信息工程学院一些博士生、硕士生在应用程序调试方面的帮助。北京艾睿合众科技有限公司技术人员对基于SEED-DTK6437实验箱在调试程序过程中的问题给予了解答,在此对他们表示衷心的感谢。同时也感谢清华大学出版社的领导和编辑对本书提出的宝贵意见并给予的大力支持。

由于作者水平有限,书中难免存在不足和疏漏之处,恳请读者批评指正。编 者2018年11月第1章 绪论

DSP涉及数字信号处理(Digital Signal Processing)理论方法和数字信号处理器(Digital Signal Processor),而数字信号处理器是在各种数字信号处理理论方法基础上发展起来的,是具有特定处理单元的、专门用于实时实现各种数字信号处理算法的微处理器。本书在介绍数字信号处理器(DSP)通用知识的基础上,重点阐述DSP芯片TMS320DM6437的软硬件特性及如何运用其实现数字信号处理算法。自1982年美国德州仪器(TI)公司推出第一款商用数字信号处理器以来,随着模拟信号的数字化,DSP已在包括移动通信、消费电子、医疗仪器、汽车电子和军用装备等领域中得到广泛应用,DSP的应用领域取决于设计者的想象空间,相信未来将会有越来越多的DSP应用产品出现在我们的生活中。1.1 DSP概述1.1.1 DSP的发展概况及趋势

20世纪60—70年代,随着信号的数字化,数字信号处理技术应运而生,此时的数字信号处理尚处于算法理论研究阶段,主要采用两类处理器进行模拟实现:一类是通用处理器GPP,如作为PC(个人计算机)核心的CPU;另一类是微控制器(MCU)。

由于通用处理器或微控制器没有为数字信号处理提供专用的乘法累加器、数据存取通道和中断响应模式等,使得信号处理效率难以提高,特别是在进行实时数字信号处理时面临极大的技术瓶颈,因此,迫切需要一种能够实时、快速实现各种数字信号处理算法的专用处理器。

20世纪70年代末,第一个DSP芯片诞生。1978年美国AMI公司发布S2811,1979年Intel公司发布可编程器件2920,成为DSP芯片发展的里程碑。但这两款芯片内都没有现代DSP必备的单周期硬件乘法器。1980年,日本NEC公司推出第一个具有硬件乘法器的DSP芯片mPD7720,被认为是第一块单片DSP器件。

随着大规模集成电路技术的发展,1982年,TI公司推出第一代商用DSP芯片TMS32010,其包含55 000个晶体管、4KB RAM,指令处理能力为5MIPS(百万条指令每秒),尽管该性能参数与现代DSP相比较差,但其运算速度比当时通用微处理器快了几十倍,为数字信号处理算法的实际应用开辟了道路。

到20世纪80年代中期,随着CMOS技术的发展进步,第二代基于CMOS工艺的DSP芯片TMS320C2x系列被推出,其存储容量和运算速度得到成倍提高,成为语音及图像硬件处理的基础。20世纪80年代后期,第三代DSP芯片TMS320C30/C31/C32等出现,运算速度得到进一步提高,应用范围逐渐扩展到通信和计算机领域。特别是20世纪90年代以来,DSP得到快速发展和广泛应用,相继出现了第四代DSP芯片TMS320C40/C44等和第五代DSP芯片TMS320C5000系列,以及当前运算速度最快的第六代DSP芯片TMS320C6000系列。它们将DSP内核及外围元件集成到单一芯片,系统集成度更高,运算性能更强,性价比不断提升,迅速成为众多电子产品的核心器件。

除了TI,日立(Hitachi)公司于1982年推出第一个基于CMOS工艺的浮点DSP芯片;富士通(Fujitsu)公司于1983年推出DSP芯片MB8764,其指令周期为120ns,具有双内部总线,数据处理吞吐量极大提高;美国AT&T公司于1984年推出的DSP32可被看作是第一个高性能浮点DSP芯片;美国摩托罗拉(Motorola)公司先后于1986年推出了定点处理器MC56001,并于1990年推出了与IEEE浮点格式兼容的DSP芯片MC96002;美国模拟器件(ADI)公司也推出了具有自己特点的DSP芯片系列,包括定点DSP芯片ADSP21xx系列、浮点DSP芯片ADSP21xxx系列及高性能TigerSHARC芯片等。

经过40多年的发展,当前世界上较大的DSP开发生产厂商已有十几家,包括TI、ADI、Motorola(现在的Freescale)、AT&T(现在的Lucent)、Phillips、Fujitsu、Hitachi和Samsung等,其中TI已成为当今最大的DSP芯片供应商,常用的TI DSP芯片主要有三大系列,包括TMS320C2000系列(TMS320C2x/C2xx)、TMS320C5000系列(TMS320C54x/C55x)和TMS320C6000系列(TMS320C62x/C67x/C64x),其被广泛应用于移动通信、消费电子、医疗仪器、汽车电子和军用装备等各个领域。

未来,全球DSP产品将向着高性能、低功耗、强融合和多扩展的趋势发展。高性能方面,多通道、单指令多重数据(SIMD)和超长指令字(VLIM)结构将在高性能DSP中占主导地位;低功耗方面,随着先进电源管理技术的发展,DSP芯片内核电压将越来越低,且存储器和外设的功耗也不断下降,系统整体功耗将会更低;强融合方面,将越来越多地采用单芯片实现DSP核与高性能CPU、MCU的有效融合,使其同时具有数字信号处理和智能控制功能;多扩展方面,将片上系统(SoC)、现场可编程门阵列(FPGA)和操作系统软件接口与DSP集成到一块芯片上,从而有效实现功能的扩展,便于多种应用开发。因此,DSP芯片将在应用需求的驱动下不断发展,从而不断提高电子产品的性能,成为各种电子产品更新换代的技术核心。1.1.2 DSP的特点

对于常用的数字信号处理算法,如数字滤波、相关、卷积、FFT(快速傅里叶变换)和矩阵运算等,往往存在输入信号与参考信号的相乘及积分(累加),其执行过程就是不断地从存储器取数并进行“乘-加”运算。因此,为了快速实现这些运算,DSP在存储器结构、运算单元和操作指令等方面都具有一些鲜明的特性,其主要特点如下。1. 存储器采用哈佛结构

微处理器的存储器结构主要有冯·诺依曼(von Neumann)结构和哈佛(Harvard)结构两类,如图1-1所示。由于冯·诺依曼结构实现简单、成本低,通用处理器广泛采用该结构,典型的冯·诺依曼结构只有一个存储器空间、一套地址总线和一套数据总线,程序和数据都存放到这个存储器空间,且统一分配存储地址,因此执行运算时,处理器必须分时访问程序和数据空间。而DSP广泛采用程序存储器和数据存储器分开的哈佛结构,每个存储器都有独立的地址总线和数据总线,因此DSP通过多套地址和数据总线,可同时从程序存储器取指令和从数据存储器取操作数,从而实现并行工作,提高运算速度。图1-1 冯·诺依曼结构和哈佛结构2. 流水线操作

流水线(Pipeline)操作是将指令的执行分解为预取指(Prefetch)、取指(Fetch)、译码(Decode)、寻址(Access)、取数(Read)和执行(Execute)等几个阶段,如图1-2所示。在程序运行过程中,不同指令的不同阶段在时间上是重叠的,当执行一个含多条指令的程序块时,首先进行预取指,加载程序计数器PC中的内容,然后第一条指令取指、译码,其译码的同时,第二条指令取指;而第一条指令寻址时,第二条指令译码,第三条指令取指,这样,6个机器周期就可执行6条指令,即每条指令花费的指令周期平均约为一个机器周期。所以,流水线操作提高了DSP指令执行的整体速度,有助于保证数字信号处理的实时性。在TMS320C64x+DSP中,每个周期内可执行8条指令。图1-2 流水线操作示意图3. 独立的硬件乘法累加单元

由于数字信号处理任务中,都包含有大量重复的乘法和累加操作,通用处理器的乘法运算使用软件进行移位或加法来实现,需要若干机器周期,而DSP处理器使用专门的硬件乘法器,并使用累加器来处理多个乘积的累加,即通过DSP指令集中的MAC指令实现单周期乘加运算,从而有效提高了数字信号处理的速度。4. 独立的DMA总线和控制器

信号处理过程中,需要高速地从存储器中存取操作数,在通用处理器中尽管可用DMA(Direct Memory Access,直接存储器访问)存取数据,但此时总线被占用,而CPU的各项操作必须要使用总线,使得信号处理效率难以提高。DSP处理器中设置了独立的DMA总线和控制器,通过与CPU的程序总线和数据总线并行工作,使得在数据传输时不影响CPU和总线的工作,从而提高数据吞吐率,加快信号处理速度,如TMS320C64x+中使用了64个独立通道的增强型DMA(EDMA)总线及控制器。5. 独立的地址发生器和移位器

在通用微处理器中,数据地址的产生和数据的处理都由算术逻辑单元(ALU)来完成,而在DSP中,独立设置了专门的数据地址发生器(DAG)和移位器等,以产生所需要的数据地址,从而节省公共ALU的时间,高效地实现复杂的寻址和数据处理。6. 零开销循环

数字信号处理算法的另一特点是程序中的循环结构占用大量的时间。通用处理器的循环控制采用软件方式实现,效率不高,而DSP中专门设置了支持循环结构的硬件来实现“零开销”循环,即循环计数和条件转移等操作通过专门的硬件单元控制,不需要花费CPU的时间。7. 特殊的DSP指令

DSP指令集中,专门设计了一些完成特殊功能的指令,这些指令充分利用了DSP的结构特点,提高了指令执行的并行度,加快了完成相关操作的速度,如TMS320C64x中的FIRS指令和LMS指令,分别用于完成对称结构的FIR滤波算法和LMS算法。此外,为了降低FFT和卷积等运算的地址计算开销,多数DSP在指令系统中还设置了循环寻址和位倒序寻址指令。8. 丰富的硬件配置

新一代DSP芯片集成了众多类型的硬件设备,包括定时器、串行口、并行口、主机接口(HPI)、DMA控制器、等待状态发生器、中断处理器、PLL时钟产生器、JTAG标准测试接口、ROM、RAM及Flash等,从而提高了DSP的处理速度、降低了系统功耗,简化了接口设计、方便了多处理器扩展,非常适用于嵌入式便携数字设备应用。1.1.3 DSP的分类

为了满足不同应用对DSP的功能需求,众多DSP厂商推出了多种不同类型的DSP芯片。通常,DSP芯片可以按照3种方式进行分类,如表1-1所示。表1-1 DSP的分类类型及特性1.1.4 DSP的应用

随着大规模集成电路技术的发展,DSP芯片的性能逐渐提高,价格不断下降,使得其具有巨大的应用潜力。目前,DSP的主要应用领域如下。(1)基本信号处理:数字滤波、自适应滤波、FFT、相关运算、频谱分析、卷积运算、模式匹配、窗函数、波形产生和变换等。(2)通信:调制解调器、路由器、自适应均衡、数据加密、数据压缩、回波抵消、多路复用、纠错编码、传真、扩频通信、移动通信、数字基带处理芯片、可视电话、机顶盒、混合光纤同轴网(三网融合)和软件无线电等。(3)语音:语音编码、语音合成、语音识别、语音增强、语音存储、语音邮件和语音-文本转换等。(4)图形图像:二维/三维图形图像处理、图像压缩与传输、图像识别、图像增强、图像转换、动画、电子地图、机器人视觉、虚拟现实系统和多媒体计算机等。(5)军事:保密通信、雷达/声呐信号处理、导航制导、定位、电子对抗、搜索与跟踪、情报收集与处理等。(6)仪器仪表:函数发生、数据采集、锁相环、频谱分析、暂态分析、能源/地质勘探、地震信号处理和工作站等。(7)控制:引擎控制、发动机控制、声控、自动驾驶、机器人控制和磁盘/光盘控制等。(8)医疗:助听器、超声设备、X射线扫描、心/脑电图、核磁共振仪和患者监护等。(9)家用电器:高保真音响、家庭影院、音乐合成/控制、数码相机、智能玩具与游戏、高清晰数字电视(HDTV)、变频空调、智能洗衣机、智能冰箱和智能家居等。1.1.5 DSP芯片的选择

在实际开发应用中,选择合适的DSP芯片至关重要,通常依据系统对运算速度、运算精度、成本及功耗等方面的要求来选择DSP芯片。由于应用场合、应用目的不同,不同的DSP应用系统对DSP芯片的选择一般应考虑的因素分析如下。1. 运算速度

作为一项重要的性能指标,DSP芯片的运算速度是否符合应用要求是选择DSP需考虑的因素之一,常见的DSP运算速度指标有如下几个。(1)指令周期:执行一条指令需要的平均时间,对于平均在一个周期内可以完成一条指令的DSP芯片,其值等于主频的倒数,常以ns(纳秒)为单位。(2)MIPS:每秒执行百万条指令数。(3)MOPS:每秒执行百万次操作数。(4)MFLOPS:每秒执行百万次浮点操作数。(5)BOPS:每秒执行十亿次操作数。(6)MAC时间:执行一次乘法-累加运算需要的时间,大多数DSP芯片可在一个指令周期内完成一次乘法-累加操作。(7)FFT执行时间:执行一个N点FFT运算需要的时间,由于FFT运算是数字信号处理中常用的典型算法,FFT执行时间用来综合衡量DSP的运算能力。2. 运算精度

DSP算法格式主要分为定点运算和浮点运算。通常定点DSP的字长有16位、20位、24位或32位。浮点DSP的字长为32位,由于浮点算法较复杂,所以浮点DSP的成本和功耗一般比定点DSP高。在算法确定后,通过理论分析或软件仿真可确定算法所需的动态范围和精度,如果应用系统对成本和功耗的要求较严格,一般选用字长较小的定点DSP,如果要求易于开发、动态范围宽、精度高,可以考虑采用字长较大的定点DSP或浮点DSP。3. 功耗

由于DSP越来越多地应用到便携式产品中,因此功耗逐渐成为DSP选型的一个重要因素。目前,常用的DSP芯片工作电压有5V、3.3V和1.8V等多种,对功耗有特殊要求的便携式或特殊工作场合的产品常选用3.3V供电的低功耗高速DSP芯片。4. 价格

DSP芯片的价格是应用产品能否规模化、大众化的重要决定因素,因此在DSP系统设计中,应根据实际系统的应用场合,结合运算精度和功耗等需求,选择价格适中的DSP芯片。5. 硬件资源

不同的DSP芯片内部集成的硬件资源不尽相同,如片内存储器RAM和ROM的数量,通过外部总线可扩展外部程序和数据空间,总线接口和I/O接口等。因此,要根据具体应用对片内集成硬件资源,特别是存储空间大小和外部总线接口的要求来选择DSP芯片。6. 开发工具

便捷、高效的开发工具和完善的软硬件支持是开发大型、复杂DSP应用系统的必要条件,因此在选择DSP芯片时,要考虑其开发工具的支持情况。软件工具包括编译器、汇编器、链接器、调试器、代码库及实时操作系统等;硬件工具包括开发板和仿真器等,如TI的CCS(Code Composer Studio)集成开发环境及对应各种芯片型号的开发板和仿真器。

同时,选择DSP芯片还需考虑芯片的封装形式、质量标准、供货情况和生命周期等,此外,对于数据计算量较大的应用,还需考虑DSP芯片是否支持多核的互联扩展。1.2 DSP系统1.2.1 DSP系统的构成

通常,典型的DSP系统组成如图1-3所示,包括抗混叠滤波器、模/数转换器、数字信号处理器、数/模转换器和抗镜像滤波器。图1-3 DSP系统组成图

当DSP系统输入一个模拟信号,如音视频信号时,抗混叠滤波器将输入的模拟信号中高于奈奎斯特频率的分量滤掉,以防止信号频谱的混叠;然后,模/数转换器将模拟信号转换成数字信号;数字信号处理器完成数字信号的相关处理算法;最后,经过处理的数字信号经数/模转换器转换为模拟信号,并经由抗混叠滤波器完成模拟信号的重建,得到平滑的波形输出。其中,并不是所有的DSP系统都包含上述所有组成部分,且上述数字信号处理器是由DSP芯片及外围电路组成的。1.2.2 DSP系统的特点

由于DSP系统是以数字信号为处理对象,因此与模拟信号处理系统相比,具有以下特点:(1)接口方便,易于模块化设计和集成。

DSP系统提供了灵活的接口,可与其他DSP系统相互兼容,且DSP芯片有高度的规范性,易于模块化设计和大规模集成。(2)可编程,易于重复使用。

可编程DSP芯片使得设计人员在开发DSP系统时,可对程序软件进行重定义和修改,使得DSP系统易于重复使用。(3)快速稳定、精度高。

DSP系统结合数字信号处理特点设计,运行速度较高,且噪声对数字信号处理的影响较小,可靠性高,抗环境干扰能力强。

当然,由于现实世界的信号都以模拟形式存在,相比模拟信号处理系统,在简单的处理任务中,由于DSP系统构成复杂,其成本和开发复杂度较高,且DSP的高速时钟可能带来高频干扰和电磁泄漏等问题。1.2.3 DSP系统的设计过程

DSP系统的一般设计开发过程如图1-4所示,其具体设计步骤如下:(1)根据需求确定DSP系统的性能指标。首先根据待开发系统要实现的功能和目标,划分任务,进行方案设计和算法描述,以满足性能指标。(2)算法研究及模拟实现和功能验证。根据算法描述,使用MATLAB和C语言模拟实现相应算法,并确定相关参数,进行功能验证及性能评价。(3)选择合适的DSP芯片和外围组件。根据算法要求,选择合适的DSP芯片及外围组件,包括外部存储器、ADC、DAC和电源管理芯片等。(4)软件设计及调试。使用DSP汇编语言、C语言、混合汇编和C嵌套的方法进行算法实现,编译生成可执行程序,用DSP软件模拟器或DSP仿真器进行程序调试。(5)硬件设计及调试。根据选定的DSP芯片及外围组件,绘制电路原理图,设计制作PCB,器件安装并上电调试。图1-4 DSP应用系统设计流程图(6)系统集成及测试。将软件加载到硬件系统中,并通过DSP仿真器等手段测试整个软硬件系统运行是否正常、稳定,是否达到所要求的性能指标。1.3 DSP芯片1.3.1 TI公司的DSP芯片

1982年,TI公司推出TMS32010——第一款商用定点DSP,被Electronic Products杂志评为当年的“年度最佳产品(Product of the Year)”,TMS32010成为以后TMS320系列DSP的典型。

经过三十多年的发展,TMS320系列拥有多款16位和32位定点/浮点DSP,这些DSP具有高速处理器的操作灵活性和阵列处理器的数值计算能力,其灵活的指令集、固有的操作灵活性、高速、低功耗和创新并行的架构设计,使得TMS320系列DSP已经成为众多数字信号处理应用的理想选择。

为了满足不同应用需求,TMS320系列相继推出了定点、浮点及多处理器模式的多系列、多型号DSP芯片,如图1-5所示。其中,C1x、C2x、C2xx、C5x、C54x、C55x、C6x、C62x、C64x系列为定点DSP,C3x、C4x、C67x系列为浮点DSP,C8x系列为多处理器模式DSP。TMS320系列DSP随着时间的推移不断更新换代,其性能不断提高。同时,其每代定点/浮点DSP的源代码均向上兼容,即下一代定点DSP兼容上一代定点DSP,下一代浮点DSP兼容上一代浮点DSP,从而为设计实现高性能、低成本的DSP实时信号处理系统提供了软件支持。

当前,TMS320系列DSP主要由三大支撑平台构成,包括TMS320C2000、TMS320C5000和TMS320C6000,如图1-6所示。其中,C2000系列主要用于包括电机控制等的系统控制优化领域;C5000系列主要用于便携式、低功耗消费电子产品;C6000系列主要用于高速信号处理及高性能图像、视频处理领域。表1-2给出了当前常用的TMS320系列DSP处理器的基本特性。图1-5 TMS320系列DSP发展过程图1-6 TMS320系列DSP的三大支撑平台表1-2 当前常用的TMS320系列DSP的基本特性1.3.2 其他公司的DSP芯片

目前,除了TI公司外,设计生产通用DSP的厂家中,较有影响力的还有ADI公司、Motorola公司(现在的Freescale)和AT&T公司(现在的Lucent)。这些公司的DSP芯片也各有特色。表1-3简单列举了上述公司生产的几款常用DSP的型号及特点。表1-3 其他公司几款常用的DSP型号及特点1.4 TMS320C6x(6000)概述1.4.1 TMS320C6x简介

TMS320C6x DSP是TMS320系列的重要组成部分,其中,TMS320C62x/C64x处理器为定点DSP,TMS320C67x处理器为浮点DSP。TMS320C62x、TMS320C64x及TMS320C67x间代码兼容,且均采用高性能、支持超长指令字(VLIW)的VelociTI处理器结构,使得其成为多通道、多功能应用的理想选择。结合开发工具和评估工具,通过增强指令的并行性,VelociTI结构为嵌入式DSP应用提供了较快的开发时间和较高的处理性能。

同时,TMS320C6x DSP最高可达到8000MIPS(百万条指令每秒)的运算速度,并且具有完整的开发工具集,为高性能DSP程序开发提供了成本有效的解决方案。1.4.2 TMS320C6x结构

TMS320C6x DSP中包含程序存储器和多种大小不同的数据存储器,其中程序存储器被用作程序缓存。除串口和主机接口等出现在特定的器件中,直接存储器访问(DMA)控制器、节电逻辑(Power-down Logic)和外部存储器接口(EMIF)等外设也是TMS320C6x DSP的基本组成单元。下面以TMS320C64x DSP和TMS320C64x+DSP为例介绍C6x的基本结构组成,图1-7所示为TMS320C64x DSP的结构框图,图1-8所示为TMS320C64x+DSP的结构框图,TMS320C64x+是TMS320C64x新增功能和扩展指令集的增强型。图1-7 TMS320C64x DSP结构框图1. TMS320C64x及TMS320C64x+CPU结构(1)TMS320C64x CPU包括:

①程序取指单元;

②指令调度单元,先进的指令封装;

③指令译码单元;

④2条数据通路(每一条包含4个功能单元);

⑤64个32位寄存器;

⑥控制寄存器;

⑦控制逻辑;

⑧测试、仿真和中断逻辑。(2)TMS320C64x+CPU包括:

①程序取指单元;

②16/32位指令调度单元,先进的指令封装;

③指令译码单元;

④2条数据通路(每一条包含4个功能单元);

⑤64个32位寄存器;图1-8 TMS320C64x+DSP结构框图

⑥控制寄存器;

⑦控制逻辑;

⑧测试、仿真和中断逻辑;

⑨用于内部存储器间传输的内部DMA(IDMA)。

其中,程序取指、指令调度和指令译码单元能够在每个CPU时钟周期内传送高达8条32位指令到功能单元中。在2个数据通路(A和B)中,每个数据通路都会发生指令的处理,且都包含4个功能单元(.L、.S、.M和.D)和32个32位通用寄存器。控制寄存器提供配置和控制各种处理器操作的方法。2. 内部存储器

TMS320C64x和TMS320C64x+DSP均拥有一个32位的、可按字节寻址的地址空间,内部(片上)存储器采用数据和程序空间分开的方式组织。当使用片外存储时,这些空间通过外部存储器接口(EMIF)统一成单一的存储空间。TMS320C64x DSP通过2个64位的内部端口来访问内部数据存储器,通过一个单一的内部端口来访问内部程序存储器,并完成一条256位宽的取指操作。而TMS320C64x+DSP通过一个256位的只读端口来访问内部程序存储器,通过2个256位的端口(读/写)来访问内部数据存储器。3. 存储和外设

对于TMS320C6x系列DSP,多种存储和外设选项可以获得:(1)大的片上RAM(可达7M bits)。(2)程序缓存。(3)2级缓存。(4)32位外部存储器接口(EMIF)支持SDRAM、SBSRAM、SRAM和其他异步存储器,以满足宽范围的外部存储需要和实现最大的系统性能。(5)增强的直接存储器访问(EDMA)控制器,可不受CPU干预,完成存储器映射地址范围内的数据传输;同时,EDMA有16个可编程通道和一个RAM空间,为将来的数据传输保留了多个配置。(6)以太网介质访问控制器(EMAC)和物理层(PHY)设备管理数据输入/输出模块接口,通过一个自定义接口来实现数据的有效传输和接收。(7)主机接口(HPI)是一个并行端口,其通过主处理器可直接访问CPU存储空间。主机设备作为接口控制器运行,增加了访问的易用性。主机设备也可直接访问存储器映射的外设。通过EDMA控制器提供了与CPU存储空间的连接。(8)I2C模块,通过I2C串行总线为C64x/C64x+DSP和I2C兼容设备提供了连接接口。(9)多通道音频串行口(McASP)作为通用音频串行口的优化来满足多通道音频应用需要,其可灵活确定以无缝连接到音频模/数转换器(ADC)、数/模转换器(DAC)、编译码器、数字音频接口接收器(DIR)和S/PDIF传输物理层单元。(10)多通道缓存串行口(McBSP),基于TMS320C2000和TMS320C5000上的标准串行口,此外,其还可借助EDMA控制器自动在存储器中缓冲串行样本。它还具有兼容T1、E1、SCSA和MVIP网络标准的多通道功能。(11)外围设备互连(PCI)端口支持,通过集成PCI主/从主线接口使得C64x/C64x+DSP可连接到PCI主机。(12)两个32位通用定时器可实现定时、计数、生成脉冲、CPU中断、发送同步事件到DMA/EDMA控制器的功能。(13)节电逻辑可减小时钟来降低功耗。电路逻辑从一个状态跳转到另一个状态时,大多数CMOS逻辑的运行功率会发生浪费,因此,通过阻止一部分或全部的芯片逻辑跳转,在不损失数据和操作情境的情况下,可以极大地节约功率。(14)第3代移动通信中,高码率的信道译码需要译码Turbo-encoded数据,而声音和低码率数据信道译码需要译码卷积编码数据,因此,在C6000 DSP中设计了Turbo-decoder Coprocessor(TCP)和Viterbi-decoder Coprocessor(VCP)来完成IS2000和3GPP无线标准中对应的译码操作。(15)用于异步传输模式(ATM)的通用测试和操作物理层(PHY)接口(UTOPIA)作为ATM控制器(ATMC)的从设备,可接入ATM主控制器。1.4.3 TMS320C6x特点

TMS320C6x DSP每个指令周期最高可执行8条32位指令,以TMS320C64x为例,其处理单元由64个32位通用寄存器和8个功能单元组成,这8个功能单元包含2个乘法器和6个算术逻辑单元(ALU)。

TMS320C6x系列DSP拥有完整的优化开发工具集,其包括一个高效的C编译器、一个用于简化汇编语言程序设计及调度的汇编优化器和一个基于Windows操作系统的源码执行特性可视化的调试器界面。此外,它还拥有一套兼容TI XDS510和XDS560仿真器接口的硬件评估板,其符合IEEE 1149.1-1990标准、IEEE标准测试接入端口和边界扫描架构。

TMS320C6x系列DSP的主要特点如下:(1)拥有先进超长指令字(VLIW)的CPU,其由8个功能单元组成,包括2个乘法器和6个算术逻辑单元(ALU)。

①每个指令周期可执行高达8条指令,是其他典型DSP性能的10倍;

②在快速的开发时间内,可开发出高效的类似于精简指令集(RISC)的代码。(2)指令封装(Instruction Packing)。

①使代码大小等效为8条指令进行串行或并行执行;

②减少代码大小、程序取指(Program Fetches)和功耗。(3)大多数指令的条件执行。

①减少高代价的分支指令;

②增加高持续性能的并行性。(4)独立功能单元高效的代码执行。

①在DSP基准套件行业最有效的C编译器;

②行业第一个用于快速开发和改进并行性的汇编优化器。(5)支持8/16/32位数据,为多元化应用提供高效的存储支持。(6)为语音编码器和其他计算密集型应用提供40位运算选择加额外的精度。(7)饱和度(Saturation)和归一化(Normalization)为关键的算术运算提供了支持。(8)字段操作(Field Manipulation)和指令提取、设置、清除及位计算支持控制和数据操作应用中常见的运算。

此外,TMS320C64x和TMS320C64x+系列DSP还包括以下特点:(1)一个时钟周期内每个乘法器可执行2个16×16位或4个8×8位的乘法运算。(2)支持四路8位或双16位指令集随数据流扩展。(3)支持非对齐32位(字)和64位(双字)存储访问。(4)添加了特殊的通信专用指令来解决常见的纠错码操作。(5)位计算和旋转硬件(Rotate Hardware)扩展支持位算法。

除了上述TMS320C64x DSP的特点,TMS320C64x+DSP还包括以下特点。(1)简洁指令:为减少代码的大小,常见的指令(如AND、ADD、LD和MPY)拥有了16位的版本。(2)保护模式操作:具有优先程序执行的两级系统来支持更高容量的操作系统和系统特性,如存储保护。(3)支持错误检测和程序重定向,以提供稳健的(Robust)的代码执行。(4)硬件支持模(Modulo)循环操作,来减少代码的大小。(5)每个乘法器可执行32×32位乘法运算。(6)支持复杂乘法的附加指令,在每个时钟周期可允许高达8个16位乘/加/减运算。

VelociTI结构使得TMS320C6x DSP成为第一个现成的使用先进超长指令字(VLIW)的DSP器件,其可通过增加指令的并行性来获得较高的性能。传统的VLIW结构由多个并行运行的执行单元组成,在单个时钟周期内可执行多条指令。并行性是提高计算性能的关键,它使得这些DSP器件超过了传统超标量设计的性能。VelociTI是一个高度灵活的结构,对于如何及何时取指、执行和存储很少限制。该结构的灵活性成为突破TMS320C6000优化编译器效率水平的关键。VelociTI的特点如下。(1)指令封装(Instruction Packing):减少代码大小。(2)有条件地执行所有指令:代码灵活。(3)可变宽度指令:数据类型灵活。(4)全流水线分支:零开销分支操作。1.4.4 TMS320C6x的应用

TMS320C6x DSP给系统架构师提供了无限的可能,以使他们的产品变得独特。高性能、易使用和可接受的价格使得TMS320C6x成为多通道、多功能数字信号应用平台的理想选择。其主要应用如下:

①混合调制解调器;

②无线局域环路基站;

③波束基站;

④远程访问服务器(RAS);

⑤数字用户线(DSL)系统;

⑥电缆调制解调器;

⑦多通道电话系统;

⑧虚拟现实3D图形;

⑨语音识别;

⑩音频信号处理;

⑪雷达信号处理;

⑫大气层空间建模;

⑬有限元分析;

⑭图像处理(如指纹识别、超声和核磁共振成像MRI)。

同时,TMS320C6000也是其他一些令人兴奋的新应用的理想选择,如:

①个性化家庭安全与面部和手/指纹识别;

②具有全球定位系统(GPS)导航的先进巡航控制和避免事故;

③远程医疗诊断。本章小结

本章为DSP原理及应用的绪论,首先对DSP的发展、特点、分类、应用及选择进行了概述;然后对DSP系统构成和设计过程进行了介绍,并简单分析了TI及其他公司生产的一些常用DSP芯片的型号和特点;最后重点介绍了高性能TMS320C6x系列DSP的结构组成、特点和应用。通过本章学习,读者可对DSP芯片的基础知识及DSP系统设计有所熟悉和了解,为后续内容的学习奠定一定的基础。思考与练习题

1. 简述DSP芯片的发展概况及趋势。

2. 简述DSP存储器的两种主要结构,并分析其区别。

3. 什么是流水线技术?

4. 简述当前DSP的主要应用。

5. 简述DSP系统的构成及设计步骤。

6. 简述表征DSP运算速度的指标,并给出其具体含义。第2章 TMS320DM6437的硬件结构2.1 TMS320DM6437的基本结构

TMS320DM6437采用TMS320C64x+DSP内核,是TI公司开发的一款高性能的、支持达芬奇(DaVinci)技术的32位定点处理器,具有非常强的计算能力,工作频率可达700MHz,处理速度最高可达5600MIPS。TMS320DM6437具有64个32位通用寄存器和8个独立计算功能单元,这些功能单元包括两个用于存储32位结果的乘法器和6个算术逻辑单元(ALU)。TMS320DM6437的内核采用TI开发的第三代高性能支持超长指令字(VLIW)的VelociTI.2结构,VelociTI.2在8个功能单元里扩展了新的指令以增强其在视频处理中的性能。在8个功能单元中,2个乘法器在每个时钟周期内可执行4个16×16位或8个8×8位的乘法,6个算术逻辑单元能在每个时钟周期内执行2个16位或4个8位的加、减、移位等运算。因此,在700MHz时钟频率下,每秒可执行28亿次16位的乘加运算或56亿次8位的乘加运算。TMS320DM6437的基本硬件结构如图2-1所示。

TMS320DM6437采用2级Cache存储结构,片上有32KB RAM/Cache可配置的1级程序存储器L1P,48KB RAM+32KB RAM/Cache可配置的1级数据存储器L1D和128KB RAM/Cache可配置的2级程序/数据存储器L2,存储器体系结构比较灵活。此外,TMS320DM6437还集成了片上ROM Bootloader、兼容的JTAG接口、灵活的OSC/PLL时钟发生器和独立的节电模式等。

TMS320DM6437硬件结构的另一特点是包含了一个视频处理子系统(VPSS),它分为两部分:一部分是视频处理前端输入部分(VPFE),用于视频采集;另一部分是视频处理后端输出部分(VPBE),这增强了TMS320DM6437的视频处理能力。

视频处理前端部分(VPFE)由CCD控制器(CCDC)、预览器、柱状显示模块、自动曝光/白平衡/聚焦模块(H3A)和缩放模块组成。CCDC可以与通用视频解码器、CMOS或CCD传感器相连。预览器是一个实时图像处理设备,它从CMOS或CCD传感器获取原始图像数据,将RGB格式的数据转换成YCrCb4:2:2格式。柱状显示和H3A模块提供TMS320DM6437中有关原始数据的统计信息。缩放器可以将图像数据在水平方向和垂直方向上各自进行缩放,范围从1/4x到4x,增量间隔为256/N,N的取值范围从64到1024。图2-1 TMS320DM6437 DSP的硬件结构框图

视频处理后端部分(VPBE)由屏幕显示(OSD)设备和视频编解码(VENC)组成。OSD设备可同时处理2个独立的视频采集窗口和2个独立的显示窗口或2个视频窗口、1个OSD窗口和1个高达8级的α混合窗口。VENC提供4路模拟的DA转换,转换效率达54MHz,提供NTSC/PAL制复合电视信号、S-Video信号及分量电视信号输出。VENC还提供高达24位的数字输出,可与RGB888设备相连。数字输出信号符合BT.656标准或CCIR标准的8/16位数据输出,且行场独立同步。

如图2-1所示,TMS320DM6437集成了丰富的片内外设,包括以下四部分。(1)系统外设:包括2个64位通用定时器、1个64位看门狗定时器、3个脉冲宽度调制(PWM)和111个通用输入/输出引脚(GPIO),每个通用定时器可分别配置成2个独立的32位定时器。(2)多种串口:包括多通道音频串口(McASP)、2个多路缓冲串口(McBSP)、1个I2C总线接口、高端控制器局域网(CAN)控制器(HECC)及2个通用异步收发器(UART)接口。HECC模块提供了在恶劣环境下使用的网络协议,从而保证了与其他控制器的不间断通信,非常适合于自动化控制领域。(3)连接器:包括1个外围设备互连接口(PCI)(33MHz)、4个收发VLYNQ(FPGA)接口、10/100Mbps以太网媒体存取控制器(EMAC)及1个可编程的16位主机接口(HPI)。EMAC符合IEEE 802.3规范,支持10Base-T和100Base-TX标准,具有媒体独立接口MII和数据输入/输出管理模块。EMAC为TMS320DM6437与网络连接提供了有效的接口。(4)外部存储器接口:包括1个用于32位DDR2 SDRAM高速存储控制器接口,具有256MB寻址空间,1个8位异步外部存储器接口(EMIFA),具有64MB寻址空间,如与NOR Flash或NAND Flash存储器相连,用于低速率的存储器或外部设备接口。此外,增强型直接存储器读写(EDMA3)控制器负责存储器与TMS320DM6437的从设备间的数据传输。TMS320DM6437具有64个独立通道的EDMA3控制器,EDMA3负责片内L2和L1D与其他外设之间的数据传输,以及外部存储器间、外围设备与主机间的数据传输。2.2 TMS320DM6437 CPU结构2.2.1 CPU的组成

TMS320DM6437采用TMS320C64x+CPU体系结构,包括8个独立的计算功能单元、2个寄存器组和2条数据通路,如图2-2所示。这2个寄存器组(A和B)都包括32个32位通用寄存器,共64个寄存器。这些通用寄存器既可用于数据,又可用于数据地址指针。数据类型支持封装(Packed)8位数据、封装16位数据、32位数据、40位数据和64位数据,其中大于32位的数据,如40位长或64位长数据被存储到寄存器对(Register Pairs)中,即低32位(LSB)数据放置到偶寄存器(Even Register)中,剩余的高8位或高32位(MSB)放置到紧邻的下一个奇寄存器(Odd Register)中。

这8个功能单元(.M1、.L1、.D1、.S1、.M2、.L2、.D2和.S2)都能够在单个时钟周期内执行一条指令。其中,.M功能单元执行所有的乘法操作,.S和.L单元完成一系列算术、逻辑和分支功能,.D单元主要用于从存储器加载数据到寄存器和将寄存器中的结果保存到存储器中。图2-2 TMS320DM6437 CPU结构图

每个TMS320C64x+.M功能单元在单个指令周期内能够完成一个32×32位乘法运算,或一个16×32位乘法运算,或2个16×16位乘法运算,或2个16×32位乘法运算,或2个16×16位带加/减功能的乘法运算,或4个8×8位乘法运算,或4个8×8位带加法功能的乘法运算,或4个16×16位带加/减功能的乘法运算。同时,还支持8位和32位数据的有限域(Galois Field,伽罗华域)乘法运算。很多通信算法,如FFT和调制解调都需要作复数乘法(CMPY)运算,复数乘法指令通过接收16位输入,得到包含32位实部和32位虚部的乘法输出。带有舍入功能的复数乘法还可得到一个32位的封装输出,其包含16位实部和16位虚部值。为了满足音频和其他高精度算法的需要,32×32位乘法指令在多种有符号和无符号32位数据类型上提供了扩展精度。

TMS320C64x+中的.L功能单元(算术逻辑单元,ALU)集成了成对通用输入的并行加/减法运算能力,主要用于32位数据或双16位数据的并行加、减法运算,且具有标准的指令格式。

TMS320C64x+内核在多个方面增强了.S功能单元,在TMS320C64x内核中,双16位MIN2和MAX2比较操作仅能在.L单元上执行;而在TMS320C64x+内核中,该操作也可在.S单元上执行,以增强搜索和排序算法的性能。最后,为了增加数据压缩和解压的吞吐率,.S功能单元保证了8位/16位和双16位指令提供的高性能。解压指令为并行16位操作准备8位数据,压缩指令返回并行结果到输出。2.2.2 CPU数据通路

TMS320DM6437 CPU包含2条数据通路(A和B),如图2-2所示。其组成包括:2个通用寄存器组(A和B)、8个功能单元(.L1、.L2、.S1、.S2、.M1、.M2、.D1和.D2)、2个存储器加载数据通路(L1D和L2D)、2个存储器保存数据通路(ST1和ST2)、2个数据地址通路(DA1和DA2)和2个寄存器数据交叉通路(1X和2X)。其中,在.M单元中dst2为高32位(MBS),dst1为低32位(LBS),src2为64位;在.L和.S单元中,odd dst连接到奇寄存器组(Odd Register Files),even dst连接到偶寄存器组(Even Register Files)。

每个通用寄存器组包含32个32位寄存器(A0~A31为寄存器组A、B0~B31为寄存器组B),如表2-1所示。这些寄存器可用于数据、数据地址指针或状态寄存器。通用寄存器组支持数据范围大小从封装的8位到64位定点,其值大于32位的,如40位和64位,被存储到寄存器对中,即低32位数据存放到偶数序列寄存器中、剩余的高8位或高32位存放到紧邻的下一个奇数序列寄存器中。封装数据类型既可通过4个8位或双16位值存储在单个32位寄存器中,也可通过4个16位值存储在一个64位的寄存器对中。DSP内核中有32个有效寄存器对用于存储40位或64位数据。在汇编语言语法中,寄存器名间的冒号表示寄存器对,奇数序列的寄存器首先被指定。图2-3显示了40位长数据的寄存器存储方法,一个长整型数输入的操作将忽略奇寄存器中的高24位,即奇寄存器中的高24位自动补0,偶寄存器以操作码方式进行编码。表2-1 40位/64位寄存器组图2-3 40位数据在寄存器对中的存储方法

在这2条数据通路上,8个功能单元被分成2组,每组4个。在一条数据通路上的每个功能单元等同于另一条数据通路上对应的功能单元,如表2-2所示。TMS320C64x+可以执行TMS320C6x中几乎全部8位到16位指令,如在.M功能单元上,MPYU4单指令可完成4个8×8位无符号乘法运算;在.L功能单元上,ADD4单指令可完成4个8位加法

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载