發布日期:2022-04-17 點擊率:82
摘要:藍牙技術作為全球統一的無線通信標準,在多種智能設備無線互連,多媒體終端通信和家庭網絡等方面的應用也越來越廣泛。本文在對官方的藍牙協議棧 BlueZ進行分析研究的基礎上,在基于 S3C2410a的實驗開發平臺上實現了基于藍牙協議棧 BlueZ的移植和文件傳輸功能,達到了預期的效果。 1、引言 隨著科學技術發展和社會進步,嵌入式系統越來越多的應用到我們的實際生活中,極大的改變著我們的生活。開發低成本、高性能、高可靠性的嵌入式產品正在成為研究的熱點。尤其是隨著信息化網絡化的發展,越來越需要與外部世界進行信息交換,當前主流的數據交換方式都是有線的,但有線通信存在著諸多不足,而無線通信以其無法比擬的靈活性,可移動性和極強的可擴容性正得到越來越廣泛的應用。藍牙技術作為全球統一的無線通信標準,其目的在于建立通用的低功耗、低成本無線電空中接口及其控制軟件的公開標準,使通信和計算機進一步結合,使不同廠家生產的便攜式設備在沒有電線或電纜互相連接的情況下,能在近距離范圍內具有互用、互操作的性能。而藍牙技術在多種智能設備無線互連,多媒體終端通信和家庭網絡等方面的應用也越來越廣泛,本文在對藍牙的官方協議棧 BlueZ進行深入研究的基礎上,在實驗開發平臺上實現了協議棧的移植和文件的傳輸功能。 2、BlueZ 的體系結構 BlueZ由主機控制接口(Host ConTROL Inteace,HCI)、Bluetooth協議核心、邏輯鏈路控制和適配協議(Logical link ConTROL and Adaptaon Protocol,L2CAP)、SCO音頻層、其它 Bluetooth服務、用戶空間后臺進程以及配置工具組成。它的完整結構如圖 1所示(其中除應用程序和硬件外為 BlueZ提供的部分)。 3、BlueZ協議的移植 [2] 本文涉及到的硬件平臺是三星公司的S3C2410a 開發板,軟件平臺是內核版本為 2.4.20的Linux操作系統, 為實現藍牙協議棧BlueZ的移植, 可進行以下步驟進行移植: (1) 生成交叉編譯器,創建交叉編譯環境 (2) 編譯、配置實驗開發平臺上的 Linux內核 (3) 安裝 BlueZ 軟件包 (4) 編譯實驗開發平臺上的Linux內核 (5) 向s3c2410a實驗平臺移植 通過上述步驟完成了藍牙協議棧 BlueZ的移植后,一個嵌入式藍牙應用開發平臺就搭建好了,下面利用該平臺提供的藍牙函數庫,來進行文件傳輸功能的開發。 4、文件傳輸功能的實現 如上步驟成功移植藍牙協議棧BlueZ后,一個完整的嵌入式藍牙應用開發平臺就已經搭建好了,本文將利用BlueZ提供的API函數在 RFCOMM層上實現藍牙文件傳輸的功能,所采用的協議路徑為:射頻(RF)—基帶與鏈路控制(BB&LC)—主機控制接口(HCI)—邏輯鏈路與適配協議(L2CAP)—串口仿真(RFCOMM)—對象交換協議(OBEX)。它的實現分為客戶端程序和服務器端程序,流程圖如圖2所示。 2反映了通過藍牙實現文件從客戶端傳輸一個文件到服務器的過程,其中用到的協議棧中的API函數以及針對藍牙通信的設置如下 : (1)int socket(int domain, int type,int protocol) 通過這個函數建立一個套接字,其中參數 domain說明網絡程序所用的通訊協議族,本實驗中我們用的是藍牙官方協議棧BlueZ,所以我們的 domain取值AF_BLUETOOTH,type
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV