<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式系統(tǒng)中USB主機控制器的設(shè)計

          嵌入式系統(tǒng)中USB主機控制器的設(shè)計

          作者: 時間:2009-12-16 來源:網(wǎng)絡(luò) 收藏

          過去僅應(yīng)用于個人計算機,而在領(lǐng)域的巨大潛力還沒有開發(fā)出來,中的應(yīng)用包括KVM開關(guān)、數(shù)碼相機、PDA、打印機、機頂盒以及移動電話等。本文將介紹在中應(yīng)用時其

          本文引用地址:http://www.ex-cimer.com/article/152226.htm

          嵌入式系統(tǒng)被定義為硬件和固件(獨立的或作為更大型系統(tǒng)的一部分)通常帶有某種操作系統(tǒng),操作系統(tǒng)可以是Windows CE、VxWorks或其它由“自編代碼”構(gòu)成的更簡單系統(tǒng)。根據(jù)這樣的定義,可以認為任何帶有處理器的電子裝置均可以作為USB嵌入式。

          嵌入式系統(tǒng)挑戰(zhàn)

          在基于PC的系統(tǒng)中,USB操作一般需要三種部件,分別是通常作為PCI子系統(tǒng)的、USB堆棧以及USB類驅(qū)動器。

          主機是集成主板芯片組的一部分,USB堆棧則包含主板芯片及通用主機控制器接口(UCHI)和開放主機控制器接口(OHCI)驅(qū)動程序以及USB驅(qū)動程序(usbd.sys),在PC上實現(xiàn)USB需要上述領(lǐng)域的專門技術(shù)。

          在嵌入式USB系統(tǒng)中,其主要組成部分與PC系統(tǒng)類似,如嵌入式主機控制器芯片、帶OHCI堆棧的實時操作系統(tǒng)(RTOS)以及專用驅(qū)動程序。現(xiàn)有很多可供選擇的主機控制器芯片,有些帶有處理器,有些則是基于寄存器的,對器件的選擇將影響到其下面兩層。

          很多公司都可提供RTOS,最好選擇一個能配合在一起工作的處理器和RTOS,然后在其上添加應(yīng)用代碼。如果沒有真正的RTOS,某些控制器則用一個“框架”,可在其上構(gòu)造應(yīng)用程序。我們后面將介紹這種框架以及如何在上面構(gòu)建應(yīng)用。

          在PC上實現(xiàn)USB具有非常豐富的可用資源,包括高達512MB的存儲器、20-60GB的硬盤以及2GHz或更快的微處理器。此外,多年來Windows、MAC OS以及Unix等操作系統(tǒng)也一直支持USB,而且世界上還有成千上萬的工程師在基于PC的USB應(yīng)用程序和設(shè)備驅(qū)動程序。而對嵌入式系統(tǒng)來說,通常只有不超過64K的存儲器,以及運行于12MHz~33MHz的處理器,且沒有硬盤。由于USB對嵌入式系統(tǒng)相對較新,因此可能只有為數(shù)不多的工程師擁有這方面的經(jīng)驗。

          控制器與框架

          下面我們以賽普拉斯EZ-Host為例介紹嵌入式系統(tǒng)USB控制器與框架結(jié)構(gòu)。EZ-Host有兩個“串行接口引擎”,每個引擎包含兩個USB端口,因此無需使用額外硬件EZ-Host便可控制四個USB設(shè)備。

          EZ-Host器件具有固件結(jié)構(gòu),可管理大多數(shù)USB主機的詳細請求。該結(jié)構(gòu)另一個特點是支持網(wǎng)絡(luò)集線器。鍵盤/集線器組合在一起常常帶來這樣的問題,即它究竟是帶有集線器的鍵盤還是帶有鍵盤的集線器?答案應(yīng)該是帶有鍵盤的集線器。因此要了解集線器后面的鍵盤,還需要提供集線器支持。幸好,這里的框架代碼包含了對集線器的支持。

          EZ-Host框架包含所有實現(xiàn)USB主機功能所必需的固件,包括任務(wù)調(diào)度、設(shè)備枚舉、帶寬分配以及功率管理。另外應(yīng)用程序作為固件的一部分,控制專用USB設(shè)備并將其數(shù)據(jù)傳遞給最終應(yīng)用。

          框架的核心是TD處理器。TD處理器的運行基于一種稱為“任務(wù)描述器(TD)”的數(shù)據(jù)結(jié)構(gòu),使用其信息與USB硬件尤其是“串行接口引擎(SIE)”進行通信。需要注意的是每個SIE控制兩個端口,而且每個SIE具有一個TD處理器。EZ-Host框架使用了多種數(shù)據(jù)結(jié)構(gòu)實現(xiàn)其操作,這些結(jié)構(gòu)包括TD和USB請求模塊(URB)。

          任務(wù)描述器是傳遞給硬件的數(shù)據(jù)結(jié)構(gòu),包含特定硬件接口(如SIE)和端口編號的數(shù)據(jù)字段、終點數(shù)、收發(fā)數(shù)據(jù)緩沖器長度、數(shù)據(jù)包ID編碼以及URB結(jié)構(gòu)指示器。

          URB含有TD所需的邏輯信息,該邏輯信息包括USB設(shè)備緩沖器、安裝軟件包以及USB設(shè)備結(jié)構(gòu)指示器。

          進行USB事務(wù)處理時,URB帶有事務(wù)處理分配及其裝入的數(shù)據(jù)結(jié)構(gòu),而后URB提交給TD處理器,TD處理器再將URB加入TD列表??臻e時,TD處理器處理TD列表,安排傳輸時序,并將設(shè)定好的TD傳送給EZ-Host硬件進行處理。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();