欢迎来到学术参考网

嵌入式蓝牙多人传输协议的实现

发布时间:2015-12-14 14:27

摘 要:蓝牙通讯技术已成为多种便携式设备进行无线连接新的标准之一,但从目前应用来看这一技术仅仅于手机之间或手机与其它蓝牙设备间传输数据。本文主要讨论了手机蓝牙多人连接功能传输协议的实现,并且可以利用手机内置的蓝牙功能实现即时聊天、语音等功能,打破3G/WAP收费网络下能快速建立互动游戏,同时在十米内几乎不会出现延迟现象。最后,对全文工作进行了总结,并对J2ME游戏应用与蓝牙技术结合对未来手机游戏的设计和开发前景进行了展望。

关键词:手机蓝牙,传输协议,快速建立互动游戏

1.研究背景
  蓝牙通讯技术已经成为多种便携式设备进行无线连接的新的标准之一,但是在现有的应用情况来看这一技术仅仅于手机之间或手机与其它蓝牙设备间传输数据。目前在3G/WAP收费网络下可以快速的建立互动游戏,实现互相沟通,信息的互递,但是它存在每一台手机都必须接入其网络,并且存在延迟现象,而一旦没有信号,则无法进行通信。而蓝牙是通过两台设备直接建立连接,同时在十米内几乎不会出现延迟现象,到了未来走向,可以基于此功能开发为单独平台,然后加入识别功能,短距离信息可以直接通过此平台发送,但是无法应用于多台设备之间,有延迟性的。延迟性造成就把人耐心给磨消了,造成手机互动娱乐功能的发展滞后却得不到解决。而手机多人蓝牙连接功能则可以突破这个限制,不会延迟的特点势必能更加收到欢迎。当一个蓝牙平台的建成后,兼容多款游戏,并且无延迟的特点,那么势必未来手机游戏的偏向也会有所改变,并且由于聊天功能和短距离短信的传送功能的优势,也可以在一定意义上吸引部分客户。
  2.系统设计
  蓝牙是通过两台设备直接建立连接,同时在十米内几乎不会出现延迟现象不会延迟的特点势必能更加收到欢迎。而蓝牙与网络进行比较的优越性在于其不需要接入任何网络,即可实现互相沟通和信息的传递。
  本文将采用一种新的应用方式——用蓝牙技术模拟多人连接通讯,以此可以解决之现有无线网络中资费过高、传输不稳定等带来的问题。将针对蓝牙基层协议进行修改更正,利用微观下并行传输来模拟实现多设备传输,而将这一技术应用到手机游戏上还在起步阶段。目前市面上已有一些蓝牙游戏,本文以图片传输为例,证实多设备连接的可行性。
  2.1 环境配置
     开发环境:52d、vs2008、手机模拟器、初始手机固件
     串口工具:SSCOM3.2
     烧录工具:Flash_Tool2
     设备:配套固件手机、USB接口、串口连接线
     项目编译地址:D:10AW1116mp_SAGETEL52D_1632_10A_V46_F2_gsm_MMI
  2.2 蓝牙函数解析
  1. 设备菜单
  Bluetooth 入口函数:BTMMI_entry_screen_bt_main_menu()
  蓝牙菜单回调函数  MMI_Bool  BTMMI_event_handler_main_scr()
   2.执行设备配对
   (1)搜索设备                                      
   BTMMI_scr_display_device_search_progress();BTMMI_discovered_devices()                          
   BTMMI_scr_handle_search_audio_dev_veq()
   (2)存在配对设备时运行    
   BTMMI_entry_screen_bt_main_menu()
   (3)找到返回设备                                 
  
  每追加一个设备执行设备数的累加次  函数①;第二台设备执行2次,总执行次数2+1,第三台设备执行3次,总执行次数3+2+1,返回是否找到布尔值   BTMMI_cm_is_searching()通过判断值来找到配对是否完成
   (4)请求配对   
   BTMMI_scr_display_pair_progress();
   (5)执行配对
   BTMMI_scr_entry_security_user_confirm();
  (6)确认/取消配对
  主机先确认:BTMMI_scr_display_pair_progress();
  子机确认:BTMMI_event_handler_discovered_dences_screen();
  取消:BTMMI_scr_pair_result()
 3.执行文件传输
 请求发送:mmi_send_entry_sending_scr()
 文件发送: btsend_selected_dence_cb()(搜寻到接受文件设备是否存在)
 文件发送中:Bt_sending_run()
 发送关闭:Bt_sending_close()
 2.3 蓝牙地址组成
  
  蓝牙地址的原理,它分为三部分:LAP(24位地址低端部分)、UAP(8位地址高端部分)和NAP(16位无意义地址部分)。其中,NAP和UAP是生产厂商的唯一标识码,必须由蓝牙权威部门分配给不同的厂商。而LAP是由厂商内部自由分配。蓝牙传输地址,唯一标识获取。

3. 数据传输
3.1 传输原理
 (1)发送文件:选择所需要发送的文件;
 (2)选择发送设备:这里选择已经载入的设备数,即已经完成配对的设备数;
 (3)载入设备地址:从已经载入的设备数中依次获取设备地址;
 (4)根据地址查找本地服务:根据已经获取到的地址来调用蓝牙搜索函数搜索设备是否存在,若存在则执行文件传输操作,不存在则进行检查是否还有剩余设备数;
 (5)文件传输:进行文件的传输操作;
 (6)返回结束标识:返回结束的标识,使主机设备确认发送成功或者失败。
3.2 传输方式
  传输方式一:通过一台手机同时对多个手机进行蓝牙连接,同步传输数据,这种方法在蓝牙协议上是不支持的。          
  传输方式二:创建一个设备配对单,依次发送,微观下并行传输数据,本文采用这种方式实现。
  
4. 核心代码实现
4.1 核心代码
  
  当文件发送后,会执行函数mmi_oppc_send_finish(),继而在满足条件下调用mmi_oppc_pre_send(Blue_Addr)。根据判断number数量,若number>0则执行,读取蓝牙已配对设备地址,载入发送函数mmi_oppc_pre_send(Blue_Addr);否则结束。
4.2 模拟测试
   编译命令 make SAGETEL52P_1632_10A_gsm(编译目标不写则整体编译)
   目标:找到搜索点,发送点,文件返回等
   测试方法:串口连接调试
   测试原理:在协议代码段插入Trace_po(str *sq,int i)执行编译,烧录手机,通过操作手机获取到已经编译写入trace值
   测试返回值:Trace_po返回16进制数字
   烧录手机上进行功能调试,用SSCOM3.2工具观察手机运行图片传输,修改手机蓝牙功能的BUG以及部分函数功能解析
5. MTK手机中的移植
  在52d工具上修改MTK平台的文件,CMD下编译生成,用本项目生成的lib文件覆盖原项目的蓝牙协议栈并ARM编译生成目标bin文件,通过Flashtool工具将bin文件烧录到目标MTK手机上。

6. 结束语
  本文详细介绍了MTK手机蓝牙传输中所用到的协议函数,并改进协议函数,使其能够承担设备与设备之间的连续传输,从而达到微观下并行,初步模拟出一台设备连接多台设备的效果,在此基础上,我们可以开始搭建JAVA应用,开发JAVA模拟器;或者对配对数压栈处理,实现一台设备传输多台设备。

参考文献
[1] 朱勇 嵌入式系统蓝牙联网方式的研究 东北大学 2005
[2] 郭代 基于多蓝牙设备的主机通信设计与实现 数据通信 2004
[3] 彭述清,施心陵 嵌入式蓝牙协议的数据传输实现 通信技术 2009
[4] 蒋粒,钱进 蓝牙协议栈在移动终端中的应用 信息技术
[5] 蓝牙地址解析


 

上一篇:网络管理技术的应用

下一篇:多RRU单小区合并关键技术与工程实施方案分析