一种Windows2000下连续输出数据的PCI卡

发布者:清新家园最新更新时间:2006-05-18 来源: 电子技术应用关键字:存储器  模块  输出 手机看文章 扫描二维码
随时随地手机看文章

  在视频输出、声呐仿真等实际应用中,经常要求计算机能根据要求稳定输出连续数据流。然而,当计算机工作于Windows2000操作系统下时,由于该操作系统是一个多任务的非实时操作系统,当它收到外部设备发来的中断时,需要延迟一定时间间隔后,才开始执行中断服务程序。这样,从计算机I/O口直接输出的数据流只能是间歇的数据流,无法提供连续数据流,不能满足实际应用的需要。   

  幸运的是,许多实际应用只需要低速的连续数据流。可以利用PCI总线的高速数据传输特性,在PCI接口后加入一个大容量FIFO存储器,高速的PCI数据流从FIFO存储器的输入端输入,在FIFO的输出端就能获得低速的连续数据流。这样屏蔽了Windows2000的非实时性,成功满足实际应用的需要。在图1所示的具体应用中,计算机与PCI卡之间通过PCI总线形成峰值速率达132MB/s的间歇数据流;PCI卡通过局部总线与大容量存储器之间同样是峰值速率达132MB/s的间歇数据流;最后通过多路D/A转换电路获得了速率为16MB/s的连续数据流。为了便于应用,将PCI接口模块与大容量存储器结合,设计了一块能在Windows2000下以16MB/s的速率连续输出数据的PCI卡PCF1536。      

  1 PCF1536的工作原理


  PCI卡PCF1536是一个带有1536KB FIFO的通用PCI卡;在Windows2000操作系统下,它能以16MB/s的速度连续输出数据。图2是PCF1536的结构框图,整个PCF1536包括PCI接口、大容量FIFO存储器和驱动器三个模块。      

  1.1 PCI接口模块


  PCI接口模块由PCI9052和配置EEPROM 93LC46组成。PCI9052是PLX技术公司的产品,兼容于PCI协议(2.1版);它可作为PCI总线的从设备,支持32位数据突发传输。图3是PCI9052与PCI金手指和存储器模块的连接示意图。   


  PCI9052与存储器有三种连接方式:数据地址复用、数据地址非复用和ISA方式[1]。在PCF1536中,PCI9052采用数据地址非复用方式连接FIFO存储器。其时序参见文献[1]。PCI9052与FIFO的连接信号中,ADS表示一次突发传输的开始,BLAST表示一次突发传输的结束,LAD[0:31] 为32位数据,LBE[0:3]为字节有效信号。缓存后的时钟输出信号BCLKO经74LS00送回PCI9052,同时也送到FIFO。FIFO半满时发出的中断信号通过LINTI1进入PCI9052,再通过INTA发送给CPU。由于FIFO的写入不需要地址,因此PCI9052与FIFO之间没有地址连接。         


  1.2 存储器模块

  1.2.1 存储器组织


  存储器模块由CPLD器件EPM7128SQC100和四片FIFO器件AL422B组成。AL422B是AVERLOGIC公司的产品,每片AL422B包含384K×8位DRAM,主要应用于视频输出。在现有的FIFO存储器中,AL422B具有最低的价格/存储位比。这是PCF1536选择使用AL422B的主要原因。AL422B的结构框图如图4所示。它能完成初始化、复位、写和读等四种操作[2]。初始化操作发生在上电后0.1ms内,和 保持为低电平,然后可以开始正常操作。复位操作中,有效,则输入数据地址设置为0且清空输入缓存; 有效,则数据输出地址设置为0且将数据预取到输出缓存。当有效时,完成写操作,在WCK上升沿将DI7~DI0写入写数据寄存器;无效时,禁止写操作,写地址计数器保持不变。四片AL422B通过位扩展成384K×32位的FIFO存储器,如图5所示。      


  1.2.2 存储器控制器

  AL422B虽然有不同的数据输入和输出端口,但与通用FIFO存储器不同,它并不提供半满信号、数据有效信号等。因此AL422B不是完全意义上的FIFO存储器[2]。在PCF1536上,使用一片可编程逻辑设备EPM7128作为FIFO控制器,全面控制AL422B的功能。从图2和图5可以看出,EPM7128为FIFO提供RCK、、、DI[0:31]、、、TST、和WCK等读写控制信号;当FIFO半满时提供半满信号HF;另外EPM7128为外设提供正负数据有效信号、4MHz和8MHz的时钟信号等,供外设灵活使用。图6是用VHDL语言对EPM7128编程而成的FIFO控制器。该控制器由JTAG模块、写模块、读模块和控制模块组成。计算机通过JTAG接口对EPM7128现场编程。当PCI9052的数据准备好后,写模块按LCLK时钟将数据读入,接着按WCK时钟将数据写入AL422B。在FIFO控制器的控制下,整个384K×32位的FIFO存储器被分为A、B两部分。当数据从A部分读出时,PCI9052将数据写入B部分;反之,当数据从B部分读出时,PCI9052将数据写入A部分。数据读出的速率为16MB/s。当A(或B)部分数据读完后,FIFO控制器接着从B(或A)部分读数,并通过中断通知CPU向A(或B)部分写入数据。如此循环往复。      


  1.2.3 最大允许中断延迟

  要保证PCF1536输出连续数据,就必须保证FIFO不会被读空。FIFO输出数据的同时,PC机必须及时补充数据。从上可知,整个FIFO存储器被分成A、B两部分,每部分容量均为192K×32位。下面分析当数据从存储器B部分读取、向存储器A部分写入时,读写FIFO存储器的时间关系,如图7所示。   


  假定PC机的中断延迟时间为TINT_LAT,PC机写满存储器A部分所用时间为TPCI,剩余时间为TREM;读完存储器B部分所用时间为TOUT。如PCF1536输出连续数据流,剩余时间TREM必须大于等于0。   

  TREM = TOUT-TINT_LAT-TPCI≥0 (1)   

  根据公式(1),有:   TOUT-TINT_LAT-TPCI≥0 (2)   TINT_LAT≤TOUT-TPCI (3)   

  PC机写满存储器A部分所用时间:   TPCI=192KB×4/(132×1024)×1000≈5.68ms (4)   

  读完存储器B部分所用时间:   

  通过以上计算,在Windows2000操作系统的最大中断延迟不大于41.2ms的情况下,PCF1536能以16MB/s的传输率连续输出数据。   

  中断延迟决定了硬件产生的中断并得到PC机正确响应的最高频率。实际上,根据各种资料分析[3],虽然Windows2000操作系统的中断延迟会随着应用条件不同而差异很大;但可以肯定的是,其中断延迟远远小于41.2ms。      

  1.3 驱动器模块

  驱动器模块由七个74LS245构成。每个74LS245能为8位数据(信号)提供驱动,其中四个74LS245用作32位数据线的驱动器,另外三个用作控制信号的驱动。每个74LS245的输出分别连接到16脚的插座。16脚插座中的8个脚接信号线,另外8个脚接地线,以提高输出信号的抗干扰能力。采用这种输出方式,PCF1536与外设之间可以用4m的排线连接而不会受明显干扰。      

  2 测试过程及测试结果

  
图8是PCF1536卡的测试系统。计算机重复发送如下数据:0x20002000、0x32CF32CF、0x3E6F3E6F、0x3E6F3E6F、0x32CF32CF、0x20002000、0x0D300D30、0x01900190、0x019-00190、0x0D300D30。以上10个数据实际上是对一个正弦波的10个均匀采样值。用示波器监视D/A转换器的输出。   


  在示波器上可以观测到:36路的D/A输出都是稳定的20kHz正弦波。该测试系统经过连续48小时运行,没有出现计算机死机和停止发送数据的现象。因此,结论显而易见:在Windows 2000操作系统下,PCF1536能以16MB/s的速度连续输出数据,它满足某些系统对连续数据流的要求。利用该测试系统,虽然不能准确测出Windows2000的中断延迟到底有多大,但可以肯定:Windows2000的中断延迟远远小于41.2ms。



参考文献
1 PLX Technology,Inc. PCI9052 Data Book.V2.0, September 2001.www.plxtech.com.
2 AverLogic Technologies,Inc. AL422 Data Sheets. Jan 2001.www.averlogic.com.
3 李圣怡,戴一帆.Windows环境下软硬件接口技术.长沙:国防科技大学出版社,2001

关键字:存储器  模块  输出 引用地址:一种Windows2000下连续输出数据的PCI卡

上一篇:双机通信在CPCI总线上的实现
下一篇:PC机并口与现场总线CAN通讯的实现

推荐阅读最新更新时间:2024-05-13 18:11

ARM·存储器配置
关于配置SDRAM的这个程序,因为研究了2天,所以这里最后再复习一下 首先补充一下基本的知识: 运行地址- 链接地址 在SRAM或者SDRAM中执行程序时,PC指向这个地址,那么命令就应该在这个地址里面 ; 加载地址- 存储地址 程序保存在NAND FLSAH中的地址 位置无关码:B,BL,MOV 位置有关码:LDR PC,=Label 【关于Makefile】 sdram.bin : head.S leds.c arm-linux-gcc -c -o head.o head.S arm-linux-gcc -c -o leds.o leds.c arm-linux-l
[单片机]
存储器越深,示波器的性能是否就越好?
大部分人不会嫌他们的汽车太省油,或是嫌他们的房子太宽敞。同样地,大多数示波器 用户总是会觉得示波器的采集存储器不够大。但是,正如您在汽油油耗(比如加速较慢) 或住房面积上(供暖和制冷费用)的权衡一样;考虑到示波器的架构,您可能也会对更高的采集存储器做出最契合实际的取舍。 今天我们将讨论: – 示波器采集存储器的重要性 – 不同的示波器架构以及各个架构的优缺点 – 使用不同方法以便充分利用您的示波器采集存储器 示波器采集存储器的重要性 采集存储器是示波器的重要组成部分。在简易的示波器中,采集存储器是由一个负责采集模拟信号的前端组成;随后将这个信号发送到模数转换器进行数字化处理。在数字化 之后,信号的信息会被储存到存储器(采集
[测试测量]
<font color='red'>存储器</font>越深,示波器的性能是否就越好?
N76E003 PWM 程序及分析(边沿对齐、独立输出模式)
N76E003 包含三对( 6个PWM通道) 16位精度、可调周期和占空比的PWM输出 让我们来看看六个通道的引脚分别是 可能有同学会疑问,为什么P1.5和P0.3都是PWM5,那如果要使用PWM5,该如何选择引脚呢?我们来看看芯片内部的原理图。 还是以PWM5为例:芯片内部是通过一个二选一选择器来进行引脚选择的,通过PIO05/PIO15寄存器来进行数据选择. 如果我们选择使用P0.3作为PWM5的输出管脚,PIOCON0|=0x20;即可 贴心的新唐官方,为了让我们不用每次都去查表,在function_define.h中,提前将这些寄存器进行了宏定义。PWM5_P03_OUTPUT_ENABLE这样就可以了~
[单片机]
N76E003 PWM 程序及分析(边沿对齐、独立<font color='red'>输出</font>模式)
轻松搞懂STM32F4之DMA
DMA的作用以及DMA与CPU干扰问题 DMA(Direct memory access):直接存储器存储。 目前网上对于DMA有两种说法,一种是在DMA传输时,CPU可以正常工作,一种说法是不可以,这两种说法其实有对也有错,经过我的大量查询后,终于得出了一个靠谱的答案。那么想弄清楚这点,需要先了解总线与时钟的关系(先凑合看,回头写个总线架构专讲) 时钟:计算机的最小时间单位,用于同步控制电路,计算机中每个动作所用时都是以时钟周期为单位的,多个时钟周期或一个时钟周期等于一个机械周期,多个机械周期等于一个指令周期(写多个是因为不同芯片上他的不同周期的比值不同),指令周期执行指令集中的一条指令所需要的时间。 总线:计算
[单片机]
轻松搞懂STM32F4之DMA
STM8 互补 PWM TIM1定时器 输出成功
程序测试: #include iostm8s003f3.h void PWM_INIT() { CLK_PCKENR1 |= 0x80;//开启定时器1外设时钟 TIM1_EGR |= 0x01; //重新初始化TIM1 TIM1_CR1 = 0x00; //B7(0)可以直接写入 B65(00)边缘对齐模式B4(0)向上计数B3(0)计数器不停止发生更新事件 TIM1_RCR = 0x00; TIM1_PSCRH =0; //设定预分频为,16分频 1M TIM1_PSCRL =0x80; //PWM的时钟 影响周期 TIM1_CCER1 = 0x0F; //CC2ER1开
[单片机]
STM8 互补 PWM TIM1定时器 <font color='red'>输出</font>成功
基于NI数采模块的测井数据采集控制系统设计
挑战:使用标准工业数据采集产品设计并开发石油测井行业特有的以等深度(位移)间隔触发和控制为核心的对直流信号、脉冲信号、数字信号等多种信号进行同步、高速和实时数据采集与控制的测井数据采集和控制系统。 应用方案:深度开发NI PCI-6602,产生控制系统采集的等距和定时触发信号,并实现系统深度的高精度测量;充分开发和利用NI数据采集卡的RTSI功能并结合其DMA传输模式,实现Windows环境下的直流、脉冲、数字信号的高速、实时、同步采集和处理。 介绍: 测井数据采集控制系统是用于对各种置于地层中的井下仪器产生的信号进行采集、处理并对井下仪器进行控制的油田基础测控设备。由于专业性极强,以往系统中的数据采集及控制单元通常是以自我
[测试测量]
NTT光存储器有助发展低耗电资通讯技术
NTT发表世界首创的光存储器技术,容量超过100bit,可免除光讯号转换为电子讯号的资料处理动作,有助于未来发展高速化、低耗电的资通讯(ICT)技术。 截至目前为止所研发的光记忆体尺寸都偏大,没办法收容在一起使用,因此被认为是光记忆体研究中最为困难的一环。而NTT在多次反覆研究后,使用光子晶体(photonic crystal)素材的光奈米共振器结构,研发出可收纳于晶片内的超小型光记忆体,将光封闭于装置中以储存资讯。 目前为止的光记忆体就像NTT 2012年研究的产品一样,大多只能做到4bit程度,而这次实际做出100bit以上的光RAM,有助于今后正式研发大规模光RAM,进而产制实用性高、可直接处理光资讯的
[网络通信]
NTT光<font color='red'>存储器</font>有助发展低耗电资通讯技术
三菱电机将电池单元尺寸减半 效率能提高
  三菱电机将从2011年4月18日开始销售新的结晶硅型太阳能电池模块,采用了将单晶硅太阳能电池单元尺寸减半的“1/2单晶单元”。据三菱电机介绍,单单排列尺寸减半的单元,就能将模块转换效率提高12%。与该公司原产品相比,模块转换效率提高到了15.0%,模块输出功率由200W提高至209W。   将单元尺寸减半是为了减少布线部分的损耗。在普通大小的单元中,电流值为8~9A。而将单元尺寸减半后,电流值也降至一半的4A左右。由此,布线部分的损耗降至1/4。根据这一效果,转换效率得到了提高。虽然单元尺寸减半会增加安装工序,不过不会对制造成本造成太大影响。
[汽车电子]
小广播
最新应用文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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