单位文秘网 2021-10-08 08:18:51 点击: 次
摘要:文中对蓝牙协议栈在移动终端中的应用情况作了详解。
关键词:蓝牙协议栈 移动终端 应用
0 引言
蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。其数据速率为1Mbps,采用时分双工传输方案实现全双工传输。
信息时代最大的特点便是更加方便快速的信息传播,正是基于这一点技术人员也在努力开发更加出色的信息数据传输方式。
蓝牙,对于手机乃至整个IT业而言已经不仅仅是一项简单的技术,而是一种概念。当蓝牙联盟信誓旦旦地对未来前景作着美好的憧憬时,整个业界都为之震动。抛开传统连线的束缚,彻底地享受无拘无束的乐趣,蓝牙给予我们的承诺足以让人精神振奋。
蓝牙技术是一种无线数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接。其程序写在一个9x9mm的微芯片中。
如果把蓝牙技术引入到移动电话和膝上型电脑中,就可以去掉移动电话与膝上型电脑之间令人讨厌的连接电缆,而通过无线使其建立通信。打印机、PDA、桌上型电脑、传真机、键盘、游戏操纵杆以及所有其它的数字设备都可以成为蓝牙系统的一部分。除此之外,蓝牙无线技术还为已存在的数字网络和外设提供通用接口以组建一个远离固定网络的个人特别连接设备群。
1 总体方案设计
1.1 训练目标 理论联系实践。目前,市场上很容易采购到各种联发科的芯片和终端,互联网也能提供各种技术资料。因此,本项目采用购买一部分现有终端来完成项目的调试与测试。通过编写蓝牙部分的协议栈来完成蓝牙模块的重新开发达到项目的各项指标。这样既缩短了开发周期,也学到主要的技术,有利于更好的把这项技术运用到其它嵌入式设备上。
1.2 前期准备 项目拟采用MTK源代码(0812A)的相关手机为主要的实验目标。由于嵌入式设计对于本科生来说还有一定难度,所以前期花费了大量的时间来学习基础的前置知识:如操作系统,Makefile文件编写等内容,掌握MTK平台的特性,会用Catcher工具抓取手机运行的trace(手机运行信息的调试)信息,并用SourceInSight观察代码。
蓝牙协议栈的设计是本项目的重中之重。先通过trace查看自带协议栈是如何运行的(由于自带协议栈是被封装好的,所以要尝试推断源代码是如何实现的)。再结合蓝牙官网上的蓝牙规范文档,理解各个蓝牙协议是如何实现的,最后编写出属于自己的蓝牙协议栈。
1.3 实施组织 本项目采用分工协作的方式进行,将项目按功能分成不同的模块,组员根据模块需求完成自己模块代码的编写。按每周进行进度汇报的方式进行进度监督,即每个周末进行汇报,要求说明这一周所做的内容、存在的问题以及取得的进展;最后将信息进行汇总,每隔两周进行讨论,提出问题的解决方案并给与指导。
2 研究实验工作及数据分析
2.1 协议栈的设计 这部分的实验研究工作主要是用Catcher、SourceInSight、Flashtool等工具在PC的环境下调试设计蓝牙协议栈。大致的分为两个部分:①理解MTK平台下蓝牙运行流程。②根据相关文档编写自己的协议栈。
由于蓝牙协议栈的工程量庞大,为搞清协议的详细流程,通过Catcher工具抓trace来了解蓝牙功能的运行,下面只列举其中一个例子进行阐述:
本协议栈采用了回调函数的设计方式。这个激活过程大致为通过用户界面用户触发蓝牙激活按钮,MOD_MMI层(人机交互界面)向MOD_BT(蓝牙适配层)发送消息发送一条蓝牙激活命令,MOD_BT层再把消息传到蓝牙运行的核心底层。底层收到消息做出响应的处理,开始检查本蓝牙模块的一些基本信息(如mac地址,可被搜索状态,所支持的服务,并把所支持的服务注册到服务发现协议上),并将处理结果反馈给上层,完成蓝牙模块的初始化。
本项目严格按照蓝牙协议栈的整体规范来进行蓝牙协议栈的设计,这样有助于在宏观上对蓝牙协议栈进行把握。蓝牙协议规范如图1所示。
蓝牙协议栈大体可以分为三层结构:即HCI层,L2CAP与SDP层,上层由OBEX来衔接,针对不同的PROFILE,在L2CAP上还构造了RFCOMM层模拟串口以及电话电报协议来完成电话、FTP、SYNC等功能。各个层面的API构造了蓝牙协议栈的基本结构,不同的PROFILE根据需要调用各层的不同接口。
2.2 ii MTK手机中的移植 这部分的实验研究工作主要是将上述完成的协议栈代码移植入MTK手机中进行测试。移植过程主要分为以下几步:①完成本项目设计的代码整合,编译封装生成lib;②修改MTK平台的Makefile文件,用本项目生成的lib文件替换原项目的蓝牙协议栈。并ARM Developer Suite v1.2编译生成目标bin文件;③通过flashtool工具将bin文件烧录到目标MTK手机上;④手机上进行功能调试,用catcher工具观察手机运行trace,修改手机蓝牙功能的Bug。
经过一系列的重复修改代码和调试工作,本项目的协议栈已经能相对稳定地在目标手机上运行。
3 成果总结报告
蓝牙应用越来越广,支持的协议也越来越多。本项目所设计的协议基本能很好的完成预期指标:
3.1 A2DP/AVRCP:利用蓝牙立体声耳机能够听音乐,控制音乐的播放、暂停、下一首等。
3.2 HFP:利用蓝牙立体声耳机能够接听电话和拨打电话。
3.3 OPP:手机之间能相互传送文件。
3.4 FTP:通过FTP登录对方手机,并进行上传、下载或新建文件夹等操作。
本项目设计的协议是按照目前最新蓝牙2.1版本来设计的。虽然市面上一些蓝牙设备还停留在蓝牙2.0阶段,但是由于蓝牙协议规范采用向下兼容的原则,为此本项目的协议栈具有更广泛的通用性。同时本协议栈也具有良好的扩展性,通过相应协议代码的添加,未来可以支持更多的协议。可以为今后设计其他蓝牙嵌入式产品缩短蓝牙协议栈设计的工期。
4 对成果的分析评价
由于笔者现在水平有限,再加上中法班考试、课时都较多,所以项目投入时间比预期要少一些,为此项目中难免会存在一些细微的小bug。虽然目前所支持的协议已经能正常运行,但和预期目标还是有些许的差距,也未来得及将本项目所设计的协议栈运用到其它嵌入式产品中。
此外,在此项目的完成过程中。笔者深刻的体会到了团队合作的重要性。我们团队成员有四位,虽然大家水平参差不齐,但通过合理分工,每个做属于自己的强项方面。遇到问题大家一起讨论解决。使得整个项目大体还是按照计划来进行的。
参考文献:
[1]朱刚,谈振辉,周贤伟.蓝牙技术原理与协议[M].北京交通大学出版社.
[2]陈智鹏.走出山寨MTK芯片开发指南[M].人民邮电出版社.
[3]禹帆.蓝牙技术[M].清华大学出版社.
[4]http://bluetooth.com.
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-123-94860-1.html
下一篇:公共电话将成街头摆设?
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用