簡體   English   中英

iOS藍牙雙模; 同時將BLE(GATT)連接到已連接的BR / EDR(A2DP / HFP)立體聲耳機

[英]iOS Bluetooth dual-mode; connect BLE (GATT) to an already connected BR/EDR (A2DP/HFP) stereo headset simultaneously

我正在使用經典配置文件(HFP,A2DP,AVRCP)開發帶藍牙的立體聲耳機,就像人們期望的Ina立體聲耳機一樣。 但是,我想為iOS部署一個遠程控制應用程序,並將其同時用於其他經典鏈接,但我在設計中使用的雙模芯片組並不像我期望的那樣;

耳機設置為外圍設備,讓iOS設備充當中心。 因此,外圍設備通告其BLE服務(使用我特定的128位UUID)並且一切都很好。 我可以從任何中心瀏覽外設,但只有當我沒有連接經典配置文件時(例如,不流式傳輸音頻)。

在與HFP和/或A2DP連接時,我的設備似乎無法宣傳BLE! 但是,我看到同一芯片組的演示充當BLE中心,掃描並連接到其他BLE外設,同時通過A2DP傳輸音頻。 但是,在該設置中,設備充當連接到iPhone的A2DP接收器,同時通過BLE掃描/連接到充當BLE外圍設備的第三個單元。 因此,不能將經典和智能藍牙與同一設備進行點對點。

是否存在雙模式約束,在支持/連接Bluetooth Classic配置文件時,不能充當外設? 那種情況下只支持中央模式嗎?

僅供參考,我正在使用CSR的8670芯片組。

UPDATE

新的答案補充說。 我很抱歉直到現在還沒有澄清/清理我以前的答案 - 時光飛逝!

好吧,在深入研究規格並試圖更清楚地理解事物后,我找到了我想要的答案,盡管我更喜歡更樂觀的答案......;(

不過,讓我們來看看; 藍牙規范4.0(BLE)說;

雙模式小工具不能充當BLE外設並宣傳其存在,同時仍然可以使用BR / EDR在“經典”藍牙中連接。

此外,我使用的CSR8670雙模芯片組的CSR源代碼示例表現相同; 當連接任何經典BT鏈路時,禁用作為外圍設備的BLE廣告。 相反,CSR源代碼促進設備應該充當BLE中心,允許其他BLE外圍設備通告並連接到它,所有這些都可以在流式傳輸音頻時充當(充當A2DP接收器)。

這完全不適合我的設置;

  1. BLE中心比BLE外設消耗更多功率,我的設備需要節省能源
  2. 將BR / EDR設備與BLE外圍功能相結合的雙模“組合”問題恰好轉移到手機上,由於我們不能指望Apple(或其他任何人)違反BLE規范,因此效果不會更好。

相反,推薦的方法是讓我的立體聲耳機完全跳過BLE並使用GATT而不是BR / EDR,也稱為“香草”廣告,這真的很有意義; 我的意思是,我已經在兩個設備之間建立了ACL鏈接,為什么我需要啟動任何類型的發現機制?

同樣,藍牙SIG也派上用場了;

https://developer.bluetooth.org/TechnologyOverview/Pages/GATT.aspx

GATT和ATT不是特定於運輸的,可用於BR / EDR和LE。 但是,GATT和ATT必須在LE中實施,因為它用於發現服務

因此,SIG對於使用BR / EDR作為GATT的傳輸表示“是”,但問題則變為; 我怎么能那么從我的IOS的應用程序,其中典型的場景是使用CBCentral進行掃描,發現並連接到一個CBPeripheral內可以訪問連接 BR / EDR設備? 答案很簡單; 你不能,因為iOS 7.0沒有(但是?)支持GATT for BR / EDR;

https://www.bluetooth.org/tpg/showDeclaration.cfm?3A000A5A005C5344535D5414403B0C0D0E2405022413010E57503F202A5A72

所以,總結一下; 如果你想在兩個雙模藍牙設備之間建立點對點設置,使用BOTH藍牙經典配置文件和藍牙智能服務/特性,你應該使用GATT over BR / EDR,這對Apple設備來說是不行的,但可能會得到Android的支持(不知道,最終會將應用程序移植到Android上,但不管它對Android來說不是什么大不了,因為最糟糕的情況將意味着回退到SPP和簡單的字節協議來完成工作我需要完成)

就是這樣。 希望我幫助過某人;)/ Markus

我想,只要你活着,你就會學到,這個問題的答案並不是我之前所聲稱的不支持(基於我認為我所知道的)。

對CSR芯片組進行雙模式和耳機開發的簡短而干凈的答案就是它在早期SDK上的CSR藍牙堆棧中的限制。

Bluetooth SIG從未通過經典鏈路連接到同一設備,從未支持雙模作為外設。 相反,它明確規范。 應該如何進行這種互操作性 - 但這並不總是意味着所有BT-stack實現都具備這種功能。

因此, 使用最新的devtools和CSR的最新藍牙固件/堆棧已經解決了所有問題,雙模現在已經完全,而且實際上我可以添加,很好地支持CSR8670 / 75芯片組。

我也在使用CSR8670設備。 它有效。 BLE外設和音頻。

您需要使用CSR的ADK 4.0.0。

藍牙4.1和藍牙4.0是不同的。 對於你所說的藍牙4.0是正確的,但你的芯片可以做藍牙4.1。

4.1允許這樣的連接。

我還在廣告包中添加了“雙模式”標志。

有一些條件,例如強烈推薦的連接間隔至少90毫秒,所以你不要亂用音頻。

祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM