|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
传统的DSP应用系统设计流程分为2个部分:开发设计和产品实现。在开发设计 部分完成 方案设计和算法设计与验证,一般用Matlab语言进行仿真,当仿真结果满意时,再进入产品的实现阶段。
* H4 i& n/ E: x5 R- m; h 将开发设计阶段的算法用C/C++或者汇编语言实现,在硬件的DSP目标板上调试。因此,需要将开发工具CCS把目标DSP程序运行的中间结果保存到PC机的硬盘上,然后调到Matlab工作空间,与Matlab算法的中间结果进行比较,以发现DSP程序中由设计或精度导致的结果偏差。如此过程反复进行,非常不便。
* I, f6 K6 Z' F: l H5 g: K ( i L8 k9 P- m; s3 v8 k" I$ {( D
为了解决这个问题,出现了系统级设计方法的构想。系统级设计方法的核心是将算法设计 和系统级设计仿真在统一的开发环境中进行,从而有效地将开发流程的2个部分结合在一起。进行系统级设计需要一个统一的开发环境,且在该开发环境中可以对系统结构、算法进行描述,还能够对系统不同层次、不同组件和不同数据类型进行建模。Matlab Link for CC S Development Tools就是为了完成系统级设计而出现的。
1 `/ w5 w& L4 D( c3 x; Y) \ % d0 t' t, q2 |& G" N
1.Matlab Link for CCS Development Tools简介1 L; M: e+ S! g. |
; G. M$ B0 g7 o' s0 ^( | 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)板。
/ x7 q' t* ? i' h& C* a 3 R3 S+ q4 }3 K7 o5 X: {* Q( q& H
/ c' x, ]( g! O+ B- E CCS Link主要特点总结如下:
/ i( q9 ?3 M' t( ]) Z, v% c7 ?& T7 e4 z , L1 W9 t- V( v* q
4 Z5 e6 T y6 l1 F4 Y (1) Matlab函数可以自动完成调试、数据传递和验证。
/ x" Z! z- e: L* F/ G" j2 t* B' i0 D6 W (2)在Matlab和DSP之间实时传递数据,而不用停在DSP中程序的执行。
$ c9 g: i( E' H* O (3)支持XDS510/XDS560仿真器,可以高速调试硬件DSP目标板。
# T$ U' |+ n$ H7 B9 h, @6 y, U4 G (4)提供嵌入式对象,可以访问C/C++变量和数据。
; }* c1 a7 Y5 M, q* H2 V (5)对测试、验证和可视化DSP代码提供帮助。% M" e$ W" _0 v3 L% `. F, ], F3 w0 R
(6)扩展了Matlab和eXpressDSP工具的调试能力。
# V1 a( b% S Y w. C (7)符合TI eXpressDSP标准。 2 L W5 o) [5 G! d- t% O
* R) C v& R$ `4 n& m# |8 K5 t4 j 2 CCS Link面向 TI DSP的系统级设计方法
1 M$ n9 h1 A9 Y. j : ~" d+ h) E$ z8 |9 b( A
CCS Link向用户提供了三种接口如图1所示。8 {8 A6 T. L% b5 R: u
- ~, |: I; N7 R/ E: w0 A2 |7 O 2.1 Link for CCS IDE
) k( h( }! p' H7 `) V* k Link for CCS IDE接口实现了CCS IDE和Matlab之间的连接,允许用户在Matlab 命令窗口下载运行CCS IDE中的程序,与目标内存之间(非实时地)交换数据,检测处理器的状态,停止或者启动程序在DSP中的运行。
* N( q; x) x: Q
. ^" g' X ^% `$ L% W, q E Link for CCS IDE的优点:+ g/ m/ q) ]1 L
+ [. {6 g/ m Y6 `$ L( V: s' I (1)用户可以利用Matlab强大的数据分析和可视化功能,节省设计和调试程序的时间。+ f: g. q) r1 K8 J, Y
(2)可以编写用于调试数字信号处理程序的Matlab语言批处理脚本,实现调试和分析的自动化。0 H0 d7 W9 A+ W
(3)支持TI的C5000/6000系列DSP。
0 Q( G& m! D7 R6 Z![]()
; I8 f5 Y" z% u6 D- B) I 2.2 Link for RTDX
( c. Z% t' R* K( D b
# @: H- A3 X; c" [8 Y : r( ]* w, C. K" U& R- L2 x8 c4 f
DSP的实时数据交换(RTDX)允许系统工程师在Host computer和Target之间进行实时的数据 传输且不用考虑Target程序。这里的Link for RTDX接口提供了Matlab和支持RTDX的TI DS P上运行的程序之间实时交换数据的一种方式。利用此连接对象,可以打开、使能、关闭或禁止DSP的RTDX通道,利用此通道可以实时的向硬件目标DSP发送和取出数据,而不用停止DS P口正在执行的程序。Link for RTDX实现了对实时数据的自动化的高级分析和可视化,实现了对复杂DSP程序的有效验证。& V! y/ V5 M9 M3 D
4 S8 F3 K, M4 F5 ]- W
0 I- ` ?0 D6 d. K 例如把原始数据发送给程序进行处理,并把数据结果取回到Matlab空间中进行分析。RTDX 连接对象实际上是CCS连接对象的一个子类,在创建CCS连接对象的同时创建RTDX连接对象,他们不能分别构建。+ z! S( U* @& s& O8 [8 X
' }8 v/ G- d- b
- ` @. w3 ~ x( q- R 2.3 嵌入式对象" m# ~ E% K- w* x7 O0 f. Q
" Q. ]( M) W" b 3 D- _5 Q1 i( D) b$ B1 z; }# K
在Matlab环境中创建一个可以代表嵌入目标C程序中的变量的对象。利用嵌入式对象可以直接访问嵌入在目标DSP的存储器和寄存器中的变量,即把目标C程序中的变量作为Matlab的一个变量对待。在Matlab中收集DSP程序中的信息,转变数据类型,创建函数声明,改变变量值,并把信息返回到DSP程序中,所有这些操作都在Matlab环境下完成。
1 V9 I4 C/ J; } 2 n/ y; U" K' _$ M4 V* d
3 CCS IDE连接对象应用举例) I/ R5 u+ Z/ G$ j' S# _; M
/ I' }+ @+ g( I" P" Q, ~
7 h- {- q" A* k; ^ CCS IDE连接对象提供Matlab与CCS IDE和目标DSP的连接。利用此连接可以在Matlab下控制和操作DSP中的应用程序,利用Matlab中强大计算分析和可视化工具来分析和对比目标程序运行中的结果,大大缩短嵌入式应用程序的开发调试周期。7 ~4 w6 w c8 O, Y+ W
$ L5 k N% B* Y$ D: [3 N
6 o2 a4 i6 N, j" O7 [) E$ g 具体应用步骤如下:
* i4 U4 ]; Q8 O. u (1)选择DSP型号
1 m2 d/ y$ C& c! Y' Y+ Y 根据ccsfoardinfo函数列出安装在主机上的目标板及其DSP信息,从中选择需要的型号。( b V0 B; ? J8 O/ y* p
此处选择0号DSP: j7 Y" h7 M% A4 a) I1 e3 w, n( x. p: i
Boardnum=0; procmum=0;
4 ]/ B8 w# o9 I* z% i (2)创建CCS IDE连接对象1 m4 U- Y& ~0 G
cc=ccsdsp(′boardnum′,boardmun,′procnum′& M1 n1 r3 R$ ]
7 d1 x1 a5 n* s9 {/ m' ]2 O& T# m
xu_6x11.pjt是CCSLink提供的一个工程文件。
) S0 X$ d0 S% ]+ K- a 编译链接CCS IDE中当前的工程文件,生成目标DSP可执行文件: & p3 x* X$ p0 f3 g* G9 i" _
![]()
1 U9 P( @- v4 D6 u! I9 y (4)在Matlab环境下对CCS IDE连接对象进行操作
" R: S; A+ o. p* |$ u- _0 {3 ~0 `
# h" t5 A5 R# `- a! n( R2 y2 g % k( e& [9 p5 f% }/ `1 f* v
利用CCS Link中的read和write函数来访问2个全局数组:
6 G% k0 A% k$ y4 d4 y) ~. N; ~& Q" t
& o$ Q4 i' x X. I' h" i " S! w6 y! y+ E; R4 I
从这个例子中可以看到在Matlab环境下操作DSP中的变量或者寄存器是很方便的。这样就可以在Matlab环境下完成DSP程序的仿真调试。而不用像传统的开发要把DSP运行结果调回PC机验证,方便了开发设计,缩短了开发周期。# x8 F$ x# M5 F6 E
![]()
! m1 s+ P8 V6 k2 w, J9 W# f 4结语
9 v! C4 t1 {+ Z3 G6 c # `. Q# Y% _, a M
- u! ~5 I% `2 S7 c 应用Matlab对DSP进行系统级的设计极大地改进了传统的设计方法。Matlab系统级的设计环境,有助于在设计早期发现错误和应对系统复杂性不断增加的挑战,方便了复杂DSP应用系统的设计。
1 {( J; G; F# h( g8 j7 E9 D) A" K6 n; ~6 x0 q* L" K. S
2 Y8 r! m' V& R1 G! R
# H/ @ k' i" _+ ^
5 P1 i2 ~+ p# T$ J( m ]* b# }6 N
|
|