EPP模式500ksps数据采集接口

发布者:京玩儿最新更新时间:2012-04-14 来源: dzsc关键字:EPP模式  数据采集  500ksps 手机看文章 扫描二维码
随时随地手机看文章

    数据采集系统中,通过微机COM端口的RS-232串行通讯及通过微机并行端口的并行通讯具有开发使用方便的特点,前者可与工作于11.0592MHz晶振下的8052单片机在波特率115200时,实现10ksps(samples per second)的连续数据采集和传输而不丢失数据,若要达到更高速率的数据采集,可以通过并行口通讯方式实现。当前微机均可通过配置CMOS,将基地址为378H的并行口设置为EPP模式以支持通过数据口双向传输通讯,并由芯片硬件自动产生握手信号,实现高速传输的目的。

    为充分实现EPP模式的高速特性,外设应当及时响应EPP的握手信号,当数据采集系统工作于非实时多任务的WIN98操作系统环境下,为实现数据高速、均匀性采样,还需要在外设配置必要的数据缓冲存储器。如果数据采集速率低于EPP模式数据读入平均速率,就可能实现数据的连贯有效性。有资料[1]说明在EPP模式,可实现500kBytes/s以上的传输速率,这表明通过EPP模式,可以实现500ksps的数据采集系统。通过对EPP模式的深入实验分析,发现要实现500ksps,外设硬件及微机软件程序均要采取一些策略:硬件上必须配置FIFO数据缓冲存储器,才能协调数据采集严格的时间间隔要求与数据传输给微机的非实时、非均匀性之间的矛盾;软件程序方面应当采取双字读的方法,否则EPP模式下仅能实现250kBytes/s数据读取可行性。

    1  EPP模式读取速率的实验分析

    图1为实验EPP模式读取速率的电路,实验程序为

   

    Delphi结合内嵌汇编语言,涉及EPP读取的关键代码如下:

FUNCTION READDATA:BYTE;
VAR
STARTTIME,STOPTIME,DELAY:INT64;
NUMBER:LONGWORD;
QUERYPERFORMANCECOUNTER(STARTTIME);
FOR NUMBER:=0 TO 999999 DO
  BEGIN
    ASM
    MOV DX,$37C
    IN AL,DX
    MOV RESULT,AL
    END;
  END;
QUERYPERFORMANCECOUNTER(STOPTIME);
DELAY:=STOPTTIME-STARTTIME;
END;

    此为循环1000000次读取EPP数据口程序,循环仅为方便用计时及示波器观察而设,并在执行前后分别读取系统计数值,DELAY值除以1.2后为执行花费的时间(单位为微秒),执行前先通过对地址379H的D0位写入高,使该位为低(注意:对该位写入低通常不能达到使该位变为低的目的,只有采取写入高才能使该位变为低),以清除EPP超时位,当A、B点均为低时,可实现最快的EPP握手,若A为高、B为低时,由于EPP周期开始时满足WAIT为低的要求,EPP自动在DATASTB处输出低,但因WAIT没有出现表示应答的高状态,EPP在延时10μs后,将DATASTB恢复为高以结束该次EPP访问过程,并置超时位。稍后因WAIT为低再次开始一次EPP访问过程,如果B为高,则WAIT为高,不能满足EPP的开始条件,故DATASTB保持为高,EPP在延时10μs后结束该次EPP访问过程,并置超时位。在发生超时情况下,数据仍然可正确读入
(这一特性与笔者所查资料[1]有出入),此结论可通过对比循环前后时间差来及实际读入数据值证实。

    注意程序循环中并未执行清除EPP超时位的指令,根据笔者实验,即使已发生EPP访问超时,也不影响下一次的EPP读周期(包括对37BH的地址读及对37CH的数据读),但超时对EPP写周期有影响,在清除超时位之前,EPP写周期无效(因本文不涉及EPP写周期的内容,此处不再展开探讨)。在图2所示意波形中,当有正确握手的EPP读周期执行时间约为1.5μs,此时间是字节模式下一次有效EPP访问所需最短时间,在这段时间内,“IN AL,DX”这一条指令占据了约90%以上的访问时间,验证此点仅需临时屏蔽“IN AL,DX”指令,并比较所花费的时间差别即可。1.5μs相当于接近700kBytes/s的数据读速率。如果以“IN EAX,DX”替代“IN AL,DX”指令,可以充分利用EPP模式下硬件将4个8位数自动合并为1个32位数的特性,在一次I/O访问中由硬件自动产生4个DATASTB负脉冲从而实现4个字节的输入。因为一次字节模式的I/O访问所费时大约间需要1.5μs,减少这类指令的执行次数有利于实现更高速的EPP访问过程,经实验发现以4字节方式访问的EPP过程可以在3.2μs内读取一次,即平均每字节需0.8μs,相当于1.2MBytes/s,此实验结果是基于外设可以连续不断的输送数据理想前提,实际上要实现有效的数据传输,可得到的速率要低于该值。 [page]

    2 WIN98下高速EPP接口的构成

    在WIN98环境下,由于非实时多任务的特性,运行于RING3的应用程序频繁被操作系统打断,这决定了靠软件无法实现连续均匀的数据采样,只有在硬件上配置数据缓冲存储器并及时传入微机以免数据缓冲存储器溢出。只要保证一定深度的数据缓冲存储器,且满足数据传输平均速率大于数据采样速率,就能将所采集的数据传入微机的大容量内存,以备处理。在硬件构成方面,为以较低代价获得大容量的FIFO数据缓冲存储器,采取CPLD器件结合512KB的SRAM方式,实现,由CPLD器件完成读写控制的FIFO特性及EPP模式的应答握手信号。接口结构及CPLD内部功能模块见图3所示,数据在CPLD控制下,以2μs 的固定速率存入SRAM环状连续增量地址,因为EPP模式读取速率与数据采样的固定速率是异步的,控制逻辑为保证2μs 的固定采样速率,当采样时间点到达时,不论当前是否处于EPP应答处理期间,优先执行数据采样,因为处理是在系统时钟脉冲驱动下的硬件行为,仅存在固定的传输延时,故两次采样间隔是严格保证的。

    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,即可


以获得最快约800kBytes/s的数据传输速率。因500ksps的数据采集设计速率仅略低于800kBytes/s的数据传输速率,考虑WIN98工作环境,配置大容量的FIFO十分必要,采用大容量SRAM与CPLD器件构成FIFO,具有成本较低的优点,通过使用VHDL的行为描述,经CPLD器件开发软件的编译、综合、仿真、适配、下载,实现所需要的控制逻辑。根据设计,当数据锁存输出的下一个时钟脉冲(即83ns后),WAIT将输出为高电平,EPP在此时读取数据口信号,如果不采用外部缓冲驱动器,数据上升过程将耗时80ns,P数据接收可靠性有不容忽视的影响,为减小电缆电容的影响,数据输出使用了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模式  数据采集  500ksps 引用地址:EPP模式500ksps数据采集接口

上一篇:基于DSP与CPLD的I2C总线接口的设计与实现
下一篇:基于FT245BM的简易USB接口开发

推荐阅读最新更新时间:2024-05-02 22:00

完整传感器数据采集解决方案应对系统设计挑战
可编程逻辑控制器(PLC)是很多工业自动化和过程控制系统的核心,可监控和控制复杂的系统变量。基于PLC的系统采用多个传感器和执行器,可测量和控制模拟过程变量,例如压力、温度和流量。PLC广泛应用于众多不同应用,例如工厂、炼油厂、医疗设备和航空航天系统,它们需要很高的精度,还要保持稳定的长时间工作。此外,激烈的市场竞争形势要求必须降低成本和缩短设计时间。 因此,工业设备和关键基础设施的设计人员在满足客户对精度、噪声、漂移、速度和安全的严格要求方面遇到了严峻的挑战。本文以PLC应用为例,说明多功能、低成本的高度集成ADAS3022如何通过更换模拟前端(AFE)级,降低复杂性、解决多通道数据采集系统设计中遇到的诸多难题。这种高性能器件
[嵌入式]
MCC公司数据采集产品登陆现货联盟
面向电子行业的特色器部件采购的大型电子交易平台现货联盟宣布,致力于提供完整和有竞争力的基于计算机的数据采集硬件和软件的Measurement Computing Corporation(以下简称MCC)近日将其数据采集标准产品纳入现货联盟网上交易平台。 MCC成立于1989年,是一直活跃于基于PC的数据采集和控制市场一家灵活而有竞争力的增长型公司。其宗旨是利用基于计算机的数据采集硬件和软件帮助客户节省时间和金钱。在市场上,MCC的技术产品一向以易于使用、轻松集成、快速支持服务著称。其研发的产品门类包括:具备模拟输入、模拟输出、数字I/O和计数器/定时器功能的USB数据采集卡;用于电压、温度、湿度、电流、编码器和数字
[手机便携]
MCC公司<font color='red'>数据采集</font>产品登陆现货联盟
智能传感器接口在数据采集中的优势
大多数模拟测量系统的系统架构都相对比较直接。这种架构的核心通常是主机处理器,用于控制并检索来自一个或多个 ADC 的数据。在信号链一端向 ADC 馈送数据的是主机控制的传感器。对上述系统进行分析,并明确在不影响性能的情况下需进行哪些优化,其实对我们来说可做的事情并不多。要确定功能块中需要集成哪些功能并不容易,很难直接控制传感器前端。此外,我们通常要根据一系列其他要求预先确定主机处理器,这主要是由存储器大小、CPU 速度等软件要求决定的。 对负责系统后端的模拟设计人员而言,通常只能对 ADC 进行优化。不过,这时数字接口基本已经不能变更了,这主要也是由主机处理器的要求决定的。当然,目前非常多的主机处理器都能实现极高的性能且具备灵
[单片机]
智能传感器接口在<font color='red'>数据采集</font>中的优势
基于ADS7846动态签名认证的数据采集和预处理
摘要:在线动态签名认证越来截止多地运用于各种领域,尤其适用于银行金融系统以及个人身份识别等,而作为在线签名认证的基础—笔迹的数据以及预处理,对后续认证的准确性尤为重要。本文着重介绍触摸屏的工作原理以及如何利用AT89S51、触摸屏和触摸屏控制器ADS7846,实现对在线笔迹,包括压力在内的三维数据采集,并对采集的数据进行预处理。 关键词:AT89C51 触摸屏控制器 ADS7846 动态签名 数据采集 预处理 由于触摸屏输入方便、轻薄、便于携带等优点,越来越多的电子产品用触摸屏作为人机界面的输入设备。在动态签名认证中,亦采用触摸屏作为输入设备对笔迹进行数据采集。本文主要从触摸屏工作原理、ADS7846的工作方式以及单片机89
[单片机]
基于PIC16F877单片机的井下压力测量技术研究
目前,我国油井主要采用的是电子式井下压力测量系统,由于电子压力传感器长期工作在高温环境中,所以存在漂移问题,而且可靠性不高。同时这种仪器大多数将采集的数据存储在存储器中,缺乏实时性测量的要求。而本文所介绍的井下压力采集系统是一种新型的压力测量系统,其主要是以惰性气体作为压力传递介质,在地面完成对井口气体压力的测量,然后通过井口压力的大小推算井下测压点处压力大小。其主要特点是所有的测量都在地面上进行,避免了井下复杂环境对测量结果造成的影响,同时也满足了系统的实时性要求。 1 井下压力测量系统工作原理 井下测压系统的基本原理是帕斯卡定理。整个套管设备在测压时被下放到井下测压点处,地面可以通过压力泵向传压筒内充放气体,为维持井液与
[单片机]
基于PIC16F877单片机的井下压力测量技术研究
利用直接时钟控制技术实现存储器接口数据采集
提要 本应用指南介绍了在 VirtexTM-4 器件中实现存储器接口的直接时钟控制数据采集技术。直接时钟控制方案利用了 Virtex-4 系列所独有的某些架构特性(例如,每个 I/O 模块 (IOB) 中均具备一个 64-tap 的绝对延迟线)。 简介 大多数存储器接口都是源同步接口,从外部存储器器件传出的数据和时钟/ 选通脉冲是边沿对齐的。在 Virtex-4 器件采集这一数据,需要延迟时钟/ 选通脉冲或数据。利用直接时钟控制技术,数据经延迟,并与内部 FPGA 时钟实现中心对齐。在这个方案中,内部 FPGA 时钟采集传出的数据。存储器传出的时钟/ 选通脉冲用于决定与数据位相关的延迟值。因此,与选通脉冲相关的数据位的数量不
[工业控制]
基于DSP的高速数据采集系统设计方案
引言 近年来,高速数字信号处理器(DSP)已越来越广泛地用于各个领域,例如:通信、语音处理、图像处理、模式识别及工业控制等方面,并且日益显示出巨大的优越性。数字信号处理器是利用专门或通用的数字信号处理芯片、以数字计算的方法对信号进行处理,具有处理速度快、灵活、精确抗干扰能力强、体积小、可靠性高等优点,满足了对信号快速精确实时处理及控制的要求。 通用串行总线USB(Universal Serial Bus)具有连接灵活、可热插拔、一种接口适合多种设备、速度高、自动配置、无需定位及运行安装程序、可为外设提供电源、低功耗、低成本、高可靠性等优点使数据的高速传输变得非常便利。 设计一种通用数据采集与信号处理系统,采用高
[嵌入式]
基于ARM7的多通道数据采集系统的设计
    近年来随着我国航空工业的不断壮大,我国航空发动机的自主设计研制进程也越来越快。在任何型号航空发动机定型之前都要经过各种严格的测试,如振动、压力、噪声、转速及发动机电子控制单元输出信号的检测等。通过对其进行的各项测试才能及时发现其设计缺陷,并根据测试记录的数据进行改进。因此设计完成一套适合航空发动机动态测试的多通道数据采集系统就显得尤为重要了。     航空发动机的动态测试需要数据采集系统配合上位机来完成。数据采集系统将各传感器及发动机控制单元输出的信号进行调理、采集、分析处理后上传至上位机,并及时接收发动机的电子控制单元输出的数字信号,配合上位机完成相应的控制。现有测试当中数据采集系统都是采用数据采集卡,另外配备调理电
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved