一种提高高清图像实时采集系统DSP外部存储器接口速度的结构和方法 【技术领域】
本发明涉及一种利用两块SDRAM进行乒乓操作作为图像数据缓冲来提高DSP的EMIF口数据采集速度,以满足高清图像实时采集要求的一种解决方案。属于电子信息领域。
背景技术
随着智能监控技术的发展,对于监控视频图像的分辨率提出了较高的要求。目前基于DM642的嵌入式图像采集系统方案基本上采用将标准的视频数据流通过视频接口VP口输入核心处理器DM642中的方式。为了突破传统视频采集分辨率的限制,为视频分析提供足够的数据量,利用DSP的外部存储器接口(EMIF)来进行数据采集及与外部数据的交换。TMS320C6000DSP的EMIF具有很强的接口能力,具有很高的数据吞吐率,支持各种外部器件的无缝连接,包括SRAM、SDRAM、ROM、FIFO和外部共享器件等等。外部存储空间划分为四个独立的存储空间,由4个外部CE线及对应的CE空间控制寄存器控制。
但是使用DSP的EMIF接口进行数据存储时速度受限,包括用DMA的方式速度没有本质性的提高。用示波器测量EMIF读/写信号的平均频率为5.3MHz。传送640个8位数据需耗时65微秒。因为读写数据操作必须伴有两个周期的地址和控制信息,EMIF会在读和写命令之间插入多个周期,以确保数据总线(ED[31:0])上没有冲突存在。EMIF通过这种机制使这种总线冲突发生的可能降至最小,由此导致了EMIF数据交换速率的降低。
由于实时高清晰图像传输的要求,要求EMIF接口速度匹配CCD数据传输速度。而图像数据传输有数据量大,连续性的特点,正好利用SDRAM连续存放数据时可以不用对应每个数据给出具体的地址信息的特点。减少了DSP为了避免总线冲突而插入等待周期的时间,大大提高了EMIF总线的利用效率。使得数据采集的速度满足高清晰(1360×1068)图像采集的速度。所以本设计采用两块SDRAM作为数据输入缓存乒乓操作,并通过EDMA方式以提高数据传输效率。
【发明内容】
本发明的目的在于针对已有技术存在的缺陷,提供一种提高高清图像实时采集系统DSP外部存储器接口速度的结构和方法,使得DSP采集外部CCD的速度是原先的利用双口RAM或者FIFO采集数据的速度的3~4倍。
由于该方法数据以帧为单位读取,充分利用了SDRAM在连续数据操作中速度快的特点,并消除了数据行场消隐的等待时间,解决了输入输出速度差问题,完成了图像的数据的无缝缓冲。
为实现上述目的,本发明采用下述技术方案:
一种提高高清图像实时采集系统DSP外部存储器接口速度的结构,包括一个系统核心处理器DM642、一个FPGA、一个CCD采集模块和三个SDRAM——一个主存储器件SDRAM1、和两个辅助存储器件SDRAM2、SDRAM3,其特征在于所述DM642外部存储器接口的SDWE、Eclkout2、SDCAS、SDRAS、EA[17:3]、ED[31:0]和BE[3:0]信号引脚分别连接SDRAM1的WE、CKE、CAS、RAS、A、D和DQM引脚,CE0引脚连接SDRAM1的/CS引脚,同时SDWE、Eclkout2、SDCAS、SDRAS、EA[17:3]、ED[31:0]、BE[3:0]及CE2信号输入FPGA;并将FPGA输控制存储器信号引脚分别连接SDRAM2的A、DQM、D、WE、CKE、CAS、RAS、和/CS以及SDRAM3的A、DQM、D、WE、CKE、CAS、RAS、和/CS;FPGA输出中断信号引脚连接DM642的外部中断信号引脚INT4;CCD采集模块的行、场、点同步信号H、V、P及CCD数据引脚CCD_Data[7:0]连接到FPGA。
上述FPGA内部包括数据输入输出选通控制单元SDCtrlSwitch,SDRAM写控制信号产生单元SDCtrl_FPGA,数据流单元DataProcess;输入输出选通控制单元判断图像数据是奇数场或是偶数场来产生相应的选通控制信号,SDRAM写控制信号产生单元根据CCD图像数据的同步信号产生SDRAM的写入控制信号,数据流单元数据总线上数据的流向及输入输出状态。
上述FPGA的内部结构中,数据输入输出选通控制单元SDCtrlSwitch的读SDRAM控制信号Emif_SDWE、Emif_SDCKE、Emif_SDCAS和Emif_SDRAS分别连接DM642外部存储器接口的SDRAM控制信号引脚SDWE、SDCKE、SDCAS和SDRAS;SDCtrlSwitch单元地Emif_SDCE信号引脚连接DM642的CE2空间选通信号引脚CE2;SDCtrlSwitch单元的SDRAM2_SDCS、SDRAM2_SDW、SDRAM2_SDCKE、SDRAM2_SDCAS和SDRAM2_SDRAS引脚连接SDRAM2的引脚/CS、WE、CKE和CAS;SDCtrlSwitch单元的SDRAM3_SDCS、SDRAM3_SDWE、SDRAM3_SDCKE、SDRAM3_SDCAS和SDRAM3_SDRAS引脚连接SDRAM3的引脚CS、WE、CKE和CAS;SDCtrlSwitch单元的字节选通信号引脚EMIF_BE[3:0]连接DM642外部存储器接口的BE[3:0]引脚,SDRAM2_BE[3:0]引脚连接SDRAM2的DQM引脚,SDRAM3_BE[3:0]信号引脚连接SDRAM3的DQM引脚。
FPGA中的SDRAM写控制信号产生单元SDCtrl_FPGA的行同步信号H_ccd,场同步信号V_ccd,点时钟Pclk_ccd信号引脚分别连接CCD采集模块的行H、场V、点P信号。
FPGA中的数据流单元DataProcess的CCD_data[7..0]信号引脚连接CCD采集模块的AD输出数据引脚CCD_Data[7..0];DataProcess单元的Emif_ED信号引脚连接DM642的ED[31:0]信号引脚,DataProcess单元的SDRAM2_ED[31:0]信号引脚连接SDRAM2的D[31:0];SDRAM3_ED[31:0]信号连引脚连接SDRAM3的D[31:0]引脚。
一种提高高清图像实时采集系统DSP外部存储器接口数据速度的方法,采用上述结构进行操作,其特征在于用FPGA控制CCD图像数据直接写入作为数据缓存的SDRAM,并在FPGA的控制下以场同步信号作为切换,将两块乒乓操作的SDRAM轮流接入DSP的CE2空间的方法。具体操作步骤为:在系统初始化阶段将DSP的CE0,CE2空间设为32位的同步存储空间,并配置增强的直接存储器访问EDMA通道,并将外部中断信号int4作为EDMA通道传输的触发源,为奇偶场图像数据开辟存储空间。然后系统等待图像数据输入FPGA,并判断数据是奇数场数据或是偶数场数据,若为奇数场数据则将图像数据存入SDRAM2,将SDRAM3接入DM642的EMIF总线。若为偶数场数据则将数据存入SDRAM3,将SDRAM2接入DM642的EMIF总线。最后以场同步信号作为一场图像接收完成的标志,由FPGA产生图像接受完成的中断信号通知DSP通过EDMA通道将数据从连接在EMIF总线上的SDRAM搬移到SDRAM1中。
FPGA在奇数帧要完成的操作步骤为:
a)将CE2连接SDRAM2片选信号SDCS,
b)EMIF的SDRAM控制信号直通到SDRAM2的控制信号,包括SDRAS、SDCAS、SDCKE、SDWE,
c)EMIF地址线EA[17..3]连接SDRAM2的地址线A,
d)字节使能信号BE[3..0]连接SDRAM2的字节选通信号DQM,
e)数据总线ED[31..0]连接SDRAM2数据线D,
f)根据CCD数据时序,即行场点同步信号由FPGA产生写SDRAM的控制信号,地址操作信号,
g)将FPGA产生的写SDRAM控制地址信号,连接到SDRAM3,
h)CCD数据有效期间,将数据连续地写入SDRAM3,
i)一帧数据写完向DSP发出中断;
偶数帧时将CE2连接SDRAM3片选,并将SDRAM2与SDRAM3做交换,其它操作步骤与奇数帧的操作步骤相同。
本发明与现有相关技术相比较,具有如下优点:
1.充分利用SDRAM连续数据操作时不用提供地址信号所带来的速度优势,提高了EMIF总线的传输效率。
2.通过FPGA的SDRAM控制器,将图像数据直接写入SDRAM而不是通过FIFO或者RAM。将原先传送640个数据的时间从65us缩短到19us。
3.利用了图像采集中的消隐时间,直接以帧为单位传输数据进一步提高了EMIF数据的效率。
4.这种利用SDRAM作为乒乓操作以提高EMIF传输效率的方法不仅适用于CCD图像数据传输,同样适用于DSP需要高速采集外部数据的场合。具体实现方法只需稍作改动
【附图说明】
图1系统硬件结构示意图。
图2FPGA中SDRAM切换流程图。
图3FPGA内部控制模块。
【具体实施方式】
本发明一个具体的实现案例如下:如图1所示,本提高高清图像实时采集系统DSP外部存储器接口速度的结构,以DM642(1)为核心处理器,其外部存储接口的四个CE空间中CE0,CE2配置为32位同步空间;CE1为异步空间接FLASH;CE3为8位异步空间接串口及网络端口。CE0接SDRAM1(3)为主要代码数据存储器,CE2空间连接FPGA(2),通过FPGA(2)切换连接用作数据缓冲的SDRAM2(5)、SDRAM3(6)进行乒乓操作。
DM642(1)外部存储器接口的SDWE、Eclkout2、SDCAS、SDRAS、EA[17:3]、ED[31:0]和BE[3:0]信号引脚分别连接SDRAM1(3)的WE、CKE、CAS、RAS、A、D和DQM引脚,CE0引脚连接SDRAM1(3)的/CS引脚,同时SDWE、Eclkout2、SDCAS、SDRAS、EA[17:3]、ED[31:0]、BE[3:0]及CE2信号输入FPGA(2);并将FPGA(2)输控制存储器信号引脚分别连接SDRAM2(5)的A、DQM、D、WE、CKE、CAS、RAS、和/CS以及SDRAM3(6)的A、DQM、D、WE、CKE、CAS、RAS、和/CS;FPGA(2)输出中断信号引脚连接DM642(1)的外部中断信号引脚INT4;CCD采集模块(4)的行、场、点同步信号H、V、P及CCD数据引脚CCD_Data[7:0]连接到FPGA(2)。
FPGA内部主要的控制模块如图3所示。
FPGA(2)内部主要由数据输入输出选通控制单元SDCtrlSwitch,SDRAM写控制信号产生单元SDCtrl_FPGA,数据流单元DataProcess;输入输出选通控制单元判断图像数据是奇数场或是偶数场来产生相应的选通控制信号,SDRAM写控制信号产生单元根据CCD图像数据的同步信号产生SDRAM的写入控制信号,数据流单元数据总线上数据的流向及输入输出状态。
数据输入输出选通控制单元SDCtrlSwitch的读SDRAM控制信号Emif_SDWE、Emif_SDCKE、Emif_SDCAS和Emif_SDRAS分别连接DM642(1)外部存储器接口的SDRAM控制信号引脚SDWE、SDCKE、SDCAS和SDRAS;SDCtrlSwitch单元的Emif_SDCE信号引脚连接DM642(1)的CE2空间选通信号引脚CE2;SDCtrlSwitch单元的SDRAM2_SDCS、SDRAM2_SDW、SDRAM2_SDCKE、SDRAM2_SDCAS和SDRAM2_SDRAS引脚连接SDRAM2(5)的引脚/CS、WE、CKE和CAS;SDCtrlSwitch单元的SDRAM3_SDCS、SDRAM3_SDWE、SDRAM3_SDCKE、SDRAM3_SDCAS和SDRAM3_SDRAS引脚连接SDRAM3(6)的引脚CS、WE、CKE和CAS;SDCtrlSwitch单元的字节选通信号引脚EMIF_BE[3:0]连接DM642(1)外部存储器接口的BE[3:0]引脚,SDRAM2_BE[3:0]引脚连接SDRAM2(5)的DQM引脚,SDRAM3_BE[3:0]信号引脚连接SDRAM3(6)的DQM引脚。
FPGA(2)中的SDRAM写控制信号产生单元SDCtrl_FPGA的行同步信号H_ccd,场同步信号V_ccd,点时钟Pclk_ccd信号引脚分别连接CCD采集模块(4)的行H、场V、点P信号。
FPGA(2)中的数据流单元DataProcess的CCD_data[7..0]信号引脚连接CCD采集模块(4)的AD输出数据引脚CCD_Data[7..0];DataProcess单元的Emif_ED信号引脚连接DM642(1)的ED[31:0]信号引脚,DataProcess单元的SDRAM2_ED[31:0]信号引脚连接SDRAM2(5)的D[31:0];SDRAM3_ED[31:0]信号连引脚连接SDRAM3(6)的D[31:0]引脚。
FPGA(2)中SDRAM切换流程如图2所示。系统采用直接用FPGA(2)控制CCD图像数据直接写入作为数据缓存的SDRAM,并在FPGA的控制下以场同步信号作为切换,将两块乒乓操作的SDRAM轮流接入DSP的CE2空间的方法。具体操作步骤为:在系统初始化阶段将DSP的CE0,CE2空间设为32位的同步存储空间,并配置增强的直接存储器访问EDMA通道,并将外部中断信号INT4作为EDMA通道传输的触发源,为奇偶场图像数据开辟存储空间。同时FPGA(2)对SDRAM2(5)及SDRAM3(6)完成读写模式配置,刷新及预充电等配置操作。然后系统等待图像数据输入FPGA(2),并判断数据是奇数场数据或是偶数场数据,若为奇数场数据则将图像数据存入SDRAM2(5),将SDRAM3(6)接入DM642(1)的EMIF总线。若为偶数场数据则将数据存入SDRAM3(6),将SDRAM2(5)接入DM642(1)的EMIF总线。最后以场同步信号作为一场图像接收完成的标志,由FPGA(2)产生图像接受完成的中断信号通知DSP通过EDMA通道将数据从连接在EMIF总线上的SDRAM搬移到SDRAM1(3)中。
FPGA(2)在奇数帧要完成的操作步骤为:
a)将CE2连接SDRAM2(5)片选信号SDCS,
b)EMIF的SDRAM控制信号直通到SDRAM2(5)的控制信号,包括SDRAS、SDCAS、SDCKE、SDWE,
c)EMIF地址线EA[17..3]连接SDRAM2(5)的地址线A,
d)字节使能信号BE[3..0]连接SDRAM2(5)的字节选通信号DQM,
e)数据总线ED[31..0]连接SDRAM2(5)数据线D,
f)根据CCD数据时序,即行场点同步信号由FPGA(2)产生写SDRAM的控制信号,地址操作信号,
g)将FPGA(2)产生的写SDRAM控制地址信号,连接到SDRAM3(6),
h)CCD数据有效期间,将数据连续地写入SDRAM3(6),
i)一帧数据写完向DSP发出中断;
偶数帧时将CE2连接SDRAM3(6)片选,并将SDRAM2(5)与SDRAM3(6)做交换,其它操作步骤与奇数帧的操作步骤相同。
当然,以上所述仅是本发明的一种优选实施方式而已,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。