當前位置:首頁 » 編程軟體 » usb通信編程

usb通信編程

發布時間: 2022-06-30 03:40:45

⑴ 手機與電腦怎麼編程實現USB通訊

簡訊貓就可以啊,不貴,去店裡買就行了,還能群發,還方便

java usb通信方法

javacomm.jar包,串口編程。

⑶ VB編寫與USB採集卡通信程序

用vb實現USB介面設備數據傳送

本文介紹了USB設備中的人機介面,HID設備與主機通信的要點與方式。詳細講解了在VB中調用相關APl函數的方法,並介紹了一種基於USB匯流排的數據採集系統的設計方案及開發方法,採用的是USB2.0協議。該系統主要是從設備的角度描述了人機介面設備通信,以及用來與主機進行數據交換的報告格式。應用程序可以使用任何能訪問API函數的編程語言,調用窗口函數並與USB設備實現通信。掌握USB設備與計算機通訊規程,實現USB設備的自動識別。為數據採集系統與計算機之間的通訊開辟了新的道路。
這幾年,隨著大量支持USB的個人電腦的普及,USB逐步成為PC機的標准介面已經是大勢所趨了。在主機(host)端,最新推出的PC機幾乎100%支持USB;而在外設(device)端,使用USB介面的設備也與日俱增,例如數碼相機、掃描儀、游戲桿、磁帶和軟碟機、圖像設備、列印機、鍵盤、滑鼠等。

二、Windows系統選擇USB驅動的過程

當Windows檢測到一個新的USB外設時,必須做的一件事情是找出應該使用哪個設備驅動應用軟體來與設備通信,然後載入選定的驅動。這是Windows設備管理器的工作,設備管理器使用類、設備安裝器和INF文件來找到這個匹配。
INF文件是一個文本文件,其中包括有利於Windows識別設備的信息。文件告訴Win-dows要使用什麼驅動、注冊表裡存儲什麼信息等。

三、Visual Basic與USB設備通信的設計與實現

使用VB語言訪問串列通信介面的方法。Windows在底層實現了和串列通信有關的很多復雜的工作,給程序員提供了一個相對比較容易掌握的編程介面。例如 Windows自動將所有接收到的字元放到接收緩沖區中,而所有發送的字元也都進入發送緩沖區。只要程序空閑,程序就可以讀取接收緩沖區獲得數據,或者向發送緩沖區發送數據。

1.主機尋找USB設備的過程
第一個被Windows支持的USB外圍設備類是人機介面設備。HID是 HUMANINTER-FACE DEVICE人機介面設備的英文縮寫。是指直接和人進行互動的設備。如滑鼠、鍵盤等。運行在WINDOWS98或其他更高的版本的操作系統的PC機,系統除了提供通用的USB設備的底層驅動以外,還單獨提供了一些HID設備的完整驅動,應用程序可以很容易地與操作系統內部的HID通訊。這樣使得符合HID 類的USB設備很容易開發與運行。也就是說,我們如果想實現一個USB的HID類設備,是不需要在Windows下開發自己的驅動程序的。HID不一定要是標準的外設類型,唯一的要求是交換的數據存儲在報文的結構內,設備固件必須支持報文的格式。任何工作在該限制之內的設備都可以成為一個HID,例如溫度計、電壓計、讀卡機等。

2.VB中調用API函數的過程
(1)聲明:下面是一個Visual Basic使用API函數WriteFile的聲明:可以利用這個涵數來寫數據到HID(也可以是文件和其他設備)中。Public Declare Function WriteFile Lib_「kernel32」_
(By Val hFile As Long,_ByReflpBuffer As Byte,_By Val nNumberOfBytes To Write As Long,_ByRef lpNumberOfBytesWritten As Long,_ByVal lpOvefiapped As Long)_As Long
(2)識別HID過程Public Declare Function HidD_GetHidGuid Lib_「hid.dll」_(ByRefHidGuid As GUID)As Long

3.Visual Basic數據過程
(1)讀數據到設備
Public Declare Function WriteFile Lib「kernel32」_(ByVal hFile As Long,_ByReflpBuffer As Byte_ByValnNumberOfBytesToWrite As Long,_ByRefnNumberOfBytcsWritten As Long,_ByVal lpOvefiapped As Long)_As Long
(2)從設備讀取數據Declare Function ReadFile Lib_「kernel32」_(ByValhFile As Long,_ByReflpBuffer As Byte,_ByValnNumberOfBytesToRead As Long,_ByReflpNumberOfBytesRead As Long,_lpOvefiapped As Long)_As Long
讀寫報文緩沖區時,第一個位元組是ReportID,其後是報文數據。報文緩沖區默認是八個報文,並且環狀排列。因為數據讀寫是發生在主機輪訓設備的時候,並不是由設備觸發產生硬體中斷,所以如不能及時讀寫,新的數據會覆蓋舊的數據,導致報文丟失。當數據讀寫頻繁時應使用特徵報文,它可以保證當報文數據沒有變化時,HID不會傳送新的數據。
當不再使用SetupDiGetClassDevs時,應用上述函數釋放其返回的數組hDevInfo。還有需要使用函數CloseHandle,它是一個非常通用的API函數,可以用於關閉通信。

四、結論

實際編程表明使用VB開發HID類USB設備是一條非常方便快捷的途徑,不需要編寫底層驅動,涉及到的API函數多是大家熟知的通用函數。但同時還必須注意到一點,HID類只支持控制傳輸與中斷傳輸。控制傳輸通常不用於數據的傳輸,而中斷傳輸的特點是保證最大延遲,也就是事務之間的時間。它沒有保證傳輸速率,而是保證每筆事務之間的時間不會超過最大延時。所以中斷傳輸適用於數據量不太大,但需要及時快速地傳送,實時性要求較高的場合。對於數據量比較大的傳輸,是不宜使用中斷傳輸的。因此HID設備應用的場合也必須根據該特點靈活使用。

⑷ 如何用STM32系列內核的MCU與PC進行USB通信

需要STM32與PC進行USB通信您可以選擇三個途徑,第一:你可以使用STM32的RX及TX的串口配合串口轉USB晶元,比如PL2303,CH340這樣的晶元實現STM32與PC機USB通信,第二個模式就是使用STM32+CH375(帶USB固件)晶元與PC通信,第三個模式就是利用STM32自身的USBslave介面與PC通信,但是後面那種屬於USB,那麼配合PC端的電腦上位機需要USB驅動接收與發送,相對來說,比較難以實現,既然您問這個問題,建議你使用第一種方法,就是串口轉USB通信,且PC端使用VB或者VC++來編程實現即可。

⑸ 用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,一兩個星期完全沒有問題,祝你好運!

⑹ C#如何實現對單片機的USB通信

1、自己寫一個c++的USB代理類,直接和底層驅動通信
2、C#通過這個來調用
單片機只是一塊晶元,需要基本電路及相應外圍設備。
模擬可以用proteus,編程可以用Keil,調試用串口助手。
單片機可以通過RS232轉串口和電腦通信(還需要RS232驅動)。
或者
1、買一個USB到RS232串口轉換介面
2、單片機加一個TTL到RS232電平轉換晶元。
如果是帶USB介面的單片機,則直接用一個簡單的介面電路就可以接到PC了.....
若是不帶USB介面的單片機,則還需要用到一個橋接晶元,通常是利用單片機的USART介面,加上橋接晶元,例如PL2303之類的,就可以接到PC了.

⑺ 如何像調試串口一樣調試USB通信程序

你的 51開發板,通過USB下載程序,其實 就是 USB 轉RS232 串口!

需要驅動的!

⑻ ftdi公司的USB設備通信上位機VC編程問題

哎呀,這個我用過啊,真巧。
不過沒遇到這個問題。

void CISM001Dlg::InitUSB()
{
LoadDLL();
FT_STATUS status = OpenBy();
if(status)
{
MessageBox("USB Not Found!");
m_USB="";
}
else
{
m_USB="USB <-> Serial";
ResetDevice();
SetTimeouts(3000, 3000);//extend timeout while board DLP-USB2 finishes reset
Purge(FT_PURGE_RX || FT_PURGE_TX);
SetTimeouts(300, 300);
}
UpdateData(false);
}

⑼ usb編程,上位機和下位機的通信

PIC 的單片機沒用過,首先得看 PIC32MX575 是否支持 USB 介面。
如果支持,那就按照晶元說明書編寫 C 程序就是了;
如果不支持,那就得用它去控制專用的支持 USB 介面的晶元來實現 USB 通信了。直接在單片機上實現 USB 通信不可行。

⑽ 用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,一兩個星期完全沒有問題,祝你好運!

熱點內容
張藝謀我們一家訪問人 發布:2024-05-05 12:38:05 瀏覽:111
美版安卓系統怎麼安裝 發布:2024-05-05 12:37:18 瀏覽:920
qq郵箱緩存地址 發布:2024-05-05 12:37:16 瀏覽:986
電位演算法 發布:2024-05-05 12:36:01 瀏覽:727
我的世界清風斗羅大陸伺服器地址 發布:2024-05-05 12:35:50 瀏覽:453
dell伺服器如何進入bios 發布:2024-05-05 12:34:26 瀏覽:330
在線名片製作源碼 發布:2024-05-05 12:29:27 瀏覽:447
陰陽師按鍵腳本 發布:2024-05-05 12:00:33 瀏覽:760
魔獸查腳本 發布:2024-05-05 11:54:37 瀏覽:39
sqlserver執行時間 發布:2024-05-05 11:50:31 瀏覽:649