c语言sscanf函数的用法是什么
270
2022-10-31
探究USB接口的VSAT基带数据采集系统的设计
0 引言
在众多的卫星通信系统中,VSAT(甚小口径卫星终端)卫星通信系统由于具有众多特点,近年来发展很快,特别在专业通信网领域存在广阔的市场,利用此系统进行通信具有灵活性强、可靠性高、成本低、使用方便及小站可直接装在用户端等特点,并且VSAT用户数据终端可直与计算机联网,完成数据传递、文件交换、图像传输等通信任务,从而摆脱了远距离通信地面中继站的问题,因此,此系统广泛用于石油、银行、铁路、民航、军事等行业。
有些高速卫星数据接收设备解调以后,数据通过额外高速数据卡送入计算机。这种传统的数据卡不仅安装麻烦,且易受机箱内环境的干扰,特别是这种卡通常只能接收单路数据,受计算机插槽数量和地址,中断资源的限制,不可能挂接多个设备,因此,资源浪费尤其严重。
1 系统原理
1.1 USB简介
1.2 系统结构
该系统总体框架分采集控制部分、USB接口控制部分和主机3部分,系统框图如图1所示。
再加上各路信号数据是否有效的标志,形成2字节的数据送入USB控制芯片的FIFO中,数据进入USB控制芯片后,通过USB接口将数据传输到主机,数据在主机中用软件进行处理,按照各路信号数据是否有效的标志位,将有效数据取出,组合成各路数据。
数据送入主机时的格式如图2所示,前一字节为各路信号数据是否有效的标志,紧跟着的字节为各路信号的实际数据,采用这种特殊的数据格式,以区分各路信号,便于采用统一的时钟来实现对多路多速率数字信号的实时采集,从而减少了很多硬件电路,降低了成本和复杂性,实现更为方便,这也是本系统的一个创新点。
2 硬件构成
2.1 EZ-USB FX2(CY7C68013)芯片
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的主要功能是对各路信号的时钟上升沿进行检测,另外还需要完成一些控制功能,完成各路信号数据的合路,形成特定的数据格式,送入USB控制芯片的FIFO中。
2.3 硬件连接
根据系统对数据传输的速度和实时性的要求,配置CY7C6013的工作接口模式为从FIFO模式,硬件连接方式如图3所示。
3 软件设计
本系统软件设计部分包括固件、驱动程序和应用程序的设计。
3.1 USB设备固件程序设计
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通信。
ezloader.sys的生成是利用Cypress公司提供的固件下载驱动程序源代码和用户编译成功的固件代码。在Win2000 DDK中创建的,并根据E2PROM提供的PID/VID修改相应的.inf文件,在将固件下载RAM中后,系统清楚内存中的固件下载驱动程序,并进行重新列举,让C8051固件控制FX2,此时,系统获得由C8051固件提供的PID/VID(与E2PROM中的不同),认为有新的USB设备接入,并据此加载相应的设备驱动程序。
3.3 用户程序设计
4 结束语
本文结合实际工程的需要,提出了基于USB接口的VSAT基带数据采集的设计方案,并给出了硬件系统及软件设计方法,在USAT通信的实际应用中,该系统与后端软件结合,很容易实现对VSAT数据的分析与处理,可广泛应用于VSAT通信系统中。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~