USB模塊解讀課件_第1頁
USB模塊解讀課件_第2頁
USB模塊解讀課件_第3頁
USB模塊解讀課件_第4頁
USB模塊解讀課件_第5頁
已閱讀5頁,還剩121頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

USB通信

UniversalSerialBUS通用串行總線

USB通信

UniversalSerialBUS通用串行本節(jié)內(nèi)容USB技術(shù)簡介技術(shù)背景系統(tǒng)架構(gòu)、協(xié)議設(shè)備的枚舉、識別傳輸類型MSP430USB模塊和函數(shù)庫模塊的特性各類描述符解析模塊的中斷源及相關(guān)的中斷處理函數(shù)模塊的其他相關(guān)函數(shù)庫本節(jié)內(nèi)容USB技術(shù)簡介技術(shù)背景USB,是一種外部串行總線標(biāo)準(zhǔn)。最初是由Intel與Microsoft等公司于1994年倡導(dǎo)發(fā)起的,其目的是使用USB來取代PC機(jī)現(xiàn)有的各種外圍接口,使外設(shè)連接單一化,其最大特點(diǎn)是支持即插即拔和熱插拔。USB協(xié)議版本演進(jìn)1.0 January15,1996 低速1.1 September23,1998 全速2.0 April27,2000 高速3.0 November 超高速技術(shù)背景技術(shù)背景USB,是一種外部串行總線標(biāo)準(zhǔn)。最初是由Intel與Microsoft等公司于1994年倡導(dǎo)發(fā)起的,其目的是使用USB來取代PC機(jī)現(xiàn)有的各種外圍接口,使外設(shè)連接單一化,其最大特點(diǎn)是支持即插即拔和熱插拔。技術(shù)背景USB,是一種外部串行總線標(biāo)準(zhǔn)。最初USB分層星型拓?fù)浣Y(jié)構(gòu)最多支持:7層拓?fù)?27個USB設(shè)備5個USBhub級聯(lián)USB分層星型拓?fù)浣Y(jié)構(gòu)最多支持:

USB產(chǎn)生之前,外設(shè)與PC通信主要是通過PC機(jī)主板所提供的各種接口實(shí)現(xiàn)。老式接口大多是在20世紀(jì)80年代設(shè)計(jì)的,存在規(guī)格不一、不可擴(kuò)展等缺陷,USB和其他接口常用計(jì)算機(jī)接口比較:技術(shù)背景USB產(chǎn)生之前,外設(shè)與PC通信主要是通過PC機(jī)技術(shù)背景USB應(yīng)用范圍和特性技術(shù)背景USB應(yīng)用范圍和特性技術(shù)背景USB特點(diǎn):簡單易用

使用統(tǒng)一制式的電纜和連接插座,支持熱插拔。應(yīng)用廣泛

支持從幾kbps到幾百M(fèi)bps的數(shù)據(jù)帶寬,支持同步和異步 的傳輸,支持連接多達(dá)127個設(shè)備,并支持復(fù)合設(shè)備。同步帶寬

提供保證的帶寬和低延遲。使用靈活

支持不同大小的數(shù)據(jù)包和各種傳輸速率。魯棒性佳

多種的錯誤校驗(yàn)和恢復(fù)機(jī)制。協(xié)同PC產(chǎn)業(yè)

協(xié)議易于實(shí)現(xiàn)和整合,并支持熱插拔機(jī)制低成本實(shí)現(xiàn)

低成本的電纜和連接插座,商品化的實(shí)現(xiàn)技術(shù)易于升級

整體結(jié)構(gòu)易于升級,能適應(yīng)各類新生的應(yīng)用。技術(shù)背景USB特點(diǎn):USB常用術(shù)語USB主機(jī):在任何一個USB系統(tǒng)中,只有一個主機(jī)。主機(jī)系統(tǒng)的USB控制模塊叫“主機(jī)控制器”,主機(jī)控制器可由硬件、固件和軟件綜合實(shí)現(xiàn)。USB設(shè)備:主機(jī)的“下行”設(shè)備,為系統(tǒng)提供具體的功能。USB主機(jī)最多可以支持127個USB設(shè)備。USBOTG:OnTheGo,正在進(jìn)行中的意思。USBOTG既是USB主機(jī)也是USB設(shè)備。但是在任意時(shí)刻,只能有一個主機(jī)。集線器(Hub):擴(kuò)展USB主機(jī)所能連接設(shè)備的數(shù)量,主要用于擴(kuò)展。串行接口引擎(SIE):USB主控制器的“核心”,將二進(jìn)制碼轉(zhuǎn)化為字節(jié),供控制器使用。USB常用術(shù)語USB主機(jī):在任何一個USB系統(tǒng)中,只有一個主USB設(shè)備開發(fā)流程①確認(rèn)USB設(shè)備的開發(fā)類型,是USB主機(jī)、USB設(shè)備還是OTG②如果是USB設(shè)備,必須明確該設(shè)備的類型:HID、UDIO、CDC、HUB、IMAGE等③查找相關(guān)設(shè)備手冊,確定其描述符④完成描述符后,編寫USB枚舉程序,觀察是否枚舉成功,開發(fā)已經(jīng)完成大部分⑤編寫應(yīng)用程序,在枚舉成功后,主要是進(jìn)行數(shù)據(jù)處理,編寫應(yīng)用程序確定所開發(fā)的USB系統(tǒng)類型USB主機(jī)USB設(shè)備USB

OTG設(shè)備類型HID、UDIO、CDC等查找手冊,編寫描述符枚舉是否成功應(yīng)用程序編寫USB設(shè)備開發(fā)流程①確認(rèn)USB設(shè)備的開發(fā)類型,是USB主機(jī)、USB系統(tǒng)架構(gòu)功能層USB設(shè)備層USB總線接口層USB系統(tǒng)架構(gòu)功能層USB設(shè)備層USB總線接口層USB系統(tǒng)架構(gòu)USB系統(tǒng)架構(gòu)USB系統(tǒng)架構(gòu)USB系統(tǒng)架構(gòu)USB系統(tǒng)架構(gòu)(4/)USB系統(tǒng)架構(gòu)(4/)USB系統(tǒng)架構(gòu)(5/)USB系統(tǒng)架構(gòu)(5/)USB設(shè)備枚舉對于USB設(shè)備開發(fā)來說,最重要的枚舉,即讓主機(jī)知道設(shè)備的相關(guān)信息。若枚舉不成功,則設(shè)備無法識別、更不能使用。USB設(shè)備的屬性通過一組描述符來反映他們,這些描述符是具有一定格式的數(shù)據(jù)結(jié)構(gòu),主機(jī)軟件可通過GET_DESCRIPTOR請求獲取這些描述符。每一個描述符的第一個字節(jié)表明本描述符的長度,最后一個字節(jié)的描述符類型的信息。如果描述符中的長度域值小于描述符定義長度,此描述符被認(rèn)為是非法的,不能被主機(jī)接收;如果返回描述符中的長度域值大于描述符的定義長度,則過長部分被忽略。USB設(shè)備枚舉對于USB設(shè)備開發(fā)來說,最重要的枚舉,即讓主機(jī)USB原理簡介USB接口技術(shù)規(guī)范中,通信雙方分為:主機(jī)和設(shè)備端。主機(jī)一般由PC機(jī)承擔(dān),嵌入式設(shè)備作為設(shè)備端。按照USB協(xié)議的定義,USB設(shè)備包括兩個基本類型: 集線器(HUB):提供更多訪問USB總線的接入點(diǎn); 功能設(shè)備:具有特定功能的設(shè)備,如鼠標(biāo)、鍵盤等。USB原理簡介USB接口技術(shù)規(guī)范中,通信雙方分為:主機(jī)和設(shè)備USB接口USB定義了兩種類型的連接器,下圖從左到右依次是:microUSB插口、miniUSB插口、B系列插口、A系列插座、A系列插口。USB接口USB定義了兩種類型的連接器,下圖從左到右依次是:USB網(wǎng)絡(luò)拓?fù)銾SB總線物理拓?fù)鋱DUSB總線邏輯拓?fù)鋱DUSB網(wǎng)絡(luò)拓?fù)銾SB總線物理拓?fù)鋱DUSB總線邏輯拓?fù)鋱DUSB總線邏輯拓?fù)銾SB總線邏輯拓?fù)銾SB傳輸類別

音頻類(Audio) 通信類-虛擬串口類(CDC) 人機(jī)接口類(HID) 大容量存儲設(shè)備類(MassStorage) 智能卡接口設(shè)備類(CCID) 圖像類(Image) 物理接口設(shè)備類(PhysicalInterface)USB傳輸類別USB傳輸類別

IrDA橋接設(shè)備類(IrDABridge) 監(jiān)視設(shè)備類(Monitor) 人機(jī)接口類(HID) 個人保健設(shè)備類(PersonalHealthCare) 電源設(shè)備類(PowerDevice) 圖像類(Image)具體請參考/developers/devclass_docs#approvedUSB傳輸類別USB連接器(1)–StandardUSB根據(jù)應(yīng)用場景不同,有多種接口類型,以下展示最常見通用的三種:USB連接器(1)–StandardUSBUSB連接器(2)--Mini、MicroUSB連接器(2)--Mini、Micro傳輸類型USB協(xié)議定義了四種傳輸類型:控制傳輸(ControlTransfers):突發(fā),非周期性,由主機(jī)發(fā)起,用于命令和狀態(tài)的傳輸。同步傳輸(IsochronousTransfers):周期性,持續(xù)性的傳輸,用于傳輸與時(shí)效相關(guān)的信息,并且在數(shù)據(jù)中保存時(shí)間戳的信息。中斷傳輸(InterruptTransfers):周期性,低頻率,允許有限延遲的通信。大容量數(shù)據(jù)傳輸(BulkTransfers):非周期性,大容量突發(fā)數(shù)據(jù)的通信,數(shù)據(jù)可以占用任意帶寬,并容忍延遲。傳輸類型USB協(xié)議定義了四種傳輸類型:USB信號(1/)電纜:差分信號:

1:D+>VOH(2.8V),D-<VOL(0.3V)0:D->VOH(2.8V),D+<VOL(0.3V)J狀態(tài):

LowSpeed:Differential0FullSpeed:Differential1K狀態(tài):LowSpeed:Differential1FullSpeed:Differential0USB信號(1/)電纜:USB信號(2/)SE0(Single-ended0):

D+&D-<VOLSE1(Single-ended1):

D+&D->VSE1(0.8V)復(fù)位(Reset):

D+&D-<VOLfor>=10ms恢復(fù)(Resume):

K狀態(tài)SOP(StartofPacket):數(shù)據(jù)線從IDLE狀態(tài)切換到K狀態(tài)EOP(EndofPacket):

持續(xù)2位時(shí)間的SE0信號,后跟隨1位時(shí)間的J狀態(tài)。SYNC:

3個重復(fù)的KJ狀態(tài)切換,后跟隨2位時(shí)間的K狀態(tài),共持續(xù)8位時(shí)間。(低速/全速設(shè)備)USB信號(2/)SE0(Single-ended0):USB信號(3/)數(shù)據(jù)的編碼/解碼:反向不歸零碼(NRZI)Bit填充:在數(shù)據(jù)進(jìn)行NRZI編碼前,每6個連續(xù)的1信號之后都會插入1個0信號,以免丟失同步。USB信號(3/)數(shù)據(jù)的編碼/解碼:反向不歸零碼(NRZUSB數(shù)據(jù)格式USB數(shù)據(jù)格式Packet格式(1/)Packet格式(1/)Packet格式(2/)Packet格式(2/)Packet格式(3/)Packet格式(3/)Packet格式(3)--DataPIDToggle(1)DataToggle用于數(shù)據(jù)的同步和重發(fā)正確的數(shù)據(jù)傳輸流程Packet格式(3)--DataPIDToggle(Packet格式(3)--DataPIDToggle(2)DataToggle用于數(shù)據(jù)的同步和重發(fā)當(dāng)數(shù)據(jù)被破壞或者沒有正確接收Packet格式(3)--DataPIDToggle(Packet格式(3)--DataPIDToggle(3)DataToggle用于數(shù)據(jù)的同步和重發(fā)當(dāng)ACK的傳輸被破壞Packet格式(3)--DataPIDToggle(Packet格式(4)低速設(shè)備: 支持最多3個端點(diǎn)全速和高速設(shè)備: 支持最多16個IN和OUT端點(diǎn)Packet格式(4)Packet格式(5)11位主機(jī)每發(fā)出一個幀,幀號都會自加1當(dāng)幀號達(dá)到7FFH時(shí),將歸零重新開始計(jì)數(shù)僅在每個SOF幀的幀首傳輸幀號Packet格式(5)Packet格式(6)根據(jù)傳輸類型的不同,數(shù)據(jù)域的數(shù)據(jù)長度從0到1024字節(jié)不等。Packet格式(6)Packet格式(7)TokenCRC計(jì)算IN,OUT,和SETUPToken地址域的CRC計(jì)算SOFToken的幀號域的CRCG(X)=X5+X2+1DataCRC計(jì)算所有數(shù)據(jù)域數(shù)據(jù)的CRCG(X)=X16+X15+X2+1Packet格式(7)Packet類型Packet分四大類:命令(Token)Packet幀首(StartofFrame)Packet數(shù)據(jù)(Data)Packet握手(Handshake)PacketPacket類型Packet分四大類:Packet類型(1):TokenPacketPacket類型(1):TokenPacketPacket類型(2):StartofFramePacketPacket類型(2):StartofFramePaPacket類型(3):DataPacketPacket類型(3):DataPacketPacket類型(4):HandshakePacketPacket類型(4):HandshakePacket傳輸類型USB協(xié)議定義了四種傳輸類型:控制傳輸(ControlTransfers):突發(fā),非周期性,由主機(jī)發(fā)起,用于命令和狀態(tài)的傳輸。同步傳輸(IsochronousTransfers):周期性,持續(xù)性的傳輸,用于傳輸與時(shí)效相關(guān)的信息,并且在數(shù)據(jù)中保存時(shí)間戳的信息。中斷傳輸(InterruptTransfers):周期性,低頻率,允許有限延遲的通信。大容量數(shù)據(jù)傳輸(BulkTransfers):非周期性,大容量突發(fā)數(shù)據(jù)的通信,數(shù)據(jù)可以占用任意帶寬,并容忍延遲。傳輸類型USB協(xié)議定義了四種傳輸類型:USB設(shè)備的狀態(tài)(1)USB設(shè)備的狀態(tài)(1)USB設(shè)備的狀態(tài)(2)USB設(shè)備的狀態(tài)(2)USB設(shè)備的插入檢測USB設(shè)備的插入檢測USB設(shè)備枚舉當(dāng)一個USB設(shè)備插入主機(jī)后,會有以下活動:USB設(shè)備枚舉當(dāng)一個USB設(shè)備插入主機(jī)后,會有以下活動:USB分類從傳輸速度上區(qū)分:低速(1.5Mbps)、全速(12Mbps)和高速(480Mbps)。不同的設(shè)備要求的傳輸類型不同從傳輸類型上區(qū)分:同步傳輸、批量傳輸、中斷傳輸和控制傳輸。功能設(shè)備根據(jù)數(shù)據(jù)量和通信特點(diǎn)又進(jìn)行了多達(dá)18種的詳細(xì)分類,包括人機(jī)接口類(HID,如鍵盤、鼠標(biāo)),圖像類(如打印機(jī)、掃描儀),大容量存儲設(shè)備類(MessStorage,如優(yōu)盤)等。注意:以上三種分類是典型分類方式,具體實(shí)物可以同時(shí)屬于三類中的一種,比如鼠標(biāo)既是低速設(shè)備,采用中斷傳輸方式,又屬于人機(jī)接口類。USB分類從傳輸速度上區(qū)分:低速(1.5Mbps)、全速(1MSP430USB模塊和函數(shù)庫在編程環(huán)境中,API被設(shè)計(jì)成自動適應(yīng)選定設(shè)備。代碼保持不變,但需選擇正確的設(shè)備。三類USB設(shè)備(CDC/HID/MSC)共用一個USB分層,協(xié)議??臻g分為API空間和應(yīng)用程序空間。發(fā)送和接收事務(wù)處理CDCAPIHIDAPIMSCAPIUSBAPI應(yīng)用程序空間API空間MSP430頭文件MSP430USB模塊和函數(shù)庫在編程環(huán)境中,API被設(shè)計(jì)成USB模塊解讀課件52PLL鎖相環(huán)模塊PLL鎖相環(huán)模塊為USB操作提供高精度低抖動的48MHz的時(shí)鐘。PLL鎖相環(huán)模塊PLL鎖相環(huán)模塊為USB操作提供高精度低抖動USBAPI利用TI官方提供的USBAPI,實(shí)驗(yàn)者只需要大概知道USB運(yùn)行原理,會調(diào)用API即可,無需透徹理解USB協(xié)議,也可以容易地完成USB驅(qū)動開發(fā)。所有的通信協(xié)議都是由API自動處理。應(yīng)用程序開發(fā)之前,用戶必須通過MSP430USB描述符工具配置堆棧和USB描述符。用戶沒有必要修改API源代碼TI官方提供的庫函數(shù),如右圖所示。USBAPI利用TI官方提供的USBAPI,實(shí)驗(yàn)者只需要USB文件(1)USB文件(1)USB文件(2)USB文件(2)一些重要的USBAPI(1)確定USB連接狀態(tài),返回USB的連接狀態(tài)值 BYTEUSB_connectionState();#defineST_USB_DISCONNECTED 0x80#defineST_USB_CONNECTED_NO_ENUM 0x81#defineST_ENUM_IN_PROGRESS 0x82#defineST_ENUM_ACTIVE 0x83#defineST_ENUM_SUSPENDED 0x84#defineST_ERROR 0x86#defineST_NOENUM_SUSPENDED 0x87一些重要的USBAPI(1)確定USB連接狀態(tài),返回US一些重要的USBAPI(2)USB時(shí)鐘初始化voidClockUSB(void);USB端口初始化BYTEUSB_init(void);使能用戶應(yīng)用程序USB_setEnableEvents(WORDevents);啟動PLL,使能USB模塊BYTEUSB_enable(void);啟動PLL,禁止USB模塊BYTEUSB_disable(void);

一些重要的USBAPI(2)USB時(shí)鐘初始化一些重要的USBAPI(3)重置USB BYTEUSB_reset(void);通過拉高PUR位,使USB設(shè)備與主機(jī)連接BYTEUSB_connect(void);通過拉低PUR位,使USB設(shè)備與主機(jī)斷開連接

BYTEUSB_disconnect(void);使能特定的事務(wù)處理函數(shù) BYTEUSB_setEnableEvents(WORDevents)返回事務(wù)啟用和禁用狀態(tài)WORDUSB_getEnabledEvents(void);手動進(jìn)行USB的連接或斷開BYTEUSB_handleVbusOnEvent(void);BYTEUSB_handleVbusOffEvent(void);一些重要的USBAPI(3)重置USB一些重要的USBAPI(3)重置USB BYTEUSB_reset(void);通過拉高PUR位,使USB設(shè)備與主機(jī)連接BYTEUSB_connect(void);通過拉低PUR位,使USB設(shè)備與主機(jī)斷開連接

BYTEUSB_disconnect(void);使能特定的事務(wù)處理函數(shù) BYTEUSB_setEnableEvents(WORDevents)返回事務(wù)啟用和禁用狀態(tài)WORDUSB_getEnabledEvents(void);手動進(jìn)行USB的連接或斷開BYTEUSB_handleVbusOnEvent(void);BYTEUSB_handleVbusOffEvent(void);一些重要的USBAPI(3)重置USBUSB模塊外接電路圖(1/2)與MSP430F6638芯片的引腳:6638_VBUS(VBUS),PU.1/DM(PU.1/DM),PU.0/DP(PU.0/DP),PUR(PUR),6638_LDO(VUSB)USB模塊外接電路圖(1/2)與MSP430F6638芯片的USB模塊外接電路圖(2/2)在第①部分,利用PUR完成D+信號的上拉,使主機(jī)能夠識別當(dāng)前設(shè)備為全速USB設(shè)備;在第②部分,利用TRD2E001DRLR芯片提供電流過載保護(hù)。①②USB模塊外接電路圖(2/2)在第①部分,利用PUR完成D+USB模塊電源系統(tǒng)USB模塊的電源系統(tǒng)內(nèi)含雙穩(wěn)壓器(3.3V和1.8V),當(dāng)5V的VBUS可用時(shí),允許整個MSP430從VBUS供電。作為可選,USB模塊電源系統(tǒng)可以只為USB模塊供電,可以為整個系統(tǒng)供電,也可以在一個自供電設(shè)備中完全不被使用。USB為整個系統(tǒng)供電時(shí)的結(jié)構(gòu)框圖。USB模塊電源系統(tǒng)USB模塊的電源系統(tǒng)內(nèi)含雙穩(wěn)壓器(3.3VUSB通信

UniversalSerialBUS通用串行總線

USB通信

UniversalSerialBUS通用串行本節(jié)內(nèi)容USB技術(shù)簡介技術(shù)背景系統(tǒng)架構(gòu)、協(xié)議設(shè)備的枚舉、識別傳輸類型MSP430USB模塊和函數(shù)庫模塊的特性各類描述符解析模塊的中斷源及相關(guān)的中斷處理函數(shù)模塊的其他相關(guān)函數(shù)庫本節(jié)內(nèi)容USB技術(shù)簡介技術(shù)背景USB,是一種外部串行總線標(biāo)準(zhǔn)。最初是由Intel與Microsoft等公司于1994年倡導(dǎo)發(fā)起的,其目的是使用USB來取代PC機(jī)現(xiàn)有的各種外圍接口,使外設(shè)連接單一化,其最大特點(diǎn)是支持即插即拔和熱插拔。USB協(xié)議版本演進(jìn)1.0 January15,1996 低速1.1 September23,1998 全速2.0 April27,2000 高速3.0 November 超高速技術(shù)背景技術(shù)背景USB,是一種外部串行總線標(biāo)準(zhǔn)。最初是由Intel與Microsoft等公司于1994年倡導(dǎo)發(fā)起的,其目的是使用USB來取代PC機(jī)現(xiàn)有的各種外圍接口,使外設(shè)連接單一化,其最大特點(diǎn)是支持即插即拔和熱插拔。技術(shù)背景USB,是一種外部串行總線標(biāo)準(zhǔn)。最初USB分層星型拓?fù)浣Y(jié)構(gòu)最多支持:7層拓?fù)?27個USB設(shè)備5個USBhub級聯(lián)USB分層星型拓?fù)浣Y(jié)構(gòu)最多支持:

USB產(chǎn)生之前,外設(shè)與PC通信主要是通過PC機(jī)主板所提供的各種接口實(shí)現(xiàn)。老式接口大多是在20世紀(jì)80年代設(shè)計(jì)的,存在規(guī)格不一、不可擴(kuò)展等缺陷,USB和其他接口常用計(jì)算機(jī)接口比較:技術(shù)背景USB產(chǎn)生之前,外設(shè)與PC通信主要是通過PC機(jī)技術(shù)背景USB應(yīng)用范圍和特性技術(shù)背景USB應(yīng)用范圍和特性技術(shù)背景USB特點(diǎn):簡單易用

使用統(tǒng)一制式的電纜和連接插座,支持熱插拔。應(yīng)用廣泛

支持從幾kbps到幾百M(fèi)bps的數(shù)據(jù)帶寬,支持同步和異步 的傳輸,支持連接多達(dá)127個設(shè)備,并支持復(fù)合設(shè)備。同步帶寬

提供保證的帶寬和低延遲。使用靈活

支持不同大小的數(shù)據(jù)包和各種傳輸速率。魯棒性佳

多種的錯誤校驗(yàn)和恢復(fù)機(jī)制。協(xié)同PC產(chǎn)業(yè)

協(xié)議易于實(shí)現(xiàn)和整合,并支持熱插拔機(jī)制低成本實(shí)現(xiàn)

低成本的電纜和連接插座,商品化的實(shí)現(xiàn)技術(shù)易于升級

整體結(jié)構(gòu)易于升級,能適應(yīng)各類新生的應(yīng)用。技術(shù)背景USB特點(diǎn):USB常用術(shù)語USB主機(jī):在任何一個USB系統(tǒng)中,只有一個主機(jī)。主機(jī)系統(tǒng)的USB控制模塊叫“主機(jī)控制器”,主機(jī)控制器可由硬件、固件和軟件綜合實(shí)現(xiàn)。USB設(shè)備:主機(jī)的“下行”設(shè)備,為系統(tǒng)提供具體的功能。USB主機(jī)最多可以支持127個USB設(shè)備。USBOTG:OnTheGo,正在進(jìn)行中的意思。USBOTG既是USB主機(jī)也是USB設(shè)備。但是在任意時(shí)刻,只能有一個主機(jī)。集線器(Hub):擴(kuò)展USB主機(jī)所能連接設(shè)備的數(shù)量,主要用于擴(kuò)展。串行接口引擎(SIE):USB主控制器的“核心”,將二進(jìn)制碼轉(zhuǎn)化為字節(jié),供控制器使用。USB常用術(shù)語USB主機(jī):在任何一個USB系統(tǒng)中,只有一個主USB設(shè)備開發(fā)流程①確認(rèn)USB設(shè)備的開發(fā)類型,是USB主機(jī)、USB設(shè)備還是OTG②如果是USB設(shè)備,必須明確該設(shè)備的類型:HID、UDIO、CDC、HUB、IMAGE等③查找相關(guān)設(shè)備手冊,確定其描述符④完成描述符后,編寫USB枚舉程序,觀察是否枚舉成功,開發(fā)已經(jīng)完成大部分⑤編寫應(yīng)用程序,在枚舉成功后,主要是進(jìn)行數(shù)據(jù)處理,編寫應(yīng)用程序確定所開發(fā)的USB系統(tǒng)類型USB主機(jī)USB設(shè)備USB

OTG設(shè)備類型HID、UDIO、CDC等查找手冊,編寫描述符枚舉是否成功應(yīng)用程序編寫USB設(shè)備開發(fā)流程①確認(rèn)USB設(shè)備的開發(fā)類型,是USB主機(jī)、USB系統(tǒng)架構(gòu)功能層USB設(shè)備層USB總線接口層USB系統(tǒng)架構(gòu)功能層USB設(shè)備層USB總線接口層USB系統(tǒng)架構(gòu)USB系統(tǒng)架構(gòu)USB系統(tǒng)架構(gòu)USB系統(tǒng)架構(gòu)USB系統(tǒng)架構(gòu)(4/)USB系統(tǒng)架構(gòu)(4/)USB系統(tǒng)架構(gòu)(5/)USB系統(tǒng)架構(gòu)(5/)USB設(shè)備枚舉對于USB設(shè)備開發(fā)來說,最重要的枚舉,即讓主機(jī)知道設(shè)備的相關(guān)信息。若枚舉不成功,則設(shè)備無法識別、更不能使用。USB設(shè)備的屬性通過一組描述符來反映他們,這些描述符是具有一定格式的數(shù)據(jù)結(jié)構(gòu),主機(jī)軟件可通過GET_DESCRIPTOR請求獲取這些描述符。每一個描述符的第一個字節(jié)表明本描述符的長度,最后一個字節(jié)的描述符類型的信息。如果描述符中的長度域值小于描述符定義長度,此描述符被認(rèn)為是非法的,不能被主機(jī)接收;如果返回描述符中的長度域值大于描述符的定義長度,則過長部分被忽略。USB設(shè)備枚舉對于USB設(shè)備開發(fā)來說,最重要的枚舉,即讓主機(jī)USB原理簡介USB接口技術(shù)規(guī)范中,通信雙方分為:主機(jī)和設(shè)備端。主機(jī)一般由PC機(jī)承擔(dān),嵌入式設(shè)備作為設(shè)備端。按照USB協(xié)議的定義,USB設(shè)備包括兩個基本類型: 集線器(HUB):提供更多訪問USB總線的接入點(diǎn); 功能設(shè)備:具有特定功能的設(shè)備,如鼠標(biāo)、鍵盤等。USB原理簡介USB接口技術(shù)規(guī)范中,通信雙方分為:主機(jī)和設(shè)備USB接口USB定義了兩種類型的連接器,下圖從左到右依次是:microUSB插口、miniUSB插口、B系列插口、A系列插座、A系列插口。USB接口USB定義了兩種類型的連接器,下圖從左到右依次是:USB網(wǎng)絡(luò)拓?fù)銾SB總線物理拓?fù)鋱DUSB總線邏輯拓?fù)鋱DUSB網(wǎng)絡(luò)拓?fù)銾SB總線物理拓?fù)鋱DUSB總線邏輯拓?fù)鋱DUSB總線邏輯拓?fù)銾SB總線邏輯拓?fù)銾SB傳輸類別

音頻類(Audio) 通信類-虛擬串口類(CDC) 人機(jī)接口類(HID) 大容量存儲設(shè)備類(MassStorage) 智能卡接口設(shè)備類(CCID) 圖像類(Image) 物理接口設(shè)備類(PhysicalInterface)USB傳輸類別USB傳輸類別

IrDA橋接設(shè)備類(IrDABridge) 監(jiān)視設(shè)備類(Monitor) 人機(jī)接口類(HID) 個人保健設(shè)備類(PersonalHealthCare) 電源設(shè)備類(PowerDevice) 圖像類(Image)具體請參考/developers/devclass_docs#approvedUSB傳輸類別USB連接器(1)–StandardUSB根據(jù)應(yīng)用場景不同,有多種接口類型,以下展示最常見通用的三種:USB連接器(1)–StandardUSBUSB連接器(2)--Mini、MicroUSB連接器(2)--Mini、Micro傳輸類型USB協(xié)議定義了四種傳輸類型:控制傳輸(ControlTransfers):突發(fā),非周期性,由主機(jī)發(fā)起,用于命令和狀態(tài)的傳輸。同步傳輸(IsochronousTransfers):周期性,持續(xù)性的傳輸,用于傳輸與時(shí)效相關(guān)的信息,并且在數(shù)據(jù)中保存時(shí)間戳的信息。中斷傳輸(InterruptTransfers):周期性,低頻率,允許有限延遲的通信。大容量數(shù)據(jù)傳輸(BulkTransfers):非周期性,大容量突發(fā)數(shù)據(jù)的通信,數(shù)據(jù)可以占用任意帶寬,并容忍延遲。傳輸類型USB協(xié)議定義了四種傳輸類型:USB信號(1/)電纜:差分信號:

1:D+>VOH(2.8V),D-<VOL(0.3V)0:D->VOH(2.8V),D+<VOL(0.3V)J狀態(tài):

LowSpeed:Differential0FullSpeed:Differential1K狀態(tài):LowSpeed:Differential1FullSpeed:Differential0USB信號(1/)電纜:USB信號(2/)SE0(Single-ended0):

D+&D-<VOLSE1(Single-ended1):

D+&D->VSE1(0.8V)復(fù)位(Reset):

D+&D-<VOLfor>=10ms恢復(fù)(Resume):

K狀態(tài)SOP(StartofPacket):數(shù)據(jù)線從IDLE狀態(tài)切換到K狀態(tài)EOP(EndofPacket):

持續(xù)2位時(shí)間的SE0信號,后跟隨1位時(shí)間的J狀態(tài)。SYNC:

3個重復(fù)的KJ狀態(tài)切換,后跟隨2位時(shí)間的K狀態(tài),共持續(xù)8位時(shí)間。(低速/全速設(shè)備)USB信號(2/)SE0(Single-ended0):USB信號(3/)數(shù)據(jù)的編碼/解碼:反向不歸零碼(NRZI)Bit填充:在數(shù)據(jù)進(jìn)行NRZI編碼前,每6個連續(xù)的1信號之后都會插入1個0信號,以免丟失同步。USB信號(3/)數(shù)據(jù)的編碼/解碼:反向不歸零碼(NRZUSB數(shù)據(jù)格式USB數(shù)據(jù)格式Packet格式(1/)Packet格式(1/)Packet格式(2/)Packet格式(2/)Packet格式(3/)Packet格式(3/)Packet格式(3)--DataPIDToggle(1)DataToggle用于數(shù)據(jù)的同步和重發(fā)正確的數(shù)據(jù)傳輸流程Packet格式(3)--DataPIDToggle(Packet格式(3)--DataPIDToggle(2)DataToggle用于數(shù)據(jù)的同步和重發(fā)當(dāng)數(shù)據(jù)被破壞或者沒有正確接收Packet格式(3)--DataPIDToggle(Packet格式(3)--DataPIDToggle(3)DataToggle用于數(shù)據(jù)的同步和重發(fā)當(dāng)ACK的傳輸被破壞Packet格式(3)--DataPIDToggle(Packet格式(4)低速設(shè)備: 支持最多3個端點(diǎn)全速和高速設(shè)備: 支持最多16個IN和OUT端點(diǎn)Packet格式(4)Packet格式(5)11位主機(jī)每發(fā)出一個幀,幀號都會自加1當(dāng)幀號達(dá)到7FFH時(shí),將歸零重新開始計(jì)數(shù)僅在每個SOF幀的幀首傳輸幀號Packet格式(5)Packet格式(6)根據(jù)傳輸類型的不同,數(shù)據(jù)域的數(shù)據(jù)長度從0到1024字節(jié)不等。Packet格式(6)Packet格式(7)TokenCRC計(jì)算IN,OUT,和SETUPToken地址域的CRC計(jì)算SOFToken的幀號域的CRCG(X)=X5+X2+1DataCRC計(jì)算所有數(shù)據(jù)域數(shù)據(jù)的CRCG(X)=X16+X15+X2+1Packet格式(7)Packet類型Packet分四大類:命令(Token)Packet幀首(StartofFrame)Packet數(shù)據(jù)(Data)Packet握手(Handshake)PacketPacket類型Packet分四大類:Packet類型(1):TokenPacketPacket類型(1):TokenPacketPacket類型(2):StartofFramePacketPacket類型(2):StartofFramePaPacket類型(3):DataPacketPacket類型(3):DataPacketPacket類型(4):HandshakePacketPacket類型(4):HandshakePacket傳輸類型USB協(xié)議定義了四種傳輸類型:控制傳輸(ControlTransfers):突發(fā),非周期性,由主機(jī)發(fā)起,用于命令和狀態(tài)的傳輸。同步傳輸(IsochronousTransfers):周期性,持續(xù)性的傳輸,用于傳輸與時(shí)效相關(guān)的信息,并且在數(shù)據(jù)中保存時(shí)間戳的信息。中斷傳輸(InterruptTransfers):周期性,低頻率,允許有限延遲的通信。大容量數(shù)據(jù)傳輸(BulkTransfers):非周期性,大容量突發(fā)數(shù)據(jù)的通信,數(shù)據(jù)可以占用任意帶寬,并容忍延遲。傳輸類型USB協(xié)議定義了四種傳輸類型:USB設(shè)備的狀態(tài)(1)USB設(shè)備的狀態(tài)(1)USB設(shè)備的狀態(tài)(2)USB設(shè)備的狀態(tài)(2)USB設(shè)備的插入檢測USB設(shè)備的插入檢測USB設(shè)備枚舉當(dāng)一個USB設(shè)備插入主機(jī)后,會有以下活動:USB設(shè)備枚舉當(dāng)一個USB設(shè)備插入主機(jī)后,會有以下活動:USB分類從傳輸速度上區(qū)分:低速(1.5Mbps)、全速(12Mbps)和高速(480Mbps)。不同的設(shè)備要求的傳輸類型不同從傳輸類型上區(qū)分:同步傳輸、批量傳輸、中斷傳輸和控制傳輸。功能設(shè)備根據(jù)數(shù)據(jù)量和通信特點(diǎn)又進(jìn)行了多達(dá)18種的詳細(xì)分類,包括人機(jī)接口類(HID,如鍵盤、鼠標(biāo)),圖像類(如打印機(jī)、掃描儀),大容量存儲設(shè)備類(MessStorage,如優(yōu)盤)等。注意:以上三種分類是典型分類方式,具體實(shí)物可以同時(shí)屬于三類中的一種,比如鼠標(biāo)既是低速設(shè)備,采用中斷傳輸方式,又屬于人機(jī)接口類。USB分類從傳輸速度上區(qū)分:低速(1.5Mbps)、全速(1MSP430USB模塊和函數(shù)庫在編程環(huán)境中,API被設(shè)計(jì)成自動適應(yīng)選定設(shè)備。代碼保持不變,但需選擇正確的設(shè)備。三類USB設(shè)備(CDC/HID/MSC)共用一個USB分層,協(xié)議??臻g分為API空間和應(yīng)用程序空間。發(fā)送和接收事務(wù)處理CDCAPIHIDAPIMSCAPIUSBAPI應(yīng)用程序空間API空間MSP430頭文件MSP430USB模塊和函數(shù)庫在編程環(huán)境中,API被設(shè)計(jì)成USB模塊解讀課件115PLL鎖相環(huán)模塊PLL鎖相環(huán)模塊為USB操作提供高精度低抖動的48MHz的時(shí)鐘。PLL鎖相環(huán)模塊PLL鎖相環(huán)模塊為USB操作提供高精度低抖動USBAPI利用TI官方提供的USBAPI,實(shí)驗(yàn)者只需要大概知道USB運(yùn)行原理,會調(diào)用API即可,無需透徹理解USB協(xié)議,也可以容易地完成USB驅(qū)動開發(fā)。所有的通信協(xié)議都是由API自動處理。應(yīng)用程序開發(fā)之前,用戶必須通過MSP430USB描述符工具配置堆棧和USB描述符。用戶沒有必要修改API源代碼TI官方提供的庫函數(shù),如右圖所示。USBAPI利用TI官方提供的USBAPI,實(shí)驗(yàn)者只需要USB文件(1)USB文件(1)USB文件(2)USB文件(2)一些重要的USBAPI(1)確定USB連接狀態(tài),返回USB的連接狀態(tài)值 BYTEUSB_connectionState();#defineST_USB

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論