《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > 异步FIFO在实时图像匹配处理机中的应用

异步FIFO在实时图像匹配处理机中的应用

2008-12-01
作者:肖志涛 国澄明 朱永松

  摘  要: 通过FIFO芯片实现DSP对实时图像数据" title="图像数据">图像数据的采集。介绍了异步FIFO芯片IDT7204和DSP芯片TMS320C6704的性能,设计了IDT7204与TMS320C6701的接口,讨论了编程实现图像采集" title="图像采集">图像采集的两种方法并进行了比较。 

  关键词: FIFO  IDT7204  图像采集  TMS320C6701 

 

  图像匹配" title="图像匹配">图像匹配是无人飞行器导航和制导的关键技术。图像匹配的基本任务是在空中飞行的条件下,利用实时获取的地面图像与预先提供的基准图像进行匹配,从而达到确定飞行器瞬间位置并进行导航的目的。实时图像数据采集的高效性和可靠性是十分重要的。我们通过FIFO[1](First-In First-Out)芯片实现了DSP对数字摄像机" title="数字摄像机">数字摄像机的高速数据的采集。由于FIFO工作机制的特性和它的高灵敏性,在使用FIFO时,硬件设计和软件实现都有相应的特点。 

1 FIFO芯片IDT7204性能简介 

    IDT7204是4K×9位的可以实现先进先出的异步读写操作" title="读写操作">读写操作的双端口存储器。允许多片FIFO级联,在字宽和容量深度两方面进行扩展。IDT7204功能引脚如图1所示。 

 

 

  读写操作会自动访问存储器中的连续的存储单元,从FIFO中读出的数据顺序与写入的顺序相同,地址的顺序在内部已经预先定义好。对芯片的读/写操作只由读/写信号控制,不需要额外的地址信息。这就使得FIFO的控制电路变得十分简单。芯片对读/写指针提供复位功能,使内部读/写指针同时设置到初始位置。另外它还可对读指针提供单独复位功能,仅把读指针设置到初始位置,实现对已读出数据的重新读取。该器件采用9位数据宽度。第9位可以根据用户需要用作控制位或奇偶校验位,在需要对传输进行奇偶校验的通讯系统中可以用到该位。IDT公司的IDT7204的存取速度可达12ns。 

2 DSP芯片TMS320C6701性能简介 

    TMS320C6701是TI公司生产的浮点DSP系列的成员,具有高性能、先进的VelociTITM VLIW结构,每时钟周期可并行执行8条32-bit的指令。在时钟为167MHz时,每指令周期为6ns,具有每秒1G次的浮点运算。外部存储器接口EMIF(External Memory Interface)支持8/16/32位数据宽度以及同步、异步各种类型的存储器,便于系统扩展。TMS320C6701片内有64Kbyte的数据RAM和64Kbyte的程序RAM/Cache,通过EMIF可实际访问64Mbyte的片外存储空间,共分为4个区(CE0、CE1、CE2、CE3)。有4个相互独立的可编程DMA通道,可在CPU后台工作,以CPU时钟传输数据。 

3 IDT7204与TMS320C6701的接口 

    我们以TMS320C6701(以下简称C6701)为核心处理器实现了图像匹配处理机,通过FIFO实现了DSP对实时图像数据的采集。FIFO芯片IDT7204与DSP芯片C6701的连接图如图2所示。由于FIFO是非同步器件,将其映射到CE1空间。FIFO传输8位实时图像数据,它只连接32位数据线中的低8位。当从FIFO读数据时,需要对高24位进行软件屏蔽。 

 

 

  把FIFO放在CE1空间上,其地址为0x01600000~0x016FFFFF中的任意一个地址。FIFO的读信号由EA21、EA20、FIFO的写信号由数字摄像机送来的帧有效EF、行有效EL、数据有效ED控制;当数字摄像机把FIFO写至2K字节时,触发C6701中断。C6701中断服务子程序通过DMA将FIFO中的数据取走并写入CE0空间的SDRAM中去。然后C6701再等待新的中断,直至将一帧512×512×8bit图像全部采集到SDRAM为止。 

  由于图像匹配处理机工作的安排,需要将FIFO采集的实时数据传到CE0空间的SDRAM,这项工作当然要由DMA完成。 

4 FIFO半满中断服务子程序的实现 

  实验过程中发现,用DMA将FIFO中的数据传到SDRAM的方法有两种,它们都可以正确地采集实时数据,并且放置位置正确。 

4.1 方法之一——只使用一个DMA 

  该方法只使用一个DMA。具体实现为:将FIFO的数据输出地址设为DMA的源地址,将CE0_SDRAM的相应区间设为DMA的目标地址。程序用C语言编程实现。用示波器观察可见该DMA过程为:由FIFO连续读出三个字节,然后将这三个字节连续写入SDRAM,如此反复进行。这种写SDRAM的方法,没有充分发挥SDRAM页模式写的优越性,结果表现为:采集一帧512×512×8bit图像时,半满次数大大多于128次(约380次)。原因是DMA写入SDRAM时速度较慢,在半满中断发生后,DMA还没有将FIFO中的2K字节读完时又发生半满。但是FIFO写的速度还不至于追上FIFO读,即不至于造成FIFO溢出而丢失数据。由于DMA的目标地址会随所传输数据自动递增,因此DMA写入SDRAM中的数据的位置仍是连续且正确的。 

  虽然出现以上现象,但实践证明,使用这种方法可在ED=6.67MHz、采用15ns的FIFO的情况下,仍可以正确采集数据。 

4.2 方法之二——使用两个DMA 

  该方法使用两个DMA。在FIFO半满中断时,用一个DMA(如DMA1)从FIFO读出2K字节数据放入C6701的片内数据RAM。该工作完成后,用另一个DMA(如DMA2)从C6701片内数据RAM读出放入的2K字节,写入SDRAM的相应地址,循环进行。该方法可以保证采集256K字节数据正好发生128次半满中断。这可根据DMA从FIFO读出2K字节所用时间、DMA向SDRAM写2K字节所用时间、以及向FIFO写数据的速度予以解释。 

4.2.1 DMA从FIFO读出2K字节所用时间 

  C6701的主频为f=160MHz,时钟周期T=6.25ns。在寄存器初始化时,若对包含FIFO的CE1空间的读时序设置为:读建立tsetup=2T、读选通tstrobe=5T、读保持thold=1T,则FIFO的读周期Tr=2T+5T+1T=8T=8×6.25ns=50ns,即从FIFO读取一个字节理论上需要50ns。那么,从FIFO读2K字节理论上需要的时间tR=2K×50ns=102.4μs。 

  用DMA从FIFO读数据放入片内RAM,用示波器观察可直接从示波器读出FIFO的读周期为50ns。将示波器的档位调大,可看到读2K字节的时间为102.4μs,说明此时为连续读。这些实测数据与理论值完全一致。 

4.2.2  DMA向SDRAM写入2K字节所用时间 

  这里SDRAM的工作频率为C6701工作频率的二分频,即fSDRAM=0.5 f=0.5×160MHz=80MHz,TSDRAM=12.5ns。在页模式下,SDRAM可以每个周期写一个字节,则写2K字节理论上所用时间tW=2K×12.5ns=25.6μs。 

  用DMA从片内RAM搬2K字节写入SDRAM,等待一段时间,循环运行。SDRAM写入2K字节的时间,可直接从示波器上读出为25.6μs。与理论值完全一致。 

4.2.3  数据写入FIFO的速度 

  所用的数据采集频率为6.67MHz,周期为150ns,即每150ns向FIFO写一个字节,连续进行。那么向FIFO写2K字节,即FIFO半满所需时间为:tHF=2K×150ns=307.2μs。总的时序图如图3所示。 

 

 

  由图3可知其工作过程:数据以6.67MHz的速度写入FIFO,FIFO半满需要tHF=307.2us,半满后,DMA用tR=102.4ns的时间将2K字节从FIFO读出并放入片内RAM,然后DMA在很宽松的时间里(tHF-tR)用tW=25.6μs的时间将刚放入片内RAM的2K字节搬到SDRAM。可见,此时还富裕很长时间。 

4.2.4 结果分析 

  虽然这里讨论的两种方法都可以正确地采集数据,符合系统的要求,但若采用第二种方法更完善。当数据写入FIFO的速度再提高时,第二种方法仍有富裕的时间可以利用。但是第一种方法就有可能出现写FIFO追上读FIFO的情况,从而出现数据溢出,产生图像采集错误。因此,推荐使用第二种方法。 

  现在分析第二种方法中数据写入FIFO速度为多快时会使得采集256K字节数据的半满中断次数大于128次。由图3的时序图可知,当FIFO半满所需时间tHF=tR+tW=102.4μs+25.6μs=138μs时,刚好可保证发生128次中断。此时写FIFO的速度ED=2K/138μs=14.84MHz,即ED=14.84MHz为临界频率。当ED>14.84MHz时,就会出现采集256K字节数据的半满中断次数大于128次。 

    在使用FIFO时,应根据FIFO的工作特点进行硬件设计和软件编程。所给出的接口电路和两种编程方法都是通过反复实验得出的,可使整个图像匹配处理系统良好运转,验证了该接口电路和编程方法的可靠性和稳定性,在信号的高速处理方面具有一定的应用价值。 

参考文献 

1 CMOS Asynchronous FIFO IDT7204. Integrated Device Technology Inc. 1997.9 

2 TMS320C6701 Floating-Point Digital Processor Datasheet.TI, 2000. 5 

3 彭启综. DSP与实时数字信号处理. 成都:电子科技大学出版社,1995
本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。