基于USB 2.0总线的航天设备地面检测系统

工控自动化 时间:2011-06-28来源:网络

本系统分别采用2和6号端点分别负责输出和输入数据的处理工作,两个端点分别有512 B×4的FIFO,此时CY7C68013A的内部FIFO配置如图4所示。

d.JPG


2.2 上位机应用软件
2.2.1 DMA传输方式
除了通信协议开销、带宽分配以及USB使用的电磁环境等之外,在高速数据传输系统中,还必须考虑操作系统对USB数据传输速率的影响。
PC机的通用操作系统Windows并不是一个严格的实时操作系统,所以在进行USB数据传输的过程中,操作系统的分时调度策略会给数据传输速率带来很大的影响。Windows的每个时间片长度约为20 ms,如果要经过操作系统的调度,USB数据收发进程将会在占用CPU一个时间片之后就交出控制权,等待下次获得CPU控制权,从而导致数据收发速率的降低。
因此,为了提高USB传输速率,系统应当采用DMA方式传输数据,也就是使数据的传输不用经过CPU的处理,从而减去操作系统分时机制的影响。Cypress公司提供了相关的支持DMA传输方式的接口即“CYAPI”,它较好将底层操作函数封装为9个类,便于操作;同时CYAPI内部集成了多线程的操作,数据开始传输之后用户便可以返回继续操作其他的内容,不需要用户在程序中自己处理相关的线程操作或者等到数据收发完毕再继续进行其他工作。
2.2.2 软件操作
为了提高数据处理能力,本系统不在数据接收的过程中处理数据,而是将数据直接存储,数据传输完毕之后再进行相关分析处理,因为数据处理过程也会引入操作系统时间片的延时。为了提高数据的接收和存储速度,系统采用多线程结合乒乓存储的方式接收、存储数据。乒乓存储是通常在硬件设计中使用的快速存储方式,应用到本系统中,一个线程接收数据的时候,另一个线程便存储数据,来回对2个内存区域分别进行操作,从而减少系统延时,加快系统的处理速度,详细的流程如图5所示。

e.JPG


如图5所示,本系统采用了两个线程Read和Write用于数据的接收和存储,线程Read专用于读取USB接口传输的数据并存储到Buffer中,线程Write则从Buffer中提取数据并存储到文件中。两个线程通过Full和Empty来互斥其对缓存操作,从而保证数据存储的正确。
本系统采用Cypress公司设计的专用函数接口CYAPI进行软件设计,CYAPI相对于以前的接口具有很大的优点,它集成了DMA和多线程的操作,提高系统速度的同时简化了用户的软件开发。使用CYAPI进行数据传输操作最主要的是正确的使用Begin-DataXfer、WaitForXfer和Fini-sh DataXfer三个函数,同时应该注意的是,在数据接收发送过程中应该对函数FinishDataXfer的返回值加以判断,否则在恶劣的电磁环境中会出现数据传输错误的情况。

3 结语
本系统利用USB 2.0总线实现了各种接口的转换,利用PC机的一个USB口便转换为多种接口,很好的契合了航天设备检测中设备接口种类多,数据格式杂的应用背景。利用一个USB接口便完成了系统需求,极大的节省了PC机资源,同时一个电路板便可以解决大量设备的检测验证工作,大大简化便捷了相关的工作。采用可编程逻辑器件处理相关接口转换及数据收发工作,只需要改变FPGA代码便可以实现不同任务的需求,极大的提高的系统的可重复利用率。
实践证明,USB 2.0的高速性能够满足多种接口速度的需要,热插拔性极大的方便了该系统的使用,该地面检测系统已经运用于多个航天器的检测中,很好的满足了项目的需求,实现了系统设计的目的。

1 2 3

关键词: USB 总线 航天 地面检测系统

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章


用户评论

请文明上网,做现代文明人
验证码:
查看电脑版