|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
传统的DSP应用系统设计流程分为2个部分:开发设计和产品实现。在开发设计 部分完成 方案设计和算法设计与验证,一般用Matlab语言进行仿真,当仿真结果满意时,再进入产品的实现阶段。
Y, ^) Y2 ~3 Z# L3 w9 Q0 R! u 将开发设计阶段的算法用C/C++或者汇编语言实现,在硬件的DSP目标板上调试。因此,需要将开发工具CCS把目标DSP程序运行的中间结果保存到PC机的硬盘上,然后调到Matlab工作空间,与Matlab算法的中间结果进行比较,以发现DSP程序中由设计或精度导致的结果偏差。如此过程反复进行,非常不便。
4 K9 o J1 J" ?) u. x1 E/ H) M 5 s3 H* H' b6 [# n9 {7 t
为了解决这个问题,出现了系统级设计方法的构想。系统级设计方法的核心是将算法设计 和系统级设计仿真在统一的开发环境中进行,从而有效地将开发流程的2个部分结合在一起。进行系统级设计需要一个统一的开发环境,且在该开发环境中可以对系统结构、算法进行描述,还能够对系统不同层次、不同组件和不同数据类型进行建模。Matlab Link for CC S Development Tools就是为了完成系统级设计而出现的。 8 k6 C4 E/ } `5 _* a3 ~6 v8 v% T
, x5 s A: v7 g" m* h, Z 1.Matlab Link for CCS Development Tools简介
" p$ i) v' s3 l5 {. G' R }+ ]7 p 4 @* v# l R* a! X% t/ F& H" 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)板。
/ i/ ?4 i; [7 D ; q5 g4 I6 j; T4 T( B0 C
3 v) \' y; `+ S7 v7 O" u+ R& p2 P3 N CCS Link主要特点总结如下:
. w' h1 @' v% z4 L
, ^7 H0 Y% v8 Q6 \/ x
9 I; r3 F) w" s; ~- H (1) Matlab函数可以自动完成调试、数据传递和验证。* ^3 e7 p& Q8 T# w" d) [5 S% z0 d
(2)在Matlab和DSP之间实时传递数据,而不用停在DSP中程序的执行。1 i4 }0 w/ q; f; h" V$ q* h
(3)支持XDS510/XDS560仿真器,可以高速调试硬件DSP目标板。! }+ `8 _8 X/ z& g! ]
(4)提供嵌入式对象,可以访问C/C++变量和数据。
% S6 ~* @% h' _5 I) q" @% c. _ (5)对测试、验证和可视化DSP代码提供帮助。
+ G! g. w, i0 p5 O, F9 z& ^1 j (6)扩展了Matlab和eXpressDSP工具的调试能力。* o4 y6 W2 N" A4 a1 z
(7)符合TI eXpressDSP标准。 / B8 q' k# g3 y3 D- ^ y" j+ u
3 m7 H% r, A" A& k8 e1 B 2 CCS Link面向 TI DSP的系统级设计方法4 h2 u# a' M! e' q
* s4 R' v! S. ]+ |, f( L
CCS Link向用户提供了三种接口如图1所示。9 M7 c) _* A( Z. F
. k0 Y( U& G0 ~2 @ 2.1 Link for CCS IDE3 p' R) C V/ N2 f, f9 [
Link for CCS IDE接口实现了CCS IDE和Matlab之间的连接,允许用户在Matlab 命令窗口下载运行CCS IDE中的程序,与目标内存之间(非实时地)交换数据,检测处理器的状态,停止或者启动程序在DSP中的运行。
- s B i- S0 H( X( d$ z 1 L5 j7 M. M* p1 p/ s. W. X
Link for CCS IDE的优点:6 N: y- k) N+ l$ L
6 d- }: q F) ]8 x7 i
(1)用户可以利用Matlab强大的数据分析和可视化功能,节省设计和调试程序的时间。' W& y+ f+ U& P6 Q* D1 ?
(2)可以编写用于调试数字信号处理程序的Matlab语言批处理脚本,实现调试和分析的自动化。. r# Q# {( L* k
(3)支持TI的C5000/6000系列DSP。
4 k$ R4 k/ x' {% |) g![]()
) j% a F, h: K 2.2 Link for RTDX
" m j/ x) s1 V) `4 j, w7 m. Z & d. U6 o, ]4 V
7 J8 t4 B6 v+ _5 ^
DSP的实时数据交换(RTDX)允许系统工程师在Host computer和Target之间进行实时的数据 传输且不用考虑Target程序。这里的Link for RTDX接口提供了Matlab和支持RTDX的TI DS P上运行的程序之间实时交换数据的一种方式。利用此连接对象,可以打开、使能、关闭或禁止DSP的RTDX通道,利用此通道可以实时的向硬件目标DSP发送和取出数据,而不用停止DS P口正在执行的程序。Link for RTDX实现了对实时数据的自动化的高级分析和可视化,实现了对复杂DSP程序的有效验证。
7 c4 c4 E2 q. B" `, r3 z
& F6 _3 F0 A# n. v7 _6 @
+ t9 g* q, N' [; E 例如把原始数据发送给程序进行处理,并把数据结果取回到Matlab空间中进行分析。RTDX 连接对象实际上是CCS连接对象的一个子类,在创建CCS连接对象的同时创建RTDX连接对象,他们不能分别构建。) O8 |$ N" h! W$ ]2 ?1 X9 N
( M% F( ~" G! l$ _- ~: i
9 q+ k6 I4 X. S8 J# ^; _# _" J0 q 2.3 嵌入式对象% v$ r1 T- [" n9 F
9 R# s( B5 X4 W! d. t. M/ R) e
5 U3 \# R! T8 K' |8 V 在Matlab环境中创建一个可以代表嵌入目标C程序中的变量的对象。利用嵌入式对象可以直接访问嵌入在目标DSP的存储器和寄存器中的变量,即把目标C程序中的变量作为Matlab的一个变量对待。在Matlab中收集DSP程序中的信息,转变数据类型,创建函数声明,改变变量值,并把信息返回到DSP程序中,所有这些操作都在Matlab环境下完成。
. H1 [* m9 ^$ F
+ N) g6 H" y* k2 w( u( z9 F 3 CCS IDE连接对象应用举例+ x R L9 I2 B9 P0 e) }& }
9 j+ B, ~9 T) K* `& B
: E3 d8 q. w6 n# f
CCS IDE连接对象提供Matlab与CCS IDE和目标DSP的连接。利用此连接可以在Matlab下控制和操作DSP中的应用程序,利用Matlab中强大计算分析和可视化工具来分析和对比目标程序运行中的结果,大大缩短嵌入式应用程序的开发调试周期。
0 \! p' @/ V1 {5 J' B" S# @
& Y1 E! U M: W ) g' o+ z" |6 l: c
具体应用步骤如下:/ ]- O' }7 k( t
(1)选择DSP型号& X- C+ [+ X, R
根据ccsfoardinfo函数列出安装在主机上的目标板及其DSP信息,从中选择需要的型号。3 M$ c. E, N) Q& }* T* r; ~* C' ]; C
此处选择0号DSP:% R% c/ U0 W. z# K/ R* E
Boardnum=0; procmum=0;& W/ Y# T0 b' r! T9 @7 t7 Z, j; @
(2)创建CCS IDE连接对象* L' R! s. Q! t5 ^
cc=ccsdsp(′boardnum′,boardmun,′procnum′) Z: L5 n+ c. [! S/ G' Y" r
6 I2 U$ N' W( S2 ^" A$ ]( i xu_6x11.pjt是CCSLink提供的一个工程文件。: J& O+ h& `5 r* J8 L! o' e
编译链接CCS IDE中当前的工程文件,生成目标DSP可执行文件: : N4 H9 F4 T/ Y2 {6 C; S+ C3 t* |2 h7 V
![]()
% t% b. u/ y7 M0 D$ X1 P (4)在Matlab环境下对CCS IDE连接对象进行操作
' @$ w3 q" z! }- }$ {; Y; z+ j/ p
0 M" f. G8 A6 ?! ` ! ~1 P# g, z% E( D
利用CCS Link中的read和write函数来访问2个全局数组:
8 V0 K( |# K' D
. M/ {1 o" a6 B/ h G$ p$ G
7 |0 s& d0 [/ W" `; k9 m# }4 w 从这个例子中可以看到在Matlab环境下操作DSP中的变量或者寄存器是很方便的。这样就可以在Matlab环境下完成DSP程序的仿真调试。而不用像传统的开发要把DSP运行结果调回PC机验证,方便了开发设计,缩短了开发周期。
" A1 q. h5 S \1 f![]()
6 f* m# z5 W: w" o1 J/ I 4结语
) s6 f6 k/ P) `; { 7 M* l! C! W( h) y2 S7 h0 n
7 p3 P# O3 A$ z! Q7 v l
应用Matlab对DSP进行系统级的设计极大地改进了传统的设计方法。Matlab系统级的设计环境,有助于在设计早期发现错误和应对系统复杂性不断增加的挑战,方便了复杂DSP应用系统的设计。
4 Q2 y# [% A" {1 u" ?0 F# I% X
$ b) O3 e- m8 q( N" ?$ j6 k, }/ N1 |
. |; u1 ? T/ @- B+ k! V( @
3 g5 @8 }4 _0 Z' a. A+ ? |
|