基于蓝牙通信的高容错实时信号采集系统转让专利

申请号 : CN201110410173.7

文献号 : CN102523024B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 肖双九何轩洪琛陆飞施梦玮

申请人 : 上海交通大学

摘要 :

本发明公开一种基于蓝牙通信的高容错实时信号采集系统,包括:采集信号的从设备,接收与处理信号的主设备,以及自定义蓝牙通信协议。此系统在采集信号的同时,可计算出信号触发的精确时刻。从设备负责采集信号和触发时刻,通过自定义的蓝牙通信协议与主设备通信。主设备负责自动查找,配对,连接从设备,并通过计算当前通信延迟从而得出信号精确触发时刻,判断丢包错包问题等。自定义蓝牙通信协议则通过心跳检测与延迟测量,信号数据封装,防丢包通信机制等屏蔽掉实际应用中的信号干扰。

权利要求 :

1.一种基于蓝牙通信的高容错实时信号采集系统,其特征在于包括:用于采集信号及触发的精确时刻,实时响应主设备命令的从设备;

负责发起通信,接收并处理采集信号,计算信号精确触发时刻及判断丢包错包的主设备;以及负责保证主从设备通信的自定义蓝牙通信协议;

所述主设备通过心跳检测实时监控从设备状态,双方均发送一组信号而非单帧信号来防止丢包问题,从而保证信号采集的高容错性;

所述系统采用心跳检测与信号采集分时复用的方式,通过心跳检测测量本次通信延迟,并根据经验公式计算出当前通信延迟,再通过一组信号求平均值的方式得出信号触发的精确时刻;所述经验公式为:新平均延迟=3/4*平均延迟+1/4*(心跳检测发送时刻-心跳检测接收时刻)/2。

2.根据权利要求1所述的基于蓝牙通信的高容错实时信号采集系统,其特征是:所述系统采用防丢包通信机制,首先在发送信号中包含序号,以便PC端检测出丢包问题,每次发送信号并非发送一个,而是发送一组信号,信号间采用固定的延时以防止两次通信间的干扰,此信号间的延时使用单片机的时钟中断来精确计数。

3.根据权利要求1所述的基于蓝牙通信的高容错实时信号采集系统,其特征是:所述的主设备,自动化查找,配对,连接从设备。

4.根据权利要求1所述的基于蓝牙通信的高容错实时信号采集系统,其特征是:所述的自定义蓝牙通信协议,通过心跳检测与延迟测量,信号数据封装,防丢包通信机制屏蔽掉了实际应用中的信号干扰。

5.根据权利要求1所述的基于蓝牙通信的高容错实时信号采集系统,其特征是:所述系统采用蓝牙虚拟串口通信方式。

说明书 :

基于蓝牙通信的高容错实时信号采集系统

技术领域

[0001] 本发明涉及一种基于蓝牙通信的信号采集系统,具体地说,涉及的是用于高容错及需精确捕捉信号触发时刻的信号采集系统。

背景技术

[0002] 在很多应用场景中,在利用嵌入式设备采集信号的同时,还需要采集其信号触发的精确时刻,实时地通过无线通信技术发送给计算机,并尽可能解决掉通信中的丢包错包问题。蓝牙是目前较为成熟的无线通信技术,但在传输过程中仍会出现信号丢失问题,而且通信会产生一定的延迟。对市面上使用最广的CSR蓝牙芯片进行测试,发现当通信频率足够高时,会出现明显的丢包问题,并且受距离,电磁干扰,发射功率等影响,有一定的通信延迟出现,在激光枪射击的应用中,10米通信延迟在200ms左右。
[0003] 对于现有的无线信号采集解决方案,如蓝牙鼠标,对实时性要求也很高,但现有技术做到的只是尽可能地降低通信延迟,而无法采集到信号精确地触发时刻。而某些应用,如激光枪射击应用,需要精确地捕捉扳机扣动的射击时刻,这是现存技术无法解决的。另外,对于蓝牙鼠标蓝牙耳机,对容错性要求也不高,偶尔错包丢包对应用影响甚微。而若射击信号丢失,对此类应用来说是致命的。
[0004] 另外,对于现有的大多数蓝牙应用,都需用户手动进行设备查找,配对连接和虚拟化串口等操作,操作烦琐,且对用户并非透明。

发明内容

[0005] 本发明针对现有技术中的不足,提供一种基于蓝牙通信的高容错实时信号采集系统,能够克服现有技术无法精确采集信号触发时刻和容错性弱的不足,同时克服了现有技术无法自动查找,配对,连接蓝牙设备的不足。
[0006] 本发明是通过如下技术方案实现的,本发明包括:
[0007] 用于采集信号及触发的精确时刻,实时响应主设备命令的从设备;
[0008] 负责发起通信,接收并处理采集信号,计算信号精确触发时刻及判断丢包错包的主设备;以及
[0009] 负责保证主从设备通信的自定义蓝牙通信协议。
[0010] 为保证通信效率,本发明选择蓝牙虚拟串口通信方式。这里采用了主从式通信模式的设计方案:嵌入式端作为从设备,功能做得尽量精简,尽可能降低信号采集与通信的延迟,以实时采集和响应主设备的各种命令为主;而PC端作为主设备,负责发起通信,接收并处理采集到的信号,如计算当前通信延迟从而得出信号精确触发时刻,判断丢包错包问题。
[0011] 在本发明中,将以激光枪射击应用作为示例来进行阐述。在激光枪射击应用需要实时采集扳机触发时刻和上膛退膛信号(别的应用中可替换成相应的事件进行捕捉)。这里从设备端采用AT89S52单片机,中断优先级为INT0>T0>INT1>T1>UART,由于只对扳机触发时刻需要精确采集,因此外部中断INT0用于扳机触发信号,外部中断INT1用于上退膛信号(中断与查询方式相结合,此为本应用特定需求,可忽略),时钟中断T0用于蓝牙信号发送的时间间隔,时钟中断T1用于蓝牙发送的波特率。外部中断由硬件电路产生的延迟可忽略不计,时钟中断则借助晶振精确地产生时间间隔。
[0012] 为了保证实时性与容错性,这里采用了心跳检测与信号采集分时复用的方式,相当于单片机端的多线程。在非工作阶段,主设备向从设备发起心跳检测(示例中随机发送一个字节0xFX),若在一定时间内返回相同的字节,则心跳检测成功,以此握手及时掌控从设备的生命周期。另外,心跳检测更重要的一个目的是为了测量当前无线网络环境与通信距离下,蓝牙通信的固定延迟时间。由于通信距离和当前的无线网络环境可能会逐渐变化,经过大量实验得出的经验公式为:
[0013] 新平均延迟=3/4*平均延迟+1/4*(心跳检测发送时刻-心跳检测接收时刻)/2[0014] 而信号接收时刻减去蓝牙通信固定延迟,就能精确计算出此信号触发的真正时刻,从而实现了实时性。
[0015] 对于容错性,此处设计了防丢包通信机制:首先在发送信号中包含序号,以便PC端检测出丢包问题。更进一步的是,每次发送信号并非发送一个,而是发送一组信号,信号间采用固定合理的延时以防止两次通信间的干扰,此信号间的延时使用单片机的时钟中断来精确计数。
[0016] 除此之外,本发明中还包括对Windows操作系统蓝牙API的封装与扩展,实现了蓝牙设备查找,配对,连接的全自动化。对于用户来说,无需像以往的蓝牙应用一样,需人工判断设备与串口,手动进行连接配对,整个过程对于用户来说都是透明的。
[0017] 与现有技术相比,本发明的有益效果是:实现了基于蓝牙通信的高容错信号采集,并在采集信号的同时,可计算出信号触发的精确时刻。从设备负责采集信号及触发时刻,通过自定义的蓝牙通信协议与主设备通信。主设备负责自动查找,配对,连接从设备,并通过计算当前通信延迟从而得出信号精确触发时刻,判断丢包错包问题等。自定义蓝牙通信协议则通过心跳检测与延迟测量,信号数据封装,防丢包通信机制等屏蔽掉实际应用中的信号干扰。

附图说明

[0018] 图1为本发明实施例的原理示意图。

具体实施方式

[0019] 下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0020] 如图1所示,本实施例主要包括主设备,从设备以及自定义的蓝牙协议。
[0021] 从设备将信号源连接到嵌入式MCU的外部中断引脚,MCU采用中断方式采集信号及其触发时刻,并将蓝牙TX,RX连接到MCU的串口引脚,往MCU烧入包含心跳检测,信号采集与封装,防丢包通信机制的程序,即可由MCU来控制嵌入式端蓝牙信号的发送与接收。
[0022] 主设备插入通用的蓝牙适配器,C++库BluetoothDiscoveryDLL.dll封装了windows蓝牙标准API,封装并扩展了查找,匹配,连接蓝牙设备的接口。C#库BluetoothMgnt.dll则示例了PC端作为主设备,如何自动化查找匹配连接从设备,并负责发起通信,接收并处理采集到的信号,如计算当前通信延迟从而得出信号精确触发时刻,判断丢包错包问题。
[0023] 本实施例将以激光枪射击应用作为示例来进行阐述。在示例中必定要着眼于特定的软硬件环境特定的业务需求,但并不局限于此,不具有对独特条件的依赖性,很容易扩展到类似的应用中。
[0024] 本实施例中,在激光枪射击应用需要实时采集扳机触发时刻和上膛退膛信号(别的应用中可替换成相应的事件进行捕捉)。这里嵌入式端1采用AT89S52单片机,中断优先级为INT0>T0>INT1>T1>UART,由于只对扳机触发时刻需要精确采集,因此外部中断INT0用于扳机触发信号,外部中断INT1用于上退膛信号(中断与查询方式相结合,此为本应用特定需求,可忽略),时钟中断T0用于蓝牙信号发送的时间间隔,时钟中断T1用于蓝牙发送的波特率。外部中断由硬件电路产生的延迟可忽略不计,时钟中断则借助晶振精确地产生时间间隔。
[0025] 本实施例中,为了保证实时性与容错性,通过心跳检测与信号采集模块,采用了心跳检测与信号采集分时复用的方式,相当于单片机端的多线程。在非射击阶段,PC端2向嵌入式端1发起心跳检测(示例中随机发送一个字节0xFX),若在一定时间内返回相同的字节,则心跳检测成功,以此握手及时掌控从设备的生命周期。另外,心跳检测更重要的一个目的是为了测量当前无线网络环境与通信距离下,蓝牙通信的固定延迟时间。由于通信距离和当前的无线网络环境可能会逐渐变化,经过大量实验得出的经验公式为:
[0026] 新平均延迟=3/4*平均延迟+1/4*(心跳检测发送时刻-心跳检测接收时刻)/2[0027] 而射击信号接收时刻减去蓝牙通信固定延迟,就能精确计算出此信号触发的真正时刻,从而实现了实时性。
[0028] 对于容错性,此处设计了防丢包通信机制模块:首先在发送信号中包含序号,以便PC端检测出丢包问题。更进一步的是,每次发送信号并非发送一个,而是发送一组信号,信号间采用固定合理的延时以防止两次通信间的干扰,此信号间的延时使用单片机的时钟中断来精确计数。如在应用中,射击信号每次均发送5帧数据,两帧间隔时间为200ms。此通信机制极大程度地解决了丢包问题,经过大量实验已确认,丢失一两帧数据比较常见,但五帧全丢的可能性几乎为0。另外,连续发送一组信号另一个作用是更为精确地计算出信号触发时刻,对于蓝牙通信的固定延迟时间,通过实验证明,延迟时间是呈高峰波的正态分布(双向通信对等性的证明),因此可以用峰值处的延迟时间近似作为每次通信的固定延迟时间。通过若干帧数据求平均值,减小了蓝牙通信的波动误差。
[0029] 除此之外,蓝牙在PC端Windows操作系统下,目前不存在蓝牙设备查找,配对,连接成熟通用的框架(WinCE中有,但只用于嵌入式设备),因此,本实施例中还包括对Windows操作系统蓝牙API的封装与扩展,实现了蓝牙设备查找,配对,连接的全自动化。对于用户来说,无需像以往的蓝牙应用一样,需人工判断设备与串口,手动进行连接配对,在应用中,整个过程对于用户来说都是透明的。
[0030] 尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。