如何用單片機實現對藍牙的控制
作者:admin3    更新時間:2009/10/11    點擊次數:
如何用單片機實現對藍牙的控制
 

   

       本文的設計采用低成本的單片機來和藍牙模塊進行技術集成,短距離通信的發展趨勢是無線通信。藍牙技術在當前已經應用得比較普遍。使得藍牙技術也可以應用在低端電子產品中。如果您有需要可以與 51hei.com 聯系,本文所設計的數據傳輸系統在實際中運行良好,可以為嵌入式電子廠商提供一種技術參考

采用的調制方式是高斯頻移鍵控 , 藍牙技術是用于替代電纜或連線的短距離無線通信技術。需要把數字信號轉換成模擬信號以便在空間中傳輸 . 以下簡稱 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 那么用這些變化平滑的數字脈沖信號去調制載波,就會減少上述出現的多余頻率成分的現象。

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

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

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

藍芽的載波選用全球公用的 2 . 4 G hz

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

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

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 DataReceivingNotDon {

ReceiveNextBit;

}

}

3.2 發送部分

轉化為串行數據發送到藍牙模塊,鍵盤數據經過處理后。再由藍牙模塊發送出去。發送函數的 C 語言形式的偽代碼為:

void SendData void {

if KeyValu < 10 { // 如果數據是一位數

SendOneByt ; // 發送這一位

}

else{ // 如果數據是兩位數

先發送高位再發送低位 SendTwoByt ; // 分成兩位發送。

}

}

3.3 顯示部分

通過控制顯示的接口芯片 8279 可以控制 LED 顯示的內容。顯示函數如下: 系統中使用的八位 LED 顯示。

unsign char addr void DispLong unsign int dat.{

COM8279 = 0x90 + addr;

DAT8279 = disp_tab[0];

COM8279 = 0x90 + addr;

whil dat {

DAT8279 = disp_tab[dat % 10];

dat /= 10;

}

}

 

  • 上一篇文章: 沒有了

  • 下一篇文章: 三菱PLC對印刷機的控制
  • 相關文章
    發表評論】【告訴好友】【打印本頁】【收藏本頁】【關閉窗口】【返回頂部
     
           網友評論:(只顯示最新5條。評論內容只代表網友觀點,與本站立場無關!)
     
    最 新 課 程
     
    推 薦 課 程
     
    熱 門 課 程
    99炮捕鱼王 重庆时时走趋图 四川时时app 安徽时时平台注册码 快乐快乐中大奖新闻 qq分分彩计划软件 福彩快乐十分玩法 江西时时彩历史开奖记录 云南时时视频直播 平特独平一码 江西时时还有漏洞吗 百度多酷游戏助手 成都麻将机 精准期三肖期期准 欢乐生肖开奖官方官方网站 重庆时时开奖号码彩彩乐 赛马会六码开奖最快