<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于A2DP框架的近距離無(wú)線音頻通信研究

          基于A2DP框架的近距離無(wú)線音頻通信研究

          作者: 時(shí)間:2009-02-12 來(lái)源:網(wǎng)絡(luò) 收藏

          圖3 具體模塊劃分


          2 消息傳遞機(jī)制
          該輕型模塊協(xié)議層之間的交互是通過(guò)消息傳遞機(jī)制來(lái)實(shí)現(xiàn)的,消息的種類可分為以下4種。
          ①請(qǐng)求消息REQ
          該消息是上層協(xié)議向下層協(xié)議主動(dòng)發(fā)出的請(qǐng)求。
          ②確認(rèn)消息CFM
          上層協(xié)議發(fā)出的每個(gè)REQ消息,都會(huì)收到下層協(xié)議發(fā)上來(lái)的確認(rèn)。
          ③指示消息IND
          該消息是下層協(xié)議向上層協(xié)議主動(dòng)發(fā)起的告知。
          ④響應(yīng)消息REP
          對(duì)于每個(gè)下層協(xié)議主動(dòng)發(fā)上來(lái)的IND消息,上層協(xié)議都對(duì)此消息進(jìn)行響應(yīng)。

          圖4 協(xié)議間的消息傳遞


          協(xié)議間的消息傳遞如圖4所示。
          采用消息傳遞機(jī)制的實(shí)現(xiàn)方法的優(yōu)點(diǎn)如下:
          ①協(xié)議層之間交互通過(guò)固定的消息接口,即使上下層協(xié)議模塊升級(jí),也不會(huì)影響本層協(xié)議模塊的功能,有很好的移植性和可復(fù)用性。
          ②各層協(xié)議都是異步,可以大大降低擁塞情況的發(fā)生。
          ③協(xié)議棧進(jìn)程可以在上層管理一個(gè)消息隊(duì)列,統(tǒng)一進(jìn)行消息收發(fā),當(dāng)消息向下傳遞過(guò)程中遭到拒絕時(shí),可以實(shí)現(xiàn)消息的重傳功能。
          ④與每層協(xié)議都用一個(gè)單獨(dú)的任務(wù)來(lái)實(shí)現(xiàn)相應(yīng)功能相比,采用消息機(jī)制的方法節(jié)省了系統(tǒng)調(diào)度時(shí)間,更具有實(shí)時(shí)性,同時(shí)避免了死鎖的發(fā)生。
          3 重要數(shù)據(jù)結(jié)構(gòu)
          ①消息結(jié)構(gòu)體
          消息結(jié)構(gòu)體分為3個(gè)域:發(fā)送模塊Id、接收模塊Id、消息枚舉類型。具體定義如下:
          typedef struct
          {
          BT_ModuleId sender;
          BT_ModuleId receiver;
          BT_Primitive primitive;
          } BT_Header;
          ②流端點(diǎn)結(jié)構(gòu)體
          流端點(diǎn)SEP存在于應(yīng)用層中,而應(yīng)用層又在AVDTP中注冊(cè)它的SEP,使其他設(shè)備可以發(fā)現(xiàn)和連接。SEP在3個(gè)模塊―、GAVDP、AVDTP中有著不同的結(jié)構(gòu)體類型,以適應(yīng)本層協(xié)議的特殊作用。以模塊為例,其SEP結(jié)構(gòu)體具體定義如下:
          typedef struct
          {
          GAVDP_Handle streamHandle;
          BT_U8 *codecInfoElement;
          BT_U8 lengthInfoElements;
          AVDT_MediaCodecType codecType;
          ChannelConfig configuration;
          AVDT_ResponseCode pendingRspCode;
          BT_TimerId resendTimerId;
          } StreamEndPoint;
          4 各模塊主要功能及消息接口
          各模塊是通過(guò)自己的消息函數(shù)來(lái)接收不同的枚舉消息,并轉(zhuǎn)向各自的消息處理函數(shù),下面具體分析每個(gè)模塊所實(shí)現(xiàn)功能。
          ①A2DP模塊
          A2DP模塊實(shí)現(xiàn)了通過(guò)GAVDP管理SEP和SEP能力的功能,并且在SRC和SNK之間為流文本設(shè)置和配置了流通道。根據(jù)A2DP模塊的流程把它的消息接口分為6種類型:流設(shè)置消息,它又可分為對(duì)等流端點(diǎn)發(fā)現(xiàn)和流配置兩個(gè)步驟;流通道釋放消息;開始/掛起流消息;配置/重新配置消息;發(fā)現(xiàn)/得到能力消息;媒體流開始消息。
          ②GAVDP模塊
          GAVDP模塊從多個(gè)使用者角度出發(fā),管理本地流SEP和SEP能力的注冊(cè),處理從遠(yuǎn)程設(shè)備發(fā)來(lái)的發(fā)現(xiàn)查詢請(qǐng)求和得到能力請(qǐng)求,同時(shí)用戶注冊(cè)的SEP信息,自動(dòng)發(fā)送響應(yīng)。
          由于GAVDP模塊的功能是上層A2DP模塊的細(xì)化,因此可以將GAVDP的消息接口和A2DP模塊的接口類型作一致性設(shè)計(jì),兩者消息接口類型基本相同。
          ③AVDTP模塊
          AVDTP模塊負(fù)責(zé)建立一個(gè)到遠(yuǎn)程藍(lán)牙設(shè)備的AVDTP信令通道,并借助于AVDTP協(xié)議發(fā)送所有的信令命令,同時(shí)為媒體流建立傳輸通道,必要的話為校驗(yàn)和報(bào)告也建立通道,另外還支持信令和媒體消息的分段。AVDTP模塊數(shù)據(jù)最基本的流程為SEP發(fā)現(xiàn)→獲取SNK能力→數(shù)據(jù)流配置→數(shù)據(jù)流建立→數(shù)據(jù)流開始→數(shù)據(jù)流掛起→數(shù)據(jù)流重新配置→數(shù)據(jù)流釋放。相應(yīng)的SEP在AVDTP模塊中的狀態(tài)機(jī)如圖5所示。

          圖5 SEP在AVDTP模塊中的狀態(tài)機(jī)


          整個(gè)通信過(guò)程各個(gè)狀態(tài)之間的躍遷靠下列消息來(lái)觸發(fā):
          A:AVDT_SET_CONFIGURATION _REQ
          B:AVDT_OPEN_REQ
          C:AVDT_START_REQ
          D:AVDT_SUSPEND_REQ
          E:AVDT_CLOSE_REQ
          F:AVDT_ABORT_REQ
          G:AVDT_RECONFIGURE_REQ
          H:AVDT_MEDIA_REQ
          在空閑狀態(tài)下,發(fā)送A消息之前,空閑狀態(tài)下要發(fā)出一系列動(dòng)作,包括連接請(qǐng)求、發(fā)現(xiàn)請(qǐng)求和獲取SNK能力請(qǐng)求等。從空閑態(tài)到配置態(tài)的躍遷過(guò)程,本協(xié)議棧統(tǒng)稱為流設(shè)置過(guò)程。


          在打開狀態(tài)下發(fā)送C消息之后,就進(jìn)入了流控狀態(tài),此時(shí)通過(guò)H消息就可以發(fā)送從SRC到SNK的媒體流數(shù)據(jù)包。


          在通信過(guò)程中的任何狀態(tài)下,都可以通過(guò)發(fā)送F消息,進(jìn)入中止態(tài),進(jìn)而回到?jīng)]有連接任何遠(yuǎn)程SEP的空閑狀態(tài)。

          測(cè)試及結(jié)論
          該輕型協(xié)議棧的實(shí)現(xiàn)與測(cè)試,可以CSR先進(jìn)的BlueCore4藍(lán)牙芯片來(lái)完成。該芯片支持藍(lán)牙2.0+EDR規(guī)范,并提供2.1Mb/s的數(shù)據(jù)傳輸速率,比標(biāo)準(zhǔn)藍(lán)牙快3倍,可實(shí)現(xiàn)更快速的連接,同步支持多個(gè)藍(lán)牙鏈路,以及流等更寬帶寬的新興應(yīng)用。最上層的應(yīng)用程序?qū)崿F(xiàn)了一個(gè)簡(jiǎn)單的具有處理SBC格式編解碼信息的播放器,該應(yīng)用程序和部分高層協(xié)議棧通過(guò)交叉編譯,下載到硬件平臺(tái)主機(jī)端。而播放器程序是通過(guò)調(diào)用本協(xié)議棧提供的API,進(jìn)行音頻數(shù)據(jù)流分發(fā)。對(duì)于音頻數(shù)據(jù)的接收端SNK,采用摩托羅拉HT820立體聲耳機(jī)進(jìn)行測(cè)試,在長(zhǎng)時(shí)間播放音頻數(shù)據(jù)的情況下,仍然會(huì)存在音頻停頓的現(xiàn)象。使用一種截獲空中藍(lán)牙信號(hào)并進(jìn)行協(xié)議分析的工具Airsniffer,抓取流媒體傳輸數(shù)據(jù)包,經(jīng)分析,音頻數(shù)據(jù)并未丟失,而是流控機(jī)制存在問題,需要進(jìn)一步完善。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();