已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XTNDAccess Blue SDK蓝牙协议软件的结构、移植与应用作者简介:李冉,现任美国IMAG公司Bluetooth产品专员。1996-1998在电子部六所进行电信软件的开发工作;1998-2000在美国IMAG公司负责Tornado/VxWorks实时操作系统在嵌入式领域(主要是通信和自动控制领域)中应用的技术咨询工作;2000-现在 在美国IMAG公司负责Extended Systems公司的蓝牙协议产品的技术咨询工作。摘要:本文以Extended Systems公司的蓝牙协议栈产品XTNDAccess Blue SDK为例介绍了蓝牙协议软件的设计原理,协议栈结构,移植过程,及应用的开发方法。关键词:XTNDAccess Blue SDKBluetooth IrDAProfileBasebandHCILMP/HCI/SDP/TCS/RFCOMM/OBEX/IrMCTCP/IP,PPP.AT command引言:蓝牙技术广阔的应用前景在国内引起了极大的关注,有些公司已经决定投入资金进行技术跟踪和相应产品的开发。但大多数厂商还在持观望的态度,其中有蓝牙硬件成本仍高居不下的问题,也有蓝牙软件协议开发困难和协议兼容性认证困难的问题。XTNDAccess Blue SDK是Extended Systems公司()开发的功能完善,原码形式提供的,经过Bluetooth SIG兼容性测试的协议软件产品。目前全球已经有超过60个客户在使用该SDK进行着蓝牙应用的开发,其中不乏著名公司,如3COM/Plam,Motorola,HP, Xircomm, Red-M, Fujitsu, Flashpoint本人希望通过介绍XTNDAccess Blue SDK的设计原理和实现方法,揭开蓝牙协议设计与实现的神秘面纱,增加读者对蓝牙协议软件的认识,使读者掌握使用XTNDAccess Blue SDK进行蓝牙产品的开发的过程,也为读者自己进行蓝牙软件设计与实现提供一定的思路。需要指出的是,蓝牙技术发展迅速,Extended Systems公司的XTNDAccess Blue SDK的软件版本也在不断的更新之中,本文介绍的内容是基于XTNDAccess Blue SDK的1.2版本。该软件的最新特性,可以参考。1 蓝牙标准协议栈结构的简介:蓝牙技术规范目前版本为1.0b,主要规范文档为和,。其中对蓝牙技术的射频、基带、音频传输,HCI接口,LMP,L2CAP,SDP,RFCOMM,与IrDA协议的互操作,蓝牙产品的认证等进行了定义。对蓝牙技术的各种Profile(应用模型)进行详细的定义,其中包括另外,文档对蓝牙协议的软件结构做了专门的介绍。让我们首先看看该文档中的完整的蓝牙软件协议结构图(见图一)。图一:标准蓝牙软件协议结构图规范中将所有协议分类为:1 蓝牙核心协议基带控制部分,包括语音处理;链路管理协议(LMP);逻辑链路适配协议(L2CAP);服务发现协议(SDP)。2 电缆替代协议串口仿真协议(RFCOMM),基于ETSI 07.10规范。3 电话控制协议TCS BIN,基于ITU-T的Q.931规范;AT Commands基于ITU-T的推荐V.250和ETS 300 916(GSM 07.07)规范。4 吸收的协议PPP;TCP/IP;OBEX(对象交换协议)基于红外协议栈中的IrOBEX;WAP。我们在此文中不再详细介绍各个协议的具体功能,而着重介绍这些协议在XTNDAccess Blue SDK中的实现方法。2 XTNDAccess Blue SDK的设计思想:Extended Systems公司设计XTNDAccess Blue SDK的目的是为蓝牙应用的开发者提供一个高效开放的蓝牙软件协议开发平台,使开发人员可以很方便地开发出自己的蓝牙应用,很方便的将蓝牙软件移植到开发人员选定的操作系统中,通过特定的HCI接口支持特定的蓝牙模块。Extended Systems公司是短距离无线通信协议的著名提供商。早在加入Bluetooth SIG之前,就已经是红外通信标准化组织的发起人和标准制定人(当时以Conter Pointer公司的身份)。该公司以Dave Suvak为主的技术专家参与制订了红外通信协议簇中的绝大部分协议。尤其值得指出的是Dave Suvak 编写的IrOBEX协议,被Bluetooth SIG吸收到蓝牙协议中来。作为蓝牙技术和红外技术的结合点,OBEX协议规定了蓝牙技术和红外技术的互操作性。作为Object Push Profile,File Transfer Profile,Synchronization Profile的实现基础,OBEX在蓝牙协议的应用上有着极其重要的地位。在蓝牙的规范中,蓝牙硬件模块中实现了基带的功能和链路管理协议(LMP),所以不需要SDK实现。但对基带送上来的语音,SDK还是要有特殊的处理部分的。在蓝牙的协议中,PPP,IP,TCP/UDP等协议归属于TCP/IP协议簇,已经相当成熟,并且被绝大多数操作系统实现,属于操作系统的一部分,所以也SDK也没有实现的必要。AT Commands非常简单,只是需要在特定的应用中通过RFCOMM协议发送特定的数据(命令)而已,所以也无实现的必要。WAP协议本身的发展还有许多不确定的因素,并且WAP协议本身比较复杂,相对独立,有独立的软件开发商提供,所以SDK没有包含WAP协议簇的必要。这样,我们就可以确定了SDK要实现的蓝牙协议的模块:L2CAP,RFCOMM,SDP,TCS BIN,Audio,OBEX。其中OBEX因为地位特殊,在XTNDAccess Blue SDKstack中被作为Add-Ins(特殊的应用部分)实现,不包含与SDK stack之中。这样我们可以得到在XTNDAccess Blue SDKstack的基本构成。3XTNDAccess Blue SDKstack的结构和功能模块:图二:Blue SDK stack的内部结构图在图二中,我们看到在Blue SDK stack中除了基本的协议模块外,还有两个软件模块:Management Entity 和 Event Manager。这两个模块的功能是什么呢?Management Entity是负责管理功能的软件模块,包括:1) Piconet Manager:负责Piconet的连接的建立、维护,设备查询,维护Slave设备的工作模式(Active,Park,Hold,Sniff)。2) SCO Manager:负责创建和维护设备之间的语音交换的链路。3) Security Manager:允许应用程序对鉴权和加密进行设置,真正的鉴权和加密是硬件实现的。Event Manager是一个执行线程(thread),包含着对所有协议模块的调用,并且管理着协议栈的初始化和定时器信息。由此可以看出,SDK中附加的两个模块是为了蓝牙的实际应用而建立的。Management Entity包含了蓝牙实现中最常用的管理应用;Event Manager是程序执行的线程实体。3 XTNDAccess Blue SDK的移植和应用:图三:构成蓝牙应用的部件在图三中,我们可以看到以Blue SDK stack为核心,该SDK经过归纳设计出了三种API:Application API开发蓝牙应用程序;OS API使用操作系统提供的服务;HCI API通过特定的HCI类型驱动特定的蓝牙硬件模块。1) 操作系统的移植- OS API:我们的协议栈任务的基本要求是不可重入。移植前,我们要明确操作系统的一些特性,如:是单任务OS还是多任务的OS;多任务的OS是否是抢占式的;系统的互斥机制;定时器的特性;中断处理程序的编写等等向特定操作系统的移植,会涉及到以下一些操作系统提供的服务操作系统服务描述Tasks(threads)一个单独的任务(线程)足以完成Blue SDK stack和它的Add-ins(如OBEX)的执行,但要求不可重入Interrupts处理硬件的IO中断Timers在抢占式的多任务操作系统中需要一个单独的定时器,否则不需要Systems Tick系统提供的tick计数器:要求每tick小于1s,,tick计数器运行一个循环必须大于300秒Semaphores在抢占式的多任务操作系统中需要两个信号灯:一个用于保证协议栈任务的不可重入性;另外一个用于控制硬件的运行(堆栈任务与硬件驱动程序交换数据)Memory AllocationsBlue SDK stack执行静态内存分配,要求提供内存拷贝、比较和设置的功能ROM依据平台和配置的选择,堆栈代码和常量需要超过30K的ROMRAM依据平台和配置的选择,堆栈变量和内部缓冲区需要超过4K的RAM下面我们通过图四表现,协议栈任务的执行过程。图四:协议栈执行的流图堆栈任务实际就是反复的调用EVM_Process()函数,此函数不可重入,所以用OS_LockStack()和OS_UnlockStack()函数实现互斥的保护。OS_LockStack()和OS_UnlockStack()利用了一个OS的Semaphore来实现。在任务执行过程中,需要调用到高层协议的时候,SDK使用Callback函数的方式实现。在其它层中,提供的Callback函数,也会锁定协议任务。所以要求操作系统提供的互斥机制可以多次锁定同样的任务。另外,XTNDAccess Blue SDK以Windows和VxWorks为例,提供了操作系统移植包,用户可以用VC+6.0和VxWorks的编译器对协议栈和例子进行编译,并且可以直接在Windows平台上运行大部分例子程序。2) 对蓝牙硬件模块的驱动的移植-HCI API:*图五中表现了协议栈与HCI的层次关系图五:HCI层次图HCI API Layer:这是在协议栈内部供其它协议模块使用的接口。HCI Transport Driver:依据不同的传输类型设计的驱动程序,比如UART、RS232、USB,属于规范定义的标准类型;其他,如PCI、PCMCIA,属于非规范定义的传输类型。HCI Hardware Driver:针对具体硬件的设备驱动程序,负责硬件的初始化和接收和发送的处理,要和HCI Transport Driver接口。*对HCI接口的移植方法:XTNDAccess Blue SDK已经支持UART,USB,PCMCIA类型的HCI接口。如果用户使用UART或USB的HCI接口,可以直接使用SDK提供的HCI Transport Driver,如果用户使用的UART或USB硬件不是XTNDAccess Blue SDK所支持的,用户要依据HCI Transport Driver提供的API编写自己硬件的HCI Hardware Driver。关于PCMCIA接口,SDK提供对3COM的蓝牙PCMCIA接口的驱动作为参考。如果用户使用自己的HCI接口,那么用户要自己编写HCI Transport Driver和HCI Hardware Driver。另外,SDK提供了基于TCP/IP的特殊的HCI类型INET。可以在TCI/IP上模拟其它的HCI接口,开发和调试基于SDK的程序。SDK中所有的例子代码,都支持UART、USB和INET三种HCI接口。以我的经验而言,这种INET接口对于开发应用非常有用。3) 开发应用程序Application API:XTNDAccess Blue SDK中的ME、L2CAP、SDP、RFCOMM都提供了供上层应用开发使用的API。另外在RFCOMM上,Extended Systems开发出了Serial API(create/remove/open/close/read/write/ioctl),以供基于串行API开发程序的移植。应用模型(Profile)的实现:不同的协议模块的上层API的组合可以实现不同的Profile。XTNDAccess Blue SDK的设计支持GAP(Generic Access Profile)、CTP(Cordless Telephone Profile)、Intercom Profile、SDAP(Service Discovery Application Profile)、SPP(Serila Port Profile)、DUN(Dial-Up Networking Profiel)、LAN Access Profile、 Fax Profile,Handset Profile。SDK中包含一些例子代码,如L2CAP的应用程序、TCS的测试程序、Serial API的应用程序、Cordless Telephony终端和网关的应用程序、Headset Profile的应用程序。这些例子都可在Windows下用VC+6.0直接编译,以供编程参考。并且这些例子都支持UART、USB和INET三种HCI接口。基于INET接口的应用开发可以屏蔽蓝牙的无线通道,对于开发非常简单。4 OBEX Add-ins:OBEX作为Add-ins,实际是特殊的上层应用。它利用SDK提供的Application API,基于RFCOMM实现了O
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有关大学生军训心得体会400字8篇
- 氯酸盐技改项目可行性研究报告
- 润滑油项目可行性研究报告
- 商标授权使用协议书最简单三个步骤
- 商业合作框架协议书
- 金融专业实习报告范文
- 污水处理临时施工合同
- 住宅区楼宇对讲施工合同
- 娱乐场所经营权转让协议
- 教师年度工作计划怎么写
- 医院重点岗位工作人员轮岗制度
- 2023光伏发电工程项目安全文明施工方案
- 带式输送机胶带安装
- 陈育民对FLAC3D常见问题的解答概要
- 专利文献检索方法与步骤课件
- 第5讲-申论大作文课件
- 大咯血的护理及急救课件
- 读《学生的精神》有感
- Module 5 Museums模块测试题二(含答案)(外研版九年级上册)
- 张家爷爷的小花狗2
- 怎样通知最快(课件)五年级下册数学人教版
评论
0/150
提交评论