当前位置:首页 > 单片机 > 单片机
[导读]本文介绍了基于 USB单片机的弹载测量系统地面测试台的固件程序设计方法。地面测试台用来对弹载数据记录装置进行自检,在本测试台上采用 EZ-USB FX2系列单片机 CY7C68013来实现上位机与地面测试台间的通信,固件程序的功能包括产生测试台状态信号、下载各种信号源数据及进行实时监测数据回读。文中通过测试台的工程实例,详细介绍了端口模式下固件程序的编写流程,并给出了部分程序代码。

1引言
通用串行总线( USB)自从 1994年由微软等公司共同提出到现在人们所熟知的USB2.0,USB技术不断发展成熟。由于具有传输速度快、支持热插拔、即插即用、扩展性强等诸多优点,USB已经被广泛应用于各种 PC标准外设和用户自定义开发设备中。正是由于 USB拥有其他接口(如并口、串口)无法比拟的优势,将 USB接口应用到弹载测量系统地面测试台的设计中,其通用性可扩展性强,能够提高读数速度、简化电路设计及驱动程序开发。
完整的 USB系统除了硬件电路外,还包括驱动程序、单片机固件程序。固件是 USB系统的核心,它要响应各种来自系统的 USB设备请求,完成各种数据的交换工作和事件处理,直接影响到 USB接口的数据传输速度[1]。因此,固件程序的编写是开发 USB设备的关键环节。
本测试台上采用的是Cypress公司的EZ-USB FX2系列单片机 CY7C68013。实现 USB接口的数据通信,CY7C68013可以配置为3种模式:端口模式、 GPIF和Slave FIFO[2]。后两种模式由于使用FX2的管道连接方法,单片机的 CPU不参与数据传输,提高了数据传输速率,从而广泛应用于图像、视频信号采集等大批量数据的传输中。但使用这两种模式进行 USB设备的开发相对较复杂,开发周期长。至于端口模式,文献中很少有介绍,由于这种模式下 CPU参与了数据传输,因此传输速率相对较慢 [3],不过端口模式开发简单,可以降低工程人员的开发难度,缩短开发周期。本测试台中传输数据量较少,传输速率也要求不高,因此本设计采用端口模式。 测试台系统总体框图弹载测量系统地面测试台由模拟信号源、数字信号源、图像信号源、 PCM码解调模块、实时监测等几部分组成,系统总体框图如图 1所示。
500)this.style.width=500;" border="0" />

上位机通过 USB接口分别下载模拟量、数字量及图像数据到各自的信号源存储器中,而解调出的PCM码数据和实时监测数据也是经由 USB接口读回到上位机,从而实现了USB接口的双向数据传输。 3硬件连接
CY7C68013与外围电路连接如图 2所示。
500)this.style.width=500;" border="0" />

测试台下载信号源数据时,USB单片机将数据先写入 FIFO1中,FPGA(XC2S50)通过判断 FIFO1的空信号将数据读出;而回读时 FPGA将数据写入 FIFO2,当 FIFO2半满时, USB单片机产生 FIFO2的读信号将数据读出送至上位机。USB单片机通过 PE口产生不同的状态信号(Status[7:0])使系统进行上述不同操作。 4固件程序设计
所有基于微控制器及其外围电路的功能设备的正常工作都离不开固件的参与,固件程序是基于微控制器设备运行的核心。固件设计的目标就是控制硬件来完成预期的设备功能。USB设备也不例外,用户必须编写固件程序来辅助硬件完成USB通信任务。CY7C68013芯片的固件程序负责处理上位机发来的各种 USB设备请求,并负责控制 CY7C68013与外围电路进行数据传输,其工作主要包括以下几点[4]:
(1)初始化工作,包括设置一些特殊功能寄存器的初值以实现所需的设备属性或者功能; (2) 对设备进行重新列举(ReNumeration),主要的工作有:模拟设备的断开与重新连接、对接收到的设置包进行分析判断、对主机的设备请求作出适当的响应,完成主机对设备的配置任务;
(3)响应中断,并对中断作相应的处理。USB接口在设备列举、响应主机标准请求和厂商请求、数据传送等动作过程中都会向微控制器申请中断,因此微控制器必须正确处理这些中断才能保证 USB传输的正常进行;
(4)数据的接收与发送。USB设备的主要任务就是进行数据的接收和发送,因此CY7C68013的固件程序必须要对接收和发送数据的端点进行正确的配置及控制,才能正确地接收和发送数据;
(5)外围电路的控制。USB接口要进行数据传输,CY7C68013就必须对外部 FIFO进行读写控制,因此固件程序中包含对外围电路进行控制的代码也是必要的。

在使用 EZ-USB FX2芯片进行应用开发中,利用其固件框架可以简化开发工作。用户在这个固件框架的基础上只需要再提供一个 USB描述符表,配置一些相关的寄存器,添加所使用的端点接收和发送数据的通信代码,以及控制外围电路的程序代码就可以完成 USB设备的固件开发工作。本设计中采用的固件框架流程图如图 3所示 [5]。


 
 

500)this.style.width=500;" border="0" />

Cypress公司为简化用户开发提供了 EZ-USB固件程序框架。本设计中固件包括五个部分:fw.c(框架源文件)、periph.c(用户任务调度函数文件)、dscr.a51(描述符表)、 USBJmpTb.OBJ(中断跳转表)、Ezusb.lib(EZ-USB库文件),其中主要对 periph.c和dscr.a51
进行了修改。dscr.a51中包含各种描述符,根据设计需要修改了设备的VID、PID。
periph.c中主要包括 TD_PreInit()、TD_Init()和TD_Poll()函数,TD_PreInit()中包含配置外围接口的输入/输出及设置端口初始值的代码。TD_Init()函数负责初始化端点状态变量,而实现数据通信的软件代码包含在TD_Poll()函数中。部分代码如下:
void TD_PreInit(void)
{  PORTACFG = 0x00; OEA = 0xfd;         //使能 PA1为输入,其余 PA口为输出  IOA = 0xff;//置 PA口为 ffH IOA |= 0x0C;  //由PA2口产生FIFO1的复位信号 PORTECFG = 0x00; OEE = 0xff;} //使能 PE口为状态输出
void TD_Poll(void)
{WORD i; if (PStatus == VCOMMAND_READ)  //上位机发出读数命令 {for ( i=0;i<80;i++)
if (!(IOA & 0x02)) break; //等待外部 FIFO2半满 if (i<80) { if (!(EP2468STAT & bmEP6FULL))  //FIFO2半满、EP6不满,读 512字节
{for( i = 0x0000;i < EP6BUFSIZE;i+=16 ){ EXTAUTODAT2 = EXTAUTODAT1; ┆
EXTAUTODAT2 =EXTAUTODAT1;}//一次读出 16字节,加快读数速度设备请求部分修改了 DR_VendorCmnd()函数代码,由于篇幅有限,仅列出一部分。 BOOL DR_VendorCmnd(void) { switch(SETUPDAT[1])
{ case VCOMMAND_START_T:     //上位机发出启动监测命令 PStatus = 0x22;//单片机产生 22H的状态信号
 = SETUPDAT[1];
 + 1) = 0xaa;
 + 2) = PStatus; EP0BCH = 0; EP0BCL = 3; EP0CS |= bmHSNAK;  //确认器件请求握手信号 SYS_MODE = PStatus;     //通过 PE口发出相应的状态信号 Break;}

5结论
在弹载测量系统地面测试台的研制中,利用 CY7C68013实现了 USB接口的数据传输,本设计采用的端口模式,虽然与 GPIF模式和 Slave fifo模式相比,传输速率比较低,但对于具备一定单片机基础的开发人员而言,这种模式开发周期短,稳定性强,不失为一种有效的数据传输方式。该固件程序已成功应用到某弹载测量系统地面测试台中,多次试验证明固件运行可靠,数据回读误码率低,满足系统技术要求。

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭