手机查看蓝牙协议
篇一:蓝牙协议栈详解
1.概述:
蓝牙协议规范遵循开放系统互连参考模型(OSI/RM),从低到高地定义了蓝牙协议堆栈的各个层次。
SIG所定义的蓝牙技术规范的目的是使符合该规范的各种应用之间能够实现互操作。互操作的远端设备需要使用相同的协议栈,不同的应用需要不同的协议栈。但是,所有的应用都要使用蓝牙技术规范中的数据链路层和物理层。
2.完整的蓝牙协议栈
完整的蓝牙协议栈如图1所示,不是任何应用都必须使用全部协议,而是可以只使用其中的一列或多列。图1显示了所有协议之间的相互关系,但这种关系在某些应用中是有变化的。
蓝牙协议体系中的协议
蓝牙协议体系中的协议按SIG的关注程度分为四层:
核心协议:BaseBand、LMP、L2CAP、SDP; 电缆替代协议:RFCOMM; 电话传送控制协议:TCS-Binary、AT命令集; 选用协议:PPP、UDP/TCP/IP、OBEX、WAP、
1
vCard、vCal、IrMC、WAE。除上述协议层外,规范还定义了主机控制器接口(HCI),它为基带控制器、连接管理器、硬件状态和控制寄存器提供命令接口。在图1中,HCI位于L2CAP的下层,但HCI也可位于L2CAP上层。
蓝牙核心协议由SIG制定的蓝牙专用协议组成。绝大部分蓝牙设备都需要核心协议(加上无线部分),而其他协议则根据应用的需要而定。总之,电缆替代协议、电话控制协议和被采用的协议在核心协议基础上构成了面向应用的协议。
3(蓝牙核心协议介绍
1)基带协议
基带和链路控制层确保微微网内各蓝牙设备单元之间由射频构成的物理连接。蓝牙的射频系统是一个跳频系统,其任一分组在指定时隙、指定频率上发送。它使用查询和分页进程同步不同设备间的发送频率和时钟,为基带数据分组提供了两种物理连接方式,即面向连接(SCO)和无连接(ACL),而且,在同一射频上可实现多路数据传送。ACL适用于数据分组,SCO适用于话音以及话音与数据的组合,所有的话音和数据分组都附有不同级别的前向纠错(FEC)或循环冗余校验(CRC),而且可进行加密。此外,对于不同数据类型(包括连接管理信息和控制信息)都分配一个特殊通道。
可使用各种用户模式在蓝牙设备间传送话音,面向连接的
2
话音分组只需经过基带传输,而不到达L2CAP。话音模式在蓝牙系统内相对简单,只需开通话音连接就可传送话音。
2)连接管理协议(LMP)
该协议负责各蓝牙设备间连接的建立。它通过连接的发起、交换、核实,进行身份认证和加密,通过协商确定基带数据分组大小。它还控制无线设备的电源模式和工作周期,以及微微网内设备单元的连接状态。
3)逻辑链路控制和适配协议(L2CAP)
该协议是基带的上层协议,可以认为它与LMP并行工作,它们的区别在于,当业务数据不经过LMP时,L2CAP为上层提供服务。L2CAP向上层提供面向连接的和无连接的数据服务,它采用了多路技术、分割和重组技术、群提取技术。L2CAP允许高层协议以64k字节长度收发数据分组。虽然基带协议提供了SCO和ACL两种连接类型,但L2CAP只支持ACL。
4)服务发现协议(SDP)
发现服务在蓝牙技术框架中起着至关紧要的作用,它是所有用户模式的基础。使用SDP可以查询到设备信息和服务类型,从而在蓝牙设备间建立相应的连接。
4.电缆替代协议(RFCOMM)
RFCOMM是基于ETSI-07.10规范的串行线仿真协议。它在蓝牙基带协议上仿真RS-232控制和数据信号,为使用串
3
行线传送
的上层协议(如OBEX)提供服务。
5(电话控制协议
二元电话控制协议(TCS-Binary或TCSBIN)
该协议是面向比特的协议,它定义了蓝牙设备间建立语音和数据呼叫的控制信令,定义了处理蓝牙TCS设备群的移动管理进程。基于ITU TQ.931建议的TCSBinary被指定为蓝牙的二元电话控制协议规范。
AT命令集电话控制协议
SIG定义了控制多用户模式下移动电话和调制解调器的AT命令集,该AT命令集基于ITU TV.250建议和GSM07.07,它还可以用于传真业务。
6(选用协议
?点对点协议(PPP)
在蓝牙技术中,PPP位于RFCOMM上层,完成点对点的连接。
?TCP/UDP/IP
该协议是由互联网
任务组制定,广泛应用于互联网通信的协议。在蓝牙设备中,使用这些协议是为了与互联网相连接的设备进行通信。
?对象交换协议(OBEX)
IrOBEX(简写为OBEX)是由红外数据协会(IrDA)制定的会话层协议,它采用简单的和自发的方式交换目标。OBEX
4
是一种类似于HTTP的协议,它假设传输层是可靠的,采用客户机/服务器模式,独立于传输机制和传输应用程序接口(API)。
电子名片交换格式(vCard)、电子日历及日程交换格式(vCal)都是开放性规范,它们都没有定义传输机制,而只是定义了数据传输格式。SIG采用vCard/vCal规范,是为了进一步促进个人信息交换。
?无线应用协议(WAP)
该协议是由无线应用协议论坛制定的,它融合了各种广域无线网络技术,其目的是将互联网内容和电话传送的业务传送到数字蜂窝电话和其他无线终端上。
7.用户模式及协议栈
1)文件传输模式
文件传输模式提供两终端间的数据通信功能,可传输后缀
为.xls、.ppt、.wav、.jpg和.doc的文件(但并不限于这几种),以及完整的文件夹、目录或多媒体数据流等,提供远端文件夹浏览功能。文件传输协议栈如图2所示。
2) 因特网网桥模式
这种用户模式可通过手机或无线调制解调器向PC提供拨号入网和收发传真的功能,而不必与PC有物理上的连接。拨号上网需要两列协议栈(不包括SDP),如图3所示。AT命令集用来控制移动电话或调制解调器以及传送其他业务
5
数据的协议栈。传真采用类似协议栈,但不使用PPP及基于PPP的其他网络协议,而由应用软件利用RFCOMM直接发送。
3) 局域网访问模式
该用户模式下,多功能数据终端(DTs)经局域网访问点(LAP)无线接入局域网,然后,DTs的操作与通过拨号方式接入局域网的设备的操作一样,其协议栈如图4所示。
4) 同步模式
篇二:蓝牙可见性源代码
一:修改本机蓝牙设置的可见性
每一个蓝牙设备都会有一个可见性的设置,什么叫可见性呢,你把你的蓝牙设备设置为可见,那么别人的蓝牙设备就可以扫描到你手机上的这个蓝牙设备,如果你把你的蓝牙设备设置为不可见,那么别人的蓝牙设备就无法扫描到你手机上的蓝牙设备的,一般的我们不会把蓝牙设备可见性设置为永久可见,它总会有一个时间段,比如蓝牙设备在未来300秒内是可见的,过了300秒又回归到不可见状态,这样做主要是为了考虑到手机里数据的安全性。
1:通过”设置“来达到修改蓝牙可见性
点击“蓝牙设置”选项,勾选“可检测”,如果不勾选那么现在手机上的蓝牙设备处于不可见的状态,也就是说别人扫描的时候是扫描不到我的蓝牙设备的,勾选“可检测”后,发现
6
时间开始是117秒可检测到,刷新一下变成111秒可检测到,
它在不断的倒计时也就是说手机上的这个蓝牙设备不是总
是可见的,默认是120秒这个蓝牙是可见的,过了这120秒
这个蓝牙设备又变成不可见状态了,之前说到是为了安全性
的问题。
2:通过代码来达到修改蓝牙可见性
2.1:需要在AndroidMainfest.xml里声明蓝牙权限和蓝牙
管理权限<uses-permission
android:name=android.permission.BLUETOOTH /
<uses-permission
android:name=android.permission.BLUETOOTH_ADMIN
/
2.2:布局文件main.xml
<?xml version=1.0 encoding=utf-8?
<LinearLayout
xmlns:android=
android:orientation=vertical
android:layout_width=fill_parent
android:layout_height=fill_parent
<TextView
7
android:layout_width=fill_parent
android:layout_height=wrap_content
android:text=@string/hello
/
<Button
android:layout_width=fill_parent
android:layout_height=wrap_content
android:text=设置可见性
android:id=&quo
t;@+id/btnkejianxing
/
<Button
android:layout_width=fill_parent
android:layout_height=wrap_content
android:text=开始扫描
android:id=@+id/btnsaomiao
/
</LinearLayout
3:代码文件MainActivity.java
package com.szy.bluetooth2;
import java.util.Iterator;
import java.util.Set;
8
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity<BluetoothReceiver extends
Activity{
private Button btn_saomiao = null;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//得到可见性按钮
btn_kejianxing =
(Button)findViewById(R.id.btnkejianxing);
//绑定可见性按钮监听器
9
btn_kejianxing.setOnClickListener(new
KeJianXingButtonListener());
}
//可见性按钮监听器,该监听器用于修改蓝牙设备可见性
private class KeJianXingButtonListener implements
OnClickListener
{
@Override
public void onClick(View v)
{
//创建一个Intent对象,并且将其action的值设置为
BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE
也就是蓝牙设备设置为可见状态
篇三:蓝牙
嵌入式技术应用实践
实习报告
(蓝牙)
通信工程
龚惠祯
121041A班
121041109
10
一、学习目的
? 了解处理器的发展
? 掌握WinCE嵌入式系统开发方法和开发流程。
? 掌握WinCE嵌入式C#编程方法。
? 掌握WinCE嵌入式网络通信技术。
? 掌握Bluetooth编码技术
二、嵌入式系统
(一)什么是嵌入式系统:
? 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
? 它是完成特定任务的计算机系统。嵌入式系统一般由硬件设备、嵌入式操作系统、嵌入式应用软件组成。
(二)嵌入式系统的特点
传统PC机是面向个人的一个通用操作平台,而嵌入式计算机系统是面向专业设备的一个特定平台。
? 专用性:面向特定用户和特定行业的
? 高效简洁性:对嵌入式系统设备的软件和硬件能够进行裁剪和定制。 ? 高可靠和低能耗性:保证嵌入式系统设备运行安全可靠、实时操作和较低的耗电量。
? 自身特殊性:所需的软件需要在特定的开发环境中进行定制开发。
11
三、PC上模拟运行WinCE
(一)实验目的
??熟悉Windows CE 6.0的开发环境
??掌握新建Windows CE 6.0平台的方法
??了解模拟器的工作原理及用途
(二)实验设备
1) 硬件:
??PC机一台
2) 软件:
??Visual Studio 2005
??Windows CE 6.0
(三)实验原理
模拟器(Emulator)是Windows CE开发一直以来被广大开发人员所使用的一个软件工具,它是在X86架构的开发机上模拟X86或者ARM的处理器。开发人员可以利用这个工具来测试编译生产的映像或者应用程序,虽然模拟器和真实设备还有一定的区别,有时候会出现在模拟器上运行很好的程序,在真实设备上却不能运行或者运行出错的情况,但是可以肯定的是,模拟器可以为开发人员节约很多时间。在安装了Windows CE 6.0之后会默认安装好Emulator的BSP包,可以直接使用而不用额外安装。另外也可以从微软官方网站下载最新的Emulator BSP安装包更新。这里使用默认的
12
Emulator BSP。
(四)实验内容
1) 新建Emulator工程并编译
2) 导出SDK
3) 安装SDK并尝试使用模拟器
四、Visual Studio 2005 开发环境简介
? 了解编写应用程序的流程
? 理解 Windows 窗体
? 使用基本控件如标签、文本、按钮、列
框和组合框
? 掌握窗体的常用属性和方法
编写应用程序的流程
? 创建项目、窗体
? 设置控件属性
? 编写事件的代码
? 调试
总结
? WinForms可用于 Windows 窗体应用程序开发
? Windows 窗体控件是从 System.Windows.Forms.Control 类派生的类 ? 标签控件用于显示用户不能编辑的文本或图像
? 按钮控件提供用户与应用程序交互的最简便方法
? 组合框控件是列表框控件和文本框控件的组合,用户可
13
以键入文本,也可以从所提供的列表中选择项目
? 窗体提供了收集、显示和传送信息的界面,是 GUI的重要元素
? 消息框显示消息,用于与用户交互
五、蓝牙通信技术
(一)蓝牙技术概述
蓝牙(Bluetooth)是目前比较流行的一种短距离无线通讯技术,其主要目的就是要在全世界范围内建立一个短距离的无线通信标准。设计者的初衷是用隐形的连接线代替线缆。它取代目前多种电缆连接方案,通过统一的短程无线链路,在各信息设备之间可以穿过墙壁或公文包,实现方便快捷、灵活安全、低成本小功
耗的话音和数据通信。
? “蓝牙”技术的目的是使特定的移动电话、便携式电脑以及各种便携式通信设备的主机之间在近距离内实现无缝的资源共享。
? 具体地说,“蓝牙”技术的作用就是简化小型网络设备(如移动PC、掌上电脑、手机)之间以及这些设备与Internet之间的通信,免除在无绳电话或移动电话、调制解调器、头套式送,受话器、PDA、计算机、打印机、幻灯机、局域网等之间加装电线、电缆和连接器。
蓝牙技术使用全球通行的、无需申请即可使用的
14
2.45GHzISM(工业Industry、科学Science、医学Medicine)频段(2.400—2.4835GHz)。若以2.45GHz为中心频率,在这个频段上最多可设立79个带宽为1MHz的信道。采用跳频扩谱的低功率传输外,蓝牙还采用鉴权和加密等
来提高通信的安全性。
(二)蓝牙技术的特点
蓝牙技术是为了实现以无线电波替换移动设备所使用的电缆而产生的。它试图以相同成本和安全性完成一般电缆的功能,从而使移动用户摆脱电缆束缚,这就决定了蓝牙技术具备以下技术特性。
1.成本低
为了能够替代一般电缆,它必须具备和一般电缆差不多的价格,这样才能被接受,也才能普及开来。
2. 功耗低、体积小
蓝牙技术本来目的就是用于互连小型移动设备及其外设,它的市场目标是移动笔记本电脑、移动电话、小型的PDA以及它们的外设,因此蓝牙芯片必须具有功耗低、体积小的特点,以便于集成到小型便携设备中去。蓝牙产品输出功率很小(只有1mW),仅是微波炉使用功率的百万分之一,是移动电话的一小部分。
3.近距离通信
蓝牙技术通信距离为10m,如果需要的话,还可以选用放
15
大器使其扩展到100m。这已经足够在办公室内任意摆放外围设备,而不用再担心电缆长度是否够用。
4.安全性
同其它无线信号一样,蓝牙信号很容易被截取,因此蓝牙协议提供了认证和加密功能,以保证链路级的安全。蓝牙系统认证与加密服务由物理层提供,适合于硬件实现,密钥由高层软件管理。除此之外,跳频技术的保密性和蓝牙有限的传输范围也使窃听变得困难。
(三)蓝牙设计实验步骤
1. 先在Microsoft Visual Studio 20005中建立一个新的设备应用程序项目,在Form1中添加三个Button,一个Combobox,两个Label,及一个Texbox。排列如图所示。
2. 更改按钮属性中的内容Text分别为sousuo、浏览文件、发送文件,更改Label命名lanya,更改combobox命名为list
3. 打开按钮程序设计程序
4. 添加ARM工具,form1属性栏中单击右键添加。完成的应用程序如下图所示。
5. 连接实验箱,部署程序,在实验箱显示屏上测试蓝牙功能。
(四)制作CAB安装包
当用户需要在开始菜单中点击安装程序之后的快捷方式,
16
就能运行程序。这就需要使用CAB安装包进行程序的部署。VS.NET2005对CAB安装包制作提供了良好的支持,开发者只需进行一些操作,无需编写一行代码就能完成安装包的制作。
创建CAB安装包项目的步骤
VS.NET2005专门为制作安装包提供了项目类型和专用的项目模板,因此,一个CAB安装包的制作工作是从创建一个项目开始的。
1.选择“Add”/“New Project”,这样将弹出“New Project”
对话框,选择智能设备CAB项目,输入项目名称。
2.在解决方案资源管理器上,项目,右键,添加,新建项目
3.安装和部署,智能设备CAB项目,名称和位置
4.添加可执行文件
可执行文件通常放在“应用程序文件夹”中,通过鼠标右键,依次选择“添加”/“项目输出”菜单项,这时将弹出“添加项目输出组”如图所示,选中“主输出”单击确定,对应项目输出的可执行文件添加到安装包中。
5.创建快捷方式
快捷方式通常是应用程序向用户展现的窗口,通过使用VS.NET2005为应用程序制作安装包时,可以和方便地创建快捷方式。右键鼠标目标计算机上的文件系统,添加Start
17
Menu文件夹。
在编辑器右侧列表视图中,单击鼠标右键,选择“创建新的快捷方式”菜单项。,应用程序文件夹,主输出来自…(活动)
将快捷方式改一个容易记住的名字,不能为中文名字,此名称即为实验箱,
18