基于S3C4480X控制的藍牙音頻網關設計與實現(xiàn)
2.1 藍牙模塊ROKl01008的結構特點
本系統(tǒng)選用Ericsson公司的ROKl0l008模塊,該藍牙模塊集成度高,功耗小,可提供高至控制接口HCI層的功能,并具有UART、I2C和PCMCIA三種主機控制接口,可方便地與主機進行藍牙語音和數據的傳輸。ROKl0l008支持藍牙規(guī)范v1.OB,其接收器的最大輸入電平為+13 dBm,動態(tài)范圍較廣,能確保發(fā)送器可靠的通信,其輸出功率可達Class2,UART最大數據流為460 kbps。同時ROKl01008可支持語音和數據傳輸功能,能夠實現(xiàn)點對點的連接。本文引用地址:http://2s4d.com/article/166649.htm
ROKl01008模塊的組成如圖3所示。該模塊內部帶有無線收發(fā)器、基帶控制器、閃存、電源管理和時鐘五個模塊。其中無線收發(fā)模塊由藍牙收發(fā)器和天線組成。其功能是為網關和終端設備提供無線通道?;鶐Э刂破骺赏瓿深l率的合成,同時完成基帶模塊的數據比特信號到無線電信號的轉換過濾,并將無線電信號以一定的功率和跳頻頻率發(fā)送出去。ROKOl008的工作頻段在2.4 GHz~2.5 GHz ISM之間,有79個信道,每個信道l MHz。
2.2 藍牙音頻網關硬件結構
藍牙音頻網關的硬件包括藍牙芯片和音頻編/解碼器(CODEC)。嵌入式藍牙音頻網關電路主要用于提供音頻輸入/輸出接口,并建立音頻連接。圖4為藍牙音頻網關的硬件電路。藍牙模塊電壓為+3.3 V。利用藍牙模塊的UART與單片機S3C44BOX的UART進行相互連接。可構成通信通道。而S3C44BOX也可與PC機通過UART接口進行通信并互操作。CODEC負責音頻的輸入輸出。
3 藍牙音頻網關的軟件設計
藍牙音頻網關的實現(xiàn)主要基于Bluestack協(xié)議棧來完成,音頻網關軟件分為三層機構,即BlueStack協(xié)議棧、AG客戶機程序和連接管理器。
BlueStack是劍橋咨詢有限公司的藍牙協(xié)議軟件棧,可用C語言實現(xiàn)。它遵循藍牙特殊興趣小組提出的分層模型,可支持邏輯鏈路控制并適配協(xié)議上使用串口仿真協(xié)議或二進制電話控制協(xié)議,并將其作為傳輸協(xié)議的規(guī)范層。基于BlueStack協(xié)議??蓪崿F(xiàn)Bluetooth的所有功能。
整個BlueStack的協(xié)議棧實現(xiàn)采用消息驅動,層與層之間使用消息隊列傳遞。在嵌入式藍牙音頻網關應用程序中,一般會涉及兩大類消息: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信道(控制信道與數據信道)。初始化時,藍牙模塊應被喚醒,并進行寫數據操作(隊列形式),然后通過請求建立連接。當AG客戶機發(fā)出請求信號時,如果CM有回應,說明可以建立連接。數據收發(fā)過程中,數據要進行封裝/解封、分類等操作。圖5所示為藍牙數據收發(fā)過程的軟件流程圖。
4 結束語
S3C44BOX內核的功能強大,并可實現(xiàn)操作系統(tǒng)的內嵌,因而可通過單片機系統(tǒng)構建嵌入式操作系統(tǒng)平臺。本文在ARM平臺的基礎上,設計了一種基于S3C44BOX的藍牙音頻網關。經測試,該網關可實現(xiàn)藍牙耳機的接入,并成功實現(xiàn)配對與語音數據傳輸。藍牙耳機與音頻網關在進行相互操作前,需要建立配對連接,也就是說,這種連接是要通過藍牙鑒權和綁定來實現(xiàn)的。而這種關系一旦建立,之后就不用再執(zhí)行此操作了。
評論