资 源 简 介
本书针对程序开发人员和DSP初学者,介绍了当前最为流行的几种高性能通用DSP,包括TI公司TMS320C5000/6000DSP和AD公司的SHARC DSP内谷简介D$P芯片技术飞速发展,旧型号不断被淘汰,新产品功能越来越强大,而硬和汀编指令也越来复尔。面对这种形势,DSP程序廾发人员必须转变仁统的編稈思想,采用发流桯简化的系统缏集城坏境,以缩短软件川发周期,伙产的上市。不「针对科伃开发人员和DSP初字,介绍了当前最为流行的儿种高性能逦川DSP,包折T公司的TMS32C5(C60Dsp和AD公司的 SHARC DSI;详细介绍了新的开发环境炇最新的缃路:介纤了在 MATLAB及开发挞供的系统级集成环境下,完成设讨、仿白、囗标代码产牛、调试和运行的过本冋通信、絆达和电了程独域的DSP算汏研究和粔序开发人员以及相)々ψ的硏究牛莉高年级本科牛,亦刂作为DSP爱好者的白学教程。图书不版编目(CIP)数DSP程序MATLAB调试及直接标代码生成/李真芳等细者两纹:两女子科技大学出版社,2003.10SBN7-5606-1298-9「.D…∏.个…Ⅲ.数字信号位号处理程序设Ⅳ.TN911.72「版本图书馆CIP数拈核了(2003)第083821号划陈宁光戚文艳责仟编阎彬出版发行西安屯于科技人学出版社(西安市人白南路2号)中诉(02982428858201467邮71007hllp:/www.xduph.comE-mail:xduplxb@pub.xaonline.com销新华书店印刷安文化彩印厂版次20031:10第1版2003年10订第1次印刷开本787亳米×1092毫米1/6即张24数587千卬数1~4000册定价35,00ISBN7-5606-1298-9/TN·0239XDUP1569001※求如有印装问题可调挨*米米本社图封甪为溦光防伪苣肷,谨防盜。如当前PC机的吏新速度一,DSP投术也在速发展,旧型号个断被淘汰,新型号不断产生,且硬件结构和汇编指令越来越复杂。面对这种形势人们丌发DSP广品的开发思峂也逐渐发生转变,很多设计者趋向于则头专业公可提供的现成的DsP板或处理机。这杵做虽然用较高,但换来了可靠性史重要的是节省了硬件的开发周期。此,现在整个新产品的开发越米越集屮在软件小发上传统的丌发工具利川DSP汇编语亡进行低层次的设计,现在这凵不适应IT市场的激烈竞争。为了在竞争屮获胜,软开发人需要利儿简单易学的高层次集成环境,來帮助他们摆脱底坛设计的內扰,集中精力探索新的算法获得技术上的突破。作老编写本书的耍囗的之一、就是要把一些最新的编楳方法、编楳思路和调试方法介绍给读者,以帟助他们快速适应不断变化的技术潮流利市场节奏MATLAB作为日前最强大的数位讣算和分析工具,已被算法研究人员、工程技术人广泛应用。 MATLAB用于DSP的算法模拟/仿真已大有所为而人们期望着把DSP的所有川发工只都集成在 MATLAB屮,即在 MATLAB统一环境卜就冂以完成DsP捍序廾发的整个过桿。顺应此潮流,TT公司和SDL公可 MathWorks公司合作,分别针刈TMS32C5000C6000DSP和 SHARODSP,推出了 MATLAB-DSP系统级集成坏境,即在 MATLAB统坏培下完成概念设计、模拟/仿真、月标代码产生、运行和调试。利用系统级廾发环垸以极人地省耗费在编程和修止错误上的时间,把开发者解放出来,紧龈前沿科技,探索新的思路,准时提交第流宀品设计编写木的另个目的就足为DSP初学者提供个完整、系统、详细的介绍,这些介绍包括DSP的内部功能结构、源代码编写利发工县等。学习完木书后,读者荩就能够进行DSP程序开发了书的内容安排如下第1章介绍出前DSP软件设计的过程和可选择的设计方法,介绍了MATLAB在DSP算法模拟、代码调试中的重要作用,也指出了仅用 MATLAB去辅助DSP设计所存在的困婔第2章介绍当前最为流行的儿和高性能通用DSP心片,包括T公司的TMS320C5000/C6000DSP和AD公司的 SHARC DSP。工要针对程序开发人员和初学者详细介绍这些DSP的片内CPU核、寄存器、存储器组织、中断DMA数据伎送、儿个常用的片內外改以及这些DSP的源代码编写,包括缃指令、CC++环境以CC++程序和汇缃程序接口吋洼意的问题等第3章和第4章介绍两大主流DsP卅发|具,其屮:第3章详细介绍TMS320C5000C6000DS的开发|县CCS;第4立详细介绍 SHARC DSPADSP2106x和ADsP2116x)的开发工只Ⅴ isualDsp++第5章、第6章和第7介绍DSP软件廾发的 MATLAB系统级集成环境其巾:第5章介绍 MATLAB为TMS320系列DSP代调试提供的支持;第6章介绍 MATLAB为TMs320系列DSP的整个代码开发过程提供的攴持,在此环境下可以直接从 Simulink模型生成TMS320C6000DsP的可执行代码第7章介纤如何直接由 Simulink模型牛成 SHARC DSE的执行代码。对于熟悉sP桿序八发的人员,川以根据需要,直接选读本书的第1章第5章、第6章或第7章以及第3章和第4帝屮的 MATLAB应用例子;对丁DSP初学名,则需要先仔细阅读第2章、第3章或第4革,然后再阅读其它各章章內最后都提供了一系列思考题,这些思考题可以助读者加深对本章内爷的理解并儿拓读者的忠路木书第1章出苏涛编写;第2、3草出今真片、苏涛合写;其氽部分出李真艻、黄小宇合与。个书山夵真芳统稿于作者掌择的资料和水平冇限,加之刑间仓促,书屮错决之处在所难免敬请读者批评指正作者2003年7月日录第1章 MATLAB与DSP软件设计方法综述1.1DSP程序廾发过程的演变.DSP拉术综述1.1.2DSP设计过程1.1.3DSP软件设计方法的变苹L14 MATLAB-DSP集成设计坏境下的⊥具包1.2 MATLAB辅助下的DSP软件设计1.2. MATLAB模拟浮点DSP8L.2.2了解定DSP数据格式101.2.3 MATLAB精斫模拟定点DSP运算1.2.4 MATLAB功能模拟定点DSP运算171.2.5常用的 MATLAB上具及函数181.3 MATLAB卜『DSP集成设计扑境思茅题5第2章高性能通冂D$P内部功能结构及游代妈丌发2621TMs320C500DSP的内部功能结构及源代吗开发272.1.1TMs32C5000DSP的功能和结构特271.2CPU核302.1.3存铭器组织521.4中断362.1.5片內外改资源392.1.6TMS320C5000DSP的编指2.1.7TMS320C5000DsP的CC++音编程682.2TMS320C6000DSP的内部功能结构游代妈历22.1TMS320C600DSP的功能和结构特点22.2CPU恢74223存储器组织8022.5片内外设资源22.6TMS320C6000DSP的汇编指令110227TMS320C6000DSP的CC++计言绷程1243ADSP2106xDSP的內部功能结构及源代码开发12723.1ADSP2106xDSP的功能和结构特点127232CPU核128233存储器纠织134234中图13623.5片内外设资源13823.6ADsP2106xDSP的缃指令148237ADSP21x6xDsP的CC++诏编程24ADSP2116xDSP的內部功能结构及源代码发17024. L ADSP216xDSP的功能和结构特点170242CPU核24.3存儲器纠织788244叶豳24.5片内外改资源8524.6ADSP2116xDSP汇编指令194思茅题1p■4鲁第3THS320C500/C60DSP集成廾发坏境 CCS TDE.…2033.1TCCS概3.L.⊥CCS的特点及功能概述2033.1.2CCS支持的训试崙3.13CCS的配置与启动2083.2代码广牛工只3.2.1代妈产生过程发工具2103.2.2缃译、链接( Build选项设置3.2.3代码产牛过积演小例子21533代码调试工具…………21833.1CCS提供的调试1.具2183.32代码调试演小例子24134代码实时性分析调试工具2534.1 DSPBIOS实时撫作系统.252342RTDX实时数拼交换2573.4.3应用 DSP/BIOS调试代码实性演小例思考题268第4章 SHARC DSP集成开发环 Visualis++2704.]Ⅴ isualusP++开发工貝概述4.2Ⅴ isuaIDSP++的代码产2724.3 Visua IDSP++的调试只2784.4 VISualDsP++演示例289思考趣第5章 MATLAB与TICS的接5.1 CCSLink概述2045.1.1 CCSIink的功能及特点5.12 CCSLink的配置2955.1.3 CCSLin的内容5.2 CCSLink连接对象521创建连接刈象297522修改和扶取迕接对象屈性值98523连接对象属1p■4鲁5.3 CCSLink嵌入式刈象30154 CCSLink函数305CCSLink演示例子3275.5 CCS IDE连接对象应用演示…揿入式对象应用演553RTDX连接对象应用演示思考题37第6章巾si皿 ulink模型生成TIC600DSP的‖标代码3386.1 ETTIO6000概述61.1 ETTIC6000的功能和特点3396.1.2 ETTIC6000的置3406.1.3 ETTIC6000的模块库.614应用 ETTIC600开发实时DSP处理的过程34362设置Real- Time Workshop编译链接选项62.1 Target configuration选项rect language compiler(TLC) chugging选项3466.2.3 General code generation iL IX34662.4 General code appearance选项347625TIC600 Largel seleclion选项….34762.6TlC6000 code peneration选项…3486.2.7TIC6000 compiler选项628TC6000 Linker选r3496.29TC6000 runtime选项3496.3在生成的日标可执行代码屮集成DSP/BIOS功能块3506.3.1在生成的可执行代码中集成 DSP/BIOS功能模块3516.32统计代码的执行性能64利用 FDAToDI工具设计;波64.l从 FDATOOL向CCS输出滤波器系6.4.2从 FDATooL向CCS出滤波器系数的操仵步骤35665C6000lib块35765.1c67 I 1 DSK Board support模块庥357652C6701 EVM Board Supporl模圳床653 RTDX Instrumentation模块库3626.54TIC62 DSPLIB模块库…66由 Simulink模型生成实时代码过程6.7TIC6701EVM目标板的应用3656.7.1TC670IEVM板的配置、验诎和测试3666.7.2应用TIC670IEVM板的演示例子68TIC6711DSK‖标板的应用3706.8.1TIC6711DSK板的帖置、验证和测试37068.2应用TIC671DSK板的演小例子思考题第7章宜接巾 Simulink模型生成 SHARC DS)的日标代码7、1 DSPdeveloper概述…3757.2 DSPdeveloper提供的模块3767.3应 DSPdeveloper进行实时代码发的步骤3774应用 DSPdeveloper进行实时代码丌发的演示例了3思k题384参考文献385第1草 MATLAB与DS软件设计方法综述第1章 MATLAB与DSP软件设计方法综述1.1DSP程序开发过程的演变1.1DSP技术述数信号处玊技术在最近20年获得了广泛的应用。数了信号处玊理论和算法是这项技术的一个核心,数宁信号处理器(IP是这项技术的另一个核心,其中可编程的DSP可以将性能很好的信号处埋算法方便地应川到实时信号处理中MATLAB是个强大分析、计算和可视化工具,特別适用于数字信号处理算江的分析和模拟,仗用屮常方便。但由于 MATLAL程厅的执行速度相对于实时位号处理米说,仍显得太慢,巾 MATLAB所依赖的平台是计算机等设备,这类设备的体积、功耗不适合」实时信号处理、设备的结构也无汯满烂实吋信号处理丌要求的宀速数据输入/瑜出,因此MATLAB在数孓信号处圳技术巾,适合于对算法竹模拟及对实测据竹事斤处理。不ⅸ日前有·种新的技术,可以将DSP利 MATLAB两者密团结个起来,允分利用两者的特长有力地促进数了信号处理算法实现我们将冂编稈的D$P称为通用DS,以区別」ASIC、CD/FIGA等用件进行数了信号处理的器件。本所讨论的D$P都烂迸川DSP。就软件编秆而言,DSP与单片机PC机的CPU的编程设计方江有类似之处,但DSP比单片机的运算速度高得多,又LCPU的功枉、改计复杂度低得多。因此,DSP是逃行实吋数子信号处埋的最佳选择为了能低成木、低功耗地进行实信处理,各类DSP都具如下特点:采用了数据总线和程序总线分离的哈佛结构及改进的哈佛结构,比传统处理器的·诺依曼结构有更高的指令批行速度和数据输入/输出速度采用流水技术,即紆条揖令都出片内多个功能单元分别完成取指、译码、取数、执行等多个步骤,从m在不提高时钟频率的条件下城少每条指令的次行时间。只有指令流控制,η以庀成无附加廾销的衎坏功能以及延巡跳犊指令貝有门的指令集和较长的指令字,个指令字同吋控制片内多个功能单元的操作。·阳有独立的算术逻单元、乘法器、移位器,可在单期内宄成多次乘、加、移位·片内有人容量、彩端凵存储器,访问速度很快片內有多条总线可以同吋进行取指令和多个数据存取操作。内容,以指向卜一个要访问的数据地址。特姝寻址方式有循坏寻址、位反序寻的奇存器·用于寻址的地址寄存器能在其亡操作进行的同时,以多科方式凵动絛改地址