用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

EPP模式500ksps数据采集接口

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-11 00:01:50
O特性及EPP模式的应答握手信号。接口结构及CPLD内部功能模块见图3所示,数据在CPLD控制下,以2μs 的固定速率存入SRAM环状连续增量地址,因为EPP模式读取速率与数据采样的固定速率是异步的,控制逻辑为保证2μs 的固定采样速率,当采样时间点到达时,不论当前是否处于EPP应答处理期间,优先执行数据采样,因为处理是在系统时钟脉冲驱动下的硬件行为,仅存在固定的传输延时,故两次采样间隔是严格保证的。

javascript:window.open(this.src);" style="cursor:pointer;"/>

    EPP模式的读取平均速率必须高于数据采样速率,一旦FIFO数据读空必须让微机正确处理,由前述实验可知,每次字节方式I/O执行时间约为1.5μs,如果通过在EPP的状态口(379H)的保留位输入代表FIFO读空的信号,则每完整读取均要执行两次I/O指令:EPP数据读及EPP状态读,至少需3μs完成读取一个字节,这也是通常方式能达到的最快有效读取速率。当采用双字读读及EPP状态读的方式时,需4.8μs完成4个数据字节读取,但此方式需要处理的一个问题:由于双字方式EPP数据读由硬件自动产生4个EPP数据读周期,当其执行完毕,执行EPP状态读发现FIFO已空,微机软件无法判别在从第几个EPP数据读周期开始FIFO为空,从而影响对数据队列的正确排序,故CPLD逻辑应当在FIFO队列还有至少4个未读数据时必须发出读空信号,微机程序应当在每次EPP开始前执行读取状态口的指令,以决定是否可以开始EPP数据读周期,从上分析可以看出为实现有效的EPP数据读取,平均每字节至少需要1.2μs,即可

javascript:window.open(this.src);" style="cursor:pointer;"/>
以获得最快约800kBytes/s的数据传输速率。因500ksps的数据采集设计速率仅略低于800kBytes/s的数据传输速率,考虑WIN98工作环境,配置大容量的FIFO十分必要,采用大容量SRAM与CPLD器件构成FIFO,具有成本较低的优点,通过使用VHDL的行为描述,经CPLD器件开发软件的编译、综合、仿真、适配、下载,实现所需要的控制逻辑。根据设计,当数据锁存输出的下一个时钟脉冲(即83ns后),WAIT将输出为高电平,EPP在此时读取数据口信号,如果不采用外部缓冲驱动器,数据上升过程将耗时80ns,对EPP数据接收可靠性有不容忽视的影响,为减小电缆电容的影响,数据输出使用了74ALS574芯片作缓冲,其高电平输出能力达15mA,是ispLSI1032高电平输出能力的3.5倍,在电缆电容有100pF时,23ns可达到3.5V的逻辑高电平,保证数据接收可靠性。

    仿真波形参见图4,出于方便,仿真时钟设置为12.5MHz。系统每24个时钟脉冲产生一次数据采集,仿真采样速率521ksps。数据由DIN[7:0]输入,通过CPLD内部数据输入触发时钟(该时钟同相缓冲后形成RAMOE脉冲,持续宽度为两个系统时钟)的上升沿锁存,并控制地址选择器将写地址输出到ABUS上,在RAMOE为高期间,DBUS开放三态数据触发器输出使能,使被锁存的8位数据经DBUS输出,数据输入触发时钟过后一个系统时钟,RAMWR产生一个系统时钟宽度的负脉冲,控制SRAM将DBUS上的数据写入,再下一个系统时钟的上升沿,RAMWR变高,RAMOE变低使SRAM输出有效,三态数据触发器恢复为高阻状态,ABUS变为待读数据地址,完成一次数据采集、存储过程。微机软件执行EPP数据读前先读取状态口(379H)以判别READ_EN是否有效,当READ_EN为高时,可以执行EPP数据读周期,CPLD在同步DATASTB_IN的下降沿后,产生一个宽度的OUTCLK输出锁存脉冲,其上升沿将相应待读地址的SRAM数据锁存于外部74ALS574,下降沿使WAIT_OUT上升,形成EPP模式的应答握手信号。WAIT_OUT在DATASTB_IN的上升沿异步复位以响应下一次EPP模式访问。数据写入优先于数据读取,当到达固定的采样间隔点时,CPLD总是推后OUTCLK及WAIT_OUT 的执行,待采样并存储完毕才继续被暂缓的EPP应答,在设计中,数据的采样及存储需要两个系统时钟周期共167ns,远低于EPP的超时参数,故有充分的时间正确地完成EPP握手。图4仿真了数据读空状态,在图中部,READ_EN信号存在一个低电平区域,此负脉冲前,根据RAMWR个数可知当时采样了11个数据,根据OUTCLK个数可知读取了8个数,剩下3个数不足以提供EPP执行双字读的操作,如果此时微机需要访问EPP,在其对状态口的读取中,因得知READ_EN无效而暂缓EPP的执行,当再次完成一次数据采样后,达到至少存在4个未读数据的条件,READ_EN重新变为有效,可供微机读取。

    为与微机接口,附加部分其它口线,其中RESET使CPLD全局复位,74ALS574的OE脚由微机控制输出是否为高阻,在程序设定数据端口作为输入使用前,保持该脚为高电平,使74ALS574输出为高阻态,虽然使用的是EPP模式的地址选通信号脚作控制,但程序中并无EPP模式的地址读写指令,此脚的变化直接由EPP端口的控制口(37AH)的D3位控制,另外一般D5位为读写方向控制,将该位置为高,使数据端口作为输入使用。SYN与RAMWR有固定(芯片编程时设定)的相位关系,作为数据采集的同步控制用,当选用MAX114芯片且配置为流水线模式(Pipelined Mode)时,MAX114的WR及RD脚共同连接至SYN脚,此信号波形是与RAMWR同步下降但持续时间为500ns的负脉冲信号,由A/D芯片MAX114与SRAM及CPLD等器件可构成EPP模式下500ksps的连续数据采集接口。

    微机的数据接收是个环状循环体后台程序,频繁对端口的访问占据大量CPU时间片,为保证对用户操作的响应,应采取多线程方式的程序结构。微机软件部分采用Delphi程序设计语言,端口访问使用内嵌汇编语言,程序中开辟一块20-100M字节或更大的环型数据区,可根据实际需要考虑。



上一页  [1] [2] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:1,890.62500 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号