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

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

    关注

    463

    文章

    54443

    浏览量

    469437
  • cpld
    +关注

    关注

    32

    文章

    1259

    浏览量

    174180
  • USB接口
    +关注

    关注

    9

    文章

    716

    浏览量

    59223
  • fifo
    +关注

    关注

    3

    文章

    407

    浏览量

    45909
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LTC1091/LTC1092/LTC1093/LTC1094数据采集系统:特性、应用与接口设计

    LTC1091/LTC1092/LTC1093/LTC1094数据采集系统:特性、应用与接口设计 在电子设计领域,数据采集系统是连接模拟世界
    的头像 发表于 04-02 10:15 204次阅读

    简仪科技推出USB-1202系列高精度USB数据采集模块

    USB-1202系列是一款高精度USB数据采集模块,专为要求严苛的测量应用而设计。它具有270 ppm的高直流精度和高达0.004 dB的AI平坦度,动态性能出色:120 dBc SFDR、-118 dBc THD 和 -109
    的头像 发表于 03-27 17:13 929次阅读

    被问爆了? 阿尔泰科技解答:采集卡和数据采集卡,到底差在哪?#阿尔泰科技 #电路知识 #数据采集

    数据采集
    西安阿尔泰电子科技发展有限公司
    发布于 :2026年03月04日 17:33:28

    车载总线数据采集设备不会管理?TE Devices Launcher 演示# 软件开发# 数据采集# 设备

    数据采集
    康谋自动驾驶
    发布于 :2026年02月11日 17:07:31

    得物API商品接口数据采集服务及接口应用展开

    以下从技术实现、接口功能、交流资源三方面展开分析: 一、技术实现基础:数据采集与API接口设计 得物价格接口的技术核心在于 高效的数据采集
    的头像 发表于 01-28 13:10 413次阅读
    得物API商品<b class='flag-5'>接口</b><b class='flag-5'>数据采集</b>服务及<b class='flag-5'>接口</b>应用展开

    单片机多路数据采集系统的设计

    明确数据资源的采集系统原理,是保证数据的采 集渠道得到进一步拓展的关键。从多路数据采集系统建设的
    发表于 01-07 06:44

    USB3.0接口转换高性能图像传感和数据采集方案

    接口的普及与其强大的供电能力(PD),USB3.0接口转换方案能够同时实现高速通信与大功率传输,为各类高性能图像传感与数据采集应用提供了坚实可靠的连接基础。
    的头像 发表于 01-06 14:45 524次阅读
    <b class='flag-5'>USB</b>3.0<b class='flag-5'>接口</b>转换高性能图像传感和<b class='flag-5'>数据采集</b>方案

    高速分切机PLC数据采集远程监控系统方案

    老旧设备缺乏通信基础,部分设备未预留空闲通信接口,导致数据采集与远程监控过程中面临多重挑战。物通博联依托工业物联网技术,提供一体化PLC数据采集远程监控系统方案,高效解决设备兼容、
    的头像 发表于 11-06 15:41 710次阅读
    高速分切机PLC<b class='flag-5'>数据采集</b>远程监控<b class='flag-5'>系统</b>方案

    基于GIS的海洋环境数据采集与管理系统

    基于GIS的海洋环境数据采集与管理平台系统
    的头像 发表于 09-19 17:09 646次阅读
    基于GIS的海洋环境<b class='flag-5'>数据采集</b>与管理<b class='flag-5'>系统</b>

    工业数据采集网关的API接口能够对接哪些平台系统

    “工业数据采集网关作为打通工业设备与上层系统的‘数据桥梁’,其API接口的兼容性直接决定了工业数据价值挖掘的广度与深度。”基于这一核心定位,
    的头像 发表于 09-17 11:05 839次阅读
    工业<b class='flag-5'>数据采集</b>网关的API<b class='flag-5'>接口</b>能够对接哪些平台<b class='flag-5'>系统</b>

    Modbus能源数据采集网关有什么功能

    兼容采集 :Modbus能源数据采集网关能够与各类支持Modbus协议的能源设备进行连接,如电表、水表、气表、温度传感器、压力传感器等。通过这些设备的接口,网关可以实时采集能源消耗
    的头像 发表于 07-24 15:28 980次阅读

    智能工厂为什么需要数据采集物联网系统

    智能工厂作为工业4.0的核心载体,其高效运行依赖于对生产全流程的精准感知与实时控制。数据采集物联网系统(IIoT,工业物联网)通过连接设备、传感器和系统,实现数据的自动化、智能化
    的头像 发表于 07-18 14:52 1210次阅读

    数据采集网关如何与现有工业系统整合?

    物通博联数据采集网关与现有系统的整合可以通过以下步骤和方法实现,确保数据的高效采集、传输和处理,同时满足工业生产环境中的实际需求。 一、整合方法概述 物通博联
    的头像 发表于 06-07 09:18 1106次阅读

    多通道振弦温度数据采集采集记录仪 RS485/232接口 完美接入PLC及无线传输系统

    数据采集
    稳控自动化
    发布于 :2025年06月06日 13:44:34

    IO数据采集网关是什么?有什么功能?

    IO数据采集网关是一种用于连接工业现场设备(如传感器、PLC、仪表等)与上层管理系统(如云平台、SCADA系统等)的智能设备,主要功能是实现工业数据
    的头像 发表于 05-29 17:38 978次阅读