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