首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
一种用于飞行器下传数据处理的高速数据采集存储系统设计
来源:本站整理  作者:佚名  2009-12-29 15:29:00




     一个典型的PCI总线上的写数据传输时序如图2-2中所示。首先用于传输的数据必须要提前从本地的缓冲区中读出,然后出现在总线AD信号线上,当IRDY信号和TRDY信号同时有效时(为低电平时),被目标设备获取。当传输结束时,最后一个从本地缓冲区中预读出的数据(如图中阴影的数据3),并不会被传输到目标设备。而本地的缓冲区控制模块会认为数据已经传输,这时如果不采取措施就会导致数据丢失。
 


     在传输结束的时候,PCI总线传输状态机会切换到备份数据的状态,在这个状态下,缓冲区的控制模块会检测是否存在已经读出而未传输的数据,如果存在这样的情况,控制模块则采取措施防止数据丢失。对于双口RAM这种存储结构而言,数据读出以后,只要没有在同一地址写入数据,那么数据是不会丢失的,因此要实现前面的功能只需要简单的修改一下读指针目前指向的地址就可以实现。
2.4 传输控制模块的设计
     传输控制模块的核心是一个传输控制状态机。它通过检测存储缓冲区的情况,来控制传输的进行。当输入缓冲区中数据存储满或输出缓冲区空以后,自动请求一次数据传输,由此保证数据流的连续。
3 驱动与应用程序的开发
    驱动程序的开发是采用标准的WDM(Windows Driver Model)设备驱动程序模型,利用DriverStudio的驱动程序开发工具包来进行开发的。关于WDM的驱动程序模型,限于篇幅的原因就不作详细的介绍。
    一个典型的数据传输过程是这样进行的。首先驱动程序完成设备的初始化,如在内存中开辟缓冲区,硬件设备的初始化等等。完成初始化以后硬件就处于等待传输的状态。当用户通过应用程序发出传输数据的指令以后,驱动程序处理这一请求,并对硬件发出指令开始数据传输。由于数据传输的时间可能比较长,所以应用程序采用多线程的设计,传输线程会等待驱动程序在传输结束时发出的信号,而同时应用程序还能完成与用户的交互工作。当传输结束后,驱动程序向硬件写入停止指令,中止传输,并向应用程序发出传输结束信号。驱动程序对应用程序的通信是通过创建Win32事件来实现通信的。
4 设计的仿真和验证
     为了验证设计的正确性,首先需要对设计进行逻辑功能仿真。为了验证设计是否能正常的工作在PCI总线上,那么就需要仿真PCI总线上的各种总线事务,验证设计是否能响应各种总线命令。仿真是在Xilinx公司提供的PCI总线接口仿真实例的基础上实现的。按照PCI总线规范设计了一个简单的总线仲裁器,用来仿真主设备申请总线占用的过程。此外还设计了一个PCI总线上的从设备,用来仿真主设备与从设备之间的数据传输过程。此外还仿真了总线上对设备的自动配置过程。通过观察仿真波形图,发现设计完全满足PCI总线的数据传输规范,而且数据传输的结果正确。
    在仿真验证正确的基础上,将设计实现于Xilinx公司型号为virtexII2v1000-fg456-5的FPGA中。将数据接口卡安装于测试计算机上,利用数据接口卡的自回路数据传输功能以及单向输入输出功能,对系统进行了验证和性能测试,结果如表格1中所示。
从结果可以看出,当输入输出速率保持在160Mbps以下时,可以保证自身回路数据传输无错进行,但是当速率提高到200Mbps以后,传输就会出现数据丢失,导致接收的数据与发送数据不一致。因此,为了保证数据的无错传输,自身回路数据传输测试速率应该不高于160Mbps。

  单向输入输出测试时,当输入速率或者输出速率小于300Mbps,系统的功能是完全正确的,而当工作于400Mbps的时候,则会出现数据丢失的情况。与自身回路传输测试的数据比较可以看出,当在自身回路数据传输测试速率为200Mbps的时候,由于此时系统接收和输出同时进行,共同分时使用总线,此时相当于单独接收或者单独输出测试时400Mbps的传输速率。两次测试结果的一致性也说明了测试的可靠性。
5 结语
    通过对系统的测试验证,证明了本设计能够完全满足高速实时数据流对数据采集存储系统的要求。为了方便以后进一步的工作,在测试时也对缓冲区大小和传输速率之间的关系进行了简单的测试。将缓冲区大小从8KB改变到16KB以后,传输速率只是稍微有些提高,对性能的改善十分不明显。结果说明简单的扩大硬件缓冲区并不会带来数据传输速率的明显改观,同时还会占用FPGA内部宝贵的RAM资源。究其原因在于,数据传输速率主要受到32位/33MHzPCI总线带宽自身的限制,以及硬盘读写的峰值速率的限制,而并不是缓冲区大小的影响。可以预见如果采用64位/66MHz的PCI总线并采用更多的磁盘来构成RAID磁盘阵列以提高磁盘读写速率,那么整体的性能会有很大的提升。

上一页  [1] [2] 

关键词:

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

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:288,523.40000 毫秒