《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > MCU&USB設(shè)備控制器IP核的設(shè)計

MCU&USB設(shè)備控制器IP核的設(shè)計

2011-09-08
關(guān)鍵詞: SoPC MCU USB 控制器 IP核 Verilog ModelSim

  1 引言

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

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

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

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

  2 MCU&USB 設(shè)備控制器工作原理及總體設(shè)計

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

整個設(shè)計的總體結(jié)構(gòu)

  2.1 MCU 的設(shè)計

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

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

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

  2.3 USB 設(shè)備控制器的設(shè)計

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

總體的模塊劃分

  2.3.1 收發(fā)器的設(shè)計

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

 

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

收發(fā)器的模型

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

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

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

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

設(shè)備接收主機(jī)發(fā)送數(shù)據(jù)時的狀態(tài)機(jī)

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

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

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

  2.3.5 BUFCTL(緩沖器控制)模塊

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

  3 系統(tǒng)驗(yàn)證環(huán)境

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

用NC_Verilog 仿真設(shè)備的枚舉過程

點(diǎn)擊看原圖

 

 

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

  4 結(jié)論

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

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲蜜桃精久久久久久久| 性欧美18~19sex高清播放| 宅男噜噜噜66国产日韩在线观看| 亚洲国产成人91精品| 激情视频一区| 国内成人精品视频| 国产一区在线观看视频| 国产欧美一区二区三区久久人妖| 国产精品电影网站| 欧美性猛交xxxx乱大交蜜桃 | 欧美一区二区精品久久911| 亚洲直播在线一区| 亚洲欧美国产高清| 性欧美长视频| 欧美一区二区女人| 欧美在线中文字幕| 欧美在线电影| 久久先锋影音av| 一区二区在线观看av| 国产亚洲二区| 黄色工厂这里只有精品| 韩国三级电影久久久久久| 国内视频精品| 亚洲高清在线视频| 亚洲激情偷拍| 亚洲狼人综合| 亚洲性夜色噜噜噜7777| 亚洲免费视频一区二区| 欧美一级视频| 久久成人国产| 亚洲理论在线观看| 亚洲一品av免费观看| 午夜精品久久久久影视| 久久er精品视频| 另类综合日韩欧美亚洲| 欧美人成免费网站| 国产精品久久久久天堂| 国产一区二区三区四区三区四| 国产一区二区三区高清在线观看| 伊人春色精品| 99v久久综合狠狠综合久久| 亚洲视频在线观看三级| 午夜宅男欧美| 亚洲黄色免费| 亚洲一区精品视频| 久久久久久久久久久久久久一区| 美女亚洲精品| 国产精品sm| 国内揄拍国内精品久久| 亚洲日本电影在线| 亚洲欧美另类综合偷拍| 亚洲精美视频| 亚洲综合好骚| 榴莲视频成人在线观看| 欧美午夜不卡视频| 国内精品久久久| 日韩午夜精品| 欧美亚洲一区二区在线观看| 亚洲欧洲日本专区| 亚洲中无吗在线| 麻豆久久精品| 国产精品你懂的在线| 亚洲大片免费看| 亚洲视频每日更新| 久久av一区二区三区漫画| 一区二区三区日韩欧美| 久久精品亚洲精品国产欧美kt∨| 欧美风情在线观看| 国产欧美午夜| 99精品欧美一区| 久久精品日产第一区二区| 亚洲先锋成人| 欧美成人中文| 国产亚洲一区二区三区| 夜夜嗨一区二区三区| 亚洲国产精品精华液网站| 亚洲视频在线免费观看| 久久亚洲国产精品一区二区| 欧美系列精品| 亚洲韩国青草视频| 久久成人资源| 午夜精品久久| 欧美日韩美女在线| 亚洲高清一区二| 欧美资源在线| 香蕉亚洲视频| 欧美日韩亚洲一区三区| 亚洲第一中文字幕在线观看| 亚洲欧美日韩一区在线| 亚洲色图自拍| 欧美精品www在线观看| 国产一区二区在线观看免费| 亚洲一区二区在线免费观看视频| 日韩亚洲国产欧美| 免费一区二区三区| 国产一区91精品张津瑜| 亚洲午夜久久久久久久久电影院| 日韩视频免费在线| 欧美xart系列高清| 狠狠色丁香婷综合久久| 香蕉久久一区二区不卡无毒影院| 亚洲无线一线二线三线区别av| 欧美成人精品在线视频| 国产一区久久久| 欧美一区2区三区4区公司二百| 亚洲欧美国产精品桃花| 欧美日韩在线亚洲一区蜜芽| 亚洲欧洲精品一区| 亚洲精品欧美在线| 欧美11—12娇小xxxx| 激情欧美亚洲| 亚洲高清视频的网址| 久久久久国产精品一区| 国产日韩欧美在线视频观看| 亚洲自拍电影| 午夜精品免费视频| 国产精品视频一二| 亚洲一区二区精品在线观看| 亚洲一区免费在线观看| 欧美午夜电影网| 一区二区高清在线| 亚洲主播在线| 国产精品女人网站| 亚洲欧美视频一区二区三区| 欧美一区二区三区啪啪| 国产伦一区二区三区色一情| 午夜视频一区在线观看| 久久精品成人欧美大片古装| 国产日韩一区欧美| 欧美专区在线播放| 免费成人高清视频| 亚洲欧洲视频在线| 亚洲性人人天天夜夜摸| 国产精品vip| 亚洲一区精品视频| 久久精品国产99| 韩国一区二区三区美女美女秀| 亚洲第一精品影视| 欧美~级网站不卡| 亚洲美女av在线播放| 亚洲婷婷综合久久一本伊一区| 欧美午夜a级限制福利片| 亚洲午夜久久久久久尤物| 欧美综合国产| 在线日韩欧美| 亚洲午夜性刺激影院| 国产精品主播| 亚洲二区在线| 欧美另类videos死尸| 一区二区三区国产盗摄| 欧美一区2区视频在线观看 | 亚洲人成77777在线观看网| 欧美福利电影在线观看| 一本大道久久a久久综合婷婷| 午夜精品剧场| 狠狠色丁香久久婷婷综合丁香| 亚洲精品欧美一区二区三区| 欧美三级欧美一级| 香蕉久久国产| 欧美连裤袜在线视频| 亚洲一区二区网站| 另类综合日韩欧美亚洲| 99在线观看免费视频精品观看| 午夜免费久久久久| 激情六月婷婷综合| 亚洲深夜av| 国产一区二区在线观看免费播放 | 国产一区二区精品丝袜| 亚洲人成在线播放网站岛国| 欧美涩涩视频| 欧美中文在线观看| 欧美精品亚洲精品| 午夜精品福利在线| 欧美精品18+| 欧美在线一区二区三区| 欧美日韩天堂| 亚洲国产成人91精品| 欧美三区在线| 亚洲第一在线| 国产精品家庭影院| 亚洲日本成人网| 国产精品亚洲人在线观看| 亚洲欧洲日本一区二区三区| 国产精品一区二区黑丝| 日韩视频精品| 国内自拍亚洲| 午夜久久久久久| 91久久午夜| 久久影院午夜论| 亚洲与欧洲av电影| 欧美日韩成人综合在线一区二区 | 亚洲人成久久| 久久婷婷国产综合尤物精品| 一本一本久久a久久精品综合妖精| 美女免费视频一区| 亚洲女优在线| 欧美日韩综合视频| 亚洲精品资源| 伊人久久综合97精品| 欧美影院视频|