USB IP核的設(shè)計(jì)和應(yīng)用
摘要:由于USB接口廣泛應(yīng)用,現(xiàn)在眾多SoC中都嵌入了USBIP核。但當(dāng)前市場(chǎng)上的USB IP核一般僅僅針對(duì)某一種總線結(jié)構(gòu)的SoC,可重用性不強(qiáng)。介紹了一款可配置的USB IP核設(shè)計(jì),重點(diǎn)描述USB IP核的結(jié)構(gòu)劃分,詳細(xì)闡述了各模塊的設(shè)計(jì)思想。為了提高USB lP的可重用性,本USB IP核設(shè)計(jì)了總線適配器,經(jīng)過簡(jiǎn)單配置可以用于AMBA ASB總線或WishBone總線結(jié)構(gòu)的SoC中。此IP核進(jìn)行了FPGA驗(yàn)證,驗(yàn)證結(jié)果表明他可作為一個(gè)獨(dú)立的模塊嵌入到SoC系統(tǒng)中。
關(guān)鍵詞:通用串行總線;IP核;SoC;總線適配器
1 引 言
USB(Universal Serial Bus)具有以下特點(diǎn):即插即用、廣泛的軟硬件支持、低功耗、可選擇的多種速度模式、完備的總線拓?fù)浣Y(jié)構(gòu)。隨著半導(dǎo)體工藝技術(shù)的發(fā)展,集成電路設(shè)計(jì)者能夠?qū)⒂鷣碛鷱?fù)雜的功能集成到單硅片上。SoC是將系統(tǒng)集成在一塊芯片上,包括微處理器、模擬IP核、數(shù)字IP核和存儲(chǔ)器(或片外存儲(chǔ)控制接口)等。SoC的一項(xiàng)關(guān)鍵技術(shù)即為IP(Intellectual Property)復(fù)用技術(shù)。IP核是指在電子設(shè)計(jì)中預(yù)先開發(fā)的用于系統(tǒng)芯片設(shè)計(jì)的可復(fù)用構(gòu)件,系統(tǒng)設(shè)計(jì)者在進(jìn)行一個(gè)復(fù)雜設(shè)計(jì)時(shí)將眾多IP核在一個(gè)芯片上有效集成,從而構(gòu)成一個(gè)功能強(qiáng)大的系統(tǒng)。IP技術(shù)在SoC的開發(fā)中可以充分利用已有的開發(fā)成果,從而縮短系統(tǒng)芯片的設(shè)計(jì)周期,提高效率。
在設(shè)計(jì)IP核時(shí)應(yīng)注意其可重用性,為了增強(qiáng)IP核的可能重用性,使IP核能更好地適應(yīng)不同總線結(jié)構(gòu)的SoC平臺(tái),可以為IP核設(shè)計(jì)一個(gè)總線接口模塊。該模塊主要完成片上總線的協(xié)議轉(zhuǎn)換和實(shí)現(xiàn),稱之為總線適配器(BusAdapter)。其特點(diǎn)為:IP核與外部的片上總線標(biāo)準(zhǔn)無關(guān),其邏輯相對(duì)固定,只需對(duì)相應(yīng)的總線適配器進(jìn)行配置就能夠有效地集成于不同片上總線的SoC平臺(tái)。當(dāng)前SoC中常用的總線協(xié)議有三種分別是:ARM公司的AMBA、Silicore公司的WISHBONE SoC Interconnection Archi―tecture和Ahera的Avalon總線。
本文實(shí)現(xiàn)的USB IP核中,設(shè)計(jì)了總線適配器,在綜合前針對(duì)WishBone總線或AMBA ASB總線通過宏定義進(jìn)行設(shè)置,從而使USB IP核能夠直接集成于WishBone或AMBA ASB總線的SoC系統(tǒng)中。
2 USB系統(tǒng)組成部分
系統(tǒng)主要分為三個(gè)部分:主機(jī)、設(shè)備和互連。在任何的系統(tǒng)中,只有一個(gè)主機(jī),與主機(jī)系統(tǒng)的接口稱作主機(jī)控制器。他可由硬件、固件和軟件綜合實(shí)現(xiàn)。設(shè)備可以分為功能性設(shè)備即外設(shè)和集線器,前者作為系統(tǒng)的功能擴(kuò)展設(shè)備而后者作為設(shè)備的擴(kuò)展連接點(diǎn)?;ミB定義了主機(jī)和外設(shè)的連接和通信方式。包括總線拓?fù)浣Y(jié)構(gòu)、內(nèi)部分層關(guān)系、數(shù)據(jù)傳輸模型和總線訪問控制等幾個(gè)部分。一個(gè)簡(jiǎn)單的系統(tǒng)可以由一臺(tái)主機(jī)和一個(gè)外設(shè)構(gòu)成。
3 USB的模塊設(shè)計(jì)
3.1 模塊劃分
USB IP核主要是實(shí)現(xiàn)了USBl.1協(xié)議,在對(duì)整個(gè)協(xié)議分析的基礎(chǔ)上,整個(gè)IP核共分成五大模塊:串行接口引擎模塊、協(xié)議層模塊、端點(diǎn)控制模塊、端點(diǎn)存儲(chǔ)模塊和總線適配器模塊。串行接口引擎主要是支持最底層的USB協(xié)議,由于USB協(xié)議中為了增加抗干擾對(duì)比特流進(jìn)行了“不歸零碼(Non Return to Zero Invert)”的編解碼,同時(shí)為了可以從比特流中提取同步信號(hào)用了“位填充”和“位剔去”。串行接口主要完成比特流方面的處理。協(xié)議層模塊則主要是完成解包和打包。在USB協(xié)議中,數(shù)據(jù)緩沖區(qū)用了端點(diǎn)(Endpoint)這個(gè)概念,不同的緩沖區(qū)用了不同的端點(diǎn)號(hào)來區(qū)分,端點(diǎn)存儲(chǔ)模塊就是相應(yīng)的數(shù)據(jù)緩沖區(qū)。端點(diǎn)控制模塊主要是端點(diǎn)控制寄存器和端點(diǎn)狀態(tài)寄存器,對(duì)端點(diǎn)進(jìn)行相應(yīng)的控制??偩€適配器模塊主要是在不同總線結(jié)構(gòu)的SoC中,對(duì)USB IP核總線接口進(jìn)行相應(yīng)的配置,從而可以進(jìn)行無縫連接到相應(yīng)的SoC中。USB IP核模塊劃分如圖1所示。
3.2 串口接口引擎
串口接口引擎主要是完成USB協(xié)議中比特流的處理。根據(jù)數(shù)據(jù)的傳輸方向可分為發(fā)送部分和接收部分。發(fā)送部分即為USB設(shè)備給USB主機(jī)發(fā)送數(shù)據(jù),接收部分則為USB設(shè)備從USB主機(jī)那里接收數(shù)據(jù)。如圖2所示。
評(píng)論