999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Cortex-M4ARM 處理器的USB2.0主機系統設計

2015-09-12 06:42:38王靜嬌翟剛毅楊陽劉劍
單片機與嵌入式系統應用 2015年8期
關鍵詞:設備

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

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

王靜嬌(助理工程師),研究方向為數據通信;翟剛毅(高級工程師),研究方向為雷達數字信號處理;楊陽(助理工程師),研究方向為數據通信電路設計;劉劍(工程師),主要從事雷達數字電路板設計。

引 言

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

本文以TI公司基于ARM Cortex-M4內核的TM4C129 XNCZAD 為 核 心 構 建 了USB2.0 主 機 系 統,實 現 了 與USB2.0設備的高速數據交互。

1 基于ULPI接口的USB2.0硬件設計

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

圖1 系統硬件結構框圖

1.1 ARM 處理器USB模塊

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

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

1.2 基于ULPI協議的USB2.0設計

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

圖2 TM4C129XNCZAD處理器USB模塊結構框圖

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

圖3 USB模塊硬件連接圖

2 USB2.0主機軟件開發

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

2.1 ULPI接口配置

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

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

表1 功能控制器位描述

2.2 USB2.0主機驅動開發

USB主機模式主要涉及USB驅動初始化、USB設備枚舉、USB數據傳輸過程。

(1)USB驅動初始化

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

(2)USB設備枚舉

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

USB設備的枚舉主要是主機通過控制傳輸來實現,每個設備都支持通過端點0管道完成控制傳輸。控制傳輸使主機和設備之間能夠交換有關設備能力和類似廠商專有的信息,包括設置階段、數據階段(可無)、狀態階段。設置階段由一個設置事務構成,將整個傳輸確定為控制傳輸,并發送設備請求及設備完成請求所需的其他信息。一個設置請求包含bmRequestType(1字節)、bRequest(1字節)、wValue(2字節)、wIndex(2字節)、wLength(2字節),共5個字段、8個字節,用于指示設備請求類別以及是否具有數據階段,具體由USBHCDControlTransfer()函數實現,流程如圖4所示。

圖4 控制傳輸流程圖

(3)USB數據傳輸

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

圖5 批量讀流程圖

結 語

本文通過外接USB PHY 擴展了TM4C129XNCZAD芯片的USB模塊,并通過編寫USB核心驅動程序實現了USB2.0 設備的枚舉、數據傳輸,完成了基于ARM 的USB2.0的主機開發。本系統應用在FPGA 遠程調試中,可以實現FPGA 下載電纜在ARM 上的枚舉、數據14 傳輸等功能,成功地進行FPGA 的加載和調試,并可以廣泛應用于其他USB設備的連接。

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

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

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

[4]李紀偉.基于ARM 的嵌入式系統研究及USB驅動程序設計[D].成都:電子科技大學,2005.

猜你喜歡
設備
諧響應分析在設備減振中的應用
調試新設備
當代工人(2020年13期)2020-09-27 23:04:20
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發射設備中平衡輸入與不平衡輸入的轉換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設備
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
HTC斥資千萬美元入股虛擬現實設備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設備篇
如何在設備采購中節省成本
主站蜘蛛池模板: 中文字幕 欧美日韩| 久久中文电影| 亚洲国产欧洲精品路线久久| 国产区免费| 亚洲,国产,日韩,综合一区| 色亚洲激情综合精品无码视频| 免费国产高清视频| 久久精品只有这里有| 国产香蕉97碰碰视频VA碰碰看 | 伦精品一区二区三区视频| 久久国产黑丝袜视频| 久久影院一区二区h| 无码中文字幕加勒比高清| 伊人久久影视| 五月天综合婷婷| 婷婷六月综合网| 亚洲v日韩v欧美在线观看| 亚洲精品黄| 91精品国产麻豆国产自产在线| 亚洲视频免| 欧美中文字幕在线视频| 成色7777精品在线| 亚洲男人的天堂在线| 亚洲国产精品不卡在线| 免费一级毛片在线播放傲雪网| 婷婷丁香色| 亚洲第一成人在线| 波多野结衣第一页| 污网站免费在线观看| 国产性生大片免费观看性欧美| 亚洲成a人片在线观看88| 免费视频在线2021入口| 国产成人区在线观看视频| 成年人福利视频| 91丝袜乱伦| 国产亚洲精品97AA片在线播放| 亚洲综合香蕉| 成人精品在线观看| 狠狠干综合| 黑人巨大精品欧美一区二区区| 国产AV无码专区亚洲A∨毛片| 国产h视频免费观看| 国内a级毛片| 制服丝袜一区| 又爽又大又光又色的午夜视频| 日韩毛片免费| 日韩欧美视频第一区在线观看 | 在线永久免费观看的毛片| 亚洲最大福利视频网| a级毛片网| 日韩高清欧美| 国内毛片视频| 亚洲三级影院| 视频一区亚洲| 国产女人综合久久精品视| 97超级碰碰碰碰精品| 国产在线自揄拍揄视频网站| 国产精品女人呻吟在线观看| 国产精品福利一区二区久久| 一本一道波多野结衣av黑人在线| 国产精品亚欧美一区二区| 成·人免费午夜无码视频在线观看 | 国产精品偷伦在线观看| 波多野结衣一二三| 91精品国产91久无码网站| 国产亚洲精久久久久久久91| 无码日韩精品91超碰| 玖玖精品视频在线观看| 国产精品尤物铁牛tv| 少妇被粗大的猛烈进出免费视频| 中文国产成人精品久久一| 国内自拍久第一页| 国产精品美女自慰喷水| 永久成人无码激情视频免费| 日韩在线观看网站| 亚洲成人高清无码| 国产幂在线无码精品| 国产午夜不卡| 国产精品福利在线观看无码卡| 亚洲a级毛片| 宅男噜噜噜66国产在线观看| 真实国产乱子伦视频|