摘 要:隨著后PC時(shí)代的到來(lái),嵌入式ARM技術(shù)日益成熟,人們對(duì)電子產(chǎn)品性能的要求越來(lái)越高,移動(dòng)便攜成為電子消費(fèi)品的主題,其中藍(lán)牙技術(shù)就是眾多解決方案中一個(gè)有效的選擇,本文旨在將藍(lán)牙技術(shù)與嵌入式ARM結(jié)合起來(lái),設(shè)計(jì)一款基于嵌入式ARM系統(tǒng)的藍(lán)牙通訊模塊。
關(guān)鍵詞:藍(lán)牙;嵌入式;ARM;無(wú)線通訊
中圖分類號(hào):F416.6 文獻(xiàn)標(biāo)識(shí)碼:A
1 引言(Introduction)
“Bluetooth”藍(lán)牙一詞原來(lái)是一位丹麥國(guó)王的名字,他在10世紀(jì)時(shí),統(tǒng)一了當(dāng)時(shí)的瑞典、芬蘭和丹麥。后來(lái)用他的名字來(lái)給一種新的技術(shù)標(biāo)準(zhǔn)命名,意思將各種不同的技術(shù)標(biāo)準(zhǔn)統(tǒng)一起來(lái)。這種新的技術(shù)主要使用高速跳頻與時(shí)分多址等通信技術(shù),在一定的距離低成的把若干臺(tái)數(shù)字化設(shè)備,包括各種便攜移動(dòng)設(shè)備、固定通信設(shè)備、PC機(jī)及其終端設(shè)備、數(shù)字系統(tǒng),如數(shù)碼照相機(jī)、數(shù)碼攝像機(jī)等,還包括智能家器、自動(dòng)化設(shè)備呈網(wǎng)狀鏈接起來(lái)。Bluetooth成為網(wǎng)絡(luò)中各種外設(shè)接口的一種橋梁,取消了設(shè)備之間實(shí)在的連線,以無(wú)線連接來(lái)取代[1]。
這種技術(shù)的替代對(duì)象主要有紅外線傳輸和RS232串口線傳輸,紅外線接口的傳輸需電子裝置在視線之內(nèi)的距離,而以RS232串口線連接的設(shè)備的缺點(diǎn)是需要線纜和和傳輸速度低,藍(lán)牙技術(shù)的發(fā)展,方便了各種移動(dòng)設(shè)備的互聯(lián)。
Bluetooth現(xiàn)成為整個(gè)無(wú)線通信領(lǐng)域的重要分支,它不僅僅是一個(gè)芯片,而是一個(gè)近距無(wú)線網(wǎng)絡(luò),在包括智能手機(jī)、掌上電腦、無(wú)線耳機(jī)、便攜PC、各種外設(shè)之間進(jìn)行無(wú)線信息傳輸,現(xiàn)今由Bluetooth構(gòu)成的無(wú)線網(wǎng)絡(luò)已在移動(dòng)通信領(lǐng)域到處存在。
Bluetooth應(yīng)用高速跳頻和時(shí)分多址等通信技術(shù),能在近距離內(nèi)較方便地將幾臺(tái)數(shù)字化設(shè)備呈網(wǎng)狀鏈接起來(lái),可應(yīng)用于智能手機(jī)、PC機(jī)、掌上電腦、打印機(jī)、游戲機(jī)數(shù)碼相機(jī)、MP3等,還可視頻、語(yǔ)音、圖像、文字、文件同步傳輸,還可簡(jiǎn)化白板記錄儀、投影機(jī)等操作。藍(lán)牙模塊連接圖如圖1所示。
圖1 連接圖
Fig.1 Connection diagram
2 藍(lán)牙技術(shù)的規(guī)范及特點(diǎn)(Specifications and
characteristics of bluetooth technology)
Bluetooth的技術(shù)標(biāo)準(zhǔn)是IEEE802.15,工作頻帶為2.4GHz,1MB/s的帶寬。采用時(shí)分多址實(shí)現(xiàn)全雙工方式通信,基帶協(xié)議組合了電路交換和分組交換。每個(gè)跳頻頻率發(fā)送一組同步數(shù)據(jù),每個(gè)時(shí)隙分配給某個(gè)分組,利用擴(kuò)頻技術(shù)可擴(kuò)展為五個(gè)時(shí)隙。Bluetooth支持三個(gè)并發(fā)的同步話音通道或一個(gè)異步數(shù)據(jù)通道,還可一個(gè)同時(shí)傳送異步數(shù)據(jù)和同步話音的通道。64kB/s的同步話音提供給每個(gè)話音通道,異步通道的傳輸速率可達(dá)為721kB/s,非對(duì)稱的反向應(yīng)答連接速率為57.6kB/s,對(duì)稱連接速率為432.6kB/s。
根據(jù)發(fā)射功率大小,Bluetooth有三種傳輸距離等級(jí):第一種約為100m;第二等級(jí)為10m左右;第三等級(jí)為2—3m。其正常的工作范圍是10m半徑內(nèi)。有效范圍內(nèi)能進(jìn)行多臺(tái)設(shè)備間的互聯(lián)。Bluetooth的特點(diǎn)有:利用跳頻技術(shù),數(shù)據(jù)包短,減緩信號(hào)衰減。鏈路穩(wěn)定,使用快速跳頻和前向糾錯(cuò)方案,有效減少同頻干擾和遠(yuǎn)距離傳輸時(shí)的隨機(jī)噪聲影響。使用2.4GHz頻段,無(wú)須許可。同時(shí)進(jìn)行數(shù)據(jù)、音頻、視頻信號(hào)的傳輸。采用FM調(diào)制方式,可減低復(fù)雜性[2]。藍(lán)牙模塊部分電路原理圖如圖2所示。
圖2 電路原理圖
Fig.2 Circuit diagram
3 藍(lán)牙匹配規(guī)則及使用注意(Using bluetooth
matching rules and notice)
Bluetooth標(biāo)準(zhǔn)開(kāi)放性無(wú)線接入方式的一種,在使用前需要了解和遵循標(biāo)準(zhǔn)技術(shù)規(guī)則。不同藍(lán)牙設(shè)備在進(jìn)行通訊前,需要將其匹配在一起,從而確保一個(gè)設(shè)備發(fā)出的數(shù)據(jù)僅會(huì)被許可的其它設(shè)備接受。
Bluetooth將設(shè)備分為主從兩種。其主設(shè)備的特點(diǎn)主要有,主設(shè)備有輸入端口。進(jìn)行匹配時(shí),可通過(guò)輸入端口輸入隨機(jī)的匹配密碼將不同設(shè)備匹配。如藍(lán)牙智能手機(jī)、有藍(lán)牙模塊的個(gè)人電腦等都為主設(shè)備。
從設(shè)備的特點(diǎn)主要有,從設(shè)備多半沒(méi)有輸入端口。所以從設(shè)備往往在出廠時(shí),在芯片中,燒寫(xiě)了一個(gè)6位或4位數(shù)字的匹配密碼。例如藍(lán)牙耳機(jī)等都是從設(shè)備。各種主設(shè)備之間,以及主設(shè)備與從設(shè)備之間,都是可互相匹配的,但是從設(shè)備與從設(shè)備是不能匹配的。如藍(lán)牙PC與藍(lán)牙智能手機(jī)可匹配,藍(lán)牙PC也可以與藍(lán)牙耳機(jī)匹配,而藍(lán)牙耳機(jī)與藍(lán)壓耳機(jī)不能匹配[3]。
藍(lán)牙主設(shè)備,依據(jù)其類型不同,可匹配一個(gè)或多個(gè)其他設(shè)備。如一部藍(lán)牙移動(dòng)電話,一般最多匹配七個(gè)藍(lán)牙設(shè)備。但是一臺(tái)藍(lán)牙個(gè)人電腦,卻可以匹配十多個(gè)或數(shù)十個(gè)藍(lán)牙設(shè)備。在同一時(shí)間,Bluetooth設(shè)備之間只支持點(diǎn)對(duì)點(diǎn)傳輸。
4 具體實(shí)現(xiàn)步驟(The specific implementation steps)
(1)首先修改模塊的參數(shù),運(yùn)行chmod命令進(jìn)行修改,模塊波特率默認(rèn)值為38400,主模塊和從模塊分別與核心控制模塊ARM處理器連接好。
(2)實(shí)現(xiàn)接收功能,主函數(shù)為BlueToothreceive
int main(int argc, char *argv[])
{ int i=0; bsp_init(); unsigned char buf[100]; int recv_count; rs485_open();
printf("test BlueTooth (38400)...\r\n");
while(1) { recv_count = read(fd_rs485,buf,60); buf[recv_count] = '\0'; printf("data num=%d\n",recv_count);
for(i=0;i int bsp_init(void) { open_port_device(); return 0; } (3)實(shí)現(xiàn)發(fā)送功能,主函數(shù)為BlueToothsend int main(int argc, char *argv[]) { int i; bsp_init();char buf[14]="0123456789abcd"; int recv_count; rs485_open(); printf("test BlueTooth (38400)...\r\n"); while(1) { write(fd_rs485,buf,14);for(i=0;i<14;i++) { printf("%c",*(buf+i)); } printf("\n"); mmdelay(3000);} return 0;} int bsp_init(void) { open_port_device(); return 0; } (4)分別調(diào)試藍(lán)牙的主從模塊,其中一片ARM處理模塊燒寫(xiě)發(fā)送程序,另一片ARM處理模塊燒寫(xiě)接收程序。 (5)運(yùn)行相應(yīng)程序,在超級(jí)終端下可以看到一個(gè)ARM處理模塊一直在發(fā)送數(shù)據(jù),另一個(gè)ARM處理模塊一直在接收從藍(lán)牙模塊發(fā)過(guò)來(lái)的數(shù)據(jù)。 (6)模塊參數(shù)的修改參照藍(lán)牙模塊命令集。 5 結(jié)論(Conclusion) 以上為筆者在進(jìn)行嵌入式ARM開(kāi)發(fā)實(shí)踐過(guò)程中總結(jié)出來(lái)的,由于能力有限,諸多細(xì)節(jié)不夠完善,如未能實(shí)現(xiàn)多藍(lán)牙模塊的多點(diǎn)通訊,未能將藍(lán)牙模塊驅(qū)動(dòng)程序加載到Linux內(nèi)核中運(yùn)行,不足之處難免,希望得到讀者朋友的批評(píng)指正。 參考文獻(xiàn)(References) [1] 吳作鵬.藍(lán)牙迎來(lái)第二春[N].計(jì)算機(jī)世界,2004(04). [2] 季巖.關(guān)于藍(lán)牙技術(shù)的研究—基于藍(lán)牙的Adhoc網(wǎng)絡(luò)散列 網(wǎng)形成協(xié)議的研究[D].江南大學(xué),2008(07). [3] 蔣喜焰.基于無(wú)線藍(lán)牙通信的智能家居系統(tǒng)的研究與實(shí)現(xiàn) [D].華東師范大學(xué),2009(04). 作者簡(jiǎn)介: 周小仨(1980-),男,碩士,講師.研究領(lǐng)域:嵌入式,EDA, 單片機(jī)技術(shù)開(kāi)發(fā).