0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探究USB接口的VSAT基带数据采集系统的设计

电子工程师 来源:电子工程师期刊 作者:徐廷生;唐波;闵 2021-04-08 10:10 次阅读

“针对卫星接收设备数据采集的实际需要,提出一种基于USB接口的VSAT(甚小口径卫星终端)基带数据采集系统的设计方案。”

0 引言

在众多的卫星通信系统中,VSAT(甚小口径卫星终端)卫星通信系统由于具有众多特点,近年来发展很快,特别在专业通信网领域存在广阔的市场,利用此系统进行通信具有灵活性强、可靠性高、成本低、使用方便及小站可直接装在用户端等特点,并且VSAT用户数据终端可直与计算机联网,完成数据传递、文件交换、图像传输等通信任务,从而摆脱了远距离通信地面中继站的问题,因此,此系统广泛用于石油、银行、铁路、民航、军事等行业。

在VSAT系统中,用户终端通常是由数字卫星接收机和计算机终端组成,数字卫星接收机包括下变频器、解码器、FEC(前向纠错),解复用器、数字基带处理器和频率合成器等部分,接收机输出的数据一般通过RS-232,RS-422/449以1.2kbit/s-64kbit/s的数据率交给计算机完成应用处理。

有些高速卫星数据接收设备解调以后,数据通过额外高速数据卡送入计算机。这种传统的数据卡不仅安装麻烦,且易受机箱内环境的干扰,特别是这种卡通常只能接收单路数据,受计算机插槽数量和地址,中断资源的限制,不可能挂接多个设备,因此,资源浪费尤其严重。

针对这种情况,本文结合卫星接收设备数据采集的实际需要,设计了一种基于USB(通用串行总线)接口的USAT基带数据采集系统,该系统通过对USB接口控制逻辑的合理设计和芯片内部FIFO的有效运用,充分应用了CPLD(复杂可编程逻辑器件)的灵活性,仅采用单片USB接口控制芯片就实现了对多路多速率数字信号的实时采集,这与以往采用USB集线器来实现对多路多速率数字信号采集的系统相比,具有成本低、实现方便等优点。

该系统最多可同时采集8路数字信号,单路最高速率可达2Mbit/s,系统用于控制的CPLD采用Altera公司的EPM7128SLC84;USB接口控制芯片采用Cypress公司EZ-USB FX2系列CY7C68013。

1 系统原理

1.1 USB简介

USB(通用串行总线)是一种应用在PC领域的新型接口技术,支持在主机与各种即插即用外设之间进行数据传输,它由主机预定传输数据的标准协议,在总线上的各种设备分享USB总线带宽,它的主要优点是:数据传输速率明显快于一般的串口,支持控制传输、中断传输、块传输的和同步传输4种传输方式,以满足不同外设的需要,最多可连接127个外设,支持热拔插和即插即用,占用的系统资源少(只占用1个IRP(I/O请求包));无总线竞争等。

USB总线技术的提出就是想利用单一的总线技术来满足多种应用领域的需要,USB1.1协议支持低速1.5Mbit/s和全速12Mbit/s两种传输速度。2000年发布了USB2.0协议,它向下兼容USB1.1协议,但在USB1.1的基础上有了质的提高,其理论传输速度可到480Mbit/s。

1.2 系统结构

该系统总体框架分采集控制部分、USB接口控制部分和主机3部分,系统框图如图1所示。

o4YBAGBuZRuAMX0GAABPym6Sp9c662.png

外部输入的8路信号时钟、数据均为TTL电平,采集用的统一时钟为3M赫兹,是由USB控制芯片的外部时钟经八分频得到的。

系统的工作过程如下:每路信号在CPLD的控制下,按采集时钟的统一节拍,各路信号的数据和时钟都被采集进CPLD。在CPLD内,先进行各路信号的时钟上升沿检测,如检测到时钟上升沿,则在相应路数的标志位置1,这表明此时采到的数据有效,若没检测到时钟上升沿,则在相应路数地标志位置0,表明此时采集的数据无效,这样形成的各路信号数据。

再加上各路信号数据是否有效的标志,形成2字节的数据送入USB控制芯片的FIFO中,数据进入USB控制芯片后,通过USB接口将数据传输到主机,数据在主机中用软件进行处理,按照各路信号数据是否有效的标志位,将有效数据取出,组合成各路数据。

数据送入主机时的格式如图2所示,前一字节为各路信号数据是否有效的标志,紧跟着的字节为各路信号的实际数据,采用这种特殊的数据格式,以区分各路信号,便于采用统一的时钟来实现对多路多速率数字信号的实时采集,从而减少了很多硬件电路,降低了成本和复杂性,实现更为方便,这也是本系统的一个创新点。

pIYBAGBuZSeAZrjLAABSrPk0M90160.png

2 硬件构成

2.1 EZ-USB FX2(CY7C68013)芯片

CY7C68013属于Cypress公司的FX2系列产品,它提供了对USB2.0的完整解决方案,该芯片虽然采用低价的8051单片机,但仍然能获得很高的速度,主要包括USB2.0收发器、SIE(串行接口引擎)、增强型8051处理器、8.5KB的片上RAM,4KB FIFO存储器、I/O口、数据总线、地址总线和GPIF(通用可编程接口)。

CY7C68013与外设有可编程接口GPIE和从FIFO两种接口方式。可编程接口GPIF是主机方式,可以由软件设置读写控制波形,灵活性很大,几乎可以对任何8bit/16bit接口的控制器、存储器和总线进行数据的主动读写,使用非常灵活,从FIFO方式是从机方式,外部控制器可像对普通FIFO一样对FX2的多层缓冲FIFO进行读写。在本设计中为了方便控制,采用从FIFO方式。

2.2 CPLD芯片EPM7128SLC84

在本设计中,所用的CPLD采用Altera公司的EPM7128SLC84。它属于MAX7000系列,是Altera公司的基于第2代MAX结构的CPLD。它提供多达5000个可用门、128个宏单元,其引脚到引脚延时快达6ns。

可以容纳各种独立的组合逻辑和时序逻辑功能,EPM7128S的优点是它基于E2PROM,可以通过JTAG口进行在线编辑,设计者可将设计内容从PC机上通过下载电缆和JTAG口对EPM7128S进行任意次修改,它有多达100个I/O引脚可供编程使用,方便系统扩展存储空间和外设。

本系统使用EPM7128S的主要功能是对各路信号的时钟上升沿进行检测,另外还需要完成一些控制功能,完成各路信号数据的合路,形成特定的数据格式,送入USB控制芯片的FIFO中。

2.3 硬件连接

根据系统对数据传输的速度和实时性的要求,配置CY7C6013的工作接口模式为从FIFO模式,硬件连接方式如图3所示。

pIYBAGBuZTOAD7GVAABmI2Ni1hI005.png

CPLD控制采集外部数据的时钟可同时作为CY7C68013的从FIFO模式的读写控制时钟,即CY7C68013的接口时钟连接到IFCLK引脚,FLAGA-FLAGD为FIFO标志引脚,用于映射FIFO的当前状态,SLWR/SLRD是CY7C68013从FIFO的写使能/读允许信号,CPLD向CY7C68013从FIFO提供从FIFO输出允许信号SLOE,仅在数据输出时有效,FD[15:0]为16位双向数据总线。FIFOADR[1:0]为端点FIFO选择信号。

3 软件设计

本系统软件设计部分包括固件、驱动程序和应用程序的设计。

3.1 USB设备固件程序设计

固件程序是指运行在设备CPU中的程序,是整个程序设备的核心,可采用汇编语言和C语言设计,CyPress为用户提供了一个固件程序框架,帮助用户完成相当一部分USB协议相关的工作,用户只需根据外设功能的具体要求,在相应的函数中填写函数体。Cypress提供的这一框架程序简化了用户的固件程序设计。

本系统固件开发所使用的编程语言为德国Keil公司的C51编译器,集成开发环境为μVision2,该固件共包含以下5个文件:

1)ez-usb.lib

是EZ USB函数库对象程序代码

2)usbjmptb.obj

定义了FX2中INT2和INT4的中断跳转表。

3)dscr.a51

包含描述符的表数据,包括设备描述符、设置描述符、接口描述符、端点描述符和字串描述符等,用来定义设备的ID号、端点的设置特性,主机就是通过读取设备的描述符来获取USB外设的功能特性,从而给设备加载相应的驱动程序并配置设备。

4)fw.c

是固件运行的主程序文件,负责处理主机发出的各种USB设备请求,该程序首先初始化所有的内部状态变量,然后调用TD_Init函数进行初始化,并打开中断。之后,固件程序开始列举USB设备,直至在端点0上接收到SETUP令牌包时为止。一旦接收到STUP令牌,其将重复执行下面的任务分配过程:调用用户函数TD_Poll,以完成用户指定的任务;检测是否有USB设备请求(SETUP令牌)如果有,则执行指令并作出相应的操作,如果没有,则继续向下执行,检测USB核是否有USB挂起实践,如果有USB挂起事件,则调用用户程序TD_Suspend,交由用户处理;当TD_Suspend返回为真时,USB核检测是否重新开始事件,如果没有USB挂起事件,则使处理器处于挂起状态,当检测有重新开始的事件,USB核调用用户程序TD_Resume,并继续执行本步骤,当TD_Suspend返回为假时,则继续执行本步骤。

5)periph.c

包含各种用户功能函数(如TD_Init、TD_Poll等)及其INT2中断服务子程序的定义,它实现了本系统的主要功能。

在本系统中,把端点2配置为批量传输、IN方向,封包大小为512字节,每微帧包含2个封包,数据传输速率为64Mbit/s为就可满足实际需要,终端0作为默认的控制传输管道来处理USB事件。

3.2 驱动程序设计

FX2的设备驱动程序有两种:一种用来在设备接入时从主机下载固件到RAM中,称为固件下载驱动程序(ezloader.sys);另一种是在设备重新列举后加载的设备驱动程序(ezusb.sys)。应用软件通过该设备驱动程序与FX2通信。

固件的程序代码既可以通过外部E2PROM下载,也可以通过主机下载在本系统中选择从主机下载,此时外接E2PROM中存放的是固件下载的PID/VID,且第1个字节是0xC0H,系统通过该PID/VID找到固件下载驱动程序(ezloader.sys)将相应的固件代码下载到FX2的RAM中。

ezloader.sys的生成是利用Cypress公司提供的固件下载驱动程序源代码和用户编译成功的固件代码。在Win2000 DDK中创建的,并根据E2PROM提供的PID/VID修改相应的.inf文件,在将固件下载RAM中后,系统清楚内存中的固件下载驱动程序,并进行重新列举,让C8051固件控制FX2,此时,系统获得由C8051固件提供的PID/VID(与E2PROM中的不同),认为有新的USB设备接入,并据此加载相应的设备驱动程序。

Ezusb.sys是本系统运行时所使用的主要驱动程序,它定义了几个IOCTL代码,其中:IOCTL_Ezusb_GET_DEVICE_DESCRIPTOR用于读取USB设备描述符;IOCTL_Ezusb_GET_CONFIGURATION_DESCRIPTOR用于读取USB设备的配置信息,IOCTL_Ezusb_BULK_READ用于主机读取USB设备发出的块数据,IOCTL_Ezusb_GET_CURRENT_FRAME_NUMBER,用于读取USB传输过程中当前的帧序号。

3.3 用户程序设计

应用程序开发中,可用VC++编制应用程序。所有的用户程序是通过I/O控制调用来访问EZ-USB的设备驱动程序的,可以把EZ-USB设备当成文件来操作,利用CreateFile得到EZ-USB句柄,通过得到的句柄,用一个Win32函数DeviceIoControl(),把IOCTL和相关的输入输出缓冲区提交给驱动程序,来进行控制传输,用ReadFile,WriteFile进行批量传输。当应用软件退出时,用CloseHandle()关闭设备。

4 结束语

本文结合实际工程的需要,提出了基于USB接口的VSAT基带数据采集的设计方案,并给出了硬件系统及软件设计方法,在USAT通信的实际应用中,该系统与后端软件结合,很容易实现对VSAT数据的分析与处理,可广泛应用于VSAT通信系统中。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    455

    文章

    50714

    浏览量

    423147
  • cpld
    +关注

    关注

    32

    文章

    1248

    浏览量

    169334
  • USB接口
    +关注

    关注

    9

    文章

    701

    浏览量

    55634
  • fifo
    +关注

    关注

    3

    文章

    387

    浏览量

    43649
收藏 人收藏

    评论

    相关推荐

    NI数据采集板卡如何连接使用?

    和控制。   1. 了解数据采集板卡: 首先,需要了解所使用的NI数据采集板卡的型号和规格。NI提供了多种型号的数据采集板卡,具有不同的输入通道数、采样率、接口类型等特性。在选择和使用
    的头像 发表于 07-11 10:05 917次阅读

    多通道数据采集系统的设计的意义

    多通道数据采集系统(Multi-channel Data Acquisition System, 简称MDAS)是一种能够同时采集、处理和存储多个信号源数据的电子设备。这种
    的头像 发表于 07-02 09:00 792次阅读

    多通道数据采集串扰问题怎么解决

    多通道数据采集系统在现代工业、科研和医疗等领域中有着广泛的应用。然而,在多通道数据采集过程中,串扰问题是一个常见的问题,它会导致数据采集的准确性和可靠性降低。本文将详细探讨多通道
    的头像 发表于 07-02 08:58 1195次阅读

    多通道数据采集系统的转换误差怎么算

    多通道数据采集系统是一种广泛应用于工业、科研、医疗等领域的高精度数据采集设备。它通过多个通道同时采集信号,并对信号进行处理、转换和存储,以实现对信号的实时监测和分析。在多通道
    的头像 发表于 07-01 16:36 680次阅读

    多通道数据采集系统的优缺点

    多通道数据采集系统是一种广泛应用于工业、科研、医疗等领域的技术,它能够同时采集多个通道的信号,实现对多种物理量的实时监测和分析。本文将详细介绍多通道数据采集
    的头像 发表于 07-01 15:58 1518次阅读

    数据采集系统分为几类

    数据采集系统是大数据生态系统中的重要组成部分,它负责从各种数据源收集、整合和存储数据。根据不同
    的头像 发表于 07-01 15:44 1492次阅读

    DAS数据采集系统的作用是什么

    DAS(Data Acquisition System,数据采集系统)是一种用于收集、存储和处理各种类型数据系统。它在许多领域都有广泛的应用,如工业自动化、科学研究、环境监测、医疗健
    的头像 发表于 07-01 15:41 1308次阅读

    数据采集通信网关是什么

    数据采集通信网关是一种专门用于数据采集和通信的设备,它在物联网(IoT)系统、工业自动化系统和智能家居等领域中广泛应用。其主要功能是将各种传感器、设备和
    的头像 发表于 07-01 15:00 384次阅读
    <b class='flag-5'>数据采集</b>通信网关是什么

    电力数据采集网关是什么

    电力数据采集网关是一种专门用于电力系统数据采集和传输的设备。它主要用于将电力系统中的各种设备(如电表、变压器、断路器等)的数据进行
    的头像 发表于 06-28 15:28 647次阅读
    电力<b class='flag-5'>数据采集</b>网关是什么

    两分钟学会34970A数据采集器设置通讯接口的方法 #数据采集器 #电子测量仪器

    接口数据采集
    安泰仪器维修
    发布于 :2024年06月24日 16:01:01

    工控数据采集平台是什么?

    工控数据采集平台是一种用于工业控制和监测领域的系统,该平台能够收集来自传感器、执行器、机械设备以及其他系统的信息,并对这些数据进行处理、存储和分析。这些
    的头像 发表于 06-14 15:29 410次阅读

    物联网工业数据采集系统是什么?

    物联网工业数据采集系统通过物联网技术将各种设备和传感器连接起来,实现数据的实时采集、传输和分析,为工业生产提供智能化、自动化的解决方案。   物联网工业
    的头像 发表于 05-20 15:16 648次阅读

    GPIB转USB采集卡在仪器控制和数据采集中的应用

    USB采集卡的应用案例,展示了它在仪器控制和数据采集领域的重要性和价值。 实验室仪器控制和数据采集: GPIB转USB
    的头像 发表于 04-12 09:36 757次阅读

    基于物通博联工业数据采集网关的工厂数据采集方案

    随着工业互联网技术的不断发展,工厂生产过程中的数据采集和管理变得越来越重要。然而,由于工厂现场设备众多、种类繁多,数据采集和管理面临着很多挑战,如设备接口不统一、数据传输不稳定、
    的头像 发表于 01-26 15:14 466次阅读
    基于物通博联工业<b class='flag-5'>数据采集</b>网关的工厂<b class='flag-5'>数据采集</b>方案

    PLC远程监控与数据采集系统的原理及组成

    PLC远程监控与数据采集系统的原理及组成 PLC远程监控与数据采集系统是一种可以远程监控和采集设备运行
    的头像 发表于 01-22 16:46 1707次阅读
    PLC远程监控与<b class='flag-5'>数据采集</b><b class='flag-5'>系统</b>的原理及组成