基於OHCI的USB主機 背景介紹

2021-09-03 10:02:53 字數 1430 閱讀 4944

使用at91rm9200作為主控cpu,利用該晶元的usb主機介面訪問u盤,根據接收的上層命令把相應資料儲存到u盤的指定檔案上。不使用額外的專用usb控制晶元,要求穩定可靠,效率高,不能影響執行在該cpu上的其它程式。

at91rm9200程式載入後直接執行,沒有作業系統。

以上就是我做的基於ohci的usb主機的專案背景,這個專案是做什麼的不重要,你可以把它想象成任何專案,關鍵是這個專案要求使用u盤來儲存資料。

另外,在我們的專案中沒有使用任何一款嵌入式作業系統,所有的程式都執行在同乙個主迴圈中,自己來實現任務排程。說到作業系統,其實很慚愧,自從我開始從事嵌入式系統的開發到現在,十幾年了,從來沒有用過任何作業系統,所有程式都是裸機直接執行。好處是系統簡單,一切都在自己的掌握之中,出了問題可以很快得到解決。壞處是系統的移植性差,換了個系統有很多通用的**需要重新編寫。

不過我做的那些嵌入式系統現在看來其實都是蠻簡單的,用了作業系統可能反而更麻煩,首先得花時間學習作業系統,而且出了問題還要分析確認這問題是不是作業系統的問題,一旦是作業系統的問題還要想辦法怎麼規避,算了,有那個時間專案早就做完了。

沒有作業系統,我的程式更加清晰,沒有了驅動程式載入、作業系統api呼叫,反而可以更加清楚地知道如何基於ohci規範實現usb主機。在開始講解之前,我想讀者應該具備如下的基礎知識:

1、 usb介面基礎知識;

2、 usb層通訊協議及基本工作流程;

3、 usb主機對usb裝置的管理流程;

4、 ohci標準 —— at91am9200對usb介面的操作標準;

5、 mass storage protocol —— 對u盤訪問的儲存控制協議;

6、 ufi command - u盤讀寫等操作命令;

7、 fat16檔案系統;

1、 《open host controller inte***ce specification for usb》

路徑說明

ohci介面規範,解壓後得到word文件

2、 《arm嵌入式系統軟體開發例項(一、二)》

路徑說明

周立功等編著,北京航空航天大學出版社

3、 《usb 2.0應用系統開發例項精選》

路徑說明

廖濟林編著,電子工業出版社

4、 《universal serial bus mass storage class bulk-only transport》

usb bulk-only協議規範

5、 《universal serial bus mass storage class ufi command specification》

usb ufi命令規範

6、 《microsoft extensible firmware initiative fat32 file system specification》

fat32檔案格式,基礎部分與fat16相容

基於OHCI的USB主機 OHCI(端點)

ohci open host controller inte ce 是康柏 微軟 國家半導體等公司共同制定的乙個usb主機介面規範,它提供乙個更抽象的介面來完成usb資料傳輸工作。在ohci規範中,最重要的幾個概念是端點 endpoint ed 傳輸描述符 transport descriptor ...

基於OHCI的USB主機 前言

很久以前,大概是前年年底吧,因為公司專案的要求,我做了基於ohci的usb主機訪問u盤的程式,用來把系統中產生的一些資料儲存到u盤中。本來做的時候就想把其中的一些經驗體會發表的,可是工作實在是太忙,而且也的確有點懶,就一直拖到了現在。做訪問u盤的usb主機,網上有很多現成的例子,從硬體到軟體。可是絕...

基於OHCI的USB主機 USB裝置列舉

usb裝置接入以後,必須進行裝置列舉,得到裝置引數,設定裝置執行配置等引數,下面的 就是對u盤裝置進行列舉的過程。因為沒有使用作業系統,所以函式使用狀態遷移的方式完成列舉,該函式在主迴圈中被呼叫。usb裝置列舉處理 return 當前列舉處理的狀態 short usbenumdev void old...