新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于BlueZ协议栈的嵌入式系统无线通信实现

基于BlueZ协议栈的嵌入式系统无线通信实现

作者:时间:2010-07-29来源:网络收藏

(1) 生成交叉编译器,创建交叉编译环境
(2) 编译、配置实验开发平台上的 Linux内核
(3) 安装 软件包
(4) 编译实验开发平台上的Linux内核
(5) 向s3c2410a实验平台移植 通过上述步骤完成了蓝牙的移植后,一个蓝牙应用开发平台就搭建

本文引用地址:http://www.eepw.com.cn/article/151711.htm

4、文件传输功能的
如上步骤成功移植蓝牙后,一个完整的蓝牙应用开发平台就已经搭建好了,本文将利用BlueZ提供的API函数在RFCOMM层上蓝牙文件传输的功能,所采用的路径为:射频(RF)―基带与链路控制(BBLC)―主机控制接口(HCI)―逻辑链路与适配协议(L2CAP)―串口仿真(RFCOMM)―对象交换协议(OBEX)。它的分为客户端程序和服务器端程序,流程图如图2所示。

2反映了通过蓝牙实现文件从客户端传输一个文件到服务器的过程,其中用到的协议栈中的API函数以及针对蓝牙通信的设置如下 : (1)int socket(int domain, int type,int protocol) 通过这个函数建立一个套接字,其中参数 domain说明网络程序所用的通讯协议族,本实验中我们用的是蓝牙官方协议栈BlueZ,所以我们的 domain取值AF_BLUETOOTH,type
我们采用可靠的面向连接的 SOCK_STREAM,protocol我们采用的代表串口仿真的 BTPROTO_RFCOMM。
(2) int bind(int sockfd, struct sockaddr *my_addr, int addrlen)
这个函数是服务器端的函数,实现的是绑定端口功能。在我们的实验中,参数 my_addr代表的我们用的是一个结构体,表示本地地址信息,它的 rc_family我们取为 AF_BLUETOOTH,它的rc_bdaddr我们取可以和任意主机通信的 INADDR_ANY。

(3) int listen(int sockfd,int backlog)
这个函数是服务器端的函数,实现监听端口功能,它和我们普通Linux下的使用方法完全一样。

(4) int accept(int sockfd, struct sockaddr *addr,int *addrlen)
这个函数是服务器端的函数,完成接受客户端的链接请求,并建立与客户端的链接的功能。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭