用FIFO设计A/D与DSP之间的接口

1 前言
在使用ccd对非透明薄板厚度的测量系统设计中,笔者采用高速a/d和dsp等器件设计信号采集和处理电路来确定ccd的像点位置。其具体电路如图1所示,该信号采集和处理电路由ccd驱动电路、加法电路、滤波放大等信号预处理电路、a/d转换电路、fifo、dsp电路、时序与逻辑控制产生电路、usb总线接口电路等组成。其中dsp芯片选用ti公司生产的tms320c6211高速数字信号处理芯片?它主要用于对a/d转换后的数据进行插值和重心算法处理,从而确定ccd上像元的位置,然后把处理后的数据通过usb总线传输到pc机进行厚度计算、结果显示、存储等后续处理。该电路所需的时钟信号和采样逻辑控制时序由一片fpga芯片产生。
当模拟信号由adc转换成数字信号后,往往都需要输入dsps的cpu作进一步处理。但a/d转换后数据输出与dsp的读外部数据的时钟很难精确地配合。即使dsp能读取到外部总线上的数据,由于a/d速率是4mhz,dsp外部存储器时钟为90mhz,为了读到总线上的数据,dsp外部存储器读写时钟也必须控制在4mhz,这样就大大降低了dsp的使用效率,同时再加上dsp处理数据也需要一定的时间,而不能一味地读取外部数据。所以,为了控制方便,避免数据丢失,设计时应采用小容量的fifo作为两者之间的接口。本设计选用的fifo芯片是cypress公司的cy7c425-25ns。该芯片容量为1k×9bit,存取时间最大为25ns,读写周期最小为35ns。该器件具有半满(hf)、全满(ff)和空(ef)三个标志位输出,可以同时满足深度和宽度级联的需要。
图1
2 dsp与fifo芯片的工作原理
2.1 fifo读写过程
fifo的一次读写过程如图2所示,由于fifo是顺序读取数据,因此?只需提供读写和其它控制信号线,而不需要一般ram所需的地址线。若将两路a/d输出的数据存入fifo中,每片fifo用8bit?两片fifo即可级联构成16bit的数据宽度。由于fifo采用的是5v供电,所以经电压转换器件74lvth244可将5v数据信号电平转换成3.3v,然后与dsp的16bit外部数据总线相连。再由fifo的半满信号hf作为外部中断信号,当fifo存储器半满时,便可由hf经逻辑处理后向dsp发出中断申请int4。由于外部fifo占用着dsp的ce0空间,所以读信号的逻辑关系为:r=ce0+are,启动dsp 的edma(enhanced direct memory access)通道传输,可将fifo中的数据读入内部ram中,这样,在fifo输出数据的同时,也将a/d转换的数据写入了fifo中,从而达到了同时读写的目的。使用edma方式传输数据的好处在于:edma控制器可以独立于cpu工作,从而可方便地实现片内存储器、片内外设以及外部存储空间之间的数据转移。由外部中断int4启动edma传输,可以大大提高传输速率和cpu的工作效率。dsp读完2048个数据后即开始处理,处理完后便可以在一次扫描结束与下一次扫描尚未开始的时间内将16bit计算结果数据输出,总的处理时间为一个帧周期。fifo的写信号可由fpga产生,并可在a/d转换结束后向fifo写数据。另外,在每一帧处理之后,还应由fpga输出控制信号以对fifo进行初始化,然后重新输入下一帧数据。
2.2 dsp的读时序设计
dsp可以通过硬件的ardy信号和软件设置来达到与异步外设之间进行通讯的目的。dsp工作时,硬件ardy信号应始终有效。而如果采用软件设置方法,则设计时需要考虑以下几点:
(1)setup≥1;
(2)strobe≥?tacc+tsu)eclk;
(3)stobe≥trp eclk;
(4)setup+strobe+hold≥trc eclk;
其中,setup、strobe和hold是需要在emif ce0空间控制寄存器中配置的读信号的三个状态信号;tacc是fifo的存取时间(≤25ns),tsu是数据建立时间(≥15ns),trp是读脉冲宽度(≥25ns),trc是fifo的读周期(≥35ns)。由于本设计中dsp的内部时钟为150mhz,外设时钟eclk为90mhz,所以,最后设定setup=1、strobe=2、hold=2来满足dsp与异步fifo接口的要求。
2.3 软件设计
图3所示是该系统中dsp的软件流程图。由于tms320c6211采用rom加载的芯片自举模式,因此,在芯片复位过程中,edma将从位于外部ce1空间的eeprom中拷贝1kb数据到地址0处,并在传输结束后,使cpu退出复位状态,同时从地址0处开始执行指令。由于主程序大小要大于1kb,所以需要编写boot load(大小小于1kb)程序,以使其在复位后将程序从外部eeprom拷贝到内部程序ram中运行。在图3所示的主程序流程图中,当系统上电复位后,首先应进行dsp的初始化,接着进行edma的中断使能和初始化,然后由fifo的半满信号启动edma传输和由其触发中断程序。当传输完一组2048个数据后,再根据重心算法求出ccd像点的位置,之后便可开始下一次循环。
3 结束语
在高速数据采集电路中,使用fifo设计dsp芯片和a/d转换器的接口电路具有设计简单、控制方便等优点,可大大提高dsp的使用效率。

采用ATmegal62处理器与CPLD设计高速数据采集系统的设计
UPS的介绍以及其系统组成和主要功能
华为100万部鸿蒙OS手机已开测
多层线路板最多可以做到多少层
如何解决变频电源输入输出的干扰?
用FIFO设计A/D与DSP之间的接口
5G应用是流量杀手,VR/AR等终端设备退烧
中国铁塔将与业界紧密合作缩小标准化助力5G高质量发展
流量检测通道的电路原理
一文解析IC设计工程师就业前景、发展方向(RFIC、模拟IC、数字IC)
智能穿戴+区块链消费类产品可能成为下一个十年的时尚潮流?
2G退网是大势所趋,国内已打通5G电话 这些城市可能尝鲜
人工智能在保证网络安全方面有什么作为
中国普天称3G更适合无线城市建设
华为公开车载充电器的AC/DC转换器专利
PC厂打造智能显示器 台系统厂坐拥商机
D系列激光测距传感器
154N-015G-RT压力传感器在消防火灾预警的应用
万利达光盘录像机的故障检修
无线图传系统对距离的狂热追求