




已阅读5页,还剩66页未读, 继续免费阅读
(信号与信息处理专业论文)基于dsp的可视化多处理器软件设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着数字信号处理系统越来越复杂,在一个大型系统开发中,软件不管是在 开发周期还是在开发成本上所占的比重都越来越大。目前的设计方法往往是事先 在m a t l a b 中进行信号处理算法的仿真,得到正确的算法,然后根据算法模型在处 理器平台上编写、调试相应的程序,并最终在硬件上完成验证。如果能把算法的 仿真和代码的编写、调试集成到一个可视化开发环境中,使算法的仿真、代码的 编写和调试一步完成,则可以大大缩短系统的开发周期,节约大量的人力成本。 基于d s p 的可视化多处理器软件设计平台就是集算法建模、代码生成和硬件调试 为一体的系统。 本文主要研究基于d s p 的可视化多处理器软件设计平台的结构和设计方法。 首先分析了该系统的总体功能、总体设计原则和总体的结构组成。然后详细地叙 述了系统的各个组成部分,并对其中应用到的相关技术进行了研究和开发。接着 对系统中各类模块库的设计进行了细致的分析和讲解。最后通过一个项目案例来 验证我们设计的系统的可行性,结果表明该系统已经初步地完成了可视化、代码 生成等功能。 关键词:多处理器可视化算法建模代码生成 a b s t r a c t a b s t r a c t i nt h ed e v e l o p m e n tp r o c e d u r eo fal a r g e s c a l ed i g i t a ls i g n a lp r o c e s s i n gs y s t e m , t h ed e s i g na n dd e v e l o p m e n to fi t ss o f t w a r es y s t e mo c c u p i e sm o r ea n dm o r ep r o p o r t i o n s i nt h ew h o l ed e v e l o p m e n tc y c l ea sw e l la sr e q u i r i n gm o r ep r o p o r t i o n si nt h ew h o l e b u d g e ta st h es y s t e mb e c o m e si n c r e a s i n g l yc o m p l e x t h em o s tp o p u l a rm e t h o df o rt h e s o f t w a r ed e s i g ni sa l w a y sc a r r i e do u ti nt h en e x tf e ws t e p s a tt h ev e r yb e g i n n i n g ,w e s i m u l a t et h es i g n a lp r o c e s s i n ga l g o r i t h m si nm a t l a b ,a f t e rg e t t i n gac o r r e c ta l g o r i t h m , w ew r i t ea n dd e b u gt h ec o r r e s p o n d i n gp r o g r a mo nap r o c e s s o rp l a t f o r m ,a n du l t i m a t e l y c o m p l e t et h ev e r i f i c a t i o ni nh a r d w a r e i ti sw o r t ht or e c o g n i z et h a tt h ed e v e l o p m e n t c y c l ec o u l db eg r e a t l ys h o r t e n e da n dal o to fl a b o rc o s t sc o u l db es a v e di ft h ea l g o r i t h m s i m u l a t i o n , c o d ew r i t i n ga n dd e b u g g i n gi n t e g r a t e d i n t oo n es i n g l ev i s u a l i z a t i o n d e v e l o p m e n te n v i r o n m e n t ,w h e r et h ea l g o r i t h ms i m u l a t i o n , c o d ew r i t i n ga n dd e b u g g i n g c a nb ef i n i s h e di nar o w t h ed s p b a s e dv i s u a l i z a t i o ns o f h v a r ed e s i g np l a t f o r mf o r m u l t i - p r o c e s s o ri ss u c had e v e l o p m e n te n v i r o n m e n t t h i st h e s i ss t u d i e st h ea r c h i t e c t u r ea n dd e s i g nm e t h o d so ft h ed s p b a s e d v i s u a l i z a t i o ns o f t w a r ed e s i g np l a t f o r mf o rm u l t i p r o c e s s o r i ti so r g a n i z e da sf o l l o w i n g ab r i e fd e s c r i p t i o no ft h es y s t e m so v e r a l lf u n c t i o n a l i t y , g e n e r a ld e s i g np r i n c i p l e sa n d t h eo v e r a l lc o m p o s i t i o ni sp r e s e n t e da tt h eb e g i n n i n g t h e ns o m ed e t a i l st ov a r i o u s c o m p o n e n t so ft h es y s t e ma sw e l la sc o r r e s p o n d i n gt e c h n o l o g i e sw h i c ha p p l i e dt ot h i s s y s t e ma r er e s e a r c h e da n dd e v e l o p e d f u r t h e r m o r e ,a n a l y s i so ft h ed e s i g no fv a r i o u s m o d u l el i b r a r i e si nt h es y s t e mi sc a r r i e do u ta n ds t a t e d i nt h ee n d ,ap r o j e c tc a s ei s p r e s e n t e dt ov a l i d a t et h ef e a s i b i l i t yo ft h es y s t e mw h i c hw eh a v ed e s i g n e d t h er e s u l t s s h o wt h a tt h es y s t e mh a si n i t i a l l yc o m p l e t e ds o m eo ft h ef e a t u r e ss u c ha sv i s u a l i z a t i o n , c o d eg e n e r a t i o na n ds o0 1 1 k e y w o r d :m u l t i - p r o c e s s o r v 璩u a l i z a f i o n a l g o r i t h mm o d e l i n g c o d eg e n e r a t i o n 西安电子科技大学 学位论文独创性( 或创新性) 声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名:丝迎! 聋日期一枷? 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。 本人签名: 导师签名: 日期一丝2 矽 第一章绪论 第一章绪论 1 1 课题的背景与意义 在当今信号处理设备的开发中,随着系统越来越复杂,软件设计所占的比重 在不断上升。在大型系统的设计中,软件的开发成本要高于硬件成本,开发软件 所花费的人力、时间远远超过了硬件设计,使无“硬成本”的软件工作成了系统 的主体。例如在某型号的雷达信号处理机的研制中,硬件开发仅用了5 个月左右 的时间,而整个系统的软件设计包括算法仿真、代码编写和代码的调试占用了将 近2 0 个月的时间,所花费的人力大约是从事硬件设计的5 倍。目前实现一个信号 处理系统软件开发的一般步骤包括【l l : 第一步:根据信号处理要求,确定信号处理算法和方案,建立相应模型,并 利用m a t l a b 工具或s i m u l i n k 工具对算法进行原理或功能级的仿真。 第二步:根据算法编写d s p 程序代码,通常用c 语言和d s p 的汇编语言编写 程序,并利用d s p 的集成开发环境中的软件模拟器对程序进行部分功能仿真。 第三步:在硬件上调试所编写的d s p 程序,做到程序功能和时序都能满足要 求。 第四步:将系统和计算机脱离,检验系统实时运行的性能。 对于以上各步骤,如果发现达不到要求或者设计有缺陷,则要及时修正,或 者返回上一步进行调整。对每个步骤的设计,应考虑周全,尽量避免返回上一步 进行调整。 为了把算法的仿真与d s p 的程序的开发、调试结合起来,以直接从仿真模型 生成目标d s p 的可执行代码,从而大大缩短信号处理设备的开发周期,节约人力 成本,加快产品上市,迫切需要一种高度集成的开发系统来方便用户完成信号处 理设备的开发。本文就在此背景下提出了基于d s p 的可视化多处理器软件设计的 课题。 基于d s p 的可视化多处理器软件设计平台能够根据信号处理算法及处理器相 关资源建立需要的可视化模型,基于己建立的可视化模型可以进行多处理器的任 务分配,在任务分配完毕后,平台能够给出多处理系统中各处理器的静态任务运 行时序分析及其资源使用情况,并对多处理系统任务分配做出合理评估,同时能 够输出可直接编译和链接的完整的程序源代码,并最终能完成在硬件上对生成代 码的在线调试。该平台使用户能在统一的集成环境下完成信号处理系统的设计、 仿真、代码生成、代码调试和运行;特别是针对专门研究算法的人员,使他们在 2 基于d s p 的可视化多处理器软件设计 无需熟悉具体的d s p 硬件结构、功能、指令的情况下就可以开发出完整的信号处 理设备,以便可以集中更多精力去研究算法。 1 2 国内外研究现状 对于可视化软件平台的研究国外起步得比较早,而且现在已经有了一定的成 果。比较典型的有m a t l a b 中的s i m u l i n k 工具,美国g e d a e 公司的g e d a e 多处理器 软件,美国g ef a n u c 公司的a x i s 多处理软件等。 1 2 1s i m u l i n k 简介 s i m u l i n k 是m a t l a b 最重要的组件之一,它提供一个动态系统建模、仿真和综 合分析的集成环境。利用它的图形化的交互环境,只需要通过简单直观的鼠标操 作,就可构造出复杂的系统,无需大量书写程序。使用s i m u l i n k 可以方便地进行 控制系统、d s p 系统、通信系统以及其它系统的仿真分析和原型设计。它和m a t l a b 的无缝结合使得用户可以利用m a t l a b 丰富的资源,建立仿真模型,监控仿真过程, 分析仿真结果。另外,s i m u l i n k 已经被业界工程师所认同,在系统仿真领域中也已 经得到广泛的承认和应用,许多专用的仿真系统都支持s i m u l i n k 模型。由于仿真 效果的准确性及方便性,s i m u l i n k 的建模仿真目前已经演变成在应用系统开发中 不可或缺的一环。 利用s i m u l i n k 进行系统的建模仿真,其最大的优点是适应面广、结构和流程 清晰及仿真精细、贴近实际,而且灵活、易学、易用,并能依托m a t l a b 提供的丰 富的仿真资源。这里对s i m u l i n k 的强大功能进行简单的介绍。 1 交互式、图形化的建模环境 s i m u l i n k 提供了丰富的模块库以帮助用户快速地建立动态系统模型。另外,还 可以把若干功能块组合成子系统,建立起分层的多级模型。s i m u l i n k 这种图形化、 交互式的建模过程非常直观,且容易掌握。 2 交互式的仿真环境 s i m u l i n k 提供了交互性很强的仿真环境。用户可以设置仿真时间和其它一系列 仿真参数。在仿真过程中各种状态参数可以在仿真运行的同时通过示波器来显示。 3 专用模块库 作为s i m u l i n k 建模系统的补充,用户还可以使用专用功能块程序包,如d s p b l o c k e t 等。同时s i m u l i n k 还专门提供了实旋软件包,如t i 的d s p 和m o t o r o l a 的 处理器以及f p g a 的开发工具包,以方便用户进行目标系统的开发。 4 提供了仿真库的扩充和定制机制 第章绪论 3 s i m u l i n k 开放式结构允许用户扩展仿真环境的功能:采用c 语言或m 语言来 产生自定义模块,并拥有自己的图标和界面。 5 与m a t l a b 工具箱的集成 s i m u l i n k 可以直接利用m a t l a b 的诸多资源与功能。其中工具箱提供的高级的 设计和分析能力可以融入仿真过程。 基于以上优点s i m u l i n k 已被广泛应用于控制理论和数字信号处理的复杂仿真 和设计。同时越来越多的第三方软件和硬件可应用于或被要求应用于s i m u l i n k 。 针对数字信号处理领域,s i m u l i n k 工具中的d s pb l o c k s e t 库为数字信号处理 系统提供了丰富的模块1 2 1 ,它包含基本的输入输出模块,以及其它操作处理模块如 多速率、自适应滤波、矩阵操作、统计、时域转换模块等,这些模块之中包含了 许多数字信号处理的核心算法。它们是和s i m u l i n k 融为一体的,可以方便地和其 它模块混合使用。但是s i m u l i n k 所做的工作仅仅是进行仿真,并不能生成行之有 效的d s p 应用程序。虽然它还可以结合r t w ( r e a lt i m ew o r k s h o p ) 的强大功能,产 生可以直接在数字信号处理硬件上运行的c 代码。但是r t w 产生的c 代码有很 多不足1 3 , 4 1 :1 、产生的c 代码庞大,利用了大量的链接库,造成代码过于复杂, 难以读懂,很难有实用价值;2 、当建立的模型中有自定义m 文件s 函数时,r t w 就不能产生代码,如果想把自定义函数和r t w 一起使用,就需要重新编写m 文 件s 函数为cm e xs 函数,造成模型移植性差。而且即使模型中的自定义s 模块 全部重写成为cm e xs 函数时,产生的代码和cm e xs 一函数之间的关联性也很 差,这就缩减了部分实用领域;3 、运行效率极其低下,很难满足实时信号处理的 要求。 在m a t l a b r 2 0 0 9 a 版本中l 2 2 】,s i m u l i n k 专门为基于a d i 公司的一系列d s p 提 供了e m b e d d e di d el i n kv s 模块库,在该模块库中包含5 类模块,如图1 1 所示: 图1 1e m b e d d e di d el i n kv s 模块库 打开上图中的c o r es u p p o r t 模块库,得到c o r es u p p o r t 里面的内部模块,如图 1 2 所示。 4 基于d s p 的可视化多处理器软件设计 图1 2c o r es u p p o r t 的内部模块 以t s 2 0 1 为例,用户在建模时,可以选择c o r es u p p o r t 里面的变量定义模块 m e m o r ya l l o c a t e ,t i g e r s h a r cd s ps u p p o r t 里面的中断模块h a r d w a r ei n t e r r u p t 。 在t a r g e tp r e f e f e n c e s 中选择具体的处理器类型后可以设置它的内存布局来产生相 应的链接文件。再配合s i m u l i n k 通用模块可以建立任意仿真模型。用户还可以通 过r t w 工具和t c l 编译工具来产生源代码。不仅如此,m a t l a b 还提供了强大的 调试功能,用户可以在m a t l a b 的命令窗口中输入相应的命令,比如设置断点、开 始运行、停止运行、存取内存变量等。但是由它产生的源代码仅仅只能作为仿真 用,没有实际应用价值。它所产生的源代码的缺陷有:l 、依靠r t w 工具来产生 源代码,这就避免不了由于利用了r t w 工具而所带来的不足。2 、它产生的代码 完全是和仿真的步骤一致的,事实上仿真的程序框架和实际应用程序的框架是不 同的。它所产生的代码只能应用于仿真,代码的执行是完全靠内部定时器来驱动 的,整个程序的同步都由内部定时器来完成。整个程序代码的大概执行流程是: 在定时器中断服务例程中调用开始进行每一步仿真的函数,然后调用更新模块的 输出函数,接着调用更新模块的状态函数,最后等待定时信号以在中断服务例程 中开始进行下一步的仿真,如此循环往复。而实际应用程序往往是靠外界的事件 来驱动和同步的,比如雷达信号中常用的c p i 信号和p r f 信号。3 、建立的模型和 用户定义的变量模型联系不起来,导致所产生的代码和用户定义的变量是孤立的。 它产生的代码中用到的变量都是系统自动产生的局部变量或默认存放在固定内存 块的全局变量。这对于内存比较紧张的嵌入式处理器尤其是t s 2 0 1 这种内存有限 又是分块、不连续的来说,内存利用率极低,算法稍微一复杂,就有可能造成产 生的代码由于内存得不到合理的分配而不能在嵌入式处理器上运行。4 、建立的模 型和产生的代码都只针对单处理器,不能在同一个工程下进行多处理器的建模以 及多处理器的代码生成。 第一章绪论 1 2 2s i m u l i n k 相关技术 s i m u l i n k 功能如此强大,应用如此广泛,是和它采用了一些优秀的相关技术分 不开的。下面对s i m u l i n k 中应用到的相关技术作一个简要的概括。 1 、s i m u l i n k 仿真技术 s i m u l i n k 的仿真核心是求解器【2 j ,求解器包括连续求解器和离散求解器。对于 离散系统,它的行为一般可以由差分方程描述,它的输入输出仅在离散的时刻取 值,系统状态每隔固定的时间才更新一次;而s i m u l i n k 对离散系统仿真的核心是 对离散系统差分方程的求解。因此,s i m u l i n k 可以做到对离散系统仿真的绝对精确。 对于连续系统,由于具有连续的输入与输出,并且系统中一般都存在连续的状态 变量。而连续系统中存在的状态变量往往是系统中某些信号的微分或积分,因此, 连续系统一般由微分方程进行描述。这就决定了s i m u l i n k 不可能做到连续系统的 精确解,而只能得到近似的数字解。 s i m u l i n k 求解器固然是系统仿真的核心,但s i m u l i n k 的仿真控制也是非常重 要的。s i m u l i n k 的仿真控制是通过系统模型与求解器之间建立对话的方式进行的。 s i m u l i n k 将系统模型、模块的参数传递给求解器,而求解器将计算出的系统状态与 仿真时间通过s i m u l i n k 环境传递给系统模型本身,通过这样的交互作用方式来完 成动态系统的仿真。对话的方式是事件通知和过零检测。所谓事件通知,是指系 统模型通过s i m u l i n k 环境告知求解器在前一步仿真步长内系统中发生的事件,以 用于当前仿真时刻求解器的计算。过零是指系统模型中的信号或系统模块特征的 改变,主要包括以下两种:一种是信号在上一个仿真时间步长之内改变了符号; 另外一种是系统模块在上一个仿真时间步长改变了模式。过零本身是一个非常重 要的事件,但并非所有的模块都能产生过零事件。过零检测就是用来检测是否有 过零事件的发生。可以说,s i m u l i n k 动态系统仿真是基于事件驱动的。 从s i m u l i n k 的仿真机理可以看出,s i m u l i n k 把仿真时间分割成很小段的每一 个仿真步长来求解,每一个仿真步长求解完毕后,还要完成求解器和系统模型之 间的信息交互,这从根本上造成了s i m u l i n k 仿真速度很慢的缺点。 影响s i m u l i n k 仿真速度的因素还有很多,常见的有以下几种情况:( 1 ) 过零事 件。当一个模块在系统的前一个仿真步长发生了过零事件,求解器就会缩小仿真 步长,以判定事件发生的准确时间,这样就会降低了系统的仿真速度。( 2 ) 代数环。 在系统模型中,当具有直接馈通特性的系统模块的输入直接由自己的输出来驱动 或由其它馈通模块所构成的反馈回路间接来驱动时,就产生了代数环。s i m u l i n k 会在每一步仿真步长内调用代数环求解器对系统进行求解,但由于采用了牛顿算 法,需要进行多次迭代求解,而且在每一个时间步都是如此,这就导致了系统的 仿真速度很慢。( 3 ) m 文件的s 函数。当系统模型中含有m 文件的s 函数时,会 6 基于d s p 的可视化多处理器软件设计 使s i m u l i n k 在每一个仿真时间步调用m a t l a b 解释器。( 4 ) 仿真时间步长太小。( 5 ) 仿真的精度要求过高。如果仿真时绝对误差限度太小,会使仿真在接近零的状态 附近耗费过多的仿真步。( 6 ) 多速率离散系统。使用定步长求解器求解多速率系统 时,由于模块之间的采样时间不同,因此步长要足够小,以匹配所有的采样时刻, 于是导致了某些时刻不必要的计算。如使用变步长求解器可以提高系统的仿真效 率。 2 、s i m u l i n k 调试技术 s i m u l i n k 作为高性能的系统设计、仿真和分析平台,给用户提供了强大的模型 调试工具。s i m u l i n k 3 0 以前的调试器都是基于命令行输入的,s i m u l i n k 4 0 及其以 后的版本中,为用户提供了一个图形化的调试界面,简化了操作。通过s i m u l i n k 调试器,用户可以查找和诊断模型中的错误,然后进行修改,从而快速地完成系 统的设计。 s i m u l i n k 的图形调试器具有友好的调试界面。在该图形界面下,用户可以完成 断点的设置、按模块单步执行、按时间单步执行、按断点的顺序执行等,用户还 可以在图形界面中查看模型中模块的执行顺序以及当前的调试状态。 3 、s i m u l i n k 子系统技术 当模型规模很大、很复杂时,可以通过把一些模块组合成一个子系统,来简 化模型。在s i m u l i n k 中创建子系统的途径有两种:一种是采用自下向上的策略, 用户首先建立好每一个功能模块,然后再组合这些模块为一个子系统;另外一种 是采用自上向下的策略,用户首先建立一个子系统模块,然后在该子系统内部建 立模型。 此外,在s i m u l i n k 中还有一些特殊的子系统:( 1 ) 使能子系统,只有当控制信 号的值为正时,子系统才执行。( 2 ) 触发子系统,只有当控制信号的符号发生改变 时,系统才开始执行。( 3 ) 函数调用子系统,只有当在用户自定义的s 函数中发出 调用时才开始执行。( 4 ) 原子子系统,子系统中的所有模块一同被执行。( 5 ) f o r 循 环子系统和w h i l e 循环子系统,目的是在一个仿真时间步内循环执行子系统。 ( 6 ) s w i t c hc a s e 子系统和i f 子系统,根据不同的输入分别执行不同的功能。 此外,s i m u l i n k 还提供了封装子系统的功能,封装子系统与建立子系统并不相 同,建立子系统是将具有一定功能的一组模块容纳在一个子系统中,从而增强系 统模型的可读性,在动态系统进行仿真时需要对子系统中各个模块的参数分别进 行设置,而封装子系统指的是将已经建立好的具有一定功能的子系统进行封装成 用户自定义模块。它有自己的图标、参数设置对话框以及帮助文档等,与s i m u l i n k 的内置系统模块具有相同的操作。它拥有自己的工作区,并可以保护子系统的内 部结构。 第一章绪论 7 1 2 3g e d a e 软件简介 美国g e d a e 公司的g e d a e 软件是嵌入式多处理器系统开发、仿真、调试、应 用移植和发布的软件开发平台,是先进的基于模型化设计思想的图形化开发和代 码自动生成工具,其革新了数字信号处理系统的设计和开发,可应用于需要密集 信号处理的场合如雷达、声纳、成像和音频。g e d a e 工具集包括工作站开发环境 和针对嵌入式目标机的r u n t i m ek e r n e l ( 运行期内核) ,可用于各种嵌入式芯片, 如p o w e r p c 、c e l lb e 、f p g a 和d s p 等。设计人员能够在与硬件独立的图形化 环境中开发算法程序,然后分割和映射算法程序到不同的嵌入式多处理器硬件系 统中,并可利用各个嵌入式系统提供商提供的相关算法库生成相应的程序代码。 g e d a e 可视化工具能够显示在目标机系统中的所有硬件和软件活动,包括进程、处 理器间通讯和缓冲等,其性能等同或超过手写编程所能获得的性能。利用g e d a e b s p ( 板级支持包) 开发工具还可以把g e d a e 软件开发的应用程序移植到用户自定 义的嵌入式多处理器系统中。 g e d a e 软件和s i m u l i n k 工具都能很好地实现算法仿真功能,但两者的仿真机 理却大不相同,s i m u l i n k 工具的仿真核心主要是利用连续或离散的求解器对系统的 微分方程或差分方程进行求解,而g e d a e 软件的仿真核心主要是利用运行期内核 并根据模型中的数据流顺序来一一调度模块去执行,得到仿真结果。g e d a e 软件还 提供了多处理器之间的数据分配和通信的仿真功能,前提是需要由用户自己通过 自带的g e d a eb s pd e v e l o p m e n tk i t 工具包去开发相应的b s p 。g e d a e 软件甚至还 能在数据流级进行单步仿真。但它仅仅是完成了算法在多处理器情况下的仿真, 并不能产生实际有效的应用程序代码,而且对d s p 而言,支持的也不是很好,提 供的d s p 库不是很丰富。它主要针对的是那些带嵌入式操作系统的编程领域。 1 2 4a x i s 多处理软件简介 美国g ef a n u c 公司的a x i s 多处理软件是一款为复杂多处理器系统设计的集成 图形化工具。它在一个集成可交互的用户图形界面环境中提供了配置、下载、运 行、调试和监控等可视化功能。它通过串口把裁减后的v x w o r k s 操作系统内核和 应用程序下载到处理器之后,就通过网口来实现主机和每个处理器之间的信息交 互。每个处理器核都有一个自己的i p 号,用户可对每个处理器核进行远程调试和 监控。但是该软件非第三方软件,和本公司固定的硬件产品绑定,它只能在d s p 2 3 0 处理板和s b c 6 1 0 处理板上开发应用程序,该应用程序运行在8 6 4 1 d 处理器上。 它并没有提供图形化的算法建模工具,并没有实现真正意义上的代码生成功能和 任务分配。总之,它仅仅为d s p 2 3 0 处理板和s b c 6 1 0 处理板提供了一个单一、细 致的调试界面。 8 基于d s p 的可视化多处理器软件设计 上述工具的种种不足,皆不能满足大型信号处理设备开发的需求。本文提出 的可视化多处理器软件设计平台为嵌入式开发人员提供友好的可视化图形界面, 分析用户在建模视图中创建的数据流模型,并根据分析的结果生成相应的源代码 程序。用户可在硬件视图下进行内存区域的划分与变量内存位置的指派,并生成 相应的链接文件、工程文件。该平台使用户能在统一的集成环境下完成信号处理 系统的设计、仿真、代码生成、调试和运行,是集算法函数模块、数据流系统建 模、系统模型分析、c c + + 源代码生成、v i s u a l d s p + + 开发环境下链接文件生成、 工程文件生成、时序分析和代码调试为一体的应用软件系统。 1 3 论文的工作内容 本文主要研究了一种基于d s p 的可视化算法建模及代码生成调试系统的设计 和实现过程,详细介绍了系统的架构、系统中各个模块库的设计实现,以及一些 相关技术问题,并通过一个实际的案例来验证该系统设计的合理性和可行性,最 后对系统的设计做了一定的讨论与展望。 论文的各章内容安排如下: 第一章介绍了本研究课题的背景与意义,然后讨论了国内外关于该课题的研 究现状,最后对论文的主要工作进行了简要的概括。 第二章主要是对系统的一个总体性概述,包括了系统的总体功能分析,系统 总体的设计原则,最后对系统的结构组成进行了粗略的概括。 第三章对系统的八个组成部分即建模视图、模型分析器、源代码生成器、工 程文件生成器、硬件配置视图、链接文件生成器、时序分析器、硬件调试视图的 结构和设计原理进行了详细的介绍。 第四章详细地介绍了建模视图中各类模块库的设计,虽然目前该软件平台是 针对t i g e r s h a r c2 0 1 而设计的,但是为了扩展系统的应用范围,所以在介绍算法 函数库时,简单地介绍了一下即将推出的b w d s p l 0 0 处理器,并以b w d s p l 0 0 处理器为例讲解算法函数库的设计。由于a d i 公司已经提供了t s 2 0 1 的一系列库 函数,所以为b w d s p l 0 0 处理器编写的每一个算法库函数都和t s 2 0 1 的库函数进 行比较。 第五章叙述了通过运用可视化软件建模一个具体的项目案例射频数字化 来验证该系统设计的合理性和可行性。 最后主要是本文对将来工作的展望。 第。章平台的总体设计概述 第二章平台的总体设计概述 基于d s p 的可视化多处理器软件设计平台实现的主要功能是:提供建模视图, 并对视图中构造的模型进行分析,生成可执行的c 、汇编代码;除此之外,上层界 面还提供内存结构图,方便用户进行内存区域的划分与变量内存位置的指派,并 根据内存结构图和模型生成相应v i s u m d s p + 上开发环境下的链接文件和工程文件, 最终完成代码的在线调试。本章的主要内容是介绍系统的总体功能、设计原则虬 及各个功能模块的划分。 2 1 系统功能分析 基于d s p 的可视化多处理器软件设计平台的主要任务就是提供建模视图并根 据建模视图中用户建立的模型以及内存结构图生成v i s u a l d s p + + 下可执行的d s p 应用程序并完成代码的调试。根据以上系统功能,可以得到其系统功能图如图2l 所示。 系统建模 - l瞎i 生成可执行d s p 程序 可视化;j i j 舞软件设 计平台 v i s u a l d s m 应用程序 图2 i 系统功能图 具体地讲,本系统主要有以下几个功能: 1 ) 提供建模视图,供用户根据已有的算法模块创建需要的模型,模型采用了 数据流驱动机制。 2 ) 对创建的模型进行分析,生成可执行的c 、汇编源代码。 3 ) 完成对算法模型的仿真,把算法模型对应的目标代码下载到目标处理器上 运行,算法的合理性在目标处理器上直接进行验证。 4 ) 提供了硬件内存视图,方便用户对内存结构布局以及变量在内存中位置的 指定和大小的分配。 5 ) 对硬件视图中的内存结构树进行分析,生成v i s u a l d s p + + 开发环境下的链 接文件及工程文件。 l o 基于d s p 的可视化多处理器软件设计 6 ) 对建立的模型提供了时序分析的功能,对不满足任务时序的情况下给予错 误提示。 7 ) 完成代码的在线调试。 2 2 系统设计原则 为了方便用户的操作,首先要有友好、易于操作的图形界面供用户使用,而 且生成的源代码应具有较好的可读性,方便后期程序代码级的修改。系统之间各 个模块应该是相对独立的,系统的图形界面、内部逻辑结构都应留有可扩充的接 口,以适应系统功能扩展。具体来说,将分为以下几方面: 1 、可操作性 系统必须便于用户操作。建模方面,在已有的算法模块基础上,还需要方便 用户新建原子模块,并提供可嵌套的复合模块供用户层次化构建模型,而且需要 方便用户设置各个模块内部参数以及提供模型的完整性检测等功能;内存指派方 面,提供灵活的操作模式供用户创建、划分“物理块、“输出块 、“逻辑块 等 不同等级的内存区域,管理内存的结构布局,并可指派变量的内存位置等;在源 代码生成方面,用户可以对系统产生的代码文件、链接文件、工程文件进行手动 的修改。 2 、可读性 系统生成的源代码最终要在v i s u a l d s p + + 中运行,用户在调试的时候难免出现 对源代码中的参数、控制信息等进行手动微调的情况。因此系统生成的代码要求 与模型间有良好的对应关系并具有较好的可读性,方便用户对源代码进行修改、 调试以及后期对d s p 工程功能的扩充。 3 、可扩展性 系统在以后的开发过程中需要扩展其它的功能,如将来跟s i m u l i n k 的无缝结 合、模块的增加、多处理器的任务指派、系统支持硬件平台的扩展以及与硬件之 间的通信调试等。因此系统应具备良好的可扩展性,并留出适当的接口,方便系 统功能的扩展。 4 、可维护性 对整个系统实行模块化的管理,比如分离上层的图形界面与内部逻辑结构, 结构化c 、汇编代码的生成与链接文件、工程文件的生成等,达到系统各个组成模 块之间松耦合,模块内部紧耦合的效果。每个子模块管理各自内部事务,不涉及 到其它模块的处理,维护某一个模块时只需更改相应的模块的内部信息结构,不 会涉及其它的模块的修改。 第二章平台的总体设计概述 2 3 系统开发工具 本软件系统全部运用j a v a 语言来开发,开发环境为e c l i p s e 。在图形界面开发 方面采用了s u n 公司开发的s 谢n g 组件。 j a v a 语言是一种优秀的编程语言。它具有一系列的特点【3 5 】:1 、与平台无关性。 用户在w i n d o w s9 x 、w i n d o w $ n t 、s o l a r i s 、l i n u x 、m a c o s 以及其它平台上,都 可以使用相同的代码。“一次编写,到处运行 的特点,使其在互联网上广泛采用。 2 、安全性。它通过字节码校验器、类装载器、运行时内存布局、文件访问等机制 使其成为了最安全的系统之。3 、健壮性。j a v a 语言对指针的抛弃和利用内存自 动管理技术有利地减少了对系统产生的破坏作用。4 、分布性。j a v a 是面向网络的 语言,通过它提供的类库可以处理t c p i p 协议,用户可以通过u r l 地址在网络 上方很便地访问其它对象。5 、解释性。j a v a 解释器直接对字节码进行解释执行。 字节码本身携带了许多编译信息,使得连接过程更加简单。6 、完全面向对象性。 j a v a 语言的设计集中于对象及其接口,完全抛弃了c + + 中保留面向过程的特性。 e c l i p s e 是基于j a v a 的、开放源代码的可扩展开发平台,它最初由i b m 公司投 入了巨资开发,后来捐赠给国际开放源代码团体。它本身只是一个框架和一组服 务,可以集成不同的软件工具开发供应商的产品,任何开发工具厂商都可以将他 们的开发工具或组件加入到e c l i p s e 平台,用户可以通过相同的接1 :3 使用不同的工 具。e c l i p s e 附带了一个标准的插件集,包括了开发本系统的j a v a 开发工具( j d t ) 。 由于e c l i p s e 这种整合不同工具的特性,开发者可以综合性能调节、监测、调试等 处理,从而可以在较短的时间内开发出更高性能和质量的应用软件。因此,e c l i p s e 平台不仅得到了许多开发者和新兴的中小软件公司的支持,而且得到i b m 、s u n 、 o r a c l e 等大型软件公司的支持。此外,e c l i p s e 还可以用于多操作系统软件工具的 开发过程,插件可以为e c l i p s e 移植a p i 设计程序,并在任何受支持的操作系统上 运行。目前,e c l i p s e 支持w i n d o w s 操作系统和l i n u x 操作系统,以后的版本还将 会支持更多的操作系统。 a w t 和s w i n g 都是s u n 公司开发的图形工具包m j 。在a w t 工具包中所有的 部件都是原生窗口部件。包中的所有窗口部件在运行时都被映射到操作系统已有 的部件中,由操作系统绘制、控制窗口,在其间维持j a v a 应用程序和这些窗口部 件之间的通信即可。为了增加不同操作系统之间的移植性,在a w t 工具包中只包 含了那些在常见操作系统之下的窗口部件,即在常见的操作系统之间取了一个公 约集。由于a w t 采用了原生窗口部件,所以程序运行速度快,在不同的操作系统 之间界面比较一致。但是由于取了公约集,使得a w t 工具包中的部件数目比较少, 而且由于不同操作系统之间的差异,a w t 图形工具中存在一些b u g ,影响了a w t 1 2 基于d s p 的可视化多处理器软件设计 程序的稳定性。 为了解决a w t 中的不足,s u n 公司采用了另外一种技术路线重新开发了一个 图形开发工具包,即s w i n g 工具包。s w i n g 工具包采用了仿生窗口部件的技术,即 在程序运行时,不采用操作系统的任何部件,而是使用底层绘制方法,自己绘制 窗1 :3 的外观,创建消息队列,管理时间循环。因此,s w i n g 工具包消除了操作系统 之间的限制,同样的界面在不同的操作系统之间的外观是完全一致的。而且,s w i n g 工具包的窗口部件种类很丰富,更能满足开发g u i 应用程序的需求。 但是,s w i n g 由于采用了仿生窗1 :3 技术,相应地也产生了一些缺点。首先是程 序过于庞大,运行效率低下,反应迟钝。再次是图形不是很美观,和操作系统的 其它程序外观不匹配。还有就是s w i n g 程序在读取w i n d o w s 事件时存在严重的缺 陷,因为程序员在读取事件队列的时候用了一种可能留下内存漏洞的方式,这为 程序的稳定性留下了一些隐患。 2 4 系统设计结构 前面已经具体分析了基于d s p 的可视化多处理器软件设计平台的主要功能, 要实现这些功能,可以将整个系统大致分为以下八个组成部分:数据流建模视图、 硬件配置视图、模型分析器、源代码生成器、工程文件生成器、链接文件生成器、 时序分析器、硬件在线调试视图,如图2 2 所示。 基于d s p 的可视化多处理器软件设计平台 数 据 流 建 模 视 图 硬 件 配 置 视 图 模 型 分 析 器 源 代 码 生 成 器 工 程 文 件 生 成 器 图2 2 系统组成结构 链 接 文 件 生 成 器 时 序 分 析 器 硬 件 调 试 视 图 各个组成部分的具体功能划分如下: 1 ) 数据流驱动建模视图:上层图形界面,提供原子模块、复合模块供用户创 建层次化模型以及定义变量的窗口。 2 ) 模型分析器:对建模视图中的模型进行初步分析,并提供简单的检测功能, 第二章平台的总体设计概述 包括完整性检查、类型匹配等。对模型的拓扑结构做出合理的分析,得出模型内 部的依赖关系,方便系统的代码生成等后期操作。 3 ) 源代码生成器:根据模型分析器得到的分析结果,生成正确、可读性较好 的c 、汇编级源代码。 4 ) 工程文件生成器:根据模型分析器得到的分析结果,调用相应、已有的函 数库文件,并生成对应模型在v i u s a l d s p + + 开发环境下的工程文件。 5 ) 硬件配置视图:上层图形界面,提供对硬件存储器的可视化操作,完成内 存区域的管理( “物理块、“输出块、“逻辑块 的划分) 及变量在内存中存储位 置的指派等操作。 6 ) 链接文件生成器:根据硬件内存结构视图得到内存资源的结构划分以及变 量在内存结构中的存储位置和大小等信息,生成符合对应硬件处理器要求的链接 文件。 7 ) 时序分析器:根据每个模块的运行时间产生每个处理器的的时序分析图, 对不满足时序要求的设计给出提示。 8 ) 硬件调试视图:在该视图下能够完成对代码的在线调试,包括设置断点、 单步运行等;能够实时查看处理器内部存储器的值,并根据m a p 文件能够实时查 看具体
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CI 199-2023医学知识图谱质量评价规范
- 2025年电子商务行业跨境电商市场前景预测研究报告
- 2025年生物医药科技应用前景研究报告
- 2025年环境监测产业技术创新与市场前景研究报告
- 商场供应商培训课件
- 国家事业单位招聘2025国家文化和旅游部恭王府博物馆应届毕业生招聘4人笔试历年参考题库附带答案详解
- 2025福建龙岩市人力资源服务有限公司招聘6人笔试参考题库附带答案详解
- 2025年甘肃公交建集团校园招聘200人笔试参考题库附带答案详解
- 2025年江西安义县工投商业管理有限公司第一批公开招聘工作人员15人笔试参考题库附带答案详解
- 2025年国网电力公司招聘(第二批)笔试参考题库附带答案详解
- 2.2创新永无止境教学课件 2025-2026学年度九年级上册 道德与法治 统编版
- 矿山爆破作业安全培训课件
- 2025-2026学年九年级英语上学期第一次月考 (四川成都专用) 2025-2026学年九年级英语上学期第一次月考 (四川成都专用)解析卷
- 高陡边坡稳定性控制技术及其工程实践
- 河南省委党校在职研究生入学考试真题及答案
- 2025年社区工作者招聘考试宗教学试卷
- 2025康复医学考试题库(含参考答案)
- 2025年十五五智能制造推进的战略思考报告-数字化转型基本普及 智能化升级战略突破
- 民兵护路基本知识培训课件
- 2024版中国难治性全身型重症肌无力诊断和治疗专家共识解读课件
- 2025年手卫生规范试题及答案
评论
0/150
提交评论