基于μC/OS-Ⅱ的USB OHCI主機協議棧的實現
發布時間:2020-12-10 12:44
通用串行總線(USB)是一種計算機外圍串行通信接口標準,已經成為現代計算機必備的接口之一。開放主機控制器接口(OHCI)是一個在嵌入式系統中得到廣泛應用的USB主機控制器接口規范。μC/OS-Ⅱ是一個簡單高效的嵌入式實時操作系統;讦藽/OS-Ⅱ的USB OHCI主機協議棧占用系統資源少,適合應用在資源緊張的嵌入式系統中,為產品提供USB設備接入功能。目前已有的USBOHCI主機協議棧在功能、資源占用、成本和可維護性等方面通常不能滿足商業化產品的需要。本文在AT91SAM9260硬件平臺上實現了一個較完整的基于μC/OS-Ⅱ操作系統的USB OHCI主機協議棧。首先進行了總體設計和模塊劃分,然后進行了主機控制器驅動模塊、USB驅動模塊和類驅動模塊的設計和實現。在主機控制器驅動模塊中,通過對主機控制器的管理和控制,實現了USB底層數據傳送功能。在USB驅動模塊中,實現了USB通信功能和USB設備管理功能。在類驅動模塊中,實現了大容量存儲類協議和人機接口設備類協議。最后,搭建了一個測試平臺,設計了一系列測試用例,驗證了主機協議棧的有效性。實驗結果表明,該USBOHCI主機協議棧的可行性和...
【文章來源】:西安電子科技大學陜西省 211工程院校 教育部直屬院校
【文章頁數】:71 頁
【學位級別】:碩士
【部分圖文】:
基于μC/OS-II 的 USB OHCI 主機協議棧的實現控制器驅動首先定位目標端點的 ED,然后根據 USB 驅動傳過 TD,插入到 ED 的 TD 隊列中,最后提交給主機控制器處理。控制傳送的處理比較簡單,只要把 URB 定義的數據分割成多 ED 的 TD 隊列中就可以了。傳送的情況有些特殊。如圖 4.7 所示,控制傳送分為三個階段 STATUS。在 SETUP 階段,主機向設備發送一個控制命令包(備請求)。在可選的 DATA 階段,主機和設備之間傳送零個或TATUS 階段,主機和設備之間傳送一個零字節的數據包,方向據傳送方向相反(對于沒有 DATA 階段的情況,方向為輸入)可以清楚地看出算法對控制傳送的處理情況:DATA 階段使用ETUP 階段和 STATUS 階段分別使用一個 TD。
圖 5.4 設備熱拔插處理流程設備熱拔插事件的處理過程分為以下幾步:1. 事件檢測:驅動監視集線器的狀態,當集線器產生狀態改變事件指向集線器 USB 設備對象的指針發送到消息隊列。主機控制器驅監視根集線器,集線器驅動負責監視所有的普通集線器。2. 事件源確認:USB 主任務從消息隊列中取消息,判斷事件來自于線器設備。3. 事件處理:USB 主任務調用集線器驅動提供的事件處理程序處理設備產生的“連接狀態改變”事件,判斷事件類型,如果是“設事件”,向系統添加設備,反之,如果是“設備拔出”事件,則把系統中刪除。4. 重新開始事件檢測:對于除根集線器之外的其它普通集線器,US務向其狀態改變端點提交輪詢 URB,重新啟動集線器的事件檢測使集線器驅動繼續監視集線器的狀態。根集線器的事件檢測通過斷實現,不需要這一步驟。
【參考文獻】:
期刊論文
[1]USB設備啟動過程的分析與實現[J]. 張國云. 現代電子技術. 2005(23)
[2]Open HCI for USB淺析[J]. 朱良. 計算機工程與科學. 2005(09)
[3]基于Mass Storage協議的USB接口設計[J]. 田奕. 電子器件. 2005(03)
碩士論文
[1]USB OHCI主機協議棧設計及移植[D]. 李大鵬.東北大學 2009
[2]嵌入式下的USB協議棧設計與實現[D]. 阮寅.電子科技大學 2006
本文編號:2908715
【文章來源】:西安電子科技大學陜西省 211工程院校 教育部直屬院校
【文章頁數】:71 頁
【學位級別】:碩士
【部分圖文】:
基于μC/OS-II 的 USB OHCI 主機協議棧的實現控制器驅動首先定位目標端點的 ED,然后根據 USB 驅動傳過 TD,插入到 ED 的 TD 隊列中,最后提交給主機控制器處理。控制傳送的處理比較簡單,只要把 URB 定義的數據分割成多 ED 的 TD 隊列中就可以了。傳送的情況有些特殊。如圖 4.7 所示,控制傳送分為三個階段 STATUS。在 SETUP 階段,主機向設備發送一個控制命令包(備請求)。在可選的 DATA 階段,主機和設備之間傳送零個或TATUS 階段,主機和設備之間傳送一個零字節的數據包,方向據傳送方向相反(對于沒有 DATA 階段的情況,方向為輸入)可以清楚地看出算法對控制傳送的處理情況:DATA 階段使用ETUP 階段和 STATUS 階段分別使用一個 TD。

圖 5.4 設備熱拔插處理流程設備熱拔插事件的處理過程分為以下幾步:1. 事件檢測:驅動監視集線器的狀態,當集線器產生狀態改變事件指向集線器 USB 設備對象的指針發送到消息隊列。主機控制器驅監視根集線器,集線器驅動負責監視所有的普通集線器。2. 事件源確認:USB 主任務從消息隊列中取消息,判斷事件來自于線器設備。3. 事件處理:USB 主任務調用集線器驅動提供的事件處理程序處理設備產生的“連接狀態改變”事件,判斷事件類型,如果是“設事件”,向系統添加設備,反之,如果是“設備拔出”事件,則把系統中刪除。4. 重新開始事件檢測:對于除根集線器之外的其它普通集線器,US務向其狀態改變端點提交輪詢 URB,重新啟動集線器的事件檢測使集線器驅動繼續監視集線器的狀態。根集線器的事件檢測通過斷實現,不需要這一步驟。
【參考文獻】:
期刊論文
[1]USB設備啟動過程的分析與實現[J]. 張國云. 現代電子技術. 2005(23)
[2]Open HCI for USB淺析[J]. 朱良. 計算機工程與科學. 2005(09)
[3]基于Mass Storage協議的USB接口設計[J]. 田奕. 電子器件. 2005(03)
碩士論文
[1]USB OHCI主機協議棧設計及移植[D]. 李大鵬.東北大學 2009
[2]嵌入式下的USB協議棧設計與實現[D]. 阮寅.電子科技大學 2006
本文編號:2908715
本文鏈接:http://www.malleg.cn/kejilunwen/jisuanjikexuelunwen/2908715.html

