蘇州永節電子科技有限公司
設為首頁 | 收藏本站
新聞詳情

單片機設計中藍牙模塊應用

瀏覽數:19

      下面是關于藍芽技術的調制算法,我認為只要把藍芽模塊加入單片機就可以了,而不需要通過單片機編程來實現具體的算法,只需編寫使兩個模塊的接口就可以了,即單片機發送信號時的激勵程序,接收到外部信號后的處理程序。剩下的部分由作為硬件設備的藍芽自己處理。但我不能肯定,我去查一下。

   Bluetooth是一種短距離無線通信技術,用來代替電纜或連線。要了解 GFSK,它需要將數字信號轉換為在空間傳輸的模擬信號,它采用的調制方式是頻移鍵控,以下簡稱 GFSK,要想了解 GFSK,就必須先說 FSK。

FSK:簡單地說,不同編碼單元使用不同的頻率調制,比如說二進制編碼,有0和1兩種碼元,然后我需要兩個頻率f1和f2來調制數字0和1,在接收端根據頻率f1代表數字0,頻率f2代表數字1的道理。

GFSK:在進行 FSK調制之前,首先使用高斯低通濾波器來限制信號的頻譜帶寬,這樣可以得到更緊湊的頻譜,即濾掉高頻信號,但保留足夠的頻帶能量,以使信號能夠順利地恢復接收。高斯低通濾波器帶寬受限,基帶信號成形,形成高斯脈沖信號。以下是加入高斯低通濾波器的好處。

在該信號頻譜覆蓋范圍內,我使用-1表示最低頻部分,用1表示該信號頻譜覆蓋范圍內的最高頻率成分。當一個信號從-1跳到1,或者從-1跳到-1時,調制信號的波形變化太快了,很有可能導致新的頻率成分出現在原信號頻率范圍內,那么我們的信號已經失真了,這是我們最不希望看到的結果。對于 FSK來說,這是一個隱憂。高斯低通濾波器使信號平滑,與-1和-1相同,因為濾波器限制帶寬,所以實際效果是-1,-98,-93,---96,99,1,這樣的情況下,用這些變化平滑的數字脈沖信號來調制載波,會減少多余頻率成分的現象。

所以為什么藍牙技術會被用來代替 FSK?由于 FSK技術對信號的頻譜寬度沒有任何限制,而且頻率間的范圍可能非常大,導致跳變太快,從而造成失真的可能性,從而造成頻譜利用率低下(雖然現在還不明白),因此采用 GFSK技術。此外,有限的帶寬也能節約電流,這對手機和單片機的使用壽命有利。


由于高斯低通濾波的原理是不需要深入研究的,因為濾波器是一種元件,直接加到了藍芽模塊中。假如真要編程的話,那我們只需要把濾波器出來的信號進行處理,也就是說,用程序來表達 FSK算法。

下面我結合具體的藍芽模塊來說下GFSK調制在其中的應用

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

真實的 RF通道是 f=2402 k×1 mhz, k=0,1,2,…,78的頻率段,采用了跳頻方式擴展頻帶,頻率可達1600跳/s。可以獲得79個1 mhz帶寬的通道。Bluetooth設備采用 gfsk調制技術,通信速率為1 mbit/s,實際有效速率為721 kbit/s,通信距離為10 m,發射功率為1 mw;在100 mw發射功率下,通信距離可達100 m。

目前,在短距離數據傳輸中,常用的傳輸方式是有線傳輸、紅外傳輸和藍牙傳輸。電纜傳輸是比較傳統的數據傳輸方式,需要傳輸電纜。如果設備為移動設備或設備數量多,這就會帶來很大的不便;紅外傳輸常常受到溫度、輻射等干擾,并且不能通過實體傳輸;使用藍牙技術可以很好地消除這兩個缺點,但目前藍牙技術普遍應用于高端電子設備。對低端的電子設備來說,藍牙技術的應用仍然是一個有待解決的問題。為了解決這一問題, 蘇州永節電子科技有限公司設計了一套基于藍牙技術和單片機的數據傳輸系統,以供嵌入式電子廠商參考。

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

2    系統的工作原理
它以單片機和藍牙模塊為核心。當系統通電后,單片機初始化自身及所有外圍接口,藍牙模塊主動尋找其他設備并自動建立連接,然后系統進入準備等待狀態。根據數據傳輸的方向,系統可分為發送和接收兩個子系統。在發送子系統中,單片機接收鍵盤發出的鍵值,并根據一定的協議規則將其轉換成相應的顯示。與此同時,單片機調用自己的鍵值分析程序,分析用戶要輸入數據還是發送數據。在輸入狀態下,單片機記錄用戶每一次輸入的數據,并對其進行打包、存儲,直到用戶按“發送”鍵為止。這個時候單片機變成了發送狀態,控制藍牙模塊把剛才存儲的數據發送出去。
在接收子系統中,單片機根據事先約定的協議接收來自藍牙模塊的數據,直至遇到數據結束符。然后單片機對數據進行分析、解包,并將其顯示在顯示器上以增強可操作性,本數據傳輸系統考慮了單片機和 PC機兩種情況。各子系統均可采用單片機和藍牙模塊接口,也可采用 PC機、藍牙模塊接口。使用這種技術后,不僅能實現單片機之間的數據互傳,而且還能與 PC機進行數據互傳。
3      系統的程序設計
單片機上電后,首先要初始化自身。在本系統中,使用了鍵盤掃描和LED顯示接口芯片8279。因此在主程序中還要對8279進行初始化:
                COM8279 = 0xd1;      //總清除

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

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

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

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

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;
    }
}
4     結束語
無線通信的發展方向是短距離通信。目前, Bluetooth已被廣泛使用,但這類應用通常僅限于高端電子產品。本設計利用低成本的單片機與藍牙模塊進行技術集成,使藍牙技術也可應用于低端電子產品。如有需要可聯系51hei.com,本文設計的數據傳輸系統在實際應用中運行良好,可為嵌入式電子產品供應商提供技術參考。