APP下载

基于USB-HID接口的高速数据采集系统设计

2020-04-08朱正鹏徐玉娇朱旭锋

激光与红外 2020年3期
关键词:固件端点油门

熊 焱,朱正鹏,徐玉娇,刘 鑫,朱旭锋

(北京航天自动控制研究所,北京 100854)

1 引 言

高速数据的传输和采集在自动控制和航空航天领域有着广泛的应用,通用串行总线(USB)是连接PC机与外设的一种通用接口总线,和传统的串口、并口相比,USB-HID接口具有速率高、高带宽、灵活性好等优点,适用于大批量数据和红外图像采集与传输。本文结合USB HID(Human Interface Device,人机接口设备)的优势,选用EZ-USB FX2芯片CY7C68013作为USB接口,通过配置HID描述符,利用大容量FIFO,实现了PC机与DSP芯片TMS320F2812进行高速数据传输和可视化设计。

2 系统原理及组成

本系统基于HID接口设计,主要由计算机主机的核心处理器、USB接口芯片、程序存储器EEPROM、晶振等组成。核心处理器选用TMS320F2812,该芯片是TI公司的一款高性能的32位定点数字信号处理器,工作主频最高可达150 MHz[1],系统组成框图如图1所示。

图1 系统组成原理框图

FX2芯片采用USB接口芯片CY7C68013,主要实现数据传输,CY7C68013芯片是Cypress公司的EZ-USB FX2系列中一种满足USB2.0协议的接口芯片,最高传输速率可达480 Mbps[2-3]。集成了1个8051处理器、1个串行接口引擎(SIE)和1个USB2.0收发器,具有16位外部数据接口、8.5 KB片上RAM、4个可编程端点、4个集成的FIFO存储器以及40个通用GPIO口。CY7C68013芯片结构框图如图2所示。

图2 EZ-USB FX2(CY7C68013)结构框图[4]

3 硬件电路设计

DSP作为主控制器,USB2.0接口协议芯片CY7C68013选用SLAVE FIFO方式,异步读写,从机工作方式。

图1中的DSP控制器中IOB1、IOB2、IOB3、IOB4为通用端口,XWE为写入启用,低电平有效写入选通脉冲;XRD为读取启用,低电平有效读取选通脉冲;CS为片选引脚;XD[15:0]为16位数据总线;XA[18:0]为19位地址总线。

CY7C68013中,FLAGA、FLAGB、FLAGC位FIFO标志引脚,表示FIFO的空满状态,DSP向FIFO进行数据写入和读取时,应先判断所使用的端点对应的FLAG标志位状态,只有FIFO为空时进行数据写入,FIFO为非空时进行数据读取。SLCS、SLRD、SLOE和SLWR分别为片选信号、读信号、输出使能信号和写信号,CY7C68013具有16位双向数据总线和两位用于选择端点缓冲区的引脚。SCL和SDA用于连接EEPROM,用于存储固件程序。DSP和68013之间数据线通过SN74ALVC164245缓冲器隔离,外部使用24 MHz晶振。USB通信模块主要硬件电路图如图3所示。

数据传输中核心器件是CY7C68013和TMS-320F2812。在SLAVE FIFO模式下,上位机和USB硬件电路之间的数据通信通过DSP和FX2芯片中的FIFO进行交互,根据USB中断请求进行数据的发送和读取。

图3 USB硬件电路图

4 软件设计

4.1 FX2固件设计

CY68013芯片需要按照HID设备类的规范(《HID Usage Tables》)编写设备的驱动程序,设置对应的HID设备描述符,从而使Windows系统自动识别设备,实现了设备的即插即用[5]。

FX2固件程序通过Keil软件开发和编译,编译生成.hex文件后使用Cypress的EZ-USB-FX2仿真系统提供的开发工具Control Panel将程序下载到配套的EEPROM中。固件程序的主要作用是通过编写报告描述符,将本产品配置成HID设备中的游戏杆类设备,使之能被Windows系统自动识别。本设计采用了Cypress公司提供的固件框架,在此基础上进行了二次开发[6-7]。

主机与USB设备的数据接口模式为SLAVE FIFO模式,本设计中,在程序中设置CPU与芯片接口时钟都为48 MHZ,设置EP4为块传输端点,2倍缓冲深度,传输方向为IN;设置EP8为块传输端点,2倍缓冲深度,传输方向为OUT,自动输入方式,外部DSP处理器可以直接和FIFO通信[8]。

本设计是在固件框架基础上进行的,采用C语言实现,Cypress公司提供了固件开发框架[4]。

二次开发时主要对端点的数目和大小进行设置。同时还需要对端点的深度设置、自动传输包大小等进行设置[9]。TD Init{ }函数部分代码如下所示:

void TD_Init(void)

{

CPUCS &=~bmCLKOE;

IFCONFIG &=~bmIFCFG1;//SLAVE FIFO接口,内部时钟,异步传输

IFCONFIG|=0xCB;

EP8CFG = 0xF2;//OUT端点,BULK传输,512字节,2倍缓冲

SYNCDELAY;

EP4CFG = 0xE2;//IN端点,BULK传输,512字节,2倍缓冲

PINFLAGSAB=0x00;//FLAGB为EP4的满标志

SYNCDELAY;

PINFLAGSCD=0x00;//FLAGC为EP8的空标志

SYNCDELAY;

FIFORESET=0x08;//复位EP4和EP8 FIFO

SYNCDELAY;

FIFORESET=0x00;

EP8FIFOCFG=0x0D;//设置EP8的SLAVE FIFO为自动输入模式,数据总线16位

SYNCDELAY;

EP8AUTOINLENH=0x00;//自动提交1字节包,包长度高3位000

SYNCDELAY;

EP8AUTOINLENL=0x03;//包长度低8位00000011

PORTACFG=0x43;//设置PA7为SLCS

FIFOPINPOLAR=0x00;//设置控制信号

PKTEND,SLOE,SLRD,SLWR,EF,FF为低有效

AUTOPTRSETUP |= 0x01;

}

固件程序经过Keil软件编译生成的.hex文件可通过Hex2Bix.exe转化成.iic文件,通过Control Panel工具可以下载到EEPROM中,如图4所示。系统上电时程序自动启动,可以自动被识别为相应的HID设备进行工作。

图4 HID系统按键和位置界面

4.2 DSP应用软件设计

TMS320F2812作为核心处理器实现对USB接口芯片的数据读写控制,系统的DSP软件使用CCS3.3进行设计,主要包括DSP初始化、数据采集处理和USB通信接口部分,下面是DSP读写FX2数据的部分代码:

void WriteFIFO(unsigned int i)

{

EALLOW;

GpioDataRegs.GPACLEAR.bit.GPIOA4=1;//164245片选:XUSB_OE低电平

GpioDataRegs.GPACLEAR.bit.GPIOA10=1;//164245方向:B data to A bus

GpioDataRegs.GPASET.bit.GPIOA5=1;

//SLOE高电平

GpioDataRegs.GPACLEAR.bit.GPIOA7=1;

//PKTEND低电平

EDIS;

if(GpioDataRegs.GPADAT.bit.GPIOA9==1) //FLAGB:EP6不满,执行写操作

{

for(i=0;i<512;i++)

{

* EP6=i;

for(i= 0;i< 5000;i++)

}

}

EALLOW;

GpioDataRegs.GPADAT.bit.GPIOA4=1;

//164245片选:XUSB_OE高电平

EDIS;

}

5 HID高速数据采集系统的应用

通过上述硬件电路和软件系统的设计,实现了两套基于USB HID接口的高速数据采集系统的实际应用。

应用一为一套航空领域航电系统中地面控制台用的油门台,操作杆上有多个按钮,并且可以手动推动油门台操作杆移动。油门台对外提供USB2.0接口与地面计算机连接,USB接口符合标准的Direct X即插即用接口,可通过计算机可视化界面实时显示当前按钮状态和油门操作杆位置信息。同时该地面油门操作杆还可以随空中自动油门台联动,即空中油门台动作的同时带动地面油门台动作,因此,该设备对通信速率和实时性有较高要求,同时还要求具有可视化界面,便于地面人员检测数据。

将油门台和地面测控计算机连接,油门台可自动被识别为外部USB设备,自动安装设备驱动后,依次点击桌面“开始”、“控制面板”按钮,在“控制面板”界面下双击“游戏控制器”按钮,弹出“游戏控制器”界面,该界面上共有24个显示点,依次按压油门操作杆上的各个按钮,每个按钮接通时,在油门台按键USB测试界面中,“按钮”界面的1、2、3、4、5顺序点亮。当推动油门台操作杆从零位向90度方向运动时,界面上的“+”在Y轴方向从下向上线性的变化位置,反之,若推动油门台操作杆从90度向零位方向运动时,界面上的“+”在Y轴方向从上向下线性的变化位置,并实时显示当前角度位置值,如图5所示。

图5 HID系统按键和位置界面

应用二为一套高速红外图像采集系统。编写相应的测试程序,通过与该系统的接口可实现查找设备、获取设备、发送和接收报表等功能,测试界面如图6所示。

图6 HID红外图像采集系统测试界面

在将该系统连接到计算机,通过配置相应的描述符,系统将被自动识别为HID设备。通过工具软件Bus Hound可以获取计算机和红外图像采集系统的通信数据,可实时监测系统的传输速率、相应速度等参数。软件测试结果如图7所示,实时获取的系统传输速度最大为40 MB/s,响应速度可达10 ms,满足红外图像数据传输要求。

图7 Bus Hound软件测试平台

6 结 论

本文通过EZ-USB FX2设计了一种TMS320-2812与计算机之间数据高速传输方法,实现了基于USB HID接口的高速数据和红外图像采集系统的应用,该系统具有传输速度快、结构简单、实时性和可靠性高等优点,适用于大批量数据和图像采集系统。利用HID设备驱动程序和固件框架,可以生成不同描述符,开发出不同的嵌入式设备,使用方便,灵活性好。

猜你喜欢

固件端点油门
非特征端点条件下PM函数的迭代根
驾哥
不等式求解过程中端点的确定
汽车改装车上装油门的几种控制方法
基于SHA1的SCADA系统PLC固件完整性验证方法
基于UEFI固件的攻击验证技术研究*
基于固件的远程身份认证
坐诊专家
基丁能虽匹配延拓法LMD端点效应处理
提取ROM固件中的APP