EDA365电子论坛网

标题: 基于Matlab的DSP系统级的设计方法 [打印本页]

作者: mm58690    时间: 2018-9-11 15:49
标题: 基于Matlab的DSP系统级的设计方法
传统的DSP应用系统设计流程分为2个部分:开发设计和产品实现。在开发设计 部分完成 方案设计和算法设计与验证,一般用Matlab语言进行仿真,当仿真结果满意时,再进入产品的实现阶段。

; |4 m% ~: U6 `9 Z$ {$ ?        将开发设计阶段的算法用C/C++或者汇编语言实现,在硬件的DSP目标板上调试。因此,需要将开发工具CCS把目标DSP程序运行的中间结果保存到PC机的硬盘上,然后调到Matlab工作空间,与Matlab算法的中间结果进行比较,以发现DSP程序中由设计或精度导致的结果偏差。如此过程反复进行,非常不便。
; u0 F( K- e" k7 r) x
2 A4 n/ k+ Q7 c& Z& q& o3 p/ ]  为了解决这个问题,出现了系统级设计方法的构想。系统级设计方法的核心是将算法设计 和系统级设计仿真在统一的开发环境中进行,从而有效地将开发流程的2个部分结合在一起。进行系统级设计需要一个统一的开发环境,且在该开发环境中可以对系统结构、算法进行描述,还能够对系统不同层次、不同组件和不同数据类型进行建模。Matlab Link for CC S Development Tools就是为了完成系统级设计而出现的。   
9 k& Q$ f: @9 X' X% X2 |
& ^( t7 X; |* i       1.Matlab Link for CCS Development Tools简介
  _# U& e7 A3 Z: E& e8 F  h/ T  
, e% P8 H% Z7 W. [, b1 \& @+ r      Mathworks公司和TI公司联合开发的Matlab Link for CCS Development Tools(CCS Link) 提供了Matlab和CCS的接口,即把Matlab和TI CCS及目标DSP连接起来。利用此工具可以像操作Matlab变量一样来操作TI DSP的存储器或寄存器,即整个目标DSP对于Matlab好像是透明的,开发人员在Matlab环境中就可以完成对CCS的操作。Matlab Link for CCS Dev elopment Tools可以支持CCS能够识别的任何目标板,包括TI公司的DSP,EVM板和用户自己开发的目标DSP(C2000,C5000,C6000)板。
, E9 [5 H  d; G3 i6 l+ Y$ g  
$ h. V, H8 B( V! ~' I& K
) \' e+ x, C/ a      CCS Link主要特点总结如下:1 i3 F9 T* ?) `- n2 ^
  + d) R1 o% A+ W; f

) d5 m6 k0 G5 m# n( K        (1) Matlab函数可以自动完成调试、数据传递和验证。
4 y# D# b: O# Q0 |6 R  (2)在Matlab和DSP之间实时传递数据,而不用停在DSP中程序的执行。
+ [- M) E! s$ s1 u' ?  (3)支持XDS510/XDS560仿真器,可以高速调试硬件DSP目标板。
+ s0 r" P0 D: `5 c: ^+ {+ l+ X  (4)提供嵌入式对象,可以访问C/C++变量和数据。9 p, C: R8 b% G+ @
  (5)对测试、验证和可视化DSP代码提供帮助。
* V' [  b( r( H3 J$ C/ I  (6)扩展了Matlab和eXpressDSP工具的调试能力。
& S2 `7 O5 ]# z6 h) G3 ~1 ]: `  (7)符合TI eXpressDSP标准。 8 U# q1 k' g7 g: i. I; K
5 g  p, H3 z5 ~$ V( D2 I7 ?8 ^
         2    CCS Link面向 TI DSP的系统级设计方法$ u$ A0 h" E% U8 F1 }9 f! C1 j

% [1 l3 D* ~2 T6 b) `* |7 G. w0 m  CCS Link向用户提供了三种接口如图1所示。
" g, [  ~+ X* N& E# r4 P3 p5 W! J) o7 c & U& T  l" }) p$ I6 W0 @
  2.1   Link for CCS IDE6 m9 d$ h, {  Q: |7 G
  Link for CCS IDE接口实现了CCS IDE和Matlab之间的连接,允许用户在Matlab 命令窗口下载运行CCS IDE中的程序,与目标内存之间(非实时地)交换数据,检测处理器的状态,停止或者启动程序在DSP中的运行。& i3 F) A" S! h4 m% E  a. K

8 S# v& J4 d4 |3 K- V  Link for CCS IDE的优点:
0 Z0 Z3 W5 _7 I- ~; x3 G0 y
: o+ m: C1 @0 N/ F% p" Y  (1)用户可以利用Matlab强大的数据分析和可视化功能,节省设计和调试程序的时间。" A# e/ C+ N4 R  @' ~6 x
  (2)可以编写用于调试数字信号处理程序的Matlab语言批处理脚本,实现调试和分析的自动化。
  m  g0 t0 F- m7 D6 ]( k7 W- w  (3)支持TI的C5000/6000系列DSP。
% k) i5 E4 @) b% K; C. W: |- ?2 G( }
       2.2   Link for RTDX; e/ @6 @$ M; @7 S$ ?
  8 d7 e& s1 c- ?, {9 x0 p+ I
) ~" D+ h2 v! q
       DSP的实时数据交换(RTDX)允许系统工程师在Host computer和Target之间进行实时的数据 传输且不用考虑Target程序。这里的Link for RTDX接口提供了Matlab和支持RTDX的TI DS P上运行的程序之间实时交换数据的一种方式。利用此连接对象,可以打开、使能、关闭或禁止DSP的RTDX通道,利用此通道可以实时的向硬件目标DSP发送和取出数据,而不用停止DS P口正在执行的程序。Link for RTDX实现了对实时数据的自动化的高级分析和可视化,实现了对复杂DSP程序的有效验证。
3 B2 \$ U# t0 {9 i8 {5 N) n  - O% l$ y- I) R9 }
: ?/ A. o$ a) U' f3 D$ N+ n
        例如把原始数据发送给程序进行处理,并把数据结果取回到Matlab空间中进行分析。RTDX 连接对象实际上是CCS连接对象的一个子类,在创建CCS连接对象的同时创建RTDX连接对象,他们不能分别构建。5 v8 _+ i" f; V7 a' n7 B8 D
  
# M; N( ?. R  q' z
' Q8 L% g. V. x& u2 N       2.3  嵌入式对象/ p$ t5 T$ |2 j" S7 N8 x3 B8 l) \  t
  ( v2 `: d' Q+ @+ E

+ q9 s9 T7 p& ^, V8 V8 l+ S      在Matlab环境中创建一个可以代表嵌入目标C程序中的变量的对象。利用嵌入式对象可以直接访问嵌入在目标DSP的存储器和寄存器中的变量,即把目标C程序中的变量作为Matlab的一个变量对待。在Matlab中收集DSP程序中的信息,转变数据类型,创建函数声明,改变变量值,并把信息返回到DSP程序中,所有这些操作都在Matlab环境下完成。 0 J/ P4 J% p: d* D8 a% E! T
; ]# v" G& {$ e' Z( C$ @4 ]/ T
       3    CCS IDE连接对象应用举例9 N" j! ^7 R( B$ Z1 J7 Q
  
" m9 b, }) j9 {1 n' `' `8 t ; Z7 }4 }# S" m+ A' A- z& v
        CCS IDE连接对象提供Matlab与CCS IDE和目标DSP的连接。利用此连接可以在Matlab下控制和操作DSP中的应用程序,利用Matlab中强大计算分析和可视化工具来分析和对比目标程序运行中的结果,大大缩短嵌入式应用程序的开发调试周期。
, ~5 |6 C0 r! `+ n+ a/ N( L  0 T3 p1 T: X; h- N& }
  a. O+ m) y2 f6 d5 s/ H5 h
     具体应用步骤如下:
7 b4 l4 [0 C$ e; B. g& O  (1)选择DSP型号
+ t7 d, x$ G# F. X( ?# J  根据ccsfoardinfo函数列出安装在主机上的目标板及其DSP信息,从中选择需要的型号。
0 n+ G( Y- _# t0 L; z) l  此处选择0号DSP:
* E  _  F' T5 B' g, P% B  Boardnum=0; procmum=0;
. r, v' ^6 _2 }1 E- e" S9 T  (2)创建CCS IDE连接对象; [* W) ?1 t- }1 \6 p
  cc=ccsdsp(′boardnum′,boardmun,′procnum′
. T. a* V7 l7 W
% A, ^9 o6 V0 E; F$ r0 m. m        xu_6x11.pjt是CCSLink提供的一个工程文件。
  x8 l3 g3 C; V* |  编译链接CCS IDE中当前的工程文件,生成目标DSP可执行文件: 2 p' ~: n% N3 y

1 V- k% F/ r& C      (4)在Matlab环境下对CCS IDE连接对象进行操作
! e/ e) b/ k6 ^  $ }. o  G2 \! G! E* B( N! l( A6 W

) w1 [& c. ]9 ^9 ?        利用CCS Link中的read和write函数来访问2个全局数组:  ' _, l, R# Q$ `: v4 G4 j
  8 p# v' L! e0 S! n3 h8 E$ E* Y
% P, k5 j! y7 h. P' [. D; v8 g
       从这个例子中可以看到在Matlab环境下操作DSP中的变量或者寄存器是很方便的。这样就可以在Matlab环境下完成DSP程序的仿真调试。而不用像传统的开发要把DSP运行结果调回PC机验证,方便了开发设计,缩短了开发周期。
4 ^# S; U# Q* O8 N
& S# J. e, w9 y0 E5 r8 q      4结语8 j( @- Z& V- p6 E  k
  
/ S' [6 n. n7 O" I ; i4 v- m4 C" o3 G( ]4 O* _
        应用Matlab对DSP进行系统级的设计极大地改进了传统的设计方法。Matlab系统级的设计环境,有助于在设计早期发现错误和应对系统复杂性不断增加的挑战,方便了复杂DSP应用系统的设计。
5 \( y8 ~! L9 T: p$ g% k" u9 W, A0 \3 _4 h# L/ D. f

- a& U1 t! L/ n/ R
* o# ]5 X. {6 [! C6 k" M8 j5 H9 k6 T6 p! }

作者: cj223356    时间: 2018-9-12 10:15
资料不错,谢谢分享
作者: AdsLIA    时间: 2018-9-12 21:28
谢谢
! j/ g2 f9 L8 x* V0 P/ J7 Y




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2