1、第一章 概述 第一节 硬件开发过程简介1.1.1 硬件开发的基本过程产品硬件项目的开发,首先是要明确硬件总体需求情况,如CPU处理能力、存储容量及速度,I/O端口的分配、接口要求、电平要求、特殊电路(厚膜等)要求等等。其次,根据需求分析制定硬件总体方案,寻求关键器件及电咱的技术资料、技术途径、技术支持,要比较充分地考虑技术可能性、可靠性以及成本控制,并对开发调试工具提出明确的要求。关键器件索取样品。第三、总体方案确定后,作硬件和单板软件的详细设计,包括绘制硬件原理图、单板软件功能框图及编码、PCB布线,同时完成开发物料清单、新器件编码申请、物料申领。第四,领回PCB板及物料后由焊工焊好12块单
2、板,作单板调试,对原理设计中的各功能进行调测,必要时修改原理图并作记录。第五,软硬件系统联调,一般的单板需硬件人员、单板软件人员的配合,特殊的单板(如主机板)需比较大型软件的开发,参与联调的软件人员更多。一般地,经过单板调试后在原理及PCB布线方面有些调整,需第二次投板。第六,内部验收及转中试,硬件项目完成开发过程。1.1.2 硬件开发的规范化上节硬件开发的基本过程应遵循硬件开发流程规范文件执行,不仅如此,硬件开发涉及到技术的应用、器件的选择等,必须遵照相应的规范化措施才能达到质量保障的要求。这主要表现在,技术的采用要经过总体组的评审,器件和厂家的选择要参照物料认证部的相关文件,开发过程完成相
3、应的规定文档,另外,常用的硬件电路(如ID.WDT)要采用通用的标准设计。第二节 硬件工程师职责与基本技能1.2.1 硬件工程师职责一个技术领先、运行可靠的硬件平台是公司产品质量的基础,硬件工程师职责神圣,责任重大。1、硬件工程师应勇于尝试新的先进技术之应用,在产品硬件设计中大胆创新。2、坚持采用开放式的硬件架构,把握硬件技术的主流和未来发展,在设计中考虑将来的技术升级。3、充分利用公司现有的成熟技术,保持产品技术上的继承性。4、在设计中考虑成本,控制产品的性能价格比达至最优。5、技术开放,资源共享,促进公司整体的技术提升。1.2.1 硬件工程师基本素质与技术硬件工程师应掌握如下基本技能:第一
4、、由需求分析至总体方案、详细设计的设计创造能力;第二、熟练运用设计工具,设计原理图、EPLD、FPGA调试程序的能力;第三、运用仿真设备、示波器、逻辑分析仪调测硬件的能力;第四、掌握常用的标准电路的设计能力,如ID电路、WDT电路、型滤波电路、高速信号传输线的匹配电路等;第五、故障定位、解决问题的能力;第六、文档的写作技能;第七、接触供应商、保守公司机密的技能。第二章 硬件开发规范化管理第一节 硬件开发流程3.1.1 硬件开发流程文件介绍在公司的规范化管理中,硬件开发的规范化是一项重要内容。硬件开发规范化管理是在公司的硬件开发流程及相关的硬件开发文档规范、PCB投板流程等文件中规划的。硬件开发
5、流程是指导硬件工程师按规范化方式进行开发的准则,规范了硬件开发的全过程。硬件开发流程制定的目的是规范硬件开发过程控制,硬件开发质量,确保硬件开发能按预定目的完成。公司硬件开发流程的文件编号为4/QM-RSD009,生效时间为1997年月21日。硬件开发流程不但规范化了硬件开发的全过程,同时也从总体上,规定了硬件开发所应完成的任务。做为一名硬件工程师深刻领会硬件开发流程中各项内容,在日常工作中自觉按流程办事,是非常重要的,否则若大一个公司就会走向混乱。所有硬件工程师应把学流程、按流程办事、发展完善流程、监督流程的执行作为自己的一项职责,为公司的管理规范化做出的贡献。3.2.2 硬件开发流程详解硬
6、件开发流程对硬件开发的全过程进行了科学分解,规范了硬件开发的五大任务。l 硬件需求分析l 硬件系统设计l 硬件开发及过程控制l 系统联调l 文档归档及验收申请。硬件开发真正起始应在立项后,即接到立项任务书后,但在实际工作中,许多项目在立项前已做了大量硬件设计工作。立项完成后,项目组就已有了产品规格说明书,系统需求说明书及项目总体方案书,这些文件都已进行过评审。项目组接到任务后,首先要做的硬件开发工作就是要进行硬件需求分析,撰写硬件需求规格说明书。硬件需求分析在整个产品开发过程中是非常重要的一环,硬件工程师更应对这一项内容加以重视。一项产品的性能往往是由软件和硬件共同完成的,哪些是由硬件完成,哪
7、些是由软件完成,项目组必须在需求时加以细致考虑。硬件需求分析还可以明确硬件开发任务。并从总体上论证现在的硬件水平,包括公司的硬件技术水平是否能满足需求。硬件需求分析主要有下列内容。l 系统工程组网及使用说明l 基本配置及其互连方法l 运行环境l 硬件整体系统的基本功能和主要性能指标l 硬件分系统的基本功能和主要功能指标l 功能模块的划分l 关键技术的攻关l 外购硬件的名称型号、生产单位、主要技术指标l 主要仪器设备l 内部合作,对外合作,国内外同类产品硬件技术介绍l 可靠性、稳定性、电磁兼容讨论l 电源、工艺结构设计l 硬件测试方案从上可见,硬件开发总体方案,把整个系统进一步具体化。硬件开发总
8、体设计是最重要的环节之一。总体设计不好,可能出现致命的问题,造成的损失有许多是无法挽回的。另外,总体方案设计对各个单板的任务以及相关的关系进一步明确,单板的设计要以总体设计方案为依据。而产品的好坏特别是系统的设计合理性、科学性、可靠性、稳定性与总体设计关系密切。硬件需求分析和硬件总体设计完成后,总体办和管理办要对其进行评审。一个好的产品,特别是大型复杂产品,总体方案进行反复论证是不可缺少的。只有经过多次反复论证的方案,才可能成为好方案。进行完硬件需求分析后,撰写的硬件需求分析书,不但给出项目硬件开发总的任务框架,也引导项目组对开发任务有更深入的和具体的分析,更好地来制定开发计划。硬件需求分析完
9、成后,项目组即可进行硬件总体设计,并撰写硬件总体方案书。硬件总体设计的主要任务就是从总体上进一步划分各单板的功能以及硬件的总体结构描述,规定各单板间的接口及有关的技术指标。硬件总体设计主要有下列内容:l 系统功能及功能指标l 系统总体结构图及功能划分l 单板命名l 系统逻辑框图l 组成系统各功能块的逻辑框图,电路结构图及单板组成l 单板逻辑框图和电路结构图l 关键技术讨论l 关键器件总体审查包括两部分,一是对有关文档的格式,内容的科学性,描述的准确性以及详简情况进行审查。再就是对总体设计中技术合理性、可行性等进行审查。如果评审不能通过,项目组必须对自己的方案重新进行修订。硬件总体设计方案通过后
10、,即可着手关键器件的申购,主要工作由项目组来完成,计划处总体办进行把关。关键元器件往往是一个项目能否顺利实施的重要目标。关键器件落实后,即要进行结构电源设计、单板总体设计。结构电源设计由结构室、MBC等单位协作完成,项目组必须准确地把自己的需求写成任务书,经批准后送达相关单位。单板总体设计需要项目与CAD配合完成。单板总体设计过程中,对电路板的布局、走线的速率、线间干扰以及EMI等的设计应与CAD室合作。CAD室可利用相应分析软件进行辅助分析。单板总体设计完成后,出单板总体设计方案书。总体设计主要包括下列内容:l 单板在整机中的的位置:单板功能描述l 单板尺寸l 单板逻辑图及各功能模块说明l
11、单板软件功能描述l 单板软件功能模块划分l 接口定义及与相关板的关系l 重要性能指标、功耗及采用标准l 开发用仪器仪表等每个单板都要有总体设计方案,且要经过总体办和管理办的联系评审。否则要重新设计。只有单板总体方案通过后,才可以进行单板详细设计。单板详细设计包括两大部分:l 单板软件详细设计l 单板硬件详细设计单板软、硬件详细设计,要遵守公司的硬件设计技术规范,必须对物料选用,以及成本控制等上加以注意。本书其他章节的大部分内容都是与该部分有关的,希望大家在工作中不断应用,不断充实和修正,使本书内容更加丰富和实用。不同的单板,硬件详细设计差别很大。但应包括下列部分: 单板整体功能的准确描述和模块
12、的精心划分。 接口的详细设计。 关键元器件的功能描述及评审,元器件的选择。 符合规范的原理图及PCB图。 对PCB板的测试及调试计划。 单板详细设计要撰写单板详细设计报告。详细设计报告必须经过审核通过。单板软件的详细设计报告由管理办组织审查,而单板硬件的详细设计报告,则要由总体办、管理办、CAD室联合进行审查,如果审查通过,方可进行PCB板设计,如果通不过,则返回硬件需求分析处,重新进行整个过程。这样做的目的在于让项目组重新审查一下,某个单板详细设计通不过,是否会引起项目整体设计的改动。如单板详细设计报告通过,项目组一边要与计划处配合准备单板物料申购,一方面进行PCB板设计。PCB板设计需要项
13、目组与CAD室配合进行,PCB原理图是由项目组完成的,而PCB画板和投板的管理工作都由CAD室完成。PCB投板有专门的PCB样板流程。PCB板设计完成后,就要进行单板硬件过程调试,调试过程中要注意多记录、总结,勤于整理,写出单板硬件过程调试文档。当单板调试完成,项目组要把单板放到相应环境进行单板硬件测试,并撰写硬件测试文档。如果PCB测试不通过,要重新投板,则要由项目组、管理办、总体办、CAD室联合决定。在结构电源,单板软硬件都已完成开发后,就可以进行联调,撰写系统联调报告。联调是整机性能提高,稳定的重要环节,认真周到的联调可以发现各单板以及整体设计的不足,也是验证设计目的是否达到的唯一方法。
14、因此,联调必须预先撰写联调计划,并对整个联调过程进行详细记录。只有对各种可能的环节验证到才能保证机器走向市场后工作的可靠性和稳定性。联调后,必须经总体办和管理办,对联调结果进行评审,看是不是符合设计要求。如果不符合设计要求将要返回去进行优化设计。如果联调通过,项目要进行文件归档,把应该归档的文件准备好,经总体办、管理办评审,如果通过,才可进行验收。 总之,硬件开发流程是硬件工程师规范日常开发工作的重要依据,全体硬件工程师必须认真学习。第二节 硬件开发文档规范2.2.1 硬件开发文档规范文件介绍 为规范硬件开发过程中文档的编写,明确文档的格式和内容,规定硬件开发过程中所需文档清单,与硬件开发流程
15、对应制定了硬件开发文档编制规范。开发人员在写文档时往往会漏掉一些该写的内容,编制规范在开发人员写文档时也有一定的提示作用。硬件开发文档编制规范适用于中央研究部立项项目硬件系统的开发阶段及测试阶段的文档编制。规范中共列出以下文档的规范:l 硬件需求说明书l 硬件总体设计报告l 单板总体设计方案l 单板硬件详细设计l 单板软件详细设计l 单板硬件过程调试文档l 单板软件过程调试文档l 单板系统联调报告l 单板硬件测试文档l 单板软件归档详细文档l 单板软件归档详细文档l 硬件总体方案归档详细文档l 硬件单板总体方案归档详细文档l 硬件信息库 这些规范的具体内容可在HUAWEI服务器中的“中研部IS
16、O9000资料库”中找到,对应每个文档规范都有相应的模板可供开发人员在写文档时“填空”使用。模块在rndI服务器中的文档管理数据库中。&2.2.2 硬件开发文档编制规范详解 1、硬件需求说明书 硬件需求说明书是描写硬件开发目标,基本功能、基本配置,主要性能指标、 运行环境,约束条件以及开发经费和进度等要求,它的要求依据是产品规格说明书和系统需求说明书。它是硬件总体设计和制订硬件开发计划的依据, 具体编写的内容有:系统工程组网及使用说明、硬件整体系统的基本功能和主要性能指标、硬件分系统的基本功能和主要性能指标以及功能模块的划分等。 2、硬件总体设计报告 硬件总体设计报告是根据需求说明书的要求进行
17、总体设计后出的报告,它是硬件详细设计的依据。编写硬件总体设计报告应包含以下内容: 系统总体结构及功能划分,系统逻辑框图、组成系统各功能模块的逻辑框图,电路结构图及单板组成,单板逻辑框图和电路结构图,以及可靠性、安全性、电磁兼容性讨论和硬件测试方案等。 3、单板总体设计方案 在单板的总体设计方案定下来之后应出这份文档,单板总体设计方案应包含单板版本号,单板在整机中的位置、开发目的及主要功能,单板功能描述、单板逻辑框图及各功能模块说明,单板软件功能描述及功能模块划分、接口简单定义与相关板的关系,主要性能指标、功耗和采用标准。 4、单板硬件详细设计 在单板硬件进入到详细设计阶段,应提交单板硬件详细设
18、计报告。在单板硬件详细设计中应着重体现:单板逻辑框图及各功能模块详细说明,各功能模块实现方式、地址分配、控制方式、接口方式、存贮器空间、中断方式、接口管脚信号详细定义、时序说明、性能指标、指示灯说明、外接线定义、可编程器件图、功能模块说明、原理图、详细物料清单以及单板测试、调试计划。有时候一块单板的硬件和软件分别由两个开发人员开发,因此这时候单板硬件详细设计便为软件设计者提供了一个详细的指导,因此单板硬件详细设计报告至关重要。尤其是地址分配、控制方式、接口方式、中断方式是编制单板软件的基础,一定要详细写出。 5、单板软件详细设计 在单板软件设计完成后应相应完成单板软件详细设计报告,在报告中应列
19、出完成单板软件的编程语言,编译器的调试环境,硬件描述与功能要求及数据结构等。要特别强调的是:要详细列出详细的设计细节,其中包括中断、主程序、子程序的功能、入口参数、出口参数、局部变量、函数调用和流程图。在有关通讯协议的描述中,应说明物理层,链路层通讯协议和高层通讯协议由哪些文档定义。 6、单板硬件过程调试文档 开发过程中,每次所投PCB板,工程师应提交一份过程文档,以便管理阶层了解进度,进行考评,另外也给其他相关工程师留下一份有参考价值的技术文档。每次所投PCB板时应制作此文档。这份文档应包括以下内容:单板硬件功能模块划分,单板硬件各模块调试进度,调试中出现的问题及解决方法,原始数据记录、系统
20、方案修改说明、单板方案修改说明、器件改换说明、原理图、PCB图修改说明、可编程器件修改说明、调试工作阶段总结、调试进展说明、下阶段调试计划以及测试方案的修改。 7、单板软件过程调试文档 每月收集一次单板软件过程调试文档,或调试完毕(指不满一月)收集,尽可能清楚,完整列出软件调试修改过程。单板软件过程调试文档应当包括以下内容:单板软件功能模块划分及各功能模块调试进度、单板软件调试出现问题及解决、下阶段的调试计划、测试方案修改。 8、单板系统联调报告 在项目进入单板系统联调阶段,应出单板系统联调报告。单板系统联调报告包括这些内容:系统功能模块划分、系统功能模块调试进展、系统接口信号的测试原始记录及
21、分析、系统联调中出现问题及解决、调试技巧集锦、整机性能评估等。 9、单板硬件测试文档 在单板调试完之后,申请内部验收之前,应先进行自测以确保每个功能都能实现,每项指标都能满足。自测完毕应出单板硬件测试文档,单板硬件测试文档包括以下内容:单板功能模块划分、各功能模块设计输入输出信号及性能参数、各功能模块测试点确定、各测试参考点实测原始记录及分析、板内高速信号线测试原始记录及分析、系统I/O口信号线测试原始记录及分析,整板性能测试结果分析。 10、硬件信息库 为了共享技术资料,我们希望建立一个共享资料库,每一块单板都希望将的最有价值最有特色的资料归入此库。硬件信息库包括以下内容:典型应用电路、特色
22、电路、特色芯片技术介绍、特色芯片的使用说明、驱动程序的流程图、源程序、相关硬件电路说明、PCB布板注意事项、单板调试中出现的典型及解决、软硬件设计及调试技巧。第三节 与硬件开发相关的流程文件介绍与硬件开发相关的流程主要有下列几个:项目立项流程项目实施管理流程软件开发流程系统测试工作流程中试接口流程内部接收流程3.3.1 项目立项流程:是为了加强立项管理及立项的科学性而制定的。其中包括立项的论证、审核分析,以期做到合理进行开发,合理进行资源分配,并对该立项前的预研过程进行规范和管理。立项时,对硬件的开发方案的审查是重要内容。3.3.2 项目实施管理流程:主要定义和说明项目在立项后进行项目系统分析
23、和总体设计以及软硬件开发和内部验收等的过程和接口,并指出了开发过程中需形成的各种文档。该流程包含着硬件开关、软件开发、结构和电源开发、物料申购并各分流程。3.3.3 软件开发流程:与硬件开发流程相对应的是软件开发流程,软件开发流程是对大型系统软件开发规范化管理文件,流程目的在对软件开发实施有效的计划和管理,从而进一步提高软件开发的工程化、系统化水平,提高XXXX公司软件产品质量和文档管理水平,以保证软件开发的规范性和继承性。软件开发与硬件结构密切联系在一起的。一个系统软件和硬件是相互关联着的。3.3.4 系统测试工作流程:该流程规定了在开发过程中系统测试过程,描述了系统测试所要执行的功能,输入
24、、输出的文件以及有关的检查评审点。它规范了系统测试工作的行为,以提高系统测试的可控性,从而为系统质量保证提供一个重要手段。项目立项完成,成立项目组的同时要成立对应的测试项目组。在整个开发过程中,测试可分为三个阶段,单元测试、集成测试、系统测试。测试的主要对象为软件系统。3.3.5 中试接口流程中试涉及到中央研究部与中试部开发全过程。中研部在项目立项审核或项目立项后以书面文件通知中试部,中试部以此来确定是否参与该项目的测试及中试准备的相关人选,并在方案评审阶段参与进来对产品的工艺、结构、兼容性及可生产性等问题进行评审,在产品开发的后期,项目组将中试的相关资料备齐,提交新产品准备中试联络单,由业务
25、部、总体办、中研计划处审核后,提交中试部进行中试准备,在项目内部验收后转中试,在中试过程中出现的中试问题,由中试部书面通知反馈给项目组,进行设计调整直至中试通过。由上可见中试将在产品设计到验收后整个过程都将参与,在硬件开发上,也有许多方面要提早与中试进行联系。甚至中试部直接参与有关的硬件开发和测试工程。3.3.6 内部验收流程制定的目的是加强内部验收的规范化管理,加强设计验证的控制,确保产品开发尽快进入中试和生产并顺利推向市场。项目完成开发工作和文档及相关技术资料后,首先准备测试环境,进行自测,并向总体办递交系统测试报告及项目验收申请表,总体办审核同意项目验收申请后,要求项目组确定测试项目,并
26、编写测试项目手册。测试项目手册要通过总体办组织的评审,然后才组成专家进行验收。由上可见,硬件开发过程中,必须提前准备好文档及各种技术资料,同时在产品设计时就必须考虑到测试。第十节 DSP技术3.10.1 DSP概述1、基本概念通常DSP(Digital Signal Processing)是指数字信号处理。DSP芯片是专用的数字信号处理器(Digital Signal Processor),它采用哈佛结数、流水线作业方式的并行处理技术,有专用的指令系统,尤其适用于数字信号的算法实现,编码变换等处理。2、DSP的发展历史和现状(1)DSP发展的历史背景现代信号处理起源于1718世纪的数学,并以1
27、807年12月21日法国工程师J、B、Fourier提出FT变换为标志。我们现在讨论的数字信号处理,是随着数字电子计算机的发展而发展起来。在数字信号处理的初期(本世纪5060年代),人们只是在通用的数字计算机上进行算法的研究和处理系统的模拟与仿真,1965年库利图基(Cooley Tukey)提出快速付氏变换FFT是数字信号处理发展史上的一个里程碑。同时随着FFT及其它算法的提出,也促进了专用数字处理硬件的发展,并最终导致高速高位DSP的出现。一般认为:70年代后期推出的Iatel 2920是第一块脱离了通用型微处理器结构的DSP芯片,1980年前后推出的PD7720具有专门的硬件乘法器,从而
28、被认为是第一块单片DSP器件,1983年Ti推出的TMS系列,标准着实时数字信号处理领域的重大突破。(2)DSP主要机种与生产商DSP主要分浮点与定点运算两类定点运算有Anolog Derives ADSP2100系列,AT&T DSP 16系列 Motorola DSP5600系列、NEC u PD77220、TMS320C2x/c5x/c54x系列等;浮点运算有Anolog Derives ADSP 2120、AT&T DSP32c/3210、Motorola DSP 96002、TMS3200 c3x/c4x等。目前DSP主要生产商有:Anolog Devices公司,其主要产品ADSP
29、2100定点系列和ADSP21020定点系列;Motorola公司其主要产品:Motorola DSP 5600定点系列和Motorola 9600浮点系列;Texas Fustruments公司,其主要产品:TMS320c2x/c5x/c54x定点和TMS3x/4x系列浮点。并且,Ti公司宣传即将推出TMS320C6X/C62XX系列产品,速度1000MP1S以上。Anolog Devices公司也将推出高性能的SHARC产品。3.10.2 DSP的特点与应用1、DSP的特点(1)DSP总线结构都采用哈佛结构或改进的哈佛结构。通用的微处理采用冯.诺依曼结构,即程序指令和数据共用一个存储空间及
30、单一的地址和数据总线。为进一步提高运算速度,以满足实时信号处理的要求,当前的DSP芯片采用哈佛结构。所谓哈佛结构,是将指令和数据的存储空间分开。这样使得处理指令和处理数据可以同时进行,从而大大提高处理效率。(2)采用流水线技术DSP大多采用了流水线技术。计算机在进行一条指令时,要经过取指、译码、访问数据、执行等几个步骤,需若干个指令周期才能完成。流水线技术将各指令和执行时间可以重叠起来。即第一条指令取指后,在进行译码的同时,可进行第二条指令的取指;第一条指令访问数据时,第二条指令译码。这样尽管每条指令的执行时间仍然是几个指令周期,但由于用了流水线的作业方式,使得总体处理速度大大提高。而DSP所
31、采用的指令与数据存储空间分开的哈佛结构,为实现流水线作业方式提供了方便。(3)具有硬件乘法器和MAC单元在数字信号处理算法中,乘法和累加是最基本和大量的运算,例如在卷积运算、数字滤波、快速付里叶变换、相关计算、矩阵运算等算法中大多都有乘加(乘法和累加)运算。通用的乘法运算是采用软件实现的,往往一次乘法运算需要若干个机器周期才能完成。DSP中都设置了硬件乘法器和MAC乘加(乘法并累加)一类指令,取两个操作数到乘法器中作乘法,并将乘积加到累加器中,这些操作在DSP芯片中往往可以在单个在指令周期内完成,使得DSP作乘和累加这种数字信号处理基本运算的速度大为提高。(4)具有循环寻址(circular
32、addressing)及位倒序(bit reverse)寻址功能。为满足FFT、卷积等数字信号处理的特殊要求,当前的DSP大多在指令系统中设置了循环寻址及位倒序指令及其它特殊指令、体现在作这些运算时寻址、排序及计算机速度大大提高。另外,DSP系统设计和软件开发,往往需要相当规模的仿真调试系统,为方便用户的设计与调试,许多DSP在片上设置了仿真模块或仿真调试接口、如Motorala在DSP片是设置了一个QnCE (On-Chip Emalation)功能块、通过行脚、使用户可以检查片内存储器、寄存器及外设,用单步运行,设置断点、跟踪等方式控制与调试程序。Ti则在DSP片上设置了JIAG(Join
33、t Test Aotion Group)标准测试接口及相应的控制器。在PC机上插入一块调试插板,接通JIAG接口,就可以在PC机上运行一个软件去控制它。DSP有自己的汇编语言指令系统,为适用于高级语言编程,各公司也陆续推出适用于DSP的高级语言编译器,主要是C语言编译器,也有Ada、Pascal等编译器,程序员可用高级语言编程,通过编译器,将程序汇编、连接成DSP目标代码。2、DSP应用领域随着DSP性能的改善和成本的降低,DSP在通用数字信号算法处理的基础上,其应用几乎遍及电子学每个领域。(1)通信:网络通信,高速调制解调器,编/解码器,自适应均衡器,移动通讯,语音邮箱,回音消除,噪声对消,
34、会议电视,扩频通信等。(2)声音/语音处理、图像/图形处理:语言识别,语言合成、语音编码、图形变换、机器人视觉、模式识别、电子地图等。(3)仪器/仪表:谱分析、函数发生器、波形发生器、数据采集、状态分析、石油/地质勘探、VR航空(Visual Reality)试验,医学仪器等。(4)计算机:阵列处理器、图形加速器、神经网络、多媒体等。(5)消费电子:数字电视、高清晰度电视、VR游戏、汽车工业等。(6)军事:雷达与声纳信号处理、导航、制导、全球定位、搜索跟踪、VR式器试验等。如下图: (下面以TMS320C54X系列为例介绍DSP的硬件结构及软件编程方法)3.10.3 TMS320 C54X D
35、SP硬件结构1、TMS 320C54X内部组成单元与总线结构TMS320C54XDSP的结构简图如图1所示:图1 TMS320C54X内部组件与总线连接可见DSP内部的程序总线P、数据总线D、控制总线C和数据写存储器总线E都是独立分开的,以便于组件单元的并行处理和数据传送。TMS320C54X C54X的结构部件其实可看作是围绕挂换在8束16 bit的总线上的。(见图2 TMS320 C54X内部硬件结构框图),其中:(1)程序总线PB传送指令码和程序存储器的直接操作码。(2)三束数据总线(CB、DB和EB)相互连接起各个单元,如CPU、数据地址产生逻辑(DAGEN)、程序地址产生逻辑(PAG
36、EN)及其它芯片组件和数据存储器(其中CB、DB传送从数据存储器读出的数据,EB传送向存储器写的数据)。(3)四束地址总线(PAB、CAB、DAB和EAB)传送指令执行期间所需的地址数据。2、内部存储器结构54X的存储器由程序空间、数据空间和输入/输出空间三个分开的空间组成,包括随机存取存储器RAM和只读存储器ROM。RAM可当作DARAM(dnal-access RAM)和SARAM(Single-access RAM)54X系列中各种芯片的ROM、DARAM和SARAM空间大小有所不同。(1)片上ROM(On-Chip ROM)它是程序存储器的一部分,常用以接受boot Loading。(
37、2)DARAM(On-Dhip Dual-Access RAM)。它由若干块组成,对DARAM中的数据,CPU在一个机器周期内可对它进行两次操作(读或写),DARAM总是映射在数据空间,其主要目的是存储数值,它也可映射于程序存储空间用以存储程序代码。(3)SARAM(On-Chip Single-Access RAM)。它由若干块组成,每块在一个机器周期内,可被读或写一次,它一般映射在数据空间,主要是存储数值,它也可映射于程序空间存储程序代码。(4)片上RAM保护。当设计片上RAM保护时,外部指令就不能对其进行读写。3、CPU(Central Processing Vnit)TMS 320 C
38、54X CPU包括:a) 40-bit的算术逻辑单元(ALU)。可实现2个40bit操作数的算术逻辑运算,也可进行布尔运算。b) 2个40-bit的累加器(A、B)。可存储ALU或乘/加(Multiplier/adder)运算的输出,也可提供ALU的二次输入。累加器A还可作乘/加运算的输入,每个累加器都可划分成以下三部分:i) 保留位(bit 39-32);ii) 高字节(bit31-16);iii) 低字节(bit15-0)。c) 桶式移位器(Barrel shiffer)。桶式移位器有一个来自40bit的累加器(A或B)或数据存储器(通过CB或DB)的输出,其40bit的输入,送到ALU或
39、到数据存储器(通过EB)中。它可对输入产生031bit的左移和016bit的右移。并由指令进行控制。d) 1717bit的乘法器。它实现两个17bit操作数的乘运算,并与40bit的加法器等共同实现在一个指令周期内完成乘/加运算;和AKU共同在一个指令周期内完成并行的乘/累加(MAC)运算。e) 40-bit加法器(Adder(40)),配合Multiplier执行乘/加运算。f) 比较、选择和存储单元(CSSU),实现累加器高、低字节中数据的大小比较测试或控制标志位TC、状态寄存器ST0和发送寄存器(TRN)以保持发送状态等。g)数据地址产生单元(DAGEN)h) 程序地址产生单元(PAGE
40、N)4、DSP外部信号引脚DSP处理信号引脚包括:(C548)(1)外部总线接口包括:(External Bus Iaterface)并行地址总线口(23-bit)并行数据总线口(16-bit)存储器选择MSTRB_、程序空间选择PS_、数据空间选择DS、I/O选择IOSTRB_、IS_读/写信号R/W、READY、信号保持HOLD_、指令获得IAQ_等。(2)控制信号(Control Signals)复位信号RS;外部中断输入INTX_及中断响应IACK_等;分支控制BIO-;外部标志输出XF;工作方式选择MP/MC等。(3)晶振/时钟信号(Oscillator/Timer Signals)
41、晶振输出插入 X1、X2/CLKIN时钟信号:包括CLKOUT、CKKMDX、TOUT等。(4)缓冲串行口信号(Buffered Serial Ports Signals)接收时钟:BCLKRO、BCLKR1;发送时钟:BCLKXO、BCLKX1;串行数据接收:BDR0、BDR1;串行数据发送BDX0、DBX1;帧同步接收:BFSR0、BFSR1;帧同步发送BFSX0、BFSX1。(5)TDM串口信号TDM 接收时钟TCLKR;TDM发送时钟TCLKX串行数据接收TDR;串行数据发送TDX接收帧同步/地址 TFSR/TADD;帧同步发送TFSX/TFRM(6)仿真信号(Emulation)JT
42、AG测试时钟TCKJIAG数据输入TDIJIAG口模式选择TMSJIAG数据输出TD0JIAG口复位TRST_仿真引脚 EMU0、EMU1/OFF(7)Host接口Host Port Interface并行数据口 HD07控制输入 HCNTL0、HCNTL1字节识别输入 HBIL片选 1CS数据输入选择 HDS1_HDS1;地址选通:HAS;读/写信号:HRW、HRDY串断输出:HINT;HPI模式选择 HPIENA/VDD如图3 “C54X信号引脚”和”C548信号引脚”。5、DSP硬件设计的几个主要问题:(1)总线控制方案(2)boot loading(3)Hardware wait_st
43、ates(4)I/O与中断设计(5)Memory Map(6)串口工作方式与时序设计(7)TAP接口3.10.4 TMS320C54X的软件编程1、DSP编程工具与流程DSP的设计目标是进行数字信号处理,在硬件设计的基础上选择好一定的优化算法并通过编程在DSP芯片上实现是DSP技术的核心内容。对DSP进行编程,目前最有效的语言工具仍是DSP汇编语言,同时为方便用户用高级语言进行编程开发,也相继推出了C语言编译器,ADa、Pascal等编译器。图4是TMS C320C54X软件开发流程,图中有阴影的部分是通常开发的必需步骤,其它可据需要选作,最后产生COFF(Common Object File
44、 Format)文件。2、DSP汇编语言编程(1)DSP汇编过程有以下几个步骤a) 源程序的编写。将算法的详细实现过程用DSP指令系统的语句描述出来,其中源程序一般包括:data、bss和text三个基本组成内容。下面是一段程序例子,图5是COFF文件格式和object file在存储器中的分配情况。 2* 3* assemble an initialized table into data.* 4* 5 0000data 6 0000 0011coeff word 011h,022h,033h 0001 0022 0002 0033 7* 8* Reserve space in bss for a variable * 9* 10 0000 bss buffer,10 11* 12* Still in .data. 13* 14 0003 0123ptr word 0123h 15* 16* Assemble code into the text section * 17* 18 0000 text 19 0000 100fadd: LD 0Fh,A