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