微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于CPLD+DSP的实时数字图像稳定系统

基于CPLD+DSP的实时数字图像稳定系统

时间:08-07 来源: 点击:

产生控制中断,通知DSP启动数据读/写EDMA通道和进行数据转移;4)低位地址A0和A1进行译码产生Bank Enable信号,送到双口RAM以进行数据位选通。由于输入/输出缓存具有对称的硬件结构,所以XC95144在进行地址计数时,产生两套相同Bank信号和地址偏移,供输入和输出双口RA-M。

3 数字图像数据的采集与输出

3.1 数据采集

系统的设计视频信号采集能力是从CCD获得模拟视频信号中采集到512×512大小的数字图像,并通过帧缓存--异步静态双端口存储器(dual-port RAM),经DSP的EDMA通道送到SDRAM中。采集模块的结构如图4所示。

SAA7110的初始化通过I2C总线对其内部控制寄存器进行相应设置而实现,该系统将DSP上的McBSP(多通道缓冲串口)的两个引脚与SCL和SDA相连,将McBSP的引脚配置成通用I/O口,这样就能通过编写DSP程序,在上电时通过DSP的多通道缓冲串口配置SAA7110。

3.2 数据位拼接

由于SAA7110和BT121都是8 bit精度器件,而双口RAM的每边都是36 bit精度的存储器,但双口RAM的4个BANK通道,每个BANK各9 bit,共36 bit数据,可通过BEO~BE3信号选通,因此只有将SAA7110和BT121的8 bit数据进行拼接后才能送到双口RAM。由于双口RAM的每个BANK都是9 bit,SAA7110和BT121的8 bit数据总线接在每个BANK的低8 bit,忽略最高位第9位,直接地,形成8 bit的数据精度,完成不同数据精度位器件间的握手。

3.3 数据输出

处理完的图像数据,经D/A转换器BT121进行数模转换后,送到显示器,这个过程必须在严格的同步时钟控制下进行。SAA7110给出的同步信号包括水平同步、垂直同步、奇偶场和采样时钟,而BT121的同步信号只有空白信号(BLANK)、合成信号(SYNC)和转换时钟。当BLANK信号为1时,BT121才进行D/A转换,SYNC信号为1时才打开D/A通道。所以,2个器件间的同步信号不能直接握手,必须经过一定的逻辑转换。S-AA7110的同步信号引脚接到CPLD,由CPLD经过一定的逻辑运算后,送出符合BT121同步要求的信号。

4 系统工作方法和优化配置

4.1 系统工作方式

系统上电后,DSP从Flash读入1 K大小的程序数据,该引导程序继续将其他主程序调入SDRAM中,在以后的运行过程中,DSP自动将运行所需程序从SDRAM装入片内存储器。同时89C5l单片机对SAA7110进行初始化。当DSP准备就绪后,通知CPLD开始控制向输入端双端口RAM写入由S-AA7110采集的视频图像数据。输入缓存的存储空间分为奇、偶场空间,写满一场后向DSP发送中断信号,DSP收到该中断信号后以EDMA方式将数据读入SDRAM等待处理。在DSP读走和处理该部分数据时,CPLD继续控制向输入缓存的另一部分空间写入下一场采样数据。当DSP处理完上一场数据后,等待下一场视频数据的写满信号。采用双端口RAM作为系统的输入输出缓存,有效地避免了读写访问冲突和系统总线的冲突,极大提高了系统的执行效率。

4.2 配置L2 Cache和Memory的比例

由于片内RAM与CPU工作在同一时钟频率,比片外RAM性能高得多。C64的两级缓存机构工作特点为:片内分为两级存储结构(L1和L2),L1不能设置为映射寄存器。L1又分为L1P和L1D,L1D指的是第1级的数据缓冲,为128 K字节的两路成组相连结构缓存。L2是第2级片内缓存,大小为l 024 K(可同时存储程序和数据)。L1P和L1D都可以对L2进行存取,当L1D或L1P中没有运行所需要的数据时(即产生cache miss时),首先向L2发出申请,当L2中也发生cache miss时,将申请转发给EDMA。申请的转发将严重影响系统运行效率。所以根据算法数据流特性配置好两极缓存的大小,预先将待处理的数据读入,降低cache miss的次数以提高系统实时性。

以块匹配运动估计为例,匹配块32×32 pixel=1 K字节,加上旋转角度范围:±7°,步长为O.2°,共产生70个旋转1 K的小图像;搜索窗为96×96 pixel=9 K字节,共10 K字节,所有待进行运动估计的图像数据为80 K,完全可以读入L2Cache。这些数据可以用ODMA将数据全部读入片内L2。而这些数据是从一帧完整的图像中"扣出"的,所以搬移方式采用2D-1D的方式,QDMA支持这种高效的数据传输能方法。

4.3 基于EDMA加快数据传输

当使用双缓冲结构的时候,EDMA是另一种去除多余CPU开销的重要机制。利用EDMA,可实现片内存储器(L2SRAM)、片内外设,以及外部空间之间的数据转移。合理利用EDMA,还可以提高程序性能,由于图像处理中的数据对象通常以8 bit为一单位,利用DMA的数据交织功能把来自图像不同区域的4个数据并接为一个32位数据,大幅度地提高效率。

系统采

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top