摘要:給出了以32位內(nèi)核的ARM7TDMI S3C44BOX器件作為藍牙音頻網(wǎng)關開發(fā)的終端微處理器,并通過藍牙模塊ROKl0l008用UART與S3C4480X進行連接來組成藍牙音頻網(wǎng)關系統(tǒng)的設計方法。該系統(tǒng)與藍牙耳機連接,可實現(xiàn)配對與語音數(shù)據(jù)傳輸。
關鍵字:S3C4480X;藍牙;音頻網(wǎng)關
O 引言
針對最后十米的傳輸問題,藍牙技術已經(jīng)逐漸成為低成本、短距離無線個人網(wǎng)絡傳輸?shù)氖走x技術,其主要目標是提供一個全雙工的無線傳輸環(huán)境,從而實現(xiàn)語音和數(shù)據(jù)的無線傳輸。對于近距離傳輸,藍牙可采用高速跳頻技術(FH)來確保鏈路的穩(wěn)定,而且抗干擾性強,不易竊聽。此外,藍牙芯片的價格低廉,實現(xiàn)擴展容易。通過藍牙還可以對家居音頻設備網(wǎng)絡進行控制。
為此,本文設計了一種基于S3C4480X的藍牙音頻網(wǎng)關(AG)系統(tǒng),該系統(tǒng)可實現(xiàn)與藍牙耳機之間的點對點連接,以建立一個音頻連接,從
而實現(xiàn)兩者之間的配對與語音數(shù)據(jù)傳輸。
l 藍牙體系結構
藍牙無線通信協(xié)議標準包括核心協(xié)議和應用框架兩大部分。藍牙協(xié)議標準的目的是在遵循規(guī)范應用的情況下能夠進行相互間的操作,為了實現(xiàn)相互間的操作,在遠程設備上的對應應用程序必須以同一協(xié)議棧運行。藍牙協(xié)議的體系結構可分為物理層、數(shù)據(jù)鏈路層、中間協(xié)議層和應用層,圖1所示是藍牙系統(tǒng)協(xié)議棧的系統(tǒng)組成框圖。藍牙的核心協(xié)議包括4部分,即基帶、鏈路管理、邏輯鏈路控制與適應協(xié)議(L2CAP)、業(yè)務搜尋協(xié)議(SDP)等。其中L2CAP負責建立邏輯鏈路連接,提供協(xié)議復用、高層與底層間數(shù)據(jù)分組的分段與重組等任務。SDP可提供服務搜索和服務瀏覽功能,負責藍牙設備間服務的查詢和訪問。
藍牙主機控制接口(HCl)可為基帶控制器、連接控制器、硬件狀態(tài)、控制寄存器提供命令接口,并可在藍牙設備的主機和基帶之間提供一個通用接口。HCI層以上的協(xié)議在主機上運行,而以下的協(xié)議由藍牙主機控制器硬件來完成。這樣既可保證底層協(xié)議傳輸?shù)姆€(wěn)定性,又支持了上層應用協(xié)議的可擴展性。
2 系統(tǒng)硬件結構與設計
本文選用三星公司的32位內(nèi)核ARM7TDMIS3C44BOX為處理器,并通過藍牙模塊、音頻編/解碼器(CODEC)、以太網(wǎng)接口等來構建系統(tǒng)硬件平臺。本系統(tǒng)基于藍牙BlueStack協(xié)議棧,可以實現(xiàn)藍牙的所有功能,藍牙音頻網(wǎng)關系統(tǒng)就是基于BlueStack實現(xiàn)的。S3C44BOX與RTL8019用于開發(fā)10Mbps的以太網(wǎng)接口,可使系統(tǒng)連通以太網(wǎng),并通過以太網(wǎng)進行操作。圖2為其系統(tǒng)構成框圖。
2.1 藍牙模塊ROKl01008的結構特點
本系統(tǒng)選用Ericsson公司的ROKl0l008模塊,該藍牙模塊集成度高,功耗小,可提供高至控制接口HCI層的功能,并具有UART、I2C和PCMCIA三種主機控制接口,可方便地與主機進行藍牙語音和數(shù)據(jù)的傳輸。ROKl0l008支持藍牙規(guī)范v1.OB,其接收器的最大輸入電平為+13 dBm,動態(tài)范圍較廣,能確保發(fā)送器可靠的通信,其輸出功率可達Class2,UART最大數(shù)據(jù)流為460 kbps。同時ROKl01008可支持語音和數(shù)據(jù)傳輸功能,能夠?qū)崿F(xiàn)點對點的連接。
ROKl01008模塊的組成如圖3所示。該模塊內(nèi)部帶有無線收發(fā)器、基帶控制器、閃存、電源管理和時鐘五個模塊。其中無線收發(fā)模塊由藍牙收發(fā)器和天線組成。其功能是為網(wǎng)關和終端設備提供無線通道?;鶐Э刂破骺赏瓿深l率的合成,同時完成基帶模塊的數(shù)據(jù)比特信號到無線電信號的轉(zhuǎn)換過濾,并將無線電信號以一定的功率和跳頻頻率發(fā)送出去。ROKOl008的工作頻段在2.4 GHz~2.5 GHz ISM之間,有79個信道,每個信道l MHz。
2.2 藍牙音頻網(wǎng)關硬件結構
藍牙音頻網(wǎng)關的硬件包括藍牙芯片和音頻編/解碼器(CODEC)。嵌入式藍牙音頻網(wǎng)關電路主要用于提供音頻輸入/輸出接口,并建立音頻連接。圖4為藍牙音頻網(wǎng)關的硬件電路。藍牙模塊電壓為+3.3 V。利用藍牙模塊的UART與單片機S3C44BOX的UART進行相互連接??蓸嫵赏ㄐ磐ǖ馈6鳶3C44BOX也可與PC機通過UART接口進行通信并互操作。CODEC負責音頻的輸入輸出。
3 藍牙音頻網(wǎng)關的軟件設計
藍牙音頻網(wǎng)關的實現(xiàn)主要基于Bluestack協(xié)議棧來完成,音頻網(wǎng)關軟件分為三層機構,即BlueStack協(xié)議棧、AG客戶機程序和連接管理器。
BlueStack是劍橋咨詢有限公司的藍牙協(xié)議軟件棧,可用C語言實現(xiàn)。它遵循藍牙特殊興趣小組提出的分層模型,可支持邏輯鏈路控制并適配協(xié)議上使用串口仿真協(xié)議或二進制電話控制協(xié)議,并將其作為傳輸協(xié)議的規(guī)范層?;贐lueStack協(xié)議棧可實現(xiàn)Bluetooth的所有功能。
整個BlueStack的協(xié)議棧實現(xiàn)采用消息驅(qū)動,層與層之間使用消息隊列傳遞。在嵌入式藍牙音頻網(wǎng)關應用程序中,一般會涉及兩大類消息:CM消息和BlueStack消息。CM消息可在客戶機和連接管理器之間進行傳遞,而BlueStack消息則在BlueStack協(xié)議棧之間傳遞。BlueStack原語類型有DM PRIM、RFC_PRIM、SDP_PRIM 及L2CAP_PRIM四種,在AG應用中,一般會用到前三種。BlueStack消息格式為DM (RFC、SDC或SDS)_原語_擴展名。
AG應用中通常會定義兩個任務,一個是CM任務,任務號與隊列號為O;另一個是AG任務,任務號與隊列號為1。AG客戶機將所要傳遞給CM的消息提交給隊列l(wèi),CM則將要傳遞給AG的消息提交給隊列0。
應用程序應為ARM與藍牙之間提供通信接口,主要是在主機間建立兩個L2CAP信道(控制信道與數(shù)據(jù)信道)。初始化時,藍牙模塊應被喚醒,并進行寫數(shù)據(jù)操作(隊列形式),然后通過請求建立連接。當AG客戶機發(fā)出請求信號時,如果CM有回應,說明可以建立連接。數(shù)據(jù)收發(fā)過程中,數(shù)據(jù)要進行封裝/解封、分類等操作。圖5所示為藍牙數(shù)據(jù)收發(fā)過程的軟件流程圖。
4 結束語
S3C44BOX內(nèi)核的功能強大,并可實現(xiàn)操作系統(tǒng)的內(nèi)嵌,因而可通過單片機系統(tǒng)構建嵌入式操作系統(tǒng)平臺。本文在ARM平臺的基礎上,設計了一種基于S3C44BOX的藍牙音頻網(wǎng)關。經(jīng)測試,該網(wǎng)關可實現(xiàn)藍牙耳機的接入,并成功實現(xiàn)配對與語音數(shù)據(jù)傳輸。藍牙耳機與音頻網(wǎng)關在進行相互操作前,需要建立配對連接,也就是說,這種連接是要通過藍牙鑒權和綁定來實現(xiàn)的。而這種關系一旦建立,之后就不用再執(zhí)行此操作了。