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

文档序号:9631386阅读:516来源:国知局
一种基于dma技术降低声音输入至输出延迟的方法和系统的制作方法
【技术领域】
[0001] 本发明涉及一种降低声音输入至输出延迟的方法和系统,尤其指一种基于DMA(直 接内存存取)技术的降低声音输入至输出延迟的方法和系统。
【背景技术】
[0002] 现在系统内部音频数据传递是通过CPU进行处理并安排音频数据在总线的传输, 在音频数据需要快速输出的情况下,需要对音频数据的传输方式进行改进。
[0003] 为了解决这个问题,系统设计者和CPU设计者对系统流程和CPU能力进行改善,更 流畅的传输模式,更强的CPU运算能力,但是系统改进的余地和效率在不复杂的系统内表 现不良,而CPU能力的改进会增加系统的成本。
[0004] 直接内存存取(DMA)是数字信号处理器(DSP)中用于快速数据交换的重要技术, 它具有独立于CPU的后台批量数据传输能力,能够满足实时数据处理中高速数据传输要 求。

【发明内容】

[0005] 针对现有技术存在的问题,提出了本发明的技术方案。
[0006] 本发明一方面通过提供一种基于直接内存存取技术降低声音输入至输出延迟的 方法,包括以下步骤:A、麦克风装置接收声音,进行声音采集;B、声音处理芯片处理采集到 的声音,将音频转化为数字信号并进行音效处理;C、直接内存存取控制器控制数据传递,在 不同设备端传递数据;D、输出设备端将音频数字信号转化成声音输出。
[0007] 优选地,所述的直接内存存取控制器控制数据传递之前,还包括:加载预设的配置 文件,其中配置文件包括:设备与直接内存存取控制器之间的请求指令表,地址信息对应关 系表,传递配置规则。
[0008] 优选地,所述的直接内存存取控制器包括:状态控制寄存器,用于修改内存地址计 数器和字计数器,指定传输类型,并对设备间的数据传输进行协调和同步;数据寄存器,用 于暂存每次传输的数据;地址寄存器,用于发出地址信息,并修改地址指针;字节计数器, 用于记录传输数据的长度。
[0009] 优选地使用汇编语言指令对寄存器写入初始化控制字。
[0010] 优选地,所述的直接内存存取控制器控制数据传递,包括以下步骤:C1、外围的设 备通过向直接内存存取控制器向需要传输数据的设备发出直接传输数据的请求;C2、上述 的设备接收直接传输数据的请求,转变为直接内存存取传输方式,直接内存存取控制器取 得对外围总线的控制权;C3、直接内存存取控制器根据地址信息对应关系表,决定数据传输 的数据存储地址;C4、执行数据传输,完成之后所述的外围的设备向直接内存存取控制器返 回结束信号;C5、直接内存存取操作结束,直接内存存取控制器归还对外围总线的控制权。 [0011] 优选地,所述的外围总线用于挂载系统的外围的设备。
[0012] 优选地,所述结束信号被直接内存存取控制器接收之后,执行结束处理工作,包 括:校验传输至输入端设备的数据;确认设备输出端数据完成情况,发出处理结果指令。
[0013] 优选地,所述发出处理结果指令包括:直接内存存取控制器确认设备间数据传输 未完成,向步骤C1所述设备发出继续使用直接内存存取传输的指令;直接内存存取控制器 确认设备间数据传输完成,向步骤C1所述设备发出结束传输的指令。
[0014] 本发明的另一个方面提出了一种基于直接内存存取技术降低声音输出延迟的系 统,包括以下: 声音输入模块,配置为使麦克风装置接收声音,进行声音采集; 声音处理模块,配置为使声音处理芯片处理采集到的声音,附加声音效果并将音频转 化为数字信号; 数据传递模块,配置为使直接内存存取控制器控制数据传递,在不同设备端传递数 据; 声音输出模块,配置为使输出设备端将音频数字信号转化成声音输出。
[0015] 本发明的有益效果为:允许设备间直接传输数据,既不通过CPU,也不需要CPU干 预。整个数据传输操作在一个称为(DMA)控制器的控制下进行的,设备间的数据传输不需 要通过存储器进行数据存储进行传输,显著提升设备间数据传输速度。
【附图说明】
[0016] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实 施方式对本发明进行进一步的详细描述,其中: 图1所示为根据本发明实施例的基于直接内存存取技术降低声音输出延迟的方法的 示意图; 图2所示为根据本发明实施例的基于直接内存存取技术降低声音输出延迟的系统的 示意图。
【具体实施方式】
[0017] 根据本发明的第一实施例,如图1所示为降低声音输入至声音输出延迟的方法, 包括以下步骤: A、 麦克风装置接收声音,进行声音采集,将声音转化为数字电信; B、 声音处理芯片处理采集到的声音,将音频转化为音频数字信号并进行音效处理; C、 直接内存存取控制器控制数据传递,在不同设备端传递音频数字信号,即在直接内 存存取控制器的控制下允许在设备和设备之间直接读写数据; D、 输出设备端将音频数字信号转化成声音输出,如扬声器、显示器等设备将处理过的 音频数字信号输出。
[0018] 其中直接内存存取控制器控制数据传递之前,还加载预设的配置文件,配置文件 包括设备与直接内存存取控制器之间的请求指令表,地址信息对应关系表,传递配置规则。
[0019] 根据本发明的第二实施例,所述的直接内存存取控制器包括: 状态控制寄存器,修改地址计数器和字计数器,指定传输类型(输入或输出),并对设 备间的数据传输进行协调和同步;数据寄存器,用于暂存每次传输的数据,即用于暂存每次 传输的数据(一个字)。当数据输入时,由输入设备送往输入设备端的数据FIFO端;数据 传输时,通过直接内存存取技术将数据从输入设备的数据FIFO端搬送到输出设备的数据FIFO端;当数据输出时,由输出设备的数据FIFO端送到设备输出端进行输出;地址寄存器, 用于发出地址信息,并修改地址指针;字节计数器,用于记录传输数据的长度,其内容也是 在数据传输之前由程序预置,交换的字数通常以补码形式表示。在直接内存存取传输时,每 传输一个字,字计数器就加" 1",当计数器溢出即最高位产生进位时,表示这批数据传输完 毕,于是引起直接内存存取控制器向直接内存存取控制器发中断信号。
[0020] 根据本发明的第三实施例,所述直接内存存取控制器控制数据传递,包括以下步 骤:外围的设备通过向直接内存存取控制器向需要传输数据的设备发出直接传输数据的请 求;上述的外围的设备和需要数据传输的设备,作为数据的发出端和接收端,接收直接内存 控制器发出的直接传输数据的请求,数据传输方式转变为直接内存存取传输方式,直接内 存存取控制器取得对外围总线的控制权;直接内存存取控制器根据地址信息对应关系表, 决定数据传输的输入设备和输出设备数据FIFO地址;执行数据传输,完成之后上述的外围 的设备作为数据的发出端,向直接内存存取控制器返回结束信号;直接内存存取操作结束, 归还对外围总线的控制权。其中使用汇编语言指令对寄存器写入初始化控制字。
[0021] 所述结束信号被直接内存存取控制器接收之后,直接内存存取控制器执行结束处 理工作,包括:校验传输至输入端设备的数据,即检验传输的数据是否正确;确认输出端设 备传输数据的完成情况,测试在传输过程中是否发生了错误等;根据检校的结果发出处理 结果指令,决定继续用直接内存存取方式继续传输下去,还是结束传输。
[0022] 其中所述发出处理结果指令包括:直接内存存取控制器确认设备间数据传输未完 成,向设备发出继续使用直接内存存取传输的指令;直接内存存取控制器确认设备间数据 传输完成,向设备发出继续结束传输的指令。
[0023] 根据本发明的第四实施例如图2所示。图2中的代号描述如下表:
其中的系统音乐数据运行方式如下:主控H3中通过数字音频总线daudioO进入AclOO芯片的AclOO端数字音频接口 1 (Aifl),进入AclOOsystemroute(AclOO系统路由)并 在其中进行声音处理操作。
[0024] 具体地,如下描述声音处理方式。唱K人的声音通过Karaokemic分离两路声 音,一路没有经过音效处理的micl,micl的声音经过AclOO芯片的AclOO端数字音频接 口 2 (Aif2),再经过数字音频总线daudiol录音,用于Karaoke的唱K评分功能;一路经过Pt2399音效处理的mic2,经过Pt2399音效处理后
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1