打印
[DSP]

基于FIFO的A/D转换器与DSP的接口设计

[复制链接]
1137|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Flower1|  楼主 | 2019-10-3 17:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于FIFO的A/D转换器与DSP的接口设计



摘要:在采用CCD对非透明薄板厚度的测量系统设计中,采用高速A/D和DSP等器件进行电路设计可以确定CCD的像点位置。由于A/D转换器的采样速率和DSP的工作时钟频率相差非常大,为了提高DSP的工作效率,避免数据丢失和控制方便,采用小容量的FIFO作为两者之间的接口可以产生很好的效果。

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)三个标志位输出,可以同时满足深度和宽度级联的需要。


2 DSP与FIFO芯片的工作原理

2.1 FIFO读写过程
    FIFO的一次读写过程如图所示,由于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 软件设计图所示是该系统中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的使用效率。


使用特权

评论回复

相关帖子

沙发
Flower1|  楼主 | 2019-10-3 17:35 | 只看该作者
基于FIFO的A/D转换器与DSP的接口设计

新建 Microsoft Word 文档.pdf

441.37 KB

使用特权

评论回复
板凳
gygp| | 2019-10-7 18:18 | 只看该作者
dsp哪些自带AD转换器      

使用特权

评论回复
地板
chenci2013| | 2019-10-7 18:18 | 只看该作者
一般的AD芯片都提供串口通讯的     

使用特权

评论回复
5
biechedan| | 2019-10-7 18:18 | 只看该作者
准备做一个10M的高速数据采集系统  

使用特权

评论回复
6
wangdezhi| | 2019-10-7 18:19 | 只看该作者

DSP和CODEC的区别是什么?

使用特权

评论回复
7
isseed| | 2019-10-7 18:19 | 只看该作者
两通道采样有时间差吗      

使用特权

评论回复
8
xietingfeng| | 2019-10-7 18:19 | 只看该作者
TI的DSP2812与28335有什么区别  

使用特权

评论回复
9
suzhanhua| | 2019-10-7 18:20 | 只看该作者
AD是单极性的还是双极性的?     

使用特权

评论回复
10
mituzu| | 2019-10-7 18:20 | 只看该作者
只有5509带两路22kHz的AD     

使用特权

评论回复
11
hellosdc| | 2019-10-7 18:20 | 只看该作者
如果用内置电压基准源,误差有多大呢  

使用特权

评论回复
12
uiint| | 2019-10-7 18:20 | 只看该作者
28335的AD精度与2812的AD精度比较如何  

使用特权

评论回复
13
isseed| | 2019-10-7 18:21 | 只看该作者
有的话,采样时间差跟采样频率有没有关系  

使用特权

评论回复
14
wangdezhi| | 2019-10-7 18:21 | 只看该作者
都可以进行数模模数转换吗?      

使用特权

评论回复
15
chenci2013| | 2019-10-7 18:21 | 只看该作者
拿DSP的串口跟AD芯片通讯读取其转换的数据不就好了。   

使用特权

评论回复
16
gygp| | 2019-10-7 18:21 | 只看该作者

DSP进行ad转换时为什么还要外用ad转换芯片  

使用特权

评论回复
17
biechedan| | 2019-10-7 18:21 | 只看该作者
想实现AD转换器输出的串行数据输入到DSP2812中  

使用特权

评论回复
18
uiint| | 2019-10-7 18:21 | 只看该作者
dsp28335,应该使用哪个型号的ad?  

使用特权

评论回复
19
hellosdc| | 2019-10-7 18:21 | 只看该作者
DSP的AD采样频率最大能达到多少?  

使用特权

评论回复
20
mituzu| | 2019-10-7 18:21 | 只看该作者
怎么把AD转化的数据用DSP中SCI串口发送出去  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

623

主题

887

帖子

6

粉丝