<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于MCU實(shí)現藍牙與PC機之間HCI層傳輸

基于MCU實(shí)現藍牙與PC機之間HCI層傳輸

作者: 時(shí)間:2007-03-09 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:分析了藍牙HCI層的主要功能,并簡(jiǎn)述了藍牙HCI層數據傳輸的控制方案。HCI指令從RS232串口通過(guò)的UART輸入,經(jīng)校驗后發(fā)送至藍牙模塊,藍牙模塊返回的HCI事件在內進(jìn)行分組打包后發(fā)送至PC機。關(guān)鍵詞:藍牙協(xié)議HCI 單片機 UART藍牙模塊 藍牙是正在興起的短距離無(wú)線(xiàn)通信技術(shù),工作在2.4GHz ISM頻段。藍牙技術(shù)可在各種移動(dòng)設備、計算機外設等數字設備間實(shí)現廉價(jià)的無(wú)線(xiàn)連接,靈活便捷地實(shí)現設備間的數據交換。本文介紹利用雙串口單片機在PC機與藍牙模塊間實(shí)現藍牙HCI層數據傳輸。 1 系統的硬件組成 采用愛(ài)立信生產(chǎn)的ROK 101 007藍牙模塊,使用51增強型單片機W77E58,用MAX3222進(jìn)行RS232轉換。系統硬件框圖如圖1所示。 ROK 101 007藍牙模塊同時(shí)支持數據和語(yǔ)音傳輸。主機與模塊間可以通過(guò)UART和I2C接口連接,射頻輸出功率等級為2級(2.5mW),支持點(diǎn)對多點(diǎn)連接。 W77E58單片機與標準80C52管腳兼容,指令集與MCS-51兼容,具有兩個(gè)全雙工串口,12個(gè)中斷源,32KB大容量Flash存儲器,1KB片上SRAM。2 藍牙主機控制器接口(HCI) HCI層是藍牙協(xié)議棧中軟硬件之間的接口,它提供了一個(gè)控制基帶與鏈路控制器、鏈路管理器、狀態(tài)寄存器等硬件的統一接口。HCI層以下的協(xié)議由藍牙模塊實(shí)現,HCI層以上的協(xié)議在主機上運行,它們通過(guò)HCI傳輸層進(jìn)行通信。主機與主機控制器通過(guò)HCI收發(fā)分組方式進(jìn)行信息交換,用指令—應答(Command-Response)方式實(shí)現控制。 HCI分組有三種類(lèi)型:指令分組(Command Packet)、事件分組(Event Packet)和數據分組(Data Packet)。指令分組只從主機發(fā)向主機控制器;事件分組只從主機控制器發(fā)向主機,用以說(shuō)明指令分組的執行情況;數據分組在主機和主機控制器間雙向傳輸。數據分組分為ACL數據分組和SCO數據分組。 3 系統軟件的設計 本系統中藍牙模塊與單片機在同一塊印刷電路板上,可采用HCI的UART傳輸層進(jìn)行數據傳輸。在單片機與PC機之間采用RS232接口標準,用MAX3222芯片進(jìn)行電平轉換。PC機與單片機之間分組傳輸格式如圖2所示。3.1 PC機部分軟件設計 PC部分程序主要是開(kāi)發(fā)藍牙應用組件及在此組件基礎上構建應用程序。主要設計串口的驅動(dòng)程序,并對HCI指令進(jìn)行函數封裝,提供相應的應用程序函數接口(API)。軟件主要包括串口驅動(dòng)程序及HCI指令封裝部分等。組件部分接收應用程序發(fā)來(lái)的各種操作請求并負責與自身的接口驅動(dòng)程序及HCI封裝函數進(jìn)行通信。應用程序需要做的只是對組件部分進(jìn)行串口及藍牙參數的設置,向其發(fā)送一定格式的命令和數據信息,以及實(shí)時(shí)的顯示及相應的處理。 3.2 單片機部分軟件設計 本文中單片機的軟件設計是針對以MPU為主體的主機應用模式。由于對HCI指令的處理已在應用主體中以組件形式實(shí)現,故此時(shí)單片機部分軟件設計可不必考慮對HCI指令及事件的處理,所要做的是將主機發(fā)送的HCI信息經(jīng)過(guò)校驗后正確地發(fā)送給藍牙模塊,同時(shí),將來(lái)自藍牙模塊的信息加上校驗后發(fā)往主機。 本部分軟件實(shí)現的全部功能是通過(guò)匯編語(yǔ)言開(kāi)發(fā)的,用W77E58的第一個(gè)串口實(shí)現與PC機的通信,用第二個(gè)串口實(shí)現與藍牙模塊通信,流程圖如圖3所示。圖3本程序已經(jīng)過(guò)調試,數據傳輸正常,性能良好。 本文探討了應用雙串口單片機實(shí)現藍牙HCI數據傳輸的方法,給出了詳盡的通信流程及具體的軟硬件設計方案,系統在一些短距離無(wú)線(xiàn)傳輸應用中有較好的應用價(jià)值。

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>