首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

基於 OHCI 的 USB 主機開發(一):專案背景與知識體系

     編輯:關於C語言

專案背景

  • 主控 CPU:AT91RM9200(ARM920T 核心)
  • 任務:利用內建 USB Host 控制器訪問 U 盤,按上層指令將數據寫入指定檔案
  • 約束:無額外 USB 專用控制芯片、裸機運行(無 OS)、需穩定可靠高效、不影響主迴圈其他任務

裸機開發的取捨

十餘年嵌入式開發從未使用任何 RTOS。優點:系統極簡、完全可控、問題定位快;缺點:移植性差、通用代碼需重寫。但針對專案複雜度,**裸機反而更清晰**——無驅動加載、無 OS API 呼叫、直接面向 OHCI 寄存器與協議,理解深度更高。

讀者預備知識清單

  1. USB 介面基礎(端點、傳輸類型、枚舉流程)
  2. USB 協議層通訊流程(Token/Data/Handshake 階段)
  3. USB 主機對設備管理流程(地址分配、配置選擇)
  4. OHCI 標準—— AT91RM9200 USB Host 操作規範核心
  5. Mass Storage Bulk-Only 協議—— U 盤訪問命令傳輸封裝
  6. UFI 命令集—— 讀寫扇區、驗證媒體等 SCSI 簡化指令
  7. FAT16/32 檔案系統—— 目錄項、FAT 表、簇鏈操作

上述內容將在後續章節按需展開,建議預先閱讀相關規範文檔。

核心參考資料

  1. Open Host Controller Interface Specification for USB (Compaq, FTP 可獲取)
  2. ARM 嵌入式系統軟件開發實例(周立功等,北航出版社)
  3. USB 2.0 應用系統開發實例精選(廖濟林,電子工業出版社)
  4. Universal Serial Bus Mass Storage Class Bulk-Only Transport
  5. Universal Serial Bus Mass Storage Class UFI Command Specification
  6. Microsoft Extensible Firmware Initiative FAT32 Specification(FAT16 相容)

系列規劃

本系列將按軟體分層架構逐層講解:硬體→寄存器封裝→OHCI 軟體介面→USB 設備管理→UFI 命令→磁盤操作介面→檔案系統→檔案操作 API→業務應用。下篇進入「總體架構設計」。

本文出自「rainman」博客。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved