已阅读5页,还剩58页未读, 继续免费阅读
(计算机软件与理论专业论文)蓝牙短信访问规范map在windows+ce上的实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 摘要:蓝牙( b l u e t o o t h ) 是一种短距离无线通信技术,利用蓝牙可以有效地简化 移动设备之间的通信。作为一项新兴的技术,蓝牙以其强有力的技术背景和良好 的市场预期,逐渐被业界所接受。 目前在个人数字助理( p n 吣上最广泛的蓝牙应用就是打免提电话,用户可以避 免直接操作手机来接听电话。短信访问规范m a p 是一个比较新的规范,用户可以 用它来访阿手机上的短信,并进行与短信相关的操作,这个规范更加方便了用户 操作手机,即只要有以上两项功能,用户就可以用p d a 进行电话的两种基本操作: 打电话和接收短信。继打免提电话之后,这项功能将成为下一个广泛的应用。 本文首先介绍了蓝牙技术以及嵌入式操作系统的基本原理,然后详细研究了 蓝牙系统的核心协议栈的组成模块:服务发现协议,逻辑链路与适配协议,串口 仿真协议,主机控制接口,简要介绍了短信访问规范m a p 的底层支持框架:o b e x 协议和g o e p 规范,并对已有的这些协议的实现代码进行了分析,掌握了有限状 态机设计模型。在前述协议栈的基础上,本文详绍研究了短信访问规范m a p 的全 部内容,根据有限状态机模型,在w i n d o w sc e 平台上设计并开发了短信访问规范 m a p 应用,并按照规范的要求进行了测试。目前这个软件已经嵌入到公司开发的 嵌入式蓝牙应用软件中,得到了实际应用。最后对本文进行了总结,提出了短信 访问规范m a p 的下一步工作。 关键词:蓝牙技术;核心协议栈;短信访问规范m a p 分类号;t p 3 1 1 1 a b s t ra c t a b s l l 。r a c l j t h eb l u e t o o t ht e c h n o l o g yi sak i n do fo p e nw i r e l e s ss t a n d a r d i ti sw i d e l yu s e di nt h e p d a 1 1 地m o s tp o p u l a rp r o f i l ei nt h ep d ai st h eh a n d s f r e ep r o f i l e w i t hi tt h eu s e r sc o u l d a n s w e rt h ep h o n ea n dc a l ls o m e b o d yu s i n gt h ep d a t h em e s s a g ea c c e s sp r o f i l ei sa n e wp r o f d e t h eu s e r sc o u l dg e tt h em e s s a g e sf r o mt h ep h o n ea n dd os o m eo p e r a t i o n s w i t ht h em e s s a g e s t h i sp a p e ri n t r o d u c e st h eb a c k g r o u n do fb l u e t o o t ha n dt h ee m b e d d e do p e r a t i n g s y s t e mf i r s t l y t h e nis t u d i e da n da n a l y z e dt h eb l u e t o o t hc o l es t a c k t h eb l u e t o o t hc o r e s t a c ki n c l u d e sf o u rm o d e l s :s d p , l 2 c a p , r f c o m ma n dh c i t h e0 b e xa n dg o e p w h i c hi st h eb r i d g eb e t w e e nt h em e s s a g ea c c e s sp r o f i l e ( m a p ) a n dt h eb l u e t o o t hs t a c k a r ea l s os t u d i e da n da n a l y z e d t h r o u g hs t u d i e dt h ec o d eo fb l u e t o o t hs t a c kw h i c ht h e a b o v em e n t i o n e d ,il e a r n e dt h ef l r d t es t a t em a c h i n em o d e l t h r o u g ha n a l y s i sa n d r e s e a r c ho fb l u e t o o t hs t a c k , ih a v er e a l i z e dt h em e s s a g ea c c e s sp r o f i l e ( m a p ) a n dt e s t i tw i t ht h ep r o f i l e k e y w o r d s :b l u e t o o t h , b l u e t o o t hs t a c k :s d p ;g o e p ;m a p c l a s s n o :口3 1 1 1 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 导师 签字日期:卫司年恤月弋日 签字日 独创性声明 本人声明所里交的学位论文是本人在导师指导下进行的研究工作和取得的研 究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意 一躲瓠蝴瓤b 7 讣月f 7 日 致谢 本论文的工作是在我的导师李伟生教授的悉心指导下完成的,李伟生教授严 谨的治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢三年来 李伟生老师对我的关心和指导。 彭军同学和我分别负责同一个项目的不同模块,在完成论文所涉及的工作及 撰写论文期间,彭军同学对我论文中的工作给予了热情帮助,在此向他表达我的 感激之情。 感谢所有一起开发项目的其他工作人员和研究生的帮助:刘剑锋、王明星、 李吴、施晋,他们的无私帮助与悉心指导直接促成了本文的完成。 我还要感谢我的同学:冯奇,郭煜,刘超,谢令,感谢他们对我的帮助和支 持。 感谢我的父母,他们的理解和支持使我能够在学校专心完成我的学业。 1 1 课题的背景与意义 1 绪论 蓝牙( b l u e t o o t h ) 技术是一种短距离无线通信技术,利用蓝牙技术,能够有 效地简化掌上电脑、笔记本电脑和手机等移动通信终端设备之间的通信,也能够 成功地简化以上这些设备与i n t e r a c t 之间的通信,从而使这些现代通信设备与 i n t e r n e t 之间的数据传输变得更加迅速高效,为无线通信拓宽道路。 现在在个人数字助理p d a 上实现的蓝牙系统中,应用最广泛的就是打免提电 话h a n d s f r e e 。使用这个规范时,用户首先将p d a 和手机进行蓝牙连接,当用户想 打电话或者接电话时,直接在p d a 上进行操作即可。短信访问规范m a p 是一个 比较新的规范,用户可以用它来访问手机上的短信,并进行相关的操作,可以预 期,这个规范更加方便了用户操作手机,即只要有这两项功能,用户就可以用p d a 进行电话的两种基本操作:打电话和发短信。这项功能将成为继h a n d s f r e e 规范之 后一个最广泛的应用,预期会有很大市场,所以许多厂商已经开始支持这一新的 功能,相信随着产品的增多,这项功能必将越来越流行。 目前在手机领域,国外诺基亚公司实现了短信访问规范m a p ,并开发了提供 短信访问规范m a p 服务的蓝牙手机产品。在手机领域之外,国内外大多数公司都 仅实现了蓝牙的核心协议栈和基于蓝牙核心协议栈的一些应用模型,在w i n d o w s c e 平台上还没有短信访问规范m a p 的商用实现。 1 2 本文主要工作 本文所要完成的主要任务就是根据公司实现蓝牙规范所用到的有限状态机模 型,在w m d o w sc e 操作系统上,进行短信访问规范m a p 的设计与实现,并进行 测试。 本文首先介绍了蓝牙技术以及嵌入式操作系统的基本原理,然后详细研究了 蓝牙系统的核心协议栈的四大组成模块:服务发现协议s d p 模块,逻辑链路与适 配协议l 2 c a p 模块,串口仿真协议r f c o m m 模块,主机控制接口h c i 模块,简 要介绍了m a p 的底层支持框架:o b e x 协议和g o e p 规范,并对已有的这些协议 的实现代码进行了分析,掌握了有限状态机设计模型。在前几章实现的协议栈的 基础上,本文详细研究了短信访问规范m a p 的全部内容,根据有限状态机模型, 在w i n d o w sc e 上设计并开发了短信访问规范m a p 应用,并按照规范的要求进行 了测试。目前这个软件已经嵌入到公司开发的嵌入式蓝牙应用软件中,得到了实 翰;应用。最后,根据本文的不足之处,提出了该规范的进一步研究的方向。 1 3 本文组织结构 第一章介绍了课题的研究背景及意义,本文的主要工作和组织结构。 第二章简述了蓝牙技术的原理与嵌入式操作系统的原理。 第三章详细研究了嵌入式系统下的蓝牙软件模型,包括蓝牙的四个核心协议: 服务发现协议s d p ,逻辑链路与适配协议l 2 0 盱,串口仿真协议r f c o m m ,主 机控制接口h c i 。并简要介绍了0 b e x 协议和g o e p 规范。 第四章详细分析了短信访问规范m a p 的开发规范,为按照规范以及实习公司 的代码设计原理开发短信访问规范m a p 做了重要的铺垫。 第五章结合底层所要用到的协议和有限状态机模型,基于w i n d o w si c e 平台, 对短信访问规范进行了纯c 语言的代码实现,嵌入到实习公司的蓝牙应用软件中 去,并进行了界面开发和测试。 第六章是本文的总结,不足之处及进一步的工作方向。 2 2 蓝牙技术原理与嵌入式操作系统 蓝牙( b l u e t o o t h ) 技术是一种短距离无线通信技术,利用蓝牙技术,能够有 效地简化掌上电脑、笔记本电脑和手机等移动通信终端设备之间的通信,也能够 成功地简化以上这些设备与i n t e r a c t 之间的通信,从而使这些现代通信设备与因特 网之间的数据传输变得更加迅速高效,为无线通信拓宽道路。说得通俗一点,就 是蓝牙技术使得现代一些轻易携带的移动通信设备和电脑设备,不必借助电缆就 能连网,其实际应用范围还可以拓展到各种家电产品、消费电子产品和汽车等信 息家电,组成一个巨大的无线通信网络。本章首先对蓝牙系统的原理做了初步的 介绍。蓝牙技术最广泛的应用是在个人数字助理p d a ,手机等设备上,由于本文 所开发的m a p 规范是基于w i n d o wc e 操作系统,所以本章也对嵌入式系统做了 介绍。 2 1 蓝牙技术原理 2 1 1硬件工作原理 本节依次介绍蓝牙规范中的一些重要概念和一些常用名词。 1 射频 蓝牙规定的天线功率以0 d b m ( 1 m w ) 为基准,最大可达到2 0 d b m ( 1 0 0 m w ) , 为了能达到在全球均能运作的目标,其工作频率符合大多数国家的i s m 频段标准 即2 4 g h z 一称为工业、科学、医疗( i s m ) 的频带。i s m 频带是对所有无线电系统 都开放的频带,因此使用其中的任一频段都会遇到不可预测的干扰。为此,蓝牙 特别设计了快速确认和跳频方案以确保链路稳定。蓝牙通过跳频方式将能量扩散 到起始于2 4 0 2 g h z ,终止予2 4 0 8 g h z 的i s m 频段中,并将其划分为7 9 个跳频 信道,每个信道1 醐。 2 基带 当两个蓝牙设备成功建链后,便形成了一个p i e o n e , t 。蓝牙给每个p i c o n e t 提供 特定的跳转模式,因此它允许大量的p i c o n c t 同时存在。蓝牙既支持电路交换也支 持分组交换。蓝牙基带帧保留一部分时隙用于同步分组( 对应于电路交换) ,每个 分组在不同的跳频中发射,一个分组通常占用1 个时隙,最多能扩展到5 个时隙。 蓝牙支持最大可达3 个同步语音信道,同时也支持非同步数据信道,或者一个信 道同时支持同步语音和非同步数据。蓝牙采用时分双工( t d d ) 方案来实现全双 工传输,因此蓝牙的一个基带帧包括两个包,首先是发送包,然后是接收包。每 3 个包可由1 个、3 个或5 个时隙组成,每个时隙6 2 5 l ls 。 3 链路管理与控制 蓝牙设备互连形成p i c o n e t ,每个p i c o n e t 包括一个且只有一个主控设备和最多 7 个从属设备。任何一个蓝牙设备既可以成为主控设备又可成为从属设备。角色的 分配是在p i c o n e t 形成时临时确定的。一般而言,发出连接指令的设备将成为主控 设备,但是蓝牙系统的”主从转换”功能可使角色改变。 为了形成p i c o n e t ,蓝牙设备需要知道两个参数,即它希望连接到的设备的跳 转模式及其相应相位。每个蓝牙设备都有一个唯一的用于标识自身跳转模式的全 球标识符( g l o b a li d ) 。在形成p i c o n e t 时,主控设备先和其他设备分享自己的i d 号,再向那些设备提供自己的时钟偏移信息,这些信息由所谓的跳频包( f h s ) 发 送。 通常未连接进p i c o n e t 的设备处于旁观( s t a n d b y ) 模式。此时这些设备监听其 他设备的搜询( i n q u i r y ) 消息或者构建p i c o n e t 的请求( p a g e ) 。当某个设备发出查 询命令时,接收设备将用它们的f h s 包发送自己的l d 号和时钟偏移给询问者,以 便使其形成一个完整的覆盖范围内的设备情况表。为了形成p i c o n e t ,主控蓝牙设 备会用所需设备的i d 号寻呼这个设备( 此i d 号是在先前的i n q u 时中得到的) 。 被呼设备将用自己的m 号回应,然后主控设备会再发一个f h s 包( 包括主控设备 的i d 号和时钟偏移) 给被呼设备,随后被呼设备便加入了主控设备的p i c o n e t 中。 一旦某个设备加入p i c o n e t 中,它就被分配给一个3 比特的主动成员地址 ( a m a ) ,其他成员可以用其访问该设备。停等的设备以一定间隔聆听外界发给它 们的指令。这就要求主控设备有能力给所有的从属设备( 不论是停等的还是活动 的) 广播信息。处于s t a n d b y 状态的设备也监听其它设备发出的i n q u i r y 或p a g e 指 令,每隔1 - 2 5 s 它们就做一次这样的扫描。 蓝牙采用三种纠错方案:1 3 前向纠错( f e c ) 、2 3 前向纠错和自动重发( a r q ) 。 前向纠错的目的是减少重发的可能性,但同时也增加了额外开销。然而在一个合 理的无错误率环境中,多余的头标会减少输出,故分组定义的本身也保持灵活的 方式,因此,在软件中可定义是否采用f e c 。一般而言,在信道的噪声干扰比较 大时蓝牙系统会使用前向纠错方案以保证通信质量:对于s c o 链路,使用1 3 前 向纠错:对于a c l 链路,使用2 3 前向纠错。在无编号的自动请求重发方案中, 一个时隙传送的数据必须在下一个时隙得到收到的确认。只有数据在收端通过了 报头错误检测和循环冗余校验( c r c ) 后认为无错时才向发端发回确认消息,否 则返回一个错误消息。 4 2 1 2系统软件组成 1 蓝牙协议栈概述 整个蓝牙协议体系结构可分为底层硬件模块、中间协议层( 软件模块) 和高 端应用层三大部分。图1 1 说明了蓝牙的核心协议体系结构。链路管理层( l m ) 、 基带层( b b ) 和射频层( r f ) 属于蓝牙的硬件模块。r f 层通过2 4 g h z 无需授权 的i s m 频段的微波,实现数据位流的过滤和传输,它主要定义了蓝牙收发器在此 频带正常工作所满足的要求。b b 层负责跳频和蓝牙数据及信息帧的传输。l m 层 负责连接的建立和拆除以及链路的安全和控制,它们为上层软件模块提供了不同 的访问入口,但是两个模块接口之间的消息和数据传递必须通过蓝牙主机控制器 接口( h a ) 的解释才能进行也就是说,h c i 是蓝牙办议中软硬件之间的接口, 它提供了一个调用下层b b 、l m 、状态和控制寄存器等硬件的统一命令接口。h c i 协议以上的协议软件实体运行在主机上,而h c i 以下的功能由蓝牙设备来完成, 二者之间通过传输层进行交互。 中间协议层包括逻辑链路控制和适配协议( l 2 c a p ) 、服务发现协议( s d p ) 、 串口仿真协议( r f c o m m ) 和电话通信协议( 代s ) 。l 2 c a p 完成数据拆装、服 务质量控制和协议复用等功能,是其他上层协议实现的基础,因此也是蓝牙协议 栈的核心成分。s d p 为上层应用程序提供一种机制来发现网络中可用的服务及其 特性。r f c o m m 依据e t s i 标准t s 0 7 1 0 在l 2 c a p 上仿真9 针r s 2 3 2 串口的功 能。t c s 提供蓝牙设备间话音和数据的呼叫控制信令。 在这些协议中,数据的传输和控制信令的传递分别构成了数据流和控制流。 数据流是将高层应用的数据发送给硬件,或从硬件将数据上传给高层应用; 2 蓝牙数据流 蓝牙可以传输同步和异步数据。同步数据一般直接由硬件接出如输出给耳机。 异步数据流则要通过软件层。 蓝牙协议栈为高层应用提供透明信道,完成与远端高层应用的透明数据交换。 蓝牙异步数据的分层走向为: 发送数据:a p p i u f c o m m l 2 c a p h c i 硬件; 接收数据:硬件- h a - 心c a p - r f c o m m 一 a p p 。 3 蓝牙控制流 a p p 通过打开、关闭、读和写等命令操作仿真串口。 s a p p 】i c 撕o n pt c sr f c o m m 毒善 l2cap 麟 图1 1 蓝牙协议体系结构 f i g u r e1 1 b l u e t o o t hp r o t o c o ls t a c k l 2 c a p 层基于逻辑信道( l c ,l o g i cc h a n n e l ) 进行的包传输,每个信道的 每个端点都可以用一个信道标识符( c m ,c h a n n e li d e n t i f i e r ) 来表示。每个逻辑 信道上接收到的l 2 c a p 包都会传输到相应的上层协议。 也。谨接到上层协议s d p 、t c s 或r f c o m m 的建链请求后,通过h c i 向 远端进行建链请求,参数协商等l c 建链操作。 通过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 s _ e v e n t ,表示命令参数的正确与否,完成后再返回一个命令完成事 件。 4 理解p r o f d e 在蓝牙规范中定义了一些高层应用框架( p r o f i l e s ) 。其中较典型的有免提电话 o 埘s f i e e ) 、拨号网络( d i a l 印n e t w o r k i n g ) 、耳机但e a a s e o 、局域网访问皿a n a c c e s s ) 、文件传输( f i l et r a n s f e r ) 等,分别对应一种应用模式。蓝牙系统软件组 成中,最高层的各种应用程序可以通过各自对应的p r o f i l e 实现无线通信。也就是 说,每一个高层应用程序加上相应的竖向的协议栈即为一种p r o f i l e ,即应用模式。 2 2 嵌入式操作系统 2 2 1嵌入式操作系统简介 6 嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系 统( 包括硬、软件系统) 极为重要的组成部分,通常包括与硬件相关的底层驱动软件、 系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器。与通用操作系 统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化 以及应用的专用性等方面具有较为突出的特点。 一般情况下,嵌入式操作系统可以分为两类,类是面向控制、通信等领域 的实时操作系统,如w m d r i v e r 公司的v x w o r k s 、i s i 的p s o s 、q n x 系统软件公 司的q n x 、a t i 的n u c l e u s 等;另一类是面向消费电子产品的非实时操作系统, 这类产品包括个人数字助理( p d a ) 、移动电话、机顶盒、电子书、w e b p h o n e 等。 目前r t l i n u x 由于是免费软件的特点越来越被大家重视。 商用嵌入式操作系统占用系统资源少,系统内核小于2 0 k b y t 伪,内存开销只要 几k b y t e s 。同时,嵌入式系统一般只面对单一服务程序。商用嵌入式操作系统也是 实时操作系统,他们都有支持实时、抢占、多进程等要求。嵌入式系统一般主要 部分由a n s ic 写成。从而保证了可移植性。嵌入式系统使用也很方便。用户可以 把嵌入式操作系统编译成一个c 的库文件,与用户的代码连接在一起,下载到目 标机的r a m 或r o m 中。 嵌入式操作系统伴随着嵌入式系统的发展经历了四个比较明显的阶段:第一 阶段:无操作系统的嵌入算法阶段。应用于一些专业性极强的工业控制系统中, 通过汇编语言编程对系统进行直接控制,运行结束后清除内存。系统结构和功能 都相对单一,处理效率较低,存储容量较小,几乎没有用户接口。第二阶段:以 嵌入式c p u 为基础、简单操作系统为核心的嵌入式系统。系统开销小,效率高; 一般配备系统仿真器,操作系统具有一定的兼容性和扩展性;应用软件较专业, 用户界面不够友好;系统主要用来控制系统负载以及监控应用程序运行。第三阶 段:通用的嵌入式实时操作系统阶段,以嵌入式操作系统为核心的嵌入式系统。 能运行于各种类型的微处理器上,兼容性好;内核小、效率高,具有高度的模块 化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以 及用户界面等功能;具有大量的应用程序接口( a p i ) ;嵌入式应用软件丰富。第 四阶段:以基于i n t e m e t 为标志的嵌入式系统。这是一个正在迅速发展的阶段。目 前大多数嵌入式系统还孤立于i n t e r n e t 之外,但随着i n t e r n e t 的发展以及i n t e m e t 技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与i n t e r n e t 的结合将 代表着嵌入式技术的真正未来。 7 2 2 2嵌入式操作系统原理 嵌入式系统操作系统重要概念及其原理有以下几个方面: 1 抢占( p r 咖p t i v e ) :抢占是指当系统处于核心态运行时,允许任务的重新调 度。抢占提高了应用对异步事件的响应性能力。 2 优先级驱动( p r i o r i t y - d r i v e n ) :优先级驱动是指多任务系统中,当前运行任务总 是具有最高优先级的就绪任务 3 优先级反转( p r i o r i t yi n v e r s i o n ) :优先级反转是指一个任务等待比它优先级低 的任务释放资源而被阻塞,如果这时有中等优先级的就绪任务,阻塞会进一步加 剧。优先级继承技术可用来解决优先级反转闯题。 4 优先级继承( p r i o r i t yi n h e r i t a n c e ) :优先级继承可用来解决优先级反转问题。当 优先级反转发生时,优先级较低的任务被暂时地提高它的优先级,使得该任务能 尽快执行,释放出优先级较高的任务所需要的资源。 5 实时执行体限e a l t i m ee x e c u t i v e ) :实时执行程序包括一套支持实时系统所必 需的机制。如多任务支持,c p u 调度,通信和存储分配。在嵌入式应用中,这一 套机制被称为实时执行体或实时操作系统内核。o s 就是一个实时执行体。编程者 以实时执行体为基础来构造自己应用。 6 重调度过程( r e s c h e d u l i n gp r o c e d u r e ) :重调度过程是判定任务优先级和执行 状态的过程。o s 的系统调用引起任务状态变化时,就会执行这个过程。如果当前 运行任务不是最高优先级的就绪任务,重调度过程就会发生。 7 调度延j l ( s c h e d u l i n gl a t e n c y ) :调度延迟是指当一个事件引起更高优先级的 任务就绪到这个任务开始运行之间的时间。即一个任务被触发后,由就绪到运行 的时间。 8 可剪裁的体系结构( s e a l a b l ea r c h i t e c t u r e ) :可剪裁的体系结构是指一个软件系 统能够支持多种应用而无需在接口上做很大的变动。因此,可以开发出成本低、品 种多的产品。 在个完整的嵌入式系统中,嵌入式操作系统介于底层硬件和上层应用程序 之间,它是整个系统中不可缺少的重要组成部分。嵌入式操作系统与传统操作系 统的基本功能是一致的。但嵌入式操作系统也有其独特的需求和技术特点,主要 区别是: 1 许多嵌入式系统应用有实时性要求,因此多数嵌入式操作系统都具备实时性 的技术指标,能保障系统的实时响应速度。 2 为适应嵌入式系统计算资源的限制,嵌入式操作系统核心部分的体积必须尽 可能的小。 8 3 为了适应各种应用需求的变化,嵌入式操作系统还应该具有可裁减性、可伸 缩性、易移植性的特点,让开发人员可以根据需要对嵌入式操作系统进行剪裁和 移植。 4 嵌入式操作系统往往是长期连续运行的,因此要求要有很高的可靠性,不能 “死机”。 5 针对特定的应用需求,嵌入式操作系统往往还要对某些模块做特别的性能优 化和功能增强。 嵌入式系统工作在实时状态,所以,其开发环境也有其独到之处。一般来说, 嵌入式系统的开发工具包括两部分,分别工作在两台机器主机和目标机上。最终 产品的原型就是目标机,它的特点是资源有限,不能支持代码的开发和调试。主 机则拥有资源优势,如内存、网络、块存储设备等等。所以,一般的开发模型都 建立在主机目标机系统上,主机上运行d e b u g 工具,并通过某种通道与目标机通 迅。 上述开发模式有时也可以简化掉目标机,在主机上运行一个目标机嵌入式操 作系统的模拟器,从而,开发人员可以在不使用目标机的情况下,调试最终运行 在目标机上的程序。有的芯片厂商直接在芯片里加入仿真器功能,一般又被称作 后台d e b u g 模式( b d m - b a c k g r o u n dd e b u g m o d e ) 。这样,用户可以直接通过处理 器预留的b d m 管脚完成d e b u g 功能,如读寄存器等。这种方式的好处很多,首 先是很便宜,其次由于管脚是由生产厂商设定的,这些b d m 管脚能反映出c p u 的工作状态。 2 2 3w i n d o w s c e 操作系统概述 w i n d o w sc e 是一种紧凑、高效、可倬缩的操作系统,主要面向各种嵌入式系 统和产品它所具有的多线程、多任务、完全抢占式的特点是专为各种具有很严 格资源限制的硬件系统所设计的。它包括四个主要模块,它们提供了操作系统最 关键的特征,这四个主要模块是:内核模块、对象存储模块、g w e s ( g r a p h i c s , w m d o w i n g , a n de v e n t ss u b s y s t e m ) 模块和通信模块。w i n d o w sc e 同时 包括附加模块和可选模块,这些模块的任务包括支持管理可安装设备驱动程序和 支持组件对象模型等。下面描述了这些模块是如何被组合到w i n d o w sc e 操作系统 的总体结构中的。 内核( k e r n e l ) 模块:内核是操作系统的核心,由c o t e d l l 模块表示。它提供 了所有设备都要用到的基本操作系统功能,包括提供用于管理线程、内存和资源 的系统服务。 9 对象存储( o b j c c ts t o r e ) 模块:f f l e s y s 模块支持w m d o w sc e 对象存储a p i 功能。对象存储机制提供了三种方法来保存用户数据和应用程序数据,一种使用 文件( 包含应用程序和数据文件) ,另一种使用注册( 存储系统配置和其它应用程 序必须快速存取的信息) ,最后一种是使用数据库( 提供结构化存储) 。, 图形、窑口和事件子系统( g w e s ) 模块:g w e s 是用户、应用程序和操作系 统之间的图形用户界面。它支持显示文本和图像、接收用户输入所需的图形和窗 口功能。 通信( c o m m u n i c a t i o n s ) 模块:通信组件提供了串行输入输出支持、远程访 问服务、t c p i p 和其它w m d o w sc e 无线通信服务。 l o 3 嵌入式环境下的蓝牙核心协议栈 本章详细研究了蓝牙系统的核心协议栈的四大组成模块:主机控制接口h c i 模块,服务发现协议s d p 模块,逻辑链路与适配协议l 2 c a p 模块,串口仿真协议 r f c o m m 模块,并简要介绍了m a p 的底层支持框架:o b e x 协议和g o e p 规范, 对已有的这些协议的实现代码进行了分析,掌握了有限状态机设计模型,为短信 访问规范m a p 的设计与实现做了重要的铺垫。 3 1 蓝牙核心协议栈 3 1 1主机控制接口( h c i ) h c i 模块提供了操作基带控制器和链路管理器的统一的接口,也提供了访问 硬件状态寄存器和控制寄存器的方法。h c i 接收来自上层如l 2 c a p ,t c s 和应用 程序的命令,然后发送h c i 命令到底层并接受来自底层的h c i 事件和数据,告知 上层具体的事件和状态。 h c i 模块的实现分为如下几个子模块:h c i 命令模块,h c i 事件模块,h c i 数据模块,输出函数模块,以及h c l 传输层接口模块。 1 h c i 命令模块 h c i 命令模块实现了蓝牙协议规范中1 0 0 多个命令,这些命令可分为两类: 操作本地设备的命令和操作远程设备的命令。操作远程设备的命令需要先返回一 个h c ic o m m a n ds ”皿y se v e n t 用来表明命令已经准备好执行,而操作本 地设备的命令只需要返回h c i _ c o m m a n d _ c o m p l e t e _ e v e n t 即可。所有的 h c i 命令具有相同的特征,它们使用一张很大的表,根据索引读取命令参数,这 样h c i 命令实现起来很简单 2 h a 事件模块 接收到底层发来的事件后,h c i 事件模块调用d e a l w i t h e v 0 函数,d e a l w i t h e v 0 使用e v _ m a s k _ m a p 表找出事件处理的函数入口点每个事件函数都会检查事件掩 码和分组长度,进行分组解码等操作。 3 h c i 数据模块 h c i 数据模块实现了a c l 和s c o 数据分组的传输,h c i 命令的发送和h c i 事件的接收。 数据模块的一个重要功能是流控( f l o wc o n t r 0 1 ) 。当上层用很多数据分组要发 送并且主机控制器忙时,主机将存储这些分组并试图稍后再发。发送数据的流控 1 1 的实现策略是: ( 1 ) 主机控制器对发送分组计数; ( 2 ) 发送数据分组直到主机控制器分组缓冲区满为止: ( 3 ) 一旦数据发送完成,函数终止; ( 4 ) 如果某些分组没有发送出去,该分组添加到未发送分组列表中。 只有主机的数据分组缓冲区可用时,存储在主机端的分组才能发送,主机端 可以周期性的发送h c i _ n u m b e ro fc o m p l e t e d _ p a c k e t s 事件来告知上层有多少分 组已经发送并释放。该事件发生后将执行如下过程: ( 1 ) 对主机控制器已经释放的分组计数; ( 2 ) 发送存储的分组到传输层并计数减1 ; ( 3 ) 如果没有存储的数据分组,函数返回; ( 4 ) 如果计数数小于等于零,函数返回; 接收到a c l 数据分组后,主机控制器检查是上层应用程序发来的第一个分组 还是后继分组,如果是第一个分组,将数据存储在主机缓冲区中,直到收到完整 的分组后再发往上层应用程序。 数据模块的函数如表3 1 所示: 表3 i 数据模块函数表 t a b l e3 1d a t am o d u l ef u n c t i o n s 函数原型函数描述 i n ts e n d c o m m a n d t o i n t ( s t r u c t 发送h c i 命令到传输层。 b u f f s t m + b u 0 ; i n ts e n d a c l d a t a t o i n t ( w o r d 发送a c l 数据剑传输层。 c o n n _ h d l ,s t r u c tb u f f s t r a + b u o ; i n ts e n d s c o d a t a t o i n t ( w o r d 发送s c o 数据到传输层。 c o n n _ h d l , s t r u c tb u f f s t r u + b u 0 ; i n td e a l w i t h e v ( i n te vn o , 处理h c l 传输层报上来的 s t r n c tb u f f s t r u b u o ; h c i 事件。 i n tr e v a e l d a t a ( w o r dc o n n _ m l , 处理h c i 传输层报上来的 s t r u e tb u f f s t r u b e 0 ; a c l 数据。 i n tr “s c o d a l a ( w o r d c o n n _ h m ,处理h c i 传输层报上来的 s t r u c tb u f f s t r u + b u t ) ;s c o 数据 当发送命令和数据时,需要调用输出函数模块。输出函数如表3 2 所示: 表3 2 输出函数表 t a b l e3 2 o u t p u tf u n c t i o n s 函数原型函数描述 i mh d c 啪c c o ( u c h a r l 2 c a p 调用该函数请求建 。b d _ a d d r ) ; 立a c l 链接。 i n th c i q o s ( u c h a r 。b da d d r , l 2 c a p 调用该函数与远程 s t m c tq o s t y p e q o s ) ; 设备协商a c l 链接的q o s 。 i n th c i c o n n c c t r s p ( u c h a r l 2 c a p 调用该函数响应底 + b d a d d r , i n tr e s p ) ; 层发来的a c l 链接请求。 i mh c i i ) i s c o n n e c t ( u c h a r l 2 c a p 调用该函数请求断 b d _ a d d r ) ; 链。 i n th c i t r a n s d a t a ( s t r e e tl 2 c a p 调用该函数传输 d a t a t r a n s s t m d a t a ) ; a c l 数据 回调函数告知1 2 c a p ,t c s 以及上层应用程序某一事件发生或者有数据报上 来。具体函数如表3 3 : 表3 3 回调函数表 t a b l e3 3c a l l b a c kf u n c t i o n s 函数原型 函数描述 v o i dh c i d a t a l n d ( s t r u e t 告知l 2 c a p 下层数据 d a t a t r a n s s t r u p a c k e t ) ; 已经准备好。 v o i dh c i c o n n e c t l n d ( u c h a r 告知l 2 c a p 有一a c l b da d d r ) ; 连接请求。 v o i dh c i d i s c o n n c c t l n d c o c h a r 告知l 2 c a p 有一a c l b d _ a d d 0 ; 断链事件。 v o i dh c i q o s v i o l a t i o n l n d ( 告知l 2 c a p 有一o o s u c h a r + b da d d 0 ; 协商不同意事件。 v o i dh c i s c o c o n n e c t i n d ( 告知t c s 、h e a d s e t 等上 u c h a r 协da 埘w o r d 层有一s c o 连接请求。 c o r mh d l , i n ti s c o n n e c t e d ) ;, v o i dh c i s c o d i s c o n n e c t l n d ( i n t 告知t c s 、h e a d s e t 等上 c o r mh d ) ; 层有一s c o 断链事件。 v o i dh c i s c o d a t a l n d ( s t m c t 告知语音数据分组报上 s c o d a t a t r a n s s t m + p a c k e 0 ; 传。 i n th c i r e a d l o c a l l n f o ( i n to p , s h t l c t 读取本地h c i 实体的信 r e a d l o c a i i n f o p a r a m s t m * i n p , 息 u c h a r + o u t p ) ; i n th c a w r i t e l o c a l l u f o ( i mo p ,s t r u c t 写h c i 配置参数到本地 w f i t e l o c a l l n f o p a r a m s t m + i n p , u c h a r h c i 实体 + o u t p ) ; 1 3 h c i - 传输接口模块定义了两个接口:发送数据到接口,从接口接收数据。表 3 4 描述了传输接口模块。 表3 4 输出接口函数表 t a b l e3 4 o u t p u ti n t e r f a c eh m c l i 蛐s 函数原型函数描述 i ms e n d d a t a t o i n t ( s t m c t 发送数据到接口 b u f f s t m b u t ) ; i n tr c v d a t a f r o m i n t ( i n tt y p e , 从接口接收数据。 s t r e e tb u f f s t r u b u t ) ; 3 1 2逻辑链路和适配协议( l 2 c a p ) 1 l 2 0 垤功能 l 2 c a p 是基带的上层协议,相当于o s i 中的数据链路层。l 2 c a p 向上层( 如 s d p ,r f c o m m ,t c s 等) 提供了面向连接( s c o ) 的和无连接( a c l ) 的数据 服务。l 2 c a p 具有协议复用、分段和重组以及组管理的功能。值得注意的是,l 2 c a p 只是利用基带的机制来提供可靠的信道,本身不提供任何重传和校验的功能。蓝 牙规范只定义了a c l 链接。 l 2 c a p 基于“信道”的概念,l 2 c a p 信道的每个端点成为信道标识符( c i d ) 。 l 2 c a p 信道分为三种:面向连接的数据信道,用一个c i d 标识该信道的两个端点, 数据流是双向的;无连接的数据信道,数据流是单向的;信令信道,用于创建面 向连接的信道以及协商信道参数等。前两种信道用于支持信道组,源端的c i d 代 表了一个或者多个远程设备。如图3 1 给出了l 2 c a p 对等层通信过程中c i d 的使 用情形。 图3 1 设备问信道 f i g u r e3 1 t h ec h a n n e lb e t w e e nt h ed e v i c e s 1 4 2 t 2 c a p 模块 l 2 c a p 模块包括两部分:l 2 c a pf s m 和l 2 c a p 接口。如图3 2 所示。 i lc a l l b a c kf u n c t i o n s c o n t r 0 1 u n i tl ( f o rh c i ) + l 2 c a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国3G终端项目经营分析报告
- 2026年中国PDA 项目经营分析报告
- 2026年中国MCN项目经营分析报告
- 初中生心理健康教育课件
- 人力资源招聘选拔流程优化方案
- 住宅装饰装修合同管理范本
- 2025年及未来5年中国天然石料制砂轮及其零件市场调查研究及投资战略咨询报告
- 2025年及未来5年中国男式休闲服行业发展前景及投资战略规划研究报告
- 2025年及未来5年中国锡矿石行业市场运营现状及投资战略咨询报告
- 2025-2030中国化工园区配套物流体系建设专项调研报告
- 颈肩腰腿疼中医治疗
- 肉鸡放养回收合同(2篇)
- 【7上英WY】合肥市庐阳中学2023-2024学年七年级上学期期中英语试卷
- 中国血脂管理指南(基层版2024年)解读
- 创新方法TRIZ理论课件第8章技术矛盾和矛盾矩阵-两份资料
- GB/T 4008-2024锰硅合金
- 在线网课知慧《美国史(东北师大)》单元测试考核答案
- 医学检验技术职业生涯发展报告
- 护理职业规划大赛
- 急性酒精中毒护理课件
- 2024年云南省公路交通机电工程专业知识模拟试题(100题)含答案
评论
0/150
提交评论