|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
传统的DSP应用系统设计流程分为2个部分:开发设计和产品实现。在开发设计 部分完成 方案设计和算法设计与验证,一般用Matlab语言进行仿真,当仿真结果满意时,再进入产品的实现阶段。
8 @/ m; @/ t* A- N0 ~" M1 b 将开发设计阶段的算法用C/C++或者汇编语言实现,在硬件的DSP目标板上调试。因此,需要将开发工具CCS把目标DSP程序运行的中间结果保存到PC机的硬盘上,然后调到Matlab工作空间,与Matlab算法的中间结果进行比较,以发现DSP程序中由设计或精度导致的结果偏差。如此过程反复进行,非常不便。% {. _! _, s4 L- x
. X1 G+ M3 \7 P( d
为了解决这个问题,出现了系统级设计方法的构想。系统级设计方法的核心是将算法设计 和系统级设计仿真在统一的开发环境中进行,从而有效地将开发流程的2个部分结合在一起。进行系统级设计需要一个统一的开发环境,且在该开发环境中可以对系统结构、算法进行描述,还能够对系统不同层次、不同组件和不同数据类型进行建模。Matlab Link for CC S Development Tools就是为了完成系统级设计而出现的。 ; f. ~& u& ~! X7 \* D- O3 v0 `
/ |4 u% Z: k9 C% Q/ T 1.Matlab Link for CCS Development Tools简介
. w$ G8 Z) e' p
% t+ g/ o& B7 t @& [ 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)板。3 s2 n& C, m3 S9 f& Y- G8 K& `
) X# H3 N% v: U& B0 a3 }* @# }
0 l- x6 Y; u3 P) ^1 q8 _ CCS Link主要特点总结如下:2 _; Z, K8 O: Q1 U) Y+ T
& @) _+ f9 h7 ^' O) c* c1 @" _ - t4 x3 w- b" ?; g9 B G
(1) Matlab函数可以自动完成调试、数据传递和验证。6 X1 Q: G4 g3 M* P3 H- C
(2)在Matlab和DSP之间实时传递数据,而不用停在DSP中程序的执行。
/ t- y3 @( g' t$ {8 H* I7 n6 O6 k s2 I (3)支持XDS510/XDS560仿真器,可以高速调试硬件DSP目标板。
* W( {( g; g& m1 O$ g8 }! B6 G (4)提供嵌入式对象,可以访问C/C++变量和数据。
8 V6 x. U. E; t& n5 } (5)对测试、验证和可视化DSP代码提供帮助。1 G' b4 M# i& c& R
(6)扩展了Matlab和eXpressDSP工具的调试能力。
$ z: [; K6 t. Z8 c. K- d! V6 B (7)符合TI eXpressDSP标准。
9 u, e/ F! S9 F) r! u8 F / G& |9 f G k2 j
2 CCS Link面向 TI DSP的系统级设计方法
! ?3 [; |# k- j% Z* t4 Z + B, t% s" Z8 u0 S: ^2 `0 |
CCS Link向用户提供了三种接口如图1所示。
7 f X, n8 a7 e6 | 6 N$ S' {% }8 Q$ F' e1 \% r
2.1 Link for CCS IDE
! W) T4 n7 P7 J( z' v) h; X Link for CCS IDE接口实现了CCS IDE和Matlab之间的连接,允许用户在Matlab 命令窗口下载运行CCS IDE中的程序,与目标内存之间(非实时地)交换数据,检测处理器的状态,停止或者启动程序在DSP中的运行。( J+ X8 I2 K; ?4 ^: X( P
* s1 T! {4 M0 G- v$ }5 {+ w Link for CCS IDE的优点:
0 A; U' @4 I" S/ d4 L# N! D
0 E/ a- p6 i# U0 v (1)用户可以利用Matlab强大的数据分析和可视化功能,节省设计和调试程序的时间。
7 i* G4 ?3 Q5 b" a (2)可以编写用于调试数字信号处理程序的Matlab语言批处理脚本,实现调试和分析的自动化。7 I. s: y$ N ]/ m w( `
(3)支持TI的C5000/6000系列DSP。
9 e8 f1 N0 E3 ?+ L' e4 o3 L2 p![]()
a" I: A" O3 |' \; M 2.2 Link for RTDX
' E! ^2 q9 h/ Z. N: L v: I; e 7 z9 Z. x# e7 t' J1 {7 ~+ J6 I. U: Z
' r3 z' I7 j2 f- \$ {# _" T' o
DSP的实时数据交换(RTDX)允许系统工程师在Host computer和Target之间进行实时的数据 传输且不用考虑Target程序。这里的Link for RTDX接口提供了Matlab和支持RTDX的TI DS P上运行的程序之间实时交换数据的一种方式。利用此连接对象,可以打开、使能、关闭或禁止DSP的RTDX通道,利用此通道可以实时的向硬件目标DSP发送和取出数据,而不用停止DS P口正在执行的程序。Link for RTDX实现了对实时数据的自动化的高级分析和可视化,实现了对复杂DSP程序的有效验证。5 T+ A; m8 k0 o
. L& P0 k- y" o
8 S9 {( h) n* U" J' o
例如把原始数据发送给程序进行处理,并把数据结果取回到Matlab空间中进行分析。RTDX 连接对象实际上是CCS连接对象的一个子类,在创建CCS连接对象的同时创建RTDX连接对象,他们不能分别构建。% O- U; e, W& ^* r }
/ V& a( k3 ~* z, @+ A2 U
0 Z1 z5 d# e% H! O7 u# n: E 2.3 嵌入式对象! a3 S' w7 M. H3 K4 [! _4 h4 Z
4 D* J6 L7 R8 t, U6 m7 G Z
$ ~& N/ Y% }. ~ 在Matlab环境中创建一个可以代表嵌入目标C程序中的变量的对象。利用嵌入式对象可以直接访问嵌入在目标DSP的存储器和寄存器中的变量,即把目标C程序中的变量作为Matlab的一个变量对待。在Matlab中收集DSP程序中的信息,转变数据类型,创建函数声明,改变变量值,并把信息返回到DSP程序中,所有这些操作都在Matlab环境下完成。
) ?2 p! e5 N0 B2 ]! o3 o% Z
9 z) P! R9 Q* J* D/ i( I 3 CCS IDE连接对象应用举例+ J a7 w0 T& k. Y$ b: Z+ Q7 d. V1 I
6 A, v" {: [4 h/ w0 D* R
5 \8 C6 R. J& q4 a' C- f" x$ f6 c CCS IDE连接对象提供Matlab与CCS IDE和目标DSP的连接。利用此连接可以在Matlab下控制和操作DSP中的应用程序,利用Matlab中强大计算分析和可视化工具来分析和对比目标程序运行中的结果,大大缩短嵌入式应用程序的开发调试周期。) ]- Y8 s+ @9 ]0 Q0 [# H7 w
* X1 I. }* }2 c) O+ ?5 @
! S) Q9 R8 E8 o3 V
具体应用步骤如下:
# r1 Z: i9 ]0 f# K (1)选择DSP型号
* ?. u* L6 a( _! A6 }, O. _ 根据ccsfoardinfo函数列出安装在主机上的目标板及其DSP信息,从中选择需要的型号。/ k1 I0 W) l! U, s+ B
此处选择0号DSP:
. h1 Y4 t8 Z ?+ u+ I; P/ C" F Boardnum=0; procmum=0;
9 q0 A1 J' ^ ? i/ q' t1 ~ (2)创建CCS IDE连接对象. }( r6 |9 m! n. L% a6 g& f
cc=ccsdsp(′boardnum′,boardmun,′procnum′
1 p \! j' i4 v+ G3 O- C+ L
% S& d. j( E" D0 \- `# r xu_6x11.pjt是CCSLink提供的一个工程文件。
3 r: z" q& }6 k4 a# N 编译链接CCS IDE中当前的工程文件,生成目标DSP可执行文件: , Z1 R) Z2 Y0 \) h; k) \( x
P1 y' I+ e$ N; p, Q0 G
(4)在Matlab环境下对CCS IDE连接对象进行操作
# ~1 m/ j1 A& S, _0 H F g
x9 e+ c; V! L, i
: {- C& _9 E% s# Q/ x 利用CCS Link中的read和write函数来访问2个全局数组: # R* G/ H$ ]5 Q f3 ^
D, Z7 G, W- `( M u ' ] I9 m& K6 R$ l( O1 A& L
从这个例子中可以看到在Matlab环境下操作DSP中的变量或者寄存器是很方便的。这样就可以在Matlab环境下完成DSP程序的仿真调试。而不用像传统的开发要把DSP运行结果调回PC机验证,方便了开发设计,缩短了开发周期。# ?3 Q' m7 V% P# m6 D# Y
- [% P9 | t3 ^6 z' I
4结语
- s d& N M. z. A( F : g6 x0 B) { P) J" ]1 c
0 l/ J4 r; G M5 ?
应用Matlab对DSP进行系统级的设计极大地改进了传统的设计方法。Matlab系统级的设计环境,有助于在设计早期发现错误和应对系统复杂性不断增加的挑战,方便了复杂DSP应用系统的设计。9 Z: l+ r# x6 H% _2 [
, |) e2 e% S1 p% w- ^2 A
5 t7 U4 S1 _5 A1 b- W* w
0 i% g( `' l! s/ I
& Q! A5 {# x x6 i
|
|