亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Cortex-M4ARM 處理器的USB2.0主機(jī)系統(tǒng)設(shè)計(jì)

        2015-09-12 06:42:38王靜嬌翟剛毅楊陽劉劍
        關(guān)鍵詞:枚舉寄存器端口

        王靜嬌,翟剛毅,楊陽,劉劍

        (中國船舶重工集團(tuán)公司 第七二四研究所 信號系統(tǒng)部,南京211153)

        王靜嬌(助理工程師),研究方向?yàn)閿?shù)據(jù)通信;翟剛毅(高級工程師),研究方向?yàn)槔走_(dá)數(shù)字信號處理;楊陽(助理工程師),研究方向?yàn)閿?shù)據(jù)通信電路設(shè)計(jì);劉劍(工程師),主要從事雷達(dá)數(shù)字電路板設(shè)計(jì)。

        引 言

        低功耗、低成本、外圍接口豐富、使用簡單的ARM 處理器,在電子模塊的故障檢測、監(jiān)控和輔助功能中的應(yīng)用越來越廣泛。與ARM 接口的USB外設(shè)(如USB下載電纜、無線通信模塊、人機(jī)交互模塊等)的應(yīng)用也越來越多,這些外設(shè)往往不提供針對ARM 的主機(jī)驅(qū)動程序,需要用戶自行開發(fā)。

        本文以TI公司基于ARM Cortex-M4內(nèi)核的TM4C129 XNCZAD 為 核 心 構(gòu) 建 了USB2.0 主 機(jī) 系 統(tǒng),實(shí) 現(xiàn) 了 與USB2.0設(shè)備的高速數(shù)據(jù)交互。

        1 基于ULPI接口的USB2.0硬件設(shè)計(jì)

        圖1為系統(tǒng)硬件結(jié)構(gòu)框圖,其中核心處理器為TI公司的TM4C129XNCZAD,工作時鐘可達(dá)120 MHz,提供150DMIPS的性能,具有1024KB Flash和256KB 單循環(huán)系統(tǒng)SRAM,支持UART、I2C、CAN、以太網(wǎng)、USB等通信接口并具有豐富的GPIO 口[1],完全滿足USB2.0主機(jī)開發(fā)需求。USB 外置PHY 芯片為SMSC 公司的USB3320,支持高速、全速、低速3種USB通信模式。

        圖1 系統(tǒng)硬件結(jié)構(gòu)框圖

        1.1 ARM 處理器USB模塊

        TM4C129XNCZAD 的USB 控制器支持USB 主機(jī)、設(shè)備、OTG 三種點(diǎn)對點(diǎn)USB通信,符合USB2.0標(biāo)準(zhǔn),支持控制、批量、等時、中斷4種傳輸模式。圖2所示為該芯片的USB模塊結(jié)構(gòu)框圖,該模塊具有16個端口,1對控制端口和7對輸入/輸出端口;4KB專用端口內(nèi)存,端口通道均可以進(jìn)行DMA 傳輸,DMA 控制器可直接訪問FIFO,而無需通過CPU 接口。

        另外,芯片內(nèi)置USB PHY,并設(shè)有ULPI接口,可以通過USBPC.ULPIEN 進(jìn)行設(shè)置選擇。默認(rèn)使用USB內(nèi)置PHY,但僅支持全速或低速通信,通過USB0DM 和USB0DP連接USB電纜。若設(shè)置USBPC.ULPIEN 為1,則使能ULPI接口,連接外部USB PHY 和USB控制器,從而擴(kuò)展為USB2.0。

        1.2 基于ULPI協(xié)議的USB2.0設(shè)計(jì)

        TM4C129XNCZAD處理器中USB模塊內(nèi)部的PHY為USB1.1,為了滿足高速USB 傳輸需求,采用ARM 芯片上預(yù)留的ULPI接口外接PHY 芯片,從USB1.1全速傳輸升級為USB2.0 高速傳輸,本文采用SMSC 公司的USB3320作為ULPI PHY 芯片。

        圖2 TM4C129XNCZAD處理器USB模塊結(jié)構(gòu)框圖

        ULPI(UTMI Low Pin Interface)是低引腳UTMI的簡稱,UTMI(USB2.0 Transceiver Macrocell Interface)為USB2.0的傳輸宏接口。UTMI PHY 主要通過一系列的控制信號來實(shí)現(xiàn)與作為LINK的USB控制器之間的交互,而ULPI將UTMI接口的信號線從32條減少至12條。ARM處理器和PHY 結(jié)合成為USB2.0的主機(jī)端,需要把PHY也配置為host主機(jī)模式,具體電路如圖3所示。ARM 處理器提供了ULPI接口,若ARM 配置為ULPI模式,則ULPI clk引腳能提供60MHz時鐘輸出給PHY芯片。

        圖3 USB模塊硬件連接圖

        2 USB2.0主機(jī)軟件開發(fā)

        軟件的工作流程為:ARM 處理器首先進(jìn)行系統(tǒng)初始化,包括對USB模塊的初始化(即ULPI接口配置等),然后等待USB主控制器的外部中斷,當(dāng)USB設(shè)備連接主機(jī)后,由USB主控制器通過外部中斷信號通知ARM 處理器,ARM 處理器與USB主控制器完成設(shè)備的枚舉、配置,并開始USB數(shù)據(jù)傳輸[2]。

        2.1 ULPI接口配置

        首先,USBULPIEnable()函數(shù)使能ARM 處理器的ULPI接口。ULPI接口的工作模式分為同步模式、低功耗模式、6/3引腳FS/LS串行模式、Carkit模式[3],通過USBULPIConfig()函數(shù)配置PHY 芯片的寄存器,可以使其工作在對應(yīng)模式下。本文中USB3320主要工作在同步模式下。ULPI提供了24 個寄存器,其中功能控制寄存器(Function Control Reg,F(xiàn)CR)用于實(shí)現(xiàn)對PHY 端UTMI功能的基本配置。FCR占用地址0x04h~0x06h,0x04h地址可讀可寫,而0x05h和0x06h地址實(shí)質(zhì)并不存在,只是分別實(shí)現(xiàn)了對寄存器相應(yīng)位的置位和清0 操作。函數(shù)USBULPIRegRead()和USBULPIRegWrite()分別實(shí)現(xiàn)了寄存器的讀寫,具體功能控制寄存器位的描述如表1 所列。FCReg的初始值為0x41h,本文中PHY芯片工作在USB2.0高速模式、正常操作狀態(tài),所以將其設(shè)置為0x40h。

        同步模式中ULPI定義了由LINK 端(ARM)發(fā)出的發(fā)送命令字TX CMD 和PHY 端發(fā)出的接收命令字RX CMD。一個TX CMD為一個字節(jié),包括2位的命令碼和6位的命令負(fù)載碼,ARM 處理器需等到DIR 信號為低電平時才能發(fā)送TX CMD,后接需要傳輸?shù)臄?shù)據(jù),寄存器的讀寫就是通過發(fā)送TX CMD 來實(shí)現(xiàn)的。而RX CMD 體現(xiàn)了線上狀態(tài)(Linestate)、連接、OTG 狀態(tài)信息等,它傳達(dá)給ARM USB接收信息和中斷事件兩種信息。USB接收信息即一次USB傳輸后,PHY 要發(fā)送帶Linestate內(nèi)容的RX CMD來表示EOP(End Of Packet);中斷事件則包括Hostdisconnect、vbus、IdGnd等,當(dāng)檢測到這些事件時,PHY 芯片就會發(fā)送RX CMD給LINK 端。

        表1 功能控制器位描述

        2.2 USB2.0主機(jī)驅(qū)動開發(fā)

        USB主機(jī)模式主要涉及USB驅(qū)動初始化、USB設(shè)備枚舉、USB數(shù)據(jù)傳輸過程。

        (1)USB驅(qū)動初始化

        進(jìn)行USB驅(qū)動初始化,在USB_Init()函數(shù)中先配置USB模塊的引腳,包括ULPI接口引腳類型等,接著使能USB模塊,并通過USBStackModeSet()將其設(shè)置為主機(jī)模式,注冊主機(jī)類驅(qū)動,打開類驅(qū)動實(shí)例[4],然后初始化USB控制器,并使能USB中斷。ARM 的USB模塊初始化成功后,使能ULPI接口,并復(fù)位USB3320設(shè)備,對其進(jìn)行配置。

        (2)USB設(shè)備枚舉

        ARM 作為USB的主機(jī)端,需要周期性地調(diào)用USBHCDMain()監(jiān)聽USB設(shè)備狀態(tài)。當(dāng)USB設(shè)備通過PHY芯片連接上ARM 處理器后,PHY 發(fā)送RXD CMD,從而產(chǎn)生連接中斷事件通知ARM 處理器;ARM 處理器調(diào)用枚舉驅(qū)動對USB設(shè)備進(jìn)行枚舉:先復(fù)位設(shè)備,接著檢測設(shè)備運(yùn)行在低速、全速還是高速模式,再獲取USB設(shè)備描述符并重新分配地址,然后獲取配置、字符串描述符等,最后為設(shè)備驅(qū)動程序選擇配置。

        USB設(shè)備的枚舉主要是主機(jī)通過控制傳輸來實(shí)現(xiàn),每個設(shè)備都支持通過端點(diǎn)0管道完成控制傳輸??刂苽鬏斒怪鳈C(jī)和設(shè)備之間能夠交換有關(guān)設(shè)備能力和類似廠商專有的信息,包括設(shè)置階段、數(shù)據(jù)階段(可無)、狀態(tài)階段。設(shè)置階段由一個設(shè)置事務(wù)構(gòu)成,將整個傳輸確定為控制傳輸,并發(fā)送設(shè)備請求及設(shè)備完成請求所需的其他信息。一個設(shè)置請求包含bmRequestType(1字節(jié))、bRequest(1字節(jié))、wValue(2字節(jié))、wIndex(2字節(jié))、wLength(2字節(jié)),共5個字段、8個字節(jié),用于指示設(shè)備請求類別以及是否具有數(shù)據(jù)階段,具體由USBHCDControlTransfer()函數(shù)實(shí)現(xiàn),流程如圖4所示。

        圖4 控制傳輸流程圖

        (3)USB數(shù)據(jù)傳輸

        批量傳輸可以發(fā)送大量數(shù)據(jù)而不阻塞總線,F(xiàn)PGA 調(diào)試主要涉及到比特流和捕捉的數(shù)據(jù),適合采用批量傳輸。批量傳輸由一個或多個IN 或OUT事務(wù)構(gòu)成,分為批量讀數(shù)據(jù)bulkIn和批量寫數(shù)據(jù)bulkOut。所有的總線傳輸都是傳到設(shè)備端口或者從設(shè)備端口發(fā)送,端口和主機(jī)控制器之間需要建立管道來進(jìn)行數(shù)據(jù)傳輸,這里分別通過IN 和OUT 端口,在枚舉期間也需要分別對每個端口建立管道。函數(shù)USBbulkIn()通過讀取通向IN端口的管道進(jìn)行讀操作,函數(shù)USBbulkOut()則通過OUT端口的管道進(jìn)行寫操作,USBbulkOut()函數(shù)的實(shí)現(xiàn)流程如圖5所示,USBbulkIn()函 數(shù)類似。

        圖5 批量讀流程圖

        結(jié) 語

        本文通過外接USB PHY 擴(kuò)展了TM4C129XNCZAD芯片的USB模塊,并通過編寫USB核心驅(qū)動程序?qū)崿F(xiàn)了USB2.0 設(shè)備的枚舉、數(shù)據(jù)傳輸,完成了基于ARM 的USB2.0的主機(jī)開發(fā)。本系統(tǒng)應(yīng)用在FPGA 遠(yuǎn)程調(diào)試中,可以實(shí)現(xiàn)FPGA 下載電纜在ARM 上的枚舉、數(shù)據(jù)14 傳輸?shù)裙δ?,成功地進(jìn)行FPGA 的加載和調(diào)試,并可以廣泛應(yīng)用于其他USB設(shè)備的連接。

        [1]Texas Instruments Incorporated.Tiva TM4C129XNCZAD Microcontroller Data Sheet,2013:58-61.

        [2]Jan Axelson.USB開發(fā)大全[M].李鴻鵬,譯.北京:人民郵電大學(xué)出版社,2011.

        [3]鄭拓.USB2.0主機(jī)端(ULPI)的FPGA 設(shè)計(jì)[D].太原:太原理工大學(xué),2011.

        [4]李紀(jì)偉.基于ARM 的嵌入式系統(tǒng)研究及USB驅(qū)動程序設(shè)計(jì)[D].成都:電子科技大學(xué),2005.

        猜你喜歡
        枚舉寄存器端口
        基于理解性教學(xué)的信息技術(shù)教學(xué)案例研究
        速讀·上旬(2022年2期)2022-04-10 16:42:14
        一種高效的概率圖上Top-K極大團(tuán)枚舉算法
        一種端口故障的解決方案
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        端口阻塞與優(yōu)先級
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        基于太陽影子定位枚舉法模型的研究
        初識電腦端口
        電腦迷(2015年6期)2015-05-30 08:52:42
        生成樹協(xié)議實(shí)例探討
        USB開發(fā)中易混淆的概念剖析
        国产精品福利自产拍久久| 一区二区中文字幕在线观看污污 | 亚洲男人的天堂在线播放| 正在播放淫亚洲| 亚洲视频一区二区蜜桃| 日韩女优图播一区二区| 真人抽搐一进一出视频| 男人j进女人j啪啪无遮挡| 久久久久中文字幕精品无码免费| 亚洲高清一区二区三区在线观看| 亚洲国产精品久久九色| 午夜av福利亚洲写真集| 麻豆国产精品一区二区三区| 在线观看免费无码专区| 久久精品国产亚洲av大全| 中文字幕一区二区三区人妻精品 | 亚洲熟妇无码八av在线播放| 亚洲免费天堂| 性感人妻中文字幕在线| 国产黄色三级一区二区三区四区| 亚洲av日韩av女同同性| 国产精品国产午夜免费看福利| 国产成人精品三上悠亚久久| 蜜臀精品一区二区三区| 天堂视频在线观看一二区| 久久精品无码一区二区三区免费| 欧美内射深喉中文字幕| 国产精品一区二区韩国AV| 91青青草在线观看视频| 中文字幕一区在线直播| 欧美精品videosex极品| 色噜噜狠狠一区二区三区果冻| 自拍 另类 综合 欧美小说| 精品日韩欧美一区二区三区在线播放| 美女狂喷白浆网站视频在线观看| 欧美成人家庭影院| 最近最新中文字幕| 亚洲中文字幕久爱亚洲伊人| 国产丝袜美腿嫩模视频诱惑| 无码 人妻 在线 视频| 欧美日韩亚洲国产精品|