當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]藍牙無線耳機設(shè)計及VxWorks移植方法

摘要 藍牙技術(shù)廣泛應(yīng)用于局域網(wǎng)絡(luò)中各類數(shù)據(jù)及語音設(shè)備的無線傳輸。根據(jù)藍牙耳機的協(xié)議棧原理描述藍牙無線耳機的硬件電路設(shè)計和軟件設(shè)計的實現(xiàn)過程;詳細說明其系統(tǒng)內(nèi)部傳輸音頻數(shù)據(jù)的I2S總線的接口原理、讀寫時序和控制函數(shù);按照藍牙耳機應(yīng)用規(guī)范中各層數(shù)據(jù)處理要求,給出嵌入式實時操作系統(tǒng)VxWorks在藍牙芯片ZV4301上的部分程序移植,最后通過協(xié)議模型講述語音網(wǎng)關(guān)與藍牙耳機進行語音傳輸?shù)木唧w過程。
關(guān)鍵詞 藍牙 耳機 I2S總線 VxWorks

    藍牙耳機是一種無線語音傳輸技術(shù),是基于耳機在無線技術(shù)方面的延伸。它是相配于藍牙技術(shù)而進入多媒體個人區(qū)域網(wǎng)絡(luò)的。隨著藍牙技術(shù)的日趨完善和藍牙產(chǎn)品市場占有率逐漸提升,藍牙耳機在技術(shù)上也將不斷得到改進,使之成為個人多媒體區(qū)域網(wǎng)絡(luò)的主要配套產(chǎn)品。藍牙耳機的應(yīng)用范圍除了手機以外,PDA、無繩電話應(yīng)用、汽車免提工具、電話終端等,也是藍牙耳機發(fā)揮技術(shù)優(yōu)勢的應(yīng)用領(lǐng)域。本文設(shè)計的藍牙耳機支持藍牙規(guī)范1.2版本,傳輸距離達10 m,傳輸速率達723.2 kb/s,并且具有低功耗和(幾乎)無輻射等技術(shù)優(yōu)點和優(yōu)勢。

1 藍牙技術(shù)
    藍牙作為一種低成本、短距離的無線連接技術(shù)標準,是由Ericsson、IBM、Intel、Nokia和Toshiba五家公司共同倡導(dǎo)的一種全球無線技術(shù)標準,是一種無線數(shù)據(jù)與語音通信的開放性全球規(guī)范。它以低成本的短距離無線連接為基礎(chǔ),為固定設(shè)備與移動設(shè)備通信環(huán)境建立一個特別連接。其實質(zhì)是建立通用的無線空中接口及其控制軟件的公開標準,實現(xiàn)設(shè)備問的電纜替代。

    藍牙技術(shù)規(guī)范包括協(xié)議和應(yīng)用規(guī)范兩個部分。協(xié)議定義了各功能元素各自的工作方式,整個藍牙協(xié)議體系結(jié)構(gòu)分為4層,即核心協(xié)議層、線纜替代協(xié)議層、電話控制協(xié)議層和采納的其他協(xié)議層;應(yīng)用規(guī)范則闡述了為了實現(xiàn)一個特定的應(yīng)用模型,各層協(xié)議間的運轉(zhuǎn)協(xié)同機制。較典型的應(yīng)用規(guī)范有撥號網(wǎng)絡(luò)、耳機(headset)、局域網(wǎng)訪問和文件傳輸?shù)?。藍牙耳機的協(xié)議棧原理如圖1所示。

2 硬件設(shè)計
    硬件電路信號處理與控制部分采用Zeevo公司的基于ARM7的音頻處理器ZV4301。ZV4301處理器是在一個單芯片收發(fā)器上加入一個集成RF、數(shù)字信號處理、通信處理和運算及控制處理功能的48 MHz APM7微處理器,片外擴展閃存,以實現(xiàn)需要技術(shù)和高度最佳化的音頻處理。

    編解碼芯片采用飛利浦公司的UDAl380音頻芯片。UDAl380是一顆專為便攜式產(chǎn)品所設(shè)計的單芯片立體聲音頻編解碼器,可以提供立即可用的先進音頻功能。這顆音頻編解碼器具有24位數(shù)據(jù)路徑、多重時鐘支持、DC偏移消除、支持多重數(shù)據(jù)格式以及數(shù)字靜音檢測等集成功能。本設(shè)計中,UDAl380利用與微控器接口作音控處理.并利用L3接口來控制音量。

3 I2S總線
    本設(shè)計在硬件電路上使用基于I2S總線的音頻系統(tǒng)體系結(jié)構(gòu)。I2S(Inter-IC Sound bus)是飛利浦公司提出的串行數(shù)字音頻總線協(xié)議。

    I2S總線只處理聲音數(shù)據(jù),其他信號(如控制信號)必須單獨傳輸。為了使芯片的引腳盡可能少,I2S只使用了三根串行總線。這三根線分別是:提供分時復(fù)用功能的數(shù)據(jù)線(SD)、字段選擇線(聲道選擇WS)、時鐘信號線(SCK)。

    此設(shè)計中采用電源統(tǒng)一供電,ZV4301作為主設(shè)備,UDAl380作為從設(shè)備。ZV4301使用3個通用I/O口來模擬I2S總線。其讀寫I2S總線的數(shù)據(jù)主要包括以下幾個函數(shù);
    word_selection();   //字選擇函數(shù)
    serial_clock();     //時鐘信號函數(shù)
    serial_data();     // 串行數(shù)據(jù)函數(shù)
    shift_register();   //寄存器移位函數(shù)

4 軟件設(shè)計
    VxWorks操作系統(tǒng)是美國WindRiver公司于1983年設(shè)計開發(fā)的一種嵌入式實時操作系統(tǒng)。良好的持續(xù)發(fā)展能力、支持多種硬件環(huán)境、高性能的內(nèi)核以及友好的用戶開發(fā)環(huán)境,使之成為所有獨立于處理器實時系統(tǒng)中最具特色的操作系統(tǒng)。

    在該設(shè)計中,軟件協(xié)議全部下載到藍牙設(shè)備內(nèi)核處理器的外置閃存中,操作通過人機接口控制?;赩xWorks的軟件編寫工作主要包括:BSP包的改動、程序的編寫和操作系統(tǒng)的裁減。由于VxWorks的高度靈活性,可以很容易地對這一操作系統(tǒng)進行定制或作適當(dāng)開發(fā),來滿足系統(tǒng)的實際應(yīng)用需要。BSP包的改動指根據(jù)目標硬件實際配置修改系統(tǒng)的配置參數(shù)宏(MAC-RO),主要修改config.h、makefile.h、bspname.h文件。

    程序編寫函數(shù)主要包括以下7個。
(1)系統(tǒng)引導(dǎo)函數(shù)
    VxWorks操作系統(tǒng)在一些板級系統(tǒ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//定義消息隊列1D結(jié)構(gòu)體類型
    MSG_QUEUE_ID MsgQueueld;    //定義全局消息隊列ID結(jié)構(gòu)體,用于存放每個消息隊列的ID
    vInitlalizeL2caD();//L2CAP初始化,包括初始化全局變量、創(chuàng)建定時器、創(chuàng)建消息
                        //隊列、創(chuàng)建并啟動任務(wù)

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

    基帶程序運行在藍牙芯片的信號處理單元中,而LMP程序運行在藍牙芯片的微處理器中,它們通過郵箱來交換信息。只要任何一方向郵箱發(fā)送了信息,郵箱就會產(chǎn)生中斷信號,另外一方可以在中斷服務(wù)程序中進行信息讀取和處理。其處理函數(shù)為;
    vLmpDealFromBB()
    //處理來自BaseBand層的消息以建立連接,對來自BaseBand層
    //的操作碼決定接受與否,并進行鑒權(quán)、加密、處理或斷開等操作

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

    tL2capDealMsgFromSdp()
    //處理來自SDP層的消息SdpToL2eap,生成L2CAP數(shù)據(jù)包,把數(shù)據(jù)傳BaseBand層
    tL2capDealMsgFromRf()
    //處理來自RFCOMM層的消息RfToL2cap,生成L2CAP數(shù)據(jù)包,把數(shù)據(jù)傳BaseBand層
    vL2capDealMsgFromBB()
    //處理來自BaseBand層的消息,在處理器郵箱中斷程序被調(diào)用

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

    tSdpDealMsgFromL2cap()
    //處理來自L2CAP的消息L2capToSdp,并上報搜索到的服務(wù)的屬性
    tSdpDealMsgFromHA()
    //處理來自HeadsetApplieation的消息HAToSdp,對上報信息進行應(yīng)答
 
(6)RFOOMM軟件的設(shè)計

    tRfDealMsgFromHA()
    //處理來自HeadsetApplication的消息HAToRf,生成RFCOMM數(shù)據(jù)包,傳送給L2CAP
    tRfDealMsgFromL2cap()
    //處理來自L2CAP的消息L2capToRf,對不同的幀進行處理

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

    tHADealMsgFronaSdp()
    //處理來自SDP的消息SdpToHA,判斷是否正常并處理
    tHADeaIMsgFromRf()
    //處理來自RFCMM的消息RfToHA,對AT命令及其應(yīng)答作出處理

5 語音傳輸建立過程
    藍牙耳機系統(tǒng)工作時總是藍牙語音網(wǎng)關(guān)(AG)和藍牙耳機(HS)成對出現(xiàn)的。其通信所用到的協(xié)議棧及實體如圖4所示。

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

    以下是音頻連接建立的全過程。(以AG主動發(fā)起連接請求為例。)
    ①AG首先發(fā)起查詢,通過查詢AG獲得HS的藍牙地址。
    ②AG在應(yīng)用層的驅(qū)動下向查詢到的HS發(fā)起一個page進程。當(dāng)接收到HS返回的應(yīng)答信號時,AG與HS之間的ACL鏈接已經(jīng)成功建立。
    ③一旦ACL鏈接建立,即可以被用來傳送振鈴信號。振鈴信號的發(fā)送是通過AT命令RING來完成的。
    ④ACL鏈接好后,接著建立L2CAP鏈路。AG首先在信令信道上發(fā)送一個鏈接請求信令L2CAP_req,要求建立信道標號為0x0040的L2CAP。當(dāng)HS返回鏈接響應(yīng)信號時,表明0x0040信道已經(jīng)建立好。然后對此信道進行配置,配置完信道后,就可以利用此CID(信道標識符)為0x0040的L2CAP信道進行SDP查詢。
    ⑤AG在L2CAP信道上發(fā)送一個SDP查詢包。SDP查詢包將查詢SDP服務(wù)器端HS是否具有所需要的服務(wù)。若查詢成功,在ACL鏈路上,AG再建立一條標號為0x0041的l.2CAP鏈路,用來傳輸RFCOMM數(shù)據(jù);同時,斷開用作SDP查詢的標號為0x0040的L2CAP鏈路。
    ⑥當(dāng)CID為0x004l的L2CAP信道建立好之后,首先建立控制信道DICIO,AG在信道上發(fā)送一個SABM幀,即要求建立RFCOMM層上的Channel O。如果響應(yīng)方HS希望建立鏈接,返回一個VA幀,表明已經(jīng)建立好了Channel 0這條RFCOMM信道。此信道為控制信道,用來傳送攜帶控制信息和命令的UIM幀。如果響應(yīng)方HS不希望建立鏈接,返回一個DM幀。其次建立數(shù)據(jù)信道,先是對數(shù)據(jù)傳送信道的參數(shù)進行協(xié)商,協(xié)商命令PN參數(shù)包括對將要建立的信道Channel 1的優(yōu)先級,最大幀長等,當(dāng)雙方協(xié)商好后建立傳輸數(shù)據(jù)的信道Channell。
    ⑦通過RFooMM信道傳輸HS控制層的AT命令,即在RFCOMM數(shù)據(jù)傳送信道Channe1上利用UIH幀傳送AT+CKPD命令。當(dāng)接收到對方的響應(yīng)后,就可以開始建立SCO鏈接。 
    ⑧HCI(主機控制接口)發(fā)一個WRITE_VOICE_SETTING命令,對音頻狀態(tài)進行一些設(shè)置。當(dāng)接收到AG的建立SC0鏈接的請求時,若HS允許,發(fā)送一個接收的HCI命令,在命令完成之后,傳輸音頻信號的SC0鏈路就建立好了,此時就可以進行語音通信。

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

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉