基于BlueZ 的BLE蓝牙开发

蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术。工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。数据速率为1Mb/s。时分双工传输方案被用来实现全双工传输,使用IEEE802 15 .15协议。 蓝牙使用了更稳定和更快的跳频技术,使得蓝牙通信抗干扰能力更强。

 

一、 BlueZ 5.44体系结构

蓝牙技术的系统结构分为三大部分:底层硬件模块、中间协议层和应用层。

(1)底层硬件模块包括:无线跳频( RF)、基带( BB)和链路管理(LM)

  蓝牙的SIG规定了四种与硬件连接的物理总线方式USB、RS232、 UART和PC卡

(2)BlueZCore层包括各种Profile:

GAP:设备连接

SDAP:查询相关信息

SPP:虚拟串口连接

GOEP:数据传输

(3)中间协议层:

HCI接口:设备扫描、配对

L2CAP协议:蓝牙适配

(4)应用层包括BlueZ各种工具集:

hciconfig:配置蓝牙设备,用于打印设备信息和配置设备

hcitool:配置蓝牙连接,执行比如扫描等命令

gatttool:一种直接使用参数对蓝牙设备进行控制,二就是使用-I参数进入interactive模式对蓝牙设备进行控制

sdptool:搜索并管理设备服务

 

二、交叉编译蓝牙协议栈BlueZ 5.44

bin和sbin的编译安装目录下生成的操作蓝牙工具, libs编译安装目录下生成的是蓝牙通信时所依赖的库,其他的都是编译这两个所依赖的库,将bin、sbin和lib移植到板子上的相关文件中,下图是编译BlueZ 5.44所依赖的库。

#!/bin/sh
cd zlib-1.2.8
CC=arm-histbv310-linux-gcc ./configure --prefix=$PWD/../bluetooth-build/zlib-1.2.8-build 
make -j8
make install
cd -

cd libffi-3.0.13
./configure --prefix=$PWD/../bluetooth-build/libffi-3.0.13-build --host=arm-linux CC=arm-histbv310-linux-gcc
make -j8
make install
cd -

cd glib-2.40.0
./configure --prefix=$PWD/../bluetooth-build/glib-2.40.0-build --host=arm-linux CC=arm-histbv310-linux-gcc PKG_CONFIG_PATH=$PWD/../libffi-3.0.13-build/lib/pkgconfig  glib_cv_stack_grows=no glib_cv_uscore=yes ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes CPPFLAGS="-I$PWD/../bluetooth-build/libffi-3.0.13-build/lib/libffi-3.0.13/include -I$PWD/../bluetooth-build/zlib-1.2.8-build/include" LDFLAGS="-L$PWD/../bluetooth-build/libffi-3.0.13-build/lib/ -L$PWD/../bluetooth-build/zlib-1.2.8-build/lib/"
make -j8
make install
cd -

cd expat-2.1.0
./configure --prefix=$PWD/../bluetooth-build/expat-2.1.0-build --host=arm-linux CC=arm-histbv310-linux-gcc
make -j8
make install
cd -

cd dbus-1.9.4
./configure --prefix=$PWD/../bluetooth-build/dbus-1.9.4-build --host=arm-linux --with-x=no --disable-tests --enable-abstract-sockets CC=arm-histbv310-linux-gcc CFLAGS=-I$PWD/../bluetooth-build/expat-2.1.0-build/include LDFLAGS=-L$PWD/../bluetooth-build/expat-2.1.0-build/lib
make -j8
make install
cd -

cd libical-1.0
./bootstrap 
./configure --prefix=$PWD/../bluetooth-build/libical-1.0-build --host=arm-linux CC=arm-histbv310-linux-gcc 
make -j8
make install
cd -

cd ncurses-5.9
./configure --prefix=$PWD/../bluetooth-build/ncurses-5.9-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值