DSP高手经验指导_第1页
DSP高手经验指导_第2页
DSP高手经验指导_第3页
DSP高手经验指导_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、几个dsp高于的经验介绍(转贴)%1. 我是已经从事dsp开发有儿年了,看到许多朋友对dsp的开发非常感兴 取,我结合这几年对dsp的开发写一写自己的感受,一家之言,欢迎指教。我上 研究生的第一天起根据老板的安排就开始接触dsp,那时dsp开发在国内高校刚 刚开始,一台dsp开发器接近一万还是isa总线的,我从206开始240、2407a 都作过产品,对5402、2812、5471在产品方案规划制定和论证时也研究过。由 于方向所限对6x、8x系列没有接触。我发现在国内无论在公司或高校许多地方为了加快开发周期往往把一个产 品开发分为硬件和软件两个相对独立部分,由不同的人完成。这在具有一定技术 和

2、管理基础的公司,由总设计师统一规划协调,分任务并行完成的情况下是可行 的,也是符合现代产品开发规律的。但是在高校人员的流动很大,研究生的有效 科研吋间很短、基础差(许多研究生起步吋对电熔、电阻、三极管的分类和选型 都很困难,我也是这样过來的)更不用说系统规划设计了,况且许多老板自己也 不太懂,师兄有门己的任务,他们搞明口时也毕业了。在许多高校做dsp就是找 一个算法加到自己的主程序里,在板子上跑一下,基本达到效果就可以了,至于 可靠性是次要的,产业化无从谈起,这已经算不错的了。其实我觉得一个系统的 完成,系统的规划是最重要的,在规划吋对硬件设计的知识和认识是决定性的, 它可以让你知道什么是可行

3、的,什么是不可行的,当你同吋具冇软件设计能力时, 就可以合理的分配系统功能,完成使用viidl进行系统行为描述一一系统功能划 分 系统子结构设计这样的自顶向下的设计规划流程,成为系统设计专家、 项目经理,否则只是硕件工程师、软件工程师。无论作51、196、还是dsp都是 这样。f面分别谈谈我对硬件和软件设计的感受硕件设计是系统设计的关键,国内和国外产品的差距往往是硬件设计水平高 低决定的,任何软件设计思想没有可靠的物理载体都是空中楼阁,纸上谈兵。 学校的研究生很多都想避开硬件设计,对于一个全新的设计与其说不屑不如说 不敢。试想一下烧几个片子的压力要比跑飞几段程序的压力大的多,尤其是功 率器件,

4、一旦烧掉,弄不好火光冲天,人的门信都没了。况且改一次板周期长, 经费高,述不知行不行。其实在国外实力一般的公司也是尽量避免硬件的更新 设计,产品一旦定型往往通过软件升级,这是公司的发展策略,对个人而言物 以希为贵,培养一个硬件设计师往往要比软件设计师吋间长花费多。在设计dsp 硬件时,开始设计最小系统板,系统按功能分板设计调试,注意分板屯路的稳 定性可能不如整板电路,耍多加入抗干扰环节,分板间的引线包括电源线地线 要短,尽量在10公分以内,实在不行加入光耦隔离、采用隔离电源。切记电源 线、地线的干扰远比信号干扰对系统的危害大得多,乂常常被人忽视。电路板 工作正常的先决条件就是电源正常!当分板电

5、路正常后再更居情况设计整板电 路。在调试吋发现的问题一定要找到原因解决,即使是飞线,割线,不要寄希 望于下一板改了再看,除非原理性错误。每一个功能环节多准备几套方案。dsp 的选型要根据系统功能而定,2000是一个功能比较全的控制器,但运算性能相 对低,但目前大部分控制类、家电类包括中低层次的工业总线通信产品足够了, 281x不错但太贵,而且开发技术不成熟。54xx更像一个协处理器,其实高端产 品5471就很好,功能完*,但bga封装对产品的开发有一定难度。如杲没有从 事过嵌入式系统开发的朋友其实可以从51看起,许多思想是共通的,51很经 典没有哪一款微处理器像51那样使用持久和普遍。在硬件设

6、计时更多的粘力放 在外围电路设计上,外围电路设计的灵活性要比dsp木身高得多,难度大得多。 建议多考虑cpld。软件设计上,着眼点不要仅局限丁某种算法和控制策略,而是软件系统框 架的制定,即操作系统的选择和实现,算法和控制策略只是其屮技巧性很强的 子程序和子程序间参数相互关系,建议设计软件时能貝有操作系统、数据结构 和编译原理方面的知识,特别是使用c。对dsp的内部硬件结构定要掌握, 特别是中断结构和流程、流水线操作,不然飞都不知道怎么飞的。在语言选择 上我当时是这么给口己规定的先编20个左右的汇编程序,每个代码量超过4k, 使用语句范围覆盖全部语句的60%70%,在此基础上使用co现在发现用

7、c 构建程序的主体框架(操作系统)比较快而其不容易出错,(我现在正在用asm 根据uc0sii的思想重写自己的操作系统)但对系统实吋性影响比较大的运算算 法一般采用matlabcasm的办法仿真调试优化,这里的优化不单单是利 用优化器优化,而是根据数据的特点改变运算方法,以除法为例c里的/号其 实掩盖了许多技巧,当除数为常数时就可以放大倒数移位相乘移位的办法进行, 精度高速度快。这些办法只有掌握了 asm语言并用asm语言思考才会熟练应用。 另外我想告诉一些作算法特别是控制算法的朋友,千万不要随意评判-个算法 的优劣,在程序中程序和代码优化的程度往往影响了控制效果好坏,而不是算 法本身的思想。

8、其实在实际中往往pid甚至pi、pd就够了,神经元、模糊、小 波适用于研究和写论文,模糊在实际中用的多一点,主要是小日本用的比较成 熟,我再恨日本人,这点也服气,小日本就是滑,许多物理现象搞不透,就用 这法,还管用,题外话。最后我想说的是,当我们面对市场要求时,产品往往考虑的是可靠性、性 能、价格而不是你用的什么芯片,在满足性能的基础上结构越简单就越可靠, 芯片越通用价格就越低,能用51就不用196,能用2407就不用2812,除非把 芯片本身作买点利用高成本赢取高利润。无论2000还是5000、6000系列都有 市场前景,关键是要做深做透。获取知识的方法、处理项口的能力是相通的, 具休的说就

9、是不要把ei光盯在做驶件还是做软件匕 用asm还是c,要勤动于 打好基础,提高口己对系统总体设计的能力,从系统的眼光看问题。为什么都 是做dsp的冇的毕业拿3000,冇的5000、8000,除了运气和关系外,匣要的是 你对事物的认识深度和高度。我一直都记住这旬话:有前途的人做什么都有前 途,没前途的人做什么都没前途。%1. 与其说是钻在里面,毕业设计是搞240,在老师的压力做出了一点东西, 这期间主要是对dsp的各种基础知识的熟悉与理解,对dsp的真正深入是在公司 工作以后。当初进公司,因为正有一个项目需要用5410要我接手。说实话,在 学校期间我5000的书都没有看过一眼,可没办法,只能靠自

10、己了。不过好的是 我2000dsp的基础很好。接过项口后,我第一个星期就全部看的是5000的指令, dsp的结构倒没怎么看,因为项目硬件已成型,主要是算法。这样,花了一个星 期熟悉指令与项目相关的程序,第二个星期也就开始编程了。半个月以后我对 5410也就用很熟了的,当然主要述是讲在算法方而。这个项目太概做了四个月 吧,系统程序是我编写的,主要有如64位加减乘除乘方开方、及时域方面的一 些算法。现在又做一个控制系统,用2407开发的,硬件主要有直交变频,并把 2407的所有外设资源全部用到了。现在我可以这样白夸一句吧:ti的2000系列 与5000系列的我都熟悉,要我去以此做个系统,没问题。上

11、而是把我搞dsp的 经历简单说了一下的吧,在这里我想对正在学及想学dsp的难兄们说一句的是, dsp并不是很难。半然,这个前提是你的基础要好,我单片机,接口都还行,当 初就是从单片机改成dsp的。冇了单片机的慕础再去学2000第列的dsp (下面 的dsp单指2000系列,另有说明为止),你就可以把dsp看成一个super microcontroller 了。 相比z 卜,dsp 除了比单片机多了更丰的夕卜设接口 (spi,sci、can、pwm、cap、qep等等),他就是一块单片机,只不过在单片机 来说你要另加芯片的工作,dsp全部把它做在块芯片去了,我现在看dsp也真 就这么简单。前面有

12、人提到dsp主要是做算法,这句话冇一定的片面性:ti冇 很多系列的dsp,现在主流的dsp主要为2000系列、3000系列、4000系列、5000 系列、6000系列。除了 2000与5000系列是定点dsp外,其余的均为浮点系列。 ti的2000系列主要长处是在用于控制系统,因为它的资源非常丰富,前面提到, 在控制系统屮用到的些外设2000系列均在片内集成了。ti的5000系列車要 长处是用于数字信号的算法处理,这里所讲算法处理主要是指在数字信号处理时 的一些算法,如fir、iir、fft等等。5000系列的dsp的速度比2000快,2407 最快只能到40m, 2800系列除外,5410的

13、dsp可以达到160m,如现在我们主要 用来做数字信号方面的处理以及简单的静态图像处理等这样一些在资源需要处 于中等的一些算法。ti的6000系列主要是用在实吋图像处理,这个就更则重 于算法处理。一般的硬件很少自制,我们是用tt的dsk板再加上自主板相结合。%1. 使用c/c+语言编写基于dsp程序的注意事项1、不影响执行速度的 情况下,可以使用c或c/c+语言捉供的函数库,也可以自己设计函数,这样更 易于使用“裁缝师”优化处理,例如:进行绝对值运算,可以调用fabs()或abs() 函数,也可以使用if. else.判断语句来替代。2、要非常谨慎地使用局部 变量,根据自己项目开发的需要,应尽

14、可能多地使用全局变量和静态变量。3、 一定要非常重视中断向量表的问题,很多朋友对中断向量表的调用方式不淸楚。 英实屮断向量表屮的屮断名是任意取定的,dsp是不认名字的,它只认地址! 中断向量表要重新定位。这一点很重要。4、要明确dsp软件开发的笫一步是 对可用存储空间的分析,存储空间分配好坏关系到个dsp程序员的水平。对于 dsp,我们冇两种名称的存储空间,种是物理空间,另种是映射空间。物理 空间是dsp上可以存放数据和程序的实际空间(包括外部存储器),我们的数据 和程序最终放到物理空间上,但我们并不能h接访问它们。我们要访问物理空间, 必须借助于映射空间才行!但是映射空间本身是个“虚”空间,

15、是个不存在的 空间。所以,往往是映射空间远远大于实际的物理空间,有些映射空间,如io 映射空间,它本身还代表了 种接口。只冇那些物理空间映射到的映射空间才是 我们真止可访问(读或写)的存储空间。5、尽可能地减少除法运算,而尽可 能多地使用乘法和加法运算代替。6、如果ti公司或第三方软件合作商捉供了 dsplib或其他的合法子程序库供调用,应尽可能地调用使用。这些子程序均使 用用汇编写成,更为重要之处是通过了 tms320算法标准测试。而且,常用的数 字信号处理算法均有包括! 7、尽可能地采用内联函数!而不用一般的函数! 可以提高代码的集成度。8、编程风格力求简炼!尽可能用c语言而不用c+ 语言。我个人感到虽然c+终代码长了一些,好彖对执行速度没冇影响。9、因 为在c5000中double型和flo毗型均占有2个字,所以都可以使用,而且,可 以直接将int型赋给float型或double型,但,尽

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论