日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 工業(yè)控制 > 工業(yè)控制
[導讀]摘要:設(shè)計和實現(xiàn)了U盤SoC。本系統(tǒng)包括USB CORE和已驗證過的CPU核、Nandflash、UDC_Control等模塊,模塊間通過總線進行通信。其中USB CORE為本文設(shè)計的重點,用Verilog HDL語言實現(xiàn),同時并為此設(shè)計搭建了功能完備的

摘要:設(shè)計和實現(xiàn)了U盤SoC。本系統(tǒng)包括USB CORE和已驗證過的CPU核、Nandflash、UDC_Control等模塊,模塊間通過總線進行通信。其中USB CORE為本文設(shè)計的重點,用Verilog HDL語言實現(xiàn),同時并為此設(shè)計搭建了功能完備的Modelsim仿真環(huán)境,進行了仿真驗證。
關(guān)鍵詞:U盤;片上系統(tǒng);USB;Verilog HDL

    隨著便攜式設(shè)備的廣泛使用,移動存儲設(shè)備被廣泛用于信息存儲和傳輸。在目前諸多存儲設(shè)備中,U盤憑借其體積小、容量大、攜帶方便、支持熱插拔等諸多優(yōu)點,得到了迅速的普及。而且隨著USB技術(shù)的廣泛應(yīng)用,在各種SoC系統(tǒng)中集成USB功能也成為一種必然趨勢。所以對SoC芯片中集成USB接口的研究開發(fā),具有較高的實用價值。
    文中通過分析USB協(xié)議,設(shè)計出了一種符合該協(xié)議的低速和全速的USB設(shè)備控制器,并將該控制器與8051CPU核,NandFlash,UDC_Control通過總線連接起來,組成了一個U盤SoC系統(tǒng),并對此U盤SoC系統(tǒng)加以仿真驗證。

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


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

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


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


    dpll模塊用48 MHz的時鐘把總線上傳輸?shù)臅r鐘和數(shù)據(jù)信號恢復出來。用48 MHz的時鐘對總線上的數(shù)據(jù)信號進行采樣,以去掉抖動,然后產(chǎn)生總線信號電平變化的指示信號change信號,change信號的改變可控制采樣點,從而保證數(shù)據(jù)信號的采樣點固定在每位數(shù)據(jù)信號的中央。
    NRZI解碼模塊檢測到同步頭后,根據(jù)NRZI的原理,將rxdp和rxdp延后一拍的數(shù)據(jù)進行同或操作,得到的數(shù)據(jù)經(jīng)過去填充位,串并轉(zhuǎn)換后,送入解包模塊。
    總線狀態(tài)監(jiān)測模塊監(jiān)測總線的狀態(tài),置位suspend,resume,reset等狀態(tài)指示信號。若Idle時間超過3ms時,就將suspend信號置高,在suspend狀態(tài)時檢測到總線信號變化時,將resume信號置高,若se0時間超過2.5μs時,就將reset信號置高。
2.1.2 解包模塊
   
本模塊接收從rx模塊送過來的并行數(shù)據(jù),按照USB數(shù)據(jù)包協(xié)議規(guī)范對接收的數(shù)據(jù)進行解釋,并對數(shù)據(jù)做CRC校驗,給出當前接收包的類型,根據(jù)不同類型的包的結(jié)構(gòu),從包中解出相應(yīng)的信息送給下一模塊。
2.1.3 req_dec模塊
   
本模塊對setup階段USB的標準請求進行解釋,提供和USB請求相關(guān)的信號給SIE模塊,判斷funetion和endpoint的地址是否合法。若標準請求中對某個端點所請求的操作和預定的不符,則會產(chǎn)生錯誤信號。
2.1.4 SIE模塊
    SIE(Serial Interface Engine)模塊是USB CORE的核心模塊,根據(jù)從解包模塊傳送過來的信號與從MCU傳送過來的接口握手信號,按照USB的相關(guān)協(xié)議,產(chǎn)生打包模塊的控制信號和MCU的控制信號,從而控制總線上的數(shù)據(jù)發(fā)送。
    控制傳輸?shù)膶崿F(xiàn):
    SETUP階段:從圖4中可看出,當token_valid_i、Pid_setup、ep0_sel有效時,表明收到一個有效的令牌包,udc_as_o被拉高,表示開始數(shù)據(jù)傳送,轉(zhuǎn)入ctrl_setup_stage狀態(tài),此時cpu把device_bufok_i信號拉高,隨后開始接收數(shù)據(jù),在setup階段8個字節(jié)的標準請求數(shù)據(jù)接收完成后,send_hdsk_pkt_o信號變高,表示數(shù)據(jù)接收正確,要求發(fā)送一個ACK的握手包。


    DATA階段:數(shù)據(jù)階段是可選的,并且數(shù)據(jù)階段的傳送方向可以是IN或OUT。以IN為例來介紹,當Pid_in、token_valid_i、ep0_sel有效時,udc_as_o被拉高,表示開始數(shù)據(jù)傳送,轉(zhuǎn)入ctrl_in_stage_empty,接著轉(zhuǎn)入ctrl_in_stage狀態(tài),CPU將device_bufok_i拉高,表示開始接收數(shù)據(jù),等待數(shù)據(jù)傳完后,send_hdsk_pkt_o信號變高,表示數(shù)據(jù)接收正確,并將toggle機制翻轉(zhuǎn),要求打包模塊發(fā)送一個ACK的握手包。
    STATUS階段:STATUS階段也分為STATUS IN和STATUS OUT兩種情況。在STATUS OUT階段,接受到HOST發(fā)送過來的空數(shù)據(jù)包后,狀態(tài)機會將send_hdsk_pkt_o信號拉高,發(fā)送ACK包給HOST。其狀態(tài)機同SETUP狀態(tài)機類似。
    中斷、批量、同步傳輸?shù)腎N實現(xiàn):在硬件設(shè)計上,中斷、批量和同步3種傳輸方式的處理都是一樣的,只是在系統(tǒng)配置時,各傳輸方式對應(yīng)的端點不同。下面以3種傳輸方式的IN傳輸來介紹。圖5為3種傳輸方式的IN傳輸?shù)臓顟B(tài)機。


    從上圖可看出,在收到IN令牌后,狀態(tài)機將tide_as_o拉高,表示開始傳送數(shù)據(jù),轉(zhuǎn)入In_transfer_empty狀態(tài),再轉(zhuǎn)入In_transfer狀態(tài),cpu若能傳送數(shù)據(jù),則把device_buf_ok_i信號置高,開始接收數(shù)據(jù),等待數(shù)據(jù)傳送完畢時,狀態(tài)機會將send_data_pkt_o拉高,將此信號送至打包模塊,從而將所需要的數(shù)據(jù)發(fā)送給HOST。
2.1.5 打包模塊
   
本模塊接收從SIE傳來的控制信號,根據(jù)USB協(xié)議,產(chǎn)生所需要的包傳送給發(fā)送模塊。
2.1.6 tx模塊
    tx模塊是總線發(fā)送模塊。它將打包模塊發(fā)送過來的包信息,進行并串轉(zhuǎn)換,位填充,NRZI編碼后,將數(shù)據(jù)發(fā)送給主機。此模塊同rx模塊類似,不再贅述。
2.2 8051CPU
   
此設(shè)計中的CPU為一個驗證過的IP核。它包含:1個8位中央處理器、1個片內(nèi)振蕩器及時鐘電路、4 KB ROM程序存儲器、128B RAM數(shù)據(jù)存儲器、可尋址64 KB外部數(shù)據(jù)存儲器和64 KB外部程序存儲器的控制電路、32條可編程的I/O線(4個8位并行I/O接口)、2個16位的定時,計數(shù)器、1個可編程全雙工串行接口、5個中斷源、2個優(yōu)先級嵌套中斷結(jié)構(gòu)。將USB的通信請求接入到CPU的一個外部中斷接口上,當USB的通信請求到來時,系統(tǒng)會產(chǎn)生一個中斷,轉(zhuǎn)入中斷服務(wù)程序。
    此外,還需要設(shè)計一個CPU的固件firmware,實現(xiàn)USBCORE的上電初始化過程(向UDC_Control中的控制寄存器和狀態(tài)寄存器寫入初始數(shù)據(jù))、USB CORE中斷處理并完成USB傳輸事務(wù)、使設(shè)備擺脫異常狀態(tài)等功能。
2.3 UDC_Control
    UDC_Control模塊位于CPU和USB CORE之間,它完成CPU對USB通信的控制和數(shù)據(jù)的讀寫操作。UDC_CTRL模塊中設(shè)有22個特殊功能寄存器,來完成USB通信。
    USB_INT1和USB_INT2為中斷寄存器,其各個位分別表示USB通信的9種中斷請求(剩下的位為保留位),但USBCORE一次只能向CPU提供一個中斷信號,這兩個USB_INT寄存器供軟件在進入中斷后查詢是USB的何種中斷。EP0_CTRL、EP0_INFIFO_DATA、EPO_INFIFO_CNT、EP0_OUTFIFO_ DATA、EP0_OUTFIFO_CNT這5個寄存器都是與Endpoint0相關(guān)的,Endpoint0是由一個輸入端點和一個輸出端點組成,用來實現(xiàn)控制傳輸。所有支持USB標準請求和Class定義的請求都通過這個端點來處理。其中EP0_CTRL用來對Endpoint0的傳輸進行控制,當CPU要向USB主機傳送數(shù)據(jù)時,就會將數(shù)據(jù)寫入EP0_INFIFO_DATA,EP0_INFIFO_CNT是CPU向EP0_INFIFO_DATA中寫入數(shù)據(jù)的字節(jié)數(shù)。EP0_OUT,Endpoint1,Endpoint2,Endpoint3,Endpoint4的寄存器情況類似,在此不再多做介紹。UDC_STATUS和DEVICE_CTRL是接口狀態(tài)和控制寄存器,對CPU和USB CORE的通信進行監(jiān)控。
2.4 NandFlash
   
針對NandFlash讀寫的特點,特別是其可隨機讀,但無法隨機寫的問題,需要通過設(shè)置緩沖區(qū)來解決。在與USB Host進行數(shù)據(jù)交換的過程中,最小的單位是扇區(qū):512字節(jié)。由于NandFlash在寫之前必須先擦除,而一擦又必須擦一個Block,因此在擦除某Block之前必須保存同一個Block中有關(guān)扇區(qū)的數(shù)據(jù)。因此,如果每收到一個扇區(qū)的內(nèi)容就進行一次擦、保存、寫的操作,系統(tǒng)任務(wù)將十分繁重,無法及時響應(yīng)USB Host端的請求。因此,在系統(tǒng)中設(shè)置32K的緩沖區(qū),每完一次數(shù)據(jù)傳輸后,記下本次要寫的開始扇區(qū)和總扇區(qū)數(shù),將本次要寫的數(shù)據(jù)涉及的扇區(qū)以外的數(shù)據(jù)從NandFlash中讀出來,存放在緩沖區(qū)中對應(yīng)位置,然后擦除一個Block,再將緩沖區(qū)中內(nèi)容一次全部重新寫入NandFlash。

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


    USB HOST的仿真模型用來模擬PC機上的主機控制器,完成上電檢測、標準設(shè)備請求、批量傳輸請求等功能,用來檢測USB設(shè)備應(yīng)答數(shù)據(jù)是否正確。負責讀取主控制器的事務(wù)處理列表,并將它們安排在一系列長度的幀中,發(fā)送到USB總線上。
3.2 仿真結(jié)果
   
通過此測試平臺,成功的完成了USB主機與U盤SoC之間的通信。仿真圖如圖7所示。


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

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

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

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉