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 之“看” 汽保設備篇
如何在設備采購中節省成本
主站蜘蛛池模板: 伊人久久大香线蕉影院| 欧美日韩中文字幕在线| 人人澡人人爽欧美一区| a毛片免费看| 亚洲精品无码AV电影在线播放| 丰满少妇αⅴ无码区| 国产成人三级| 国产在线八区| 91毛片网| 日本人妻一区二区三区不卡影院 | 中文字幕日韩久久综合影院| 国产亚洲精品97AA片在线播放| 午夜福利视频一区| 国产一区二区三区夜色| 一区二区三区成人| 亚洲天堂在线免费| 网友自拍视频精品区| 久久亚洲国产一区二区| 亚洲高清免费在线观看| 四虎永久在线视频| 日韩第九页| 亚洲天堂网在线视频| 极品私人尤物在线精品首页| 国产精品天干天干在线观看 | 91国内视频在线观看| 成人午夜网址| 欧美成人日韩| 在线观看国产小视频| 免费一极毛片| 一级毛片中文字幕| 女人18毛片久久| 91精品啪在线观看国产60岁| 伊人福利视频| 日本中文字幕久久网站| 亚洲色中色| v天堂中文在线| 欲色天天综合网| 亚洲人在线| 国产一级裸网站| 操国产美女| 精品国产一二三区| 久久狠狠色噜噜狠狠狠狠97视色 | 亚洲综合香蕉| 69精品在线观看| 中文字幕日韩欧美| 国产超碰一区二区三区| 就去色综合| 精品久久蜜桃| 一级做a爰片久久免费| 国产精品主播| 黄色网站不卡无码| 国产精品无码翘臀在线看纯欲| 99久久人妻精品免费二区| 97一区二区在线播放| 国产精品xxx| 19国产精品麻豆免费观看| 国产成人无码久久久久毛片| 亚洲精品国偷自产在线91正片| 欧美日韩成人| 国产日韩欧美精品区性色| 欧美日韩一区二区三| 欧美中出一区二区| 国产日韩久久久久无码精品| 国产免费羞羞视频| 欧美精品影院| 在线99视频| 亚洲一本大道在线| 亚洲欧美另类视频| 亚洲午夜国产精品无卡| 波多野结衣一区二区三区AV| 91成人精品视频| 久久久精品无码一区二区三区| 久久婷婷综合色一区二区| 国产精品美女免费视频大全| 亚洲欧美精品一中文字幕| 久久精品中文字幕少妇| 国内精品久久人妻无码大片高| 亚洲码一区二区三区| 一区二区欧美日韩高清免费| 精品国产99久久| 国产成人无码Av在线播放无广告| 欧美综合成人|