通用串行总线USB 2.0因其可热插拔特性以及传输速度高而得到了越来越广泛的应用,在高速传输模式下可以达到480 Mb/s。相对于通用串口而言,USB 2.0有速度高的优点,数据的接收发送速率远远高于RS 232等接口。而相对于PCI而言,USB 2.0具有热插拔以及安装方便的优点,不需要停止计算机设备的运行便可以进行安装拆卸。因此,考虑到以上优点,可以通过FPGA将其转换为各种不同接口以满足不同的应用需求。
USB接口拥有传输速度高、应用广泛的特点。在航天设备的检测中,经常需要处理多种不同的接口和不同数据格式,可以将USB 2.0接口加以转换,在一个设备中集成多种不同的接口。本系统将PC机上的一个USB 2.0接口转换为LVDS(Low Voltage Differential Signal)以及RS 422等接口,同时通过PC上位机软件模拟相关的接口数据,使得航天设备的检测变得更加简便快捷。同时由于系统采用了可编程逻辑器件FPGA作为系统接口转换单元,可以通过改变FPGA中的逻辑使系统适应不同的应用需求,加快了系统在不同运用场合下的开发速度,使系统具有很高的通用性。
系统采用Cypress公司的USB控制器Cy7C68013A以及Actel公司的APA300系列FPGA作为系统的主要部分,实现了USB 2.0总线与多种航天设备接口之间的互相转换,并成功运用于多个卫星任务有效载荷的地面检测中。本文给出了USB 2.0到各种接口转换电路的相关软硬件方案,同时讨论了影响USB 2.0速度的相关问题。
1 系统硬件电路设计
1.1 硬件结构框图
本系统主要用于航天设备的地面检测中,通常需要涉及多种接口,如RS 422,LVDS等,同时需要模拟外部的开关控制信号等,涉及的信号接口比较杂。在最初设计中,该检测设备主要用于某型号卫星电子设备接口功能和性能的测试,具体要求如下:
(1)模拟有效载荷功能,通过LVDS接口发送原始图像数据至测控接口单元,共4路LVDS接口信号,分别为帧同步、行同步、时钟和数据,传输速率为5 Mb/s;
(2)模拟相关功能,通过双向异步RS 422串行接口与其他有效载荷接口通信,发送载荷的工程参数并接收控制信息然后执行相应动作,接口速率为115.2 Kb/s;
(3)卫星平台接收来自有效载荷的图像数据,接口为LVDS,数据传输速率为5 Mb/s;
(4)模拟载荷单元向卫星平台输出8路模拟量遥测信号;
(5)模拟相关载荷输出6路遥控指令接口,指令接口为集电极开路输出。
系统采用可编程逻辑器件完成相关的逻辑以及接口转换,配合USB接口控制芯片完成系统的相关功能和需求。硬件设计的原理和结构如图1所示。
如图1所示,地面检测设备主要由USB接口转换模块,FPGA,各种通信接口模块,以及其他的辅助模块(包括电源,时钟和复位模块等)组成。
(1)USB接口转换模块采用Cypress公司的USB协议芯片CY7C68013A完成USB接口到其他总线接口的转换。该芯片基于Cypress公司的FX2LP平台,兼容FX2系列,同时在芯片中集成了USB 2.0收发控制器以及一个增强型的8051单片机。CY7C68013A同时支持多种传输方式,可以通过编程配置为所需要的工作模式。
(2)FPGA模块作为整个系统的逻辑控制转换核心,完成USB 2.0接口数据到外围接口数据之间的互相转换。本系统采用Actel公司的APA30 0系列的FPGA,其内部逻辑如图2所示。
1.2 USB与LVDS接口的互相转换
以USB和LVDS接口之间的转换为例来说明USB 2.0到各种接口之间的转换方法。LVDS是一种常用的稳定的高速串行总线,具有传输速度高和稳定的优点,广泛运用于航天、军工以及各种工业产品中。
在处理LVDS数据的过程中,系统接收到数据之后,FPGA内部逻辑对数据进行串并转换,然后对数据进行封装即添加数据包头和包尾,之后将数据放入到LVDS专用的FIFO中。数据发送逻辑监测CY7C68013A的总线是否繁忙,如果总线空闲同时FIFO中有需要上传到PC机的数据,就将相关数据发送到USB控制器,USB控制器再将数据传送到PC机中。
PC上位机到外围LVDS接口的数据传输过程与此类似,上位机USB 2.0接口和RS 422等接口之间的互相转换逻辑也采用类似方法完成。
2 系统软件设计
系统软件主要由两部分组成,即USB 2.0芯片的固件程序以及PC上位机的数据收发处理程序,下面分别加以简要介绍。
2.1 USB固件设计
设备固件程序的主要功能是对CY7C68013A总线芯片的相关寄存器进行初始化,从而控制FX2LP的数据收发,同时处理USB驱动程序的请求(如请求设备描述符或设置设备状态,请求或设置设备接口等USB 2.0标准请求),控制芯片中应用程序控制指令的接收和执行等。CY7C6801 3A内部集成了一个增强型的8051单片机,其配置程序的编写与下载和标准的8051处理器相同,方便了用户的开发。
CY7C68013A支持Slave FIFOs和General Programmable Interface(GPIF)2种工作模式。其中Slave FIFOs主要用于外部包含有控制逻辑的系统中,在这种工作模式下,CY7C68013A的内部CPU并不直接接触和处理数据,此时CY7C68013A只是简单的用作USB接口和外部控制器之间的数据传输通道。而GPIF则用于外部没有控制器的系统中,此时CY7C68013A通过GPIF接口控制数据的传输。本系统采用了Aetel的FPGA作为外部的数据控制及接口转换逻辑,所以系统采用Slave FIFOs工作模式,CY7C68013A只是简单的用于USB接口和FPGA之间的数据传递。
USB有四种标准的传输模式,本系统涉及到高速数据的传输,所以根据实际需要选用Slave FIFO中的批量传输(Bulk)模式,同时为了减少USB芯片自带增强型8051处理器对数据传输速率的影响,本系统将CY7C68013A配置为自动数据传输模式,使得数据传输不用经过8051,此时USB内部的CPU控制器不直接参与数据的传输,其原理如图3所示。
本系统分别采用2和6号端点分别负责输出和输入数据的处理工作,两个端点分别有512 B×4的FIFO,此时CY7C68013A的内部FIFO配置如图4所示。
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所示。
如图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的高速性能够满足多种接口速度的需要,热插拔性极大的方便了该系统的使用,该地面检测系统已经运用于多个航天器的检测中,很好的满足了项目的需求,实现了系统设计的目的。
上一篇:优良的线缆设计,你值得拥有:论选择不良设计的7大风险
下一篇:提高485总线系统的可靠性方式解析
推荐阅读最新更新时间:2024-05-03 00:22