当前位置:首页 > 通信技术 > 通信技术
[导读] 随着我国航空航天技术的迅速发展,对地面遥控遥测接收机的实时性和高速数据传输性能的要求越来越高。越来越多的遥测遥控地面信道处理器都采用了实时能力更强的高速DSP/FPGA架构设计方案。基于DSP/FPGA架构的设计方案

 随着我国航空航天技术的迅速发展,对地面遥控遥测接收机的实时性和高速数据传输性能的要求越来越高。越来越多的遥测遥控地面信道处理器都采用了实时能力更强的高速DSP/FPGA架构设计方案。基于DSP/FPGA架构的设计方案表现出强大的处理能力和高度的灵活性。但是,在研发中发现对FPGA以及DSP/FPGA之间的接口调试很费时间和精力。究其原因是FPGA在线调试功能的支持很局限,所以本文设计一种通用的适于DSP/FPGA架构的遥测接收机的调试和测控通信接口,从而方便在研发中进行调试和可靠的传输测控中所需的实时参数。现有文献的通常做法是使用网络接口来完成数据和控制指令的传输,但是在建立连接之后,数据传输中,一旦出现掉电或重启就会丢失数据,甚至会出现程序跑飞现象。通用串行总线(USB)因具有传输速度快、支持热插拔、易于扩展以及即插即用等优点,已经成为计算机与外部设备进行数据交换的常用接口。USB控制器是一种集成了USB总线协议的微控制器,利用USB控制器,用户可以在不深入了解USB协议的情况下设计完整的USB接口,这也促进了USB接口的广泛应用。

为了满足更高的测控及数据传输速率的要求,提出并设计一种基于CY7C68013A的通用测控通信接口。该系统稳定可靠、普适性好,并且可传输高质量的图像数据,具有很好的应用前景。

1 系统总体设计

该系统总体结构图如图1所示,系统大致可分为3个部分。其中FPGA主要完成通信接收机的信号捕获跟踪、载波恢复、定时同步、图像数据下传、测控指令上传以及USB芯片端点FIFO的读写控制。PC端的控制终端主要完成图像数据的接收和处理、测控指令的生成、GUI交互界面的更新、重要参数的记录和备份。Cypress FX2LP芯片主要完成数据的双向传递以及与PC间的“问答”逻辑的实现。Cypress FX2LP芯片一方面要配置端点相关寄存器和读写缓存中的数据,另一方面通过端点0“回答”PC终端程序关于内部缓存中数据状态情况的查询,而且在数据不满足传输指定格式的时候,还要将数据包修改成符合传输设定的格式的数据包。

FPGA采用Xilinx公司的Spartan-6系列芯片,考虑到遥测指令和图像数据的优先级别,采用中断模式控制器对USB的端点FIFO进行读写控制。当没有遥测指令需要上传的时候,FPGA中的FIFO读写控制器不断的将图像数据写入到USB的端点FIFO中;当FIFO读写控制器检测到USB端有遥测指令需要上传的时候,即暂缓图像数据的写入,将图像数据缓存在内部RAM中,释放读写总线,然后开启读取FIFO的控制进程将遥测指令读入到FPGA的暂存FIFO中。

2 系统硬件设计

2.1 CY7C68013A芯片简介

CY7C68013A为Cypress公司的一款高性能的USB2.0微控制器,其内部集成了USB2.0收发器、增强型的8051核、智能串行接口引擎(SIE)、4个片上FIFO和16KBRAM、通用可编程接口(GPIF)。该芯片支持全速(12 Mbps)和高速(480Mbps)两种速率的数据传输。其内嵌的增强的8051处理器支持两个USART、3个定时器/计数器、扩展的中断系统以及I2C协议总线外设。CY7C68013A支持3种接口模式和外部器件进行通信,分别是:Ports模式,GPIF Master模式和Slave FIFO模式。

2.2 FPGA接口模块设计

在本系统中的CY7C68013A采用异步SlaveFIFO的工作模式。图2给出了CY7C68013A和Spartan-6的硬件连接图。其中,USB_FLAGA(B/C)为CY7C68013A输出的状态标志信号,在USB固件中可以灵活的将它们配置为端点FIFO的状态满、空或者任意可编程的标志位;USB_SLOE、USB_ SLRD、USB_WR组合完成对CY7C68013A端点FIFO的读写时序控制;USB_FD为双向的数据总线;USB_PKEND为数据打包控制信号。

FPGA接口模块设计主要包含上行缓存、下传缓存、双向FIFO逻辑控制逻辑设计。其中双向的FIFO逻辑控制完成对CY7C68013A的端点FIFO进行数据的读写操作,并且完成从下传缓存中读取数据以及把上传的数据写入到上传缓存的时序控制。本设计中采用两个并行的状态机来控制,两个状态机分别实现从USB端点FIFO读取数据并写入到上行缓存,从下行缓存中读取数据并将数据写入到相应的端点FIFO中。考虑到下行图像数据和上行遥测控制指令的优先级,将两个状态机之间的信息交互设计成在中断模式下运行,以此来解决对数据总线的共享问题。

读取USB端点FIFO控制状态机如图3所示。图中小圆圈标注的状态转换条件的意义为:a表示USB端点FIFO中没有需要读取的数据或者上行缓存阻塞;b表示没有检测到读取请求ACK的有效信号;c表示检测到USB端点FIFO中无待读取数据;d表示在状态S4的情况下,检测到USB端点FIFO中无待读数据的次数超过预先设定的阈值VT。该控制状态机共包含了8个状态。其中,Idle为初始状态;S2状态完成是否接收到读取请求ACK信号,如果收到则转入S3进入读取数据的流程,反之,则停留在该状态等待回应;S3状态为读取数据准备地址信号,并输出地址信号;S4状态再次确定是否有数据需要读取;S5完成从USB端点FIFO中读取数据到内部寄存器中;S6完成将内部寄存器的数据写入到上行缓存中;S7完成判断是否需要(能)继续读取数据,若需要(能)继续读取,转入状态S5,反之,回到Idie状态等待下次读取的启动。

写端点FIFO控制状态机如图4所示。图中小圆圈标注的状态转换条件的意义为:a表示读取USB端点FIFO的标志有效,说明数据总线被占用;b表示检测到USB端点接收数据FIFO中的数据已填满。该状态机中共包含了8个状态,其中Idle为初始状态,判断是否有读取数据请求信号,若有转入对读取请求中断处理状态S1,反之,转入状态S3开始数据的写入进程;S2状态等待读取数据结束,释放数据总线,转入状态S3;S4从下行缓存中读取数据,存入到内部寄存器中;S6将内部寄存器中的数据写入到USB端点FIFO中;S7判断是否需要(并且数据总线空闲、端点FIFO中未满)继续读取数据,若需要(能)继续读取,转入状态S4,反之,将打包信号USB_PKTEND置为有效并且回到Idle状态启动下一次写状态机的运行。

航空航天测控设备因为其特殊的应用环境,常常遭受强磁场、空间强粒子流或者单粒子翻转效应等特殊干扰的影响。所以在上面的状态机的设计中,对重要的触发信号和标志位信号进行了多次间隔性冗余保护确认。如在读取控制状态机中,在S4状态下再次对USB端点FIFO中是否有需要读取的数据进行判断,是为了防止因为PCB电气特性不稳定或者偶然的空间电磁干扰导致之前启动读取数据的进程为误判,而在此再次确定该信号的有效性,这样设计增强了系统的容错性和抗干扰能力。类似的容错思想在写端点FIFO控制状态机的S1状态也可以体现出来。

2.3 USB驱动程序

Cypress FX2开发包中提供了通用的驱动程序,通用驱动程序完成与外设和用户应用程序的通信和控制,微处理器根据新的设置安装通用驱动程序,重新枚举外设为一个新的USB设备。

3 系统软件设计

3.1 固件程序设计

CY7C68013A芯片的固件程序运行在芯片内部,主要完成对芯片工作模式的配置以及处理主机的USB设备请求。Cypress提供了固件程序的开发框架,开发人员只需要按应用背景和需求对所给框架内的程序做细化和修改即可。USB传输可分成数据传输和控制传输,其中数据传输由大端点(EP2/4/6/8)完成,控制传输由小端点(EPO)完成。在固件程序中,TD_Poll()为数据处理程序,处在主函数的While()循环中。该函数包含实现特殊任务的代码,设备运行时将被重复调用。

在本系统中,我们将EP2配置为Bulk传输模式的OUT端点,其端点缓存为512Byte,两级缓存;EP6配置为Bulk传输模式的IN端点,其端点缓存为512Byte,四级缓存。并且把EP6FIFO配置为AUTIN模式,其AUTOINLEN配置为512Byte。固件程序还必须完成对PC控制终端发送来的USB控制传输请求的响应。端点0是CY7C68013A中唯一的控制端点,它是一个可完成双向控制传输的端点,只有它才能处理SETUP指令。完成主机USB控制传输请求的固件程序段,只需要在所给固件框架下的函数DR_VendorCmnd()中返回EP2468STAT寄存器的值即可实现。

3.2 控制上位机设计

该测控接口的上位机软件设计采用MFC编程,MFC封装了大部分的windows API函数,采用消息循环机制处理事件。在MFC框架生成的工程中,添加上Cypress提供的CyAPI库文件,即可在工程中调用库中已经封装好的类的成员变量以及成员函数。在上位机的设计中采用了多线程编程,系统软件设计的流程图如图5所示。

在上位机软件设计中,主线程主要完成在消息循环机制下检测面板上的点击事件,以及对子线程做出的相应的控制。在主线程的初始化中,首先生成CCyUSBDevice对象,然后读取硬件配置信息以及设备的必要识别信息并显示在前操作面板上,最后建立RXfer子线程。在主线程中,当检测到Send按钮被点击时。即开始发送上行指令。此处采用同步数据传输,保证了数据传输的准确性。当主线程中检测到Start按钮被点击时,根据RXfer线程的不同状态,执行相应的操作。在RXfer子线程中,主要完成下行数据的接收、下行数据写入数据文档以及管理队列中的请求等工作。在下行数据接收线程中,我们采用了异步数据传输方式。在异步传输方式下,上位机软件发出数据请求之后,不需要等待回应,即可立即发出下一次的数据请求,这样可极大的提高上位机软件的数据吞吐速率,保证数据传输的高效率。多次的异步数据请求是利用数据请求队列来完成的,在线程函数的开始,开辟适当长度的数据请求队列,并且给他们分配相应的内存空间,然后进入到线程的循环体中。在循环体中,完成当前的队列元素中的请求数据传输并把相应数据写入数据文档之后,立即将新的数据请求塞入到该队列元素中,并且把指针更新到下一个队列元素。当数据请求失败、接受数据不成功或者循环接收数据标志位False时,首先完成队列中其他已经成功请求数据传输的数据,然后关闭文件句柄,释放相应的资源,最后终止线程。

4 系统测试结果

该通用测控通信接口用于实际测控数据的下传,实际测试面板如图6所示。在进行测试时,首先运行该测试应用软件,完成初始化之后,在设备信息显示框中显示USB设备信息,其中包括设别的PID和VID、EndPoint配置情况、设备描述信息等信息。然后通过点击“start”按钮,建立起RXfer线程,开始接收下行传输数据。若需发送指令,在Send按钮左边的输入框中输入适当的遥测遥控指令,然后点击Send即可发送。测试系统中所接收到的数据如图7所示。在此数据中采用了符合CCSDS航天测控标准数据格式,帧头为EB90,接下来的三个Byte为帧计数(图中显示的是000007),帧结尾标志位13AB,帧结尾标志的前两个Byte为RS译码报告输出(译码前数据是否出错,错误是否可纠)。

对该通用测控通信接口的速率和可靠性进行了测试,测试结果如表1所示。对比表中数据看出,该接口的最高的可靠的传输速率可达为8.1MB/s,对2.3MB/s和8.1MB/s的速率进行了可靠性测试,测试的结果都显示,在该速率下所设计的测控通信接口可以完成数据的可靠传输。

5 结论

该测控通信接口系统采用USB2.0协议芯片CY7C68013A和FPGA搭建了硬件平台,在FPGA状态机设计中采用中断模式的双状态机和关键标志冗余设计的思想,软件设计采用多线程的设计思想,提高了通信接口的可靠性和传输速率。该测控通信接口已用于实际测控通信系统中,实际应用表明该测控通信接口具有速率高、稳定可靠、人机界面友好等特点,达到系统设计要求,具有推广应用的价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

为无处不在的端侧设备插上AI的翅膀,AMD发布第二代Versal™ 自适应 SoC

关键字: AMD FPGA 自适应SoC AI 边缘计算

Pmod接口可以说是数字电路板的连接革命。随着科技的飞速发展,数字电路板间的通信与连接技术也在不断创新和进步。Pmod接口,作为一种新兴的数字接口标准,正逐渐成为数字电路板间通信的桥梁,为电子设备的连接和通信带来了革命性...

关键字: pmod接口 FPGA 数字电路板

近日举办的GTC大会把人工智能/机器学习(AI/ML)领域中的算力比拼又带到了一个新的高度,这不只是说明了通用图形处理器(GPGPU)时代的来临,而是包括GPU、FPGA和NPU等一众数据处理加速器时代的来临,就像GPU...

关键字: FPGA AI 图形处理器

当我们提到成本优化型FPGA,往往与简化逻辑资源、有限I/O和较低制造工艺联系在一起。诚然,在成本受限的系统设计中,对于价格、功耗和尺寸的要求更为敏感;但随着一系列创新应用的发展、随着边缘AI的深化,成本优化型FPGA也...

关键字: AMD FPGA Spartan 边缘计算

全球领先的高性能现场可编程门阵列(FPGA)和嵌入式FPGA(eFPGA)半导体知识产权(IP)提供商Achronix Semiconductor公司宣布,该公司参加了由私募股权和风险投资公司Baird Capital举...

关键字: FPGA 智能汽车 eFPGA

全新 FPGA 能为嵌入式视觉、医疗、工业互联、机器人与视频应用提供高数量 I/O、功率效率以及卓越的安全功能

关键字: FPGA 嵌入式视觉 机器人

Altera致力于为客户提供端到端的FPGA、易于使用的AI、软件和弹性供应链。

关键字: FPGA AI

在半导体领域,大部分对于AI的关注都集中在GPU或专用AI加速器芯片(如NPU和TPU)上。但事实证明,有相当多的组件可以直接影响甚至运行AI工作负载。FPGA就是其中之一。

关键字: FPGA AI 半导体

半导体产品老化是一个自然现象,在电子应用中,基于环境、自然等因素,半导体在经过一段时间连续工作之后,其功能会逐渐丧失,这被称为功能失效。半导体功能失效主要包括:腐蚀、载流子注入、电迁移等。其中,电迁移引发的失效机理最为突...

关键字: 半导体 电迁移 FPGA
关闭
关闭