A. 用vc++實現usb介面通信編程的一般步驟
我來說下我做過的USB通信,我沒有做過DSP跟上位機的通信,我只做過ARM類的STM32跟上位機的數據傳遞,雖然做過但是也不是很 懂,只是略知一二,我來說說我怎麼做的吧,我是這么實現的:
USB是個很復雜的協議,你如果完全搞懂,我估計沒有幾個月專心鑽研是不行的,但是如果只是能實現你的這個功能,我估計不是很復雜。
首先來說說USB通信:
USB通信傳輸方式分為四種:控制,中斷,批量,同步傳輸四種,這個你可以看看網上資料,然後我用STM32通信,因為數據量不是很大,我用的是中斷傳輸方式,但是DSP數據量應該會比較大,不知道中斷傳輸行不行,但是一般問題不大。
傳輸方式說完了,再說說USB設備類型,你每次插usb設備到電腦上的時候就會有提示,這是一個什麼設備,USB設備類型就是說的這個意思,是滑鼠還是鍵盤還是別的什麼的,如果你選用標準的類,你就不用自己寫上位機(PC)的驅動程序,但是如果不用標準的類,就是用自定義的類就要自己寫上層的設備驅動程序,就是所謂的DDK,WDM,WDF什麼的,你沒寫過這方面的還真有點棘手,但是也不一定要寫驅動程序,你可以試試有個類叫HID類,這個類在USB通信的時候用的還挺多的,不過這個類也有缺點,這個地方還要說一點,USB還分低速,全速,高速三種,不太了解DSP,不知道他支持什麼模式,但是USB2.0的全速應該至少可以支持的。
USB2.0全速模式HID用中斷方式每秒最多可以傳輸64KB的數據,不知道能不能達到你的要求,但是我估計一般問題不大了,如果你這歀DSP能支持高速模式,每秒用這種方式可以傳輸高達22MB的數據,這個速度一般問題不大了。
你可以照著我說的思路,去網上搜搜人家寫好的程序,肯定有人做過DSP的USB通信,然後你按照自己的要求改一改,主要應該是USB的設備描述符部分要自己修改,然後可能還要根據自己的電路改改配置什麼的,上位機軟體網上有源代碼的多的是,然後自己摸索摸索,我估計你要是編程水平還可以的話,只是摸索USB,一兩個星期完全沒有問題,祝你好運!
B. 使用C++進行USB介面編程的書
正好我這里可以介紹幾本書給你看看, 《Visual C/C++系統開發典型實例解析》 http://www.xavw.com/book/html/?6818.html 本書本著實用的原則,通地定一個個典型案例解析,深入介紹用Visual C/C++進行系統開發應用的編程方法和編輯技巧。全書共7章:第1章Windows系統深入應用編程實例,對典型實例編程中所涉及到的Visual C/C++基礎知識進行深入探討和分析,圍繞Visual C/C++有關Windows系統深入應用列舉了48個典型應用案例;第2章桌面窗口管理應用編程實例,該章列舉桌面和窗口管理12個典型應用案例;第3章對話框與工具條製作與改進應用編程實例,該章主要圍繞對話框與工具條製作與改進應用編程,列舉20個典型而實用的編程實例;第4章控制項與組件應用編程實例,在該章中列舉控制項應用編程13個典型而實用的編程實例;第5章多媒體應用編程實例,列舉11個媒體程序開發典型而實用的編程實例;第6章管理信息系統開發應用編程實例,列舉15個資料庫應用編程實例;第7章Visual C++編程技術巧23則,在該章中每個編程技巧均給出了完整的源代碼。 本書內容豐富,實用性強,所有實例中的源程序代碼都經過了測試和使用,並給出詳細解釋,濃縮Visual C/C++系統開發程序設計的精華,是系統開發編程人員的經驗之作。 本書適合具有一定Visual C/C++基礎的應用編程人員和系統開人員,對剛開始用Viusal C/C++進行系統開編程的新手也有很好的參考價值。 《USB 2.0硬體設計(第2版)》 http://www.xavw.com/book/html/?6819.html USB是外圍設備與計算機進行連接的快速且靈活的新式介面。本書介紹最新的USB 2.0標准,從USB 的基礎開始介紹,包括實際的硬體與軟體設計,並且使用匯編語言、Visual C++、Visual Basic 等來示範程序代碼的編寫。另外還有各種USB 晶元介紹,幫助讀者快速設計自己的USB 設備。 本書共15章和1個附錄,內容包括:USB 簡介、USB 傳輸、檢測設備、控制傳輸、USB 控制器晶元、Cypress enCoRe控制晶元、驅動程序、設備類別、設備測試、電源管理與信號編碼、電路介面、集線器、HID設備、HID程序設計、HID設備開發實例以及USB參考資料等。 本書適合從事USB 硬體、軟體設計的程序員和其他相關技術人員使用或參考。 查看原帖>>