一種嵌入式USB2.0主機控制器IP核的研究與設計
CPU 工作在12~ 160MHz 時鐘頻率。 CPU 模型通過讀命令文件master. cmd 來觸發(fā)嵌入式USB 主機開始配置寄存器的讀寫。
3. 2 存儲器模型
在IN 傳輸中, 存儲器模型通過DMA 通道從嵌入式USB 主機中數據緩沖器模塊讀出數據, 并將讀出的數據寫入data. dmp 文件中, 在OUT 傳輸中,嵌入式USB 主機通過DMA 通道讀存儲器模型中的數據到數據緩沖器, 而存儲器模型中數據是存放在ehin. dat 文件中。
3. 3 PHY 模型
此處的PHY 模型包括USB 主機方的PHY1 和USB 設備方的PHY2, 本設計主要用于高速和全速的數據傳輸, 所以接入的PHY 模型為2. 0 版本。 它主要功能是串行數據與并行數據之間相互轉換, 因為在嵌入式USB 主機中都為并行數據, 而在USB電纜中是以串行數據傳輸的。
3. 4 USB 設備模型
此模塊通過讀命令文件dev1. cmd 來控制USB信息包的發(fā)送與接收, 若IN 傳輸時設備模型將dev1 sen. dat 文件中所包含的數據發(fā)送給主機, 在OUT 傳輸中將主機輸出的數據也儲存在dev1rcv. dat 中。
為了方便觀察仿真結果, 設計中還加入了一個驗證傳輸中數據對錯的模塊, 在IN 傳輸中將設備模型中從dev1 sen. dat 發(fā)出的數據與USB 主機收到的數據進行對比, 在OUT 傳輸時將進入USB 主機的數據與設備模型中dev1 rcv. dat 收到的數據進行對比, 由此可以清楚的看出在USB 主機與設備之間是否正確傳輸數據。
這里采用nc2verilog 分別對高速和全速中IN,OUT 傳輸以及枚舉過程進行的功能仿真, 部分仿真波形如圖5、圖6 所示。 可以看到: 全速和高速的整個枚舉過程中狀態(tài)機enmumerate state 的變化直到傳輸使能; 整個主控制狀態(tài)機mast ectrlst 中各狀態(tài)的轉換; 在每次數據傳輸中utmtxready, utm rxactive, utm rxvalid 以及utm rx2validh 的跳變過程。 在高速和全速的仿真中, 驗證先IN 傳輸再OUT 傳輸, 即先從USB 設備模型中dev1sen. dat 文件中讀出數據進行4 個信息包的IN 傳輸, 然后執(zhí)行4 個信息包的OUT 傳輸。
圖5 高速數據批量傳輸仿真圖
圖6 全速數據批量傳輸仿真圖
4 FPGA 驗證
FPGA 驗證環(huán)境如圖7 所示, 驗證中外接一塊USB2. 0 的PHY 子板和memory 子板, 其中FPGA芯片為Altara 公司的stratixIIs180, 其中實現嵌入式USB 主機IP 核和CPU 平臺, memory 子板用來實現嵌入式軟件, 在驗證時分別接入支持高速和全速的U 盤作為設備, 對U 盤進行了數據的讀寫, 不管是在高速下還是在全速下都能正常完成U 盤的讀寫過程, 并與預期的讀寫數據一致。
圖7 嵌入式USB2. 0 主機控制器驗證環(huán)境
從nc2verilog 的功能仿真和FPGA 驗證表明, 此嵌入式USB2. 0 主機控制器IP 核成功地實現了高速和全速下數據傳輸。
5 結束語
此嵌入式USB2. 0 主機控制器IP 核在設計中采用了乒乓緩沖模式提高了數據傳輸的速度, 還采用了DMA master 和slave 模式, 很大程度的減小了CPU 的要求, 在仿真和FPGA 驗證中分別采用了CPU 頻率為12MHz 和160MHz, 此IP 核都通過了功能驗證。 目前已流片, 且通過芯片驗證。 因此可以說此IP 核能夠獨立地用于數碼相機, MP3 播放器里。 這樣, 這些嵌入式的主機就可以直接和移動硬盤、打印機等設備連接用了, 不需要通過PC 機來進行相互的文件和數據交換, 實現了脫離PC 機的夢想, 方便了更多使用者。
評論