機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
用單片機實現(xiàn)藍牙功能
用單片機實現(xiàn)藍牙功能
 更新時間:2009-12-10 11:18:00  點擊數(shù):0
【字體: 字體顏色

下面的文字只是關于藍芽技術(shù)的調(diào)制算法方面,我認為只需要將藍芽模塊加在單片機上就可以了,而不必通過單片機編程來實現(xiàn)具體的算法,只需要編寫使兩個模塊的接口就可以,也就是單片機發(fā)送信號時的激勵程序,接受外來信號后的處理程序。置于其余就由作為硬件設備的藍芽來自行處理。不過我并不確定,我會查查看的.

藍牙技術(shù)是用于替代電纜或連線的短距離無線通信技術(shù)。它需要把數(shù)字信號轉(zhuǎn)換成模擬信號以便在空間中傳輸,它采用的調(diào)制方式是高斯頻移鍵控,以下簡稱GFSK, 要了解GFSK,就要先說說頻移鍵控的原理,以下簡稱 FSK

FSK: 簡單的講,就是用不同的頻率來調(diào)制不同的碼元,比如說二進制,有0和1 兩種碼元,那么我就需要兩個頻率f1和f2來調(diào)制數(shù)字0和1, 在接受端根據(jù)頻率f1代表數(shù)字0,頻率f2代表數(shù)字1的道理把模擬信號還原為數(shù)字信號。

GFSK:就是在進行FSK 調(diào)制之前,將原始信號通過一個高斯低通濾波器來限制信號的頻譜寬度,這樣一來可以獲得更加緊湊的頻譜,也就是過濾掉高頻的信號,但是保留了足夠的頻帶能量以便在收端成功恢復信號。高斯低通濾波器限制了帶寬,對基帶信號進行了整形,形成高斯脈沖信號。下面說下加入高斯低通濾波器的好處。

假設我用-1來代表該信號頻譜覆蓋范圍里最低的頻率成分;用1來代表該信號頻譜覆蓋范圍里最高的頻率成分。一旦信號從-1跳變到1,或者從1跳變到-1的時候,那么被調(diào)制的信號的波形變換太快了,很有可能會導致在原始信號的頻率范圍里出現(xiàn)新的頻率成分,那么我們的信號就已經(jīng)失真了,這是我們最不想看到的結(jié)果。而這正是FSK的一個隱憂。高斯低通濾波器使得信號變得平滑,同樣的從-1到1,因為濾波器限制了帶寬,于是實際效果是-1,-98,-93,--- 96,99,1那么用這些變化平滑的數(shù)字脈沖信號去調(diào)制載波,就會減少上述出現(xiàn)的多余頻率成分的現(xiàn)象。

那么為什么在藍牙技術(shù)中采用了GFSK而不是FSK? 因FSK技術(shù)對于信號的頻譜寬度沒有什么限制,頻率間的范圍可能很大,導致跳變實在太快,這樣就造成了失真的可能和頻譜的利用率不高(這句話是我從一英文網(wǎng)上看到的,不過現(xiàn)在還不明白),而藍牙傳輸?shù)念l譜并不大,所以采用GFSK技術(shù)。還有,有限的帶寬可以節(jié)省電流,那么對于手機和單片機的壽命是有好處的!


我認為不必深究高斯低通濾波的原理,因為該濾波器是一個硬件設備,作為組件是直接加在藍芽模塊之中的。如果真的要對算法進行編程,那么我們就只需要對濾波器里出來的信號進行處理,也就是如何用程序來表示FSK算法。

下面我結(jié)合具體的藍芽模塊來說下GFSK調(diào)制在其中的應用

藍芽的載波選用全球公用的2.4Ghz

實際射頻通道為f=2402 k×1mhz,k=0,1,2,…,78 共79個頻帶,并采用跳頻方式來擴展頻帶,跳頻速率為1600跳/s。可得到79個1mhz帶寬的信道。藍牙設備采用gfsk調(diào)制技術(shù),通信速率為1mbit/s,實際有效速率最高可達721kbit/s,通信距離為10m,發(fā)射功率為1mw;當發(fā)射功率為100mw時,通信距離可達100m

對于短距離的數(shù)據(jù)傳輸,當前最普遍的傳輸方法是有線傳輸、紅外傳輸和藍牙傳輸。有線傳輸是較為傳統(tǒng)的數(shù)據(jù)傳輸方法,需要傳輸電纜。當設備為移動設備或設備數(shù)目較多時這將帶來很大的不便;紅外傳輸經(jīng)常受到溫度、輻射等干擾,且無法穿過實體進行傳輸;使用藍牙技術(shù)可以很好地摒棄這兩個缺點,但目前藍牙技術(shù)一般被用于高端的電子設備中。對于低端的電子設備,如何使用藍牙技術(shù)還是一個有待解決的問題。針對這個問題,單片機學習網(wǎng)設計了一個基于藍牙技術(shù)和單片機的數(shù)據(jù)傳輸系統(tǒng),為嵌入式電子廠商提供一種技術(shù)參考.

1 系統(tǒng)的整體架構(gòu)
該系統(tǒng)由鍵盤、單片機、LED顯示器、固化了電纜通信協(xié)議(RFCOMM)的藍牙模塊和PC機組成。

2 系統(tǒng)的工作原理
系統(tǒng)的核心是單片機和藍牙模塊。系統(tǒng)上電后,單片機初始化自身和所有外圍接口,藍牙模塊主動尋找其它設備并自動建立連接,然后系統(tǒng)進入就緒等待狀態(tài)。按照數(shù)據(jù)傳輸方向,可以把系統(tǒng)分為發(fā)送和接收兩個子系統(tǒng)。
對于發(fā)送子系統(tǒng),單片機接收由鍵盤傳來的鍵值,按照一定的協(xié)議規(guī)則對其進行轉(zhuǎn)換,再顯示到顯示器上。同時,單片機調(diào)用自身的鍵值分析程序,分析用戶要輸入數(shù)據(jù)還是要發(fā)送數(shù)據(jù)。在輸入狀態(tài)下,單片機記下用戶所輸入的每一個數(shù)據(jù)并將其打包、存儲,直到用戶按下“發(fā)送”鍵。此時單片機轉(zhuǎn)變?yōu)榘l(fā)送狀態(tài),控制藍牙模塊將剛才存儲的數(shù)據(jù)發(fā)送出去。
對于接收子系統(tǒng),單片機按照事先約定的協(xié)議接收從藍牙模塊傳來的數(shù)據(jù),直到遇到數(shù)據(jù)結(jié)束符。而后單片機對數(shù)據(jù)進行分析、解包,并將其顯示在顯示器上為了增強可操作性,本數(shù)據(jù)傳輸系統(tǒng)考慮了單片機和PC機兩種情況。每一個子系統(tǒng)既可以使用單片機和藍牙模塊接口,也可以使用PC機和藍牙模塊接口。采用這樣的技術(shù)后,不僅單片機之間可以互傳數(shù)據(jù),而且單片機還可以和PC機互傳數(shù)據(jù)。
3 系統(tǒng)的程序設計
單片機上電后,首先要初始化自身。在本系統(tǒng)中,使用了鍵盤掃描和LED顯示接口芯片8279。因此在主程序中還要對8279進行初始化:
COM8279 = 0xd1; //總清除

COM8279 = 0x00; //8*8字符顯示,左邊輸入,編碼掃描鍵盤, 雙鍵封鎖
COM8279 = 0x50; //讀FIFO RAM命令
COM8279 = 0x90; //寫顯示RAM(數(shù)碼管選擇)

之后,可以把程序分為接收、發(fā)送和顯示三個主要部分。
3.1 接收部分
系統(tǒng)采用查詢的方法采集藍牙模塊傳送過來的串行數(shù)據(jù)。對鍵盤的按鍵值進行設定由個人的習慣來進行設定。以C語言的形式的偽代碼來表示,接收函數(shù)的偽代碼如下:

void RcvData(void){
while(DataReceivingNotDone){
ReceiveNextBit;
}
}
3.2 發(fā)送部分
鍵盤數(shù)據(jù)經(jīng)過處理后,轉(zhuǎn)化為串行數(shù)據(jù)發(fā)送到藍牙模塊,再由藍牙模塊發(fā)送出去。發(fā)送函數(shù)的C語言形式的偽代碼為:

void SendData(void){
if( KeyValue < 10 ){ //如果數(shù)據(jù)是一位數(shù)
SendOneByte(); //發(fā)送這一位
}
else{ //如果數(shù)據(jù)是兩位數(shù)
SendTwoBytes(); //分成兩位發(fā)送,先發(fā)送高位再發(fā)送低位
}
}
3.3 顯示部分
系統(tǒng)中使用的是八位LED顯示,通過控制顯示的接口芯片8279,可以控制LED顯示的內(nèi)容。顯示函數(shù)如下:

void DispLong(unsigned int dat,unsigned char addr){
COM8279 = 0x90 + addr;
DAT8279 = disp_tab[0];
COM8279 = 0x90 + addr;
while(dat){
DAT8279 = disp_tab[dat % 10];
dat /= 10;
}
}

  • 上一篇: 用單片機實現(xiàn)藍牙功能
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1