當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]本文介紹了一種基于TTL串口的嵌入式USB 主機(jī)系統(tǒng)。介紹了該系統(tǒng)的硬件實(shí)現(xiàn),以及USB 主機(jī)的底層驅(qū)動(dòng)軟件的實(shí)現(xiàn),并簡(jiǎn)要介紹其在數(shù)據(jù)采集系統(tǒng)領(lǐng)域中的應(yīng)用。

摘要:本文介紹了一種基于TTL串口嵌入式USB 主機(jī)系統(tǒng)。介紹了該系統(tǒng)的硬件實(shí)現(xiàn),以及USB 主機(jī)的底層驅(qū)動(dòng)軟件的實(shí)現(xiàn),并簡(jiǎn)要介紹其在數(shù)據(jù)采集系統(tǒng)領(lǐng)域中的應(yīng)用。
關(guān)鍵字:嵌入式;USB主機(jī);TTL串口;Mass storage類 

1 引言

    隨著移動(dòng)存儲(chǔ)業(yè)的發(fā)展及數(shù)碼產(chǎn)品的普及,數(shù)據(jù)采集系統(tǒng)、工控行業(yè)和嵌入式用戶對(duì)移動(dòng)存儲(chǔ)的需求越來越大,也對(duì)數(shù)據(jù)移動(dòng)存儲(chǔ)盤提出了更高的應(yīng)用要求,包括到地礦數(shù)據(jù)采集行業(yè)用戶、水文系統(tǒng)數(shù)據(jù)采集行業(yè)用戶、儀器儀表制造行業(yè)用戶、鐵路、長(zhǎng)途汽運(yùn)等交通系統(tǒng)數(shù)據(jù)采集用戶、油田數(shù)據(jù)采集系統(tǒng)用戶、單板系統(tǒng)的軟件升級(jí)用戶、紡織系統(tǒng)數(shù)據(jù)采集用戶、銀行等。但由于之前多數(shù)數(shù)據(jù)采集設(shè)備、工控機(jī)及嵌入式系統(tǒng)不具備USB數(shù)據(jù)輸入輸出標(biāo)準(zhǔn)接口,所以在USB數(shù)據(jù)存儲(chǔ)方面一直得不到很好的普及。業(yè)界和用戶的需求使得嵌入式USB主機(jī)的研究成為USB研究領(lǐng)域的一個(gè)新的方向。

    本文介紹了一種基于TTL串口的USB主機(jī)系統(tǒng),通過TTL串口(或并口)轉(zhuǎn)接出USB接口,系統(tǒng)原理圖如圖1所示。嵌入式設(shè)備需要通過TTL串口,按照USB主機(jī)系統(tǒng)的串口通信協(xié)議與USB主機(jī)系統(tǒng)進(jìn)行數(shù)據(jù)傳輸和通信,主機(jī)系統(tǒng)負(fù)責(zé)優(yōu)盤的檢測(cè)和數(shù)據(jù)的存儲(chǔ)。本文詳細(xì)介紹了該系統(tǒng)的設(shè)計(jì)思路,并給出了硬件設(shè)計(jì)和USB 主機(jī)的底層驅(qū)動(dòng)軟件的設(shè)計(jì)方法。

2  USB主機(jī)工作原理

    對(duì)于我們?cè)O(shè)計(jì)嵌入式USB主機(jī),可以參照PC上的USB主機(jī)。對(duì)于PC上的USB主機(jī),其硬件方面

    由一個(gè)USB主機(jī)接口芯片控制,這個(gè)接口芯片在通過PCI總線與PC機(jī)通訊,其余還有電源管理部分;軟件方面主要有三部分:USB接口驅(qū)動(dòng)程序,負(fù)責(zé)CPU與USB主機(jī)接口芯片的通訊,負(fù)責(zé)底層USB包的接收和發(fā)送;USB協(xié)議棧驅(qū)動(dòng)程序,負(fù)責(zé)解析設(shè)備驅(qū)動(dòng)程序?qū)?/SPAN>USB的各種操作命令,并在解碼后發(fā)給底層驅(qū)動(dòng)程序;設(shè)備驅(qū)動(dòng)程序,也就是上層的應(yīng)用程序,包括操作系統(tǒng)提供給用戶的API,以及用戶自定義的對(duì)USB設(shè)備的操作,比如發(fā)送設(shè)備特有的USB命令請(qǐng)求。PC上的USB主機(jī)端軟件結(jié)構(gòu)圖如圖2所示。  

3.系統(tǒng)結(jié)構(gòu)

    整個(gè)系統(tǒng)的核心芯片選用Motorola公司的DSP56f803和TDI公司的USB HOST控制器UHC124。整個(gè)系統(tǒng)由DSP56f803模塊、UHC124模塊、UART串口模塊。

 3.1 DSP56f803模塊

    系統(tǒng)的核心控制器,包括基本硬件和編寫的固件。實(shí)現(xiàn)的功能包括:實(shí)現(xiàn)與UHC124的物理連接和通訊,并且配置UHC124的控制寄存器;配置USB外設(shè),實(shí)現(xiàn)USB通信,實(shí)現(xiàn)USB Host要求的各項(xiàng)配置和數(shù)據(jù)傳輸?shù)囊?,接?/SPAN>USB Host的命令來管理USB外設(shè);實(shí)現(xiàn)FAT16文件系統(tǒng)。

 3.2 UHC124模塊

    USB HOST控制器的硬件部分。實(shí)現(xiàn)USB Host的接口,配置下行USB設(shè)備,管理USB總線電源。實(shí)現(xiàn)的功能包括:實(shí)現(xiàn)各種USB Host動(dòng)作,協(xié)調(diào)內(nèi)容各項(xiàng)功能,與外圍主控制器通訊;存放傳輸?shù)?/SPAN>USB數(shù)據(jù),設(shè)置USB傳輸特性;與作為主控制器的DSP56f803接口連接;管理USB電源,連接下行USB設(shè)備,總共帶有4個(gè)下行USB設(shè)備端口。

3.3 UART串口模塊

    與用戶通過串口進(jìn)行協(xié)議通訊的固件部分。實(shí)現(xiàn)自定義的串口通訊協(xié)議,即根據(jù)自定義的串口通訊協(xié)議,解析串口通訊數(shù)據(jù)包,調(diào)用相應(yīng)的文件操作接口函數(shù),實(shí)現(xiàn)客戶的文件操作命令。

4.硬件設(shè)計(jì)

4.1硬件架構(gòu)

    硬件主要模塊包括USB HOST、主控芯片、外部SRAM、譯碼指示和電源部分。主控芯片和USB HOST芯片連接,控制USB HOST芯片與移動(dòng)存儲(chǔ)盤通訊??紤]到需要給用戶預(yù)留數(shù)據(jù)Buffer,所以外擴(kuò)SRAM。因?yàn)樾酒ぷ麟娫床煌?,所以要提供兩組直流電源,譯碼指示電路采用3個(gè)LED指示燈,一個(gè)電源指示,一個(gè)指示移動(dòng)存儲(chǔ)盤的接入,另一個(gè)指示了工控機(jī)與移動(dòng)存儲(chǔ)盤通訊工作中。

4.2 USB主控芯片的選型

    對(duì)于主控芯片的選型應(yīng)該會(huì)有多種選擇,只要帶有UART接口,程序存儲(chǔ)空間足夠,程序的執(zhí)行效率可以滿足系統(tǒng)的功能需求即可。對(duì)于USB主控芯片,目前市面上出現(xiàn)的主要有3種:Sypress公司的SL811、

    Philips公司的ISP1161和TDI公司的UHC124。其中,SL811較為常見,筆者也曾用過此芯片進(jìn)行過第一代產(chǎn)品的開發(fā),綜合各方面的選型因素考慮,第二代產(chǎn)品選用了UHC124。

    UHC124與其他兩款芯片的主優(yōu)勢(shì)在于:支持包傳送,最多可一次性傳送16個(gè)USB 協(xié)議交互數(shù)據(jù),而不會(huì)向CPU產(chǎn)生中斷,而SL811是每次都會(huì)產(chǎn)生中斷,大大占用了CPU的資源;支持所有的USB傳輸

    類型,包括控制傳輸、塊傳輸、中斷傳輸和同步傳輸,且數(shù)據(jù)包最大可達(dá)到1023字節(jié);具有2K的數(shù)據(jù)存儲(chǔ)區(qū)。

4.3主控芯片與USB HOST相連的接口電路

    UHC124支持兩種存儲(chǔ)器訪問模式,取決于MODE引腳的電平高低。如果主控芯片沒有外部總線,需

    采用模式0;如果主控芯片有獨(dú)立或復(fù)用的數(shù)據(jù)地址總線,采用模式1。本方案所選的主控芯片DSP56f803

    具有獨(dú)立的地址數(shù)據(jù)總線,因此采用UHC124的工作模式1。接口電路如下圖4所示:

5.   軟件設(shè)計(jì)

    USB 主機(jī)軟件的設(shè)計(jì)我們可以參照PC的USB 主機(jī)來設(shè)計(jì)。本方案的簡(jiǎn)要軟件流程圖如圖5所示。

5.1 USB接口驅(qū)動(dòng)程序

    主要實(shí)現(xiàn)主控芯片DSP56f803與USB主機(jī)接口芯片UHC124的通訊,以及底層USB包的接收和發(fā)送,

    是實(shí)現(xiàn)整個(gè)USB體系的基礎(chǔ)。包括如下幾個(gè)函數(shù):

void ReadLengthFromHost(UCHAR ucaddr,UCHAR uclength,UCHAR *pucdata);      

void WriteLengthToHost(UCHAR *pucdata,UCHAR  uclength,UCHAR ucaddr);

UCHAR OutBulkData(ULONG ullength,UCHAR *pucptr);

UCHAR InBulkData(ULONG ullength,UCHAR *pucptr);

5.2 USB協(xié)議棧驅(qū)動(dòng)程序

   主要實(shí)現(xiàn)USB協(xié)議定義的標(biāo)準(zhǔn)命令請(qǐng)求,主要包括:

ClearFeature(),GetConfiguration(),GetDescriptor(),GetInmterface(),GetStatus(),SetAddress(),SetConfiguration(),SetDescriptor(),SetFeature(),SetInterface()。

    具體的標(biāo)準(zhǔn)設(shè)備請(qǐng)求的含義請(qǐng)參考USB 標(biāo)準(zhǔn)協(xié)議。USB 主機(jī)要在檢測(cè)到有USB設(shè)備插入時(shí),完成對(duì)USB設(shè)備的枚舉,之后USB主機(jī)和USB設(shè)備才可以進(jìn)入正常的數(shù)據(jù)包通訊狀態(tài)。

5.3 USB設(shè)備類驅(qū)動(dòng)程序

    移動(dòng)存儲(chǔ)盤屬于USB協(xié)議所定義的設(shè)備類中的Mass Storage類,USB 組織定義了海量存儲(chǔ)設(shè)備類(Mass

Storage Class)的規(guī)范,這個(gè)類規(guī)范包括四個(gè)獨(dú)立的子類規(guī)范,即:1. USB Mass Storage Class

Control/Bulk/Interrupt (CBI) Transport 2. USBMass Storage Class Bulk-Only Transport 3. USB MassStorage

Class ATA Command Block 4.USB Mass Storage Class UFI Command Specification。前兩個(gè)子規(guī)范定義了數(shù)據(jù)/命令/狀態(tài)在USB 上的傳輸方法。Bulk- Only 傳輸規(guī)范僅僅使用Bulk 端點(diǎn)傳送數(shù)據(jù)/命令/狀態(tài),CBI 傳

    輸規(guī)范則使用Control/Bulk/Interrupt三種類型的端點(diǎn)進(jìn)行數(shù)據(jù)/命令/狀態(tài)傳送。后兩個(gè)子規(guī)范則定義了存儲(chǔ)介質(zhì)的操作命令。ATA 命令規(guī)范用于硬盤,UFI 命令規(guī)范是針對(duì)USB 移動(dòng)存儲(chǔ)。因此USB主機(jī)需要遵循Mass Storage 協(xié)議來組織數(shù)據(jù)和發(fā)送命令,即可實(shí)現(xiàn)與移動(dòng)存儲(chǔ)盤交換數(shù)據(jù)。

6.結(jié)束語(yǔ)

     嵌入式USB主機(jī)的開發(fā),目前在國(guó)外也處于剛剛起步的階段,可以提供的USB HOST接口芯片的并不多。作為USB總線研究的另一熱點(diǎn),嵌入式USB HOST的研究具有一定的先進(jìn)性和前瞻性。以嵌入式USB 主機(jī)為核心的數(shù)據(jù)采集系統(tǒng),可以在工業(yè)和民用兩個(gè)領(lǐng)域得到廣泛的應(yīng)用,可以帶來可觀的經(jīng)濟(jì)效益和市場(chǎng)前景。 

參考文獻(xiàn):
[1] MOTOROLA  DSP56f803 Technical Data [z],   2002
[2] UHC124 Datasheet V1.05 [z].  TransDimension Inc,  2001
[3]Open Host Controller Interface Specification for USB[z]. Compaq, microsoft,National Semiconductor ,  1999
[4]USB Specification 1.1[z], 1998.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉