基于S3C4480X控制的藍(lán)牙音頻網(wǎng)關(guān)設(shè)計(jì)與實(shí)現(xiàn)
2.1 藍(lán)牙模塊ROKl01008的結(jié)構(gòu)特點(diǎn)
本系統(tǒng)選用Ericsson公司的ROKl0l008模塊,該藍(lán)牙模塊集成度高,功耗小,可提供高至控制接口HCI層的功能,并具有UART、I2C和PCMCIA三種主機(jī)控制接口,可方便地與主機(jī)進(jìn)行藍(lán)牙語(yǔ)音和數(shù)據(jù)的傳輸。ROKl0l008支持藍(lán)牙規(guī)范v1.OB,其接收器的最大輸入電平為+13 dBm,動(dòng)態(tài)范圍較廣,能確保發(fā)送器可靠的通信,其輸出功率可達(dá)Class2,UART最大數(shù)據(jù)流為460 kbps。同時(shí)ROKl01008可支持語(yǔ)音和數(shù)據(jù)傳輸功能,能夠實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的連接。本文引用地址:http://m.butianyuan.cn/article/166649.htm
ROKl01008模塊的組成如圖3所示。該模塊內(nèi)部帶有無(wú)線收發(fā)器、基帶控制器、閃存、電源管理和時(shí)鐘五個(gè)模塊。其中無(wú)線收發(fā)模塊由藍(lán)牙收發(fā)器和天線組成。其功能是為網(wǎng)關(guān)和終端設(shè)備提供無(wú)線通道。基帶控制器可完成頻率的合成,同時(shí)完成基帶模塊的數(shù)據(jù)比特信號(hào)到無(wú)線電信號(hào)的轉(zhuǎn)換過(guò)濾,并將無(wú)線電信號(hào)以一定的功率和跳頻頻率發(fā)送出去。ROKOl008的工作頻段在2.4 GHz~2.5 GHz ISM之間,有79個(gè)信道,每個(gè)信道l MHz。
2.2 藍(lán)牙音頻網(wǎng)關(guān)硬件結(jié)構(gòu)
藍(lán)牙音頻網(wǎng)關(guān)的硬件包括藍(lán)牙芯片和音頻編/解碼器(CODEC)。嵌入式藍(lán)牙音頻網(wǎng)關(guān)電路主要用于提供音頻輸入/輸出接口,并建立音頻連接。圖4為藍(lán)牙音頻網(wǎng)關(guān)的硬件電路。藍(lán)牙模塊電壓為+3.3 V。利用藍(lán)牙模塊的UART與單片機(jī)S3C44BOX的UART進(jìn)行相互連接??蓸?gòu)成通信通道。而S3C44BOX也可與PC機(jī)通過(guò)UART接口進(jìn)行通信并互操作。CODEC負(fù)責(zé)音頻的輸入輸出。
3 藍(lán)牙音頻網(wǎng)關(guān)的軟件設(shè)計(jì)
藍(lán)牙音頻網(wǎng)關(guān)的實(shí)現(xiàn)主要基于Bluestack協(xié)議棧來(lái)完成,音頻網(wǎng)關(guān)軟件分為三層機(jī)構(gòu),即BlueStack協(xié)議棧、AG客戶(hù)機(jī)程序和連接管理器。
BlueStack是劍橋咨詢(xún)有限公司的藍(lán)牙協(xié)議軟件棧,可用C語(yǔ)言實(shí)現(xiàn)。它遵循藍(lán)牙特殊興趣小組提出的分層模型,可支持邏輯鏈路控制并適配協(xié)議上使用串口仿真協(xié)議或二進(jìn)制電話控制協(xié)議,并將其作為傳輸協(xié)議的規(guī)范層。基于BlueStack協(xié)議棧可實(shí)現(xiàn)Bluetooth的所有功能。
整個(gè)BlueStack的協(xié)議棧實(shí)現(xiàn)采用消息驅(qū)動(dòng),層與層之間使用消息隊(duì)列傳遞。在嵌入式藍(lán)牙音頻網(wǎng)關(guān)應(yīng)用程序中,一般會(huì)涉及兩大類(lèi)消息:CM消息和BlueStack消息。CM消息可在客戶(hù)機(jī)和連接管理器之間進(jìn)行傳遞,而B(niǎo)lueStack消息則在BlueStack協(xié)議棧之間傳遞。BlueStack原語(yǔ)類(lèi)型有DM PRIM、RFC_PRIM、SDP_PRIM 及L2CAP_PRIM四種,在AG應(yīng)用中,一般會(huì)用到前三種。BlueStack消息格式為DM (RFC、SDC或SDS)_原語(yǔ)_擴(kuò)展名。
AG應(yīng)用中通常會(huì)定義兩個(gè)任務(wù),一個(gè)是CM任務(wù),任務(wù)號(hào)與隊(duì)列號(hào)為O;另一個(gè)是AG任務(wù),任務(wù)號(hào)與隊(duì)列號(hào)為1。AG客戶(hù)機(jī)將所要傳遞給CM的消息提交給隊(duì)列l(wèi),CM則將要傳遞給AG的消息提交給隊(duì)列0。
應(yīng)用程序應(yīng)為ARM與藍(lán)牙之間提供通信接口,主要是在主機(jī)間建立兩個(gè)L2CAP信道(控制信道與數(shù)據(jù)信道)。初始化時(shí),藍(lán)牙模塊應(yīng)被喚醒,并進(jìn)行寫(xiě)數(shù)據(jù)操作(隊(duì)列形式),然后通過(guò)請(qǐng)求建立連接。當(dāng)AG客戶(hù)機(jī)發(fā)出請(qǐng)求信號(hào)時(shí),如果CM有回應(yīng),說(shuō)明可以建立連接。數(shù)據(jù)收發(fā)過(guò)程中,數(shù)據(jù)要進(jìn)行封裝/解封、分類(lèi)等操作。圖5所示為藍(lán)牙數(shù)據(jù)收發(fā)過(guò)程的軟件流程圖。
4 結(jié)束語(yǔ)
S3C44BOX內(nèi)核的功能強(qiáng)大,并可實(shí)現(xiàn)操作系統(tǒng)的內(nèi)嵌,因而可通過(guò)單片機(jī)系統(tǒng)構(gòu)建嵌入式操作系統(tǒng)平臺(tái)。本文在ARM平臺(tái)的基礎(chǔ)上,設(shè)計(jì)了一種基于S3C44BOX的藍(lán)牙音頻網(wǎng)關(guān)。經(jīng)測(cè)試,該網(wǎng)關(guān)可實(shí)現(xiàn)藍(lán)牙耳機(jī)的接入,并成功實(shí)現(xiàn)配對(duì)與語(yǔ)音數(shù)據(jù)傳輸。藍(lán)牙耳機(jī)與音頻網(wǎng)關(guān)在進(jìn)行相互操作前,需要建立配對(duì)連接,也就是說(shuō),這種連接是要通過(guò)藍(lán)牙鑒權(quán)和綁定來(lái)實(shí)現(xiàn)的。而這種關(guān)系一旦建立,之后就不用再執(zhí)行此操作了。
評(píng)論