(通信与信息系统专业论文)蓝牙核心协议栈的研究.pdf_第1页
(通信与信息系统专业论文)蓝牙核心协议栈的研究.pdf_第2页
(通信与信息系统专业论文)蓝牙核心协议栈的研究.pdf_第3页
(通信与信息系统专业论文)蓝牙核心协议栈的研究.pdf_第4页
(通信与信息系统专业论文)蓝牙核心协议栈的研究.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(通信与信息系统专业论文)蓝牙核心协议栈的研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文摘要 摘要:蓝牙是一种短距离的无线通信技术,它最初提出是用来取代电缆连线, 也可以用于各种移动设备的互联,组建个人无线局域网。本文讲述如何实现蓝牙协 议栈并与w i n d o w s 操作系统集合实现一些典型的应用。 本文从协议工程的角度,提出了实现协议软件的一种方法,主要完成了以下几 项工作: 1 ) s d l ( s p e c i f i c a t i o nd e s c r i p t i o nl a n g u a g e ) 描述 文中采用s d l 技术对h c i 协议进行了形式化描述。形式化方法可以提供协议规 范的无二义性的精确描述。其次,形式化方法的逐步求精策略有助于对协议的总 体把握,为协议的实现奠定基础。 2 ) 协议的实现 本文给出h c i 协议的实现方案,从程序设计语言、编译器和操作系统三个层面 阐述c 语言实现在可移植性方面应考虑的问题,总结了通信协议实现中应注意的 问题,提出了相应的建议。 3 ) 应用开发 应用开发是把研究成果推向实用的关键阶段。文中主要阐述协议栈与具体的操 作系统的结合,实现蓝牙协议栈与w i n d o w s 系统的无缝集成。 关键词:蓝牙;协议栈;规范描述语言;消息序列图;主机控制器接口 j b 塞交道太堂亟堂焦论塞旦墨! 基! a b s t ra c t a b s t r a c r b l u e t o o t hi sas h o r t - r a n g ew i r e l e s sc o m m u n i c a t i o nt e c h n o l o g yd e v e l o p i n gr a p i d l y r e c e n t l y i tw a sb r o u g h tf o r w a r dt or e p l a c ec a b l e sb e t w e e nd e v i c e s ,w h i l ei tc a nb eu s e d t oc o n n e c tp o r t a b l ed e v i c e so fa l lk i n d st of o r map e r s o n a lw i r e l e s sl a n t h i st h e s i s p r e s e n t sh o wt oi m p l e m e n tb l u e t o o t hs y s t e ma n ds o m eo fi t st y p i c a lp r o f i l e so n w i n d o w so p e r a t i o ns y s t e m t h i s p a p e rp u t sf o r w a r d as o l u t i o nf o rp r o t o c o ls o f t w a r e i m p l e m e n t a t i o nb y a d d r e s s i n gt h ef o l l o w i n ga s p e c t so fp r o t o c o le n g i n e e r i n g : 1 ) s d ld e s c r i p t i o n t h i sp a p e rd e s c r i b e st h eh c ip r o t o c o lf o r m a l l yi ns d l s d lc a nd e s c r i b et h e b l u e t o o t hp r o t o c o la c c u r a t e l ya n db eh e l p f u lt oh a v eag e n e r a lc o n c e p t i o n s ow ec a n i m p l e m e n tt h es t a c ki na n s ice a s i l ya n dc o r r e c t l y i m p l e m e n t a t i o no fh c i b e s i d e st h es d l d e s c r i p t i o n ,t h i sp a p e rg i v e st h ei m p l e m e n t a t i o ns o l u t i o no fh c i i na n s ic i ta d d r e s s e st h ep o r t a b i l i t ya n de f f i c i e n c yi s s u e sf r o ms u c ha s p e c t sa s a r c h i t e c t u r a ld e s i g n , p r o g r a m m i n gs t y l e ,c o m p i l a t i o ne n v i r o n m e n t a l s o ,t h i sp a p e rp u t s f o r w a r ds o m ek e y p o i n t si nt h ei m p l e m e n t a t i o no fc o m m u n i c a t i o np r o t o c 0 1 3 、a p p l i c a t i o nd e v e l o p m e n t a p p l i c a t i o nd e v e l o p m e n ti st h ek e ys t a g eo fu t i l i z a t i o no ft h er e s e a r c hr e s u l t w e i n t e g r a t e db l u e t o o t hp r o t o c o ls t a c kw i t ho p e r a t i n gs y s t e mt om a k ei ts e a m l e s s l y k e y w o r d s :b l u e t o o t h ;p r o t o c o ls t a c k ;s d lm s c ;h c i 致谢 三年的学习与生活中,我得到了周围许多老师、同事与朋友的帮助,他们的 热情指导与关心我将终生难忘。值此论文完成之际,我衷心的感谢所有曾经帮助 过我的人们。 我的论文得以顺利的完成,在此要深深地感谢我的导师高强研究员,他在这 期间给了我较多的宏观指导,为我提供了便利的实验环境,并在生活上对我非常 关心。 同时,我还要感谢所有一起开发项目的其他工作人员和研究生的帮助:叶东 翔、徐菲、鲁东梅等,还有我的朋友叶世禄和符策健,与他们一起学习和生活让 人非常愉快。 另外也感谢家人。他们的理解和支持使我能够在学校专心完成我的学业。 j b 鏖銮逗盔堂亟堂僮j 幺毫 压 序 蓝牙技术是一种无线数据与语音通信的开放性全球规范,它以低成本的近距离 无线连接为基础,为固定与移动设备通信环境建立一个特别连接。主机控制器接口 ( h c i ) 虽不是严格意义上的通信协议,它仅为蓝牙协议栈的应用高层部分提供了 一个访问低层传输协议的指令接口,但h c i 却属于协议栈中重要的一部分。它是蓝 牙主机一主机控制器应用模式中蓝牙模块和主机间的软硬件接口,它提供基带与链 路控制器、链路管理器、状态寄存器等硬件功能的指令分组格式以及进行数据通信 的数据分组格式。 蓝牙技术的优点是安全、低代价、低功耗,它是无线局域网技术发展的重要 方向之一。为了能与国外同步开发这技术,我们在蓝牙协议推出的同时就开始了 蓝牙协议的开发与实现工作。根据形式化的协议描述、验证等技术进行协议软件 的开发,可以保证软件的健壮性、可移植性和可维护性,缩短了协议软件的开发 周期。实践证明,这样的开发方法能够在较短的时问内完成一个较复杂协议栈的 开发,而且代码具有较好的可靠性与可移植性。 本文第一章首先简要介绍了蓝牙技术,并说明本文的工程背景和组织结构。在 第二章里描述蓝牙的协议栈,介绍蓝牙技术的一些典型应用。第三章介绍协议的 形式化描述问题,提出在设计通信协议时必须注意的一些工具以及设计的方法。 第四章开始对蓝牙协议中的h c i 进行s d l 描述。第五章具体讨论了蓝牙协议栈中 h c i 的设计与实现。以一个具体的协议的设计过程来讲述怎样设计蓝牙协议栈。 并对蓝牙协议设计过程中要注意的问题做了一个总结。第六章将协议栈与具体的 系统结合起来,实现蓝牙协议栈与w i n d o w s 系统的无缝集成。最后第七章介绍了 蓝牙技术当前存在的问题以及进一步研究的方向。 j e 塞銮逼太堂硒堂焦i 金童 l 直 1 引言 1 1 蓝牙简介 蓝牙( b l u e t o o t h ) 是由e r i c s s o n 、i b m 、i n t e l 、n o k i a 和t o s h i b a 等5 家公 司于1 9 9 8 年联合推出的一项最新的无线网络技术。如今已经迅速成为移动p c 、移 动电话、p d a 和其他便携设备之间的小尺寸、低价位、短距离无线连接的领先标准。 1 9 9 8 年5 月这五家公司组建了一个特殊兴趣组s i g ( s p e c i a li n t e r e s tg r o u p ) 来 开发此技术及协议,如今已有2 5 0 0 多家公司加入。 蓝牙技术主要面向网络中各类数据及语音设备,以无线的方式将它们连成一 个微微网( p i c o n e t ) ,多个p i c o n e t 之间也可以互连形成一个分布式网 ( s c a t t e r n e t ) ,从而方便快速地实现各类设备之间的通信。带有蓝牙技术的通信 设备,彼此距离满足条件时,就可以建立连接,从而建立临时的个人无线连接网 络。 蓝牙无线通信技术的主要特剧1 l 有: 1 低成本、低功率、体积小无线收发芯片( o 5 平方英寸) ; 2 短标称的蓝牙无线通信距离( 1 0 米) ,以节省电池能量; 3 用外加的功率放大器扩展的无线通信距离( 1 0 0 米) ; 4 在全球可用并且无限制的2 4 g h zi s m ( q - 业、科学、医疗) 频段内。 蓝牙系统的天线发射功率符合f c c 关于i s m 波段的o d b m 要求。系统的最大跳 频速率是1 6 0 0 跳秒,采用7 9 个1 m h z 带宽的频点。b l u e t o o t h 跳频机制结合了快 速a r q ( 自动重复请求) 、c r c ( 循环冗余校验) 和f e c ( 前向纠错) 。二进制调频 和简单的链路层协议降低了射频芯片的复杂度和成本。 蓝牙为所谓的p i c o n e t 提供1m b i t s 的标称速率。一个p i c o n e t 里包含一个 主设备和最多七个从设备,在这里主从关系用来初始化和控制一个p i c o n e t 中设 备之间的通信。主设备负责确定和同步它所在的p i c o n e t 中的调频模式。单个的 蓝牙单元可以以最高速率7 2 1 k b i t s 接收和发送,或最多3 个语音信道( 每个信 道6 4 k b i t s ,使用e v s 卜连续变化斜率增量调制方法调制) 。每对主从设备同时 支持同步面向连接( s c o ) 的链路和异步无连接( a c l ) 的链路。在个蓝牙射程 j e 哀变通太堂亟堂僮j 金塞i l 直 范围内,可以存在多个独立的p i c o n e t 。这些p i c o n e t 组成s c a t t e r n e t ,以便让 更多的蓝牙设备被激活,组合起来提供更高的带宽。 1 2工程背景及论文结构 蓝牙技术刚一在国外推出,我们就意识到这项技术将是未来无线局域网技术发 展的方向。我们的项目一方面提供蓝牙的协议栈,另一方面我们将把蓝牙协议栈 与具体的系统实现无缝集成,因此我们将协议栈实现为与系统相关和系统无关两 个部分,这样方便了在各种系统平台上的移植。 本人在论文期间首先认真研究了蓝牙协议,理解了蓝牙协议栈的各个模块,熟 悉了w i n d o w s 系统的特点和在该系统上进行软件开发的一些关键技术。在重点实 现蓝牙核心协议栈的h c i 后,再将蓝牙协议栈移植到了w i n d o w s 系统上,这样在 w i n d o w s 系统上蓝牙系统环境就搭建起来了。 本文第一章首先简要介绍了蓝牙技术,并说明了本文的工程背景和组织结构。 接着在第二章里描述了蓝牙的协议栈,介绍了蓝牙技术的一些典型应用。在第三 章我们介绍了协议的形式化描述问题,提出在设计通信协议时必须注意的一些工 具以及设计的方法。在第四章我们将开始对蓝牙协议中的h c i 进行s d l 描述。接 下来的第五章具体讨论了蓝牙协议栈中h c i 的设计与实现。以一个具体的协议的 设计过程来讲述怎样设计蓝牙协议栈。并对蓝牙协议设计过程中要注意的问题做 了一个总结。在第六章我们将把我们的协议栈与具体的系统结合起来,实现蓝牙 协议栈与w i n d o w s 系统的无缝集成。在介绍蓝牙系统在w i n d o w s 上的实现时,我 们首先是介绍了系统结构,然后详细地讨论了各个模块,主要有蓝牙协议模块、 虚拟串口模块、外围程序等。最后第七章介绍了蓝牙技术当前存在的问题以及进 一步研究的方向。 2 2 蓝牙协议栈 蓝牙技术规范由蓝牙特别兴趣小组( s i g ) 制订,在使用通用无线传输模块和 数据通信协议的基础上,开发交互式服务和应用,用于短距离便携式通信设备。 蓝牙技术规范的目的是使符合该规范的各种应用之间能够互通,本地设备与远端 设备需要使用相同的协议,所有的应用都要用到蓝牙技术规范中的数据链路层和 物理层,图2 - 1 显示了数据经过无线传输时,所有蓝牙协议之间的相互关系,在某 些应用中这种关系是有变化的,如在蓝牙打印机的应用中,仅使用了连接管理协 议( l i n km a n a g e rp r o t o c o l 简称l m p ) 、逻辑链路控制应用协议( l o g i c a ll i n kc o n t r o l a n da d a p t a t i o np r o t o c o l 简称l 2 c a p ) 和硬拷贝电缆替代协议( h a r d c o p yc a b l e r e p l a c e m e n tp r o t o c o l 简称h c r p ) 。 完整的蓝牙协议层如图2 1 所示: 图2 - 1b l u e t o o t h 的协议层模型 如上图所示,蓝牙技术规范的体系结构包含核心协议( c o r e ) 和应用框架 ( p r o f i l e ) 两大部分。 核心协议是蓝牙技术专有的。一个特殊的层次主机控制接口层( h c i ) 把 核心协议分为硬件和软件两部分。射频( r f ) 、基带( b b ) 和链路管理( l m ) 这 3 韭塞变通太堂亟堂僮i 金塞 蕉夏垃这拢 三层通常固化在硬件模块上,构成核心协议的硬件部分。软件部分由逻辑链路控 制与适配协议( l 2 c a p ) 、服务发现协议( s d p ) 、串行端口仿真协议( r f c o m m ) 、 电话控制协议( t c s ) 构成。它们通常运行于主机端。蓝牙系统中,主机与硬件模 块之间的连接方式可以有多种选择,如r s 2 3 2 、u s b 、p c m c i a 等。h c i 是对不 同连接方式的抽象,它提供了调用下层b b 、l m 以及状态和控制寄存器等硬件的 一致的命令接口,使得不同的连接方式对主机端的协议软件而言是透明的。 应用框架规范的制订是考虑到不同蓝牙产品之间的互连性。它所关心的是如 何规范地应用蓝牙技术。这其中也包括如何支持既有的协议软件,如p p p ,t c p i p , w a p ,o b e x 等等,从而使蓝牙技术可以尽量地沿用已有的软件资源。每一应用 框架规范刻划了蓝牙技术的一类应用模式。其中,不仅定义了蓝牙技术所支持的 功能本身,而且进一步把功能分配到网络单元和协议层,代表了协议层的“垂直” 视角。 设计协议和协议栈的主要原则是尽可能利用现有的各种高层协议,保证现有协 议与蓝牙技术的融合以及各种应用之间的互通性,充分利用兼容蓝牙技术规范的 软硬件系统。蓝牙技术规范的的开放性保证了设备制造商可自由地选用其专利协 议或常用的公共协议,在蓝牙技术规范基础上开发新的应用。 2 1 蓝牙核心协议 蓝牙核心协议由s i g 制定的蓝牙专利协议组成,绝大部分蓝牙设备都必须配 有核心协议( 加上无线部分) ,而其它协议根据应用的需要而定。总之,发现服务 协议、电缆替代协议、电话控制协议和被采用的协议在核心协议基础上构成了面 向应用的协议1 2 1 。 2 1 1基带协议( b a s eb a n d ) 基带层控制跳频序列的同步和传输。蓝牙技术的信息收发采用f h s s 技术,即 在2 4 g h z 的频段上以1 6 0 0 跳秒的速率进行跳频来实现信息的发送和接收。跳频 技术是把频段分成若干个跳频信道。连接双方的收发单元按照一定的码序列,即“伪 随机码”不断地从一个信道“跳”到另外一个信道。码序列由主叫方确定,并通过 4 查询( i n q u i r y ) 和寻呼( p a g i n g ) 过程来同步跳频频率和时钟。这样,收发双方 按照一致的码序列同步跳频,而干扰源又不可能也按照同样的规律变化,从而保证 了信息传输的质量。 蓝牙规范中定义了两类不同的链路,即同步面向连接( s c 0 ) 和异步无连接 ( a c l ) ,而且在同一射频上可实现多路数据传送。a c l 适用于数据分组,s c 0 适用 于话音及话音与数据的组合,所有话音与数据分组都附有不同级别的正向纠错 ( f e e ) 或循环冗余校验( c r c ) ,而且可进行加密。 2 1 2连接管理协议( l m p ) 连接管理协议( l m p ) 负责蓝牙各设备间连接的建立,主要负责完成设备功率 管理、链路质量管理、链路控制管理、数据分组管理和链路安全管理五个方面的 任务。它通过连接的发起、交换、核实,进行身份验证和加密,通过协商确定基 带数据分组大小。它还控制无线设备的电源模式和工作周期,以及微微网内设备 单元的连接状态。蓝牙设备用户通过链路管理器可以对本地或远端蓝牙设备的链 路情况进行设置和控制,实现对链路的管理。 2 1 3主机控制接口( h c i ) 在基带和链接管理层上与l 2 c a p 之间还有一个主机控制器接口层h a ( h o s t c o n t r o l l e r i n t e r f a c e ) 。h c i 是蓝牙协议中软硬件之间的接口,它提供了一个调用下 层基带、链接管理、状态和控制寄存器等硬件的统一命令接口。蓝牙设备之间通 信时的的系统结构如图2 - 2 所示。h c i 协议以上的协议软件实体运行在主机上,而 h c i 以下的功能一般由蓝牙设备来完成,二者之间通过一个对两端透明的传输层 进行交互。 5 韭立銮道太堂亟堂焦j 金毫 重复垃邀拉 主机1主机2 口软件口固件口硬件 图2 - 2h c i 模块在蓝牙协议中的位置 如上图所示,h a 模块包括主机端驱动h c ld r i v e r 和蓝牙设备上的固件h c i f i r m w a r e ( 即h o s tc o n t r o l l e r ) ,二者之间由一个h c i 传输层提供数据的透明传输。 通过此传输层,主机端驱动将从高层得到的待传输数据和命令送到蓝牙硬件设备 中,同时接收从设备提交的数据和事件。 通过h c i 传出的信息可包括命令、事件、数据三类。命令由主机端发给硬件 设备,事件由设备提交给主机,数据则是双向的。下面简要介绍这三类信息。 由主机发给设备的命令按执行方式可分为同步命令和异步命令。同步命令主要 用于本地查询和设置参数,完成后立即返回类似于c o m m a n dc o m p l e t ee v e n t 的命 令完成事件;异步命令一般涉及到双方的通信,比如建立连接等,h c i 固件接收 到命令后,先返回一个命令状态事件c o m m a n ds t a t u se v e n t ,表示命令参数的正 确与否,完成后再返回一个命令完成事件。 两个蓝牙设备之间只能建立一条a c l 信道,但可以建立多条s c o 信道。a c l 主要用来收发数据,s c o 主要用于话音通信。连接建立起来后,主机控s j j 器r ( h c ) 6 将从主机端收到的数据通过链路管理、基带和r f 发送出去,当收到数据时则过程 相反。 2 1 4逻辑链路控制与适配协议( l 2 c a p ) 逻辑链路控制与适配层协议( l o g i c a ll i n kc o n t r o la n d a d a p t a t i o nl a y e r p r o t o c o l 简称l 2 c a p ) ,属于低层的蓝牙传输协议,其侧重于语音与数据无线通信在物理链 路上的实现,是一个为高层传输层和应用层协议屏蔽基带协议的适配协议【3 l 。 l 2 c a p 位于基带协议层之上,属于数据链路层,它在整个协议层体系中的地位如 图2 - 1 。l 2 c a p 为高层提供数据服务,允许高层和应用层协议收发大小为6 4 k b 字 节的l 2 c a p 数据包。虽然基带协议提供了s c o 和a c l 两种连接类型,但是l 2 c a p 只支持面向无连接的异步传输( a c l ) ,不支持面向连接的同步传输( s c o ) ,s c o 链路主要用预留的带宽进行实时语音传输,通过基带即可完成。 2 1 5电缆替代协议( r f c o m m ) r f c o m m 是基于e t s l0 7 1 0 规范的串行线仿真协议。电缆替代协议在蓝牙 基带协议上仿真r s 2 3 2 控制和数据信号,为使用串行线传送机制的上层协议( 如 0 b e x ) 提供服务。蓝牙特别兴趣小组s i g 提出r f c o m m 的目的在于以下几点: 提供对现有使用串行线接口的应用软件的支持;利用已有的g s m0 7 1 0 标准;支 持蓝牙设备之间点对点的通信。 r f c o m m 完成了对r s 2 3 2 串口的仿真,这样就可以尽可能利用现有的各种高 层应用程序,保证蓝牙技术与现有技术的融合以及各种应用之问的互通性,充分 利用兼容蓝牙技术规范的软硬件体系。其中最常用的是如图2 1 所示的基于串行线 传送机制的高层协议,如:o b e x 、p p p 和a t 命令集。其中p p p 完成点对点的连 接;o b e x ( 对象交换协议) 是由红外数据协会( i r d a ) 制定的会话层协议,它采 用简单的和自发的方式交换目标数据,它是一种类似于h t t p 的协议,假设传输 层是可靠的,采用客户机一服务器模式,独立于传输机制和传输应用程序接口; a t 命令集是专门为调制解调器设计的接口,用来提供拨号上网和收发传真的功能。 7 2 1 6服务发现协议( s d p ) 发现服务协议s d p 在蓝牙技术框架中起到至关重要的作用,它是所有用户应 用的基础。在蓝牙设备的网络环境中,本地设备发现、利用远端设备所提供的服 务和功能,并向其它蓝牙设备提供自身的服务,这是网络资源共享的途径,也是 服务发现s d p 要解决的问题【3 1 。s d p 提供了服务注册的方法和访问服务发现数据 库的途径。使用s d p ,可以查询到设备信息和服务类型,从而在蓝牙设备间建立 相应的连接。 2 1 7 电话控制协议( t c s ) 二元电话控制协议( t c sb i n a r y 或t c sb i n ) 是面向比特的协议,它定义了 蓝牙设备间建立语音和数据呼叫的控制信令,定义了处理蓝牙t c s 设备群的移动 管理进程。基于r r u tq 9 3 1 建议的t c sb i n a r y 被指定为蓝牙的二元电话控制 协议规范。 t c s 用于实现电话的呼叫控制,包括呼叫的建立和终止以及其他的控制功能。 t c sb i n a r y 可以同时控制语音呼叫和数据呼叫。语音呼叫时的控制信息由音频部 分携带,数据呼叫时的控制信息由协议栈的传输层来携带。 2 2 选用协议 2 2 1对象交换协议( o b e x ) i r o b e x ( 简写为o b e x ) 是由红外数据协会( i r d a ) 制定的会话层协议,已在红 外技术上得到了很好的实现【4 】。因而s i g 在i r d a 互操作性规范和o b e x 协议之上 制定了蓝牙对象交换应用,通过o b e x 之上对数据对象进行“p u s h ”与“p u l l ”来 实现相应的实际应用。 电子名片交换格式( v c a r d ) 、电子日历及日程交换格式( v c a l ) 都是开放性规 范,它们都没有定义传输机制,而只是定义了数据传输模式。s i g 采用v c a r d v c a l 规范,是为了进一步促进个人信息交换。 8 j e 塞窑通太堂亟堂僮诠毫蓝爱迹这拄 2 2 2无线应用协议( w 舯) 无线应用协议是由无线应用协议论坛制定的,它融合了各种广域无线网络技 术,其目的是将互联网内容传送到数字蜂窝电话和其它无线终端上。选用w a p , 可以充分利用为无线应用环境( w a e ) 开发的高层应用软件。 2 3蓝牙应用协议 2 3 1拨号上网协议( d u n ) 在这种应用下,由手机或无线调制解调器向p c 提供无线拨号上网和收发传真 的功能,而不必与p c 建立物理连接。拨号上网需要两个协议栈( 不包括s d p ) , 如图2 - 3 所示。a t 命令集用来控制移动电话或调制解调器以及传送其它业务数据 的协议栈。传真采用类似协议栈,但不使用p p p 及基于p p p 的其它网络协议,而 由应用软件利用r f c o m m 直接发送。 l m o d e mi h u - a t t 一”o r t v ”蛳t c a t t o n lill l a tc o m a n d s il p p p i iilil s d p i 蹿c 啪i l i l 2 c a p i 图2 - 3 拨号网络应用 2 3 2局域网访问协议( l a p ) 在此应用下,数据终端( d t ) 经局域网访问点( l p ) 无线接入局域网,接 入后d t 的操作与拨号上网应用d u n 操作一样;但不同之处在于拨号方式d u n 提供了通过网关设备( 如调制解调器) 访问广域网的方法,而l a p 则提供了通过 9 韭塞窑亟盔堂亟堂焦监塞堇爱协这拢 局域网接入点访问局域网的方法。其协议栈如图2 - 4 所示。 l 。州a c c e s s 蛳- t c a t t s ii l t c p ( u d p ) i p l ll i p p p ii s d p li r f c 洲i il l 2 : p 图2 - 4 局域网访问应用 2 3 3蓝牙耳机协议( h a n d s e t ) 使用该应用,用户打电话时可自由移动。通过无线连接,蓝牙耳机通常作为蜂 窝电话、无线电话或个人微机的音频输入输出设备。蓝牙耳机的协议栈如图2 5 所示,语音数据流不经过l 2 c a p 层而直接接入基带协议层。蓝牙耳机必须能收发 并处理a t 命令1 4 1 。 l h e 酣s e t “t 一“蛔;c a t t l a tc o m m a n d s l s d pa u d i o i r f c o i l l 姗 图2 - 5 蓝牙耳机应用 1 0 j b 赢窑煎盍堂亟堂僮盈塞堇爱协这搐 2 3 4 文件传输应用( t i p ) 文件传输应用提供两个终端之间的数据通信功能,可传输x l s 、p p t 、w a v 、j p g 和d o c 文件( 及其它文件) ,以及完整的文件夹或目录或多媒体数据流等并提供远 端文件夹浏览功能。文件传输协议栈如图2 - 6 所示。 i n et r ”s r ”咖t c a t t o n l o b e x i i s d p i r f c o 删 l l 图2 - 6 文件传输应用 2 3 5 同步应用协议( s y n c ) 同步用户应用提供设备到设备的个人资料管理( p 1 m :p e r s o n a li n f o r m a t i o n m a n a g e m e n t ) 的同步更新功能,其典型应用如电话簿、日历、通知和记录等,它 要求微机、蜂窝电话和个人数字助理( p d a ) 在传输和处理名片、日历及任务通 知时,使用通用的协议和格式。协议栈如图2 - 7 所示,其中同步应用应用代表红外 移动通信( k m c ) 客户机或服务器。 l s ”c h r m ,”t ,n p p ,c a t ,一s ii r 帅c i l o b e x l s d p l l r f c o i 删i l l l 2 c a p l 图2 - 7 同步应用 韭塞銮道盔堂亟堂僮监塞蓝复垃返兹 2 3 6蓝牙电话协议( c t p ) 蓝牙电话机有三种使用方法:接入公用电话网,作为普通电话使用;作为不计 费的内部电话使用;作为蜂窝移动电话使用。无线电话和内部电话使用相同的协 议栈;语音数据直接与基带协议连接。不经过l 2 0 址层,如图2 - 8 所示。 图2 - 8 蓝牙电话应用 韭立变通太堂亟堂焦i 金塞 怂邀的毖式也地述 3 1 通信协议 3 协议的形式化描述 一个通信子系统是一个复杂的软件,其早期的实现往往基于单个复杂的无结 构程序,带有许多互相作用的成分,造成产生的通信子系统难于测试和修改,不 同的通信子系统之间难于实现互连。 为解决这些问题,国际标准化组织( i s o ) 定义了一个开放系统互连参考模型 ( o s i 蹦) 。此模型采用了分层技术,将通信系统按功能分为若干层,每层执行一 种明确定义的功能,相邻上下层之间,上层通过接口调用下层的功能,下层为上 层提供服务,二者之间通过必要的接口进行交互1 5 】。如图3 - i 所示。每一层按照预 先定义的规则,通过数据和控制信息的交互完成设定的功能。这些数据和控制信 息就是协议数据单元( p d u ) ,而预先定义的规则即协议。 服务用户 通信用户 r1 通信用户 且胪服务且 _ 服务提供眷。 氆人争 图3 - 1 协议层模型 ( n + i ) 层 n 服务 n 层 ( n - 1 ) 服务 o s i r m 共分七层,分别包括: 面向应用的协议层:指终端用户应用程序相互通信所涉及的协议层,包括应 用层、表示层和业务层。这些功能主要在本地操作系统中实现,通过屏蔽网络细 节,给用户提供一个类似于本地服务的简单界面。 传输层:传输层为上层协议实体提供系统间数据透明传输的能力。 j e 塞銮通盍堂亟堂僮i 佥室 协邋的瑷式丝描述 面向网络的协议层:实现数据的传输,包括网络层、数据链路层和物理层。 o s i 跚仅仅是一个参考模型,实际的通信协议则根具体据需求定义出类似的 体系结构,各层与0 s i 蹦的各层之间有一种大致的对应关系。在蓝牙协议中,t c s 、 r f c o 姗和s d p 是面向应用的协议层,l 2 c a p 相当于传输层,而l m 、明和r f 是面 向网络的协议层。t t c i 则是l 2 c a p 与l m 之间的一个标准接口。 通信协议规定了通信信道的使用,主要包括以下几方面: 1 ) 数据通信的初始和终止; 2 ) 发送和接收的同步; 3 ) 传输错误的监测与校正; 4 ) 数据格式与编码。 协议最初都是非形式化的、片断的,不仅难以保证其完整性和一致性,而且 难于实现。要解决这一问题,必须采用形式化的协议描述方法。 3 2 有限状态机f s m 有限状态机( f s m :f i n i t es t a t em a c h i n e ) 经常被用来描述通信系统中协议 实体的行为。一个协议实体任何时候只能处于有限数目状态中的一个状态1 。在 有限状态机的接口处发生有效输入事件时,有限状态机从一种状态变迁到另一种 状态,在层接口处产生输出p d u ,同时可能伴有具体的内部动作,比如启动一个计 时器,对一个或多个有限状态机变量进行修改。 如图3 - 2 所示,接口处的有效输入事件包括: ( n + 1 ) 层 n 层 ( n 1 ) 层 图3 - 2 输入事件接口 1 4 韭塞銮塑盍堂亟堂焦:l 金塞掩这鳇形式氆撞述 1 ) 从上层接口收到一个服务原语: 2 ) 从下层接口收到一个服务原语: 3 ) 从与本地实体交互( 如计时器或管理子层) 的接口处收到一个服务原语。 所有的输入事件都假定是原子化的,一个协议实体在处理另一个事件之前要 执行与前一个事件相关的所有操作( 输出事件、具体动作、状态改变) ,从而保证 每个输入事件都以原子化的方式处理。每个接口都实现为两个队列:其中一个队 列用于实现对协议实体的输入,另一个用于输出,协议实体以规定的方式服务于 这些队列。 3 。2 1有限状态机的非形式化描述 有限状态机通常用事件一状态表来表示。如下表所示,表中的每一登录项指定 对于此输入事件和当前状态适当的输出事件( 连同任何具体的动作) 和有限状态 机的新状态”1 。有效的事件状态结合在表中才有登录项,所有其它的结合为空 登录项,是一种协议错误,应按预先规定的方法处理。 当前状 s os 1 s js n 态 输入事件、 i e 0 i e l i e i 0 踟j ) s k 1 l e m 表3 - i 有限状态机事件状态表 上表中,o e ( i ,j ) s k x 表示有限状态机处于状态s j 时如果输入事件i e i , 则产生输出事件o e ( i ,j ) ,执行具体动作x ,有限状态机跳转到状态s k 。 有限状态机的动作用状态转换图来表示就更直观。如图3 - 3 所示,用圆圈表 示状态,状态之间的连线表示状态的变迁,在连线上标出此次变迁的输入事件、 输出事件和相关的具体动作。 韭塞窑通盔堂亟堂焦监塞垃邀的毖式位撞述 l a o a x 图3 _ 3 状态转换图 使用事件一状态表和状态转换图,可以较全面而直观地描述和模拟通信系统协 议实体的动作,因而被广泛用于通信协议的设计与验证中。但是这些直观的工具 难于操作,下面给出有限状态机的形式化描述。 3 2 2有限状态机的形式化描述 结合通信系统的实际,有限状态机可以定义为一个五元组m = ( i ,0 ,s ,d , l ) ,其意义如下: i :输入集合,包括请求响应服务原语,协议用户发送的抽象服务原语( a s p ) 以及从对等层来的p d u ; 0 :输出集合,包括指示证实服务原语,送往协议用户的抽象服务原语 ( a s p ) 以及送往对等层的p d u ; s :有限非空的状态集合,包括有限状态机可能达到的所有状态。在接收 任何输入以前,有限状态机处于初始状态s s ;s 的个子集f s 包含了有限状 态机停止时处的所有可能状态,即终止状态; d :状态转换函数,定义为d :i s s ; l :输出函数,定义为l :i s 一0 。 有限状态机从初始状态s 开始运行,每一次状态变迁都对应其状态转换函数 和输出函数的次执行,最终,有限状态机停止于f 中的一个最终状态上。 3 2 3扩展的有限状态机 上述有限状态机应用起来尚有一些不足之处,如不能方便地处理变量和变量 值的传送,当系统稍稍复杂时,状态数目急剧上升,即产生状态爆炸问题。为解 决此问题,要对有限状态机进行必要的修改。首先引入变量的概念,变量有自己 1 6 j e 瘟变通太堂亟堂僮垃塞垃这笪形式盟趱述 的符号名,可以取允许的任何具体的值,但只有最后一次所赋的值才能被取出来。 第二个修改是使有限状态机能够传送变量的值,即输入和输出不仅仅是符号名, 还带有具体的参数值。第三个修改是引入一系列算术和逻辑符号来操作变量“”。 事实上,增加变量前后的有限状态机是等价的。任何一个新增的变量都可以 用一系列子状态来表示,每一个状态对应变量一个可能的值,每一次赋值都对应 一次状态的跳转。对有限状态机进行扩展,不仅可以更真实地仿真有限状态机动 作,而且能够减小状态数目和复杂度。 一个扩展的有限状态机可以定义为一个六元组m = ( i ,0 ,s ,a ,d ,l ) ,其 中i 、0 、s 的定义同上,a 是变量的集合,d 和l 在应用时要根据变量的值来产生 输出。 3 3协议描述方法 协议描述一般包括如下五个基本元素: 1 ) 协议提供的服务( s e r v i c e ) ; 2 ) 关于协议实现环境的假定( a s s u m p t i o n ) ; 3 ) 实现协议所需消息集合( v o c a b u l a r y ) ; 4 ) 每一条消息的编码规则( e n c o d i n g ) ; 5 ) 保证信息交互一致性的过程规则( p r o c e d u r er u l e s ) ; 国际标准化组织如i s o 和c c i t t 开发了一些形式化描述方法,目前较流行的 有如下三种: 1 ) s d l 1 9 7 6 年c c i t t i t u 推荐的规范描述语言s d l ,是一种基于扩展有限状 态机和抽象数据类型的混合技术。最早定义在蓝皮书z 1 0 0 建议中,在1 9 9 2 年和1 9 9 6 年分别有所增补。 2 ) e s t e l l e e s t e l l e 由e s t l ( e x t e n d e ds t a t e t r a n s i t i o nl a n g u a g e ,扩展的状 态转换语言) 而得名,它也是基于扩展的有限状态机模型,但是使用p a s c a l 语法和数据类型。 3 ) l ( ) t o s ( l a n g u a g ef o rt e m p o r a lo r d e r i n gs p e e i f i e a t i o n ) 与s d l 、e s t e l l e 不同的,l o t o s 的行为描述不是面向有限状态机的, 而是基于代数方法:另外,它提供了以符号转换系统定义的操作语义,从 而保证了描述不存在二义性,也便于分析和一致性测试理论的研究。 在开发过程中,我采用s d l 描述协议是出于以下几点考虑: 1 ) 扩展有限状态机 s d l 是基于扩展有限状态机的概念来描述协议实体,其描述的基本单元 是进程。s d l 进程是一个扩展有限状态机,它具有若干状态,在每一状态下 发送、接收和处理进程消息,并具有确定的状态行为。消息是参数化的事 件。 2 ) s d l 具有文本和图形两种文法 图形文法是以类似流程图的方式直观地描述进程内状态的变迁及进程 间的消息交互,而数据的定义只能用文本文法来描述n 1 1 。当然,图形表示 也可以用文本文法来描述。这样,协议开发人员可以更快地掌握s d l 。 3 ) 抽象数据类型 s d l 与e s t e l l e 之间的一个不同是数据类型定义。s d l 采用抽象数据类 型,而e s t e l l e 则是基于p a s c a l 的。因此,s d l 中数据类型的定义与实现 无关,只注重其类型特征的表达。预定义的和用户自定义的数据类型亦是 如此。这有助于协议实现的可移植性。 s d l 由于方便实用,已经成为工业标准的形式化描述语言。下面详细讨论s d l 。 3 4 规范描述语言( s d l ) 3 4 1s d l 简介 s d l 是一种用来描述分布式并行信息处理系统的形式化技术,主要应用于o s i 体系中的通信协议和服务。 s d l 描述不仅可以消除协议非形式化描述的二义性,而且具有可验证性,描述 完成后可据此生成测试用例,自动生成协议实现的代码。 s d l 由i t u t 在1 9 7 6 年制订,最初的版本面向串行系统,很少涉及到并行, 而且基本上是非形式化的,其后每四年推出一个新的版本。1 9 8 4 年版引入了数据 1 8 j e 塞銮通盘堂亟堂僮途窑 垃这鳆形式化趟述 和数据结构;1 9 8 8 年s d l 开始真正形式化,成为一项成熟的形式化描述技术;1 9 9 2 年,由于面向对象概念的引入,s d l 又增加了一些新的特性,如数据类型等。 s d l 描述的对象都处在特定的环境当中。任何系统之外的因素都看作是环境的 一部分。系统与环境之间通过信号进行通信,如下图3 4 : e n v 图3 - 4s o l 系统与环境 系统的行为由其中包含的所有进程实例( p r o c e s si n s t a n c e ) 来体现,进程 实例之间可以互相通信,也可以与环境交互“”。各进程实例具有同样特性,没有 等级关系,即使一个进程实例可以创建另一个,但是创建后,二者就并行存在。 每个进程实例都有自己的存储空间,其他进程实例不能访问,除非某些变量定义 为外部可见的。变量的值也可以通过进程实例问互发信号来改变。 一个进程实例就对应一个扩展的有限状态机e f s m ,e f s m 间通过交换携带参数 信息的信号而相互影响。环境也可以看作是一个进程,与系统通过信号通信。每 一个进程实例有一个无界的先进先出缓冲,即接收信号的输入队列。信号存储、 取出和处理的顺序与其到达的顺序一致。在任一时刻,一个进程实例或者处于等 待状态,或者正在进行状态间的转换。状态的转换由前一状态和输入信号决定。 3 4 2s d l 描述方法 实际系统往往比较复杂,形式化描述时必须分级。将系统分级可以隐藏细节 信息和控制模块大小,并可以重用已有代码。如图3 - 5 所示,用s d l 描述系统分 系统、模块、进程和过程四个层次“”,下面分别讲述: 1 9 a e 摩变通盔堂亟堂僮论塞迹这数丝式丝撞述 图3 - 5 s i z 系统结构概貌 1 ) 系统( s y s t e m ) s d l 描述由系统级开始,如图3 - 6 所示。系统由模块构成,每一个模块

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论