亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        U盤(pán)SoC的設(shè)計(jì)與實(shí)現(xiàn)

        2012-01-18 12:03:32劉衛(wèi)東
        電子設(shè)計(jì)工程 2012年23期
        關(guān)鍵詞:信號(hào)設(shè)備設(shè)計(jì)

        趙 靜 , 劉衛(wèi)東 ,2

        (1.中國(guó)海洋大學(xué) 信息科學(xué)與工程學(xué)院,山東 青島 266100;2.海信電器股份有限公司 山東 青島 266071)

        隨著便攜式設(shè)備的廣泛使用,移動(dòng)存儲(chǔ)設(shè)備被廣泛用于信息存儲(chǔ)和傳輸。在目前諸多存儲(chǔ)設(shè)備中,U盤(pán)憑借其體積小、容量大、攜帶方便、支持熱插拔等諸多優(yōu)點(diǎn),得到了迅速的普及。而且隨著USB技術(shù)的廣泛應(yīng)用,在各種SoC系統(tǒng)中集成USB功能也成為一種必然趨勢(shì)。所以對(duì)SoC芯片中集成USB接口的研究開(kāi)發(fā),具有較高的實(shí)用價(jià)值。

        文中通過(guò)分析USB[1]協(xié)議,設(shè)計(jì)出了一種符合該協(xié)議的低速和全速的USB設(shè)備控制器,并將該控制器與8051CPU核,NandFlash,UDC_Control通過(guò)總線連接起來(lái),組成了一個(gè)U盤(pán)SoC系統(tǒng),并對(duì)此U盤(pán)SoC系統(tǒng)加以仿真驗(yàn)證。

        1 系統(tǒng)的整體設(shè)計(jì)

        現(xiàn)在的USB控制器主要有兩種:帶USB接口的單片機(jī)(MCU)和純粹的USB接口芯片。純粹的USB接口芯片僅處理USB通信,必須有一個(gè)外部微處理器來(lái)進(jìn)行協(xié)議處理和數(shù)據(jù)交換。帶USB接口的單片機(jī)從應(yīng)用上又可以分成兩類(lèi),一類(lèi)是從底層設(shè)計(jì)專用于USB控制的單片機(jī);另一類(lèi)是增加了USB接口的普通單片機(jī),這類(lèi)USB控制器的最大好處在于開(kāi)發(fā)者對(duì)系統(tǒng)結(jié)構(gòu)和指令集非常熟悉,開(kāi)發(fā)工具簡(jiǎn)單,但價(jià)格比較高,不利于產(chǎn)品升級(jí)和改型。

        根據(jù)上述情況,文中介紹了一種U盤(pán)SoC設(shè)計(jì):將CPU和USB CORE通過(guò)UDC_Control模塊連接起來(lái),再加上NandFlash模塊,通過(guò)總線連接組成一個(gè)SoC系統(tǒng)。其整體框圖如下圖1所示。

        圖1 U盤(pán)SoC的整體框圖Fig.1 Frame diagram of SoCof USB flash disk

        2 模塊的詳細(xì)設(shè)計(jì)

        2.1 USB CORE

        此模塊為該設(shè)計(jì)的核心模塊,實(shí)現(xiàn)USB1.1總線接口層設(shè)備控制器的功能,是本文設(shè)計(jì)的重點(diǎn)。USB設(shè)備控制器[2]的架構(gòu)框圖如圖2所示,rxdp、rxdm為從主機(jī)發(fā)送過(guò)來(lái)的信號(hào),txdp、txdm為USB模塊發(fā)送給主機(jī)的信號(hào)。其中MCU通過(guò)控制SIE來(lái)對(duì)USB設(shè)備進(jìn)行控制。如圖2所示,本設(shè)計(jì)分為6個(gè)模塊。下面分別介紹各個(gè)模塊。

        圖2 USB設(shè)備控制器的架構(gòu)框圖Fig.2 Frame diagram of USB device controller

        2.1.1 rx模塊

        rx 模塊是總線接收模塊,實(shí)現(xiàn)USB數(shù)據(jù)傳輸接收物理層的功能,把串行的USB數(shù)據(jù)去掉數(shù)據(jù)包頭,進(jìn)行NRZI解碼,去掉填充位,并將串行的數(shù)據(jù)轉(zhuǎn)換成并行的8位數(shù)據(jù)。然后將數(shù)據(jù)送往下一模塊處理。本模塊又分為dpll、解碼和總線狀態(tài)監(jiān)測(cè)模塊。如圖3所示。

        圖3 rx模塊框圖Fig.3 Block diagram of rx module

        dpll模塊用48 MHz的時(shí)鐘把總線上傳輸?shù)臅r(shí)鐘和數(shù)據(jù)信號(hào)恢復(fù)出來(lái)。用48 MHz的時(shí)鐘對(duì)總線上的數(shù)據(jù)信號(hào)進(jìn)行采樣,以去掉抖動(dòng),然后產(chǎn)生總線信號(hào)電平變化的指示信號(hào)change信號(hào),change信號(hào)的改變可控制采樣點(diǎn),從而保證數(shù)據(jù)信號(hào)的采樣點(diǎn)固定在每位數(shù)據(jù)信號(hào)的中央。

        NRZI解碼模塊檢測(cè)到同步頭后,根據(jù)NRZI的原理,將rxdp和rxdp延后一拍的數(shù)據(jù)進(jìn)行同或操作,得到的數(shù)據(jù)經(jīng)過(guò)去填充位,串并轉(zhuǎn)換后,送入解包模塊。

        總線狀態(tài)監(jiān)測(cè)模塊監(jiān)測(cè)總線的狀態(tài),置位suspend,resume,reset等狀態(tài)指示信號(hào)。若Idle時(shí)間超過(guò)3ms時(shí),就將suspend信號(hào)置高,在suspend狀態(tài)時(shí)檢測(cè)到總線信號(hào)變化時(shí),將resume信號(hào)置高,若 se0時(shí)間超過(guò) 2.5μs時(shí),就將reset信號(hào)置高。

        2.1.2 解包模塊

        本模塊接收從rx模塊送過(guò)來(lái)的并行數(shù)據(jù),按照USB數(shù)據(jù)包協(xié)議規(guī)范對(duì)接收的數(shù)據(jù)進(jìn)行解釋,并對(duì)數(shù)據(jù)做CRC校驗(yàn),給出當(dāng)前接收包的類(lèi)型,根據(jù)不同類(lèi)型的包的結(jié)構(gòu),從包中解出相應(yīng)的信息送給下一模塊。

        2.1.3 req_dec模塊

        本模塊對(duì)setup階段USB的標(biāo)準(zhǔn)請(qǐng)求進(jìn)行解釋,提供和USB請(qǐng)求相關(guān)的信號(hào)給SIE模塊,判斷function和endpoint的地址是否合法。若標(biāo)準(zhǔn)請(qǐng)求中對(duì)某個(gè)端點(diǎn)所請(qǐng)求的操作和預(yù)定的不符,則會(huì)產(chǎn)生錯(cuò)誤信號(hào)。

        2.1.4 SIE模塊

        SIE(Serial Interface Engine)模塊是 USB CORE的核心模塊[3],根據(jù)從解包模塊傳送過(guò)來(lái)的信號(hào)與從MCU傳送過(guò)來(lái)的接口握手信號(hào),按照USB的相關(guān)協(xié)議,產(chǎn)生打包模塊的控制信號(hào)和MCU的控制信號(hào),從而控制總線上的數(shù)據(jù)發(fā)送。

        控制傳輸?shù)膶?shí)現(xiàn):

        SETUP階段:從圖4中可看出,當(dāng)token_valid_i、Pid_setup、ep0_sel有效時(shí),表明收到一個(gè)有效的令牌包,udc_as_o被拉高,表示開(kāi)始數(shù)據(jù)傳送,轉(zhuǎn)入ctrl_setup_stage狀態(tài),此時(shí)cpu把device_bufok_i信號(hào)拉高,隨后開(kāi)始接收數(shù)據(jù),在setup階段8個(gè)字節(jié)的標(biāo)準(zhǔn)請(qǐng)求數(shù)據(jù)接收完成后,send_hdsk_pkt_o信號(hào)變高,表示數(shù)據(jù)接收正確,要求發(fā)送一個(gè)ACK的握手包。

        圖4 SETUP階段數(shù)據(jù)包傳送實(shí)現(xiàn)的狀態(tài)機(jī)Fig.4 State machine of data packet transmission in setup stage

        DATA階段:數(shù)據(jù)階段是可選的,并且數(shù)據(jù)階段的傳送方向可以是IN或OUT。以IN為例來(lái)介紹,當(dāng)Pid_in、token_valid_i、ep0_sel有效時(shí),udc_as_o被拉高,表示開(kāi)始數(shù)據(jù)傳送,轉(zhuǎn)入ctrl_in_stage_empty,接著轉(zhuǎn)入ctrl_in_stage狀態(tài),CPU將device_bufok_i拉高,表示開(kāi)始接收數(shù)據(jù),等待數(shù)據(jù)傳完后,send_hdsk_pkt_o信號(hào)變高,表示數(shù)據(jù)接收正確,并將toggle機(jī)制翻轉(zhuǎn),要求打包模塊發(fā)送一個(gè)ACK的握手包。

        STATUS階段:STATUS階段也分為STATUS IN和STATUSOUT兩種情況。在STATUSOUT階段,接受到HOST發(fā)送過(guò)來(lái)的空數(shù)據(jù)包后,狀態(tài)機(jī)會(huì)將send_hdsk_pkt_o信號(hào)拉高,發(fā)送ACK包給HOST。其狀態(tài)機(jī)同SETUP狀態(tài)機(jī)類(lèi)似。

        中斷、批量、同步傳輸?shù)腎N實(shí)現(xiàn):在硬件設(shè)計(jì)上,中斷、批量和同步3種傳輸方式的處理都是一樣的[4],只是在系統(tǒng)配置時(shí),各傳輸方式對(duì)應(yīng)的端點(diǎn)不同。下面以3種傳輸方式的IN傳輸來(lái)介紹。圖5為3種傳輸方式的IN傳輸?shù)臓顟B(tài)機(jī)。

        圖5 中斷、批量、同步傳輸?shù)腎N傳輸狀態(tài)機(jī)Fig.5 State machine of Interrupt、Bulk、Isochronous IN transactions

        從上圖可看出,在收到IN令牌后,狀態(tài)機(jī)將udc_as_o拉高,表示開(kāi)始傳送數(shù)據(jù),轉(zhuǎn)入In_transfer_empty狀態(tài),再轉(zhuǎn)入In_transfer狀態(tài),cpu若能傳送數(shù)據(jù),則把device_buf_ok_i信號(hào)置高,開(kāi)始接收數(shù)據(jù),等待數(shù)據(jù)傳送完畢時(shí),狀態(tài)機(jī)會(huì)將send_data_pkt_o拉高,將此信號(hào)送至打包模塊,從而將所需要的數(shù)據(jù)發(fā)送給HOST。

        2.1.5 打包模塊

        本模塊接收從SIE傳來(lái)的控制信號(hào),根據(jù)USB協(xié)議,產(chǎn)生所需要的包傳送給發(fā)送模塊。

        2.1.6 tx模塊

        tx模塊是總線發(fā)送模塊。它將打包模塊發(fā)送過(guò)來(lái)的包信息,進(jìn)行并串轉(zhuǎn)換,位填充,NRZI編碼后,將數(shù)據(jù)發(fā)送給主機(jī)。此模塊同rx模塊類(lèi)似,不再贅述。

        2.2 8051CPU

        此設(shè)計(jì)中的CPU[5]為一個(gè)驗(yàn)證過(guò)的IP核。它包含:1個(gè)8位中央處理器、1個(gè)片內(nèi)振蕩器及時(shí)鐘電路、4 KB ROM程序存儲(chǔ)器、128B RAM數(shù)據(jù)存儲(chǔ)器、可尋址64 KB外部數(shù)據(jù)存儲(chǔ)器和64 KB外部程序存儲(chǔ)器的控制電路、32條可編程的I/O線(4個(gè)8位并行I/O接口)、2個(gè)16位的定時(shí)/計(jì)數(shù)器、1個(gè)可編程全雙工串行接口、5個(gè)中斷源、2個(gè)優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)。將USB的通信請(qǐng)求接入到CPU的一個(gè)外部中斷接口上,當(dāng)USB的通信請(qǐng)求到來(lái)時(shí),系統(tǒng)會(huì)產(chǎn)生一個(gè)中斷,轉(zhuǎn)入中斷服務(wù)程序。

        此外,還需要設(shè)計(jì)一個(gè)CPU的固件firmware,實(shí)現(xiàn)USB CORE的上電初始化過(guò)程 (向UDC_Control中的控制寄存器和狀態(tài)寄存器寫(xiě)入初始數(shù)據(jù))、USB CORE中斷處理并完成USB傳輸事務(wù)、使設(shè)備擺脫異常狀態(tài)等功能。

        2.3 UDC_Control

        UDC_Control模塊位于CPU和USB CORE之間,它完成CPU對(duì)USB通信的控制和數(shù)據(jù)的讀寫(xiě)操作。UDC_CTRL模塊中設(shè)有22個(gè)特殊功能寄存器,來(lái)完成USB通信。

        USB_INT1和USB_INT2為中斷寄存器,其各個(gè)位分別表示USB通信的9種中斷請(qǐng)求 (剩下的位為保留位),但USB CORE一次只能向CPU提供一個(gè)中斷信號(hào),這兩個(gè)USB_INT寄存器供軟件在進(jìn)入中斷后查詢是USB的何種中斷。EP0_CTRL、EP0_INFIFO_DATA、EP0_INFIFO_CNT、

        EP0_OUTFIFO_DATA、EP0_OUTFIFO_CNT這 5個(gè)寄存器都是與Endpoint0相關(guān)的,Endpoint0是由一個(gè)輸入端點(diǎn)和一個(gè)輸出端點(diǎn)組成,用來(lái)實(shí)現(xiàn)控制傳輸。所有支持USB標(biāo)準(zhǔn)請(qǐng)求和Class定義的請(qǐng)求都通過(guò)這個(gè)端點(diǎn)來(lái)處理。其中EP0_CTRL用來(lái)對(duì)Endpoint0的傳輸進(jìn)行控制,當(dāng)CPU要向USB主機(jī)傳送數(shù)據(jù)時(shí),就會(huì)將數(shù)據(jù)寫(xiě)入EP0_INFIFO_DATA,EP0_INFIFO_CNT是CPU向EP0_INFIFO_DATA中寫(xiě)入數(shù)據(jù)的 字 節(jié) 數(shù) 。 EP0_OUT ,Endpoint1,Endpoint2,Endpoint3,Endpoint4的寄存器情況類(lèi)似,在此不再多做介紹。UDC_STATUS和DEVICE_CTRL是接口狀態(tài)和控制寄存器,對(duì)CPU和USB CORE的通信進(jìn)行監(jiān)控。

        2.4 NandFlash

        針對(duì)NandFlash讀寫(xiě)的特點(diǎn),特別是其可隨機(jī)讀,但無(wú)法隨機(jī)寫(xiě)的問(wèn)題,需要通過(guò)設(shè)置緩沖區(qū)來(lái)解決。在與USB Host進(jìn)行數(shù)據(jù)交換的過(guò)程中,最小的單位是扇區(qū):512字節(jié)。由于NandFlash在寫(xiě)之前必須先擦除,而一擦又必須擦一個(gè)Block,因此在擦除某Block之前必須保存同一個(gè)Block中有關(guān)扇區(qū)的數(shù)據(jù)。因此,如果每收到一個(gè)扇區(qū)的內(nèi)容就進(jìn)行一次擦、保存、寫(xiě)的操作,系統(tǒng)任務(wù)將十分繁重,無(wú)法及時(shí)響應(yīng)USB Host端的請(qǐng)求。因此,在系統(tǒng)中設(shè)置32K的緩沖區(qū),每完一次數(shù)據(jù)傳輸后,記下本次要寫(xiě)的開(kāi)始扇區(qū)和總扇區(qū)數(shù),將本次要寫(xiě)的數(shù)據(jù)涉及的扇區(qū)以外的數(shù)據(jù)從NandFlash中讀出來(lái),存放在緩沖區(qū)中對(duì)應(yīng)位置,然后擦除一個(gè)Block,再將緩沖區(qū)中內(nèi)容一次全部重新寫(xiě)入NandFlash。

        3 仿真與驗(yàn)證

        3.1 仿真環(huán)境的介紹

        為了驗(yàn)證此設(shè)計(jì),需要建立一個(gè)和實(shí)際應(yīng)用情況類(lèi)似的仿真驗(yàn)證平臺(tái),這個(gè)仿真系統(tǒng)平臺(tái)包括USB CORE的RTL代碼[6]、CPU核、控制軟件的二進(jìn)制代碼、UDC_Control、NandFlash、USB Host的仿真模型等。整個(gè)系統(tǒng)的Modelsim仿真環(huán)境如圖6所示。

        圖6 設(shè)計(jì)的Modelsim測(cè)試平臺(tái)Fig.6 Diagram of Modelsim simulation environment of this design

        USB HOST的仿真模型用來(lái)模擬PC機(jī)上的主機(jī)控制器,完成上電檢測(cè)、標(biāo)準(zhǔn)設(shè)備請(qǐng)求、批量傳輸請(qǐng)求等功能,用來(lái)檢測(cè)USB設(shè)備應(yīng)答數(shù)據(jù)是否正確。負(fù)責(zé)讀取主控制器的事務(wù)處理列表,并將它們安排在一系列長(zhǎng)度的幀中,發(fā)送到USB總線上。

        3.2 仿真結(jié)果

        通過(guò)此測(cè)試平臺(tái),成功的完成了USB主機(jī)與U盤(pán)SoC之間的通信。仿真圖如圖7所示。

        圖7 仿真圖Fig.7 Figure of simulation

        從仿真圖中可以看出,通過(guò)控制傳輸對(duì)設(shè)備進(jìn)行了復(fù)位、獲取設(shè)備描述符、配置地址等操作。接著進(jìn)行了一個(gè)bulk out和bulk in傳輸。主機(jī)準(zhǔn)確的將數(shù)據(jù)寫(xiě)入了NandFlash,并且正確的將數(shù)據(jù)讀出。仿真表明,設(shè)計(jì)的結(jié)果滿足了USB設(shè)備控制器的規(guī)格要求。

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

        文中探討了U盤(pán)SoC的設(shè)計(jì),并結(jié)合仿真工具通過(guò)了RTL級(jí)仿真,證明了本設(shè)計(jì)的可行性。該U盤(pán)SoC設(shè)計(jì)具有便于修改、易于實(shí)現(xiàn)的特點(diǎn)。

        [1]周立功.USB2.0與OTG規(guī)范及開(kāi)發(fā)指南[M].北京:北京航空航天大學(xué)出版社,2004.

        [2]邊海龍,賈少華.USB2.0設(shè)備的設(shè)計(jì)與開(kāi)發(fā)[M].北京:人民郵電出版社,2004.

        [3]李美峰,戴冠中,胡偉.USB2.0設(shè)備控制器IP核的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2008(12):1943-1944,1956.LI Mei-feng,DAI Guan-zhong,HU Wei. Design and implementation of a high-speed USB device controller IP core[J].Computer Measurement&Control,2008(12):1943-1944,1956.

        [4]楊先文,李錚,王安.USB1.1設(shè)備控制器IP核的設(shè)計(jì)與實(shí)現(xiàn)[J].小型微型計(jì)算機(jī)系統(tǒng),2010(11):2300-2304.YANG Xian-wen,LI Zheng,WANG An.Design and implementation of USB1.1 device controller IP core[J].Journal of Chinese Computer Systems,2010(11):2300-2304.

        [5]李群芳,肖看.單片機(jī)原理、接口及應(yīng)用[M].北京:清華大學(xué)出版社,2005.

        [6]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2008.

        猜你喜歡
        信號(hào)設(shè)備設(shè)計(jì)
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        信號(hào)
        鴨綠江(2021年35期)2021-04-19 12:24:18
        完形填空二則
        瞞天過(guò)?!律O(shè)計(jì)萌到家
        基于MPU6050簡(jiǎn)單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        基于FPGA的多功能信號(hào)發(fā)生器的設(shè)計(jì)
        電子制作(2018年11期)2018-08-04 03:25:42
        設(shè)計(jì)秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計(jì)叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        500kV輸變電設(shè)備運(yùn)行維護(hù)探討
        基于LabVIEW的力加載信號(hào)采集與PID控制
        乱人伦中文字幕成人网站在线| 老熟女老女人国产老太| 免费大片黄国产在线观看| 亚洲欧美激情精品一区二区| 无码午夜剧场| 18禁成人免费av大片一区| 一区二区精品国产亚洲| 人人摸人人操| 午夜免费福利小电影| 麻豆国产人妻欲求不满谁演的| 一区二区三区日本大片| 国产丝袜美腿嫩模视频诱惑| 老妇高潮潮喷到猛进猛出| 国产69精品久久久久app下载| 成人精品综合免费视频| 国产成人久久精品激情91| 中文字幕一区乱码在线观看| 少妇被又大又粗又爽毛片| 久久精品国产自清天天线| 综合网在线视频| 日本黄色高清视频久久| 麻豆亚洲一区| 久久亚洲av无码西西人体| 欧美日韩在线免费看| 久久精品人妻嫩草av蜜桃| 国产毛片黄片一区二区三区| 熟妇人妻av中文字幕老熟妇| 色欲AV成人无码精品无码| 国产黄色一级大片一区二区 | 美女脱了内裤张开腿让男人桶网站| 亚洲欧美日韩精品高清| 日韩国产自拍成人在线| 色综合久久久久综合体桃花网| 国产人妻精品一区二区三区不卡 | 国产成人久久精品77777综合| 亚洲一级无码AV毛片久久 | 日本天堂免费观看| 色妺妺视频网| 国产一区二区三区蜜桃av| 亚洲大尺度无码无码专区| 欧美v亚洲v日韩v最新在线|