0 引言
由于微电子技术与集成电路技术的进步,使得计算机设备的体积进一步缩小,功耗不断降低。而且随着产品体积的日益减小和对应功耗的降低,使得各种移动、便携式产品越来越广泛地被应用于人们的日常生活中;但由此产生的网络连接和信息交换问题也越发突出。现在,各种移动设备间的无线通信产品已经成为众多厂商正在努力开发的目标。蓝牙技术正是在这样的一种环境下产生的。蓝牙技术致力于构建体积小,功耗低,并能够深度嵌入到其他设备或随身携带的产品;使用蓝牙技术可以实时处理数据、语音、图像,甚至是视频信息。
2010年7月7日蓝牙技术联盟(Bluetooth SIG)宣布,正式采纳蓝牙4.0核心规范(Bluetooth Core Specification Version 4.0),并启动对应的认证计划。会员厂商可以提交其产品进行测试,通过蓝牙4.0后将获得蓝牙4.0标准认证。该技术拥有极低的运行和待机功耗,使用一粒纽扣电池甚至可连续工作数年之久。同时还拥有低成本、跨厂商互操作性、3 ms低延迟、100 m以上超长距离、AES-128加密等诸多特色,可以用于计步器、心律监视器、智能仪表、传感器物联网等众多领域,蓝牙技术将在未来的短距离无线通信中发挥巨大作用。
本文就基于嵌入式设备上的蓝牙数据传输技术,重点研究了蓝牙协议体系和应用框架,以及嵌入式蓝牙数据传输软件的实现。
1 蓝牙协议概述
蓝牙协议栈是蓝牙通信规范的核心部分,如图1所示。蓝牙协议规定了蓝牙设备的定位、之间的互连操作,以及如何建立连接交换数据,从而可以在蓝牙设备之间进行无缝交互式应用。蓝牙协议采用了网络通信中常用的分层结构,分别完成数据流的过滤和传输、跳频和数据帧传输、连接的建立和释放、链路的控制、数据的拆装、业务质量(QoS)、协议的复用和分用等功能。蓝牙技术的一个主要任务就是能够使使用相同蓝牙协议的本地设备和远端设备互联互通,而不需要额外的资源和操作。
从协议的重要性上,蓝牙协议体系可以分为4个层次,即核心协议层、串口协议层、电话控制协议层和可选协议层。各个层还包含了各种具体的协议:
(1)核心协议层:逻辑链路控制和适配协议(L2CAP)、基带、链路管理协议(LMP)、服务发现协议(SDP);
(2)串口协议层:串口仿真协议(RFCOMM);
(3)电话控制协议层:电话控制二元协议(TCSBinary)与AT-Command规范;
(4)可选协议层:点到点协议(PPP)、对象交换协议(OBEX)、UDP/TCP/IP协议、无线应用环境(WAE)、无线应用协议(WAP)、红外移动通信(IrMC)、vCard、vCal。
2 蓝牙数据传输系统设计
2.1 蓝牙应用框架
在蓝牙协议体系结构的基础上,蓝牙规范还定义了通用的蓝牙应用框架。应用框架重点选择了标准蓝牙协议中的消息和操作,描述了完整的蓝牙应用操作过程。应用框架的提出大大提高了不同厂家蓝牙产品的互操作性,这给用户带来了便利。在蓝牙通用应用框架中,定义了4个通用框架,它们是实现具体的蓝牙应用的规范和基础。这4个应用框架是:通用访问框架(Generic Access Profile,GAP)、串口仿真框架(Ser ial Port Proflle,SPP)、服务发现应用框架(Service Discovery Application Profile,SDAP)、通用对象交换框架(Generic Object Exc hange Profile,GOEP)。这4个通用框架之间的关系如图2所示。
2.2 系统硬件设计
系统的硬件结构示意图如图3所示。主控制器采用了三星公司的一款S3C2440微处理器,基于ARM920T内核,采用0.18μm工艺制作CMOS宏单元和存储单元,同时采用AMBA(Advanced Microcontroller Bus Architecture)新型总线结构,具有低功耗、精简和出色的全静态设计,所以特别适合对成本和功耗敏感的应用。除此之外,他还特别为各种外设准备了丰富的中断控制能力,包括高达60个中断源(其中,5个定时器,9个UARTs,24个外部中断,1个看门狗定时器,4个DMA,2个ADC,1个LCD,1个电池故障,1个I2C,2个SPI,1个SDI,2个USB,1个NAND,2个Camera和1个AC97音频),可以使用电平/边沿触发模式进行触发的外部中断源,可编程决定的边沿/电平触发极性,这些功能为紧急中断请求提供了快速中断(FIQ)服务。
蓝牙模块采用了CSR公司的CSR8510,它是CSR8000系列的一款,是全面满足蓝牙v3.0标准的系统,并提供对最新蓝牙标准v4.0版本的支持。CSR8000在原CSR7000的架构上增加了蓝牙低功耗射频部分,专门为连接下一代10亿个蓝牙设备而设计的。另外,增加了数字信号处理器(DSP),为高清语音配备的专用数字音频信号处理器,可进行片上音频编码和噪声消除。同时对原蓝牙射频和FM部分进行了优化,使蓝牙射频的输出功率达到了10 dBm,在不需要外接任何PA的情况下,芯片已经可以达到classl的距离,即100~150 m的距离,灵敏度也从原-90 dBm改进到现在的-93 dBm。其FM无需接任何外接天线,仅基于DSP的降噪算法就能使FM接收器实现更好的接收效果
2.3 系统软件设计
整个蓝牙数据传输系统的软件架构如图4所示,共分为4个大的模块:
(1)GUI模块。采用Qt库实现,完全面向对象设计,界面易扩展,各种功能使用插件的形式完成;主要负责界面各种按钮的消息捕获、处理,完成蓝牙数据传输系统中所有功能窗口的创建、销毁以及管理,当出现软件有错误发生时,向用户返回友好的错误提示。同时,在进行数据传输的时候,可以实时显示当前数据传输的状态信息。
(2)Adapter Layer,软件适配层。主要负责向GUI模块提供底层无关的数据传输API接口,与GUI交换数据信息,以及响应用户在GUI上的操作,控制下层模块进行实际的执行。
(3)SourceControl模块。主要负责通过SDAP(服务发现应用框架)发现SDP和连接其他蓝牙设备;通过GOBEX(通用对象交换框架)中的OBEX规范与其他的蓝牙设备进行信息交换,主要分为PUT和GET操作的控制,以及设备本身的文件操作控制;本模块还可以进行其他蓝牙设备的身份认证和鉴权。
(4)Core Module。主要负责蓝牙设备原始数据的缓存,以及调用蓝牙芯片进行加密数据的编解码,并保证实现蓝牙数据的实时通信。
3 结语
嵌入式移动设备的飞速发展,使得人们进行无线互联互通的愿望越发强烈。蓝牙4.0技术规范的提出,使其在更低功耗,更大覆盖范围,必将成为短距离无线通信的事实标准;相信不久的将来,基于蓝牙的无线应用会越来越多。