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