音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

基于EZ-USB FX2的USB 2.0系統(tǒng)軟件開發(fā)

出處:suchenwang 發(fā)布于:2007-04-29 09:27:21

基于EZ-USB FX2的USB 2.0系統(tǒng)軟件開發(fā)

宋吉超,易克初,陸維佳
(西安電子科技大學(xué)綜合業(yè)務(wù)網(wǎng)國(guó)家重點(diǎn)實(shí)驗(yàn)室 陜西西安 710071)

通用串行總線(Universal SeriaI Bus,簡(jiǎn)稱USB)以其易插拔、無需配置、真正的即插即用等特性獲得了廣泛的市場(chǎng)認(rèn)可。USB 1.O標(biāo)準(zhǔn)于1996年1月提出,傳輸速度為1.5 Mb/s的低速模式;1998年9月提出的USB 1.1標(biāo)準(zhǔn)則將速度提高到12 Mb/s的全速模式,并且增加了中斷傳輸?shù)膫鬏敺绞健SB 2.0標(biāo)準(zhǔn)于2000年4月提出,將傳輸速度提高了40倍,達(dá)到了480 Mb/s的高速模式,足以滿足大多數(shù)外設(shè)的速率要求

1 USB2.0接口芯片EZ-USB FX2的系統(tǒng)架構(gòu)及開發(fā) 要點(diǎn)

CYPRESS的EZ-USB FX2是業(yè)界推出的個(gè)USB 2.0集成外圍控制器。該器件集成有1個(gè)8051處理器、1個(gè)串行接口引擎(SIE)、1個(gè)USB收發(fā)器、8.5 kB片上RAM,4 kB FIFO存儲(chǔ)器以及1個(gè)通用可編程接口(GPIF、)。FX2是一個(gè)相當(dāng)完整的解決方案,其功能框圖結(jié)構(gòu)如圖1所示。

集成的USB收發(fā)器連接到USB總線管腳D+和D一,串行接口引擎sIE實(shí)現(xiàn)串行數(shù)據(jù)的編解碼、檢錯(cuò)、位填充和其他USB所需信號(hào)層的任務(wù)。終sIE實(shí)現(xiàn)從USB接口 收發(fā)并行數(shù)據(jù)。

FX2中集成了增強(qiáng)型的8051處理器,他可工作在12MFIz,24 MHz和48 MHz的頻率,并且一個(gè)指令周期只需4個(gè)時(shí)鐘周期。單片機(jī)只是進(jìn)行USB傳輸?shù)木S護(hù)及控制并不進(jìn)行直接的數(shù)據(jù)傳輸。

為了實(shí)現(xiàn)USB 2.0的高速帶寬,把FX2的端點(diǎn)FIF(和從屬FIFO(實(shí)現(xiàn)和外部邏輯器件或處理器接口的FIFO)集成在一起以減少內(nèi)部數(shù)據(jù)傳輸時(shí)間。并且FX2的FIFO有獨(dú)特的"量子"特性,數(shù)據(jù)以I-JSB分組大小為單位被提交到FIF0,而不是每次一個(gè)字節(jié)。這簡(jiǎn)化了錯(cuò)誤恢復(fù),如果用經(jīng)典的FIFO,當(dāng)產(chǎn)生壞的(CR((循環(huán)校驗(yàn)碼)時(shí),所有的數(shù)據(jù)必然泛濫流出,因?yàn)樗菈臄?shù)據(jù);如果CRC是好的,則分組信息能從USB域交換到I/O(輸入/輸出)域。對(duì)外來說,他看起來仍然像FIF0,但代之以每次只傳送1個(gè)字或1個(gè)字節(jié)為立即傳送整個(gè)分組信息。端點(diǎn)緩沖器可通過固件設(shè)置為雙、三或四緩沖器,與所需的數(shù)據(jù)量或靈活性有關(guān)。Fx2的FIFO量子特性及可編程設(shè)置多緩J沖為滿足USB 2.0所需帶寬提供了保障。

FX2片上只有RAM而無ROM,可以直接通過USB程序,實(shí)現(xiàn)所謂"軟配置"。"軟配置"提高了軟件的調(diào)試及升級(jí)速度。

FX2與外部邏輯的2種接口方式:Slave FIFlos方式和通用可編程接口GPIF、方式。Slave FIFOs方式是從機(jī)方式,外部控制器可像普通FIF0一樣對(duì)FX2的多層緩沖FIF、O進(jìn)行讀寫。FX2的Slave 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總線控制芯片,如果沒有芯片與主機(jī)及外部邏輯通信的代碼,芯片則無法完成響應(yīng)功能。為了便于開發(fā)者縮短開發(fā)周期,CYPRESS為開發(fā)者提供了固件程序框架來實(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í)行過程如圖2所示。

EZ-USB FX2固件程序框架首先初識(shí)化所有內(nèi)部狀態(tài)量,然后調(diào)用用戶初始化函數(shù)TD-Init(),然后初始化UsB總線設(shè)備接口為非配置狀態(tài),并同時(shí)打開中斷。當(dāng)完成上面的任務(wù)后,EZ-USB FX2固件程序就開始重新枚舉,直到在端點(diǎn)0收到SETUP包為止。一旦EZ-USB FX2收到SETUP包,固件程序框架就開始進(jìn)行任務(wù)分配、任務(wù)分配就是依次重復(fù)地執(zhí)行以下過程:

(1)調(diào)用用戶函數(shù)TD-Poll()。

(2)檢測(cè)是否有未處理的設(shè)備請(qǐng)求,如果有,解析接收到的命令,進(jìn)行適當(dāng)響應(yīng)。默認(rèn)情況下,他會(huì)對(duì)給定的標(biāo)準(zhǔn)設(shè)備請(qǐng)求實(shí)現(xiàn)USB定義的響應(yīng);但是,框架提供分支程序允許用戶程序解析處理或者覆蓋特定的設(shè)備請(qǐng)求。

(3)檢測(cè)USB核是否了一個(gè)USB掛起事件,如果有,調(diào)用用戶函數(shù)TD~Susupend()。當(dāng)返回值為真,檢測(cè)是否有恢復(fù)事件,如果沒有,則掛起處理器。當(dāng)檢測(cè)到恢復(fù)事件,調(diào)用用戶函數(shù)TD-Resume(),并繼續(xù)執(zhí)行步驟(3)。當(dāng)TD-Sustlpend()返回值為假時(shí),則繼續(xù)執(zhí)行步驟(3)。通過以上流程,固件程序?qū)崿F(xiàn)了簡(jiǎn)單的合作任務(wù)執(zhí)行框架。

2.2驅(qū)動(dòng)程序

在Windows平臺(tái)下,USB驅(qū)動(dòng)程序由3部分組成:USB設(shè)備驅(qū)動(dòng)程序,USB總線驅(qū)動(dòng)程序和USB主控制器驅(qū)動(dòng)程序,他們必須遵循win32驅(qū)動(dòng)程序模型(wDM)。其中,windows操作系統(tǒng)已經(jīng)提供了處于驅(qū)動(dòng)程序棧底的USB總線驅(qū)動(dòng)程序和USB主控制器驅(qū)動(dòng)程序。而USB設(shè)備驅(qū)動(dòng)程序由設(shè)備開發(fā)者編寫,他通過向USB總線驅(qū)動(dòng)程序發(fā)送包含URB(USB Request Block)的IRP(I/0Request Packet),來實(shí)現(xiàn)USB外設(shè)之間的信息交換。當(dāng)主機(jī)應(yīng)用程序要對(duì)USB設(shè)備進(jìn)行I/0操作時(shí),他調(diào)用Windows API函數(shù)對(duì)win32子系統(tǒng)進(jìn)行win32調(diào)用,由I/O管理器將此請(qǐng)求構(gòu)造成一個(gè)合適的IRP,并把他傳遞給USB設(shè)備驅(qū)動(dòng)程序。USB設(shè)備驅(qū)動(dòng)程序接受到這個(gè)IRP后,根據(jù)IRP中的包含的具體操作代碼,構(gòu)造響應(yīng)的URB并把他放到一個(gè)新IRP中,然后把此IRP傳遞到USB總線驅(qū)動(dòng)程序,USB總線驅(qū)動(dòng)程序根據(jù)IRP中所包含的URB執(zhí)行響應(yīng)的操作,并把操作結(jié)果通過IRP返還給USB設(shè)備驅(qū)動(dòng)程序。USB設(shè)備驅(qū)動(dòng)程序接受到此IRP后,將操作結(jié)果通過IRP返還I/O管理器。,I/O管理器將此IRP中的操作結(jié)果返還給應(yīng)用程序,至此應(yīng)用程序?qū)SB設(shè)備的I/O操作完成。

在CYPRESS公司的EZ-USB FX2開發(fā)包中,有一個(gè)通用的驅(qū)動(dòng)程序。EZ-USB GENERAL PURP()SEDEVICE DRIVER(GPD),GPD提供了USB標(biāo)準(zhǔn)設(shè)備請(qǐng)求和數(shù)據(jù)傳輸?shù)挠脩裟J浇涌冢梢灾苯佑脕黹_發(fā)上層應(yīng)用程序,加快開發(fā)進(jìn)度。

2.3上層應(yīng)用程序
應(yīng)用程序工作于用戶模式,用戶模式可以訪問文件,處理數(shù)據(jù),人機(jī)交互,不過必須借助設(shè)備驅(qū)動(dòng)程序來訪問硬件。對(duì)于EZ-USB FX2而言,所有用戶模式通過I/0 control調(diào)用來訪問EZ-USB GPD。每一個(gè)連接到主機(jī)的EZ-USB設(shè)備,驅(qū)動(dòng)產(chǎn)生一個(gè)形式為ezusb-i的符號(hào)連接名。符號(hào)連接名用于調(diào)用CreateFile時(shí)得到設(shè)備驅(qū)動(dòng)的句柄,實(shí)際上CreateFile()得到設(shè)備驅(qū)動(dòng)創(chuàng)建的設(shè)備對(duì)象的句柄。
應(yīng)用程序通過CreateFile()得到USB設(shè)備句柄,用Device Control()來進(jìn)行控制傳輸。在VC環(huán)境下開發(fā)的主機(jī)端的應(yīng)用程序,實(shí)現(xiàn)了設(shè)備的打開、關(guān)閉、固件、端口配置和文件傳輸?shù)裙δ?。界面如圖3所示。

3結(jié)語

USB2.0為PC和外部硬件設(shè)備之間提供了一種快速-和方便的數(shù)據(jù)交換方式,本文提供了基于EZ USB FX2的一個(gè)很好的解決方案,實(shí)現(xiàn)了從底層固件到上層應(yīng)用程序數(shù)據(jù)傳輸?shù)恼麄€(gè)軟件系統(tǒng)。



  

參考文獻(xiàn):

[1]. ROM datasheet http://m.58mhw.cn/datasheet/ROM_1188413.html.
[2]. EZ-USB datasheet http://m.58mhw.cn/datasheet/EZ-USB_305660.html.


關(guān)鍵詞:基于EZ-USB FX2的USB 2.0系統(tǒng)軟件開發(fā)80512000

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

AP2000ATCER??1.0MHz,輸入電壓低至0.85V小功率同步升壓轉(zhuǎn)換器
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!