關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于USB接口設備的固件程序設計

        基于USB接口設備的固件程序設計

        作者: 時間:2009-12-29 來源:網絡 收藏

        一、 引言
        是應用在PC領域中的新型接口技術,它由三部分組成:具有接口的PC系統,能夠支持的系統軟件和使用USB接口的設備。它的提出是基于采用通用連接技術,實現外設的簡單快速連接,達到方便用戶、降低成本、擴展PC連接外設范圍的目地。它的最顯著優點是支持熱插拔,當用戶插入USB外設后,計算機能夠自動識別接入的外設,而不需要重新啟動系統。
        二、USB設備硬件結構
        為了提高系統的可擴展性,也便于選擇高性能的單片機,以實現更多的功能,我們使用較為廣泛的Philip公司的單純的接口芯片PDIUSBD12。下面介紹USB設備硬件的相關情況。
        1. PDIUSBD12芯片的內部結構
        芯片內部集成SIE、320B的FIFO緩存、收發器以及電壓調整電路和終結電阻器,提供2MB/s速率的并行接口,具有全自治本地DMA功能,芯片提供的多重中斷模式有利于批量和等時數據傳輸模式。芯片還提供了可編程時鐘、上電復位和低電壓復位電路。
        2. PDIUSBD12芯片的控制字
        D12的控制字分為初始化命令、數據流命令和通用命令三種基本類型。在USB 設備列舉過程中使用初始化命令,這些命令用來啟動設備、設置地址、端點和工作模式。數據流命令用于管理USB 和單片機之間的數據流。很多數據流是通過一個發給單片機的中斷請求開始的。控制器使用數據流命令來存取數據,確認在FIFO中的數據是否有效。通用命令主要在數據傳輸過程中使用,包括恢復和讀取當前幀號。
        3. PDIUSBD12 與單片機的連接
        以PDIUSBD12和89C52單片機之間的連接如圖所示,ALE接到單片機的ALE上,使用地址總線復用方式。A0通過電阻接VCC。VCC接+5V,VOUT3.3通過電容接地,同時腳20RESET_N和腳18DMACK_N接高電平。GND接地。8根數據線接至數據總線。腳11CS_N端接至控制器或譯碼器的相應端, PDIUSBD12可以通過CS_N端,映射為控制器的任何地址。腳14中斷接至控制器的中斷線,并用電阻拉高。XTAL1和XTAL2接6MHZ晶振,EOT_N拉高,D-、D+分別接到USB 總線的D-、D+上。在實際產品中,腳21GL_N可接LED顯示設備狀態。

        本文引用地址:http://www.104case.com/article/202578.htm


        三、USB設備固件的設計
        固件的設計要求非常熟悉USB設備的具體通信步驟以及單片機的指令系統。
        1. 固件介紹
        PDIUSBD12是一種高速并行總線的USB,支持本地DMA傳輸.固件設計的目標是使D12在USB上能達到最快的傳輸率。外圍設備如打印機等使用D12傳送大量的數據。這些設備中的CPU忙于處理許多任務象設備控制,數據和圖象處理。D12的固件設計成完全的中斷驅動模式。當CPU在處理前臺任務時,USB傳輸在后臺被處理。這保證了最好的傳輸率和較好的軟件結構,簡化了編程和調試。
        在后臺中斷服務程序和前臺主程序之間的數據交換是通過標志和數據緩沖區來實現的。例如, D12主要的大量輸出端點用一個圓形的數據緩沖區。當D12從USB接收到數據封包,就向CPU產生一個中斷請求,CPU會馬上執行中斷服務程序。在中斷服務程序內部,固件把數據封包從D12的內部緩沖區送到圓形緩沖區,然后清除PDIUSBD12的內部緩沖區使它能接收下一個新的數據包。CPU能繼續執行當前前臺的任務直到完成。然后它返回到主循環,檢查圓形緩沖區是否有新的數據,開始另外一個前臺任務。
        使用這種結構,主函數不關心數據源是來自USB設備,串行口還是并行口。主函數只檢查圓形緩沖區是否有新數據需要處理。因此,主函數將目標定為數據處理,而中斷服務程序做的工作是以可能的最快速度傳送數據。類似地,控制端點在數據封包處理上使用了同樣的概念。中斷服務程序在數據緩沖區里接收和存儲控制傳輸內容并設置相應的標志寄存器。主函數將發送請求到協議處理程序。一旦所有的標準設備,類,和用戶請求在協議處理程序處理了,中斷服務程序就能保持它的效率。
        2. 固件結構和任務
        1) 固件結構
        固件由6部分組成,它們如下: 主程序:發送USB設備請求,讀測試鍵,控制發光二極管,處理USB總線事務,等等、標準請求、用戶請求、中斷服務程序、PDIUSBD12命令接口、硬件層。下面依次簡略介紹:


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 滁州市| 东乌珠穆沁旗| 集贤县| 滁州市| 武穴市| 南昌县| 乐亭县| 公安县| 沾化县| 平山县| 九龙坡区| 锡林浩特市| 时尚| 东城区| 会宁县| 邢台市| 江都市| 宜都市| 淄博市| 沁源县| 永年县| 华宁县| 濉溪县| 吉木萨尔县| 专栏| 广元市| 黑龙江省| 大同县| 乃东县| 虹口区| 河池市| 山西省| 诸暨市| 武胜县| 英超| 肥乡县| 婺源县| 新余市| 海口市| 崇州市| 兴义市|