日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

一種嵌入式USB2.0主機控制器IP核的研究與設計

出處:AIRWILL 發(fā)布于:2011-08-30 14:39:01

  摘 要: 用硬件描述語言verilog HDL 設計實現(xiàn)了一種嵌入式USB2. 0 主機控制器IP 核, 簡要介紹了嵌入式USB主機設計背景, 重點描述了USB 主機控制器IP 核的結構劃分和各模塊的設計分析, 給出了nc2verilog 功能仿真方案以及FPGA 驗證方案。 通過nc2verilog 功能仿真及FPGA 驗證表明, 此IP 核可以作為一個獨立模塊應用到嵌入式系統(tǒng)中。

  1 引言

  從通用串行總線(USB) 問世, 到協(xié)議規(guī)范2. 0版本, USB 在不斷自我完善, 并走向成熟。 USB 的拓撲結構中居于地位的是主機(Host), 任何USB 的數(shù)據(jù)傳輸都必須由主機來發(fā)起和控制, 而目前, 大量扮演主機角色的是個人電腦( PC)。所有USB 設備都只能在PC 上使用, 只能通過PC 來進行相互的文件和數(shù)據(jù)交換。 沒有了PC, 這些設備就失靈了( 指數(shù)據(jù)交換的功能)。

  因此, 如何將USB 應用到嵌入式領域? 如何實現(xiàn)USB 點對點的通信?0等問題, 開始進入了USB開發(fā)者的討論議程。 嵌入式USB 主機的設計在國內處于剛剛起步的階段, 僅有不多的半導體公司提供接口芯片, 還很少有完整的嵌入式USB 主機產品上市。 廠家和USB 論壇所能提供的Demo 也限于依靠嵌入式操作系統(tǒng)WinCE 和Linux 等。因此, 項目研究具有一定的性。 正是在這種背景下, 業(yè)界和用戶的需求呼喚USB 主機實現(xiàn)嵌入式化。 本設計也是基于這種背景設計了一種支持高速和全速的嵌入式USB2. 0 主機控制器IP 核, 如圖1 所示。

圖1 嵌入式USB2. 0 主機控制器結構

圖1 嵌入式USB2. 0 主機控制器結構

  2 主機控制器IP 核的設計

  2. 1 主控制器

  主控制器是整個USB 主機設計中的模塊,它控制著嵌入USB 主機控制器中其它所有模塊, 此模塊主要采用一個總狀態(tài)機來實現(xiàn)其控制作用, 如圖2 所示。

圖2 主控制狀態(tài)機

圖2 主控制狀態(tài)機

  其中每個狀態(tài)下又有相應的子狀態(tài)機。 當EOF1( end of frame1) 到來時, 將進入等待發(fā)送SOF( start of frame) 狀態(tài), 當傳輸數(shù)據(jù)有效時, 會有兩種傳輸情況, 如果是OUT 傳輸或( setup) 配置時, 嵌入式主機讀取存儲器中數(shù)據(jù), 數(shù)據(jù)讀取完后會自動跳轉到PIE 模塊中的OUT 傳輸或setup 的子狀態(tài)機來完成相應的具體操作并進入傳輸?shù)却隣顟B(tài)(waitfor eot) , 等待操作完成, 相應操作完成后, PIE 模塊置EOT( end of transfer) 信號為1來宣告當前傳輸完成, 同時會更新狀態(tài)寄存器中數(shù)據(jù)準備下操作。 當為IN 或ping 傳輸時, 與OUT 或setup 傳輸類似, 都會跳轉到相關模塊來完成相應的具體操作。

  2. 2 配置寄存器

  配置寄存器主要分為兩種: 狀態(tài)寄存器和控制寄存器。為了提高代碼可讀性, 設計中定義了5 個32 位寄存器: USB 命令寄存器; 端口狀態(tài)寄存器;USB 信息包域A 寄存器; USB 信息包域B 寄存器;傳輸狀態(tài)寄存器。 這些寄存器分別寄存數(shù)據(jù)傳輸中的一些控制命令, 傳輸狀態(tài), 端口狀態(tài)改變情況以及傳輸數(shù)據(jù)包特性等。

  2. 2. 1 DMA 控制器

  本設計將DMA 控制器設計為兩種工作模式:

  DMA master 模式和DMA slave 模式。 采用一個模式選擇信號來選擇DMA 工作模式, 如下:

  此選擇信號值由配置寄存器配置, 當總線沒有外部DMA 控制器控制時, USB 主機中DMA 控制器選擇工作在master 模式, 在這種模式中, 當USB主機有數(shù)據(jù)傳輸?shù)男枨髸r, DMA 控制器向CPU 發(fā)起請求, CPU 將對DMA 控制器配置數(shù)據(jù)傳輸?shù)钠鹗嫉刂罚?數(shù)據(jù)傳輸總大小, 傳輸數(shù)據(jù)包大小等信息,并釋放總線給DMA 控制器接管, 此時DMA 控制器完全接管對總線的控制, USB 主機與存儲器之間數(shù)據(jù)傳輸不經(jīng)過CPU, 而直接交換USB 主機外部存儲器和USB 主機內數(shù)據(jù)緩沖器之間數(shù)據(jù)。 當數(shù)據(jù)傳輸結束后DMA 控制器通知CPU 重新接管總線。

  DMA master 模式一般用于高速地傳送成組的數(shù)據(jù)。

  DMA mater 模式的主要優(yōu)點是速度快。 由于整個數(shù)據(jù)傳輸過程不需要CPU 干預, 因此就省去了CPU操作時間, 減少了CPU 工作負擔, 減小了對CPU 的要求, 很大程度的降低成本。 當總線有外部DMA 控制器接管時, USB 主機中DMA 控制器工作在slave模式, 此時USB 主機內DMA 控制器模塊不起作用, USB 主機與外部存儲器之間數(shù)據(jù)傳輸必須經(jīng)過CPU 來啟動外部DMA 來搬運外部存儲器和USB主機內數(shù)據(jù)緩沖器中的數(shù)據(jù), 這樣就加大了CPU 工作量, 對CPU 要求也相應的提高, 數(shù)據(jù)傳輸速度也有所下降。

  2. 2. 2 數(shù)據(jù)緩沖器

  數(shù)據(jù)緩沖器模塊用來緩沖從設備端輸入的數(shù)據(jù)和CPU 端要輸出的數(shù)據(jù)。 本設計采用乒乓緩沖buffer0, buffer1, 在讀buffer0 數(shù)據(jù)的同時在向buffer1 里寫入下一個數(shù)據(jù), 然后讀buffer1 的數(shù)據(jù)并寫數(shù)據(jù)到buffer0, 這樣交替讀寫數(shù)據(jù), 很大程度的提高了數(shù)據(jù)傳輸速度。 在IN 傳輸中, 將從設備端輸入的數(shù)據(jù)寫入數(shù)據(jù)緩沖器中, 數(shù)據(jù)寫完后會發(fā)起一個中斷信號通知CPU 來取出其中的數(shù)據(jù), 同樣在OUT 傳輸中, 將從CPU 過來的數(shù)據(jù)寫入數(shù)據(jù)緩沖器中, 隨后將寫入的數(shù)據(jù)傳輸?shù)皆O備端。

  2. 2. 3 根集線器及PIE

  根集線器其實也是一種特殊的設備, 它下游端口還可以繼續(xù)串聯(lián)其他集線器, 終能夠為127 個USB 設備提供連接端口, 根集線器主要任務是管理連接到根集線器上的設備以及負責設備與主機之間的數(shù)據(jù)通信。 設計中通過圖3 的狀態(tài)機來實現(xiàn)根集線器對設備的枚舉過程。

圖3 枚舉狀態(tài)機

圖3 枚舉狀態(tài)機

  有高速能力的設備在次連接到USB 總線時必須使用全速。 而后, 該設備在總線重置階段中向根集線器發(fā)送一個Chirp K, 如上游的集線器支持高速速率, 則應答一個Chirp K 與Chirp J 交替序列,這樣高速集線器和高速設備都使用高速傳輸速率通信, 如根集線器不支持高速速率, 則忽略高速設備發(fā)送的Chirp K, 即不應答ChirpK 與Chirp J 交替序列。 這樣高速設備必須維持在全速模式。

  PIE 模塊在設計中實現(xiàn)對傳輸?shù)男畔幚恚绨鸱郑?包封裝等。 其內部設計的子模塊有crc. v,pid decoder. v, pid encoder. v, rec packet. v,trans packet. v, timeout. v 等等。 實現(xiàn)傳輸信息包中pid 的編碼, 譯碼以及對pid 的檢錯等功能, 同時還包括對信息包的crc 檢測及對數(shù)據(jù)傳輸過程中超時的檢測。

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

  為了驗證嵌入式USB2. 0 主機控制器, USB 接口用了PHY 模型和設備模型, 總線接口采用CPU和存儲器模型, 如圖4 所示, 外部CPU 和存儲器有兩個通道與嵌入式USB 主機作用: 寄存器通道和DMA通道。 CPU 通過寄存器通道來讀寫嵌入式USB 主機中配置寄存器中數(shù)據(jù), 而DMA 通道主要用來交換存儲器模型與嵌入式USB 主機中數(shù)據(jù)緩沖器中數(shù)據(jù)。

圖4 嵌入式USB2. 0 主機控制器仿真環(huán)境

圖4 嵌入式USB2. 0 主機控制器仿真環(huán)境

  3. 1 CPU 模型

  CPU 工作在12~ 160MHz 時鐘頻率。 CPU 模型通過讀命令文件master. cmd 來觸發(fā)嵌入式USB 主機開始配置寄存器的讀寫。

  3. 2 存儲器模型

  在IN 傳輸中, 存儲器模型通過DMA 通道從嵌入式USB 主機中數(shù)據(jù)緩沖器模塊讀出數(shù)據(jù), 并將讀出的數(shù)據(jù)寫入data. dmp 文件中, 在OUT 傳輸中,嵌入式USB 主機通過DMA 通道讀存儲器模型中的數(shù)據(jù)到數(shù)據(jù)緩沖器, 而存儲器模型中數(shù)據(jù)是存放在ehin. dat 文件中。

  3. 3 PHY 模型

  此處的PHY 模型包括USB 主機方的PHY1 和USB 設備方的PHY2, 本設計主要用于高速和全速的數(shù)據(jù)傳輸, 所以接入的PHY 模型為2. 0 版本。 它主要功能是串行數(shù)據(jù)與并行數(shù)據(jù)之間相互轉換, 因為在嵌入式USB 主機中都為并行數(shù)據(jù), 而在USB電纜中是以串行數(shù)據(jù)傳輸?shù)摹?/FONT>

  3. 4 USB 設備模型

  此模塊通過讀命令文件dev1. cmd 來控制USB信息包的發(fā)送與接收, 若IN 傳輸時設備模型將dev1 sen. dat 文件中所包含的數(shù)據(jù)發(fā)送給主機, 在OUT 傳輸中將主機輸出的數(shù)據(jù)也儲存在dev1rcv. dat 中。

  為了方便觀察仿真結果, 設計中還加入了一個驗證傳輸中數(shù)據(jù)對錯的模塊, 在IN 傳輸中將設備模型中從dev1 sen. dat 發(fā)出的數(shù)據(jù)與USB 主機收到的數(shù)據(jù)進行對比, 在OUT 傳輸時將進入USB 主機的數(shù)據(jù)與設備模型中dev1 rcv. dat 收到的數(shù)據(jù)進行對比, 由此可以清楚的看出在USB 主機與設備之間是否正確傳輸數(shù)據(jù)。

  這里采用nc2verilog 分別對高速和全速中IN,OUT 傳輸以及枚舉過程進行的功能仿真, 部分仿真波形如圖5、圖6 所示。 可以看到: 全速和高速的整個枚舉過程中狀態(tài)機enmumerate state 的變化直到傳輸使能; 整個主控制狀態(tài)機mast ectrlst 中各狀態(tài)的轉換;  在每次數(shù)據(jù)傳輸中utmtxready, utm rxactive, utm rxvalid 以及utm rx2validh 的跳變過程。 在高速和全速的仿真中, 驗證先IN 傳輸再OUT 傳輸, 即先從USB 設備模型中dev1sen. dat 文件中讀出數(shù)據(jù)進行4 個信息包的IN 傳輸, 然后執(zhí)行4 個信息包的OUT 傳輸。

圖5 高速數(shù)據(jù)批量傳輸仿真圖

圖5 高速數(shù)據(jù)批量傳輸仿真圖

圖6 全速數(shù)據(jù)批量傳輸仿真圖

圖6 全速數(shù)據(jù)批量傳輸仿真圖

  4 FPGA 驗證

  FPGA 驗證環(huán)境如圖7 所示, 驗證中外接一塊USB2. 0 的PHY 子板和memory 子板, 其中FPGA芯片為Altara 公司的stratixIIs180, 其中實現(xiàn)嵌入式USB 主機IP 核和CPU 平臺, memory 子板用來實現(xiàn)嵌入式軟件, 在驗證時分別接入支持高速和全速的U 盤作為設備, 對U 盤進行了數(shù)據(jù)的讀寫, 不管是在高速下還是在全速下都能正常完成U 盤的讀寫過程, 并與預期的讀寫數(shù)據(jù)一致。

圖7 嵌入式USB2. 0 主機控制器驗證環(huán)境

圖7 嵌入式USB2. 0 主機控制器驗證環(huán)境

  從nc2verilog 的功能仿真和FPGA 驗證表明, 此嵌入式USB2. 0 主機控制器IP 核成功地實現(xiàn)了高速和全速下數(shù)據(jù)傳輸。

  5 結束語

  此嵌入式USB2. 0 主機控制器IP 核在設計中采用了乒乓緩沖模式提高了數(shù)據(jù)傳輸?shù)乃俣龋?還采用了DMA master 和slave 模式, 很大程度的減小了CPU 的要求, 在仿真和FPGA 驗證中分別采用了CPU 頻率為12MHz 和160MHz, 此IP 核都通過了功能驗證。 目前已流片, 且通過芯片驗證。 因此可以說此IP 核能夠獨立地用于數(shù)碼相機, MP3 播放器里。 這樣, 這些嵌入式的主機就可以直接和移動硬盤、打印機等設備連接用了, 不需要通過PC 機來進行相互的文件和數(shù)據(jù)交換, 實現(xiàn)了脫離PC 機的夢想, 方便了更多使用者。

關鍵詞:一種嵌入式USB2.0主機控制器IP核的研究與設計USB主機IP核控制器FPGA

版權與免責聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權均屬于維庫電子市場網(wǎng),轉載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關法律責任。

本網(wǎng)轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉載時,必須保留本網(wǎng)注明的作品出處,并自負版權等法律責任。

如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網(wǎng)聯(lián)系,否則視為放棄相關權利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務:
賣家服務:
技術客服:

0571-85317607

網(wǎng)站技術支持

13606545031

客服在線時間周一至周五
9:00-17:30

關注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!