嵌入式蓝牙文件传送方案的实现
扫描二维码
随时随地手机看文章
利用蓝牙技术实现不同类型的文件传送是蓝牙通信的重要应用,而传统的基于蓝牙1.0规范的蓝牙通信只支持单点传输,随着蓝牙技术的发展,蓝牙2.0规范中增加了EDR(Enhance Data Rate)技术,提高了蓝牙数据传输的吞吐量,为蓝牙多点通信提供了条件。本文依据蓝牙2.0规范,结合TDD技术,在实现了单点文件传送的基础上,成功完成了嵌入式系统对远程蓝牙设备的多点文件传送方案,并应用个人区域网络技术实现了嵌入式系统与PC机之间的网络文件传送,扩展了蓝牙通信在网络领域的应用。蓝牙文件传送和网络文件传送功能为广告产业及其他信息发布相关产业提供了广阔的发展空间,具有良好的市场前景。
1 方案设计概述
方案设计以ARM嵌入式系统作为硬件实现平台,并基于Linux操作系统,完成蓝牙文件传送方案。文件单点传送方案依据对象交换协议OBEX(Object Exchange),利用蓝牙官方协议栈BlueZ以及openobex上层应用函数库实现对象推送功能,从而完成对远程设备的文件单点传送。文件多点传送方案将在底层应用全双工时分复用(TDD)技术以及EDR(Enhance Data Rate)技术实现蓝牙数据通道共享和宽带、高吞吐量数据发送,在上层以文件单点传送方案为基础,辅以嵌入式技术建立并管理多个文件发送进程,完成文件向多个远程设备的同时发送,加入了重发机制以保证文件多点传送的可靠性。此外,基于个人区域网络技术的网络文件传送功能,使用户可在PC机端以FTP方式访问并更新嵌入式系统中的文件。
2 方案硬件架构
本方案基于ARM硬件开发平台,以SAMSUNG S3C2440作为核心处理器,并与64 MB SDRAM和64 MB Flash共同组成核心嵌入式系统,运行ARM-Linux-2.6.12内核操作系统,其中内核配置蓝牙子系统,可为USB蓝牙适配器提供驱动。蓝牙适配器作为系统的核心通信部件接至USB Device接口,并通过适配器完成文件传送功能。同时本硬件系统易于功能扩展和系统移植,开发人员可通过USB Host接口将操作系统内核以及上层应用程序下载到SDRAM或烧写至Flash中,并通过RS232串口对应用程序进程调试。硬件整体架构如图1所示。
3 方案软件框架
软件框架主要由蓝牙核心协议、会话层协议以及上层应用程序构成,如图2所示。其中蓝牙核心协议包括:RF协议、基带(Baseband)协议、LMP、L2CAP,主要完成蓝牙数据由逻辑链路层到实际物理通道的控制和处理。
会话层协议将建立对应功能的模型描述,并定义相关操作方法,为上层应用程序提供接口。其中RFCOMM协议提供对基于L2CAP协议的串口仿真,基于ETSI07.10,可支持在两个蓝牙设备之间同时保持高达60路的通信连接。其次,本方案利用服务发现协议(SDP)获取周边蓝牙设备服务信息,并自动筛选出带有对象推送服务的远程设备作为发送目标,此协议由BlueZ所提供的接口函数实现。而OBEX作为实现文件传送的核心协议,将为被传送文件建立对象模型,并面向对象及传送过程定义对应操作方法,以实现文件传送。PAN协议用于建立蓝牙无线网络与以太网之间的访问点,以完成与TCP/IP之间的无缝连接。
上层应用程序将基于应用层协议所提供的接口函数,主要依据对象交换协议(OBEX)实现对象推送(OBEX PUSH)功能,从而完成文件的单点传送,并在此基础上,结合Linux多进程技术实现文件多点传送。此外,利用BlueZ提供的PAN工具实现嵌入式系统与PC机之间的组网,完成网络文件传送功能。
4 文件传送功能实现
4.1 文件单点传送实现
文件单点传送是多点传送的基础,也是本方案的核心技术,并基于对象交换协议(OBEX)。应用于蓝牙系统的对象交换协议其目标是完成两蓝牙设备间的数据对象通信,其典型应用为实现对象推送功能。OBEX本身包括两部分:数据对象模型和会话协议。对象模型包括将要传输的数据对象的各种信息以及数据对象本身。该模型的建立完全基于各种标准的或者用户自定义的可分析的信息头(headers),信息头由信息头ID和信息头的值两部分构成,ID描述了信息头的内容及格式,信息头的值由一个字节或多个字节组成,描述了对象属性的具体含义。OBEX会话层操作由请求-应答成对组成,由客户端发出请求,服务器做出应答,客户端必须等待服务器做出应答后才能发起新的请求。
本方案利用openobex应用函数库实现了系统对某一远程设备的文件对象推送功能。openobex函数库实现了OBEX协议的会话层操作及相应对象模型描述。图3显示了完成对象推送功能的全过程。
通过图3所述过程,系统与目标设备可完成一次文件单点传送。在实现文件多点传送时,可循环调用此过程,完成文件传输。
4.2 文件多点传送实现
文件多点传送基于单点传送,并利用蓝牙协议中的TDD技术和EDR技术实现了嵌入式系统向多个蓝牙设备节点并发传送文件的功能。同时利用多进程技术,对多个发送进程进行合理管理,保证文件能高效及时地被发送到远程设备中。其中采用TDD技术,使多台设备能够共享一个物理通道[4],并将数据进行分组,按时分复用方式发送。而EDR技术增加了蓝牙数据的传输带宽和传输吞吐量,从而提高了文件多点传送的带宽和吞吐量。
多点传送流程如图4所示。首先由文件发送父进程,根据查询到的蓝牙设备数目创建与之数目相等的文件发送子进程,每个文件发送子进程将独立承担向相应蓝牙设备发送文件的任务,使文件向多台设备同时进行传送。[!--empirenews.page--]
当所有发送任务建立完毕后,文件发送父进程首先判断所有文件发送子进程是否都已经退出,若是则进入下一轮发送,否则将执行阻塞操作,等待其他子进程退出。
每个文件发送子进程又将创建对象推送子进程,该子进程调用对象推送功能,完成文件向某一设备的发送。在等待推送过程中,同时启用重发机制,判断子进程退出原因,若由于文件发送完毕或用户拒绝接收而退出,则发送下一文件,若由于发生蓝牙通道竞争致使建立连接失败而退出,则向设备重新发起连接,重新发起连接次数不超过5次。
5 网络文件传送实现
方案应用个人区域网络(PAN)技术成功建立了嵌入式系统与PC机之间基于TCP/IP协议的网络通信。PAN协议主要描述了蓝牙网络封装协议(BNEP)的使用,并且提供了网络访问点(NAP)服务和组网络服务(GN)。BNEP 用于通过蓝牙介质,传输通用联网协议。BNEP将在蓝牙协议与Ethernet间建立访问点作为网桥[5],使用 BNEP 包头取代Ethernet包头,BNEP 包头和Ethernet净荷最终被 L2CAP 封装,并通过蓝牙介质发送。
在本方案中,采用网络访问点的方式进行组网,网络中PC机的角色为客户端(PANU),而嵌入式系统为NAP,充当服务器。首先使系统处于监听状态,此时,利用PC机的蓝牙软件,查询嵌入式系统的NAP服务,并向其发起组网连接请求,系统在监听到连接请求后做出回应。当组网成功后,嵌入式系统将自动分配给PC机IP地址,同时设置自身IP,此时,只需将PC机的IP改为与嵌入式系统同一网段,PC机即可与系统在TCP/IP协议上通信,并通过FTP协议对嵌入式系统中的文件进行访问和更新。
6 测试与分析
6.1 文件单点传送测试
以嵌入式系统作为发送端,将带有对象推送协议的手机作为接收端,对某1台手机进行5次文件发送,测试每次文件的传送时间,并计算平均传送速度,测试结果如表1。接收到的图片均可在手机中正常显示。结果表明,在传送不同大小、不同格式图片的情况下,系统单点传送性能稳定,最高速度可达19.7 kb/s,可满足一般蓝牙通信需求。
6.2 文件多点传送测试
此部分主要测试文件多点传送情况下建立连接可靠性和文件传送时间。首先通过对比加入重发机制前后的建立连接成功率,说明重发机制对提升多点传送可靠性的重要作用。建立连接成功率计算方法如下:
建立连接成功率=(成功连接次数/(每组发送文件数×设备总数))×100%
测试未加入重发机制时,测试系统与远程设备建立连接成功率。以手机作为接收终端,测试结果如图5所示。
测试结果显示,建立连接成功率随设备数目增多而递减。当设备数为5时,建立连接成功率仅为53.33%,不能满足实际需要。但加入重发机制后,所有情况下建立连接成功率均达到100%,建立连接的可靠性得到明显改善,可以满足实际应用的需要。
嵌入式系统向手机终端统一发送大小为200 KB的JPEG格式图片,手机台数由1台逐步增加至5台。测试结果如图6所示。接收到图片在5台手机上均能正常显示,说明多点传送稳定可靠,未丢失数据。随着手机台数的增多,发送时间增长,说明TDD技术对数据进行了合理分组,并以时分复用方式进行发送,传输稳定可靠。在设备数增至5台时,其平均传送速度约为58.8 kb/s,较单播平均传送速度有较大提高。
6.3 网络文件传送测试
首先将嵌入式系统在piconet中设置为server,之后利用PC蓝牙软件向嵌入式系统发起连接,Windows任务栏中会出现正在连接的图标提示,连接成功后,嵌入式系统为PC分配的IP地址是169.254.204.174;将此IP改为和系统预设IP(169.254.0.3)同一网段,改后IP是169.254.0.4。之后用普通FTP软件登录系统,即可访问系统文件。更新了大小为6.36 MB的JPEG格式图片文件,共用时92 s,平均传送速度达71.5 kb/s,图片可在系统中正常显示,证明系统与PC机网络连接稳定,传输准确可靠。
本方案成本低、可靠性高、实时性好、功能扩展灵活、可结合各种多媒体技术,应用于各种市政及公共场所的宣传系统,也可以用于商业广告的发布,具有良好的应用前景。