久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于層次模型的USB2.0接口芯片IP核固件的設計

基于層次模型的USB2.0接口芯片IP核固件的設計

作者: 時間:2012-03-09 來源:網絡 收藏

該固件涉及到對4個主要中斷的處理,即 Com mand端點0的In 中斷和Out中斷、Bulk-In端點中斷和Bulk-Out端點中斷。其中端點0主要用于設備枚舉過程中主機與設備的交互,Bulk端點則用于枚舉成功后主機與設備的交互。

3.2 設備枚舉層流程

圖3所示為USB設備的枚舉流程。設備從接入 USB電纜開始,依次經過Attached、Powered、Default和Addressed幾個狀態,最終進入Configured態成為可用設備。

枚舉過程中所需的各種描述符表可由用戶設置后存放在指定存儲單元。

3.3 Bulk-Only傳輸控制層流程

設備枚舉成功后Bulk端點開始工作。設備端 Bulk-Only工作流程如下:
1.主機通過Bulk-Out端點發出命令包CBW;
2.設備接收CBW,解析其中包含的SCSI命令;
3.設備執行SCSI命令,如需要,通過Bulk端點完成Data交換;
4.設備根據SCSI命令執行情況通過Bulk-In端點返回命令狀態包CSW給主機;

5.設備等待主機的下一個CBW。

圖4所示為Bulk-In和Bulk-Out中斷服務流程。其中涉及到USB設備的幾種工作狀態有:

(1)命令接收態:本次命令處理完(已返回 CSW),設備等待下一次主機命令。在該狀態下,設備將等待Bulk-Out中斷,試圖從Bulk-Out端點接收一個有效的CBW。

(2)狀態發送態:本次命令已執行完畢,等待主機索要CSW。在該狀態下,設備將等待Bulk-In中斷,試圖從Bulk-In端點發送一個有效的CSW 給主機。

(3)數據接收態:設備通過解析主機命令得知主機將發送數據,于是設備等待接收數據。在該狀態下,設備將等待Bulk-Out中斷,試圖從Bulk-Out端點接收一個或一批數據。數據接收完后設備將根據具體情況確定命令執行結果狀態。

(4)數據發送態:設備通過解析主機命令得知主機將索要數據,于是設備準備發送數據。在該狀態下,設備將等待Bulk-In中斷,試圖從Bulk- In端點發送一個或一批數據。數據發送完設備將根據具體情況確定命令執行結果狀態。

(5)異常狀態:當發生某些不可預知的錯誤時,設備進入異常態,并將根據不同錯誤類型采取不同措施試圖從錯誤中恢復。

3.4 SCSI命令解析(層)流程


對某種特定的大容量存儲設備來說,一些無意義的SCSI命令可以不必處理(實際上主機也不會使用這些命令)。設備在接收到有效的SCSI命令后,將根據命令的不同要求為數據的發送或接收做好準備,并切換到下一個有效的工作狀態,如圖5 所示。

3.5 對存儲介質的讀寫操作及優化

設備固件在正確分析主機送來的SCSI命令后,可能會對存儲介質進行讀、寫、擦除等操作。為進一步提高存儲介質的讀寫速度,本固件方案還對存儲介質操作進行了有效的優化:

(1)大批量數據讀寫時采用了DMA方式;
(2)對寫操作需時較長的存儲介質(如 FLASH)采用了中間緩沖,以減少寫操作次數或將寫操作移至后臺進行;
(3)對存儲介質上的磁盤碎片定期進行優化整理。
合理地組合應用這些方法可以有效地改進介質訪問的效率。

4結論

上述大容量存儲設備的已成功實現,其硬件基礎是具有自主版權的、含MCU51核的USB設備接口IP核,固件采用Keil51C語言和51匯編語言混合完成。該固件采用分層設計,可以較容易地根據具體應用環境替換其中某些層次的代碼模塊,具有較強的移植性和實用性。為保證具有一定的"健壯性",實現過程中還需要注意仔細設計其中的錯誤檢測和錯誤恢復機制,包括如何合理安排眾多的中斷源、如何充分考慮協議中規定的操作時間限制、如何處理Watch Dog溢出等等。

本文討論的USB2.0設備固件方案不僅有效改進和提高了USB設備的設計開發水平,還可廣泛應用于USB2.0設備接口的實際應用設計,具有良好的理論和應用價值。


上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉