0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式DSP系统传统设计流程

电子设计 来源:网络整理 2019-05-28 07:04 次阅读

嵌入式DSP系统传统设计流程通常由概念到算法及算法到产品两个阶段构成,通常这两个阶段互相独立且由不同设计小组完成。

传统的设计流程里要用手工在两个阶段之间进行转换与衔接,这样容易出现错误而推迟产品的上市时间。本文介绍一种集成工具可以使设计与验证测试更加自动化,且具有更高效率,可减少产品缺陷。

过去几年以来,产品与系统在软件方面的功能不断增强,高强度实时要求越来越多。对设计工程师而言,为与竞争对手展开竞赛,争取更快将新产品投向市场,高效系统开发方法成为重中之重,对开发数字信号处理器算法的工程师而言尤为如此。此外,产品开发周期和生命周期不断缩短等因素,也促使工程师和设计经理对开发方法和软件工具进程进行全面重新评估。

产品漏洞会导致市场份额迅速下降,如果公司牺牲质量,那么其声誉会马上受到影响。产品工程师在实施由研发工程师设计的算法时,会遇到很多难题,其中之一就是将系统参数、测试向量以及其它数据从基于主机PC概念的开发工具用手工方式转向基于目标硬件的DSP代码开发工具。这种手工转化常常会造成错误,要在确认和测试中才能被发现,从而导致开发时间延长。市场调查显示,客户产品开发中常常有50%以上的时间是用于产品集成与测试。在这个阶段,省时的工具对产品功能可靠性、上市时间以及能否最终取得成功都有很大的影响。

在今天市场环境下,要将工程师的开发流程从概念发展至算法并最终推出产品,传统的产品开发流程已显得力不从心,新开发流程需要广泛的工具集成,保证数据以及其它信息能够动态共享以实现更高的工作效率。

传统DSP开发流程

嵌入式DSP系统传统设计流程通常包括两个主要阶段,即概念到算法阶段(由研发小组实施,其中包括算法开发与系统设计)以及算法到产品阶段(由产品开发小组实施,该阶段包括实际产品实现、目标编程和测试),如图1所示。

由于上面两个阶段常常是彼此独立的,并由不同的设计小组完成,而各小组的目标可能不一致,因此这种结构内部会有一些问题。此外,设计小组使用的工具还可能彼此不兼容,不能够整合在一起。

在多数情况下,研发工程师使用数字计算环境,可充分发挥算法开发、分析以及各种科学、数学或工程应用可视化功能。研发工程师常常以M或C代码创建算法,也可以为其算法创建测试向量(通常是文本或二进制格式的数据文件)。他们随后会在主机PC上运行算法进行模拟,以便分析并使算法响应可视化,目标是确保算法不仅能够独立于特定的平台进行工作,还能独立于任何物理存储器、速度或实时限制工作。当他们希望将设计转给产品开发小组时,他们将提交书面规范或实际的C或M代码,并请开发小组就具体的DSP目标实施算法。

在产品开发方面,大多数DSP工作小组都使用集成开发环境(IDE),小组的目标是使用书面的规范实施算法、测试算法,并在最终产品中进行确认,以保证其满足系统的实时、速度、功率及内存等限制条件。产品开发小组常常依靠手工方法从事上述任务,因为直接根据规范或算法测试向量进行产品测试通常没有便捷路径可循。在遇到复杂系统时,手动转换和确认会延缓产品开发,影响产品的成功。

产品工程师为防止出现前后脱节而采取一些手工方法包括:

1. 手工复制并粘贴M文件测试向量(如100个值的阵列)至IDE的C代码(或汇编)文件中。但是工程师必须注意,应复制所有数据不能遗漏,还必须添加正确的语法以保证兼容性(如逗号、方括号、圆括号等);

2. 使用典型IDE中的“载入数据”命令手工从PC硬盘向DSP存储器载入整个数据文件。工程师必须注意应以人工方式或通过脚本(需要编写并调试)对数据进行重新格式化,以保证文件格式和随后的语法能够匹配;

3. 可使用IDE的文件I/O功能(如fscanf()功能)以便以自动方式像上面第二种方法一样载入文件,但是有关文件格式与语法类型的问题仍然存在。传统文件I/O带来的另一大主要问题在于,工程师必须在DSP本身上面运行庞大而低效的C库,这将导致代码膨胀,不仅浪费内存,还会拖慢DSP的速度,使其丧失实时工作性能;

4. 利用外部硬件生成信号作为系统的输入(如音乐或正弦波),以观察系统是否能够实时响应。与前面所说测试向量和数据已经数字化的情况不同,这里的数据是模拟的,必须通过A/D转换器,这就会带来更多的错误和不一致性,因为它不再是纯粹的数字信号,导致内在的模拟失真。此外还会带来额外的变量,造成更多不确定性,也使寻找问题根源更加困难重重。

集成工具提高效率与生产率

集成度更高的开发流程能以更动态的方式自动执行上述任务。

我们不妨给出一个真实情况的例子,即在DSP上实施适应性噪声消除系统。设计第一步是设计一个适应性过滤器(即过滤器系数、过滤器响应等),开发工程师以通常采用的DSP算法设计和分析工具(诸如MathWorks公司提供的MATLAB)开发C代码,并在DSP上运行,而后综合输入信号并测试该过滤器的表现。

通过将MATLAB与通用DSP IDE(如德州仪器的Code Composer Studio)进行集成,工程师可使用相同的前端工具在模拟环境下进行算法设计、可视化、分析与优化,随后在DSP目标上实施设计,对其再次运行,并采用模拟设计对实际结果进行比较。

在我们给出的例子中,开发工程师可使用MATLAB直接访问DSP目标存储器,当DSP程序在目标上运行时对其进行控制,同时可以获得MATLAB的可视化、模拟和优化功能。该连接由高速实时双向数据通讯机制加以实现,如TI的高速实时数据交换(RTDX)。图2显示了MATLAB代码,展示了如何使用MATLAB对信号进行综合测试,通过RTDX实时连接可执行过滤器的DSP实施,并使结果可视化。

运行于目标DSP上的算法接收噪声信号与白信号作为输入,并执行LMS算法消除噪声。图3显示了通过RTDX实时发回至MATLAB的DSP输出信号、过滤器阀(filter tap)和过滤器响应,这意味着代码执行时,我们在MATLAB中可以动态优化参数,适应性地调节过滤器,并运行蒙特卡洛模拟使结果可视化。在算法运行于DSP上的同时,用户还可以直接从MATLAB调用DSP上特定的函数,并以批处理模式或互动模式对其加以执行。

因此,测试与验证小组可以使用原始的基于MATLAB的设计或规范,直接将其作为测试设置的一部分。测试小组再直接把实际系统输出与原始MATLAB设计生成的所希望的输出进行比较,并以此进行适当的实时改变。

本文结论

通过将研发小组与产品开发小组所用的工具进行集成,我们可以极大地提高生产率,从而使设计与验证测试不仅更加自动化,而且具有更高的效率。开发DSP算法以及在真实目标上对那些算法进行实施工作的设计小组毋需改变开发流程方法,即可采用与IDE以及硬件后端集成的设计环境前端。他们也可以自动实时地转移数据,以便更迅速高效地重复产品设计,而不会导致出现新的错误。

设计与开发工具集成能够推动开发周期早期的测试与验证,从而帮助工程师以更高的效率确认并解决问题。工程师要以更快的速度构建并向市场推出新型具有更强大功能的DSP产品,最重要的是要保证减少产品缺陷,工具集成将为最终成功助一臂之力。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    552

    文章

    7959

    浏览量

    347905
  • 嵌入式
    +关注

    关注

    5059

    文章

    18972

    浏览量

    301924
收藏 人收藏

    评论

    相关推荐

    嵌入式DSP系统的测试与验证怎么提高?

    嵌入式DSP系统传统设计流程通常由概念到算法及算法到产品两个阶段构成,通常这两个阶段互相独立且由不同设计小组完成。
    发表于 08-22 08:32

    如何提高嵌入式DSP系统的设计与验证自动化程度?

    嵌入式DSP系统传统设计流程通常由概念到算法及算法到产品两个阶段构成,通常这两个阶段互相独立且由不同设计小组完成。
    发表于 09-04 08:15

    如何提高嵌入式DSP系统设计与自动化程度?

    嵌入式DSP系统传统设计流程通常由概念到算法及算法到产品两个阶段构成,通常这两个阶段互相独立且由不同设计小组完成。
    发表于 09-19 06:29

    嵌入式系统是什么?嵌入式开发与传统单片机开发不同

    1、嵌入式系统是什么2、嵌入式系统的组成3、嵌入式开发与传统单片机开发不同4、
    发表于 02-23 06:02

    DSP嵌入式系统人机接口设计

    DSP嵌入式系统人机接口设计  1 引言   人机接口是嵌入式控制系统的重要组成部分,用于人机之间实时交换控制
    发表于 12-24 16:34 943次阅读
    <b class='flag-5'>DSP</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>人机接口设计

    基于SBC+DSP嵌入式系统设计与应用

    基于SBC+DSP嵌入式系统设计与应用 1 引言   嵌入式系统是以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用
    发表于 02-25 11:06 1093次阅读
    基于SBC+<b class='flag-5'>DSP</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>设计与应用

    DSP 嵌入式系统开发典型案例

    主要是关于嵌入式系统基于DSP的应用和开发
    发表于 11-02 15:44 35次下载

    绪论DSP嵌入式系统开发典型案例

    绪论DSP嵌入式系统开发典型案例
    发表于 10-19 13:32 6次下载

    基于DSP平台的嵌入式文件系统的开发与研究

    基于DSP平台的嵌入式文件系统的开发与研究
    发表于 10-19 14:28 4次下载
    基于<b class='flag-5'>DSP</b>平台的<b class='flag-5'>嵌入式</b>文件<b class='flag-5'>系统</b>的开发与研究

    提高嵌入式DSP系统设计的集成工具

    嵌入式DSP系统传统设计流程通常由概念到算法及算法到产品两个阶段构成,通常这两个阶段互相独立且由不同设计小组完成。
    发表于 10-20 10:41 0次下载

    浅析DSP嵌入式系统的应用特性

    DSP嵌入式系统最重要的技术特性就是具有相当强大的数据处理功能,从现代信息技术角度看,在系统嵌入DSP
    发表于 12-12 14:20 2016次阅读

    DSP嵌入式系统设计与应用(精)

    DSP嵌入式系统设计与应用(精)(arm嵌入式开发视频)-该文档为DSP嵌入式
    发表于 08-04 09:49 11次下载
    <b class='flag-5'>DSP</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>设计与应用(精)

    嵌入式Linux专题(一)——嵌入式Linux系统构成及启动流程

    本文简单的介绍了什么是嵌入式系统,以及嵌入式Linux的系统结构,并且简单的介绍了Linux的启动流程
    发表于 11-02 12:36 15次下载
    <b class='flag-5'>嵌入式</b>Linux专题(一)——<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>系统</b>构成及启动<b class='flag-5'>流程</b>

    如何用C语言开发DSP嵌入式系统

    如何用C语言开发DSP嵌入式系统DSP嵌入式系统开发是一个非常重要的领域,它涉及到设备的控制
    的头像 发表于 10-29 17:29 1193次阅读

    嵌入式系统的组成及开发流程

    电子发烧友网站提供《嵌入式系统的组成及开发流程.ppt》资料免费下载
    发表于 11-17 14:35 1次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>的组成及开发<b class='flag-5'>流程</b>