色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于USB HOST技術實現嵌入式讀寫優盤的系統設計

電子設計 ? 來源:單片機與嵌入式系統應用 ? 作者:張玘,金光虎,馮 ? 2020-05-28 08:04 ? 次閱讀

本文以USB HOST技術為核心,介紹USB HOST技術在單片機上的實現。,重點介紹USB HOST技術在嵌入式系統讀寫優盤上的應用。

1、 USB HOST技術簡介

USB的通信可以用圖1表示。圖1中,左半部分為USB主機端,可以看出,USB主機端由兩部分構成,即軟件體和硬件體。實際上是三個軟件組件組成了USB HOST解決方案,即USB客戶驅動程序、USB驅動程序和USB主機控制器驅動程序。應用程序的事務處理是由USB客戶驅動程序(設備驅動程序)啟動時,客戶驅動程序把USB設備當作一個可以被訪問的端點集合,它可以被控制并與它的功能單元進行通信。USB系統軟件包括USB驅動程序和USB主控制器驅動程序,USB驅動程序負責配置管理、用戶管理、總線管理和數據傳輸管理;以及數據的位編碼、封包、循環校驗、發送、錯誤處理等。

基于USB HOST技術實現嵌入式讀寫優盤的系統設計

2 、基于ISP1161控制器USB HOST的實現原理

USB控制器大致分為三類:第一類是支持1.0協議的,這類已經很少見了;第二類是支持1.1協議的控制器;第三類是支持2.0協議的控制器。根據不同場合,后兩種應用比較廣泛,2.0接口主要用在計算機上,依靠操作系統實現數據高速傳輸。支持1.1協議的芯片除了用于計算機上,還有少數是為嵌入式系統中實現USB HOST而設計的。如Cypress的SL811、Philips的ISP1160、ISP1161等。

USB主機端的硬件部分是由處理器、USB-HOST控制器和根集線器組成,圖2是由微控制器MSP430F149和USB控制器ISP1161實現USB HOST的電路原理。圖2分為4個部分:微處理器、USB控制器、電源管理模塊和USB接口電路。從概念上還應有一個USB根集線器(USB Hub),實際根集線器被集成在USB HOST控制器中。

ISP1161是Philips設計的USB主機/設備控制器。內部有1個USB主機控制器和1個設備控制器,符合USB2.0協議,支持全速和低速傳輸。主機和設備控制器共享相同的接口總線,帶有2個USB下行端口和1個USB上行端口。圖2中使用接口1作為HOST下行端口。每個下行端口有各自的過流檢測電路,圖2中使用PHP109檢測端口供電電流

高于500mA將停止對總線供電。

MSP430和ISP1161的數據傳輸可以通過PIO(程控輸入輸出)方式或DMA(直接存儲器訪問)方式進行傳輸,在ISP1161進入工作狀態前,要進行一系列初始化,包括檢測器、復位控制器、初始化硬件配置、設置中斷、設置Buffer(緩沖區)大小等。使ISP1161的主機控制器處于工作狀態,真正用于發送到總線的數據被放置于ISP1161內部的緩沖區內。

這時值得一提的是“傳輸描述符”這個概念,它是ISP1161工作的核心概念。在緩沖區內放置的數據是以傳輸描述符為單位,傳輸描述符作用是描述了本次傳輸需要完成的任務。描述符分為描述符頭和描述符負載數據。描述符頭表征了這個描述符的傳輸類型、封包最大寬度、傳輸速度、傳輸對象、傳輸端點、負載數據的長度等。傳輸描述符的另一個作用體現在傳輸后。每次傳輸執行完畢后,傳輸描述符的內容會有相應的改變,體現在傳輸描述符頭中,表征了本次傳輸的結果,包括傳輸了多少字節,傳輸中發生了什么錯誤等。

3、 USB主機端對設備的枚舉

從USB設備插入接口開始到客戶驅動程序能夠使用該設備還有一段路徑,這一段就被稱作為設備的識別過程,又成為枚舉過程。枚舉過程是任何USB設備使用前必經的過程。USB主機端需要知道這是一個低速設備還是全速設備,需要知道這個設備具有的能力,以便載入相應的設備驅動程序,下面具體介紹一下實現步驟。

首先,捕捉設備的插入。USB設備是即插即用設備,系統在設備插入的瞬間要捕捉到這一信息,ISP1161是通過內部的Hub完成這一任務的。Hub端口的兩根信號線(D+和D-)的每一根都有一個子15kΩ的下拉電阻,而一個設備在D+(全速設備)或D-(低速設備)上有一個1.5kΩ的上拉電阻。當設備插入到一個端口時,設備的上位電阻信號為高。Hub以此檢測到一個設備已連接上了,并報告給主機控制器,然后,在與處理器的接口上產生中斷。主機知道后,通過讀取Hub相關寄存器來了解諸如設備速度等更多信息。

而后,Hub重新設置該設備。當主機知道有一新設備時,主機給Hub相關寄存器寫命令,讓Hub來重新設置端口。Hub使設備的USB數據線處在重啟狀態(D+和D-均為邏輯低)至少10ms,當Hub釋放了重啟狀態,設備就處在默認狀態了(D+和D-均為邏輯低)至少10ms,當Hub釋放了重啟狀態,設備就處在默認狀態了(設備的USB寄存器已經處在它們的默認狀態)。此時,設備已準備發通過Endpoint 0的默認流程來響應控制流程。

最后,主機通過控制傳輸通道完成設備的枚舉。主機端先送一個Get_Descriptor(獲取描述符)請求來知道默認流程最大包的大小,主機發送請求給設備地址0,端點0。然后通過發送一個Set_Address(設定地址)請求來分配一個單獨的地址給設備。設備讀取這個請求,返回一個確認且保存新的地址。知道設備的能力主機給新地址發送一個Get_Descriptor請求來讀取這個設備完整的描述符,包括Endpoint 0最大包的大小,設備支持的配置號,以及該設備的其它信息,主機將這些信息用于往后的通信中。而后發出(Set_configuration)設定配置請求,以該配置號配置設備。設備就完全正確處于可操作狀態。主機此時就可以加載相應的客戶驅動程序,對設備進行操作了。

4 、數據在存儲設備和主機之間的傳輸

下面將以嵌入式系統讀寫優盤為例介紹USB HOST的應用。首先將介紹一下數據在存儲設備和主機之間的傳輸。

除了上面提到的控制(control)傳輸外,還有三種傳輸方式:同步(isochronous)傳輸、中斷(interrupt)傳輸、批量(bulk)傳輸,主機將根據設備的特點決定采用什么傳輸方式。USB存儲設備和USB主機之間的傳輸方式是批量傳輸。為了能夠更詳細的說明問題,先簡要說明一下BULK-ONLY傳輸協議。

USB存儲設備使用的傳輸方式都是批量傳輸方式,一則它不受時間限制;二則能保證數據的完整性。在這種傳輸方式下,有三種類型的數據在USB和設備之間傳送,CBW、CSW和普通數據。圖3描述了主機端數據傳輸的順序,CBW(命令塊封包)是從USB主機發送到設備的命令,USB主機發送到設備的命令,USB設備需要將命令從CBW中提取出來,執行相應的操作。完成以后,向HOST端發出回答,即當前命令執行狀態的CSW(命令狀態封包)。主機根據CSW來決定是否繼續發送下一個CBW或是數據。

從圖3中可以看到數據段被一分之二,一個是數據出,這表示主機發送數據給設備;另一個為數據入,表示主機從設備處得到數據。典型誚就是讀取存儲設備數據和寫入設備數據。下面介紹一下該過程如何在基于ISP1161的嵌入式系統中實現。

主機發送CBW,這個CBW本身作為傳輸描述符的負載數據傳輸到設備。CBW的封包也包括兩個部分,封包頭和命令塊。封包頭表征了數據傳輸方向傳輸的邏輯單元和命令塊長度;命令塊是真正需要實現的命令。根據設備的不同,命令塊使用的命令簇也不一樣,基本上分為兩類,一類是UFI指令集,另一種采用SCSI指令集。

普通數據階段,數據將占據整個傳輸描述的負載數據長度,需要送出的數據在發送前要裝入緩沖區。讀入時,數據在傳輸描述符執行完會自動放入負載數據部分。

CSW階段反映該命令的完成情況,包括CSW標志、還需要傳輸的數據長度、正確返回標志等。

5、 單片機對存儲設備的讀寫

對USB存儲設備的讀寫需要對存儲體的格式有一定了解。當前USB存儲體多數為FAT16和FAT32格式,還有極少數的使用FAT12格式。FAT16多見于優盤,而FAT32多見于移動硬盤。這里簡價介紹優盤普遍采用的一種文件格式:FAT16。對于只有一個分區FAT16格式的優盤,它的結構依次是主引導區(BOOT SECTOR)、隱藏扇區、邏輯盤引導區(BOOT SECTOR)、FAT區、根目錄區、數據區。

主引導區由MBR(Master Boot Record),DPT(Disk Partition Table)和Boot Record ID三部組成。MBR又稱作主引導記錄區,存放系統主引導程序;DPT即主分區表,記錄了磁盤的基本分區信息;Boot Record ID為引導區標志。邏輯分區的Boot SECTOR由已跳轉指令、硬盤分區類型的文本字符名、分區參數塊、擴展的分區參數塊和啟動指令塊組成。FAT(File Allocation Table,文件分配表)、記錄簇的使用情況。根據目錄區中存放目錄項,每個目錄項為32個字節,記錄一個文件或目錄的信息(長文件名例外)。數據區記錄了文件和目錄數據區,位于目錄項所占的最后一個扇區之后,最真正存放文件數據或是子目錄的位置。

文件的讀寫實際上是USB BULK-ONLY Protocol(USB批量傳輸協議)和文件系統協議的具體實現,下面以文件系統為FAT16的設備為例,講述如何讀取一個位于根目錄下名為“read.txt”的文件和在該目錄下寫入一個名為“write.txt”的文件。

讀取和寫入數據之前,需要了解的該存儲設備的全部信息。包括扇區大小,FAT表長度,簇的大小等。該部分信息可以通過讀取主引導區和邏輯引導區獲得。

讀取文件的時候,大致按如下順序,讀根目錄→讀FAT1→讀數據區,具體步驟如下。首先找到文件名所在的位置,根目錄下的文件和目錄均在根目錄區,每一個目錄或文件項占用32個字節,每次讀取一個扇區,比較數據,沒有則繼續讀下一個扇區,直到找到該文件。在這32個字節中,第26~27字節表征了文件開始簇號,28~31字節表征了文件大小。根據開始簇號,搜索FAT區,找到文件簇鏈,依次讀取對應簇,即可完整的得到文件數據。

寫“write.txt”稍有不同,大致可以按這樣的順序號,寫FAT1→寫FAT2→寫根目錄區→寫數據區。具體來說,先讀取FAT區,搜索可用簇,標記為文件開始簇號,繼續搜索,找到下一可用簇,并在上一可用簇標示(00 00)處寫入該簇號,依次下去,直至寫完簇鏈,并將最后一個簇標志為文件的結束簇。這里需要注意的是:FAT區有兩份,是同樣的內容,寫完了FAT1,將FAT2相應位置寫入同樣的數據。下一步就是寫文件名,在根目標區搜索可用的根目錄項,將文件名、時間、起始扇區、文件大小等寫入該目錄項。這時優盤上已經有了一個名為“write.txt”的文件,但是文件的內部還未寫入,下一步根據文件開始簇號,將文件的內容寫入簇鏈中對應的簇。至此,整個文件的寫入就大功告成。

6 、小結

一個USB HOST要完成的功能因為需求不同,所使用的協議也不盡相同,有的采用中斷傳輸,有的采用同步傳輸。USB主機技術在單片機上的應用主要是針對某一種USB設備或幾種設備,因而單片機上可以只固化某幾種協議。該技術的應用可以使得小型儀器上輕松接入USB外設、擴展系統的功能、提高儀器的使用靈活性。USB主機技術在單片機上的應用會有更廣泛更美好的前景。

責任編輯:gt


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16427

    瀏覽量

    178905
  • 嵌入式
    +關注

    關注

    5089

    文章

    19167

    瀏覽量

    306720
  • usb
    usb
    +關注

    關注

    60

    文章

    7973

    瀏覽量

    265448
收藏 人收藏

    評論

    相關推薦

    嵌入式U盤讀寫模塊USB118

    積, 低功耗的特點。   USB118系列嵌入式U盤讀寫模塊可以嵌入用戶的數據采集系統中, 從而實現
    發表于 07-24 14:46

    嵌入式系統U盤實時啟動技術

    引言  隨著USB技術的發展,優盤在PC機系統上已得到廣泛的應用,基本上取代了軟盤,PC機系統可以實現從
    發表于 09-05 11:36

    嵌入式系統U盤實時啟動技術

    嵌入式實時系統的Bootrom程序即可,將系統的映像文件放在優盤上,實現實時操作系統
    發表于 12-25 19:40

    嵌入式實時系統優盤怎么啟動?

    隨著USB技術的發展,優盤在PC機系統上已得到廣泛的應用,基本上取代了軟盤,PC機系統可以實現從優盤
    發表于 03-11 07:40

    USB- HOST實時數據采集嵌入式模塊的實現

    提出利用SL811HS 和8 位單片機實現USB-Host 實時數據采集嵌入式模塊。該系統的數據傳輸,遵守大規模存儲協議和USB 1.1協議
    發表于 04-15 09:24 ?13次下載

    USB- HOST 實時數據采集嵌入式模塊的實現

    提出利用SL811HS 和8 位單片機實現USB-Host 實時數據采集嵌入式模塊。該系統的數據傳輸,遵守大規模存儲協議和USB 1.1協議
    發表于 05-16 14:57 ?13次下載

    基于ISP1161 的USB HOST 技術應用

    主要介紹如何利用芯片ISP1161 在嵌入式系統實現USB HOST 功能; 基于批量傳輸協議, 講述如何
    發表于 05-18 13:18 ?21次下載

    嵌入式系統USB接口的研究及設計

    本文針對嵌入式系統USB 接口進行了研究,提出了MCU+USB嵌入式USB
    發表于 06-13 11:29 ?15次下載

    嵌入式系統U盤實時啟動技術

    本文給出了實現嵌入式實時系統優盤啟動的嵌入式主機硬件結構、軟件協議棧以及主要程序流程,探討了實現
    發表于 07-20 15:09 ?1760次閱讀

    嵌入式USB MiniHost系統設計與實現

    設計并實現了一個嵌入式USB主機系統的硬件和軟件,用于解決USB設備不能脫離PC主機的問題。并在設計的硬件和軟件基礎上利用
    發表于 04-12 15:04 ?47次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>USB</b> MiniHost<b class='flag-5'>系統</b>設計與<b class='flag-5'>實現</b>

    嵌入式系統USB接口的虛擬示波器的開發與實現

    嵌入式系統USB接口的虛擬示波器的開發與實現
    發表于 10-31 10:28 ?14次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b><b class='flag-5'>USB</b>接口的虛擬示波器的開發與<b class='flag-5'>實現</b>

    嵌入式系統U盤實時啟動技術

    引 言 隨著USB技術的發展,優盤在PC機系統上已得到廣泛的應用,基本上取代了軟盤,PC機系統可以實現從
    發表于 12-01 05:55 ?468次閱讀
     <b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>U盤實時啟動<b class='flag-5'>技術</b>

    USB host嵌入式系統中應用的詳細資料概述

    隨著移動通信技術的飛速發展,人們對設備的移動性需求越來越高,希望移動設備能直接越過PC 與USB 外設通信。文中基于LM3S3749 著重介紹了USB host
    發表于 05-10 11:18 ?17次下載
    <b class='flag-5'>USB</b> <b class='flag-5'>host</b> 在<b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>中應用的詳細資料概述

    實現嵌入式實時系統優盤啟動的可行性探析

    隨著USB技術的發展,優盤在PC機系統上已得到廣泛的應用,基本上取代了軟盤,PC機系統可以實現從優盤
    發表于 02-25 14:14 ?1272次閱讀
    <b class='flag-5'>實現</b><b class='flag-5'>嵌入式</b>實時<b class='flag-5'>系統</b>從<b class='flag-5'>優盤</b>啟動的可行性探析

    采用單片機stc89c516rd+和ch375s芯片實現嵌入式usb-host設計

    基于usb的大容量數據采集系統的設計,主要是要實現嵌入式usb-host。要想設計出能直接讀寫u
    發表于 05-19 09:54 ?4669次閱讀
    采用單片機stc89c516rd+和ch375s芯片<b class='flag-5'>實現</b><b class='flag-5'>嵌入式</b><b class='flag-5'>usb-host</b>設計
    主站蜘蛛池模板: 第一次处破女18分钟免费| 收集最新中文国产中文字幕| 中文字幕亚洲男人的天堂网络| 琪琪see色原网色原网站| 久久理论片迅播影院一级| 黄色小说男男| 狠狠色狠色综合曰曰| 护士WC女子撒尿| 欧美午夜免费观看福利片| 亲胸吻胸添奶头GIF动态图免费| 先锋资源久久| 亚洲 无码 制服 日韩| 亚洲综合色婷婷在线影院| 亚洲综合免费视频| 国产高清亚洲日韩字幕一区| 国产电影三级午夜a影院| 榴莲推广APP网站入口下载安装| 毛片免费观看视频| 暖暖 视频 免费 高清 在线观看| 欧洲xxxxx| 在线播放一区二区精品产| black大战chinese周晓琳| 啊…嗯啊好深男男高h文总受| www亚洲欲色成人久久精品| 国产精品2020观看久久| 欧美日韩精品| 性一交一无一伦一精一品| 草草色| 好男人好资源在线观看| 熟妇内谢69XXXXXA片| 超碰免费碰免费视频| 女人爽到高潮嗷嗷叫视频| 亚洲AV国产国产久青草| 大乳牛奶女在线观看| 欧美精品成人a多人在线观看| 91视频18| 国产学生在线播放精品视频| 美女坐脸vk| 午夜精品国产自在现线拍| 99国产电影| 国产三级精品三级男人的天堂|