藍牙是一種支持設備短距離通信(一般10 m內)的無線電技術,能在包括移動電話、PDA、無線耳機、筆記本電腦、相關外設等眾多設備之間進行無線信息交換。利用藍牙技術,能夠有效地簡化移動通信終端設備之間的通信,使數據傳輸變得更加迅速高效。藍牙采用分散式網絡結構以及快跳頻和短包技術,支持點對點及點對多點通信,工作在全球通用的2.4 GHz ISM(即工業、科學、醫學)頻段,采用時分雙工傳輸方案實現全雙工傳輸,數據速率為1 Mb/s。藍牙技術實質是一種短距離無線通信標準。
選擇C8051F020單片機作為該無線通信系統的處理和控制器,BC03MM藍牙模塊作為該無線通信系統的收發模塊,通過串口通信使單片機和藍牙終端設備相互連接,通過編寫相關控制程序,實現鍵盤信號通過單片機模塊處理轉化后給藍牙模塊發送相關命令,從而控制對應的藍牙終端(手機)進行播放音樂,撥打電話等功能。采用單片機作為藍牙模塊的命令控制和數據顯示處理和控制器,具有電路結構簡單、控制靈活、成本低廉、可移植性等優點。
1 整體方案設計
方案的主要任務是通過C8051F020單片機UART0完成與藍牙模組通信和控制,實現藍牙手機或者PC電腦與BC03藍牙模組的互連,完成免提(Hand Free Profile,HFP)和音樂播放(Advanced Audio Distribution Profile,A2DP)功能。該系統由鍵盤、單片機、LCD顯示器、固化了電纜通信協議(RFCOMM)的BC03MM藍牙模塊組成,其中鍵盤用來輸入控制信號,LCD用來顯示通信數據從而方便系統操作,單片機用來控制系統的運作,接收鍵盤的命令信號并傳輸給藍牙模塊,BC03藍牙模塊是用來連接外部藍牙終端(手機或者PC電腦),并通過發送命令控制其連接的終端實現系統功能。
2 硬件電路設計
2.1 硬件總體設計
整個系統采用一片C8051F020單片機和CSRBC03藍牙模組來完成系統設計。其中UART0被配置在C8051F020的P0.0(TXD)和P0.1(RXD),通過串接1 kΩ電阻與BC03模組串口連接。由于C8051F020和BC03藍牙模組均為3.3 V系統,所以不需要增加額外的電平轉換串口通信電路,簡化了系統設計。C8051F020的端口P3控制LCD1602的命令和數據顯示,端口P2完成鍵盤信息的輸入。對于BC03MM藍牙模塊部分,通過駐極體傳聲器完成語音信號的輸入,藍牙模塊的音頻信號輸出則通過TDA2030A以驅動負載。系統總體電路設計框圖如圖1所示。
2.2 藍牙模塊接線設計
BC03MM藍牙模塊接線部分主要涉及到三個部分:
(1)語音信號的輸入部分。語音信號輸入由駐極體傳聲器和濾波處理電路完成,設置為單端輸入方式。
(2)16位立體聲音頻解碼部分的SPK立體聲輸出。對于藍牙模塊的兩路立體聲輸出,選用TI公司的立體聲音頻功率放大芯片TPA6112進行前置放大,增益可以自行設定。
(3)與MCU的連接。
2.3 MCU控制和通信電路
MCU控制和通信電路包括:串行數據通信電路、控制信號輸入和通信數據顯示三個部分。
C8051F020內置增強型串口UART0和數字交叉開關,通過配置交叉開關控制寄存器XBR0和XBR2,將UART0的TXD和RXD數字信號配置在端口I/O引腳。本文中UART0被配置在C8051F020的P0.0(TXD)和P0.1(RXD),通過串接1 kΩ電阻與BC03MM模組的UART(RX和TX)連接,完成串行數據的接收和發送。
控制信號輸入部分主要由C8051F020 I/O端口P2控制矩陣式4×5鍵盤完成。使用矩陣式鍵盤,具有占用I/O資源少,程序編制簡單等特點。系統需要實現HFP和A2DP功能,按鍵功能如圖2所示。SHIFT為功能切換按鍵,在HFP和A2DP之間進行切換。按鍵0~3為多功能按鍵,在SHIFT鍵沒有按下時,表示撥打電話的數字按鍵0~3或者接聽來電、掛斷電話、拒接來電和重新撥號功能;在SHIFT鍵按下時,依次表示音樂暫停/開始、連接藍牙音樂、下一曲和上一曲功能。按鍵D,E,F和G為系統預留功能擴展按鍵,按下無作用。
顯示部分通過C8051F020的端口P3作為與LCD1602通信的8位數據線,主要完成通信數據和狀態信息的顯示。
2.4 音頻放大和系統供電
采用CONTEK公司的音頻功率放大器TDA2030A,構成OCL接法,最大輸出功率可達14 W。對于藍牙模塊輸出的音頻信號SPKR+和SPKL+分別進入兩片TDA2030A進行功率放大以驅動RL=4 Ω的喇叭。
系統正常工作需要±12 V,+5 V和+3.3 V電壓供電。本文將市電220 V/50 Hz經過2×12 V/40 W變壓器降壓變換后,經過電橋整流和濾波后產生±12 V,直接供電給TDA2030A。整流濾波后的電壓經過LM7805穩壓芯片,輸出穩定+5 V給LCD1602供電,將LM7805輸出電壓再經過ASM1117-3.3V供電給單片機系統和藍牙模塊,完成系統電源供給。
3 軟件設計
系統軟件主要包括三大部分:藍牙協議棧的搭建、藍牙通信軟件設計和單片機控制部分軟件設計。
軟件設計的主要目的是提供一個高效的命令,免去不同藍牙設備間不斷變化的標準和復雜的藍牙功能。該軟件接口為串行接口,串行接口用于兩個處理器之間的通信,傳輸速率為19 200 b/s,8,N,1。
藍牙技術是一個開放性系統(OSI),其主要目的就是使符合該規范的各種設備能互通,這就要求本地設備和遠端設備使用相同的協議,當然不同的應用,其使用的協議棧也可能不同,但是他們都必須使用藍牙技術協議規范中的物理層和數據鏈路層。完整的藍牙協議棧主要涉及基帶協議(Basebaria)、連接管理協議(Link Manager Protocol,LMP)、邏輯鏈路控制和適配協議(Logmal LinkControl and Adaptation Protocol,L2CAP)、服務發現協議(Service Discovery Protocol,SDP)、電纜替代協議(RFCOMM)、電話控制協議(Telephony Control Pro-tocols,TCS)、點對點協議(PPP)、對象交換協議(OBEX)、無線應用協議(WAP)、藍牙音頻傳輸模型協議(A2DP)等協議。本文主要涉及基帶協議(Baseband),LMP,L2CAP,SDP,RFCOMM,TCS,PPP,A2DP等協議,如圖3所示。
由于系統采用固化了電纜通信協議(RFCOMM)和其他底層協議棧的CSR BC03藍牙模塊,模塊只給出與單片機通信部分的簡單接口指令。當模組收到由C8051F020控制單元送來的狀態詢問指令(空白+?),模組會經由TX腳將參數字符并加結束字符“0x0D0x0A”傳送到主機,該命令當C8051F020控制單元經由TXD設定指令給BC03模組,模組將同時被命令去執行相應的動作。指令有數個字符,第一個是為“空格”(ASCII=20H),其余則為指令字符,同時BC03模組將有一個反饋字符在100 ms內經過BC03MMUART送到控制單元,表示系統目前的執行情況和藍牙系統當前的狀態。
C8051F020單片機控制部分軟件主要完成以下幾個功能:對BC03藍牙模組指令控制,對LCD1602系統狀態顯示的指令控制和按鍵輸入指令的譯碼等功能。
基于C8051F020單片機控制BC03MM藍牙模組系統控制流程圖如圖4所示。
4 結語
對基于C8051F020單片機和BC03MM藍牙模組構建的系統進行功能驗證,系統能夠實現藍牙手機或者PC設備與BC03藍牙模組的互連,完成藍牙模組的HFP和A2DP功能,音頻最大輸出功率可以達到Po=14 W(RL=4 Ω),可以直接驅動4 Ω或者8 Ω的音箱負載,并且人機界面友好,操作簡單、價格低廉、可移植性好,方便用于商業用途。