a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于EZ-USB FX2的USB 2.0系統軟件開發

基于EZ-USB FX2的USB 2.0系統軟件開發

作者: 時間:2013-11-08 來源:網絡 收藏

通用串行總線(Universal SeriaI Bus,簡稱USB)以其易插拔、無需配置、真正的即插即用等特性獲得了廣泛的市場認可。USB 1.O標準于1996年1月提出,傳輸速度為1.5 Mb/s的低速模式;1998年9月提出的USB 1.1標準則將速度提高到12 Mb/s的全速模式,并且增加了中斷傳輸的傳輸方式。USB 2.0標準于2000年4月提出,將傳輸速度提高了40倍,達到了480 Mb/s的高速模式,足以滿足大多數外設的速率要求

1 USB2.0接口芯片 的系統架構及開發 要點

CYPRESS的 是業界推出的第一個USB 2.0集成外圍控制器。該器件集成有1個8051處理器、1個串行接口引擎(SIE)、1個USB收發器、8.5 kB片上RAM,4 kB FIFO存儲器以及1個通用可編程接口(GPIF、)。是一個相當完整的解決方案。

集成的USB收發器連接到USB總線管腳D+和D一,串行接口引擎sIE實現串行數據的編解碼、檢錯、位填充和其他USB所需信號層的任務。最終sIE實現從USB接口 收發并行數據。

FX2中集成了增強型的8051處理器,他可工作在12MFIz,24 MHz和48 MHz的頻率,并且一個指令周期只需4個時鐘周期。單片機只是進行USB傳輸的維護及控制并不進行直接的數據傳輸。

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

FX2片上只有RAM而無ROM,可以直接通過USB下載程序,實現所謂"軟配置"。"軟配置"提高了軟件的調試及升級速度。

FX2與外部邏輯的2種接口方式:Slave FIFlos方式和通用可編程接口GPIF、方式。Slave FIFOs方式是從機方式,外部控制器可像普通FIF0一樣對FX2的多層緩沖FIF、O進行讀寫。FX2的Slave FIFOs工作方式可設為同步或異步;工作時鐘可選為內部產生或外部輸入;其他控制信號也可靈活地設置為高有效或低有效。可編程接口(GPIF)方式是主機方式,可以軟件編程讀寫控制波形,他幾乎可以對任何8/16 b接口的控制器、存儲器和總線進行數據的主動讀寫,非常靈活。

2系統軟件的開發

USB系統軟件主要包括設備固件、USB設備驅動程序和應用程序3個部分。

2.1固件架構

對于USB總線控制芯片,如果沒有芯片與主機及外部邏輯通信的代碼,芯片則無法完成響應功能。為了便于開發者縮短開發周期,CYPRESS為開發者提供了固件程序框架來實現循環查詢的程序和與主機通信的端點中斷程序。用戶只需在這些框架里加入自己的代碼就可以實現特定的功能。固件程序框架可以實現芯片初始化、處理USB標準設備請求、電源掛起管理等。為用戶提供3類鉤子函數:任務調度,標準設備請求解析,uSB中斷處理。

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

(1)調用用戶函數TD-Poll()。

(2)檢測是否有未處理的設備請求,如果有,解析接收到的命令,進行適當響應。默認情況下,他會對給定的標準設備請求實現USB定義的響應;但是,框架提供分支程序允許用戶程序解析處理或者覆蓋特定的設備請求。

(3)檢測USB核是否報告了一個USB掛起事件,如果有,調用用戶函數TD~Susupend()。當返回值為真,檢測是否有恢復事件,如果沒有,則掛起處理器。當檢測到恢復事件,調用用戶函數TD-Resume(),并繼續執行步驟(3)。當TD-Sustlpend()返回值為假時,則繼續執行步驟(3)。通過以上流程,固件程序實現了簡單的合作任務執行框架。

2.2驅動程序

在Windows平臺下,USB驅動程序由3部分組成:USB設備驅動程序,USB總線驅動程序和USB主控制器驅動程序,他們必須遵循win32驅動程序模型(wDM)。其中,windows操作系統已經提供了處于驅動程序棧底的USB總線驅動程序和USB主控制器驅動程序。而USB設備驅動程序由設備開發者編寫,他通過向USB總線驅動程序發送包含URB(USB Request Block)的IRP(I/0Request Packet),來實現USB外設之間的信息交換。當主機應用程序要對USB設備進行I/0操作時,他調用Windows API函數對win32子系統進行win32調用,由I/O管理器將此請求構造成一個合適的IRP,并把他傳遞給USB設備驅動程序。USB設備驅動程序接受到這個IRP后,根據IRP中的包含的具體操作代碼,構造響應的URB并把他放到一個新IRP中,然后把此IRP傳遞到USB總線驅動程序,USB總線驅動程序根據IRP中所包含的URB執行響應的操作,并把操作結果通過IRP返還給USB設備驅動程序。USB設備驅動程序接受到此IRP后,將操作結果通過IRP返還I/O管理器。最后,I/O管理器將此IRP中的操作結果返還給應用程序,至此應用程序對uSB設備的一次I/O操作完成。

在CYPRESS公司的EZ-USB FX2開發包中,有一個通用的驅動程序。EZ-USB GENERAL PURP()SEDEVICE DRIVER(GPD),GPD提供了USB標準設備請求和數據傳輸的用戶模式接口,可以直接用來開發上層應用程序,加快開發進度。

2.3上層應用程序
應用程序工作于用戶模式,用戶模式可以訪問文件,處理數據,人機交互,不過必須借助設備驅動程序來訪問硬件。對于EZ-USB FX2而言,所有用戶模式通過I/0 control調用來訪問EZ-USB GPD。每一個連接到主機的EZ-USB設備,驅動產生一個形式為ezusb-i的符號連接名。符號連接名用于調用CreateFile時得到設備驅動的句柄,實際上CreateFile()得到設備驅動創建的設備對象的句柄。
應用程序通過CreateFile()得到USB設備句柄,用Device Control()來進行控制傳輸。在VC環境下開發的主機端的應用程序,實現了設備的打開、關閉、固件下載、端口配置和文件傳輸等功能。界面如圖3所示。

3結語

USB2.0為PC和外部硬件設備之間提供了一種快速-和方便的數據交換方式,本文提供了基于EZ USB FX2的一個很好的解決方案,實現了從底層固件到上層應用程序數據傳輸的整個軟件系統。

參考文獻:

[1].ROMdatasheethttp://www.dzsc.com/datasheet/ROM_1188413.html.
[2].EZ-USBdatasheethttp://www.dzsc.com/datasheet/EZ-USB_305660.html.



評論


相關推薦

技術專區

關閉