著录项信息
专利名称 | 一种移动终端及其蓝牙通信方法 |
申请号 | CN200910126331.9 | 申请日期 | 2009-03-03 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2009-08-05 | 公开/公告号 | CN101499827 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04B5/02 | IPC分类号 | H;0;4;B;5;/;0;2;;;H;0;4;W;8;0;/;1;2;;;H;0;4;W;8;8;/;0;2查看分类表>
|
申请人 | 青岛海信移动通信技术股份有限公司 | 申请人地址 | 山东省青岛市崂山区株洲路151号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 青岛海信移动通信技术股份有限公司 | 当前权利人 | 青岛海信移动通信技术股份有限公司 |
发明人 | 陈亮 |
代理机构 | 北京同达信恒知识产权代理有限公司 | 代理人 | 李娟 |
摘要
本发明涉及移动通信领域,尤其涉及移动终端集成蓝牙技术实现通信的方法。本发明提供的一种移动终端及其蓝牙通信方法,包括:移动终端接收用户输入的操作指令,并确定所述操作指令对应的蓝牙控制命令以及命令数据;并将所述蓝牙控制命令以及命令数据封装为命令数据包后,发送给所述移动终端中的蓝牙通信芯片;所述蓝牙通信芯片根据接收的命令数据包执行相应操作或者向对端设备发送无线数据。由于根据开源的蓝牙协议将操作指令对应的蓝牙控制命令以及命令数据封装为命令数据包后发送给蓝牙通信芯片,从而可以控制蓝牙通信芯片执行相应操作、向对端设备发送无线数据,从而以较低成本实现蓝牙通信,即降低了实现蓝牙通信的移动终端的成本。
1.一种蓝牙通信方法,其特征在于,包括:
移动终端接收用户输入的操作指令,并确定所述操作指令对应的蓝牙控制命令以及命令数据;在所述移动终端向所述移动终端中的蓝牙通信芯片发送热启动控制命令之前,将第一波特率值设置到所述蓝牙通信芯片;所述第一波特率值大于所述蓝牙通信芯片的串口波特率默认值;在所述移动终端向所述蓝牙通信芯片发送热启动控制命令时,将所述移动终端的处理器的串口波特率设置为所述第一波特率值;并
将所述蓝牙控制命令以及命令数据封装为命令数据包后,发送给所述蓝牙通信芯片;
所述蓝牙通信芯片根据接收的命令数据包执行相应操作或者向对端设备发送无线数据。
2.如权利要求1所述的方法,其特征在于,还包括:
所述移动终端在接收到蓝牙通信芯片发送的数据包后,将接收的数据包组合为响应和响应数据;
所述移动终端根据组合出的响应和响应数据,获得蓝牙通信芯片返回的响应信息或者对端设备通过所述蓝牙通信芯片发送的信息。
3.如权利要求2所述的方法,其特征在于,所述命令数据包括同步传输的命令数据、或者异步传输的命令数据;以及
所述响应数据包括同步传输的响应数据、或者异步传输的响应数据。
4.如权利要求1-3任一所述的方法,其特征在于,所述对端设备通过所述蓝牙通信芯片发送的信息为对端设备的最大传输单元MTU设置值;以及所述方法还包括:
所述移动终端根据获得的对端设备的MTU设置值以及本移动终端的MTU上限值,确定本移动终端的MTU设置值。
5.如权利要求1-3任一所述的方法,其特征在于,所述命令数据包具体为HCI命令数据包。
6.一种移动终端,其特征在于,包括:
应用层模块,用于在确定接收的操作指令所对应的蓝牙控制命令以及命令数据后,发送所述蓝牙控制命令和命令数据;将第一波特率值通过蓝牙协议模块、通信模块设置到蓝牙通信芯片后,向蓝牙通信芯片发送热启动控制命令;并在发送所述热启动控制命令时,将移动终端的处理器的串口波特率设置为所述第一波特率值;所述第一波特率值大于所述蓝牙通信芯片的串口波特率默认值;
蓝牙协议模块,用于将所述应用层模块发送的蓝牙控制命令以及命令数据封装为命令数据包后进行发送;
通信模块,用于将所述蓝牙协议模块封装的命令数据包发送给蓝牙通信芯片,所述蓝牙通信芯片根据接收的命令数据包执行相应操作或者向对端设备发送无线数据。
7.如权利要求6所述的终端,其特征在于,
所述通信模块还用于将从蓝牙通信芯片接收的数据包传送给所述蓝牙协议模块;以及所述蓝牙协议模块还用于将从所述通信模块接收的数据包组合为响应和响应数据发送给所述应用层模块;以及
所述应用层模块还用于根据接收到的响应和响应数据,获得蓝牙通信芯片返回的响应信息或者对端设备通过所述蓝牙通信芯片发送的信息。
8.如权利要求7所述的终端,其特征在于,所述命令数据包括同步传输的命令数据、或者异步传输的命令数据;以及
所述响应数据包括同步传输的响应数据、或者异步传输的响应数据。
9.如权利要求6-8任一所述的终端,其特征在于,
所述应用层模块还用于通过所述蓝牙协议模块、通信模块、蓝牙通信芯片获得对端设备的MTU设置值;并根据对端设备的MTU设置值以及所述终端的MTU上限值,确定所述终端的MTU设置值。
一种移动终端及其蓝牙通信方法\n技术领域\n[0001] 本发明涉及移动通信领域,尤其涉及移动终端集成蓝牙技术实现通信的方法。\n背景技术\n[0002] 蓝牙技术面向网络中各类数据及语音设备,其使用无线的方式将这些设备组成一个微微网(Piconet),多个Piconet之间也可以互连形成一个分布式网(Scaternet),从而方便快速地实现各类设备之间的通信。它也可以使得通信器件当彼此进入一定的范围时自动连接,从而建立临时的个人无线连接网络。\n[0003] 由于蓝牙无线通信技术所拥有的特点:无线传输、通信距离可达10米、低功率、体积小、辐射小,工作在全球可用并且无限制的2.4GHz的频段内;因此,在一些移动终端中也集成了蓝牙技术,使得用户可以方便的在短距离通过无线方式传送数据、文件。\n[0004] 目前,多数移动终端所采用的蓝牙技术通常是专门针对该终端操作系统所设计的专用蓝牙软件,购买这些蓝牙软件成本较高,从而使得集成蓝牙技术的移动终端成本也较高。\n发明内容\n[0005] 本发明实施例提供的一种移动终端及其蓝牙通信方法,用以降低实现蓝牙通信的移动终端的成本。\n[0006] 一种蓝牙通信方法,包括:\n[0007] 移动终端接收用户输入的操作指令,并确定所述操作指令对应的蓝牙控制命令以及命令数据;并\n[0008] 将所述蓝牙控制命令以及命令数据封装为命令数据包后,发送给所述移动终端中的蓝牙通信芯片;所述蓝牙通信芯片根据接收的命令数据包执行相应操作或者向对端设备发送无线数据。\n[0009] 所述方法还包括:\n[0010] 所述移动终端在接收到蓝牙通信芯片发送的数据包后,将接收的数据包组合为响应和响应数据;\n[0011] 所述移动终端根据组合出的响应和响应数据,获得蓝牙通信芯片返回的响应信息或者对端设备通过所述蓝牙通信芯片发送的信息。\n[0012] 所述命令数据包括同步传输的命令数据、或者异步传输的命令数据;以及[0013] 所述响应数据包括同步传输的响应数据、或者异步传输的响应数据。\n[0014] 所述蓝牙控制命令为热启动控制命令;以及所述方法还包括:\n[0015] 在所述移动终端向所述蓝牙通信芯片发送热启动控制命令之前,将第一波特率值设置到所述蓝牙通信芯片;所述第一波特率值大于所述蓝牙通信芯片的串口波特率默认值;\n[0016] 在所述移动终端向所述蓝牙通信芯片发送热启动控制命令时,将所述终端的处理器的串口波特率设置为所述第一波特率值。\n[0017] 所述对端设备通过所述蓝牙通信芯片发送的信息为对端设备的MTU设置值;以及所述方法还包括:\n[0018] 所述移动终端根据获得的对端设备的MTU设置值以及本移动终端的MTU上限值,确定本移动终端的MTU设置值。\n[0019] 一种移动终端,包括:\n[0020] 应用层模块,用于在确定接收的操作指令所对应的蓝牙控制命令以及命令数据后,发送所述蓝牙控制命令和命令数据;\n[0021] 蓝牙协议模块,用于将所述应用层模块发送的蓝牙控制命令以及命令数据封装为命令数据包后进行发送;\n[0022] 通信模块,用于将所述蓝牙协议模块封装的命令数据包发送给蓝牙通信芯片,所述蓝牙通信芯片根据接收的命令数据包执行相应操作或者向对端设备发送无线数据。\n[0023] 所述通信模块还用于将从蓝牙通信芯片接收的数据包传送给所述蓝牙协议模块;\n以及\n[0024] 所述蓝牙协议模块还用于将从所述通信模块接收的数据包组合为响应和响应数据发送给所述应用层模块;以及\n[0025] 所述应用层模块还用于根据接收到的响应和响应数据,获得蓝牙通信芯片返回的响应信息或者对端设备通过所述蓝牙通信芯片发送的信息。\n[0026] 本发明实施例的移动终端由于根据开源的蓝牙协议将操作指令对应的蓝牙控制命令以及命令数据封装为命令数据包后发送给蓝牙通信芯片,从而可以控制蓝牙通信芯片执行相应操作、向对端设备发送无线数据,从而以较低成本实现蓝牙通信,即降低了实现蓝牙通信的移动终端的成本。\n[0027] 由于本发明实施例的移动终端在向蓝牙通信芯片发送热启动命令前,将蓝牙通信芯片串口波特率设置为一个较大的波特率;并在向蓝牙通信芯片发送热启动命令时,将处理器的串口波特率也设置为与蓝牙通信芯片相同的波特率。这样,当蓝牙通信芯片热启动后,蓝牙通信芯片与处理器之间就可以以更高的波特率进行通信,从而提高了移动终端蓝牙通信速度。\n[0028] 由于本发明实施例的移动终端还可以通过蓝牙通信芯片获得对端设备的MTU设置值,并根据获得的对端设备的MTU设置值以及本移动终端的MTU上限值,确定本移动终端的MTU设置值;从而尽量保证本移动终端与对端设备设置的MTU值一致,使得双方通信可以保持一个较低的误码率,降低重传概率,提高蓝牙通信速度。\n[0029] 附图说明\n[0030] 图1为本发明实施例的移动终端内部结构示意图;\n[0031] 图2为本发明实施例的移动终端软件模块框图;\n[0032] 图3为本发明实施例的蓝牙协议模块内部结构框图;\n[0033] 图4a、4b为本发明实施例的移动终端蓝牙通信的方法流程图。\n具体实施方式\n[0034] 蓝牙的开源协议(比如BuleZ、OpenOBEX)是公开的、易于得到的;本发明实施例将蓝牙开源协议集成到移动终端中用以实现移动终端的蓝牙通信,从而降低移动终端的成本。\n[0035] 下面结合附图讲述本发明实施例的具体技术方案。\n[0036] 如图1所示的移动终端中包括:蓝牙通信芯片101、处理器102、存储器103。\n[0037] 在存储器103中保存了应用程序、蓝牙开源协议栈等软件程序。\n[0038] 处理器102通过运行存储器103中的软件,并通过控制蓝牙通信芯片101,从而实现与其它设备的蓝牙通信。处理器102与蓝牙通信芯片101之间可以通过并行或串行的总线方式进行连接,例如USB(Universal Serial Bus,通用串行总线)、UART(Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置)、PCI(Peripheral Component Interconnect,外设组件互连标准)等连接方式。\n[0039] 本发明实施例提供的移动终端的软件内部框图,如图2所示,包括:应用层模块\n201、蓝牙协议模块202、通信模块203。\n[0040] 其中,应用层模块201接收用户的操作指令,并对用户的操作指令进行解析,确定该操作指令所对应的蓝牙控制命令,以及需要向蓝牙通信芯片101发送的命令数据。进一步,应用层模块201还可确定需要向蓝牙通信芯片101发送的是同步传输的命令数据还是异步传输的命令数据。\n[0041] 蓝牙协议模块202中具有开源蓝牙协议栈,其包括命令接口和数据接口用以分别接收应用层模块201发送的蓝牙控制命令和数据。进一步,数据接口可以包括同步传输数据接口和异步传输数据接口,用以分别接收应用层模块201发送的同步传输命令数据、异步传输命令数据。蓝牙协议模块202根据开源蓝牙协议将接收的蓝牙控制命令以及命令数据封装为HCI(HostController Interface,主控制器接口)命令数据包后添加到发送队列。\n[0042] 通信模块203将发送队列中的HCI命令数据包通过串行或者并行通信接口发送到蓝牙通信芯片101,蓝牙通信芯片101根据接收的HCI命令数据包进行相应操作,比如开启、关闭蓝牙设备,或者进行参数设置,或者向对端设备发送数据,或者接收对端设备发送的数据。\n[0043] 蓝牙通信芯片101在接收到对端设备发送的数据包后,通过通信模块203将数据包发送到蓝牙协议模块202。\n[0044] 蓝牙协议模块202接收通信模块203发送的数据包,并对数据包进行分析,将其组合为响应和响应数据,并将响应和响应数据分别通过命令接口、数据接口发送给应用层模块201。进一步,蓝牙协议模块202对于发送给应用层模块201的响应数据可以确定为同步传输的响应数据、或者异步传输的响应数据;同步传输的响应数据、或者异步传输的响应数据可分别通过同步传输数据接口和异步传输数据接口发送到应用层模块201。\n[0045] 应用层模块201根据蓝牙协议模块202发送的响应、响应数据(包括同步传输的响应数据、异步传输的响应数据)获得蓝牙通信芯片101返回的响应信息或者对端设备通过所述蓝牙通信芯片发送的信息。\n[0046] 上述应用层模块201具体可以通过DBus工具实现对用户的操作指令进行解析,得到蓝牙控制命令以及命令数据;以及根据蓝牙协议模块202发送的响应、响应数据获得蓝牙通信芯片101返回的响应信息或者对端设备通过所述蓝牙通信芯片发送的信息。除DBus工具之外,本领域技术人员也可以自行编制程序针对用户的操作指令进行解析,根据该操作指令而确定对应的蓝牙控制命令以及需要传输的数据,并确定该需要传输的数据为同步传输数据、还是异步传输数据。本领域技术人员也可以编制程序针对蓝牙协议模块202发送的响应事件、同步传输数据、异步传输数据进行分析,确定接收的响应,从而最终获得蓝牙通信芯片的响应信息或者对端设备发送的信息。\n[0047] 上述的蓝牙协议模块202的一种具体结构框图,如图3所示,包括:命令接口单元\n301、同步传输数据接口单元302、异步传输数据接口单元303、封装单元304、发送缓存单元\n305、接收缓存单元306、组合单元307。\n[0048] 命令接口单元301用于接收应用层模块201发送的蓝牙控制命令。\n[0049] 同步传输数据接口单元302用于接收应用层模块201发送的同步传输的命令数据。\n[0050] 异步传输数据接口单元303用于接收应用层模块201发送的异步传输的命令数据。\n[0051] 封装单元304用于将命令接口单元301、同步传输数据接口单元302、异步传输数据接口单元303接收的蓝牙控制命令、同步传输的命令数据以及异步传输的命令数据封装为HCI命令数据包后,添加到发送缓存单元305中。\n[0052] 通信模块203依次将缓存单元305中的HCI命令数据包发送到蓝牙通信芯片101。\n[0053] 接收缓存单元306接收通信模块203发送的数据包。\n[0054] 组合单元307将接收缓存单元306接收的数据包组合为响应和响应数据,其中响应数据可以是同步传输的响应数据,也可以是异步传输的响应数据。\n[0055] 命令接口单元301、同步传输数据接口单元302、异步传输数据接口单元303分别用于将组合单元307组合出的响应、同步传输的响应数据、异步传输的响应数据发送到应用层模块201。\n[0056] 蓝牙通信芯片101在初次上电时,其与处理器(比如处理器Intel PXA270)之间的串口通信的波特率为默认值(比如115200bps)。为了加快蓝牙通信芯片101与处理器之间的通信速率,应用层模块201可以在通过蓝牙协议模块202与通信模块203向蓝牙通信芯片101发送热启动命令之前,向蓝牙通信芯片101发送修改串口波特率的指令(例如配置PSKEY的指令),将蓝牙通信芯片101串口波特率寄存器中的值修改为高于默认值的波特率(比如921600);应用层模块201在向蓝牙通信芯片101发送热启动命令的同时,将处理器的串口波特率也设置为与蓝牙通信芯片101相同的波特率(比如921600)。这样,当蓝牙通信芯片101热启动后,蓝牙通信芯片101与处理器之间就可以以更高的波特率进行通信,从而提高了移动终端蓝牙通信速度。\n[0057] 此外,应用层模块201还可以通过对传输数据包大小参数(比如MTU数值)进行调整,来提高蓝牙通信速度。通常,MTU(Maximum Transmission Unit,最大传输单元)值被设置为默认值(比如4096字节)。如果,移动终端与对端设备之间MTU值设置的不一样,则有可能导致文件传输速度不一样,从而导致较高的误码率,使得移动终端与对端设备间出现重传的频次增加,会降低双方的通信速度。因此,应用层模块201在文件传输前,通过蓝牙协议模块202、应用层模块201获得对端设备的MTU设置值,根据对端设备的MTU设置值确定本移动终端的MTU设置值:\n[0058] 假设应用层模块201获得对端设备的MTU设置值为MTU_tx_B,本移动终端可以设置的MTU上限值为MTU_max_A;\n[0059] 当MTU_max_A小于等于MTU_tx_B时,本移动终端的MTU设置值MTU_tx_A=MTU_max_A;\n[0060] 当MTU_max_A大于MTU_tx_B时,本移动终端的MTU设置值MTU_tx_A=MTU_tx_B。\n[0061] 这样,可以尽量保证本移动终端与对端设备设置的MTU值一致。应用层模块201根据确定的MTU设置值进行设置后,双方通信可以保持一个较低的误码率,降低重传概率,从而提高蓝牙通信速度。\n[0062] 上述的同步传输数据接口具体可以是ACL(Asynchronous ConnectionlessLink,异步链路)接口。ACL是蓝牙系统中定义的两种数据链路之一,其是在LMP level上创建的两种设备之间的异步链接(分组交换)连接。这种类型的链接主要用来发送ACL(异步链路)包。\n[0063] 上述的异步传输数据接口具体可以是SCO(Synchronous ConnectionOriented link,面向连接的同步链路)接口;SCO支持对时延敏感的信息如语音的传输,是蓝牙中定义的两种数据链路方式中的另一种。SCO采用保留带宽进行同步通信(电路交换),即两台设备在LMP(Link Manager Protocol,链路管理协议)层利用保留时隙在物理信道上周期传送数据包。这种类型的链接主要用于传送SCO包(语音数据)。SCO包不包括CRC码,且不进行重传,可以支持传输有时间限制的信息,例如声音。通常在ACL链接已经建立之后,才建立SCO链接。\n[0064] 本发明实施例提供的移动终端蓝牙通信方法的流程图,如图4a和4b所示,包括如下具体步骤:\n[0065] S401、接收用户输入的操作指令。\n[0066] 比如,用户可以输入开启蓝牙设备、关闭蓝牙设备、通过蓝牙向对端设备发送某个文件等操作指令。\n[0067] S402、根据输入的操作指令,确定对应的蓝牙控制命令以及命令数据。\n[0068] 对于蓝牙通信芯片而言,其能识别特定的蓝牙控制命令;因此,如果要控制蓝牙通信芯片进行相应的操作,应用层就需要解析用户输入的操作指令,并确定要完成该操作指令需要蓝牙通信芯片执行哪些蓝牙控制命令。由于,这种解析、确定对应蓝牙控制命令以及命令数据的工作是个非常繁琐的过程,目前,可以在移动终端中集成DBus工具来完成该项任务。\n[0069] S403、将蓝牙控制命令以及命令数据封装为HCI命令数据包后发送给蓝牙通信芯片。\n[0070] 依据蓝牙的开源协议(比如BuleZ、OpenOBEX)将蓝牙控制命令以及命令数据封装为HCI命令数据包,并通过处理器与蓝牙通信芯片之间的串口连接将HCI命令数据包发送给蓝牙通信芯片。\n[0071] S404、蓝牙通信芯片根据接收的HCI命令数据包执行相应操作或者向对端设备发送无线数据。\n[0072] 蓝牙通信芯片在接收到HCI命令数据包后,可以获得蓝牙控制命令以及命令数据。蓝牙通信芯片根据蓝牙控制命令进行相应操作,比如进行热启动、设置参数、向对端设备发送无线数据等。\n[0073] S405、蓝牙通信芯片还可以向上层应用层返回操作响应以及对端设备发送给本移动终端的数据包。\n[0074] S406、在接收到蓝牙通信芯片发送的数据包后,将接收的数据包组合为响应和响应数据。\n[0075] S407、根据组合出的响应和响应数据,获得蓝牙通信芯片返回的响应信息或者对端设备通过所述蓝牙通信芯片发送的信息。\n[0076] 为了加快蓝牙通信芯片与处理器之间的通信速率,移动终端启动蓝牙设备前(即向蓝牙通信芯片发送热启动命令前),先向蓝牙通信芯片发送修改串口波特率的指令,将蓝牙通信芯片串口波特率寄存器中的值修改为高于默认值的波特率;并在向蓝牙通信芯片发送热启动命令时,将处理器的串口波特率也设置为与蓝牙通信芯片相同的波特率。这样,当蓝牙通信芯片热启动后,蓝牙通信芯片与处理器之间就可以以更高的波特率进行通信,从而提高了移动终端蓝牙通信速度。\n[0077] 移动终端还可以通过蓝牙通信芯片获得对端设备的MTU设置值,并根据获得的对端设备的MTU设置值以及本移动终端的MTU上限值,确定本移动终端的MTU设置值。确定本移动终端的MTU设置值的方法前述已经详细介绍,此处不再赘述。\n[0078] 本发明实施例的移动终端由于根据开源的蓝牙协议将操作指令对应的蓝牙控制命令以及命令数据封装为命令数据包后发送给蓝牙通信芯片,从而可以控制蓝牙通信芯片执行相应操作、向对端设备发送无线数据,以较低成本实现蓝牙通信。\n[0079] 由于本发明实施例的移动终端在向蓝牙通信芯片发送热启动命令前,将蓝牙通信芯片串口波特率设置为一个较大的波特率;并在向蓝牙通信芯片发送热启动命令时,将处理器的串口波特率也设置为与蓝牙通信芯片相同的波特率。这样,当蓝牙通信芯片热启动后,蓝牙通信芯片与处理器之间就可以以更高的波特率进行通信,从而提高了移动终端蓝牙通信速度。\n[0080] 由于本发明实施例的移动终端还可以通过蓝牙通信芯片获得对端设备的MTU设置值,并根据获得的对端设备的MTU设置值以及本移动终端的MTU上限值,确定本移动终端的MTU设置值;从而尽量保证本移动终端与对端设备设置的MTU值一致,使得双方通信可以保持一个较低的误码率,降低重传概率,提高蓝牙通信速度。\n[0081] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如:\nROM/RAM、磁碟、光盘等。\n[0082] 还可以理解的是,附图或实施例中所示的装置结构仅仅是示意性的,表示逻辑结构。其中作为分离部件显示的模块可能是或者可能不是物理上分开的,作为模块显示的部件可能是或者可能不是物理模块,既可以位于一个地方,也可以分布到几个网络单元上。\n[0083] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2008-07-30
|
2007-09-18
| | |
2
| | 暂无 |
2003-04-18
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |