当前位置:首页 > 单片机 > 单片机
[导读]本文介绍了基于 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模式相比,传输速率比较低,但对于具备一定单片机基础的开发人员而言,这种模式开发周期短,稳定性强,不失为一种有效的数据传输方式。该固件程序已成功应用到某弹载测量系统地面测试台中,多次试验证明固件运行可靠,数据回读误码率低,满足系统技术要求。

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

美国纽约州阿蒙克2022年10月20日 /美通社/ -- IBM(NYSE: IBM)发布 2022 年第三季度业绩报告。 IBM 董事长兼首席执行官 Arvind Kri...

关键字: IBM 软件 BSP 云平台

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

要问机器人公司哪家强,波士顿动力绝对是其中的佼佼者。近来年该公司在机器人研发方面获得的一些成果令人印象深刻,比如其开发的机器人会后空翻,自主爬楼梯等。这不,波士顿动力又发布了其机器人组团跳男团舞的新视频,表演的机器人包括...

关键字: 机器人 BSP 工业机器人 现代汽车

单片机

21600 篇文章

关注

发布文章

编辑精选

技术子站

关闭