999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

U盤SoC的設計與實現

2012-01-18 12:03:32劉衛東
電子設計工程 2012年23期
關鍵詞:信號設備設計

趙 靜 , 劉衛東 ,2

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

隨著便攜式設備的廣泛使用,移動存儲設備被廣泛用于信息存儲和傳輸。在目前諸多存儲設備中,U盤憑借其體積小、容量大、攜帶方便、支持熱插拔等諸多優點,得到了迅速的普及。而且隨著USB技術的廣泛應用,在各種SoC系統中集成USB功能也成為一種必然趨勢。所以對SoC芯片中集成USB接口的研究開發,具有較高的實用價值。

文中通過分析USB[1]協議,設計出了一種符合該協議的低速和全速的USB設備控制器,并將該控制器與8051CPU核,NandFlash,UDC_Control通過總線連接起來,組成了一個U盤SoC系統,并對此U盤SoC系統加以仿真驗證。

1 系統的整體設計

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

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

圖1 U盤SoC的整體框圖Fig.1 Frame diagram of SoCof USB flash disk

2 模塊的詳細設計

2.1 USB CORE

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

圖2 USB設備控制器的架構框圖Fig.2 Frame diagram of USB device controller

2.1.1 rx模塊

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

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

dpll模塊用48 MHz的時鐘把總線上傳輸的時鐘和數據信號恢復出來。用48 MHz的時鐘對總線上的數據信號進行采樣,以去掉抖動,然后產生總線信號電平變化的指示信號change信號,change信號的改變可控制采樣點,從而保證數據信號的采樣點固定在每位數據信號的中央。

NRZI解碼模塊檢測到同步頭后,根據NRZI的原理,將rxdp和rxdp延后一拍的數據進行同或操作,得到的數據經過去填充位,串并轉換后,送入解包模塊。

總線狀態監測模塊監測總線的狀態,置位suspend,resume,reset等狀態指示信號。若Idle時間超過3ms時,就將suspend信號置高,在suspend狀態時檢測到總線信號變化時,將resume信號置高,若 se0時間超過 2.5μs時,就將reset信號置高。

2.1.2 解包模塊

本模塊接收從rx模塊送過來的并行數據,按照USB數據包協議規范對接收的數據進行解釋,并對數據做CRC校驗,給出當前接收包的類型,根據不同類型的包的結構,從包中解出相應的信息送給下一模塊。

2.1.3 req_dec模塊

本模塊對setup階段USB的標準請求進行解釋,提供和USB請求相關的信號給SIE模塊,判斷function和endpoint的地址是否合法。若標準請求中對某個端點所請求的操作和預定的不符,則會產生錯誤信號。

2.1.4 SIE模塊

SIE(Serial Interface Engine)模塊是 USB CORE的核心模塊[3],根據從解包模塊傳送過來的信號與從MCU傳送過來的接口握手信號,按照USB的相關協議,產生打包模塊的控制信號和MCU的控制信號,從而控制總線上的數據發送。

控制傳輸的實現:

SETUP階段:從圖4中可看出,當token_valid_i、Pid_setup、ep0_sel有效時,表明收到一個有效的令牌包,udc_as_o被拉高,表示開始數據傳送,轉入ctrl_setup_stage狀態,此時cpu把device_bufok_i信號拉高,隨后開始接收數據,在setup階段8個字節的標準請求數據接收完成后,send_hdsk_pkt_o信號變高,表示數據接收正確,要求發送一個ACK的握手包。

圖4 SETUP階段數據包傳送實現的狀態機Fig.4 State machine of data packet transmission in setup stage

DATA階段:數據階段是可選的,并且數據階段的傳送方向可以是IN或OUT。以IN為例來介紹,當Pid_in、token_valid_i、ep0_sel有效時,udc_as_o被拉高,表示開始數據傳送,轉入ctrl_in_stage_empty,接著轉入ctrl_in_stage狀態,CPU將device_bufok_i拉高,表示開始接收數據,等待數據傳完后,send_hdsk_pkt_o信號變高,表示數據接收正確,并將toggle機制翻轉,要求打包模塊發送一個ACK的握手包。

STATUS階段:STATUS階段也分為STATUS IN和STATUSOUT兩種情況。在STATUSOUT階段,接受到HOST發送過來的空數據包后,狀態機會將send_hdsk_pkt_o信號拉高,發送ACK包給HOST。其狀態機同SETUP狀態機類似。

中斷、批量、同步傳輸的IN實現:在硬件設計上,中斷、批量和同步3種傳輸方式的處理都是一樣的[4],只是在系統配置時,各傳輸方式對應的端點不同。下面以3種傳輸方式的IN傳輸來介紹。圖5為3種傳輸方式的IN傳輸的狀態機。

圖5 中斷、批量、同步傳輸的IN傳輸狀態機Fig.5 State machine of Interrupt、Bulk、Isochronous IN transactions

從上圖可看出,在收到IN令牌后,狀態機將udc_as_o拉高,表示開始傳送數據,轉入In_transfer_empty狀態,再轉入In_transfer狀態,cpu若能傳送數據,則把device_buf_ok_i信號置高,開始接收數據,等待數據傳送完畢時,狀態機會將send_data_pkt_o拉高,將此信號送至打包模塊,從而將所需要的數據發送給HOST。

2.1.5 打包模塊

本模塊接收從SIE傳來的控制信號,根據USB協議,產生所需要的包傳送給發送模塊。

2.1.6 tx模塊

tx模塊是總線發送模塊。它將打包模塊發送過來的包信息,進行并串轉換,位填充,NRZI編碼后,將數據發送給主機。此模塊同rx模塊類似,不再贅述。

2.2 8051CPU

此設計中的CPU[5]為一個驗證過的IP核。它包含:1個8位中央處理器、1個片內振蕩器及時鐘電路、4 KB ROM程序存儲器、128B RAM數據存儲器、可尋址64 KB外部數據存儲器和64 KB外部程序存儲器的控制電路、32條可編程的I/O線(4個8位并行I/O接口)、2個16位的定時/計數器、1個可編程全雙工串行接口、5個中斷源、2個優先級嵌套中斷結構。將USB的通信請求接入到CPU的一個外部中斷接口上,當USB的通信請求到來時,系統會產生一個中斷,轉入中斷服務程序。

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

2.3 UDC_Control

UDC_Control模塊位于CPU和USB CORE之間,它完成CPU對USB通信的控制和數據的讀寫操作。UDC_CTRL模塊中設有22個特殊功能寄存器,來完成USB通信。

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

EP0_OUTFIFO_DATA、EP0_OUTFIFO_CNT這 5個寄存器都是與Endpoint0相關的,Endpoint0是由一個輸入端點和一個輸出端點組成,用來實現控制傳輸。所有支持USB標準請求和Class定義的請求都通過這個端點來處理。其中EP0_CTRL用來對Endpoint0的傳輸進行控制,當CPU要向USB主機傳送數據時,就會將數據寫入EP0_INFIFO_DATA,EP0_INFIFO_CNT是CPU向EP0_INFIFO_DATA中寫入數據的 字 節 數 。 EP0_OUT ,Endpoint1,Endpoint2,Endpoint3,Endpoint4的寄存器情況類似,在此不再多做介紹。UDC_STATUS和DEVICE_CTRL是接口狀態和控制寄存器,對CPU和USB CORE的通信進行監控。

2.4 NandFlash

針對NandFlash讀寫的特點,特別是其可隨機讀,但無法隨機寫的問題,需要通過設置緩沖區來解決。在與USB Host進行數據交換的過程中,最小的單位是扇區:512字節。由于NandFlash在寫之前必須先擦除,而一擦又必須擦一個Block,因此在擦除某Block之前必須保存同一個Block中有關扇區的數據。因此,如果每收到一個扇區的內容就進行一次擦、保存、寫的操作,系統任務將十分繁重,無法及時響應USB Host端的請求。因此,在系統中設置32K的緩沖區,每完一次數據傳輸后,記下本次要寫的開始扇區和總扇區數,將本次要寫的數據涉及的扇區以外的數據從NandFlash中讀出來,存放在緩沖區中對應位置,然后擦除一個Block,再將緩沖區中內容一次全部重新寫入NandFlash。

3 仿真與驗證

3.1 仿真環境的介紹

為了驗證此設計,需要建立一個和實際應用情況類似的仿真驗證平臺,這個仿真系統平臺包括USB CORE的RTL代碼[6]、CPU核、控制軟件的二進制代碼、UDC_Control、NandFlash、USB Host的仿真模型等。整個系統的Modelsim仿真環境如圖6所示。

圖6 設計的Modelsim測試平臺Fig.6 Diagram of Modelsim simulation environment of this design

USB HOST的仿真模型用來模擬PC機上的主機控制器,完成上電檢測、標準設備請求、批量傳輸請求等功能,用來檢測USB設備應答數據是否正確。負責讀取主控制器的事務處理列表,并將它們安排在一系列長度的幀中,發送到USB總線上。

3.2 仿真結果

通過此測試平臺,成功的完成了USB主機與U盤SoC之間的通信。仿真圖如圖7所示。

圖7 仿真圖Fig.7 Figure of simulation

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

4 結束語

文中探討了U盤SoC的設計,并結合仿真工具通過了RTL級仿真,證明了本設計的可行性。該U盤SoC設計具有便于修改、易于實現的特點。

[1]周立功.USB2.0與OTG規范及開發指南[M].北京:北京航空航天大學出版社,2004.

[2]邊海龍,賈少華.USB2.0設備的設計與開發[M].北京:人民郵電出版社,2004.

[3]李美峰,戴冠中,胡偉.USB2.0設備控制器IP核的設計與實現[J].計算機測量與控制,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設備控制器IP核的設計與實現[J].小型微型計算機系統,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]李群芳,肖看.單片機原理、接口及應用[M].北京:清華大學出版社,2005.

[6]夏宇聞.Verilog數字系統設計教程[M].北京:北京航空航天大學出版社,2008.

猜你喜歡
信號設備設計
諧響應分析在設備減振中的應用
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
基于LabVIEW的力加載信號采集與PID控制
主站蜘蛛池模板: 日本高清成本人视频一区| 国产成人盗摄精品| 天天干天天色综合网| 伊人天堂网| 日韩欧美国产精品| 亚洲色图综合在线| 欧美高清国产| 国产一级小视频| 亚洲无码不卡网| 伊人无码视屏| 欧美精品黑人粗大| 欧美在线视频不卡第一页| 国内精品久久久久鸭| 日本高清有码人妻| 一级香蕉视频在线观看| 亚洲 日韩 激情 无码 中出| 一本大道无码日韩精品影视| 色婷婷成人网| 亚洲性色永久网址| 青青青亚洲精品国产| 日本欧美视频在线观看| 免费人成网站在线观看欧美| 看你懂的巨臀中文字幕一区二区| 久久精品视频亚洲| 欧美成人综合视频| 午夜毛片免费观看视频 | 精品欧美一区二区三区在线| 久久网综合| 57pao国产成视频免费播放| 国产综合精品一区二区| 国产爽歪歪免费视频在线观看| 999精品在线视频| 免费A级毛片无码免费视频| 999精品视频在线| 国产99精品视频| 亚洲毛片网站| 一区二区三区在线不卡免费| 午夜限制老子影院888| 国产主播一区二区三区| 日韩人妻少妇一区二区| 亚洲欧美人成电影在线观看| 久久精品丝袜高跟鞋| 最新亚洲人成无码网站欣赏网| 亚洲男人的天堂久久香蕉网| 午夜色综合| 国产美女在线免费观看| 高清欧美性猛交XXXX黑人猛交 | 全免费a级毛片免费看不卡| 国产成人精品午夜视频'| 综合亚洲网| 在线欧美一区| 日韩a级片视频| 欧美全免费aaaaaa特黄在线| 国产日产欧美精品| 日本午夜影院| 久久久久久久久亚洲精品| 国产美女人喷水在线观看| 亚洲欧洲免费视频| 国产精品嫩草影院av| 国产欧美视频在线| 亚洲人在线| 成人福利在线视频| 久久精品这里只有精99品| 激情五月婷婷综合网| 成人日韩视频| 欧美性天天| 成年人久久黄色网站| 亚洲视频三级| 美女啪啪无遮挡| 老司机aⅴ在线精品导航| 国产高清在线丝袜精品一区| 色综合久久综合网| 五月丁香在线视频| 国产丝袜一区二区三区视频免下载| 五月丁香在线视频| 亚洲精品视频免费| 国产午夜福利亚洲第一| 久久香蕉国产线看观看亚洲片| 欧美日韩精品一区二区视频| 亚洲人成网址| 亚洲三级a| 在线另类稀缺国产呦|