當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]通用串行總線(USB)作為一種計(jì)算機(jī)與外圍設(shè)備連接的標(biāo)準(zhǔn)接口,具有即插即用、外展方便和傳輸速度快等優(yōu)點(diǎn)。

    摘要:通用串行總線(USB)作為一種計(jì)算機(jī)與外圍設(shè)備連接的標(biāo)準(zhǔn)接口,具有即插即用、外展方便和傳輸速度快等優(yōu)點(diǎn)。文中給出一種基于SIP1581型微控制器的USB2.0接口實(shí)現(xiàn)方案,同時(shí)給出它的軟硬件設(shè)計(jì)方法。

    關(guān)鍵詞:通用串行總線 接口電路 固件 驅(qū)動(dòng)程序

1 引言

通用串行總線(USB)是近年來(lái)開發(fā)的一種串行總線標(biāo)準(zhǔn),主要用于PC與外圍設(shè)備的互聯(lián)。USB總線具有使用簡(jiǎn)單、即插即用、易于擴(kuò)展和傳輸速度快等優(yōu)點(diǎn)。其協(xié)議主要有USB1.1和USB2.0二個(gè)版本,USB1.1的傳輸速率最高可以達(dá)到12Mb/s,USB2.0最高可以達(dá)到480Mb/s,因此可以滿足大部分?jǐn)?shù)據(jù)的傳輸需要。

目前,用于USB接口的電路主要有二類:一類是帶USB接口的微控制器(如Cypress公司的EZUSB,Intel公司的8x931等);另一類是純粹的USB接口電路,它需要一個(gè)外部微控制器(如National Semiconductor公司的USBN9602,Philips公司的PDIUSBD12和ISP1581等)。通常在開發(fā)USB設(shè)備之間必須根據(jù)具體要求選用合適的USB接口電路,以降低開發(fā)成本,減少開發(fā)時(shí)間。

本文給出一種以Philips公司的ISP1581型接口電路作為USB接口,以TI公司的TMS320F2812型DSP作為微控制器的USB2.0接口實(shí)現(xiàn)方案和系統(tǒng)軟硬件設(shè)計(jì)方法。

圖1

2 ISP1581簡(jiǎn)介

ISP1581是Philips公司推出的一款高性價(jià)比的USB2.0接口電路。它完全遵循它完全遵循USB2.0規(guī)范,支持7個(gè)IN端點(diǎn),7個(gè)OUT端點(diǎn)和一個(gè)固定控制IN/OUT端點(diǎn)。ISP1581支持SUB2.0的自檢工作模式和USB1.1的返回工作模式,可以在高速或全速條件下正常運(yùn)行。內(nèi)部集成有串行接口引擎(SIE)、PIE、8KB的FIFO存儲(chǔ)器、數(shù)據(jù)收發(fā)器、PLL的12MHz晶體振蕩器和3.3V的電壓調(diào)整器。該電路可直接與ATA/ATAPI外設(shè)相連,并具有高速DMA接口。同時(shí),可通過(guò)軟件控制與USB總線的連接(SoftConnect),ISP1581內(nèi)部具有上電復(fù)位電路,支持3.3V和5V二種電源工作方式。

ISP1581與外部微控制器的通信主要通過(guò)一個(gè)高速通用并行接口來(lái)實(shí)現(xiàn)。它與微控制器的連接有二種模式:斷開總線模式和通用處理器工作模式。在斷開總線模式下,AD[7:0]為多路復(fù)用的8位地址/數(shù)據(jù)總線,DATA[15:0]為單獨(dú)的DMA數(shù)據(jù)總線;在通用處理器工作模式下,AD[7:0]為單獨(dú)的8位地址線,DATA[15:0]為16位控制器數(shù)據(jù)總線,此時(shí),DMA將多路復(fù)用到DATA[15:0]控制器的數(shù)據(jù)總線上。ISP1581適合PDA、存儲(chǔ)器類、通訊設(shè)備類、數(shù)碼相機(jī)類、復(fù)印機(jī)類和掃描儀類等大多數(shù)USB設(shè)備類的設(shè)計(jì)。

3 硬件電路設(shè)計(jì)

由TMS320F2812(以下簡(jiǎn)稱F2812)和ISP1581構(gòu)成的USB2.0接口電路如圖1所示。F2812是TI公司的C2000系列DSP,具有很高的運(yùn)算速度、較大的尋址空間和豐富的片上外設(shè)資源。F2812和ISP1581的連接采用通用處理器模式,即8位地址總線和16位數(shù)據(jù)總線分離。F2812的XCS0AND1作為ISP1581的片選信號(hào),此時(shí)ISP1581的寄存器地址映射到F2812的地址空間0x2000-0x4000。F2812與ISP1581的數(shù)據(jù)交換采用中斷方式。ISP1581的喚醒功能引腳WAKEUP接到F2812的一個(gè)通用I/O口上;RPU引腳通過(guò)1.5kΩ電阻器上拉;RREF引腳通過(guò)12.0kΩ精密電阻器接模擬地;MODE引腳在通用處理器模式下也應(yīng)上拉;BUS_CONF引腳的功能是選擇總線模式,上拉后為通用處理模式;MODE0引腳用來(lái)選擇通用處理器模式下的讀/寫功能,上拉后為8051型。該電路內(nèi)部集成了復(fù)位電路,將RESET引腳直接接高電平即可復(fù)位。由于本設(shè)計(jì)沒(méi)有使用DMA傳輸,所以與DMA相關(guān)的引腳沒(méi)有連接。主機(jī)提供的5V電源經(jīng)過(guò)HT7133變換為3.3V后可給整個(gè)系統(tǒng)供電。

4 軟件設(shè)計(jì)

軟件即微控制器的程序文件,它主要完成USB協(xié)議處理和數(shù)據(jù)交換,目的是讓W(xué)indows檢測(cè)和識(shí)別設(shè)備,建立起正確的通信連接。設(shè)備與主機(jī)的USB通信可以分為配置通信和應(yīng)用通信。配置通信 主要指主機(jī)在對(duì)設(shè)備進(jìn)行檢測(cè)的過(guò)程中設(shè)備軟件對(duì)主機(jī)的一系列標(biāo)準(zhǔn)請(qǐng)求所做出的響應(yīng)。設(shè)備必須識(shí)別每個(gè)請(qǐng)求,并返回被請(qǐng)求的信息,同時(shí)采取其他一些請(qǐng)求指定的動(dòng)作。應(yīng)用通信主要指主機(jī)識(shí)別設(shè)備后進(jìn)行的有用數(shù)據(jù)傳輸。USB支持控制傳輸、批量傳輸、中斷傳輸和等時(shí)傳輸4種傳輸類型,控制傳輸主要用于配置通信,其他3種類型主要用于應(yīng)用通信。所有的USB器件都只有端點(diǎn)0支持控制傳輸。

根據(jù)USB2.0協(xié)議,任何傳輸都是由主機(jī)開始的,微控制器做它的前臺(tái)工作,并等待中斷。系統(tǒng)的軟件程序主要由三部分組成:一是初始化F2812和所有的外圍電路(包括ISP1581);二是主循環(huán)部分,其任務(wù)是循環(huán)掃描USB事件和等待中斷;三是中斷服務(wù)程序,其任務(wù)執(zhí)行系統(tǒng)指令。

在初始化過(guò)程中,除了F2812自身初始化外,還要完成對(duì)ISP1581各個(gè)端點(diǎn)使用的傳輸類型、傳輸包大小和中斷類型及方式等設(shè)備任務(wù)。F2812對(duì)ISP1581的操作是通過(guò)寫/讀寄存器來(lái)實(shí)現(xiàn)的。初始化結(jié)束后,通過(guò)設(shè)置ISP1581方式寄存器中的軟件連接位(SOFTCT)可使外設(shè)連接到USB總線上。主機(jī)檢測(cè)到有設(shè)備連接后會(huì)進(jìn)行總線復(fù)位。在此期間,ISP1581將發(fā)送高速(HS)模式檢測(cè)信號(hào)來(lái)判斷主控制器支持的是USB2.0還是USB1.1規(guī)范,若接收到一個(gè)高速(HS)握手信號(hào),則表明有一個(gè)HS主機(jī)與總線相連,此此ISP1581將轉(zhuǎn)換到高速(HS)狀態(tài),否則仍工作在全速(FS)狀態(tài)。

當(dāng)ISP1581接收到主機(jī)的令牌包、總線復(fù)位、掛起和接收到高速模式握手信號(hào)等事件后,ISP1581都會(huì)給F2812發(fā)送中斷請(qǐng)求。F2812進(jìn)人中斷服務(wù)程序后,首先讀ISP1581的中斷寄存器,判斷中斷類型,然后執(zhí)行相應(yīng)的操作??偩€復(fù)位和高速模式中斷不需要進(jìn)行特殊的處理,只需在中斷服務(wù)程序中設(shè)定標(biāo)志。在軟件程序中,比較難處理的是包含標(biāo)準(zhǔn)USB請(qǐng)求的控制傳輸。由于只有端點(diǎn)0支持控制傳輸,因此主要是對(duì)端點(diǎn)0的編程。控制傳輸總是在設(shè)定(SETUP)階段開始,之后為可選的數(shù)據(jù)(DATA)階段,然后在狀態(tài)(STATUS)階段結(jié)束。主機(jī)會(huì)發(fā)送建立包(SETUP)、控制讀包(CONTROL_IN)和控制寫包(CONTROL_OUT)3種包到設(shè)備,ISP1581相應(yīng)的會(huì)產(chǎn)生3種中斷。在編程中,可以設(shè)備空閑(USB_IDLE)、發(fā)送(USB_TRANSMIT)和接收(USB_RECEIVE)3種狀態(tài)來(lái)處理控制傳輸。圖2為微控制器對(duì)3種包的控制傳輸處理流程。

USB2.0協(xié)議的第九章規(guī)定了11種標(biāo)準(zhǔn)請(qǐng)求,軟件應(yīng)對(duì)這11種標(biāo)準(zhǔn)請(qǐng)求作出正確響應(yīng)。這里以“Get_Desctiptor”和“Set_Descriptor”二個(gè)標(biāo)準(zhǔn)請(qǐng)求為例,并結(jié)合圖2來(lái)說(shuō)明軟件是如何通過(guò)控制傳輸來(lái)響應(yīng)請(qǐng)求的。“Get_Desctiptor”請(qǐng)求開始時(shí),主機(jī)發(fā)送一個(gè)建立包到ISP1581,ISP1581接收到“Get_Desctiptor”建立包后,將產(chǎn)生一個(gè)中斷通知F2812。微控制器響應(yīng)中斷,并通過(guò)選擇端點(diǎn)0SETUP緩沖區(qū)來(lái)讀取建立包的內(nèi)容并將其存入存儲(chǔ)區(qū)。微控制器根據(jù)建立包的內(nèi)容判斷是否為標(biāo)準(zhǔn)請(qǐng)求,如果是一個(gè)標(biāo)準(zhǔn)請(qǐng)求,微控制器必須向控制輸出端點(diǎn)發(fā)送應(yīng)答建立命令,以重新使能下一個(gè)建立階段。接下來(lái)微控制器再判斷控制傳輸是控制讀還是寫,這可以通過(guò)讀建立包中bmRequestType的第8位來(lái)確定。如果控制傳輸是一個(gè)控制讀,器件將在下一個(gè)數(shù)據(jù)階段向主機(jī)發(fā)回?cái)?shù)據(jù)包。微控制器需要設(shè)置一個(gè)標(biāo)準(zhǔn)以指示USB設(shè)備現(xiàn)在處于傳輸模式,即準(zhǔn)備在主機(jī)發(fā)送請(qǐng)求時(shí)發(fā)送數(shù)據(jù)。

建立階段結(jié)束后,主機(jī)會(huì)執(zhí)行數(shù)據(jù)階段。當(dāng)ISP1581接收到所等待的Control_In包后,微控制器將對(duì)ISP1581處于傳輸模式后進(jìn)行數(shù)據(jù)包的發(fā)送進(jìn)行確認(rèn)。ISP1581的控制端點(diǎn)有64B FIFO,每次只能傳輸64B的數(shù)據(jù),微控制器在傳輸階段必須控制傳輸數(shù)據(jù)的數(shù)量。如果剩下的字節(jié)數(shù)大于64,微控制器將先發(fā)送64B并減去參考長(zhǎng)度64。當(dāng)下一個(gè)Control_In包到來(lái)時(shí),微控制器將確定剩余的字節(jié)是否為零。如果已經(jīng)沒(méi)有數(shù)據(jù)要發(fā)送,微控制器將發(fā)送一個(gè)空包向主機(jī)表明數(shù)據(jù)已經(jīng)發(fā)送完畢。

圖2

    如果建立包為“Set_Descriptor”請(qǐng)求,那么建立包中的控制傳輸將指示此包為控制寫類型。在執(zhí)行完“Set_Descriptor”請(qǐng)求過(guò)程后,F(xiàn)2812進(jìn)入等待數(shù)據(jù)階段。主機(jī)發(fā)送Control_Out包標(biāo)志后,當(dāng)ISP1581接收到該數(shù)據(jù)包時(shí)會(huì)對(duì)F2812產(chǎn)生一個(gè)端點(diǎn)0 OUT中斷。微控制器響應(yīng)中斷時(shí),首先確認(rèn)ISP1581是否處于USB_Receive狀態(tài),然后微控制器通過(guò)選擇控制輸出端點(diǎn)來(lái)確認(rèn)緩沖區(qū)是否已滿,同時(shí)將數(shù)據(jù)從緩沖區(qū)讀出。

相對(duì)于控制傳輸來(lái)說(shuō),USB的其他幾種傳輸模式都比較好處理。ISP1581的7個(gè)IN端點(diǎn)和7個(gè)OUT端點(diǎn)均可通過(guò)編程設(shè)置為批量傳輸、中斷傳輸或等時(shí)傳輸模式。在軟件編程中需要注意以下幾點(diǎn):

一是ISP1581的8kB FIFO是所有端點(diǎn)共享的,所以在設(shè)定各個(gè)端點(diǎn)傳輸包大小時(shí),其總和不能超過(guò)8kB;二是在調(diào)試時(shí),可根據(jù)Windows對(duì)USB設(shè)備的枚舉順序進(jìn)行程序調(diào)試;第三,為做到與USB1.1兼容,在全速狀態(tài)下響應(yīng)主機(jī)標(biāo)準(zhǔn)請(qǐng)求時(shí),需要發(fā)送全速描述符。

在完成USB軟件編程后,還需要在主機(jī)方面編寫USB設(shè)備驅(qū)動(dòng)程序和應(yīng)用程序。USB驅(qū)動(dòng)程序可使用Windows的DDK編寫,也可以使用第三方提供的驅(qū)動(dòng)生成軟件編寫(如Jungo公司的WinDriver驅(qū)動(dòng)生成軟件等)。最后采用批量傳輸方式對(duì)系統(tǒng)進(jìn)行測(cè)試(筆者實(shí)際測(cè)得的傳輸速度為9.5MB/s)。本文的設(shè)計(jì)未采用DMA,實(shí)際上,ISP1581采用DMA方式后,最高傳輸速度可以達(dá)到25MB/s。

5 結(jié)束語(yǔ)

本文詳細(xì)介紹了基于ISP1581型接口電路的USB2.0接口軟硬件設(shè)計(jì)。ISP1581是一個(gè)性能優(yōu)化的USB接口電路,具有同外部微控制器接口簡(jiǎn)單、應(yīng)用靈活、調(diào)試方便和性價(jià)比較高等優(yōu)點(diǎn)。采用ISP1581可以快速開發(fā)出高性能的USB2.0設(shè)備。實(shí)際上,USB作為新一代串行總線標(biāo)準(zhǔn),在計(jì)算機(jī)與外設(shè)的互聯(lián)中得到越來(lái)越廣泛的應(yīng)用,因此,USB接口的開發(fā)也會(huì)得到越來(lái)越多的重視。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉