关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于fifo存储器的声发射信号的数据传输及存储

基于fifo存储器的声发射信号的数据传输及存储

作者:时间:2010-09-17来源:网络收藏

  3.2 cpld控制逻辑

  当并行数据进入板卡后,cpld首先将一部分数据存入锁存器,而将另一部分数据直接存入。但此时必须将写时钟wclk进行二分频,以便在一个ad转换周期内完成两次写操作。当数据到达半满时,cpld便向pci9054发出中断申请,并由pci9054将该申请传入计算机。若系统响应该中请,则在中断响应程序内发出读命令,以读取字节数和地址等。

  pci9054通过lhold申请local总线控制权,而cpld则通过lholda响应,以使pci9054能得到局部总线的控制权。pci9054首先将pci地址窄间映射到本地地址空间,接着启动本地总线的散聚dma周期。cpld收到读(lw/r)、地址选通信号(ads)和地址(la16、la17)后便开始传送数据。当la16位为0,la17位为1时,系统将使能后三片fifo的读使能端(ren2),以使后三片fifo数据线上的q0~q31有效而同时也使pci9054的准备好信号(ready)有效,开始数据传送。在最后一个数据传送之前,blast信号有效,之后,cpld将在一个时钟周期后使fifo的读使能(ren1或ren2)无效,从而完成一次数据传送过程。

  3.3 控制程序设计

  pci9054单周期读、写和dma读的vhdl语言时序控制状态机设计如图4所示。图中,s0为空闲状态。当本地总线请求信号lhold被置1时转到s1,否则留在s0。s1为总线保持状态,此状态下应将本地总线响应信号lholda置1。如ads信号为0且lw/r为1则转到s3,如ads信号为1且lw/r和blast为0则转到s4,这种状态表明此次读操作为单周期读。s2为dma读状态,在此状态下应将ready信号和fifo读使能信号ren1置0。如blast为1,则表明此次dma读取还未完成,应继续留在s2,如blast为0,则表明此次dma读取完成,可转到s4。s3为单周期写状态,此状态下也要置ready信号为0以表示写数据有效,并在blast为0时转到s4。s4为读写操作完成状态,当lhold被置0时,表明pci9054不再请求本地总线,此时应转到s0,当blast为0且lhold为1时,表明pci9054还要进行数据读写,故应转到s1继续操作。

  

  3.4 控制程序逻辑的仿真结果

  max+plus⑹强发aletra公司的fpga/CPLD系列产品的软件工具,本设计利用此工具提供的设计环境和设计工具来对cpld控制程序进行开发和调试。其功能时序如图5所示。

  

  cpld的设计是用vhdl编程实现的。本设计的操作代码都已经过仿真,并在实际调试中得到应用。

  4 系统驱动程序设计

  本设计使用driv erworks的driverwizard来创建wdm框架程序。可根据设计需求添加程序代码,从而完成pci设备的dma传输系统驱动程序,以执行dma操作、访问i/o端口和器空间、处理器中断和访问pci。根据系统需要,驱动程序的关键是三个方面:硬件访问、中断处理和dma传输。

  kdmaadapter类可用于建立一个dma适配器,以标明一个dma通道的特性和提供串行化访问服务;kdmatransfer类则用于控制dma的传输和启动dma传输,以传输dma数据缓冲区物理地址和字节数,dma传输结束后,数据将由公用缓冲区拷贝到应用数据缓冲区;kcommon dmabuffer用于实现公用缓冲区的操作。对于dma操作,本系统还提供了一个特殊的内存,即公用缓冲区。应当说明的是,公用缓冲区是稀有的系统资源,应该避免浪费使用。

  5 结束语

  本文给出了数据缓存、传输模块控制电路的设计,并采用vhdl语言和cpld很好的完成逻辑控制任务和系统驱动程序的编写与调试。实验结果表明,该数据传输模块的硬件、软件工作十分可靠、稳定,可实现640 mbps(80 mbyte/s)以上实时数据的与传输,完全能满足声信号采集的要求。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭