基于USB2.O的轨道电路信号车载采集与分析系统
扫描二维码
随时随地手机看文章
摘要:介绍了一种基于USB2.O的车载采集与分析系统,详细设计了系统的硬件和软件。硬件方面通过对CY7C68013的通用可编程接口(GPIF)控制逻辑的合理设计和芯片内部FIFO的有效运用,实现了在USB设备和主机之间大量数据的高速传输。软件方面采用模块化设计实现了信号的数字滤波、频谱分析、波形显示、存储以及回放。
关键词:数据采集;数字信号处理技术;USB
0 引言
近年来,随着铁路建设的跨越式发展,对机车信号检测的准确性和可靠性提出了越来越高的要求,传统的手持式信号检测系统已经远远不能满足需要,本文提出的车载信号采集系统采用数字信号处理(DSP)技术实现对机车信号波形的频谱分析。利用可靠的硬件和软件技术实
现机车信号检测的实时性和高精度要求。系统采用USB总线接口有效地解决了传统总线形式(如RS232、并口、ISA等)传输速度低、安装繁琐、易受机箱内环境的干扰、计算机系统资源限制等缺点,具有廉价、高速、支持即插即用、使用维护方便等优点。
1 系统总体设计
本数据采集系统的设计主要分为硬件和软件设计两部分。其中硬件设计主要包括信号调理、A/D转换、数据存储、控制部分以及USB接口部分等实现内容。
系统软件设计分为USBN件(Firmware)、USB设备驱动程序以及主机应用程序三部分内容。在Windows操作平台下,主机应用程序通过USB设备驱动程序与系统硬件接口USBDI(USBDeviceInterface)进行通信,然后由系统产生USB数据的传送动作。固件则是运行在接口芯片中的代码,用以响应各种来自系统的USB标准请求,完成数据的交换工作和事务处理。系统结构框架图如图1所示。
2 系统硬件设计
USB数据采集板硬件电路设计实现共分为5大部分,它们分别是信号调理、A/D转换、数据存储、控制部分以及USB接口部分。
2.1 信号调理
信号调理部分由脉冲计数式鉴频器完成。它由四部分组成(如图2所示),即过零比较器、微分电路、脉冲形成电路和低通滤波器,输入的调频波Ui(t)经过零比较器后变成调频方波信号U1(t),调频方波信号通过微分电路后变为微分脉冲序列U2(t),微分脉冲序列经过脉冲形成
电路后变为等脉宽的方波脉冲序列U3(t),等脉宽的方波脉冲序列通过低通滤波器后就输出调制信号Uo(t)。鉴频器各部分的波形如图3所示。
[!--empirenews.page--]
2.2 主控芯片的工作方式
本设计采用的主控芯片是Cypress公司的USB2.0控制芯片CY7C68013,它与计算机通过USB接口相连,使设备能在PC机的控制下进行操作。USB主控芯片通过逻辑控制电路连接到FIFO和A/D转换后的数据传送至FIFO芯片进行缓冲,缓冲后的数据输入主控芯片的从FIFO中,
然后从FIFO以DMA(直接内存存取)的方式经由SIE(串行接口引擎)传给PC机。
为了实现高速数据采集的功能,A/D芯片采用的ADl674,它是一款12位,最高转换速度可达100kHz的A/D转换芯片,考虑到对FIFO容量的需求,系统采用GPLD和FIFO来实现。选用IDT7205完成数据缓存。其最高工作频率为133MHz,容量为8kB,能满足设计要求。
CY7C68013与外设有两种接口方式:通用可编程接口GPIF方式和从属FIFO方式。GPIF的核心就是一个可编程状态机,可产生6个控制和9个地址输入信号,并能接收6个外部和2个内部“ready”输入信号。GPIF向外部接口产生正确的选通信号和握手信号,外部接口用于对FIFO数据的传进和传出。GPIF是主机的方式,而从属FIFO方式是从机方式,它由外部控制器控制,可像对普通FIFO一样对FX2的多层缓冲FIFO进行读写。FX2的从属FIFO工作方式可设为同步或异步,工作时钟可选为内部产生或外部输入,其它控制信号也可根据需要设置为高有效或低有效。
2.3 FlF0的数据缓存作用
由于A/D最高采样频率可达100MHz,而主控芯片CY7C68013中的FIFO只有4kB,不能满足A/D数据转换器的要求,因此需要在A/D和CY7-C68013之间增加一个高速的FIFO来缓存数据。FIFO是先进先出的数据缓存器,数据在其内部顺序写入、顺序读出,其数据地址由内部读写指针自动加1完成。它具有双口输入输出、采集传送速度快等特点,能满足高速数据传输的要求。由FIFO构成的数据缓冲电路主要部分的接口电路如图4所示。
IDT7205有两种工作模式,即IDT标准模式和FWFT模式。本设计中采用IDT标准模式,这种模式通过FF、PAF、PAE、HF、EF五个标志位来实现数据的传输。/WEN(写使能端)置为有效时,数据可以写入FIFO。在WLCK(写时钟)的控制下,数据持续写入FIFO,当第一个数据被写入时,/EF(空标志)无效,数据不断地写入FIFO,即将写满时/PAE(将空标志)无效,/PAF(将满标志)有效,表示FIFO即将写满。当FIF0写满时,/FF(满标志)置为有效,控制A/D芯片停止写数。开始读数据时的第一个读操作使/FF置为无效,此时开始持续地读取数据,当FIFO中数据减少到一定程度,会使/PAF(将满)和/HF(半满)两个标志位置为无效,持续读出数据,而不写入数据;当FIFO中只剩下N个字时(N为空状态的缺省值),/PAF有效;当FIFO中的数据被全部读出时,/EF置为有效,此时控制主控芯片停止读取数据,与此同时A/D也开始下一个读取数据过程。
3 系统软件设计
3.1 固件设计
USB固件是运行在FX2芯片CY7C68013中的代码。在数据采集卡连接到计算机后,通过一个能自动完成固件下载以及设备重枚举功能的设备驱动程序,即固件下载驱动程序将USB固件下载到FX2的RAM中。
Cypress公司针对FX2系列的USB芯片给出了一个Firmware(固件)库,用户只需要在源程序中包含进EZUSB.H和EZREGS.H, 并且把EZU-SB.LIB和USBJMPB.OBJ添加进项目即可。
在设计中还利用了FX2的框架。FX2程序框架用于加速开发芯片外设。框架为FX2的初始化、处理设备标准USB设备请求以及USB挂起时的电源管理提供了现成的805l代码,只需简单地提供USB描述符表,编写完成外设功能的代码就可以开发一个功能完善的USB外设。
CY7C68013芯片的端点数总共有7个,根据设计需要,我们选择了其中的3个端点,其中1个控制端点、1个发送端点和1个接收端点。
3.2 驱动程序
在采集卡工作的运行WindowsxF台的主机上,Cypress公司提供了Windows下的通用驱动程序(GDP)。本采集卡使用这个通用驱动程序,不需要自己另行开发。
3.3 用户程序设计
用户程序设计部分则是基于C++Builder开发平台,设计并实现数据采集系统的功能。系统软件总体上包括数据采集(通道控制、触发控制)、波形显示、参数测量、频谱分析及波形存储与回放等五大模块。软件界面如图5所示。
[!--empirenews.page--]
3.3.1 数据采集模块
数据采集模块在整个系统中占有重要的地位,它是系统的核心。其工作流程图如图6所示,本模块主要完成通道控制、触发控制等功能。数据采集部分的参数设置正确与否,直接影响到后面的分析、处理、显示等功能能否实现。这部分的参数设置主要包括:
(1)通道控制。主要包括通道个数控制,系统提供的通道数为末通道数减去首通道数加1。
(2)触发控制。主要包括触发方式、触发类型、触发方向、时钟源选择等。
3.3.2 波形显示模块
波形显示模块主要应用Chart实现波形显示。波形图显示信号时域特性。系统可以显示任意形状的波形信号。对波形曲线进行操作,包括移动、对研究区域放大和缩小等。
3.3.3 参数测量模块
参数测量模块主要实现波形的参数测量、分析功能,完成包括各通道信号的载波频率以及实际采样频率等几个参数的测量,并显示其测量结果。参数测量模块程序设计实现中,主要应用了循环结构中的While循环。
3.3.4 频谱分析模块
频谱分析模块采用FFT算法,完成数据信号的频谱分析。频谱分析功能主要实现时域信号和频域信号的转换。
3.3.5 波形存储和回放
为了实现对波形数据及各种测量数据的有效管理,可将这些数据予以存储和回放。
(1)波形存储。开始采集之前系统自动提示用户创建新文件。系统可以同时保存多通道的时域波形数据,并且只要计算机硬盘或软盘空间足够大,可以保存无数次波形数据。从而摆脱了传统数字存储系统的存储容量的限制。
(2)波形回放。“回放”按钮控制是否从数据文件中读取波形数据。从软盘或硬盘上读取的波形数据,显示在实时采集的波形显示窗口,并保留在显示窗口。当看完读取的波形后,要回到实时采集的状态,点击前面板上的“采集”按钮,进行读取与采集的切换。并且系统特有的输出功能可以实现语音信号的同步回放。为了节约成本我们用计算机的声卡代替D/A转换器,将采集的语音信号通过声卡输出。
4 结束语
由于采用CY7C68013芯片作为主控制器,其灵活的接口和可编程特性简化了高速数据采集系统外部硬件的设计,提高了系统的可靠性;由于A/D转换电路采用ADl674,保证了数据采集系统的高速性和高精度。此设计方案可改善现有的数据采集系统存在的控制复杂、传输效率低、模拟量噪声大等问题,能实现低成本、高可靠性、高速、高精度和高稳定性的多点数据采集,并且适合车载作业。