蓝牙协议栈中RFCOMM协议层的分析与实现.pdf
- 文档编号:3177114
- 上传时间:2022-11-19
- 格式:PDF
- 页数:4
- 大小:258.56KB
蓝牙协议栈中RFCOMM协议层的分析与实现.pdf
《蓝牙协议栈中RFCOMM协议层的分析与实现.pdf》由会员分享,可在线阅读,更多相关《蓝牙协议栈中RFCOMM协议层的分析与实现.pdf(4页珍藏版)》请在冰豆网上搜索。
第30(t第8期计算机工程2004年4只VoL30脑8ComputerEngineeringApril2004网络与通信土:
tUllq:
looo3428(2004)080112_02文-标识码:
A中圈分类号lTP3”蓝牙协议栈哼RFCOMM协议层的分析与实现马罾兴,陈启军(同济大学信息与控制工程系,上海200092)擅妥:
电缆替代协议(RFcOMM)在蓝牙协波体系中是用米对串口进行仿真的协议,它使传统基于申11的应用可以利用蓝牙进行传输。
该文XJRFCOMM协议的原理和实现机制进行了较为详细的阐述并在此基础上给出了一种具体的软件实现方案。
关量嗣:
蓝牙;协议栈;电缆替代坼议;数据链路标识AnalvsisandImplementationOfRFCoMMLayerinBluetoothProtocolStackMAJinxing。
CHENQijun(DepartmentofInformationandControlEngineering,ZongiiUniversityShanghai200092)AbstractlRFCOMMisaprotocolwhichisused【otheserialportItenablesthetraditionalserial-port-basedapplicationbetransmittedbybluetoothtcchnology1hispaperexploresthetheoryandimplementsmechanismofRFCOMMlayerThenasolutionofsoftwareimplementationispresentedOnthisbasislKeywordsBluetooth;Protocolstack;RFCOMM;DLCIBluctoothSIG于1999年12月发布了蓝牙系统技术标准v1OB版,该标准对蓝牙协议作了详尽的描述。
蓝牙辨趣小组提出RFCOMM的主要目的是对现有使用串行线接口的应用软件提供支持同时使RFCOMM符合ETSI标准,以便协议栈比较容易地嵌入到GSM移动通信设备中。
蓝牙协议栈中的RFCOMM协议是在欧洲电信标准协议ETSITS0710规范的基础上进行修改而来。
目前公开的蓝牙协议文档中介绍RFCOMM层协议时,仅给出它与ETSITS0710规范的不同之处,以及蓝牙协议在这一层应具有的功能,并投有讨论如何实现这一层协议。
由于RFCOMM协议是基于Ts0710协议的i因此实现RFCOMM协议时,需要先对Ts0710协议有比较深入的理解。
鉴于以上原因,给RFCOMM层协议的实现带来了困难。
本文结合蓝牙L2CAP和SDP协议层,以及蓝牙协议的特殊要求,主要对在蓝牙协议中使用TS0710的帧进行了分析,给出了实现RFCOMM协议的状态流程图、通信漉程和一种具体的软件实现方案。
1RFoMM协议祯分析“21RFCOMM协改层位于L2CAP协议层和应用层协议之问,是一个传输层协议。
它提供了基于L2CAP协议层之上的模拟串口,完成了对RS232串121的仿真。
在L2CAP链按信道的基础上建立RFCOMMSession(Bg对等双方RFCOMM层之间的一个链按),并向上层应用提供模拟串口。
使得以前遣留下来的基于串口通信的应用程序能很容易地应用到蓝牙协议之上,保证蓝牙技术与现有技术的融合,以及各种应用之间的互通性。
RFCOMM协议层命令的执行和数据的发送都是通过各种帧来完成的。
RFCOMM将各种数据和控制信号封装在各种不同的帧中进行传输,所使用的帧来自于GSMIS0710多路控制协议。
主要包括:
设置异步平衡模式帧(SABM),无序号响应帧(UA),断开模式帧(DM),断开连接帧(DISC)和带头校验的无序号信息帧(UIH)。
其中SABM、DISC为命令帧,UA、一112一DM为响应帧,UIH既可以是命令帧,也可以是响应帧。
各种帧的具体结构、参数及其使用参见文献2。
RFCOMM除了使用于基带的链路管理(LM)层提供的流控制机制外,也有自己的3种流控制机制:
(1)RFCOMM协议定义了能对两个RFCOMM实体之间全部数据流操作的流控制指令FCON和FCOFF,对所有的DLCI都起作用;
(2)调制解调器状态命令MSC,是对单个DLCI的流控制机制;(3)纂干信用的流控制。
2状态流程图链路状态图在无线通信应用环境中有非常重要的参考价值。
链路状态图指出了什么样的事件导致系统状态的转变,当系统的状态发生转变时,需采取什么样的动作。
图1描述的是主机和从机的RFCOMM协议层之间,一个简单的链路状态迁移图和典型的状态转变过程。
以主机为例进行简要的说明:
系统开机后所处的状态是链路断开状态,主机发送完建立连接请求到配置结束的过程中,系统一直处于链路连接建立过程。
当收到对方确认连接响应后,系统的状态由链路断开状态转变到参数的配置状态。
需要协商配置的参数包括:
L2CAP信道的参数配置和RFCOMMDLCI的建立及其参数的配置。
当双方参数协商配置完成后,系统的状态由参数配置状态转变到链路建立状态。
此时便可进行用户数据的传输。
当主机发送断开连接请求后,系统由链路连接状态转向链路断开状态过程,当收到对方断开确认响应后,系统的转态转变到链路的断开状态,即回到初始状态。
RFCOMM调用L2CAP层的建立链路、配置和拆除链路的请求和响应来完成通信链路的建立、信道参数配置和链路的释放,调用数据发送函数来完成数据的发送。
数据流的方向都是从上往下。
其中所采取的动作(eP使用的函数)包括:
作者荫舟:
马晋兴(1979-),男,硕士生,研究方向:
蓝牙技术及其应用;陈启军,教授、博导收日期:
20030727E-mail:
majinxin90i163COrn万方数据(voidrfcomnconnectreq(session,mtu,psm,result):
应用层调用RFCOMM的接口函数来请求一个RFCOMM连接,通过调用的数据发送函散,把请求建立的命令发送到对方蓝牙设备,然后等待对方的响应。
f2)voidr忙0mmconnectrsp(cidstatus):
当应用层收到底层的建立连接请求时,由事先预没机制作出响应,如果同意建立连接,把分配的CID和结果写入status中,通过调用数据发送函数发送到对方。
(3)voidrfcommeonfig_reqfsession,dcl,result);voidrfcommeonfig酣);,_rssessiondlcistatusviodrfcornmdisconnectreq(sectiondleixl;voidrfcommdisconnectrsp(ciddlcix,status)。
这4个函数的使用和上面两个函数的使用基本相同。
另外还有一个发送数据的函数:
voidrfcommsenddata(sediondlcl,*data,length):
section和dlel标识RFCOMM连接通遭和数据发送的串口号。
*data为存放数据的地址指针,length为效据的长度。
而从下往上的数据传递,则采用回调函数机制。
在RFCOMM中回调的函数包括:
(I)voidrfcommconneetind(12cap_con,*12cap):
RFCOMM层收到来自L2CAP层的连接指示消息后,该函数被主机回调,用来返回对L2CAP层的响应,给出其相应的结果和状态。
(2)Voidrfcommconncct_cfin(12capCOil+12cap,status):
RFCOMM层收到来自L2CAP柏连接确认消息后。
谈函数被回调。
如果收到确认链路建立成功则转向信道参数配置的请求。
(3)voidrfcommconflg_int(12capcon,+t2cap。
status);voidrfeommconfigcfm(12eapCOn+12cap,status);voidrfcommdisconnectind(2ca阻con,+12capstatus)voidrfcommdisconnectcfm02capCOB12cap,status)。
这4个函数的回调机制与上面两个函数基本相同,只是它们负责参数配置和链路拆除的任务。
还有一个接收数据的函数:
voidrfcommJeeelvedata(|2cap_con12cap,data,len磐h)是RFCOMM接收来自L2CAP层的UIH帧数据。
Data为来自L2CAP的数据存放的地址指针1ength为数据的长度。
D15cOwqfgCtEDrfcomaconnectre。
q。
rfcoBlitcorrect1nd一一,。
一。
畋z:
一。
m一一cm裔一cmct,s-|“、rf一c。
nflgJeqj。
”1。
rfc。
nI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 蓝牙 协议 RFCOMM 分析 实现