<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > MCU&USB設備控制器IP核的設計

MCU&USB設備控制器IP核的設計

作者: 時(shí)間:2012-02-21 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:用硬件描述語(yǔ)言verilog HDL實(shí)現了一種MCUUSB核。論文首先簡(jiǎn)要介紹了的背景,重點(diǎn)對自主研發(fā)的將MCUUSB集成于一個(gè)芯片的和研究分析。最后給出nc-verilog功能仿真方案以及FPGA驗證方案。使用上華0.35um工藝,流片成功,結果表明此核完全符合設計要求。

本文引用地址:http://dyxdggzs.com/article/149593.htm

1 引言

在傳統的計算機系統上常采用串口(如RS232)和并口連接外圍,但串口和并口都存在著(zhù)通信速度 慢,接口獨占不利于擴展等無(wú)法克服的缺點(diǎn),而通用串行總線(xiàn)(Universal Serial Bus,即USB)因具有傳輸 速度快、支持熱插拔、擴展方便、抗干擾強、成本低、數據傳輸質(zhì)量高、節省系統資源等優(yōu)點(diǎn)而得到了廣 泛的應用,當前它已成為計算機最常用的接口之一[1-3]。

現在USB主要有兩種:帶USB接口的單片機(MCU)和純粹的USB接口芯片。純粹的USB接口芯片僅處 理USB通信,必須有個(gè)外部微處理器來(lái)進(jìn)行協(xié)議處理和數據交換。典型產(chǎn)品有Philips公司的PDIUSBD11(I2C 接口)、PDIUSBD12(并行接口);NS公司的USBN9603/9*(并行接口)。帶USB接口的單片機從應用上又可以 分成兩類(lèi),一類(lèi)是從底層設計專(zhuān)用于USB控制的單片機;另一類(lèi)是增加了USB接口的普通單片機,如Cypress 公司的EZ—USB(基于8051),選擇這類(lèi)USB控制器的最大好處在于開(kāi)發(fā)者對系統結構和指令集非常熟悉,開(kāi) 發(fā)工具簡(jiǎn)單,但價(jià)格比較高,不利于產(chǎn)品升級和改型[4-6]。

然而,國內產(chǎn)品中所用到的USB 芯片都依賴(lài)進(jìn)口,主要由國外的IC 設計芯片廠(chǎng)商如Cypress,NEC 等 一些國際著(zhù)名公司提供。鑒于USB 芯片有很好的市場(chǎng)前景和利潤空間,盡管?chē)鴥绕髽I(yè)或研究機構目前還只 是處于USB 芯片應用開(kāi)發(fā)的技術(shù)水平,人們還是希望自主開(kāi)發(fā)出有自主知識產(chǎn)權的USB 芯片[7-9].因此,近 年來(lái)國內也有許多單位在探索獨立設計USB 芯片。

本論文針對USB1.1 協(xié)議規范,本著(zhù)自主開(kāi)發(fā)USB 控制芯片,把MCU 和USB 控制器用軟核的形式集成在一塊芯片上,微控制器我們是用14 位指令字長(cháng)度,且是單字節指令和單周期指令,其核心指令只有 39 條,容易掌握和設計,而且完全滿(mǎn)足總體設計的要求。

2 MCUUSB 設備控制器工作原理及總體設計

整個(gè)設計的總體結構如圖1 所示,差分信號線(xiàn)D+和D-連接主機,接收時(shí)主機發(fā)送的串行數據通過(guò)收 發(fā)器和USB 設備控制器解碼和校驗等處理后存儲到相應的RAM 中;發(fā)送時(shí)由仲裁模塊控制從RAM 或 ROM 中提取相應數據經(jīng)過(guò)USB 設備控制器組合和收發(fā)器串行發(fā)送給主機。MCU 主要協(xié)助USB 控制器完 成設備和主機之間的數據傳輸。

2.1 MCU 的設計

MCU主要完成各種中斷處理,而且協(xié)助控制器使主機檢測和識別設備;設備剛插上PC時(shí),MCU通過(guò)讀取 ROM中的指令來(lái)初始化專(zhuān)用功能寄存器,使能全局中斷GIE和USB中斷USBint,使控制器能及時(shí)響應各種USB 中斷;全局中斷允許位GIE置位時(shí),允許所有中斷;清零時(shí),禁止所有中斷。當一個(gè)中斷被響應時(shí),GIE 位被清零以禁止其它中斷,并裝載中斷服務(wù)程序,將中斷返回地址壓入堆棧。引起裝載中斷服務(wù)程序的中 斷標志位在重新允許GIE之前通過(guò)軟件清零,以避免重復響應中斷。在中斷服務(wù)程序中,通過(guò)檢測中斷標 志位可以判斷中斷源,各中斷標志位的置位不受GIE的影響;在設備與主機通信過(guò)程中,MCU處理setup包、 in包、out包、ack、nak、stall包等的中斷處理,我們規定了USB中斷、定時(shí)器中斷、外部中斷、GPIO中斷 的中斷入口地址分別為04H、08H、0CH、10H;MCU同時(shí)還對各功能寄存器進(jìn)行相應的操作,比如寫(xiě)端點(diǎn)0的 輸入輸出包允許的最大值,數據的觸發(fā)位DSQ(即Data Toggle機制)等。

2.2 arbRAM、arbROM(仲裁模塊)的設計

在設計中含有兩種存儲器:程序存儲器(ROM)和數據存儲器(SRAM),這兩種存儲器都有自己的總線(xiàn), 在一個(gè)時(shí)鐘周期內,可以同時(shí)對兩種存儲器進(jìn)行訪(fǎng)問(wèn)。USB 和MCU 都可以訪(fǎng)問(wèn)SRAM 和ROM,仲裁模塊就是 為兩者同時(shí)訪(fǎng)問(wèn)時(shí)不起沖突而設置的;USB 訪(fǎng)問(wèn)ROM 的地址空間100h-fffh(我們把設備的描述符存放在這 里),且USB 訪(fǎng)問(wèn)僅取14 位寬的低8 位數據。當USB 與MCU 同時(shí)訪(fǎng)問(wèn)ROM 時(shí),MCU 優(yōu)先。USB 與MCU 共享通 用寄存器(SRAM),當USB 的請求訪(fǎng)問(wèn)存儲器信號到來(lái)時(shí), USB 訪(fǎng)問(wèn)存儲器的地址信號的高三位不等于零 時(shí)屬于USB 訪(fǎng)問(wèn)程序存儲器的地址空間。當USB 與MCU 同時(shí)訪(fǎng)問(wèn)通用寄存器(SRAM)時(shí),MCU 具有優(yōu)先權。

2.3 USB 設備控制器的設計

USB 設備控制器是設計的重點(diǎn)部分,是本論文介紹的重點(diǎn),總體的模塊劃分如圖2 所示;

2.3.1 收發(fā)器的設計

USB 收發(fā)器作為USB 接口的模擬前端主要把主機發(fā)送過(guò)來(lái)的模擬信號轉換成數字信號VP、VM 傳到數字鎖相環(huán)或把協(xié)議引擎發(fā)送過(guò)來(lái)的VP0、VM0 數字信號轉換成模擬信號,并完成串并和并串的轉換;

收發(fā)器的模型如圖3所示,Dplus為正相USB差分數據線(xiàn),Dminu為負相USB差分數據線(xiàn),兩者都是雙向的。 OEn為USB發(fā)送使能,為低時(shí)作為發(fā)送功能,單相輸出口被置為高阻,為高時(shí)作為接收功能,單相輸入口被 置為高阻。

2.3.2 Dpll(數字鎖相環(huán))模塊

數字鎖相環(huán)實(shí)現時(shí)鐘恢復、分頻及同步時(shí)鐘;該模塊用外部的6M時(shí)鐘CLK進(jìn)行分頻,產(chǎn)生1.5M的USB系 統時(shí)鐘,以及把收發(fā)器產(chǎn)生的差分信號和并行信號進(jìn)行鎖相,避免產(chǎn)生亞穩態(tài)。

2.3.3 SIE(串行接口引擎)模塊

SIE是USB控制器的主要模塊;實(shí)現協(xié)議層的功能、信息包的解析和組合、同步信號識別、位填充和位 剝離、NRZI(非歸零反轉)的編碼和解碼、同步字段和包結束碼的檢測和生成、CRC5、CRC16校驗等功能;圖 4是設備接收主機發(fā)送數據時(shí)的狀態(tài)機。

從圖4可以看出設備在沒(méi)有數據傳輸時(shí)處于空閑態(tài),低速設備空閑時(shí)D+、D-處于J態(tài),當有K態(tài)到來(lái)時(shí) 進(jìn)入狀態(tài)轉換;以KJKJKK為同步位,同步字段里的最后的2位是同步字段結束的記號,并且標志了包標識 符(PID,Packet Identifier)的開(kāi)始。然后根據不同的PID分別進(jìn)入地址態(tài)或數據態(tài), 緊跟在地址態(tài)后面的 是端點(diǎn)態(tài),因為地址和端點(diǎn)分別是有7位和4位構成共11位,所以只要5位CRC校驗就可以了,CRC校驗完后就要結束此次的包傳輸,USB協(xié)議中以2個(gè)SE0態(tài)和一個(gè)J態(tài)來(lái)表示包的結束。在數據態(tài)判斷是否為SE0態(tài), SE0態(tài)表示8個(gè)字節的數據都發(fā)送完畢,因為非SE0態(tài)即J、K態(tài)都表示工作態(tài),所以在數據態(tài)中如果總線(xiàn)上 沒(méi)有SE0到來(lái)就一直接收數據。

2.3.4 ENDPCTL(端點(diǎn)控制)模塊

設計中用到兩個(gè)端點(diǎn),端點(diǎn)0和端點(diǎn)1。端點(diǎn)0是半雙工傳輸,主要是在設備的枚舉過(guò)程中用于控制傳輸, 端點(diǎn)1是在枚舉完成后的中斷傳輸中用設備和主機之間的數據傳輸。由于中斷傳輸主要是通過(guò)端點(diǎn)1輸入, 但也有少許輸出(如鍵盤(pán)的LED燈輸出),我們?yōu)榱斯澥≠Y源,所以由端點(diǎn)0完成少許的輸出。

2.3.5 BUFCTL(緩沖器控制)模塊

緩沖器控制模塊是USB和SRAM及ROM的連接橋梁,在主機要求輸入數據的IN token狀態(tài)時(shí),控制器 從SRAM或ROM中取出數據送給主機或主機輸出數據的OUT token狀態(tài)時(shí),控制器把接收到的數據存放在 SRAM中,它主要根據串行接口引擎SIE的接收或發(fā)送準備信號來(lái)控制讀寫(xiě)信號,保證數據能正確傳輸。 USB與MCU共享通用寄存器區,usbREQUST為來(lái)自USB的請求訪(fǎng)問(wèn)存儲器信號,usbADDR為USB訪(fǎng)問(wèn)存 儲器的地址信號,usbADDR[11:8]不等于零時(shí)屬于USB訪(fǎng)問(wèn)程序存儲器的地址空間。當USB與MCU同時(shí)訪(fǎng) 問(wèn)數據存儲器(SRAM)時(shí),MCU具有優(yōu)先權。

3 系統驗證環(huán)境

在完成了Verilog 代碼設計后,我們進(jìn)行了仿真、綜合驗證,前仿用Modelsim、綜合用Synplify Pro、 綜合后仿真用Cadence 中的NC_Verilog,主要由于NC_Verilog 在后仿中的速度要優(yōu)于Modelsim,提高了效 率;圖5 是用NC_Verilog 仿真設備的枚舉過(guò)程;

任何USB 的數據傳輸都是建立在成功通過(guò)枚舉的基礎上的,只有正確完成了枚舉,USB 主機和設備之 間的通信才正在建立起來(lái)。所以枚舉是USB 通信的最關(guān)鍵的一步。在驗證過(guò)程中模擬了PC 主機向設備發(fā)送 各種命令來(lái)完成枚舉。在圖5 中pid[3:0]中D、3、9、2、1、B 分別表示Setup、DATA0、IN、Ack、Out、 DATA1。當設備插上PC 時(shí)主機會(huì )持續的SE0 來(lái)復位設備,這時(shí)設備的地址默認為00,然后主機第一次發(fā)送 Setup 包來(lái)獲取設備的前8 個(gè)設備描述符,當設備成功返回數據后,主機第二次發(fā)送Setup 包來(lái)給設備配 置地址,從圖中faddr[7:0]可以看出我們給設備配置的地址為02,在這以后主機都是通過(guò)這個(gè)地址向設備 獲取全部的18 個(gè)設備描述符和全部的配置描述符集,在取完這些描述符后主機對設備進(jìn)行配置,主機就識 別出設備了。

4 結論

本文描述了自主研發(fā)的MCU+USB設備控制器的設計思路。用Verilog語(yǔ)言對其進(jìn)行了RTL級描述。用 Modelsim進(jìn)行前仿驗證,并在Cadence公司的NC_Verilog上通過(guò)了綜合后仿驗證。為了進(jìn)一步驗證設計的正 確性,本項目選擇了XILINX公司的Virtex xc2s2006pq208芯片及XC18V02的存儲器,并把上述核綜合到此 FPGA上加以驗證。綜合結果表明,協(xié)議層模塊占用了1672個(gè)Slice(71%),652個(gè)Slice Registers(13%),2870個(gè)4 input LUTs(61%),51個(gè)bonded IOBs(36%)。使用上華工藝,該芯片已經(jīng)流片返回了,并通過(guò)demo 板連接到PC上,PC可以檢測出為人體輸入學(xué)設備,說(shuō)明該芯片完全符合制定的設計要求。



關(guān)鍵詞: 設計 IP 控制器 設備 MCU&USB

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>