CN112688771B - 一种全双工语音通信方法及系统 - Google Patents
一种全双工语音通信方法及系统 Download PDFInfo
- Publication number
- CN112688771B CN112688771B CN201910991969.2A CN201910991969A CN112688771B CN 112688771 B CN112688771 B CN 112688771B CN 201910991969 A CN201910991969 A CN 201910991969A CN 112688771 B CN112688771 B CN 112688771B
- Authority
- CN
- China
- Prior art keywords
- communication
- voice
- timer
- data
- communication party
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000006854 communication Effects 0.000 title claims abstract description 324
- 238000004891 communication Methods 0.000 title claims abstract description 322
- 238000000034 method Methods 0.000 title claims abstract description 62
- 239000013078 crystal Substances 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 18
- 238000005070 sampling Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 239000003999 initiator Substances 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 208000033748 Device issues Diseases 0.000 description 2
- 230000010355 oscillation Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Abstract
本发明公开一种全双工语音通信方法及系统,通过调整主通信方和从通信方的时钟误差,实现二者之间的全双工通信。此种技术方案通过将时隙同步的算法实现放在软件应用层处理,降低了时隙同步的实现难度可实现对讲机之间的全双工通信,提高通信同步性,适用范围广。
Description
技术领域
本发明属于无线通信技术领域,涉及一种在无线设备之间实现全双工语音通信的方法,特别涉及一种通过自动调整定时器计数的方式在无线设备之间建立同步双时隙的机制以实现全双工语音通信的方法及系统。
背景技术
无线语音通信是比较普遍使用的通信方式,比如常见的手机通信。在手机通话的过程中,为了达到理想的用户体验,手机通信都是支持全双工通信的,即通信接收方在接听通话的同时,也可以说话,并被通话发起方收听到。但是,在对讲机技术里,很多对讲机只能支持单工通信,也就是半双工通信。半双工通信和全双工通信的区别在于,半双工通信中的通信接收方在通信发起方的通信结束前是不能说话的,直到通信发起方结束通话后,原先的通信接收方才可以开始说话,比如使用Digital Private Mobile Radio(dPMR)标准的对讲机手台就是使用半双工的通信方式,这样的通信方式对于普通用户来说,体验会差于全双工通信。
作为高级功能,有的对讲机标准也支持全双工的语音通信,比如Digital MobileRadio(DMR)标准。DMR标准通过定义双时隙的方式支持全双工语音通信,但是作为专业对讲协议标准,其实现的技术难度比较高,尤其是对双时隙的同步精度要求比较严格。DMR协议中的全双工通信简要示意如图1。
DMR每个时隙的长度是30毫秒,时隙1和时隙2交替出现。用户1使用时隙1发送语音数据1。用户2使用时隙2发送语音数据2。全双工语音通信的过程为:用户1在长度为30毫秒的时隙1内发送语音1,该语音1携带了可以播放60毫秒时间长度的语音数据。用户2在时隙2发送语音2,该语音2携带了可以播放60毫秒时间长度的语音数据。这种工作方式,保证了通信双方每30毫秒向对方发送一段数据,而接收方可以用这段数据播放60毫秒的语音,这样通信双方的体验就是可以同时收听和说话。这种通信方式的技术重点在于,通信双方的时隙必须严格对齐,也就是说,用户1的时隙1和用户2的时隙1是同时开始和结束,用户1的时隙2和用户2的时隙2也是同时开始和结束。为了保持时间同步,DMR协议标准规定,每隔一定数量的时隙,必须要在数据中间插入同步字,同步字使用规定的数据格式以方便接收方辨识。当接收方解析出当前数据里含有同步字,就必须做一次同步校准,这样的方式要求通信接收方在解调数据的同时,就要分辨是否存在同步字,然后相应地做同步校准动作,对调制解调器来说,相比较单纯的解调数据操作,会增加开销。
手持对讲机上使用双时隙的原因,是一般来说对讲机使用的是半双工天线,也就是射频不支持在发射数据的同时接收数据,所以需要用两个时隙交替发射来实现双工通信的体验。
由于电子通信设备通常使用处理器来处理数据,而处理器本身会带有定时器功能。使用定时器定时然后触发中断,可以在程序的应用层产生时隙。只要通信双方处理器的定时器产生的时隙是同步发生的,就能比较简单地实现全双工应用。一般来说,定时器是用计数的方式来计算时间的,定时器开始工作时,计数值为0。定时器每隔固定时间将计数器加1,直到计数值到达指定数值,定时器就产生中断,表示定时的时间到期。要使通信双方能够产生相同长度并且同步的时隙,有两个条件需要满足,一是双方定时器同时开始,另一个是双方定时器每次计数所消耗的时间相同。但实际情况是,当双方定时器同时开始工作,并且程序指定了相同的计数值后,定时器到期的时间往往不一样。原因在于定时器是依赖晶体震荡来产生计数的,而每个晶体的精度都是不一样的。比如A晶体的精度是+/-10ppm,B晶体的精度是+/-20ppm,其代表的含义是A晶体每隔1秒,会和标准时间偏差+/-10微秒,B晶体每1秒会和标准时间偏差+/-20微秒(即使精度标值一样的晶体,也会存在细微的差别)。具体到定时应用中,定时器每一次计数时候就已经产生了一定的偏差,通信双方即使实现了定时器同时启动,计数值完全一致,也很难保证定时器最终产生的时隙长度相等。
在很多对精度有要求的应用中,会采用偏差表现比较稳定的晶体来提供频率源。虽然定时器使用精度不同的晶体提供震荡源,即使同时开始计时,也会出现时隙不稳定的结果,但是如果晶体本身的偏差波动比较稳定,可以主动调整计数值来实现时隙同步。
图2中,定时器A和定时器B同时开始计数。定时器A计数1次理论上耗时200毫秒,实际上计数1次也耗时200毫秒。而定时器B计数1次理论上耗时200毫秒,实际上由于所使用的晶振的偏差,耗时130毫秒。假如应用需求定时长度为1秒钟,程序计算出定时器定时长度等于5次计数。当计数开始到计数结束,定时器A正好在1秒时候完成工作。而定时器B在650毫秒处就完成了工作,相比定时器A,定时器B产生的中断提前了。最终两个定时器产生的时隙偏差为350毫秒。
发明内容
本发明的目的,在于提供一种全双工语音通信方法及系统,其可实现对讲机之间的全双工通信,提高通信同步性,适用范围广。
为了达成上述目的,本发明的解决方案是:
一种全双工语音通信方法,用于在主通信方和从通信方直接实现全双工通信;包括如下步骤:
步骤1,主通信方触发通信,开始采集语音信息,并启动本地定时器,定时长度为t,并定义当前时隙为时隙1,定时器计数到达C时产生中断,时隙1结束;主通信方定时器自动开始计数,定义此时为时隙2;
步骤2,主通信方定时器计数到达C时,再次产生中断,开始下一个时隙1;此时主通信方采集到能够播放2t时间长度的语音数据,打包后得到长度为L的数据并发送,其中包含该数据发射于时隙1;主通信方记录数据发送完成时本地定时器的计数值C主;
步骤3,从通信方接收到数据后,标记当前所处的时隙为时隙1,并启动本地定时器,定时长度为t,并设置本时隙1内剩余的计数为C-C1,其中C1对应的是计数器计数L*8*(1/S)秒需要的数量,无线速率为S比特每秒;从通信方将接收到的数据进行解码放音,同时采集从通信方的语音信息;
步骤4,主通信方定时器产生中断并自动重新计数,表示时隙2开始,主通信方不发送数据,保持接收状态;从通信方定时器产生中断并自动重新计数,表示时隙2开始,此时保持接收状态;
步骤5,主通信方定时器产生中断并自动重新计数,表示时隙1开始;主通信方已经采集到能够播放2t时间长度的语音数据,发送该语音数据,并将上次发送语音数据后记录下的C主包含到数据中;从通信方定时器产生中断并重新计数,当前时隙为1,从通信方保持接收状态,经过L*8*(1/S)秒后,从通信方接收到主通信方发送的语音数据,记录当前从通信方本地定时器的计数值C当前,并且记录下数据中携带的C主,然后对数据进行解码播放;
步骤6,主通信方定时器产生中断并自动重新计数,表示时隙2开始;主通信方保持接收状态;从通信方定时器产生中断并自动重新计数,表示时隙2开始,此时从通信方已经采集到能够播放2t时间长度的语音数据,发送该语音数据,经过L*8*(1/S)后,主通信方接收到该数据,并进行解码放音;
步骤7,重复步骤5和步骤6,一共重复N-1次,N由用户定义;
步骤8,从通信方开始定时器校准,将N次C主数据相加再除以N获得C主平均,将C主平均和C当前进行比较,如果C当前大于C主平均,表示从通信方定时器的计数速度比主通信方的定时器计数速度快,近似认为从通信方的定时器计时速度在每个时隙内比主通信方的定时器计时速度快|C当前-C主平均|/(N*2-1)个单位,|C当前-C主平均|定义为C偏差,校准从通信方的本地定时器长度,将长度修改为C+C偏差/(N*2-1),定义为C校;如果C当前小于C主平均,表示从通信方定时器的计数速度比主通信方的定时器计时速度慢,在每个时隙内从通信方的定时器计数比主通信方的定时器慢|C主平均-C当前|/(N*2-1)个单位,|C主平均-C当前|定义为C偏差,校准从通信方的本地定时器定时长度为C-C偏差/(N*2-1),定义为C校;校准完成后,用C校替换C;
步骤9,重复步骤5到步骤8,每次在从通信设方进行校准时C主平均和C当前都会有细微的变化,直至二者差值小于C容忍,则完成校准,直至语音通信结束。
上述步骤9中,语音通信结束的实现方法是:如果主通信方停止语音通信,而从通信方没有停止语音通信,则主通信方仍旧保持在每个时隙1发送L长度的数据包,但标记为空数据,从通信方保持正常语音发送,直到从通信方发出结束语音的请求,主通信方停止发送,通信结束。
上述步骤9中,语音通信结束的实现方法是:如果从通信方发出停止语音的请求,而主通信方没有发出停止通信的请求,则从通信方保持在时隙1接收数据和同步过程,直到主通信方发出停止通信的请求,通信结束。
一种全双工语音通信系统,包括主通信方和从通信方,二者结构相同,均包括处理器、语音编解码器、语音采样模块、语音播放模块和定时器,其中,语音编解码器连接语音采样模块和语音播放模块,用于将语音采样模块采集的本地语音信息进行编码,以及将本地接收的语音信息进行解码并送入语音播放模块进行放音;定时器用于进行计数,并产生中断;处理器用于根据所述的一种全双工语音通信方法实现语音数据的采集、发送和接收、放音,并实现通信时间的校准。
上述定时器采用带温补功能的TCXO晶振。
采用上述方案后,本发明的改进点在于:在保证使用效果的同时,将时隙同步算法从传统的基于硬件信号处理的复杂方式,改变为简单的对时钟误差的调整。通常无线通信使用的时间同步算法需要在调制解调器内对接收到的信号进行指定的处理,离不开调制解调器的支持,而本发明通过将时隙同步的算法实现放在软件应用层处理,降低了时隙同步的实现难度。放在软件层实现,用户无论采用何种无线通信模块,都不需要考虑调制解调器是否支持,只需要在用户应用程序里调节就可以实现高精度的时隙同步效果,即使系统采用不同规格的时钟源(晶振),本发明提出的方法也可以自动调节,具有广泛的适应性。
附图说明
图1是DMR全双工语音通信示意图;
图2是不同晶振同时计数的示意图;
图3是通过调整计数数量的方式同步时隙的示意图;
图4是主通信方工作流程图;
图5是主通信方通信结束标记检查流程图;
图6是从通信方工作流程图;
图7是从通信方检查通信结束流程图;
图8是对讲装置原理图。
具体实施方式
以下将结合附图,对本发明的技术方案及有益效果进行详细说明。
图3展示了通过调整定时器计数值的方式来校准时隙的原理:通过计算出定时器A和定时器B之间计数值和时间的差别,动态调整定时器B的计数值。也就是说,如果定时长度要求是1秒,虽然理论上定时器B需要计数5次,但是考虑到误差后,将定时器B的定时计数设置为8,那么当定时器B每次产生中断生成时隙时,时隙的长度为1040毫秒,和定时器A的偏差为40毫秒,效果就会改善很多。
在实际使用中,全双工通信的第一次通信发起方使用定时器A,而第一次通信的接收方使用定时器B,时隙的产生以定时器A为标准,而定时器B通过一些必要的信息处理,经常性计算和定时器A之间每次计数的差距,不断校准定时器B自身的定时计数值,就可以做到时隙的同步。
在应用层实现对讲机全双工双时隙同步过程,可以通过调整通信接收方的定时器计数来实现。假设通信的发起方为用户1,通信的接收方为用户2。当用户1发起通信后,用户2收听到用户1的声音,同时用户2也开始说话,在全双工通信模式下,用户2也发送通信,此时用户1为接收方。为了简化起见,用户1称为主通信方,用户2称为从通信方。
在通信过程中,时间被定义为时隙1和时隙2,主通信方在时隙1发送语音数据,从通信方在时隙2发送语音数据。时隙的长度为t,通信双方每次发送的语音数据可以播放时间长度为2t的语音。每次发送的语音数据以字节为单位,长度为L字节,L字节是一个固定长度,包括语音数据和必要的命令内容,无线通信的速率以比特为单位,记为S比特每秒。通信双方使用定时器计数的方式来产生同步时隙,在此假设不考虑晶体自身偏差的情况下,计数长度为t的时隙,定时器需要计数C次。
所述全双工语音对讲通信的步骤是:
1、主通信方按下通话发起按钮,触发第一次通信。主通信方首先启动语音编码器开始对语音输入进行采样和编码。然后主通信方启动定时器,并且定义当前时隙为时隙1。定时器定时长度为t,当定时器的计数器计数到达C时,定时器会产生一个中断,通知主通信方时隙1结束。
2、主通信方的定时器中断产生,表明此时时隙1结束。定时器自动重新开始计数,此时定义为时隙2。
3、主通信方定时器中断产生,表明时隙2结束,下一个时隙1开始。此时语音编解码器已经采集并编码完成可以播放2t时间长度的语音数据。主通信方将数据打包,数据长度为L,通过无线发射单元将数据发送到空中。因为无线速率为S比特每秒,所以经过L*8*(1/S)秒后,数据在从通信方接收到。由于数据是在时隙1上发射的,这个信息会包含在发出的数据中,当接收方收到数据后,可以明确当前时隙为1。主通信方在收到数据发送完成的提示后,要记录下数据发送完成时本地定时器计数值,定义为C主。从通信方第一次接收到通信后,会标记当前所处的时隙为1。从通信方首先启动本地的语音编解码器,然后启动本地的定时器,定时器定时长度为t,但是因为当前时隙内时间已经过去了L*8*(1/S)秒,所以在本时隙内剩下的定时器计数要设置为C-C1,其中C1对应的是计数器计数L*8*(1/S)秒需要的数量。从通信方将接收到的语音数据交给语音编解码器进行解码放音,同时语音编码器的编码功能也开启,对从通信方的语音输入进行编码。此时主通信方和从通信方的定时器都已经开始工作,但由于未经过校准,会存在一定程度的偏差。
4、主通信方定时器产生中断并自动重新计数,表示时隙2开始,主通信方不发送数据,保持接收状态。从通信方定时器产生中断并自动重新计数,表示时隙2开始,虽然按照定义,时隙2属于从通信方发送数据的时隙,但是因为从通信方的语音编解码器还没有采集到能够播放2t时间长度的语音数据,所以不发送,而是保持接收状态。
5、主通信方定时器产生中断并自动重新计数,表示时隙1开始。主通信方已经采集到可以播放2t时间长度的语音数据,所以立即发送语音数据。并将上次发送语音数据后记录下的C主包含到数据中。从通信方定时器产生中断并重新计数,当前时隙为1,从通信方保持接收状态。经过L*8*(1/S)秒后,从通信方接收到主通信方发送的语音数据,要记录下当前从通信方本地定时器的计数值C当前,并且记录下数据中携带的C主,然后将数据传给语音编解码器进行解码播放。
6、主通信方定时器产生中断并自动重新计数,表示时隙2开始。主通信方不发送语音数据,保持接收状态。从通信方定时器产生中断并自动重新计数,表示时隙2开始。因为从通信方的语音编解码器已经对播放长度为2t的语音完成了编码工作,所以立刻开始发送数据,经过L*8*(1/S)后,主通信方接收到该数据,并交给语音编解码器解码放音。
7、重复步骤5和步骤6,一共重复N-1次。N由用户定义,N的含义是经过一定次数的语音接收后,从通信方需要进行时隙校准。
8、主通信方定时器产生中断并自动重新计数,表示时隙1开始。主通信方已经采集到可以播放2t时间长度的语音数据,立即发送语音数据,并包含上次发送数据结束时候记录下的C主。从通信方定时器产生中断并重新计数,当前时隙为1。从通信方保持接收状态。经过L*8*(1/S)秒后,从通信方接收到主通信方发送的语音数据,此时记录下当前从通信方本地定时器的计数值C当前,并且记录下数据中携带的C主。然后将数据传给语音编解码器进行解码播放。然后从通信方开始定时器校准。从步骤5开始,从通信方一共接收到N次语音通信。由于从通信方和主通信方使用的定时器所依赖的晶振之间会有频率偏差,所以从通信设备记录下的C当前不等于C1,即不等于根据数据包长度和无线传输速度计算得出的时间,而每次获得的C主也不会等于C1,并且每次C主也不会是完全一样的。校准的第一步是将N次C主数据相加再除以N获得C主平均,将C主平均和C当前进行比较,如果C当前大于C主平均,表示从通信方定时器的计数速度比主通信方的定时器计数速度快。因为当从通信设备接收到第N次数据的时候,时间已经过去了将近N*2-1个时隙,所以可以近似认为从通信方的定时器计时速度在每个时隙内比主通信方的定时器计时速度快了|C当前-C主平均|/(N*2-1)个单位,|C当前-C主平均|定义为C偏差。校准从通信方的本地定时器长度,将长度修改为C+C偏差/(N*2-1),定义为C校。如果C当前小于C主平均,表示从通信方定时器的计数速度比主通信方的定时器计时速度慢,可以由此计算出在每个时隙内从通信设备的定时器计数慢了|C主平均-C当前|/(N*2-1)个单位,|C主平均-C当前|定义为C偏差。校准从通信方的本地定时器定时长度为C-C偏差/(N*2-1),定义为C校。校准过程只在从通信方进行,不在主通信设备上进行,因为校准的目的是为了让从通信设备和主通信设备保持一致。校准完成后,用C校替换C。
9、重复步骤5到步骤8。每次在从通信设备上进行校准时C主平均和C当前都会有细微的变化,如果判断出它们的差值在一定的范围以内,定义为C容忍,则不用进行校准。C容忍是一个经验值,由用户根据实际应用确定,其含义是当主通信设备和从通信设备之间计数偏差不超过一定范围,就认为同步是正常的。在实际测试中,如果采用精度为+/-20ppm的外置晶振作为定时器的频率来源,定时器频率为48MHz,时隙长度为80毫秒,从通信设备每10次接收主通信设备数据后进行同步校准,通信双方的时隙偏差可以稳定在5微秒以内,此时C容忍就等于该定时器计数5微秒所需的计数值。
10、如果主通信设备停止语音通信,而从通信设备没有停止语音通信,则主通信设备仍旧保持在每个时隙1发送L长度的数据包,但标记为空数据。从通信设备保持正常语音发送。直到从通信设备发出结束语音的请求,主通信设备停止发送,同步解除。
11、如果从通信设备发出停止语音的请求,而主通信设备没有发出停止通信的请求,则从通信设备保持在时隙1接收数据和同步过程,直到主通信设备发出停止通信的请求,同步结束。
具体地,每一种通信设备工作的流程如图4,主通信方首先检查是否有语音通信的请求。如果有,则启动语音编解码器,语音采样器,语音播放器等设备。然后启动本地定时器,定时长度为t,并指定当前时隙为时隙1。接下来定时器到期,自动重新开始,当前时隙为时隙2,语音采样器继续工作。定时器再到期,进入时隙1,此时语音采样和编解码器已经完成播放时间长度为2t的语音数据编码。主通信方将数据交给射频发送。数据发送完成后,记录下定时器计数值C主。定时器中断再次产生,进入时隙2,主通信设备保持接收状态。定时器中断产生,进入时隙1,立刻发送由语音采样器和编解码器完成的自从上次数据发送后产生的播放长度为2t的语音数据,以及上次记录的C主数据。当发送完成后,记录下本次的C主。主通信方要检查是否收到结束通信的标记,如果有,则结束通信,停止定时器,解除时隙。如果没有,则等待下次定时器到期。定时器到期后,重新计数,进入时隙2。主通信设备进入接收状态,在时隙2内,如果有语音数据进入,则播放语音,如果没有,检查是否有结束通信的标记。如果有,结束通信,停止定时器,解除时隙。如果没有,等待定时器到期。
对主通信方来说,语音通信结束的标记用以下流程判断,如图5:
主通信方首先会检查用户是否请求结束通信,如果没有,则维持工作状态不变。如果有,则检查是否收到从通信方请求通信结束的消息。如果从通信方请求过通信结束,则设置通信结束标记位,结束流程。如果没有,主通信方需要维持在时隙1上发送固定长度的空数据保持通信双方的同步,直到收到从通信方请求结束通信的消息,再设置通信结束标记,结束流程。
从通信方一开始会检查是否有语音通信进入。如果有,就启动语音编解码器,语音播放器和语音采样器,然后启动本地定时器,定时长度为t,当前定时器计数更新为C-C1,当前时隙标记为时隙1,然后将语音数据交给语音播放器播放。定时器到期中断产生后,从通信方进入时隙2。因为还没有采集到播放时间长度为2t的语音,所以从通信方不发送语音数据。定时器再次到期,进入时隙1,从通信方将收到主通信方的语音,记录下数据中包含的C主信息和从通信方当前的定时器计数值C当前。如果已经收到N次语音,则计算N次的C主平均值,再计算出C偏差。如果C偏差>C容忍,则校准定时器定时长度,否则,不校准。从通信方将收到的语音数据交给播放器播放。之后,定时器中断产生,从通信方发送语音数据。发送完后,检查是否有通信结束标志,如果有,结束通信,如果没有,等待下次定时器中断产生。
从通信方检查语音结束标记的流程如图7:如果从通信方没有检测到从通信用户请求停止发送语音,继续保持每N次收到时隙1上的主通信方发来的通信,就进行时隙校准,以保证从通信方能够在时隙2上正确发送。如果检测到用户要求停止从通信方发送语音,则检查是否收到过主通信方请求通信停止的信息,若有,则设定通信结束标记。如果没有,则继续保持接收时隙1上的通信,每隔N次接收后进行同步校准。
本发明提出的全双工对讲装置里对时隙同步的方式是采用软件计算来完成校准的,为了提高软件计算的准确性,定时器可以采用独立于主对讲机的处理器以外的单独处理器来提供,并且配置外部温补晶振,以保证晶振本身的偏差是相对比较稳定的。
对讲装置的原理图如图8,其中,处理器负责对讲机数据处理部分。语音编解码器负责语音数据的编码和解码。语音采样部分负责采样本地语音(模拟信号)输入,语音播放负责将解码后的语音数据播放出来。处理器从射频单元获得对方发来的语音内容,然后交给语音编解码器进行解码,随后播放。语音编解码器同时对语音采样单元获得的数据进行编码,编码数据交给处理器通过射频发送。定时处理器是一个单独的处理器,其内部只负责一项工作内容:用定时处理器内置的定时器产生时隙信号,SLOT1和SLOT2,通过中断的方式通知处理器每个时隙的开始和结束。定时处理器由于只负责这一个工作,所以每次定时器触发的时候都可以在第一时刻响应中断,而不会被其它不相干的任务打扰,导致定时长度的细微变化。采用外置晶振,比如带有温补功能的TCXO晶振,可以最大程度保持定时处理器使用的定时器在定时精度上的稳定性。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (5)
1.一种全双工语音通信方法,用于在主通信方和从通信方直接实现全双工通信;其特征在于包括如下步骤:
步骤1,主通信方触发通信,开始采集语音信息,并启动本地定时器,定时长度为t,并定义当前时隙为时隙1,定时器计数到达C时产生中断,时隙1结束;主通信方定时器自动开始计数,定义此时为时隙2;
步骤2,主通信方定时器计数到达C时,再次产生中断,开始下一个时隙1;此时主通信方采集到能够播放2t时间长度的语音数据,打包后得到长度为L的数据并发送,其中包含该数据发射于时隙1;主通信方记录数据发送完成时本地定时器的计数值C主;
步骤3,从通信方接收到数据后,标记当前所处的时隙为时隙1,并启动本地定时器,定时长度为t,并设置本时隙1内剩余的计数为C-C1,其中C1对应的是计数器计数L*8*(1/S)秒需要的数量,无线速率为S比特每秒;从通信方将接收到的数据进行解码放音,同时采集从通信方的语音信息;
步骤4,主通信方定时器产生中断并自动重新计数,表示时隙2开始,主通信方不发送数据,保持接收状态;从通信方定时器产生中断并自动重新计数,表示时隙2开始,此时保持接收状态;
步骤5,主通信方定时器产生中断并自动重新计数,表示时隙1开始;主通信方已经采集到能够播放2t时间长度的语音数据,发送该语音数据,并将上次发送语音数据后记录下的C主包含到数据中;从通信方定时器产生中断并重新计数,当前时隙为1,从通信方保持接收状态,经过L*8*(1/S)秒后,从通信方接收到主通信方发送的语音数据,记录当前从通信方本地定时器的计数值C当前,并且记录下数据中携带的C主,然后对数据进行解码播放;
步骤6,主通信方定时器产生中断并自动重新计数,表示时隙2开始;主通信方保持接收状态;从通信方定时器产生中断并自动重新计数,表示时隙2开始,此时从通信方已经采集到能够播放2t时间长度的语音数据,发送该语音数据,经过L*8*(1/S)后,主通信方接收到该数据,并进行解码放音;
步骤7,重复步骤5和步骤6,一共重复N-1次,N由用户定义;
步骤8,从通信方开始定时器校准,将N次C主数据相加再除以N获得C主平均,将C主平均和C当前进行比较,如果C当前大于C主平均,表示从通信方定时器的计数速度比主通信方的定时器计数速度快,近似认为从通信方的定时器计时速度在每个时隙内比主通信方的定时器计时速度快|C当前-C主平均|/(N*2-1)个单位,|C当前-C主平均|定义为C偏差,校准从通信方的本地定时器长度,将长度修改为C+C偏差/(N*2-1),定义为C校;如果C当前小于C主平均,表示从通信方定时器的计数速度比主通信方的定时器计时速度慢,在每个时隙内从通信方的定时器计数比主通信方的定时器慢|C主平均-C当前|/(N*2-1)个单位,|C主平均-C当前|定义为C偏差,校准从通信方的本地定时器定时长度为C-C偏差/(N*2-1),定义为C校;校准完成后,用C校替换C;
步骤9,重复步骤5到步骤8,每次在从通信设方进行校准时C主平均和C当前都会有细微的变化,直至二者差值小于C容忍,则完成校准,直至语音通信结束。
2.如权利要求1所述的一种全双工语音通信方法,其特征在于:所述步骤9中,语音通信结束的实现方法是:如果主通信方停止语音通信,而从通信方没有停止语音通信,则主通信方仍旧保持在每个时隙1发送L长度的数据包,但标记为空数据,从通信方保持正常语音发送,直到从通信方发出结束语音的请求,主通信方停止发送,通信结束。
3.如权利要求1所述的一种全双工语音通信方法,其特征在于:所述步骤9中,语音通信结束的实现方法是:如果从通信方发出停止语音的请求,而主通信方没有发出停止通信的请求,则从通信方保持在时隙1接收数据和同步过程,直到主通信方发出停止通信的请求,通信结束。
4.一种全双工语音通信系统,其特征在于:包括主通信方和从通信方,二者结构相同,均包括处理器、语音编解码器、语音采样模块、语音播放模块和定时器,其中,语音编解码器连接语音采样模块和语音播放模块,用于将语音采样模块采集的本地语音信息进行编码,以及将本地接收的语音信息进行解码并送入语音播放模块进行放音;定时器用于进行计数,并产生中断;处理器用于根据权利要求1所述的一种全双工语音通信方法实现语音数据的采集、发送和接收、放音,并实现通信时间的校准。
5.如权利要求4所述的一种全双工语音通信系统,其特征在于:所述定时器采用带温补功能的TCXO晶振。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910991969.2A CN112688771B (zh) | 2019-10-18 | 2019-10-18 | 一种全双工语音通信方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910991969.2A CN112688771B (zh) | 2019-10-18 | 2019-10-18 | 一种全双工语音通信方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112688771A CN112688771A (zh) | 2021-04-20 |
CN112688771B true CN112688771B (zh) | 2024-01-26 |
Family
ID=75444840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910991969.2A Active CN112688771B (zh) | 2019-10-18 | 2019-10-18 | 一种全双工语音通信方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112688771B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179621A (zh) * | 2006-11-09 | 2008-05-14 | 中兴通讯股份有限公司 | 蓝牙电话终端设备及实现全双工对讲功能的方法 |
CN107231582A (zh) * | 2017-04-21 | 2017-10-03 | 深圳市海恒通科技有限公司 | 全双工数字对讲方法、对讲配件及全双工数字对讲系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9232522B2 (en) * | 2013-07-19 | 2016-01-05 | Motorola Solutions, Inc. | Full duplex direct mode individual and group calling using adjacent time slots in a TDMA system |
-
2019
- 2019-10-18 CN CN201910991969.2A patent/CN112688771B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179621A (zh) * | 2006-11-09 | 2008-05-14 | 中兴通讯股份有限公司 | 蓝牙电话终端设备及实现全双工对讲功能的方法 |
CN107231582A (zh) * | 2017-04-21 | 2017-10-03 | 深圳市海恒通科技有限公司 | 全双工数字对讲方法、对讲配件及全双工数字对讲系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112688771A (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10271152B1 (en) | Synchronization of wireless headphones | |
US20200337003A1 (en) | Synchronization method for synchronizing clocks of a bluetooth device | |
CN101933333B (zh) | 将远程音频与固定视频同步 | |
CN110769347B (zh) | 耳机组件的同步播放方法及耳机组件 | |
CN111031437B (zh) | 一种无线耳机组件及其通信方法 | |
US11706271B2 (en) | Schemes capable of synchronizing native clocks and audio codec clocks of audio playing for bluetooth wireless devices | |
RU2296435C2 (ru) | Система и устройство для выполнения широковещательной передачи данных и передачи данных локального вещания | |
CN108234105B (zh) | 时钟偏移补偿方法及相关系统 | |
CN117596516A (zh) | 音频播放系统 | |
AU2002354787A1 (en) | System and apparatus for performing broadcast and localcast communications | |
US9456296B2 (en) | Control of the transmission of a voice signal over a bluetooth® radio link | |
WO2022048075A1 (zh) | 时钟同步方法、装置及存储介质 | |
CN101742548A (zh) | 基于h.324m协议的3g视频电话的音视频同步测试装置及方法 | |
WO2022094835A1 (zh) | 音频同步播放方法、装置、设备及存储介质 | |
WO2006125385A1 (fr) | Procede et systeme de synchronisation entre un recepteur et une source de diffusion de service de television | |
CN112039623A (zh) | 音频同步播放方法、装置、设备及存储介质 | |
US20090323880A1 (en) | Synchronization of real time data within deterministic clock edge | |
CN112688771B (zh) | 一种全双工语音通信方法及系统 | |
JP2015056732A (ja) | 無線通信システム、無線通信方法、プログラム、及び記録媒体 | |
DK2628320T3 (en) | Hearing aid and method for compensating a frequency difference between a transmitter and receiver | |
CN111769901A (zh) | 一种传输数据帧的dect基站、移动终端及系统 | |
JP2009049506A5 (zh) | ||
CN111383644B (zh) | 一种音频通信方法、设备及系统 | |
CN1372732A (zh) | 用于在电信系统中发送信息的方法 | |
JP4255307B2 (ja) | 時刻データ供給装置及び時刻データ供給方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |