CN105389156A - 一种基于dma技术降低声音输入至输出延迟的方法和系统 - Google Patents

一种基于dma技术降低声音输入至输出延迟的方法和系统 Download PDF

Info

Publication number
CN105389156A
CN105389156A CN201510827044.6A CN201510827044A CN105389156A CN 105389156 A CN105389156 A CN 105389156A CN 201510827044 A CN201510827044 A CN 201510827044A CN 105389156 A CN105389156 A CN 105389156A
Authority
CN
China
Prior art keywords
direct memory
memory access
sound
data
transmission
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.)
Granted
Application number
CN201510827044.6A
Other languages
English (en)
Other versions
CN105389156B (zh
Inventor
黄新
姚洁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Allwinner Technology Co Ltd
Original Assignee
Allwinner Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Allwinner Technology Co Ltd filed Critical Allwinner Technology Co Ltd
Priority to CN201510827044.6A priority Critical patent/CN105389156B/zh
Publication of CN105389156A publication Critical patent/CN105389156A/zh
Application granted granted Critical
Publication of CN105389156B publication Critical patent/CN105389156B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/282Cycle stealing DMA

Abstract

本发明公开了一种基于DMA技术降低声音输入至声音输出延迟的方法和系统,其中方法包括:麦克风装置接收声音,进行声音采集;声音处理芯片处理采集到的声音;直接内存存取控制器控制数据传递;输出设备端将音频数字信号转化成声音输出。其中系统包括:声音采集模块,使麦克风装置接收声音进行声音采集;声音处理模块,使声音处理芯片处理采集到的声音;数据传递模块,使直接内存存取控制器控制数据传递;声音输出模块,使输出设备端将音频数字信号转化成声音输出。本发明基于直接内存存取技术,允许在音频设备间直接读写音频数据,音频设备间的音频数据传输不需要通过存储器进行音频数据的存储和再传输,显著提升了音频在不同设备间传输的速度。

Description

一种基于DMA技术降低声音输入至输出延迟的方法和系统
技术领域
本发明涉及一种降低声音输入至输出延迟的方法和系统,尤其指一种基于DMA(直接内存存取)技术的降低声音输入至输出延迟的方法和系统。
背景技术
现在系统内部音频数据传递是通过CPU进行处理并安排音频数据在总线的传输,在音频数据需要快速输出的情况下,需要对音频数据的传输方式进行改进。
为了解决这个问题,系统设计者和CPU设计者对系统流程和CPU能力进行改善,更流畅的传输模式,更强的CPU运算能力,但是系统改进的余地和效率在不复杂的系统内表现不良,而CPU能力的改进会增加系统的成本。
直接内存存取(DMA)是数字信号处理器(DSP)中用于快速数据交换的重要技术,它具有独立于CPU的后台批量数据传输能力,能够满足实时数据处理中高速数据传输要求。
发明内容
针对现有技术存在的问题,提出了本发明的技术方案。
本发明一方面通过提供一种基于直接内存存取技术降低声音输入至输出延迟的方法,包括以下步骤:A、麦克风装置接收声音,进行声音采集;B、声音处理芯片处理采集到的声音,将音频转化为数字信号并进行音效处理;C、直接内存存取控制器控制数据传递,在不同设备端传递数据;D、输出设备端将音频数字信号转化成声音输出。
优选地,所述的直接内存存取控制器控制数据传递之前,还包括:加载预设的配置文件,其中配置文件包括:设备与直接内存存取控制器之间的请求指令表,地址信息对应关系表,传递配置规则。
优选地,所述的直接内存存取控制器包括:状态控制寄存器,用于修改内存地址计数器和字计数器,指定传输类型,并对设备间的数据传输进行协调和同步;数据寄存器,用于暂存每次传输的数据;地址寄存器,用于发出地址信息,并修改地址指针;字节计数器,用于记录传输数据的长度。
优选地使用汇编语言指令对寄存器写入初始化控制字。
优选地,所述的直接内存存取控制器控制数据传递,包括以下步骤:C1、外围的设备通过向直接内存存取控制器向需要传输数据的设备发出直接传输数据的请求;C2、上述的设备接收直接传输数据的请求,转变为直接内存存取传输方式,直接内存存取控制器取得对外围总线的控制权;C3、直接内存存取控制器根据地址信息对应关系表,决定数据传输的数据存储地址;C4、执行数据传输,完成之后所述的外围的设备向直接内存存取控制器返回结束信号;C5、直接内存存取操作结束,直接内存存取控制器归还对外围总线的控制权。
优选地,所述的外围总线用于挂载系统的外围的设备。
优选地,所述结束信号被直接内存存取控制器接收之后,执行结束处理工作,包括:校验传输至输入端设备的数据;确认设备输出端数据完成情况,发出处理结果指令。
优选地,所述发出处理结果指令包括:直接内存存取控制器确认设备间数据传输未完成,向步骤C1所述设备发出继续使用直接内存存取传输的指令;直接内存存取控制器确认设备间数据传输完成,向步骤C1所述设备发出结束传输的指令。
本发明的另一个方面提出了一种基于直接内存存取技术降低声音输出延迟的系统,包括以下:
声音输入模块,配置为使麦克风装置接收声音,进行声音采集;
声音处理模块,配置为使声音处理芯片处理采集到的声音,附加声音效果并将音频转化为数字信号;
数据传递模块,配置为使直接内存存取控制器控制数据传递,在不同设备端传递数据;
声音输出模块,配置为使输出设备端将音频数字信号转化成声音输出。
本发明的有益效果为:允许设备间直接传输数据,既不通过CPU,也不需要CPU干预。整个数据传输操作在一个称为(DMA)控制器的控制下进行的,设备间的数据传输不需要通过存储器进行数据存储进行传输,显著提升设备间数据传输速度。
附图说明
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述,其中:
图1所示为根据本发明实施例的基于直接内存存取技术降低声音输出延迟的方法的示意图;
图2所示为根据本发明实施例的基于直接内存存取技术降低声音输出延迟的系统的示意图。
具体实施方式
根据本发明的第一实施例,如图1所示为降低声音输入至声音输出延迟的方法,包括以下步骤:
A、麦克风装置接收声音,进行声音采集,将声音转化为数字电信;
B、声音处理芯片处理采集到的声音,将音频转化为音频数字信号并进行音效处理;
C、直接内存存取控制器控制数据传递,在不同设备端传递音频数字信号,即在直接内存存取控制器的控制下允许在设备和设备之间直接读写数据;
D、输出设备端将音频数字信号转化成声音输出,如扬声器、显示器等设备将处理过的音频数字信号输出。
其中直接内存存取控制器控制数据传递之前,还加载预设的配置文件,配置文件包括设备与直接内存存取控制器之间的请求指令表,地址信息对应关系表,传递配置规则。
根据本发明的第二实施例,所述的直接内存存取控制器包括:
状态控制寄存器,修改地址计数器和字计数器,指定传输类型(输入或输出),并对设备间的数据传输进行协调和同步;数据寄存器,用于暂存每次传输的数据,即用于暂存每次传输的数据(一个字)。当数据输入时,由输入设备送往输入设备端的数据FIFO端;数据传输时,通过直接内存存取技术将数据从输入设备的数据FIFO端搬送到输出设备的数据FIFO端;当数据输出时,由输出设备的数据FIFO端送到设备输出端进行输出;地址寄存器,用于发出地址信息,并修改地址指针;字节计数器,用于记录传输数据的长度,其内容也是在数据传输之前由程序预置,交换的字数通常以补码形式表示。在直接内存存取传输时,每传输一个字,字计数器就加“1”,当计数器溢出即最高位产生进位时,表示这批数据传输完毕,于是引起直接内存存取控制器向直接内存存取控制器发中断信号。
根据本发明的第三实施例,所述直接内存存取控制器控制数据传递,包括以下步骤:外围的设备通过向直接内存存取控制器向需要传输数据的设备发出直接传输数据的请求;上述的外围的设备和需要数据传输的设备,作为数据的发出端和接收端,接收直接内存控制器发出的直接传输数据的请求,数据传输方式转变为直接内存存取传输方式,直接内存存取控制器取得对外围总线的控制权;直接内存存取控制器根据地址信息对应关系表,决定数据传输的输入设备和输出设备数据FIFO地址;执行数据传输,完成之后上述的外围的设备作为数据的发出端,向直接内存存取控制器返回结束信号;直接内存存取操作结束,归还对外围总线的控制权。其中使用汇编语言指令对寄存器写入初始化控制字。
所述结束信号被直接内存存取控制器接收之后,直接内存存取控制器执行结束处理工作,包括:校验传输至输入端设备的数据,即检验传输的数据是否正确;确认输出端设备传输数据的完成情况,测试在传输过程中是否发生了错误等;根据检校的结果发出处理结果指令,决定继续用直接内存存取方式继续传输下去,还是结束传输。
其中所述发出处理结果指令包括:直接内存存取控制器确认设备间数据传输未完成,向设备发出继续使用直接内存存取传输的指令;直接内存存取控制器确认设备间数据传输完成,向设备发出继续结束传输的指令。
根据本发明的第四实施例如图2所示。图2中的代号描述如下表:
其中的系统音乐数据运行方式如下:主控H3中通过数字音频总线daudio0进入Ac100芯片的Ac100端数字音频接口1(Aif1),进入Ac100systemroute(Ac100系统路由)并在其中进行声音处理操作。
具体地,如下描述声音处理方式。唱K人的声音通过Karaokemic分离两路声音,一路没有经过音效处理的mic1,mic1的声音经过Ac100芯片的Ac100端数字音频接口2(Aif2),再经过数字音频总线daudio1录音,用于Karaoke的唱K评分功能;一路经过Pt2399音效处理的mic2,经过Pt2399音效处理后的mic2声音,进入Ac100systemroute,将音乐播放的声音进行混音,混音后的声音可以在Ac100systemroute中输出到AV端,同时数字音频总线daudio0中通过Ac100端数字音频接口1(Aif1)将混音后的声音进行录音,再采用DMAIO_to_IO(设备到设备传输)技术,将数字音频总线daudio0录音FIFO中的数据搬送到数字音频总线daudio2中,数字音频总线daudio2中挂hdmi芯片,数字音频总线daudio2中将混音后的声音往TV端的hdmi口进行输出,另外数字音频总线daudio2通过通过hub功能,再将混音后的声音往TV端的hdmi口进行输出;声音保存:将混音后数据,在主控中进行保存:在数字音频总线daudio2中打开loopback功能,将TX中的混音后数据送到RX中,再通过DMA启动daudio2的录音功能,将数据送到主控H3中进行保存,用于唱K功能的回放功能。
在Karaoke实现方法中,要达到AV,TV,音箱设备同时输出,同时Karaokemic经过Ac100混音等处理,再从hdmi端、spdif端输出延时要小于30ms。
在这里混音后的数据采用了从数字音频总线daudio0中直接使用DMA的IO_to_IO技术。这个技术的原理是,在挂载在同一个外围总线上的设备(比如数字音频总线daudio0,数字音频总线daudio2),启动IO到IO后,可以实现不同设备间FIFO端的数据传输功能。在这个方案中,混音后的数据从数字音频总线Daudio0的RXFIFO传输到数字音频总线Daudio2中的TXFIFO中,由于两个FIFO的深度是16bytes,在Karaoke模式下,采样率是48k,通道是2声道,采样精度是16,音频传输的时间如下:t=数据长度/(采样率*通道数*32/16)≈0.08ms。也就是说,Karaoke麦克风数据通过混音以及硬件音效处理后再从主控H3hdmi端输出的时间是0.08ms。同理spdif的hub输出的时间也是0.08ms。那么Karaoke麦克风数据从AV,hdmi,spdif输出的时间间隔将远远小于1ms。
如果不采用DMA_IO_to_IO技术,那么数据需要经过主控端的dram进行处理后再输出,也就是先录音再播放,根据目前业界采用的录音和播放的双buffer机制,假如一个buffer大小是4k,那么录音和播放共4k*2*2=16k数据,根据t=数据长度/(采样率*通道数*32/16),播放的时间是83ms左右,达不到要求;
所以DMA_IO_to_IO技术将混音后的时间处理压缩到1ms以内,那么数据在H3主控端的时间将远远小于30ms,Karaoke再通过hdmi接TV,spdif接音箱设备输出的延时也在TV和音箱端,理论上实现了Karaoke的30ms的功能要求。这里说的DMA_IO_to_IO输入到输出1ms以内,是指主控端的处理时间是1ms以内。TV端和音箱端取决于具体设备,不在主控H3的控制范围内。其中,Karaoke要求在30ms内实现输入到输出的要求原理为,根据哈斯效应,两个同声源的声波若到达听音者的世界差在5~35ms以内,听觉者将感到声音只来自未延迟的声源,并不会感到经延迟的声音存在。
根据本发明的第五实施例,一种基于直接内存存储技术降低声音输出延迟的系统,包括:声音输入模块,配置为使麦克风装置接收声音,进行声音采集;声音处理模块,配置为使声音处理芯片处理采集到的声音,附加声音效果并将音频转化为数字信号;数据传递模块,配置为使直接内存存取控制器控制数据传递,在不同设备端传递数据;声音输出模块,配置为使输出设备端将音频数字信号转化成声音输出。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

Claims (9)

1.一种基于直接内存存取技术降低声音输入至输出延迟的方法,其特征在于,包括以下步骤:
A、麦克风装置接收声音,进行声音采集;
B、声音处理芯片处理采集到的声音,将音频转化为数字信号并进行音效处理;
C、直接内存存取控制器控制设备间的数据传递,在不同设备端传递数据;
D、输出设备端将音频数字信号转化成声音输出。
2.根据权利要求1所述的一种基于直接内存存取技术降低声音输入至输出延迟的方法,其特征在于,在直接内存存取控制器控制数据传递之前加载预设的配置文件,其中配置文件包括设备与直接内存存取控制器之间的请求指令表、地址信息对应关系表和传递配置规则。
3.根据权利要求1所述的一种基于直接内存存取技术降低声音输入至输出延迟的方法,其特征在于,所述的直接内存存取控制器包括:
状态控制寄存器,用于修改地址计数器和字计数器,指定传输类型,并对设备间的数据传输进行协调和同步;
数据寄存器,用于暂存每次传输的数据;
地址寄存器,用于发出地址信息,并修改地址指针;
字节计数器,用于记录传输数据的长度。
4.根据权利要求3所述的一种基于直接内存存取技术降低声音输入至输出延迟的方法,其特征在于,使用汇编语言指令对寄存器写入初始化控制字。
5.根据权利要求1所述的一种基于直接内存存取技术降低声音输入至输出延迟的方法,其特征在于,所述的步骤C包括以下步骤:
C1、外围的设备通过直接内存存取控制器向需要传输数据的设备发出直接传输数据的请求;
C2、步骤C所述的设备接收直接传输数据的请求,转变为直接内存存取传输方式,直接内存存取控制器取得对外围总线的控制权;
C3、直接内存存取控制器根据地址信息对应关系表,决定数据传输的数据存储地址;
C4、执行数据传输,完成之后步骤C1所述的设备外围的设备向直接内存存取控制器返回结束信号;
C5、直接内存存取操作结束,直接内存存取控制器归还对外围总线的控制权。
6.根据权利要求5所述的一种基于直接内存存取技术降低声音输入至输出延迟的方法,其特征在于,所述的外围总线用于挂载系统的外围的设备。
7.根据权利要求5所述的一种基于直接内存存取技术降低声音输入至输出延迟的方法,其特征在于,在直接内存控制器接收结束信号,执行善后处理程序,所述善后处理程序包括:
校验传输至输入端设备的数据;
确认输出端设备传输数据的完成情况,发出处理结果指令。
8.根据权利要求7所述的一种基于直接内存存取技术降低声音输入至输出延迟的方法,其特征在于,所述发出处理结果指令的步骤包括:
直接内存存取控制器判断设备间的数据传输是否完成,如果数据传输完成则向步骤C1所述设备发出继续使用直接内存存取传输的指令,否则向步骤C1所述设备发出结束传输的指令。
9.一种基于直接内存存取技术降低声音输入至输出延迟的系统,其特征在于,所述系统包括:
声音输入模块,配置为使麦克风装置接收声音,进行声音采集;
声音处理模块,配置为使声音处理芯片处理采集到的声音,附加声音效果并将音频转化为数字信号;
数据传递模块,配置为使直接内存存取控制器控制数据传递,在不同设备端传递数据;
声音输出模块,配置为使输出设备端将音频数字信号转化成声音输出。
CN201510827044.6A 2015-11-24 2015-11-24 一种基于dma技术降低声音输入至输出延迟的方法和系统 Active CN105389156B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510827044.6A CN105389156B (zh) 2015-11-24 2015-11-24 一种基于dma技术降低声音输入至输出延迟的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510827044.6A CN105389156B (zh) 2015-11-24 2015-11-24 一种基于dma技术降低声音输入至输出延迟的方法和系统

Publications (2)

Publication Number Publication Date
CN105389156A true CN105389156A (zh) 2016-03-09
CN105389156B CN105389156B (zh) 2018-12-11

Family

ID=55421466

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510827044.6A Active CN105389156B (zh) 2015-11-24 2015-11-24 一种基于dma技术降低声音输入至输出延迟的方法和系统

Country Status (1)

Country Link
CN (1) CN105389156B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106354556A (zh) * 2016-08-26 2017-01-25 深圳市优必选科技有限公司 一种音频传输方法及电子装置
CN109040777A (zh) * 2018-08-17 2018-12-18 江苏华腾智能科技有限公司 一种物联网广播音频传输延迟减小方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1169015A (ja) * 1997-08-11 1999-03-09 Kokusai Electric Co Ltd 音声録音再生方法及び装置
CN101046786A (zh) * 2007-04-27 2007-10-03 北京中星微电子有限公司 一种实现高效dma传输的dma控制器及传输方法
CN101339541A (zh) * 2008-08-11 2009-01-07 北京中星微电子有限公司 一种dma数据传输方法及dma控制器
CN103716171A (zh) * 2013-12-31 2014-04-09 广东公信数字设备有限公司 一种音频数据传输方法及主机、终端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1169015A (ja) * 1997-08-11 1999-03-09 Kokusai Electric Co Ltd 音声録音再生方法及び装置
CN101046786A (zh) * 2007-04-27 2007-10-03 北京中星微电子有限公司 一种实现高效dma传输的dma控制器及传输方法
CN101339541A (zh) * 2008-08-11 2009-01-07 北京中星微电子有限公司 一种dma数据传输方法及dma控制器
CN103716171A (zh) * 2013-12-31 2014-04-09 广东公信数字设备有限公司 一种音频数据传输方法及主机、终端

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106354556A (zh) * 2016-08-26 2017-01-25 深圳市优必选科技有限公司 一种音频传输方法及电子装置
CN106354556B (zh) * 2016-08-26 2020-03-27 深圳市优必选科技有限公司 一种音频传输方法及电子装置
CN109040777A (zh) * 2018-08-17 2018-12-18 江苏华腾智能科技有限公司 一种物联网广播音频传输延迟减小方法

Also Published As

Publication number Publication date
CN105389156B (zh) 2018-12-11

Similar Documents

Publication Publication Date Title
WO2020063146A1 (en) Data transmission method and system, and bluetooth headphone
US7929518B2 (en) Method and system for a gigabit Ethernet IP telephone chip with integrated DDR interface
US9929972B2 (en) System and method of sending data via a plurality of data lines on a bus
CN107124674A (zh) 一种蓝牙耳机的音频输出方法、装置和蓝牙耳机
CN101861577A (zh) 用于处理器间通信的系统和方法
CN105208189B (zh) 音频处理方法及移动终端
US20230156404A1 (en) Audio processing method and apparatus, wireless earphone, and storage medium
CN105389156A (zh) 一种基于dma技术降低声音输入至输出延迟的方法和系统
US5815583A (en) Audio serial digital interconnect
US20190005974A1 (en) Alignment of bi-directional multi-stream multi-rate i2s audio transmitted between integrated circuits
WO2018177243A1 (zh) 一种蓝牙音箱及其分享系统
KR101402869B1 (ko) 중앙 오디오 허브에서 오디오 신호들을 처리하기 위한 방법 및 시스템
US10433060B2 (en) Audio hub and a system having one or more audio hubs
CN109448738B (zh) 一种网络音频混音处理方法及装置
JP2001298494A (ja) データ・リンクとのインターフェースを制御するコントローラと方法
US20090138673A1 (en) Internal memory mapped external memory interface
US20090063828A1 (en) Systems and Methods for Communication between a PC Application and the DSP in a HDA Audio Codec
CN203039879U (zh) 一体音响
WO2015131591A1 (zh) 音频信号输出方法、装置、终端及系统
CN109308177B (zh) 一种音频处理装置、耳机及音频播放机
WO2020082602A1 (zh) 一种音频处理系统及音频设备
US11537544B2 (en) Communicating non-isochronous data over an isochronous channel
WO2020062861A1 (zh) 一种蓝牙音箱语音播放控制的方法及装置
US20180018296A1 (en) Flow control protocol for an audio bus
CN106921914B (zh) 一种多通道音频传输设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant