<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > USB2.0接口芯片CY7C68013的固件程序開發(fā)

          USB2.0接口芯片CY7C68013的固件程序開發(fā)

          作者: 時(shí)間:2012-04-23 來源:網(wǎng)絡(luò) 收藏
          R>3.2固件程序框架源碼:
          該文件提供了一個(gè)固件程序的框架結(jié)構(gòu),適用于一般的對(duì)數(shù)據(jù)傳輸?shù)目刂?。該結(jié)構(gòu)提供了對(duì)開發(fā)者開放的程序接口,開發(fā)者通過在這些接口函數(shù)中加入適當(dāng)?shù)拇a來實(shí)現(xiàn)所需的功能。
          其工作流程如圖 2所示,
          USB2.0接口芯片CY7C68013的固件程序開發(fā)
          圖2 固件程序框架工作流程


          3.3接口函數(shù):
          在固件程序框架中提供了功能函數(shù)接口,通過在這些接口函數(shù)中加入自行開發(fā)代碼可以實(shí)現(xiàn)特定的功能并大大降低固件程序的開發(fā)難度,加速USB系統(tǒng)開發(fā)的過程。這些接口函數(shù)分三類:任務(wù)分配、標(biāo)準(zhǔn)設(shè)備請(qǐng)求執(zhí)行和USB總線中斷處理[3]。下面將依次介紹這些接口函數(shù)和用途。
          3.3.1任務(wù)分配
          TD_Init()
          說明:此函數(shù)主要是完成FX2的初始化,在FX2再次枚舉和開始任務(wù)分配前被調(diào)用,其目的是初始化各個(gè)端口以及各端口的先入先出緩沖區(qū)。
          TD_Poll()
          說明:此函數(shù)在設(shè)備運(yùn)行時(shí)被重復(fù)的調(diào)用,它應(yīng)包括完成特別任務(wù)的代碼。在該函數(shù)返回前,優(yōu)先級(jí)高的任務(wù)可能已經(jīng)完成。但是,如果它返回值為假,F(xiàn)X2將不會(huì)影響設(shè)備請(qǐng)求和USB總線設(shè)備掛起事件。如果需要大量的處理時(shí)間,F(xiàn)X2就會(huì)通過多次調(diào)用TD_Poll()函數(shù)將時(shí)間分段。
          TD_Suspend()
          說明:此函數(shù)是在設(shè)備進(jìn)入掛起狀態(tài)前調(diào)用的,開發(fā)者在其中加入適當(dāng)?shù)拇a,對(duì)設(shè)備的工作狀態(tài)進(jìn)行配置,可使設(shè)備處于低功耗狀態(tài)并返回真值。但是開發(fā)者可以改動(dòng)TD_Suspend()的程序代碼,使其返回為假,這樣可以使FX2不進(jìn)入掛起狀態(tài)。
          TD_Resume()
          說明:當(dāng)外部要求重新啟動(dòng)時(shí)(如,外界產(chǎn)生Wakeup中斷或者USB總線有傳輸活動(dòng)發(fā)生),設(shè)備就會(huì)通過調(diào)用此函數(shù)來對(duì)處理器進(jìn)行重啟,也就是TD_Suspend()函數(shù)的逆操作。此時(shí),設(shè)備在正常電源下重新啟動(dòng)。
          3.3.2設(shè)備請(qǐng)求
          設(shè)備請(qǐng)求函數(shù)具有如下的形式:
          BOOL DR_xxx(void)
          {
          ……file://設(shè)備請(qǐng)求處理代碼
          return(TURE);
          }
          主要是完成對(duì)于來自主機(jī)的命令及請(qǐng)求的處理工作,如配置端口等。
          3.3.3USB中斷
          FX2設(shè)備的中斷包括與標(biāo)準(zhǔn)8051中斷相同的中斷同時(shí)也包含一些FX2特有的中斷。由于在固件程序中提供了中斷服務(wù)例程接口,開發(fā)者只須在需要處理的中斷服務(wù)例程接口中加入自己編寫的中斷服務(wù)代碼即可完成對(duì)相應(yīng)中斷請(qǐng)求的服務(wù),這樣就可以避免深入研究FX2的中斷自動(dòng)引導(dǎo)(Interrupt Autovectors)的邏輯結(jié)構(gòu)[2]。這些中斷服務(wù)例程接口函數(shù)的形式為:
          void ISR_xxx(void) interrupt 0
          {
          ……file://開發(fā)者中斷服務(wù)代碼
          EZUSB_IRQ_CLEAR();
          USBIRQ = bmXXX; // 清除該中斷請(qǐng)求
          }


          4. 總結(jié):


          在了解了Cypress的固件程序框架結(jié)構(gòu)之后,采用Keil uVision2開發(fā)環(huán)境在該Cypress的固件框架下開發(fā)可以在很大程度上降低固件程序的開發(fā)難度并縮短開發(fā)周期,獲得較高的效率。

          pid控制相關(guān)文章:pid控制原理



          上一頁 1 2 下一頁

          關(guān)鍵詞: USB2.0 接口芯片 CY7C68013

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();