教材 哈尔滨工业大学“十一五”规划教材 《TMS320LF240x系列 DSP原理、开发与应用》 哈尔滨工业大学出版社 2006年8月 张毅刚 赵光权 孙宁 俞洋 编著 傅扬烈 计算机应用技术系 计算机楼407 电话:13851277470
参考书(见教材参考文献) (1) TMS320LF240xDSP硬件开发教程,江思敏,机械工业出版社。 (2) TMS320LF240xDSP应用程序设计教程,清源科技,机械工业出版社。 (3) TMS320LF240xDSP结构、原理及应用,刘和平,北京 航空航天大学出版社. (4) TMS320LF/LC24系列DSP的CPU与外设,徐科军等编译,清华大学出版社。
该课程考核方式分为:平时考核和期末考核,课程考核成绩中,期末考核成绩占70%,平时考核成绩占30%; 学时:48(实验:无) 考核:考查 答疑时间:每周三下午,院会后。 考核方式:作业+测验 该课程考核方式分为:平时考核和期末考核,课程考核成绩中,期末考核成绩占70%,平时考核成绩占30%; 平时考核成绩由课内实验成绩和平时作业、考勤成绩构成。
第1章 数字信号处理器(DSP)综述 1.1 什么是DSP DSP-Digital Signal Processor(数字信号处理器 ) 特别适合于实现各种数字信号处理运算的微处理器。过去受集成电路技术和数字化器件发展水平限制,只限于理论概念的讲授和仿真。 早期-在计算机上仿真,算法实现。 现在-在DSP上实时处理 DSP也可是Digital Signal Processing(数字信号处理)的缩写,国内常用DSP代表数字信号处理器。
由于DSP具有: (1)丰富的硬件资源(2)改进的并行结构、(3)高速的数据处理能力和功能强大的指令系统 已成为世界半导体产业中紧随微处理器与微控制器(单片机)之后的又一个热点 在通信、航空、航天、机器人、工业自动化、自动控制、网络及家电 广泛的应用。 1.2 DSP技术的发展及现状 1965年,快速傅立叶算法(FFT),使傅立叶分析的速度提高了数百倍,为数字信号处理的应用奠定基础。
但由于当时的计算机技术和数字电路技术发展水平的限制,FFT应用受到限制。 1978年,AMI公司宣布第一个DSP问世,但人们一般认为,20世纪70年代后期推出的Intel 2920才是第一片具有独立结构的DSP。 1981年,美国德州仪器(TI)公司研制出了著名的TMS320系列的首片低成本、高性能的DSP-TMS320C10。使DSP技术向前跨出了意义重大的一步。
90年代后,由于超大规模集成电路、微处理器技术的发展,数字信号处理无论在理论上还是在工程应用中,都是发展最快的学科之一,且日趋完善和成熟。 特别是90年代中期,由于Internet网络的迅猛发展和高清晰度数字电视的研究以及各种网络通信、多媒体技术的普及和应用,极大地刺激了数字信号处理理论、DSP技术在工程上的实现和推广应用。 DSP的性能指标不断提高,价格不断下降,获得广泛应用,已成为新兴科技:通信、多媒体系统、消费电子、医用电子等飞速发展的主要推动力。
DSP的发展经历了三个主要阶段,目前已发展到第四 代、第五代产品。 DSP主要厂商:美国TI、 ADI、 Motorola、Zilog等公司。TI公司位居榜首,占全球DSP市场约60%左右。 尽管当前的DSP技术已达到较高的水平,但在一些实时性要求很高的场合,单片DSP的处理能力还是不能满足要求。因此,多总线、多流水线和多处理器并行就成为提高系统性能的重要途径之一。 许多公司在提高单片性能的同时,在结构上为多处理器的并行应用提供方便。
例如,TI公司的某型号DSP,设置了6个8bit的通信口,既可作级联,也可作并行连接。每个口都有DMA能力。 AD公司的SHARC系列DSP为满足多片互联的需要,专门设置有LINK链路口,可无缝连接多达6片DSP,组成一定的拓扑结构的网络,这些都是专门为多处理器应用而设计的。 提高性能的另一种方法就是把DSP内核集成在一个芯片内。如TI公司推出的TMS320C80(又称多媒体视频处理器)内有5个强有力、可编程的DSP处理器
随着DSP的处理速度越来越快,功耗也随越大,特别是在电池供电的便携式及嵌入式小型或微型设备中的大量使用,都迫切要求DSP在提高工作性能的同时,降低工作电压,减少功耗。为此,各DSP厂家积极研制并陆续推出多种低电压、低功耗芯片。 例如,TI公司的TMS320VC5416,内核工作电压只有1.5V,有的DSP设置了多种节能等待状态。 总之,低电压和低功耗已成为DSP的重要技术指标之一。
系统芯片集成-SOC(System on Chip) 技术,是下一代DSP产品的主要发展方向之一。 芯片技术能降低电子产品成本和体积,当代电子学革命之父、2000年诺贝尔物理奖获得者、美国TI公司杰克-基尔比也没有想到,他在1959年发明的芯片技术, 会将电子产品的成本降低到了百万分之一的地步,体积缩小到令人难以置信的程度。 例如,具有电视质量的无线电会议、家庭娱乐设施、电子游戏等。
最近,可将8个DSP核(每个核有1亿个晶体管)集成到拇指大的一块芯片上。 (1)自适应滤波、卡尔曼滤波、同态滤波等理论逐步成熟和应用,以及各种快速算法。 (2) 声音与图像的压缩编码、识别与鉴别。
(3)加密解密,调制解调,信道辨别与均衡,智能天线,频谱分析等算法。 都成为研究的热点,并有长足的进步,为各种实时处理的应用,提供了算法基础。 今天,随着 (1)全球信息化和Internet网的普及 (2)多媒体技术的广泛应用,尖端技术向民用领域迅速的转移。 (3)数字技术大范围进入消费类电子产品等。
使DSP不断更新换代,价格大幅度下降,各种开发工具日臻完善,DSP已成为最有发展和应用前景的电子器件之一。 据国际著名市场调查研究公司Forward Concepts 发布的一份统计和预测报告显示,目前世界DSP产品市场每年正以30%的增幅大幅度增长,其增长速度比半导体工业快50倍。
1.3 DSP的应用 DSP诞生以来,已被广泛地应用在各个领域。 当今DSP应用市场: 通信设备和网络、多媒体技术等是最大的用户。从DSP的一个最典型的应用-手机,就可见DSP的应用市场之大。 主要应用: (1)数字信号处理运算:快速傅立叶变换(FFT),卷积,数字滤波,自适应滤波,相关,模式匹配,加密等。 (2)通信:调制解调器,自适应均衡,数据加密,数据压缩,扩频通信,纠错编码,传真,可视电话等。
(3)网络控制及传输设备:网络功能和性能的不断提高,如视频信箱、交互式电视等,要求更宽、更灵活的传输带宽,实时传输和处理数据的网络控制器、网络服务器和网关都需要DSP的支持。 (4)语音处理:语音编码,语音合成,语音识别,语音邮件,语音存储等。 (5)电机和机器人控制:在单片内集成多个DSP处理器,可采用先进的神经网络和模糊逻辑控制等人工智能算法。机器人智能的视觉、听觉和四肢的灵活运动必须有DSP技术支持。
(6)激光打印机、扫描仪和复印机:DSP不仅仅是控制,还有繁重的数字信号处理任务,如字符识别、图像增强、色彩调整等。 (8)图像处理:二维、三维图形处理,图像压缩、传输与增强,动画,机器人视觉,模式识别等。 (9)军事:保密通信,雷达处理,导航,导弹制导。
如机载空-空导弹,内装有红外探测仪和相应的DSP处理部分,完成目标的自动锁定与跟踪,战斗机上的目视瞄准器和步兵头盔式微光仪,需要DSP完成图像滤波与增强,智能化目标的搜索、捕获。 (10)自动控制:机器人控制,磁盘控制,自动驾驶,声控,发动机控制等。 (11)医疗仪器:助听,诊断工具,超声仪,CT,核磁共振。 (12)家用电器:数字电话,数字电视,音乐合成,音调控制,玩具与游戏,高保真音响,数字收音机、数字电视等。
(13)汽车: 防滑刹车,引擎控制,伺服控制,振动分析,安全气囊的控制器,视像地图等。一辆现代高级轿车,有30多处电子设备上用到了DSP技术。 (14)多媒体个人数字化产品:数码相机,MP3,掌上电脑,电子辞典,数码录音笔,数码复读机等。 1.4 DSP与单片机、嵌入式微处理器的区别 DSP 、单片机以及嵌入式微处理器都是嵌入式家族的一员。 最大区别是DSP能够高速、实时地进行数字信号处理运算。数字信号处理运算的特点是乘/加及乘积累加
为了能快速地进行数字信号处理的运算, (1)DSP设置了硬件乘法/累加器, (2)能在单个指令周期内完成乘/加运算。 (3)为满足FFT、卷积等数字信号处理的特殊要求,目前DSP大多在指令系统中设置了“循环寻址”及“位倒序”寻址指令和其他特殊指令,使得寻址、排序的速度大大提高。DSP完成1024复点FFT的运算,所需时间仅为微秒量级。
高速数据的传输能力是DSP高速实时处理的关键之一。新型的DSP设置了单独的DMA总线及其控制器,在不影响或基本不影响DSP处理速度的情况下,作并行的数据传送,传送速率可达每秒百兆字节。DSP内部有流水线,它在指令并行、功能单元并行、多总线、时钟频率提高等方面不断创新和改进。 因此, DSP与单片机、嵌入式微处理器相比,在内部功能单元并行、多DSP核并行、速度快、功耗小、完成各种DSP算法方面尤为突出。
单片机(也称微控制器或嵌入式控制器),为中、低成本控制领域而设计和开发。单片机的位控能力强,I/O接口种类繁多,片内外设和控制功能丰富、价格低、使用方便。但与DSP相比,处理速度较慢。 单片机没有DSP具有的高速并行结构及指令、多总线。DSP处理的算法的复杂度和大的数据处理流量更是单片机不可企及的。 嵌入式微处理器的基础是通用计算机中的CPU(微处理器)。是嵌入式系统的核心。为满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准
微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。与工业控制计算机相比,嵌入式微处理器具有体积小、质量轻、成本低、可靠性高的优点,但是在电路板上必须包括ROM、RAM、总线接口、各种外设等器件。 在应用设计中,嵌入式微处理器及其存储器、总线、外设等安装在专门设计的一块电路板上,只保留和嵌入式应用有关的母板功能,可大幅度减小系统的体积和功耗。目前,较流行的是基于ARM7、ARM9系列内核的嵌入式微处理器。
嵌入式微处理器与DSP的一个很大区别,就是嵌入式处理器的地址线要比DSP的数目多,所能扩展的存储器空间要比DSP的存储器空间大的多,所以可配置实时多任务操作系统(RTOS)。 RTOS是针对不同处理器优化设计的高效率、可靠性和可信性很高的实时多任务内核,它将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的应用程序接口(API),并根据各个任务的优先级,合理地在不同任务之间分配CPU时间。RTOS是嵌入式应用软件的基础和开发平台。 常用的RTOS:Linux(为几百KB)和VxWorks(几MB)。
由于嵌入式实时多任务操作系统具有的高度灵活性,可很容易地对它进行定制或作适当开发,来满足实际应用需要。 例如,移动计算平台、 信息家电(机顶盒、数字电视)、媒体手机、工业控制和商业领域(例如,智能工控设备、ATM机等)、电子商务平台,甚至军事应用,吸引力巨大。 所以,目前嵌入式微处理器的应用是继单片机、DSP之后的又一大应用热门。但是,由于嵌入式微处理器通常不能高效地完成许多基本的数字处理运算,例如,乘法累加、矢量旋转、三角函数等。它的
体系结构对特殊类型的数据结构只能提供通用的寻址操作,而DSP则有专门的简捷寻址机构和辅助硬件来快速完成。所以嵌入式微处理器不适合高速、实时的数字信号处理运算。而更适合 “嵌入”到系统中,完成高速的“通用”计算与复杂的控制用途。 DSP、单片机以及嵌入式微处理器三者各有所长,技术的发展使得DSP、单片机、嵌入式微处理器相互借鉴对方的优点,互相取长补短。 现在,部分单片机内部有硬件乘法器,流水线作业(但规模小些)
借鉴PC机的优点,DSP内部也有了一定规模的高速缓存。吸收Intel的嵌入式系统芯片和系统软件的优点。 有的DSP内部集成了高速运行的DSP内核及控制功能丰富的嵌入式处理器内核。 例如,内部集成有TI公司的C54xCPU内核和ARM公司的ARM7TDMIE内核的DSP,既具有高速的数据处理能力,又有各种类型的外设接口和位控能力,大大拓宽了DSP在控制领域的应用范围。
DSP在注重高速的同时,也在发展低价位控制芯片。 美国Cygnal公司的C8051F020 8位单片机,内部采用流水线结构,大部分指令的完成时间为1或2个时钟周期,峰值处理能力为25MIPS。 片内集成有8通道A/D、2路D/A、两路电压比较器,内置温度传感器、定时器、可编程数字交叉开关和64个通用I/O口、电源监测、看门狗、多种类型的串行总线(两个UART、SPI)等。
1.5 DSP的基本结构及主要特征 为达到快速进行数字信号处理的目的,DSP的总线结构大都采用了程序和数据分开的形式,并具有流水线操作的功能,单周期完成乘法的硬件乘法器以及一套适合数字信号处理运算的指令集。 DSP的基本结构及主要特征如下。 1.程序和数据分开的哈佛结构 就是将程序和数据存储在两个不同的存储空间中。
程序存储器空间和数据存储器空间分别独立编址。 传统的冯.诺依曼结构是程序存储器和数据存储器共用一个公共的存储空间和单一的地址和数据总线,依靠指令计数器中提供的地址来区分是指令、数据还是地址。取指令和取数据都访问同一存储器空间,数据的吞吐率低。 在哈佛结构中,由于程序存储器和数据存储器分开,即每个存储器空间独立编址、独立访问,并具有独立的程序总线和数据总线,取指令和执行指令能
完全重叠进行。 现在的DSP普遍采用改进的哈佛结构,其结构、特点如下: (1)允许数据存放在程序存储器中,并被算术运算指令直接使用,增强了灵活性。 (2)指令存储在高速缓冲器(Cache)中,当执行本指令时,不需要再从存储器中读取指令,节省一个机器周期的时间。
2.流水线操作 由于DSP芯片采用多组总线结构,允许CPU同时进行指令和数据的访问。因此,可执行流水线操作。 执行一条指令,要经过取指、译码、取数、执行运算,需要若干个指令周期才能完成。流水线技术是将各个步骤重叠起来进行。即第一条指令取指、译码时,第二条指令取指;第一条指令取数时,第二条指令译码,第三条指令取指,依次类推。 例如,LF240x就可以实现4级流水线操作(图1.1)。
3. 专门的硬件乘法器和乘加指令MAC 在数字信号处理的算法中,大量的运算是乘法和累加,乘法和累加要占用绝大部分的处理时间。 例如,数字滤波、卷积、相关、向量和矩阵运算中,有大量的乘法和累加运算。 个人计算机:计算乘法需要多个周期用软件实现, DSP:设置了硬件乘法器以及乘加指令MAC,在单周期内取两个操作数一次完成乘加运算。
4. 特殊的指令 指令系统中,专为实现数字信号处理的算法设置了专门的特殊指令。 例如:DMOV指令,把指令的数据复制到该地址加1的地址中,原单元的内容不变,即数据移位,相当于数字信号处理中的延迟,例如x(n)的延迟为x(n-1)。 另一特殊指令LTD,在一个指令周期可完成LT、DMOV和APAC三条指令的内容。 此外,指令系统中设置了“循环寻址”及“位倒序寻址”指令和其他特殊指令,使得寻址、排序的速度大大提高,从而能方便、快速地实现FFT算法。
5.丰富的片内存储器件和灵活的寻址方式 片内集成Flash和双口RAM,通过片内总线访问这些存储空间,因此不存在总线竞争和速度匹配问题,大大提高了数据的读/写速度。 6. 独立的直接存储器访问(DMA)总线及其控制器 DSP为DMA单独设置了完全独立的总线和控制器 7. 高速的指令运行周期 采用上述措施,DSP指令周期可为几十ns至几ns,甚至1ns以下。
1.6 DSP的分类及主要技术指标 1.6.1 DSP的分类 DSP一般按以下三种方式分类。 1.按数据格式分 可分为定点芯片和浮点芯片两种。 定点DSP芯片按照定点的数据格式:16位、24位、32位。 定点DSP的特点:体积小、成本低、功耗小、对存储器的要求不高;但数值表示范围较窄,必须使用定点定标的方法,并要防止结果的溢出。
浮点DSP芯片:数据长度通常为32位、40位。 浮点数的数据表示动态范围宽,运算中不必顾及小数点的位置,因此开发较容易。但硬件结构相对复杂、功耗较大,且比定点DSP芯片的价格高。 在对数据动态范围和精度要求较高的系统中,使用浮点DSP芯片。 不同的DSP的浮点格式不一定完全一样,如IEEE的标准浮点格式(如摩托罗拉的MC96002)、自定义的浮点格式(如TI公司的TMS320C3X)。
2. 按照用途分类 DSP按照用途分类可分为:通用型和专用型。 通用型:适用于普通的数字信号处理应用。 专用型:适用于不同的数字信号处理运算或特定的应用场合。例如,数字卷积、数字滤波、FFT等。 1.6.2 DSP的主要技术指标 种类繁多,结构差别大,不同厂商的产品指标甚至不具备可比性,因此,下述技术指标只是从不同角度描述了DSP的处理能力或技术性能,仅作为系统设计时的一种参考。
1.时钟频率 要考虑两个方面: (1) DSP内部工作主频,真正的工作频率。一般是内部主频越高,DSP的数据处理速度越快。 (2) DSP的外部时钟频率,这是DSP片外所加的实际时钟频率,这个时钟频率一般要经过DSP内部的锁相环倍频至DSP的内部工作主频。外部时钟频率低有利于减少外部电路间的干扰,使PCB布线容易。所以一般是外部时钟频率低(减少干扰),内部时钟频率高(提高处理速度)。
2.机器周期 执行一条指令所需要的时间。DSP的大部分指令是单周期指令,即执行时间为一个机器周期。也反映了DSP的数据处理速度。 3.MIPS 目前,最通常使用的是MIPS(Millions of Instruction Per Second),即每秒执行的百万条指令。它综合了时钟频率、DSP并行度、机器周期等描述DSP处理速度的指标。 可从MIPS来计算机器周期:
例如,TMS320LF2407A的MIPS为40MIPS,其机器周期为25ns。 4.MOPS Millions of Operation Per Second-每秒执行的百万条操作。但是操作次数并不等于指令条数。一般完成一条指令需要若干次操作。但是不同的DSP对于操作的定义不同,不同指令所需要完成的操作次数也不相同。所以MOPS指标只是相对于同一种DSP系列使用才有意义。
5.MFLOPS Millions of Float Operation Per Second-每秒执行的百万次浮点运算,是衡量浮点DSP浮点运算能力的又一个指标。是指浮点DSP内部浮点处理单元每秒钟执行浮点运算的次数。 6.MACS MACS是指DSP在1秒内完成乘-累加运算的次数。因为乘/累加运算是数字信号处理算法中的基本运算。但是DSP的应用涉及到许多乘/累加运算以外的运算,MACS并不是全面评价DSP性能的指标。
上述的有关衡量DSP运算速度的指标,均以程序、数据都在DSP内部,DSP全速运行的结果。
DSP第一类应用:采用专门的复杂算法来处理大量数据。以声纳和地震探矿为例,算法非常复杂,产品的设计工作量很大,也更复杂。因此设计者希望使用性能最高的、最容易使用的、能支持多处理器配置的方案。
1. 如何选择数据格式 数据处理运算的格式分为定点格式和浮点格式。 大多数DSP使用定点运算。有的DSP使用浮点运算。 浮点运算的灵活性和数据的动态范围都比较大,比较容易编程。因为浮点DSP电路更复杂,芯片也更大,所以成本和功耗也就比较大。 但在很多情况下,不需要关注数据的动态范围和精度。可考虑使用定点DSP。大多数批量生产的产品使用定点DSP,主要考虑其成本和功耗低。
程序员和算法设计者根据实际应用的要求,通过分析和仿真来确定数据的动态范围和精度,然后在需要的时候,在代码中增加定标运算。 对于需要很高动态范围和精度的应用,或在开发的容易程度比成本更重要的情况下,浮点DSP就有其优势。 2. 数据宽度 所有浮点DSP为32位,大多数定点DSP是16位,但有的也使用20、24、32位数据字。 数据字的长短是影响成本的重要因素,因为它极大地影响芯片的大小、引脚数以及DSP的片外存储器的大小。
3. 速度 有多种方法来衡量DSP的速度,最基本的是指令周期,即用MIPS——每秒执行多少百万条指令。但问题是:不同的DSP在单个周期所完成的工作是大不相同。 使用MOPS(每秒百万次运算)和MFLOPS (每秒百万次浮点运算),要十分小心。因为不同厂商的关于“操作或运算”的概念是不同的。 其次,要注意的是,DSP的输入时钟可能和DSP的指令速率一致,也可能内部时钟加倍。 许多DSP是用低频时钟来产生片上所需要的高频时钟。
4. 存储器的安排 应关注双访问存储器(DARAM)的单元多少、哈佛结构、高速缓存、存储空间的大小。 5. 开发的难易程度 为减少产品成本,可使用比较便宜的开发工具。 使用何种语言编程,C语言、汇编语言等。使用C编写用的较多,对实时性要求高的程序,仍用汇编语言编写。也有C语言和汇编语言混合编程的。 消费类产品,由于成本限制,不一定要使用高性能的DSP。
6. 支持多处理器 雷达是高数据率和大运算量的应用系统,往往需要多个DSP,在这种情况下,DSP间是否容易连接、连接的性能,都成为重要的因素。近年推出的DSP大都非常注意增加专门的接口或DMA通道,来支持多DSP的运行。 7. 功耗和电源管理 越来越多的DSP用于电池供电的便携式应用(如手机、便携式播放器等),希望功耗越小越好的同时,又要求有很高的处理速度。但DSP的功耗与速度是成正比的,速度越高,相应的功耗越大,
而相同工作电压的低速DSP,其功耗自然较小。所以单纯用功耗来反映DSP的耗能指标是不全面的。每秒百万条指令功耗是综合了DSP速度和功率的较为全面的耗能指标。目前,许多DSP厂商都降低了DSP的供电电压,加强了电源管理功能。 8. 器件的封装 决定DSP价格的主要因素之一是器件封装。一般一种芯片会有几种封装形式。用户可根据需要来选用。
(1)表贴封装-TQFP 。 (2) BGA(Ball Gnd Aarry)封装 目前新的高速DSP芯片均为此类封装。封装引脚短且为球形,所以高频特性好,干扰小。但目前焊接需要专门的设备,不太方便,且焊接后不易检查和修改。 《结束》
作业