FX2中集成了增強(qiáng)型的8051處理器,他可工作在12 MHz,24 MHz和48 MHz的頻率,并且一個(gè)指令周期只需4個(gè)時(shí)鐘周期。單片機(jī)只是進(jìn)行USB傳輸?shù)木S護(hù)及控制,并不進(jìn)行直接的數(shù)據(jù)傳 輸。
為了實(shí)現(xiàn)USB2.0的高速帶寬,把FX2的端點(diǎn)FIFO和從屬FIFO(實(shí)現(xiàn)和外部邏輯器件或處理器接 口的FIFO)集成在一起以減少內(nèi)部數(shù)據(jù)傳輸時(shí)間。并且FX2的FIFO有獨(dú)特的“量子”特性,數(shù)據(jù)以USB分組大小為單位被提交到FIFO,而不是每次一個(gè)字節(jié)。這簡(jiǎn)化了錯(cuò)誤恢復(fù),如果用經(jīng)典的FIFO,當(dāng)產(chǎn)生壞的CRC(循環(huán)校驗(yàn)碼)時(shí),所有的數(shù)據(jù)必然泛濫流出,因?yàn)樗菈臄?shù)據(jù);如果CRC是好的,則分組信息能從USB域交換到I/O(輸入/輸出)域。對(duì)外來(lái)說(shuō),他看起來(lái)仍然像FIFO,但代之以每次只傳送1個(gè)字或1個(gè)字節(jié)為立即傳送整個(gè)分組信息。端點(diǎn)緩沖器可通過(guò)固件設(shè)置為雙、三或四緩沖器,與所需的數(shù)據(jù)量或靈活性有關(guān)。FX2的FIFO量子特性 及可編程設(shè)置多緩沖為滿足USB2.0所需帶寬提供了保障。
FX2片上只有RAM而無(wú)ROM,可以直接通過(guò)USB下載程序,實(shí)現(xiàn)所謂“軟配置”!败浥渲谩碧 高了軟件的調(diào)試及升級(jí)速度。
FX2與外部邏輯的2種接口方式:Slave FIFOs方式和通用可編程接口GPIF方式。Slave FIFOs方式是從機(jī)方式,外部控制器可像普通FIFO一樣對(duì)FX2的多層緩沖FIFO進(jìn)行讀寫。FX2的Slav e FIFOs工作方式可設(shè)為同步或異步;工作時(shí)鐘可選為內(nèi)部產(chǎn)生或外部輸入;其他控制信號(hào) 也可靈活地設(shè)置為高有效或低有效?删幊探涌(GPIF)方式是主機(jī)方式,可以軟件編程讀寫 控制波形,他幾乎可以對(duì)任何8/16 b接口的控制器、存儲(chǔ)器和總線進(jìn)行數(shù)據(jù)的主動(dòng)讀寫,非常靈活。 2系統(tǒng)軟件的開發(fā)
USB系統(tǒng)軟件主要包括設(shè)備固件、USB設(shè)備驅(qū)動(dòng)程序和應(yīng)用程序3個(gè)部分。
2.1固件架構(gòu)
對(duì)于USB總線控制芯片,如果沒(méi)有芯片與主機(jī)及外部邏輯通信的代碼,芯片則無(wú)法完成響應(yīng)功能。為了便于開發(fā)者縮短開發(fā)周期,CYPRESS為開發(fā)者提供了固件程序框架來(lái)實(shí)現(xiàn)循環(huán)查詢的程序和與主機(jī)通信的端點(diǎn)中斷程序。用戶只需在這些框架里加入自己的代碼就可以實(shí)現(xiàn) 特定的功能。固件程序框架可以實(shí)現(xiàn)芯片初始化、處理USB標(biāo)準(zhǔn)設(shè)備請(qǐng)求、電源掛起管理等。為用戶提供3類鉤子函數(shù):任務(wù)調(diào)度,標(biāo)準(zhǔn)設(shè)備請(qǐng)求解析,USB中斷處理。
固件程序框架執(zhí)行過(guò)程如圖2所示。