- 音頻分布式傳輸協(xié)議
- 如何選擇SCO信道
- 擴展SCO信道方式
藍牙已確確實實的來到人們的生活當中。我們曾經懷疑“身邊會有多少藍牙設備可以連接”,現在我們想的卻是“我和你的藍牙設備連接效果會怎么樣”。
直到最近,藍牙音頻傳輸都較為簡單。藍牙規(guī)范只定義了一種傳輸機制,對于更復雜的應用幾乎沒有選擇余地。如今,藍牙規(guī)范1.2以及一種新的高品質音頻協(xié)議的發(fā)布,使得一度單調的藍牙音頻功能變得豐富起來。由于所有的數字音頻傳輸都是建立在數據流的基礎之上,所以可用的傳輸方式在傳輸機制、編碼方法、數據速率、數據包長度以及檢錯/糾錯等方面都有所不同。
藍牙技術是一種基于數據包、時隙為625毫秒的跳頻協(xié)議。在每兩個進行配對通訊的藍牙設備中,一個是連接的主設備,另外一個是從設備。一般來說,在接收到來自主設備的一個數據包后的時隙內,從設備就向主設備傳送數據。藍牙技術規(guī)定了音頻數據傳輸的兩個基本機制。
最初的藍牙音頻傳輸機制是同步定向連接(SCO)信道,它支持數據速率為64kbps的全雙工傳輸。在沒有射頻干擾的情況下,SCO的音質可接近標準移動電話的音質。這個結果也在預料之中,因為在藍牙技術的發(fā)展本身就帶有應用于藍牙耳機的思想。SCO數據在指定的時隙內傳輸,既保證了帶寬,又為數據包在確定的時間內到達提供了保障。
藍牙設備采用邏輯鏈路控制和適配協(xié)議(L2CAP)來傳輸不同步數據。邏輯鏈路控制和適配協(xié)議將所有不同步的數據傳輸多路復用到有效的藍牙帶寬上,其中包括串行數據(例如AT命令與響應)、服務發(fā)現數據、以及用于提供音頻和視頻流信道的等時數據。
藍牙規(guī)范1.2提高了藍牙設備的服務質量(QoS),并大大改善等時數據的效用。這些改善使應用程序能夠為傳輸數據流請求帶寬和延遲保證。
選擇正確的SCO信道
SCO信道在可自定義功能方面提供的東西很少。比特率是固定的,當確定了三個編碼解碼器后,實際上只有一個連續(xù)可變斜率增量(CVSD)被用到。其它的編碼解碼器(A-Law和L-law)雖然提供更好的音質,但它卻跟CVSD一樣沒有容錯性。由于SCO信道只提供有限的檢錯/糾錯功能,并且沒有數據包重發(fā)功能,所以CVSD是一種更安全的選擇。
SCO提供了全雙工的音頻。藍牙連接中的主設備發(fā)送一個數據包給從設備,而從設備在接下來的時隙中給予響應。盡管能夠對特定的包類型作出選擇,這個特定的包類型還是象征性地被留在了藍牙芯片組內的連接管理固件中。藍牙技術定義了傳輸SCO的四個包類型(見表)。
不論是由芯片組來選擇,或者是由系統(tǒng)設計者來選擇,在選擇SCO包類型時都需要折衷考慮。HV1數據包較其它類型的數據包具有更好的糾錯效果,但它在藍牙1.1規(guī)范中卻要占用整個帶寬。HV3數據包類型不提供檢錯功能,但卻只占用每6個時隙中的2個。于是藍牙設備能夠在保持SCO連接的同時再建立其它連接,這在SCO數據采用HV1數據包時是不可能的。圖2是一個SCO的時序圖。
最理想情況下,包類型不會影響音頻質量,在所有的三種情況下所傳輸的數據完全相同。HV1和HV2數據包允許對一些誤碼進行糾正。但一般情況下誤碼不會明顯降低音頻質量。音質差極有可能是因為數據包丟失造成的。
一個藍牙數據包由一個訪問碼,一個起始碼和一個有效荷載組成。當1/3前向糾錯碼和檢錯碼對起始碼進行保護時,低信號強度或本地干擾可能會造成到達的數據包中的起始碼無效。在種情況下,這個數據包就會被丟棄,因為沒有SCO數據包的重發(fā)請求機制,數據包就這樣丟失。
如果連接使用HV1數據包,數據丟失得就會較少,因此在一個丟失的數據包中,音頻彈跳能量就越少。如果同樣是因為帶寬窄或者是短時間的干擾造成數據包的丟失,HV1可以比HV2或者HV3數據包提供更好的音質。當然這也并非一成不變,因為HV1傳輸數據包更多,所以在嘈雜環(huán)境中數據包丟失的可能性也會更高。
[page]
藍牙規(guī)范1.2加入了在本地干擾存在情況下改進SCO音質的功能。IEEE-802.11b就是一個很好的例子,它在ISM(工業(yè)、科學及醫(yī)學機構用帶寬)帶寬中占用大約22MHZ的帶寬,或藍牙頻譜中的22個信道。
藍牙技術使用的79個信道之間的間隔為1MHZ。藍牙1.2版本加入了自適應跳頻(AFH)技術,它可以讓已配對的藍牙設備避免會產成沖突的信道。配對的兩個設備可以實時生成一個信道圖,或被提供給來自上層軟件的無線信號。后一種模式使同時包含有藍牙和802.11b節(jié)點的設備能更好地共存。設備的軟件為藍牙模組提供了一個新的頻率圖,以防止藍牙設備使用被802.11b節(jié)點占用范圍內的信道。由于干擾造成的數據包丟失變少,所以音質得到改善。AFH采用的跳頻算法只需20個良好信道就能工作。減少工作信道對AFH不利的是,來自附近藍牙連接的干擾的可能性會隨之增加。
擴展SCO信道
擴展SCO信道是藍牙1.2版本中的另一項新增功能,它可在信道參數上提供更大彈性,并允許重發(fā)損壞的數據包。這些擴展功能與AFH結合在一起,能在音頻傳輸方面比藍牙1.1版本的標準SCO信道有更好的表現。
舉個最簡單的例子,雖然采用新類型的數據包,eSCO信道與SCO信道的工作方式非常相似。音頻數據以單間隙包進行傳播,這些數據包包含1到30個數據字節(jié),但是eSCO做了兩項改進。第一,在數據包中加入CRC碼以檢驗數據的有效性(這在HV3SCO數據包中是沒有的)。第二,如果接收設備檢測到數據包有錯,可以請求重新發(fā)送出錯的數據包。這取決于信道是如何設置的,因為信息幀必須被保留下來,以便于重新發(fā)送。
不利之處是重發(fā)數據包的會增加收發(fā)設備的功率消耗。采用AFH能將這種影響降至最低。如果數據包丟失是因為固定帶寬的干擾,如802.11b等引起的,AFH可讓藍牙設備避免已知的不良信道以減少數據重發(fā)。設計者們還需要考慮到數據延遲問題,因為重新發(fā)送的數據要比計劃到達時間至少晚1.2ms。
正如前面提到的,由于丟失或損壞數據的可能性較大,SCO信道采用了CVSD音頻編碼。其它編碼解碼器能提供較好的保真度,但在接收到有錯數據時表現很差。有了eSCO更好的數據完整性,就有可能采用其它編碼器來改善音質而無需提高64kbps的基本數據速率。.SCO數據固定數據速率為64kbps,具有對稱、支持全雙工的特點。采用eSCO會增加兩個多時隙的數據包,并支持不對稱的數據速率。事實上,根本沒有數據需要傳輸。如果一條eSCO信道是單向的,例如語音博物館向導(audiomuseumguide),接受設備在接收到一個數據包后回發(fā)一個很小的叫做NULL的包以表示確認。基于協(xié)商的參數,利用多時隙數據包,eSCO信道上的數據速率可能高至288kbps,這使支持包括視頻傳輸在內的高階編碼解碼器成為可能。
有意思的是,eSCO所擁有這些豐富選項,反而成為有效應用其功能的最大障礙。信道選項,比如數據速率和編碼解碼器,必須在應用層得到協(xié)商。負責制定采用了SCO連接的協(xié)議規(guī)范的各藍牙工作小組,都在開發(fā)一種以便能將eSCO集成到這些協(xié)議中去的方法。
一個推薦的解決方法就是分階段引入這些特色功能。第一階段將eSCO限定在一個64kbps的CVSD信道,這跟SCO信道限制硬件和軟件上的支持具有同樣效果。有了這樣的經驗,更多的功能將被引入。如果這樣顯得太過謹慎,別忘了有消息聲稱“大約有55個不同的配置在采用eSCO的情況下達到了對稱的64kbps。
有關寬帶語音的規(guī)范目前正在開發(fā)中,其背后的驅動力正是3G移動通信技術中一個類似技術的衍生。假如大量藍牙產品以移動電話耳機配件,車載免提套件附件為目標市場,那么電話與配件間的音頻連接質量至少要達到移動電話網與移動電話之間連接質量。有關藍牙寬帶語音規(guī)范的細則還未出爐,但將采用eSCO作為其傳輸機制這點已很清楚。
高級的音頻分布式傳輸協(xié)議
顧名思義,最近采用的音頻分布式傳輸協(xié)議(A2DP)正是為了高品質音頻數據的傳輸而設計的。單向的音頻流可能用到任一種編碼解碼器。但為保證互操作性,A2DP強制指定了一個編碼解碼器。正如數據源和編碼解碼器所指定的,數據流中可以包含一個單一的音頻信道或者混合立體聲編碼。
前面提到,藍牙技術提供同步和非同步數據的傳輸業(yè)務。A2DP采用一個加載于L2CAP層上的等時數據信道。在A2DP和L2CAP之間是音/視頻分布式傳輸協(xié)議。該協(xié)議層定義了音頻和視頻流的傳輸機制。
A2DP和AVDTP對數據流的解碼、傳輸及解碼等作出了規(guī)定。另外還有一個協(xié)議能夠控制數據流所包含的內容,這個協(xié)議就是音視頻遙控協(xié)議,它規(guī)定了執(zhí)行一個遙控設備所需的基本元素。
將這些元素集于一身,用戶可將帶藍牙功能的數字音頻播放器帶到他們的汽車中去,并很好的利用汽車內置音響系統(tǒng),以在享受播放器的同時對播放器進行控制。藍牙具有的充足帶寬,支持高品質帶立體聲編碼的音頻流,可帶給用戶帶來高保真無線音頻。隨著這些功能或小發(fā)明被迅速移植到電子助理設備中,像移動電話或者PDA等都將成為很好的音頻源。目前A2DP已在無線立體聲耳機和家用音響系統(tǒng)中的遙控音箱等設備中被采用。
基于應用的考慮
我們知道,藍牙技術為音頻數據的傳輸提供了多個選擇。具體選擇哪一種則首先考慮應用。如果應用基于標準的藍牙協(xié)議,那么該協(xié)議會規(guī)定什么類型的音頻傳輸機制是可用的。
對于功能較簡單的藍牙設備,比如單聲道手機耳機,簡單的SCO音頻信道就可以。除非處于特別環(huán)境,所有的SCO音頻數據包類型都可以在這樣的設備上使用,而把準確選擇留給藍牙芯片的連接管理代碼。
如果藍牙耳機支持更高質量的音頻,如寬帶語音,則必須加入合適的編碼解碼器和eSCO。需要注意的是,協(xié)議層編碼必須對信道特性協(xié)商進行控制,這點與SCO信道在協(xié)議層無須協(xié)商有所不同。
如果兩個設備就一組eSCO參數不能達成一致,那么這兩個設備必須能夠退而采用SCO信道。這個附加的協(xié)商功能增加了編碼的復雜性,更增加了在互操作難度。制造商在開發(fā)含有eSCO功能的藍牙產品時,在產品的互操作性測試上下了不少功夫,其中包括與完全不支持eSCO的基于藍牙1.1的產品之間的測試。
測試的操作環(huán)境也必須考慮到很多因素。如果存在已知干擾,如802.11b節(jié)點,結合使用自適應跳頻技術和eSCO的數據包重發(fā)機制,可大大減少數據包的丟失并提高音質。如果設備同時具有802.11b和藍牙節(jié)點,設計者應該注意軟硬件中的傳輸機制以實現共存。
通過軟件設置藍牙信道屏蔽可以避免被本地802.11b占用的頻率。這就使AFH軟件無須通過實際操作就能得知那些不良信道。也有其它機制試圖輪流給每個設備指定傳輸時間,這個方案在處理對時間要求不緊迫的數據時效果較好,但在面對同步或者等時數據流的卻沒有多大價值。由于這些特性在各芯片生產商間各有不同,感興趣的設計者應從他們首選的供應商那里弄清楚哪些是可用的。
對編碼解碼器的選擇應多加注意。對于SCO和eSCO信道,在面對可能有缺陷的數據時,CVSD將可以接受的音質與魯棒性結合起來。采用不同的編碼解碼器能在同樣的數據速率下改善音質,但必須考慮到數據穩(wěn)定性和設備的互操作性。
如果應用要求高品質的單向音頻通路,A2DP將是合理的選擇。這也再次提醒設計者在選擇編碼解碼器時須多加注意。對于專用的成對設備則可采用任意的編碼解碼器,比如揚聲器,它只需連接到其配對節(jié)點(音源)上。如果設備將與多種設備配對使用,最好的選擇就是采用默認的編碼解碼器。