- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
USB2.0接口中固件、软件的设计
摘要:本文介绍了一种usb2.0接口中的微控制器固件和pc机软件设计。根据usb2.0协议特点,本文在固件设计中采用usb批量传输方式,在实现usb2.0协议通信的同时,有效地利用了usb协议带宽;同时在软件设计中采用多线程编程技术,较好地实现了界面显示和程序数据交互,具有较高的实用价值。
关键词:usb2.0接口 批量传输 多线程
中图分类号:tp313 文献标识码:a 文章编号:1007-9416(2012)02-0084-02
1、引言
usb2.0接口是一种实现usb2.0协议通信的计算机外围接口设备,具有支持热插拔、即插即用、通信可靠、数据传输速率高等优点,在实际生产生活中得到了广泛应用,一般由固件、软件和硬件电路组成。其中的固件是固化在集成电路内部的“软件”,通常存储于eprom或flash存储器中,负责usb2.0接口最基础、最底层的工作。它和负责上层工作的软件一起构成了接口的灵魂,很大程度上决定了接口的功能和性能。因此固件和软件的设计一直是usb2.0接口开发中的重点与难点。
2、usb2.0协议
usb,即通用串行总线,是一种标准的连接接口,支持pc主机同时连接多个外部接口设备。其最初于1995年由compaq、ibm、intel、microsoft等七个计算机与通信工业领先的公司所组成的联盟定义和加以推广。相比较旧的usb1.1标准,usb2.0标准在兼容1.1规范中的低速设备和全速设备的基础上新加入了高速设备,最大传输速度可达到480mbps。
usb的总线结构采用阶梯式星形的拓扑结构,包括usb host(主机)与usb设备。其中,usb设备包含usb hub(集线器)与usb node(功能设备)两种类型。在总线结构中,任何usb系统中只能有一个usb主机,位于总线结构最顶端。usb主机往下可连接usb集线器,再由集线器按阶梯式的方式往下扩展出去,连接到下一层,总线结构允许的最大阶梯层数是7层。
3、usb2.0接口固件、软件结构
本文中的usb2.0接口硬件结构如图1所示,包括dsp、usb微控制器两部分。其中dsp负责实时处理输入信号,usb微控制器负责实现与pc主机间的usb2.0协议通信。在dsp与usb微控制器中分别有dsp固件程序和usb微控制器固件程序与相应硬件密切配合、实现既定功能。最后由pc机软件接收usb接口数据,在pc主机上进行数据分析和显示。因此,usb2.0接口的固件、软件共包括dsp固件、usb微控制器固件和pc机软件三部分,其结构如图2所示。其中,由于dsp固件主要实现实时数据处理,与usb2.0协议无关,在此就不加赘述。
4、usb2.0接口固件设计
usb接口固件位于usb微控制器cy7c68013a中,用于控制usb微控制器实现usb2.0协议。为加速usb外围设备的设计,在进行本接口usb固件开发时充分利用了cypress公司ez-usb fx2系列usb微控制器固件编程框架。该框架利用8051程序代码实现ez-usb fx2芯片的起始设置、usb标准设备请求的处理以及usb闲置模式的电源管理服务。其所包含的各个文件见表1。
usb协议定义了四种传输类型:控制传输、中断传输、批量传输和等时传输。除控制传输用于主机与设备间的配置、命令及状态操作,在每种应用中均需用到外,其余三种传输分别针对不同应用。其中,批量传输适合于需要传送大量数据的应用场合。由于批量传输具有出错重传机制,传输速度高,可最大程度利用usb总线带宽,因此在本设计中采用批量传输作为usb数据传输方式,相应地在固件程序中设置微控制器对应端点为批量传输方式。
在实际开发中根据实际情况对文件中的各用户任务函数作编程修改,实现了usb2.0协议。在程序开始,首先初始化所有的内部状态变量,调用用户初始设置函数td_init(),配置usb接口为未配置的状态并使能中断,接着开始重新设备枚举并等待枚举完成,最终进入while(1)循环,调用用户任务函数td_poll(),并根据情况分别调用其他用户任务函数。
5、usb2.0接口pc机软件设计
pc机软件的设计包含用户操作界面设计和usb设备驱动程序设计两部分。用户操作界面用于分析、显示接收到的实时数据,其在vc环境下使用mfc基于多文本框进行开发,在编程中采用多线程编程技术实现界面显示和程序数据交互。在创建一个线程前,首先创建一个新事件,用来监视线程的执行时间,并且设置各个操作的最长等待线程函数等待时间;然后创建线程,在线程函数中执行操作;最后检查线程的执行结果并显示。
usb设备驱动程序采用ddk驱动开发技术,依照wdm(windows drive mode)堆栈架构在vc环境下编程实现。具体设计工作包括:开发环境设置、
原创力文档


文档评论(0)