USB2.0接口芯片CY7C68013的固件程序开发

网友投稿 326 2022-10-31

USB2.0接口芯片CY7C68013的固件程序开发

1. 接口芯片CY7C68013简介: CY7C68013芯片是Cypress公司的EZ-USB FX2系列中一种既满足USB2.0协议同时兼容USB1.1协议的功能强大的接口芯片。其结构如下图所示[2]:

图1   CY7C68013接口芯片结构

2.开发工具:

3.固件结构及组成:

3.3接口函数:     在固件程序框架中提供了功能函数接口,通过在这些接口函数中加入自行开发代码可以实现特定的功能并大大降低固件程序的开发难度,加速USB系统开发的过程。这些接口函数分三类:任务分配、标准设备请求执行和USB总线中断处理[3]。下面将依次介绍这些接口函数和用途。3.3.1任务分配     TD_Init() 说明:此函数主要是完成FX2的初始化,在FX2再次枚举和开始任务分配前被调用,其目的是初始化各个端口以及各端口的先入先出缓冲区。     TD_Poll()     说明:此函数在设备运行时被重复的调用,它应包括完成特别任务的代码。在该函数返回前,优先级高的任务可能已经完成。但是,如果它返回值为假,FX2将不会影响设备请求和USB总线设备挂起事件。如果需要大量的处理时间,FX2就会通过多次调用TD_Poll()函数将时间分段。     TD_Suspend()     说明:此函数是在设备进入挂起状态前调用的,开发者在其中加入适当的代码,对设备的工作状态进行配置,可使设备处于低功耗状态并返回真值。但是开发者可以改动TD_Suspend()的程序代码,使其返回为假,这样可以使FX2不进入挂起状态。     TD_Resume()     说明:当外部要求重新启动时(如,外界产生Wakeup中断或者USB总线有传输活动发生),设备就会通过调用此函数来对处理器进行重启,也就是TD_Suspend()函数的逆操作。此时,设备在正常电源下重新启动。3.3.2设备请求     设备请求函数具有如下的形式:     BOOL DR_xxx(void)     {          ……     file://设备请求处理代码          return(TURE);     } 主要是完成对于来自主机的命令及请求的处理工作,如配置端口等。3.3.3USB中断     FX2设备的中断包括与标准8051中断相同的中断同时也包含一些FX2特有的中断。由于在固件程序中提供了中断服务例程接口,开发者只须在需要处理的中断服务例程接口中加入自己编写的中断服务代码即可完成对相应中断请求的服务,这样就可以避免深入研究FX2的中断自动引导(Interrupt Autovectors)的逻辑结构[2]。这些中断服务例程接口函数的形式为:     void ISR_xxx(void)  interrupt 0 {         ……  file://开发者中断服务代码         EZUSB_IRQ_CLEAR();         USBIRQ = bmXXX;         // 清除该中断请求 }

4. 总结:

在了解了Cypress的固件程序框架结构之后,采用Keil uVision2开发环境在该Cypress的固件框架下开发可以在很大程度上降低固件程序的开发难度并缩短开发周期,获得较高的效率。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一起raft 切主后的故障分析
下一篇:【华为云·云筑2020】DevCloud考卷答案
相关文章

 发表评论

暂时没有评论,来抢沙发吧~