在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 藍(lán)牙無(wú)線耳機(jī)設(shè)計(jì)及VxWorks移植方法

            藍(lán)牙無(wú)線耳機(jī)設(shè)計(jì)及VxWorks移植方法

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

              程序編寫(xiě)函數(shù)主要包括以下7個(gè)。

            本文引用地址:http://www.biyoush.com/article/265769.htm

              (1)系統(tǒng)引導(dǎo)函數(shù)

              操作系統(tǒng)在一些板級(jí)系統(tǒng)初始化后自動(dòng)執(zhí)行tUsrRoot()函數(shù),以完成初始化。

              tUsrRoot()

              …… //必要初始化程序

              vInitializeLmp(); //LMP初始化完成

              vInitializeL2cap(); //L2CAP初始化完成

              vInitializeSdp(); //SDP初始化完成

              vInitializeRf(); //RFCOMM初始化完成

              vInitializeHA(); //HeadsetApplication初始化完成

              exit(); //退出

              (2)系統(tǒng)初始化函數(shù)(以L2CAP為例)

              typedet

              {MSG_IDSdpToL2cap;

              MSG_ID L2capToSdp;

              MSG_ID RfToL2cap;

              MSG_ID L2capToRf;

              MSG_lD HAToSdp;

              MSG_ID SdpToHA;

              MSG_ID HAToRf;

              MSG_ID RfToHA;

              }MSG_QUEUE_ID//定義消息隊(duì)列1D結(jié)構(gòu)體類(lèi)型

              MSG_QUEUE_ID MsgQueueld; //定義全局消息隊(duì)列ID結(jié)構(gòu)體,用于存放每個(gè)消息隊(duì)列的ID

              vInitlalizeL2caD();//L2CAP初始化,包括初始化全局變量、創(chuàng)建定時(shí)器、創(chuàng)建消息

              //隊(duì)列、創(chuàng)建并啟動(dòng)任務(wù)

              (3)LMP軟件設(shè)計(jì)

              基帶程序運(yùn)行在芯片的信號(hào)處理單元中,而LMP程序運(yùn)行在芯片的微處理器中,它們通過(guò)郵箱來(lái)交換信息。只要任何一方向郵箱發(fā)送了信息,郵箱就會(huì)產(chǎn)生中斷信號(hào),另外一方可以在中斷服務(wù)程序中進(jìn)行信息讀取和處理。其處理函數(shù)為;

              vLmpDealFromBB()

              //處理來(lái)自BaseBand層的消息以建立連接,對(duì)來(lái)自BaseBand層

              //的操作碼

              決定接受與否,并進(jìn)行鑒權(quán)、加密、處理或斷開(kāi)等操作

              (4)L2CAP軟件的設(shè)計(jì)

              tL2capDealMsgFromSdp()

              //處理來(lái)自SDP層的消息SdpToL2eap,生成L2CAP數(shù)據(jù)包,把數(shù)據(jù)傳BaseBand層

              tL2capDealMsgFromRf()

              //處理來(lái)自RFCOMM層的消息RfToL2cap,生成L2CAP數(shù)據(jù)包,把數(shù)據(jù)傳BaseBand層

              vL2capDealMsgFromBB()

              //處理來(lái)自BaseBand層的消息,在處理器郵箱中斷程序被調(diào)用

              (5)SDP軟件的設(shè)計(jì)

              tSdpDealMsgFromL2cap()

              //處理來(lái)自L2CAP的消息L2capToSdp,并上報(bào)搜索到的服務(wù)的屬性

              tSdpDealMsgFromHA()

              //處理來(lái)自HeadsetApplieation的消息HAToSdp,對(duì)上報(bào)信息進(jìn)行應(yīng)答

              (6)RFOOMM軟件的設(shè)計(jì)

              tRfDealMsgFromHA()

              //處理來(lái)自HeadsetApplication的消息HAToRf,生成RFCOMM數(shù)據(jù)包,傳送給L2CAP

              tRfDealMsgFromL2cap()

              //處理來(lái)自L2CAP的消息L2capToRf,對(duì)不同的幀進(jìn)行處理

              (7)HeadsetApplication軟件的設(shè)計(jì)

              tHADealMsgFronaSdp()

              //處理來(lái)自SDP的消息SdpToHA,判斷是否正常并處理

              tHADeaIMsgFromRf()

              //處理來(lái)自RFCMM的消息RfToHA,對(duì)AT命令及其應(yīng)答作出處理

              5 語(yǔ)音傳輸建立過(guò)程

              耳機(jī)系統(tǒng)工作時(shí)總是藍(lán)牙語(yǔ)音網(wǎng)關(guān)(AG)和藍(lán)牙耳機(jī)(HS)成對(duì)出現(xiàn)的。其通信所用到的協(xié)議棧及實(shí)體如圖4所示。

              

             

              藍(lán)牙設(shè)備連結(jié)的建立遵循底層到高層的原則,即搜索藍(lán)牙設(shè)備、建立鏈路、服務(wù)搜索、建立信道、建立連接和數(shù)據(jù)傳輸。

              以下是音頻連接建立的全過(guò)程。(以AG主動(dòng)發(fā)起連接請(qǐng)求為例。)

             ?、貯G首先發(fā)起查詢,通過(guò)查詢AG獲得HS的藍(lán)牙地址。

             ?、贏G在應(yīng)用層的驅(qū)動(dòng)下向查詢到的HS發(fā)起一個(gè)page進(jìn)程。當(dāng)接收到HS返回的應(yīng)答信號(hào)時(shí),AG與HS之間的ACL鏈接已經(jīng)成功建立。

              ③一旦ACL鏈接建立,即可以被用來(lái)傳送振鈴信號(hào)。振鈴信號(hào)的發(fā)送是通過(guò)AT命令RING來(lái)完成的。

             ?、蹵CL鏈接好后,接著建立L2CAP鏈路。AG首先在信令信道上發(fā)送一個(gè)鏈接請(qǐng)求信令L2CAP_req,要求建立信道標(biāo)號(hào)為0x0040的L2CAP。當(dāng)HS返回鏈接響應(yīng)信號(hào)時(shí),表明0x0040信道已經(jīng)建立好。然后對(duì)此信道進(jìn)行配置,配置完信道后,就可以利用此CID(信道標(biāo)識(shí)符)為0x0040的L2CAP信道進(jìn)行SDP查詢。

             ?、軦G在L2CAP信道上發(fā)送一個(gè)SDP查詢包。SDP查詢包將查詢SDP服務(wù)器端HS是否具有所需要的服務(wù)。若查詢成功,在ACL鏈路上,AG再建立一條標(biāo)號(hào)為0x0041的l.2CAP鏈路,用來(lái)傳輸RFCOMM數(shù)據(jù);同時(shí),斷開(kāi)用作SDP查詢的標(biāo)號(hào)為0x0040的L2CAP鏈路。

             ?、蕻?dāng)CID為0x004l的L2CAP信道建立好之后,首先建立控制信道DICIO,AG在信道上發(fā)送一個(gè)SABM幀,即要求建立RFCOMM層上的Channel O。如果響應(yīng)方HS希望建立鏈接,返回一個(gè)VA幀,表明已經(jīng)建立好了Channel 0這條RFCOMM信道。此信道為控制信道,用來(lái)傳送攜帶控制信息和命令的UIM幀。如果響應(yīng)方HS不希望建立鏈接,返回一個(gè)DM幀。其次建立數(shù)據(jù)信道,先是對(duì)數(shù)據(jù)傳送信道的參數(shù)進(jìn)行協(xié)商,協(xié)商命令PN參數(shù)包括對(duì)將要建立的信道Channel 1的優(yōu)先級(jí),最大幀長(zhǎng)等,當(dāng)雙方協(xié)商好后建立傳輸數(shù)據(jù)的信道Channell。

              ⑦通過(guò)RFooMM信道傳輸HS控制層的AT命令,即在RFCOMM數(shù)據(jù)傳送信道Channe1上利用UIH幀傳送AT+CKPD命令。當(dāng)接收到對(duì)方的響應(yīng)后,就可以開(kāi)始建立SCO鏈接。

             ?、郒CI(主機(jī)控制接口)發(fā)一個(gè)WRITE_VOICE_SETTING命令,對(duì)音頻狀態(tài)進(jìn)行一些設(shè)置。當(dāng)接收到AG的建立SC0鏈接

              的請(qǐng)求時(shí),若HS允許,發(fā)送一個(gè)接收的HCI命令,在命令完成之后,傳輸音頻信號(hào)的SC0鏈路就建立好了,此時(shí)就可以進(jìn)行語(yǔ)音通信。

              結(jié)語(yǔ)

              本文給出了藍(lán)牙及藍(lán)牙耳機(jī)系統(tǒng)的基本概念及其在軟硬件方面的具體實(shí)現(xiàn)。藍(lán)牙耳機(jī)使用戶擺脫線纜的束縛,能夠在較大的自由空間內(nèi)通話。由于采用專(zhuān)用的聲音編解碼芯片和標(biāo)準(zhǔn)音頻取樣率44.1 kHz,并經(jīng)過(guò)先進(jìn)的信號(hào)處理技術(shù),能夠使聲音效果接近CD音質(zhì),這樣也使藍(lán)牙耳機(jī)真正取代有線耳機(jī)成為可能。

            藍(lán)牙技術(shù)相關(guān)文章:藍(lán)牙技術(shù)原理

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

            關(guān)鍵詞: 藍(lán)牙 VxWorks

            評(píng)論


            相關(guān)推薦

            技術(shù)專(zhuān)區(qū)

            關(guān)閉