摘要:藍(lán)牙技術(shù)作為全球統(tǒng)一的無線通信標(biāo)準(zhǔn),在多種智能設(shè)備無線互連,多媒體終端通信和家庭網(wǎng)絡(luò)等方面的應(yīng)用也越來越廣泛。本文在對官方的藍(lán)牙協(xié)議棧 BlueZ進(jìn)行分析研究的基礎(chǔ)上,在基于 S3C2410a的實(shí)驗(yàn)開發(fā)平臺上實(shí)現(xiàn)了基于藍(lán)牙協(xié)議棧 BlueZ的移植和文件傳輸功能,達(dá)到了預(yù)期的效果。
1、引言
隨著科學(xué)技術(shù)發(fā)展和社會進(jìn)步,嵌入式系統(tǒng)越來越多的應(yīng)用到我們的實(shí)際生活中,極大的改變著我們的生活。開發(fā)低成本、高性能、高可靠性的嵌入式產(chǎn)品正在成為研究的熱點(diǎn)。尤其是隨著信息化網(wǎng)絡(luò)化的發(fā)展,越來越需要與外部世界進(jìn)行信息交換,當(dāng)前主流的數(shù)據(jù)交換方式都是有線的,但有線通信存在著諸多不足,而無線通信以其無法比擬的靈活性,可移動性和極強(qiáng)的可擴(kuò)容性正得到越來越廣泛的應(yīng)用。藍(lán)牙技術(shù)作為全球統(tǒng)一的無線通信標(biāo)準(zhǔn),其目的在于建立通用的低功耗、低成本無線電空中接口及其控制軟件的公開標(biāo)準(zhǔn),使通信和計(jì)算機(jī)進(jìn)一步結(jié)合,使不同廠家生產(chǎn)的便攜式設(shè)備在沒有電線或電纜互相連接的情況下,能在近距離范圍內(nèi)具有互用、互操作的性能。而藍(lán)牙技術(shù)在多種智能設(shè)備無線互連,多媒體終端通信和家庭網(wǎng)絡(luò)等方面的應(yīng)用也越來越廣泛,本文在對藍(lán)牙的官方協(xié)議棧 BlueZ進(jìn)行深入研究的基礎(chǔ)上,在實(shí)驗(yàn)開發(fā)平臺上實(shí)現(xiàn)了協(xié)議棧的移植和文件的傳輸功能。
2、BlueZ 的體系結(jié)構(gòu)
BlueZ由主機(jī)控制接口(Host CONTROL Interface,HCI)、Bluetooth協(xié)議核心、邏輯鏈路控制和適配協(xié)議(Logical Link CONTROL and Adaptation Protocol,L2CAP)、SCO音頻層、其它 Bluetooth服務(wù)、用戶空間后臺進(jìn)程以及配置工具組成。它的完整結(jié)構(gòu)如圖 1所示(其中除應(yīng)用程序和硬件外為 BlueZ提供的部分)。
3、BlueZ協(xié)議的移植 [2]
本文涉及到的硬件平臺是三星公司的S3C2410a 開發(fā)板,軟件平臺是內(nèi)核版本為 2.4.20的Linux操作系統(tǒng), 為實(shí)現(xiàn)藍(lán)牙協(xié)議棧BlueZ的移植, 可進(jìn)行以下步驟進(jìn)行移植:
(1) 生成交叉編譯器,創(chuàng)建交叉編譯環(huán)境
(2) 編譯、配置實(shí)驗(yàn)開發(fā)平臺上的 Linux內(nèi)核
(3) 安裝 BlueZ 軟件包
(4) 編譯實(shí)驗(yàn)開發(fā)平臺上的Linux內(nèi)核
(5) 向s3c2410a實(shí)驗(yàn)平臺移植 通過上述步驟完成了藍(lán)牙協(xié)議棧 BlueZ的移植后,一個嵌入式藍(lán)牙應(yīng)用開發(fā)平臺就搭建好了,下面利用該平臺提供的藍(lán)牙函數(shù)庫,來進(jìn)行文件傳輸功能的開發(fā)。
4、文件傳輸功能的實(shí)現(xiàn)
如上步驟成功移植藍(lán)牙協(xié)議棧BlueZ后,一個完整的嵌入式藍(lán)牙應(yīng)用開發(fā)平臺就已經(jīng)搭建好了,本文將利用BlueZ提供的API函數(shù)在RFCOMM層上實(shí)現(xiàn)藍(lán)牙文件傳輸?shù)墓δ,所采用的協(xié)議路徑為:射頻(RF)—基帶與鏈路控制(BB&LC)—主機(jī)控制接口(HCI)—邏輯鏈路與適配協(xié)議(L2CAP)—串口仿真(RFCOMM)—對象交換協(xié)議(OBEX)。它的實(shí)現(xiàn)分為客戶端程序和服務(wù)器端程序,流程圖如圖2所示。