USB資料傳輸!!

請問各位高手,要如何用USB來傳輸資料,我知道LABVIEW 7.X有這個功能

但是我最近看到一本LABVIEW的中文書是有關各種介面控制(2004 4月

出版,許永和著)中,他好像不是在LABVIEW7.X中實現的,好像是用

Invoke node設定為USB_HID去做的,不知道各位高手,了解usb在labview

中的使用方式嗎??![](upload://qPCmzfq2KigUaPncn6Um67RUCob.gif)

[QUOTE=麟仔]

請問各位高手,要如何用USB來傳輸資料,我知道LABVIEW 7.X有這個功能

但是我最近看到一本LABVIEW的中文書是有關各種介面控制(2004 4月

出版,許永和著)中,他好像不是在LABVIEW7.X中實現的,好像是用

Invoke node設定為USB_HID去做的,不知道各位高手,了解usb在labview

中的使用方式嗎??![](upload://qPCmzfq2KigUaPncn6Um67RUCob.gif)

[/QUOTE]

這兩天到書店有看到這本書,也買了一本,有空study一下大家一起來討論吧!

[QUOTE=小小羊兒]

這兩天到書店有看到這本書,也買了一本,有空study一下大家一起來討論吧!

[/QUOTE]

昨天去書店時,也看到這一本書,端詳了許久,卻遲遲狠不下心把這本書買下來。好吧!既然小小羊兒都已經買了,那我也要去買一本。

![](upload://wh1Jr0invKZTARRL2Hqlvc8do63.gif)

labview本身提供3個vi,

VISA Get USB Interrupt Data VISA USB Control Out

VISA USB Control In

LABVIEW的中文書是有關各種介面控制,使用的是Active X方式,需call usb hid.dll檔

![](upload://3ICcp1ultUwk3hdEgSD7wk9F5wq.jpeg)

[QUOTE=小虫]

![](upload://wh1Jr0invKZTARRL2Hqlvc8do63.gif)

labview本身提供3個vi,

VISA Get USB Interrupt Data VISA USB Control Out

VISA USB Control In

LABVIEW的中文書是有關各種介面控制,使用的是Active X方式,需call usb hid.dll檔

![](upload://3ICcp1ultUwk3hdEgSD7wk9F5wq.jpeg)[/QUOTE]

來一個簡單的練習:利用LabVIEW去偵測是否有特定的USB disk insert進USB port,如果有則顯示這個裝置的名稱,再copy一個檔案到USB disk上,成功後再讀回來比對是否一致.

有人可以完成這個功能嗎? 我還試不出來.

我試過許老師書中的usb範例,為什程式執行後,我在傳送端輸入數值,為何接收

部分沒有反應阿....另外....HID裝置要如何才能讓程式發現呢?....我依據許老師書

中的路徑去尋找hid.dll檔案,為什麼在win xp中的windows\system\找不到

hid.dll這個動態連接檔??請教各位高手....知道是什麼原因嗎??![](upload://wh1Jr0invKZTARRL2Hqlvc8do63.gif)

hid.dll檔在windows DDK裡面有,不然你就到google上面搜尋一下

自行下載回來安裝!  

檔案在這裡

USB_HID.zip

要利用LabVIEW去偵測是否有USB disk?要送什麼指令?我想應該要看一下card reader的規範吧?

我無法使用USB_HID,Labview回應 " 類別未登錄 "的訊息,有人遇到與我相同的狀況嗎?

[QUOTE=greeman]

檔案在這裡

USB_HID.zip

[/QUOTE]

很奇怪,我照著書上寫的code把它複製到VB裡面,編譯過程竟然不認得dim ia8 as new HID

HID型態不認得?為什麼呢?

我有加入USB_HID.dll了啊!![|639x584](upload://p1yBZgtfDISQMUxFwjyCzUXoWFC.jpeg)

 

Dim IA8 As New HID
Dim DealyFlag As Boolean
Const VID = &HC45
Const PID = &H17EF

Private Sub Command1_Click()
    If True = IA8.OpenHIDDevice(VID, PID) Then
        Text1.Text = "找到HID裝置"
    Else
        Text1.Text = "不存在HID裝置"
    End If
End Sub

 

我的問題其實跟BiBol兄是一樣的,希望有人可以解答

[QUOTE=armuro]

我的問題其實跟BiBol兄是一樣的,希望有人可以解答

[/QUOTE]

唔?我剛剛找到答案了!

作者在程式裡定了一個class叫作HID

所以它可以定義這個形態的類別

這樣子你瞭解了嗎?你可以把光碟的範例找出來看看!

希望可以解決您的問題

 

[/QUOTE]

唔?我剛剛找到答案了!

作者在程式裡定了一個class叫作HID

所以它可以定義這個形態的類別

這樣子你瞭解了嗎?你可以把光碟的範例找出來看看!

希望可以解決您的問題

 

[/QUOTE]

如果你說的是Select ActiveX Class,我已試過不行

我遇到的訊息是

code : -2147221164

類別未登錄

 

 

 

 

如果你說的是Select ActiveX Class,我已試過不行

我遇到的訊息是

code : -2147221164

類別未登錄

 

    VB程式有Select ActiveX Class?

    我不曉得耶,我只知道我執行光碟裡程式是沒有問題的!

    該不會我們兩個個講的例子是不同書的例子吧?

    我講的是儒林-微處理機與USB主從介面之設計與應用裡的例子,14-18頁的範例!

我沒法回答問題,但有一些心得跟大家交流

我用的是FTDI的USB Ccontroller ,DS_FT245R_v102.pdf 剛開始研究它的Programmer's Guide,看到頭都痛了.C compiler早不知丟哪去了,用labview寫個測試程式又搞很久搞不定,後來竟然發現人家已經寫好vi了D2XX_Functions_7.0.zip

我的心得是:1.使用NI-VISA來和USB標準裝置溝通,用低階的方式進行控制並實作出各種傳輸模式,真的是有難度,如果有人已經有經驗的還請不吝賜教 2.call library function node或是 call invoke node都要掌握原則:open device-->do your function -->cloce device 3.(許永和著)書中的例子是支援Active X 的DLL所以用invoke node,我用的USB controller因為提供的DLL不支援ActiveX所以是用call library function node. 4.關於VID,PID必須firmware(device),driver(OS,98,XP...),及application program(labview,vb....)都設定清楚(or 一樣),否則便控制不到device

 

[QUOTE=greeman]

我沒法回答問題,但有一些心得跟大家交流

我用的是FTDI的USB Ccontroller ,DS_FT245R_v102.pdf 剛開始研究它的Programmer's Guide,看到頭都痛了.C compiler早不知丟哪去了,用labview寫個測試程式又搞很久搞不定,後來竟然發現人家已經寫好vi了D2XX_Functions_7.0.zip

我的心得是:1.使用NI-VISA來和USB標準裝置溝通,用低階的方式進行控制並實作出各種傳輸模式,真的是有難度,如果有人已經有經驗的還請不吝賜教 2.call library function node或是 call invoke node都要掌握原則:open device-->do your function -->cloce device 3.(許永和著)書中的例子是支援Active X 的DLL所以用invoke node,我用的USB controller因為提供的DLL不支援ActiveX所以是用call library function node. 4.關於VID,PID必須firmware(device),driver(OS,98,XP...),及application program(labview,vb....)都設定清楚(or 一樣),否則便控制不到device

[/QUOTE]

 

我用許永和老師在儒林-微處理器與USB主從介面之設計與應用書中,第14章的範例改寫了一個簡單的USB送收資料的程式,不過那是牽就於VB的程式,但是我遇到的困難是我做不到USB資料進來產生中斷而讓CPU去將資料讀出來,當然這相對於此板已經是離題了,不過我想說的是,有興趣的朋友可以按照該範例在labview中撰寫出USB的送收資料的程式。

我繼續去想辦法寫出中斷產生的程式。

[QUOTE=BiBol]

 

如果你說的是Select ActiveX Class,我已試過不行

我遇到的訊息是

code : -2147221164

類別未登錄

 

    VB程式有Select ActiveX Class?

    我不曉得耶,我只知道我執行光碟裡程式是沒有問題的!

    該不會我們兩個個講的例子是不同書的例子吧?

    我講的是儒林-微處理機與USB主從介面之設計與應用裡的例子,14-18頁的範例!

[/QUOTE]

ㄚ現在回覆不知會不會太晚...

在"USB_HID.dll"檔案按右鍵,再按"Register DLL"或"Register"把它登錄到註冊檔

應該就可以解決"類別未登錄"的問題!!

我剛剛才試出來的...嘿嘿!!!

dickson38847.764375

[QUOTE=dickson][QUOTE=BiBol]

 

如果你說的是Select ActiveX Class,我已試過不行

我遇到的訊息是

code : -2147221164

類別未登錄

 

    VB程式有Select ActiveX Class?

    我不曉得耶,我只知道我執行光碟裡程式是沒有問題的!

    該不會我們兩個個講的例子是不同書的例子吧?

    我講的是儒林-微處理機與USB主從介面之設計與應用裡的例子,14-18頁的範例!

 

 

ㄚ現在回覆不知會不會太晚...

在"USB_HID.dll"檔案按右鍵,再按"Register DLL"或"Register"把它登錄到註冊檔

應該就可以解決"類別未登錄"的問題!!

我剛剛才試出來的...嘿嘿!!!![](upload://lTkBiKYocE5J6EqRejuxVFrtSxf.gif)

 

[/QUOTE] [/QUOTE]

 

可否圖示說明,我找不到你所說的

[QUOTE=armuro]

可否圖示說明,我找不到你所說的

[/QUOTE]

我的XP是sp2版,按右鍵有下面的畫面,早期的XP的確是沒那個畫面啦!!

![](upload://gb3ceai09Kb279Mqj4TlCk6Gz7r.jpeg)