2012-05-30 74 views
1

我被問及如何通過現成的適配器(在這種情況下是使用Broadcom BCM2045芯片的適配器)實現藍牙通信,使用FTDI Vinculum 2(VNC2)USB控制器。我爲VNC2編寫了自定義固件,以便與VNC2充當主機的通用USB設備進行通信,並且我可以成功讀取加密狗以及USB設備類,子類和協議中的VID和PID。我還可以使用批量數據端點將數據發送到加密狗,並且我相信該設備正在接收,但目前我無法分辨。從FTDI vinculum與USB藍牙適配器通信2 USB主控制器

所以我相信我可以與加密狗進行通信,問題是我不知道要與之通信以便將其設置爲可發現模式或將其與另一個可發現設備配對,也不知道如何實際傳輸數據通過無線連接進行配對。我甚至不知道是否存在用於這種類型的事物的標準通信協議,或者每個設備會不同。我對藍牙協議棧有一個模糊的理解,我的理解是,我不需要完全理解,因爲它應該在一端的加密狗和我們希望連接到的android智能手機上實現另一端。就像我所說的,我現在可以將數據發送到批量端點,這個端點是否僅用於無線鏈路上的數據傳輸,我需要連接到不同的端點才能將設置/配置消息發送到加密狗?

總之,我需要知道通過USB總線發送什麼數據來控制任何通用藍牙適配器,或者至少有一個特定的藍牙適配器。我有一個USB端口嗅探器,但使用加密狗進行通信時輸出的複雜性令人咋舌,而且我懷疑我是否會想到它。

預先感謝您。

回答

2

藍牙適配器使用Bluetooth規範中定義的HCI(主機控制接口)與主機軟件堆棧進行通信。作爲參考,您可以查看開源BlueZ堆棧(標準linux堆棧)的源代碼。您可以在Linux上運行BlueZ並與您的USB加密狗通話,並使用hcidump來捕獲實際通過HCI的數據包。您還可以查看hcitool和hciconfig執行特定操作。

+0

哦,我明白了,所以我將不得不實現堆棧的HCI層......我可能還必須實現所有更高層,然後才能正確(或至少是我們需要的)層? 您是否認爲我必須自己實施L2CAP,SDP和RFCOMM?在加密狗上實現了哪些層? 感謝您的迴應,它已經非常有幫助! – CHollman82

+0

加密狗支持HCI(LMP - 鏈路管理協議,MAC層,物理層)以下的所有內容。你需要實現的東西實際上取決於你想要做什麼。要與其他標準堆棧/設備交談,那麼肯定會包含至少一部分L2CAP。您需要的其他配置文件取決於您的應用程序。 – TJD

+0

非常感謝 – CHollman82