基于USB接口DSP程序下载软件设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于USB接口DSP程序下载软件设计

基于USB接口DSP程序下载软件设计   随着计算机技术和信息科学技术的迅猛发展,高速实时数据处理技术的应用成为一个非常重要的技术,在计算机外设总线标准中,USB是快速、稳定和成熟的,又因为其实用、支持热拔插、性能高和价格便宜等优点而迅速成为新时代不可或缺的新型技术。同时DSP对于复杂运算的处理能力比较强,能够满足复杂工业环境所需的大量运算的实际要求,本文设计了它们的结合使用,提供了一种新的数据传输解决方案。   【关键词】USB接口 DSP 程序下载软件   1 引言   USB是一种新型的计算机总线接口技术,随着计算机处理数据的能力越来越强,我们对数据的传输速率也要求越来越高,而USB的诞生,也有助于解决数据传输速度慢的难题。USB设备的开发,我们需要对USB总线结构的每个部分进行代码的编写和整合之后,再组合成一个整体的开发。要谨慎搭建基于USB的开发环境,所选用的开发环境最好具有针对USB的软件和硬件的调试,因为在开发过程中涉及到USB固件和驱动的开发,应用软件的设计和硬件调试平台。最后要进行USB设备综合调试,测试所有的功能是否完善以及总结所需要修改的地方,进一步完善,完成USB设备的开发。   2 硬件设计   2.1 DSP芯片   本文所选用的DSP芯片为TMS320C 6713,其时钟频率高达300MHz,是浮点运算能力最强的一款32位高速浮点型DSP芯片。   HPI-16是HPI接口的升级增强版,是该芯片的主机口,最重要的特征是DSP的整个片内空间可以被主机访问。HPI接口与主机的数据通信主要通过HPI控制器(HPIC)、地址寄存器(HPIA)、数据寄存器(HPID)和HPI内存块来实现。   2.2 USB芯片   本文所采用的USB芯片是CYPRESS公司的EZ-USB FX2系列芯片CY7C68013,特点是主机上就存储这其芯片固件,这样容易使代码直接通过网络升级。它的休眠模式比较特殊,具有低功耗的效果,减少资源的损耗,有利于更好的保护器件,避免长时间通电遭到损坏。   2.3 硬件电路连接   本设计采用CY7C68013-128PVC与TMS 320C6713的HPI模块接口相连接,工作模式设置为GPIF模式。硬件电路连接如图1所示。   3 软件设计   3.1 USB固件程序设计   固件程序的开发环境选择KEIL C51。固件函数库提供了许多函数,该函数都与USB协议相关,可以在不熟悉USB协议的情况下,利用固件框架进行所需功能的程序编写。寄存器初始化、电源管理、重枚举等功能已经设计完整,可以直接使用。固件程序流程框图如图2所示。   整个执行过程是一个相对简单的循环过程。第一步,优先初始化内部变量;然后,调用TD_Init()函数进行寄存器的初始化工作;TD_Init()函数执行结束之后,使USB接口处于位配置状态,并开中断,检测端口0是否接受到一个SETUP包,否则端口0执行延时重枚举操作。   初始化函数TD_Tint()函数负责完成初始化芯片的寄存器,设置适当的参数,通常在固件运行时开始调用。该函数首先CPUCS寄存器进行初始化操作,设置48MHZ的时钟频率;然后分别配置端点2作为IN输入bulk状态、端点6使其工作于OUT传输状态,而端点4、8暂时没有使用,所以设置为无效状态;之后调用GpifIint()函数,以初始化GPIF的相关寄存器,进入工作模式。   调度函数TD_Poll()函数在固件代码中循环执行,以负责完成用户指定的功能。该函数首先判断检测传输是否完成、CY7C68013的GPIF的接口是否处于空闲、端点2 缓冲区是否为空闲状态,当这些条件均成立时,将马上启动GPIF 写传输。另外,在USB高速传输状态时,GPIF能够一次读取4096字节的数据,适合处理庞大的数据;而在USB全速传输时,GPIF一次只能读取64字节数据,处理速度比较慢,适宜处理数据量比较小的情况。   TD_Suspend()函数,从固件框架中可以看出,该函数只有在USB处于空闲状态是,才执行。在例程当中,只有简单的一句return TRUE 代码,开发者可以根据实际需要,添加相应的代码以完成相关的功能,还可以配置设备的工作状态,一般设置为低功耗状态,以减少对电源的消耗,其最终结果返回真值,反馈给用户。   TD_Resume()函数,当执行完TD_Suspend()函数之后,若返回的是真值,程序会进入挂起状态,然后开始执行TD_Resume()函数,该函数也只有return TRUE一句代码,当外部需要执行唤醒中断或者USB总线需要执行数据传输等操作,就会对处理器进行重新启动,开始下一个循环。   3.2 应用程序设计   使用LabWindows/CV

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档