一种I2S音频时钟数据的同步方法、装置及应用与流程

文档序号:32440224发布日期:2022-12-06 21:17阅读:507来源:国知局
一种I2S音频时钟数据的同步方法、装置及应用与流程
一种i2s音频时钟数据的同步方法、装置及应用
技术领域
1.本技术涉及音频通信技术领域,尤其涉及一种i2s音频时钟数据的同步方法、装置及应用。


背景技术:

2.大规模集成电路的迅速发展与广泛应用,使得数字系统的复杂程度大大增加,导致其设计、开发、检测和故障诊断越来越复杂。在实际应用中,不少cpu提供i2s接口,但有部分cpu的i2s没有slave(从)模式,只有master(主)模式,即i2s的时钟由cpu的主时钟经过pll变换而来。在这种情况下,音频系统的时钟频偏一般较大,抖动也较大。因此,用传统有限的i2s音频时钟数据的方法已经远远不能满足用户的需求。
3.对于现有的没有slave模式的cpu的i2s音频数据,无法在传输到fgpa芯片时,达到与fgpa芯片的时钟数据信息的同步,进而导致了cpu没有slave模式的cpu的i2s音频数据的时钟信号和fgpa芯片的时钟信号的不同步,无法进行各类音乐文件的高品质播放。
4.因此,亟需开发一种i2s音频时钟数据的同步方法、装置及应用,解决现有产品开发中存在的技术难题。


技术实现要素:

5.为解决现有技术存在的没有slave模式的cpu的i2s音频数据,无法在传输到fgpa芯片时,达到与fgpa芯片的时钟数据信息的同步,也因而无法实现各类音乐文件的高品质播放的技术难题,本发明开发了一种i2s音频时钟数据的同步方法、装置及应用,有效地解决该技术难题。本发明开发的i2s音频时钟数据的同步方法,可实现所述没有slave模式的cpu的i2s音频数据传输到所述fgpa芯片时,对所述i2s音频数据的时钟信息的同步,进而实现更准确的时钟信号,达到了可以以更高的品质播放各类音乐文件的目的。
6.本发明第一方面开发一种i2s音频时钟数据的同步方法,所述的同步方法包括:步骤一、将没有slave模式的cpu的i2s音频数据流进行预处理:将没有slave模式的cpu的i2s音频数据流,切分成一帧一帧的音频数据;在每一帧的音频数据(包括n个字,n>1)上加上帧头,形成长度为n+1个字的帧数据;所述的帧头包括帧数据长度和crc校验长度;步骤二、所述没有slave模式的cpu向接收端fgpa芯片发送所述的长度为n+1个字的帧数据;同时,所述接收端fgpa芯片根据本地的晶振或时钟,向所述没有slave模式的cpu产生一个time信号,所述的没有slave模式的cpu检测到所述的time信号后,同步向所述接收端fgpa芯片发送的音频数据量;步骤三、所述接收端fgpa芯片对接收到的所述的长度为n+1个字的帧数据,去掉所述帧头和空闲数据后,得到新的音频数据;将所述的新的音频数据写入fifo芯片;步骤四、所述的fpga芯片按照设置在fpga芯片上的时钟或晶振,向数模转换器产
生第二bck数据和第二lrck数据,并从所述的fifo芯片中读取步骤三所述的新的音频数据送给所述数模转换器。
7.优选地,所述的没有slave模式的cpu的i2s音频数据流包括第一bck数据和第一lrck数据,所述的第一bck数据和第一lrck数据,是由所述没有slave模式的cpu的内部时钟锁相生成。
8.更优选地,在所述的一帧一帧的音频数据之间插入全为0的比特流数据或不插入全为0的比特流数据。
9.更优选地,所述的全为0的比特流数据的长度,可实现以下功能:使得所述长度为n+1个字的帧中音频数据的速率和fpga芯片的时钟所要求的音频数据的速率相同。
10.更优选地,步骤二所述的同步的方法包括:步骤二所述的同步的方法包括:如果所述接收端fgpa芯片连续收到三帧(帧中间可能有或没有全为0的比特流数据)的所述长度为n+1个字的一帧数据的包头crc校验正确,那么接收端fgpa芯片将进入同步状态,从而正确获取所需的音频数据。
11.本发明第二方面开发一种i2s音频时钟数据的同步装置,所述的同步装置包括没有slave模式的cpu、fgpa芯片、fifo芯片和数模转换器;设置从所述的没有slave模式的cpu的i2s音频数据流获取的音频时钟数据(第一bck数据和第一lrck数据),使所述的第一bck数据和第一lrck数据频率大于所述fpga芯片的本振频率;所述没有slave模式的cpu向所述fgpa芯片发送长度为n+1个字的帧数据,n>1;所述fgpa芯片接收到所述的长度为n+1个字的帧数据的同时,根据本地的晶振或时钟,向所述没有slave模式的cpu发送time信号,促使所述的没有slave模式的cpu同步向所述接收端fgpa芯片发送的音频数据量;所述fgpa芯片接收到所述的长度为n+1个字的帧数据后,去掉帧头和空闲数据得到新的音频数据,将所述的新的音频数据写入fifo芯片;所述的fpga芯片根据本地的晶振或时钟,向所述数模转换器产生第二bck数据和第二lrck数据,并从所述的fifo芯片中读取所述的新的音频数据发送给所述的数模转换器。
12.优选地,所述长度为n+1个字的帧数据的获取方法为:将没有slave模式的cpu的i2s音频数据流,切分成一帧一帧的音频数据;在每一帧的音频数据(包括n个字,n>1)上加上帧头,形成长度为n+1个字的帧数据;所述的帧头帧数据长度和crc校验长度。
13.更优选地,在所述的一帧一帧的音频数据之间插入全为0的比特流数据或不插入全为0的比特流数据。
14.更优选地,所述的全为0的比特流数据的长度,可实现以下功能:使得所述长度为n+1个字的帧数据的速率和fpga芯片的时钟数据的速率相同。
15.本发明第三方面一种前述的方法、或者前述的同步装置在音乐播放上的应用。
16.本发明的技术效果:通过本发明开发的i2s音频时钟数据的同步方法、装置及应用,有效地实现所述没有slave模式的cpu的i2s音频数据传输到所述fgpa芯片时,对所述i2s音频数据的时钟信息的同步,进而实现更准确的时钟信号,达到可以以更高的品质播放各类音乐文件的目的。
附图说明
17.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本申
请的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:图1示出了本发明的系统示意图;图2示出了本发明的数据帧结构;其中,ln表示左声道,rn表示右声道。
具体实施方式
18.下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本技术能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本技术相关的一些操作并没有在说明书中显示或者描述,这是为了避免本技术的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
19.另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
20.本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本技术所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
21.在本发明中,如果没有特殊说明,所述的time信号是指fpga芯片产生的与fpga芯片相连的高品质晶振分频获得的一种低频信号。
22.为清楚地理解本技术的技术内容,这里将对一些技术术语进行说明。
23.i2s信号(inter-ic sound信号),是飞利浦公司针对数字音频设备(如cd播放器、数码音效处理器、数字电视音响系统)之间的音频数据传输而制定的一种总线标准。它通过将数据信号和时钟信号相分离的设计方式避免了因时差诱发的失真。传输i2s信号的标准总线电缆是由3根串行导线组成的:1根是时分多路复用数据线,1根是字选择线;1根是时钟线。 那么,i2s信号主要包括帧时钟信号(lrck)、串行时钟信号(bck或sclk)和串行数据信号(data或sdata);其中,lrck用于切换左右声道的数据,高电平(即为“1”)时表示传输右声道数据,低电平(即为“0”)时表示传输左声道数据,lrck的频率等于采样频率;其中,bck的每一个脉冲对应数字音频的每一位数据,bck的频率=2 *采样频率*采样位深;其中,data就是用二进制补码表示的音频数据,往往是最高有效位msb到最低有效位 lsb依次传输。
24.本发明提供了一种i2s音频时钟数据的同步方法,属于音频通信技术领域,所述的同步方法包括:将没有slave模式的cpu的i2s音频数据流,切分成一帧一帧的音频数据,在所述的一帧一帧的音频数据之间插入全为0的比特流数据;同时,在每一帧的音频数据上加上帧头,形成长度为n+1个字的帧数据,所述没有slave模式的cpu向接收端fgpa芯片发送所述的长度为n+1个字的帧数据;同时,所述接收端fgpa芯片向所述没有slave模式的cpu产生一个time信号,所述的没有slave模式的cpu检测到所述的time信号后,同步向所述接收端fgpa芯片发送的音频数据量;所述接收端fgpa芯片对接收到的所述的长度为n+1个字的帧数据,去掉所述帧头和空闲数据后,得到新的音频数据;将所述的新的音频数据写入fifo芯
片;所述的fpga芯片按照设置在fpga芯片上的时钟或晶振,向数模转换器产生第二bck数据和第二lrck数据,并从所述的fifo芯片中读取步骤三所述音频数据送给所述数模转换器。本发明开发的i2s音频时钟数据的同步方法,可实现所述没有slave模式的cpu的i2s音频数据传输到所述fgpa芯片时,对所述i2s音频数据的时钟信息的同步,进而实现更准确的时钟信号,达到了可以以更高的品质播放各类音乐文件的目的。
25.下面将结合实施例对本技术技术方案进行详细说明。
26.本发明提供了一种i2s音频时钟数据的同步方法、装置及应用,将没有slave模式的cpu的i2s音频数据流切分成多帧的音频数据,在帧数据之间插入全为0的比特流数据,并在每帧n个字的音频数据上加上帧头,形成长度为n+1个字的帧数据,发送给fgpa芯片(在本发明中,根据音频数据通道位宽,每帧的音频数据的长度一般为32bit或24bit。每个字含有左右声道的数据,即为2*32=64bit或2*24=48bit);fgpa芯片对接收到的帧数据,去掉帧头和空闲数据后,得到新的音频数据;同时,fgpa芯片根据本地的晶振或时钟向cpu产生一个time信号,促使cpu同步向fgpa芯片发送的音频数据量;fpga将新的音频数据写入fpga内部的fifo芯片;fpga芯片按照本地的时钟或晶振,向数模转换器产生bck数据和lrck数据,并读取音频数据送给所述数模转换器。本发明的同步方法,实现没有slave模式的cpu的i2s音频数据的时钟信息与fgpa芯片时钟数据的同步,实现了以更高的品质播放音乐文件的目的。
27.实施例1、一种i2s音频时钟数据的同步方法本实施例提供了一种i2s音频时钟数据的同步方法,如图1和图2所示,所述的同步方法包括:步骤一、将没有slave模式的cpu的i2s音频数据流进行预处理:设置从所述的没有slave模式的cpu的i2s音频数据流获取的音频时钟数据(第一bck数据和第一lrck数据),使所述的第一bck数据和第一lrck数据频率大于所述fpga芯片的本振频率。
28.将没有slave模式的cpu的i2s音频数据流切分成一帧一帧的音频数据(每帧音频数据包括n个字,n>1),在每一帧的音频数据上加上帧头,形成长度为n+1个字的一帧数据(在本发明中,根据音频数据通道位宽,每帧的音频数据的长度一般为32bit。每个字含有左右声道的数据,即为2*32=64bit);其中,所述帧头包括两个部分:一部分为帧数据长度,所述帧数据长度是以字为单位;另一部分为crc校验长度;其中,所述的没有slave模式的cpu的i2s音频数据流包括第一bck数据和第一lrck数据,所述的第一bck数据和第一lrck数据,是由所述没有slave模式的cpu的内部时钟锁相生成。
29.在所述一帧一帧的音频数据之间可以插入全0字,全0字为一串全为0的比特流,0的个数为n个字,表示空数据;插入全0字的长度是根据time的要求插入正常的音频数据后在多余的时钟空间内插入空闲,使得所述长度为n+1个字的帧中音频数据的速率和fpga芯片的时钟所要求的音频数据的速率相同。比如,假设time信号为10hz变化一次,如果所述没有slave模式的cpu的音频数据的频率为44.1khz;则所述没有slave模式的cpu每检测到一次time变化,所述没有slave模式的cpu向所述接收端fgpa芯片发送4410次左右音频数据,由于所述没有slave模式的cpu产生的bck数据和lrck数据的频率会更高一些,在所述没有slave模式的cpu向所述接收端fgpa芯片发送音频数据中间会间插空闲数据,从而使使得所
述长度为n+1个字的一帧数据中音频数据的速率和fpga芯片的时钟所要求的音频数据的速率相同。
30.步骤二、所述接收端fgpa芯片根据本地的晶振或时钟,向所述没有slave模式的cpu产生一个time信号,所述没有slave模式的cpu检测到所述time信号后,同步向所述接收端fgpa芯片发送的数据量(在此处,同步的方法包括但不限于:如果所述没有slave模式的cpu连续收到三帧的crc都正确,即实现同步)。
31.其中,所述没有slave模式的cpu的i2s音频数据流包括第一bck数据和第一lrck数据,所述第一bck数据和第一lrck数据是由所述没有slave模式的cpu的内部时钟锁相生成。
32.步骤三、所述没有slave模式的cpu,将步骤一所述长度为n+1个字的一帧数据发送给步骤二所述接收端fgpa芯片,如果所述接收端fgpa芯片连续收到三帧的所述长度为n+1个字的一帧数据的包头crc校验正确,那么接收端fgpa芯片将跳过帧中间可能存在的全0字,即进入同步状态,进入同步。
33.所述接收端fgpa芯片对接收到的所述长度为n+1个字的帧(n>1)数据,去掉所述帧头和空闲数据后,得到新的音频数据;fpga芯片将所述的新的音频数据写入fpga芯片内部的fifo芯片。
34.步骤四、所述fpga芯片按照设置在fpga芯片上的时钟或晶振,向数模转换器(dac)产生bck数据和lrck数据,并从所述fifo芯片中读取步骤三所述音频数据送给所述数模转换器(dac),完成数据传输。
35.本实施例开发了一种i2s音频时钟数据的同步方法,实现了所述没有slave模式的cpu的音频时钟数据和所述fgpa芯片时钟数据的同步,实现了音乐播放时的高品质播放的功能。
36.实施例2、一种i2s音频时钟数据的同步装置本实施例开发了一种i2s音频时钟数据的同步装置,所述的同步装置包括没有slave模式的cpu、fgpa芯片、fifo芯片和数模转换器。
37.将没有slave模式的cpu的i2s音频数据流切分成一帧一帧的音频数据(每帧音频数据包括n个字,n>1),在所述的一帧一帧的音频数据之间插入全为0的比特流数据。所述的全为0的比特流数据的长度,可实现以下功能:使得所述长度为n+1个字的帧数据的速率和fpga芯片的时钟数据的速率相同(在本发明中,根据音频数据通道位宽,每帧的音频数据的长度一般为24bit。每个字含有左右声道的数据,即为2*24=48bit)。
38.在每一帧的音频数据上加上帧头,形成长度为n+1个字的一帧数据,n>1;所述帧头包括两个部分:一部分为帧数据长度,所述帧数据长度是以字为单位;另一部分为crc校验长度;所述的没有slave模式的cpu的i2s音频数据流包括第一bck数据和第一lrck数据,所述的第一bck数据和第一lrck数据,是由所述没有slave模式的cpu的内部时钟锁相生成。
39.所述没有slave模式的cpu向所述fgpa芯片发送长度为n+1个字的帧数据;所述fgpa芯片接收到所述的长度为n+1个字的帧数据的同时,并根据本地的晶振或时钟,向所述没有slave模式的cpu发送time信号,促使所述的没有slave模式的cpu同步向所述接收端fgpa芯片发送的音频数据量;所述fgpa芯片接收到所述的长度为n+1个字的帧数据后,去掉帧头和空闲数据得到新的音频数据,将所述的新的音频数据写入fpga芯片内部的fifo芯片。
40.所述的fpga芯片按照设置在fpga芯片上的时钟或晶振,向所述数模转换器发送bck数据和lrck数据,并从所述的fifo芯片中读取所述的音频数据发送给所述的数模转换器。
41.本实施例开发了一种i2s音频时钟数据的同步装置,实现了所述没有slave模式的cpu的音频时钟数据和所述fgpa芯片时钟数据的同步,实现了音乐播放时的高品质播放的功能。
42.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
43.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
44.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
45.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
46.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
47.本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。
48.以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单
推演、变形或替换。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1