蓝牙通信技术的模型解析与开发
2021-04-29
来源:易榕旅网
维普资讯 http://www.cqvip.com 设计方案// 、 \ 国园园圃团圆 蓝牙通信技术的模型解析与开发 Bluetooth Model Communication Analysis 华东师范大学电子系张凌姚萌 摘要:本Kg ̄Ericsson蓝牙开发包EBDK的特点,从多个方面解析蓝牙模块与计算机系统的通信过程,并介 绍软件缟程中的接口设置。 关键词:蓝牙技术;无线通信;解析 前言 蓝牙技术是基于wPAN(wireless Personal Area 蓝牙系统模块分析 蓝牙协议体系结构框架如图l所示。 Network)的无线网络连接技术,是以短程无线电收发技 从软件和硬件来划分,蓝牙协议体系结构可分为底 术为固定与移动设备通信环境建立了一个短程无线电的 层硬件模块,中间协议层(软件模块)和高端应用层三大 特别连接。它建立一个通用的无线电空中接口以及控制 部分。链路管理层(LM),基带层(BB)和射频层(RF)属 软件的公开标准,使无线通信技术和计算机技术紧密结 于蓝牙的硬件模块。 合,使不同厂家生产的便携式设备在没有电线或电缆相 中间协议层包括逻辑链路控制和适配协议(1.2CAP), 互连接的情况下在近距离范围内具有互用、互操作的性 服务发现协议(SDP),串口仿真协议(RFCOMM) ̄N电话 能,代替固定与移动通讯设备之间的电缆。利用Ericsson 通信协议(TCS)。蓝牙协议栈的最上部是高端应用层,它 蓝牙开发包EBDK(Ericsson Bluetooth Development Kit), 对应干各种应用模型的profile,是profile的一部分。 可以快速开发出建立在蓝牙通信技术之上的应用,加速 产品开发的进度。 主控制器接口HCI(Host Controller Interface)是蓝牙 协议中软硬件之间的接口。它提供一个调用下层基带,链 维普资讯 http://www.cqvip.com 、\ 、、 、、~, 方案 , , / 一 I路控制层,状态和控 制寄存器等统一的命 l指令/程序l rr : 图形用户界面 (windows) 令接口。HCI协议以 上的协议软件实体运 I 指令/数据包处理 行在主机上,而HCI 以下的功能由蓝牙设 一 戽 windows控制事件 : 备来完成,1 r ; 1一 I 两者之间 IRs232八Js.BDL Ll I l \ 。i 接收到的数据片断 通过传输层进行交 \l发送数据包J/ 互。HCI提供对基带 控制器和链路管理器 的命令接口,以及对 硬件状态和控制注册 s 2 IEBDK开发板 图3主PC软件与EBDK连接方式 l ■计箕机硬件 图4主机软件功能机制 I 成员的访问。该接口还提供对蓝牙基带的统一访问模式。 界面的更新或发送数据包的相应处理。 通信过程 EBDK硬件结构 蓝牙硬件的射频模拟部分,包括射频发射器和射频接收 以EBDK中的Demo程序为例,其通信过程流程如 EBDK主机软件结构为分层模块化形式,每一层都 EBDK上的硬件分布结构如图2所示。Radio模块是 图5。 器,以跳频技术实现频率扩展,进行ISM频段频率信号的 进行了封装,其他层只有通过接1:3才能访问。 发送和接收。基带模块则对物理信道进行管理,链路控制 模块进行通信链路的建立、鉴权。 如果用户应用程序发送了一序列数据,数据在到达 RS一232之前,首先会进行包的组装,生成通信协议格式 的数据包,在发送数据包之前还必须检测指令完成状态 软件功能分析 机。指令完成状态机指示从发送前一条指令之后系统是 软件分为两部分:运行在主Pc上的主机软件和在蓝 否仍在等待指令完成事件。如果状态是空闲(IDLL) ̄发 牙基带设备上运行的ROM程序。EBDK主机软件在 送数据包, 如果状态是等待指令完成 win98、NT Pc上运行,通过RS一232或USB连接 ̄IJEBDK。(WAITING—FOR—CMD—COMF)用户程序则被通知稍候 结构示意图如图3所示。 主机软件功能机制 再试。 在接收方向上,执行的操作与之相反。接收来的数 主机软件有两个主线程,一个执行主应用程序和传 据首先经过包组装器,组装成标准的数据包格式,然后解 输数据包,另一个处理接收界面信息,如图4所示。 开包,抽取包中的数据,进行指令解码,获得数据中包含 1 ̄4qb左边的圆圈代表主应用程序线程,右边的圆圈 的指令。在指令被发送到指令处理器之前,仍然要检测指 代表接收器线程。接收器线程采用Microsoft定义的通信 令完成事件,以确定前一条指令是否已经被处理。之后, 事件,一旦接收到一个通信事件(通常是接收缓冲区有一 才被指令处理器处理,处理的结果反馈到应用程序进行 序列字符),就会产生一个windows消息,同时将接收到 界面的修改或通信状态的改变处理。 的字符序列送到包组装器进行数据包的组装。主应用程 序处理windows消息队列发现有输入字符的消息后,就 进行数据包的组装,或者接收到用户界面的变化,对 windows的控制或输入信息转换成的数据流进行处理,进 行数据包的整合,因为通常收到的数据不是一个完整的 数据包。主程序判别出数据包的类型,然后进行图形用户 指令通信示例 以一个简单的示例来说明数据流动的全过程。 从EBDK的通信界面发送一条指令: cmd cclk 0x2345 并按回车,将产生一个Windows事件调用字符串分 l— _46・2002.1 0.B・量子座品t尿www,edw.corn.cn 维普资讯 http://www.cqvip.com 设计方案// ~ \ 析器对以空格分界的字符串进行标记和处理,生成一条 消息字符序列。这个字符序列是对应指令的HCI位字符 流。这个字符序列被封装到数据包中,经过通信过程中的 一系列过程发送给RS一232DLL,RS一232DLL再立即将它 放到COMM口上,携带HCI指令的电信号从PC的COM 或USB ISI发出,沿着RS一232或USB线,到达EBDK的 COM或USB中,穿过RS一232缓冲区buffer以及Mother Board进入基带连接器和基带设备。基带的ROM程序将 消息解码并执行。在这种情况下,它生成一个数据帧,在 空中通过电磁波传输。这个帧通过与Radio Module的接 ISI,以串行序列的形式从射频天线发送出去。 射频信号被附近的一个EBDK获取,它的射频模块 将射频调制信号转换为一个数字信号,再以串行形式送 到基带设备。基带控制和一个HCI数据包或事件包,再 由基带设备将该包通过RS一232(或USB)线送到PC。PC 的CPU收到一个中断指示收到一些字节数据,这些数据 被送到缓冲器中,然后被RS一232包组装器(Packet Builder) OnWMCRXD_图5通信流程 __DATA:处理接收到数据之后的动作 进行处理。应用程序收到一个消息指明有一个数据包要 处理,最后根据抽取出来的指令,调用相应的函数进行操 作。这样就完成了一个消息通信的过程。 PackelComplete:包接收完毕的动作 InvalidPacket:判断包是否有效 在VC++中,可以利用蓝牙工程模板自动生成,因此 要以程序编程实现上述的过程,就需要在程序中设 蓝牙通信包软件的开发具有易于实现和易与其他软件捆 置上述操作中的软件接口动作机制。在c++中以一个通 绑的特点。 信类可以实现上述的基本操作。 一个基本的蓝牙通信对象应该具有以下的基本操作 结语 本文分析了基于EBDK的蓝牙通信的整个过程以及 软件实现机制,可以作为蓝牙通信的应用开发的借鉴。具 接口。 发送消息: LssuoCommand:发送指令 TransmitRewData:发送数据 接收消息: 备了Ericsson蓝牙开发工具包之后,由于蓝牙软件包具有 捆绑性与易实现性,可以在此基础上直接进行应用的开 发,也可以从蓝牙通信的软件实现机制上理出应用的实 现思路。一 CommandCompleteSuccess:指令成功完成 CommandPending:指令延迟 CotRxPacket:收到数据包 ReadyForData:准备接收数据 .一==ji日度流动性。看来,提高日本研究人员流动性的具 体措施必不可少。 DisconnectionOccurred:发生连接中断 GotBTAddress:获得蓝牙通信地址 近年来,日本在科技政策中强调了“富于创造性的 科学技术的振兴”、“基础研究的振兴”,作为其实现的手 而在实际通信操作中,要分为通信客户端和通信服 段,正在推进人才培养、基础研究的强化和杰出研究中心 务器端。因此,在基本的通信对象的基础上要派生出 的培植。但尽快缩小日美突破性研究方面的差距,仍是日 Client和Se ̄er对象,分别就具体的操作进行处理。 另外需要一个包组装器专门处理数据包: 本的重要课题。此事在近十多年来一直在讨沦,但始 是在开始施行阶段,切盼有更快的改革。■(绍莹) 2002.10.B雹子座品t器WWW.edw.com.cn・4