新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于TTL串口的嵌入式USB主機系統的設計

        基于TTL串口的嵌入式USB主機系統的設計

        ——
        作者:任愛娟 吳并臻 張鐵壁 時間:2007-06-26 來源:微計算機信息 收藏

        摘要:本文介紹了一種基于TTL串口的嵌入式USB 主機系統。介紹了該系統的硬件實現,以及USB 主機的底層驅動軟件的實現,并簡要介紹其在數據采集系統領域中的應用。

        關鍵字:嵌入式;USB主機;TTL串口;Mass storage類 

        1 引言

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

            本文介紹了一種基于TTL串口的USB主機系統,通過TTL串口(或并口)轉接出USB接口,系統原理圖如圖1所示。嵌入式設備需要通過TTL串口,按照USB主機系統的串口通信協議與USB主機系統進行數據傳輸和通信,主機系統負責優盤的檢測和數據的存儲。本文詳細介紹了該系統的設計思路,并給出了硬件設計和USB 主機的底層驅動軟件的設計方法。

        2  USB主機工作原理

            對于我們設計嵌入式USB主機,可以參照PC上的USB主機。對于PC上的USB主機,其硬件方面

            由一個USB主機接口芯片控制,這個接口芯片在通過PCI總線與PC機通訊,其余還有電源管理部分;軟件方面主要有三部分:USB接口驅動程序,負責CPU與USB主機接口芯片的通訊,負責底層USB包的接收和發送;USB協議棧驅動程序,負責解析設備驅動程序對USB的各種操作命令,并在解碼后發給底層驅動程序;設備驅動程序,也就是上層的應用程序,包括操作系統提供給用戶的API,以及用戶自定義的對USB設備的操作,比如發送設備特有的USB命令請求。PC上的USB主機端軟件結構圖如圖2所示。  

        3.系統結構

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

         3.1 DSP56f803模塊

            系統的核心控制器,包括基本硬件和編寫的固件。實現的功能包括:實現與UHC124的物理連接和通訊,并且配置UHC124的控制寄存器;配置USB外設,實現USB通信,實現USB Host要求的各項配置和數據傳輸的要求,接受USB Host的命令來管理USB外設;實現FAT16文件系統。{{分頁}}

         3.2 UHC124模塊

            USB HOST控制器的硬件部分。實現USB Host的接口,配置下行USB設備,管理USB總線電源。實現的功能包括:實現各種USB Host動作,協調內容各項功能,與外圍主控制器通訊;存放傳輸的USB數據,設置USB傳輸特性;與作為主控制器的DSP56f803接口連接;管理USB電源,連接下行USB設備,總共帶有4個下行USB設備端口。

        3.3 UART串口模塊

            與用戶通過串口進行協議通訊的固件部分。實現自定義的串口通訊協議,即根據自定義的串口通訊協議,解析串口通訊數據包,調用相應的文件操作接口函數,實現客戶的文件操作命令。

        4.硬件設計

        4.1硬件架構

            硬件主要模塊包括USB HOST、主控芯片、外部SRAM、譯碼指示和電源部分。主控芯片和USB HOST芯片連接,控制USB HOST芯片與移動存儲盤通訊。考慮到需要給用戶預留數據Buffer,所以外擴SRAM。因為芯片工作電源不同,所以要提供兩組直流電源,譯碼指示電路采用3個LED指示燈,一個電源指示,一個指示移動存儲盤的接入,另一個指示了工控機與移動存儲盤通訊工作中。

        4.2 USB主控芯片的選型

            對于主控芯片的選型應該會有多種選擇,只要帶有UART接口,程序存儲空間足夠,程序的執行效率可以滿足系統的功能需求即可。對于USB主控芯片,目前市面上出現的主要有3種:Sypress公司的SL811、

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

            UHC124與其他兩款芯片的主優勢在于:支持包傳送,最多可一次性傳送16個USB 協議交互數據,而不會向CPU產生中斷,而SL811是每次都會產生中斷,大大占用了CPU的資源;支持所有的USB傳輸

            類型,包括控制傳輸、塊傳輸、中斷傳輸和同步傳輸,且數據包最大可達到1023字節;具有2K的數據存儲區。{{分頁}}

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

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

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

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

        5.   軟件設計

            USB 主機軟件的設計我們可以參照PC的USB 主機來設計。本方案的簡要軟件流程圖如圖5所示。

        5.1 USB接口驅動程序

            主要實現主控芯片DSP56f803與USB主機接口芯片UHC124的通訊,以及底層USB包的接收和發送,

            是實現整個USB體系的基礎。包括如下幾個函數:

        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協議棧驅動程序

           主要實現USB協議定義的標準命令請求,主要包括:

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

            具體的標準設備請求的含義請參考USB 標準協議。USB 主機要在檢測到有USB設備插入時,完成對USB設備的枚舉,之后USB主機和USB設備才可以進入正常的數據包通訊狀態。{{分頁}}

        5.3 USB設備類驅動程序

            移動存儲盤屬于USB協議所定義的設備類中的Mass Storage類,USB 組織定義了海量存儲設備類(Mass

        Storage Class)的規范,這個類規范包括四個獨立的子類規范,即: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。前兩個子規范定義了數據/命令/狀態在USB 上的傳輸方法。Bulk- Only 傳輸規范僅僅使用Bulk 端點傳送數據/命令/狀態,CBI 傳

            輸規范則使用Control/Bulk/Interrupt三種類型的端點進行數據/命令/狀態傳送。后兩個子規范則定義了存儲介質的操作命令。ATA 命令規范用于硬盤,UFI 命令規范是針對USB 移動存儲。因此USB主機需要遵循Mass Storage 協議來組織數據和發送命令,即可實現與移動存儲盤交換數據。

        6.結束語

             嵌入式USB主機的開發,目前在國外也處于剛剛起步的階段,可以提供的USB HOST接口芯片的并不多。作為USB總線研究的另一熱點,嵌入式USB HOST的研究具有一定的先進性和前瞻性。以嵌入式USB 主機為核心的數據采集系統,可以在工業和民用兩個領域得到廣泛的應用,可以帶來可觀的經濟效益和市場前景。 

        參考文獻:
        [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.



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 大埔区| 高碑店市| 察隅县| 都兰县| 招远市| 延川县| 泾源县| 井陉县| 姚安县| 墨脱县| 滨海县| 吉安市| 和田县| 蓬溪县| 新巴尔虎左旗| 建始县| 海城市| 隆回县| 昌平区| 望城县| 定结县| 克山县| 安仁县| 阿克苏市| 常熟市| 宁南县| 华蓥市| 金昌市| 札达县| 西贡区| 玉树县| 顺义区| 桓仁| 麦盖提县| 贞丰县| 琼海市| 浦江县| 东港市| 张掖市| 沈丘县| 闸北区|