新闻中心

EEPW首页>嵌入式系统>设计应用> 基于DSP的合成孔径雷达成像系统逆存储转置器设计

基于DSP的合成孔径雷达成像系统逆存储转置器设计

作者: 时间:2012-08-01 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/257315.htm

5.软件设计与实现

TMS320C6415是面向C结构的芯片,支持标准C/C++编程,其开发工具Code Composer Studio(CCS2.21)内嵌C编译器的编译效率可达汇编的85%。另外,C编程可提高程序的可维护性、可移植性、可继承性,便于缩短软件开发周期,因此本程序选择采用C语言编写。


图3 程序层次结构和模块划分

5.1软件模块划分

软件层次结构和模块划分如图3所示。DSP软件的主要部分是底层的四个功能模块,这四个功能模块分别完成以下操作:1. 从输入FIFO中读取两条方位线数据(每条方位线2048点,每点数据类型为短整型)到DSP内存中;2. 将读入的数据按顺序存储到SDRAM中;3. 把SDRAM中的数据沿距离线顺序读到DSP内存中,即完成转置操作;4. 把转置后的数据送至输出FIFO。

5.2软件各模块间关系

l 上电初始化模块:在DSP上电后,完成与硬件工作有关的各控制寄存器的初始化,以及与软件工作有关的各内部变量和存储区的初始化;
l 主处理模块:调用其它功能模块,完成整个转置流程;
l 数据输入模块:受主处理模块调用,利用EDMA完成数据输入;
l 写SDRAM模块:受主处理模块调用,利用EDMA完成数据写操作;
l 读SDRAM模块:受主处理模块调用,利用EDMA完成数据读操作;
l 数据输出模块:受主处理模块调用,利用EDMA完成数据输出。

5.3 C6415的EDMA控制寄存器

EDMA是C621x/671x/641x特有的数据存取方式。在C621x/671x/641x中,EDMA控制寄存器负责片内二级存储器与其它外设之间的数据传输。EDMA控制寄存器和DMA控制寄存器在结构上有很大不同。其增强之处包括:

l 提供了64个传输通道;
l 通道间优先级可设置;
l 支持不同结构数据传输的链接。

EDMA控制寄存器主要由事件(中断)处理寄存器、事件编码器、参数RAM以及硬件地址发生器构成。其中,事件(中断)处理寄存器负责对EDMA事件进行捕获。一个事件相当于一个同步信号,由它触发一个EDMA通道开始数据传输。如果多个事件同时发生,则由事件编码器对它们进行分辨,将同时发生的事件进行排序,并决定事件的处理顺序。EDMA的参数RAM中存放了有关的传输参数,这些参数会被送往硬件地址发生器,进而产生读写操作所需的地址。

5.4 ICTM软件设计流程


图4 ICTM软件设计流程

ICTM模块软件设计流程可用图4来表示。首先完成上电复位,初始化EMIFA和EMIFB配置寄存器、中断控制寄存器和EDMA控制寄存器,之后在主程序中完成各常量和变量的定义及初始化。完成上述初始化定义后就可以使能外部中断控制寄存器和EDMA控制寄存器,等待外部中断INT4的触发。INT4的触发源来自脉冲PRF,该脉冲的到来说明两条待输入的方位线数据已送至输入FIFO,此时CPU可以将这两条方位线数据读到DSP内存,并送至SDRAM的相应存储区。

由于输入/输出数据结构相对简单,读输入FIFO、写SDRAM、读SDRAM以及写输出FIFO四个过程可以采用“EDMA链(EDMA Chain)”的方式进行。即第一个EDMA传输完成后,紧接着启动第二个EDMA传输,直到最后一个EDMA传输完成,这样可以在不受CPU干预的情况下完成数据的搬移,有利于提高数据传输效率。

5.5 软件并行设计问题

由于EDMA不受CPU干预,因此在使用EDMA传输数据的同时,CPU可并行执行其它指令,这样可极大提高代码的执行效率。举例如下:

if(EDMA_intTest(22))
{
*ifoeoff=0;
EDMA_intClear(22);
EDMA_setChannel(hEdmaCha25);// trigger EDMA to reading data from SDRAM
#pragma MUST_ITERATE(32,,8);
for(i=0;i {
headwriteaddr[ i]=inputa[ i];
}
WORD_ALIGNED(inputb);
WORD_ALIGNED(inputc);
WORD_ALIGNED(inputa);
#pragma MUST_ITERATE(64,,8);
for(i=0;i {
inputb[ i]=inputa[2*i+64];
inputc[ i]=inputa[2*i+65];
}
}

其中EDMA_setChannel(hEdmaCha25)语句用来启动EDMA25通道的传输,完成从SDRAM读取转置数据的任务。EDMA在进行数据传输的同时,CPU则继续执行之后的三条语句headwriteaddr[ i]=inputa[ i]、inputc[ i]=inputa[2*i+65]、inputb[ i]=inputa[2*i+64],直到EDMA传输完成并发出中断,CPU才响应EDMA中断。

显然,采用上述并行处理的方式,CPU工作周期得到充分利用,提高了代码的执行效率,有利于满足系统的实时性要求。

6.结束语

(ICTM)是雷达(SAR)实时成像处理系统的一个重要模块。本文选择TI的一款高性能定点DSP芯片TMS320C6415为核心处理器,两条大容量SDRAM作为外部存储器,实现输入数据的转置操作。软件编程采用并行处理方式,提高了代码执行效率。单板测试和系统联调表明,设计的逆存储满足各项性能指标,已通过项目组验收,即将投入实际应用。

合成孔径雷达相关文章:合成孔径雷达原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭