一种FIFO缓存控制方法、装置及系统转让专利

申请号 : CN202211034376.5

文献号 : CN115103291B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林宇轩

申请人 : 南京芯驰半导体科技有限公司

摘要 :

一种FIFO缓存控制方法、装置及系统,所述方法包括:接收发送时钟信号和基于发送时钟信号的发送帧选通信号;在发送帧选通信号的上升沿和下降沿前,生成发送加载信号;获取与发送加载信号的高电平信号对应的FIFO缓存器的发送缓存状态;响应于发送缓存状态为读空状态,控制发送串行接口发送替代数据;响应于发送缓存状态为未读空状态,获取待发送的第一数据的第一声道类型和FIFO缓存器上一次发送的数据的第二声道类型;根据第一声道类型和第二声道类型,确定是否向FIFO缓存器发送读使能信号。本申请的缓存控制方法,能够有效避免接收侧或发送侧的数据传输发生通道调换,有助于确保左右声道的数据匹配,提高音频质量。

权利要求 :

1.一种FIFO缓存控制方法,包括:

接收发送时钟信号和基于所述发送时钟信号的发送帧选通信号;

在所述发送帧选通信号的上升沿和下降沿前,生成发送加载信号;

获取与所述发送加载信号的高电平信号对应的FIFO缓存器的发送缓存状态;

响应于所述发送缓存状态为读空状态,控制发送串行接口发送替代数据;

响应于所述发送缓存状态为未读空状态,获取待发送的第一数据的第一声道类型和所述FIFO缓存器上一次发送的数据的第二声道类型;

根据所述第一声道类型和所述第二声道类型,确定是否向所述FIFO缓存器发送读使能信号。

2.根据权利要求1所述的FIFO缓存控制方法,其特征在于,所述根据所述第一声道类型和所述第二声道类型,确定是否向所述FIFO缓存器发送读使能信号的步骤,包括:响应于所述第一声道类型和所述第二声道类型相同,控制所述发送串行接口发送所述替代数据;

响应于所述第一声道类型和所述第二声道类型不同,向所述FIFO缓存器发送所述读使能信号,以令所述FIFO缓存器发送所述第一数据。

3.根据权利要求2所述的FIFO缓存控制方法,其特征在于,在所述发送帧选通信号的上升沿和下降沿后,控制所述FIFO缓存器发送所述第一数据,并控制串并转换模块将所述第一数据转换为串行数据后发出。

4.根据权利要求1所述的FIFO缓存控制方法,其特征在于,所述替代数据,为全0数据或所述FIFO缓存器上一次接收的数据。

5.根据权利要求1‑4中任一项所述的FIFO缓存控制方法,其特征在于,所述FIFO缓存器,为基于集成电路内置音频总线的FIFO缓存器。

6.一种FIFO缓存控制方法,包括:

接收接收时钟信号和基于所述接收时钟信号的接收帧选通信号;

在所述接收帧选通信号的上升沿和下降沿前,生成接收加载信号;

获取与所述接收加载信号的高电平信号对应的FIFO缓存器的接收缓存状态;

响应于所述接收缓存状态为写满状态,将待接收的第二数据丢弃;

响应于所述接收缓存状态为未写满状态,获取所述第二数据的第三声道类型和所述FIFO缓存器上一次接收的数据的第四声道类型;

根据所述第三声道类型和所述第四声道类型,确定是否向所述FIFO缓存器发送写使能信号。

7.根据权利要求6所述的FIFO缓存控制方法,其特征在于,所述根据所述第三声道类型和所述第四声道类型,确定是否向所述FIFO缓存器发送写使能信号的步骤,包括:响应于所述第三声道类型和所述第四声道类型相同,将所述第二数据丢弃;

响应于所述第三声道类型和所述第四声道类型不同,向所述FIFO缓存器发送所述写使能信号,以令所述FIFO缓存器接收所述第二数据。

8.根据权利要求6所述的FIFO缓存控制方法,其特征在于,所述在所述接收帧选通信号的上升沿和下降沿前,生成接收加载信号的步骤,包括:在所述接收帧选通信号的上升沿和下降沿前,控制串并转换模块接收串行数据,并将所述串行数据转换为并行传输的所述第二数据;

生成所述接收加载信号。

9.一种发送端的FIFO缓存控制装置,其特征在于,包括:发送端接收模块,用于接收发送时钟信号和基于所述发送时钟信号的发送帧选通信号;

发送端生成模块,用于在所述发送帧选通信号的上升沿和下降沿前,生成发送加载信号;

发送端获取模块,用于获取与所述发送加载信号的高电平信号对应的FIFO缓存器的发送缓存状态;

发送端控制模块,响应于所述发送缓存状态为读空状态,控制发送串行接口发送替代数据;响应于所述发送缓存状态为未读空状态,获取待发送的第一数据的第一声道类型和所述FIFO缓存器上一次发送的数据的第二声道类型;根据所述第一声道类型和所述第二声道类型,确定是否向所述FIFO缓存器发送读使能信号。

10.一种接收端的FIFO缓存控制装置,其特征在于,包括:接收端接收模块,用于接收接收时钟信号和基于所述接收时钟信号的接收帧选通信号;

接收端生成模块,用于在所述接收帧选通信号的上升沿和下降沿前,生成接收加载信号;

接收端获取模块,用于获取与所述接收加载信号的高电平信号对应的FIFO缓存器的接收缓存状态;

接收端控制模块,响应于所述接收缓存状态为写满状态,将待接收的第二数据丢弃;响应于所述接收缓存状态为未写满状态,获取所述第二数据的第三声道类型和所述FIFO缓存器上一次接收的数据的第四声道类型;根据所述第三声道类型和所述第四声道类型,确定是否向所述FIFO缓存器发送写使能信号。

11.一种FIFO缓存控制装置,其特征在于,包括:权利要求9所述的发送端的FIFO缓存控制装置和权利要求10所述的接收端的FIFO缓存控制装置。

12.一种FIFO缓存控制系统,其特征在于,包括:

FIFO缓存器,用于缓存数据,所述缓存数据包括发送第一数据和接收第二数据;

串并转换模块,与所述FIFO缓存器电连接;用于在所述接收第二数据前,转换出并行传输的所述第二数据,并将所述第二数据发送至所述FIFO缓存器;还用于在所述发送第一数据后,从所述FIFO缓存器接收并行传输的所述第一数据,将所述第一数据转换为串行数据并发送至发送串行接口;

权利要求9‑11中任一项所述的FIFO缓存控制装置,与所述FIFO缓存器和所述串并转换模块分别电连接,用于进行数据缓存控制。

13.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,当计算机指令运行时执行权利要求1至8中任一项所述的FIFO缓存控制方法的步骤。

说明书 :

一种FIFO缓存控制方法、装置及系统

技术领域

[0001] 本申请涉及数据存储技术领域,特别是涉及一种FIFO缓存控制方法、装置及系统。

背景技术

[0002] I2S(Inter‑IC Sound,集成电路内置音频)总线,是一种广泛应用于数字音频设备之间传输音频数据的总线标准。其通过将数据和时钟信号分离,并采用帧选通(Word Select,WS)信号来区分左右声道。
[0003] I2S协议中第一帧的左声道和第一帧的右声道为第一个完整数据帧,因此约定主机和从机双方先传输左声道,再传输右声道。若有一方违反这个约定,则会导致右声道与左声道互换,从而使听到的声音发生左右声道的错位,造成通道调换。发生通道调换后,会变成第一帧的右声道和第二帧的左声道合并为一帧,第二帧的右声道和第三帧的左声道合并为第二帧,以此类推,导致每一帧左右声道的数据不匹配,从而听到错误的声音。
[0004] 相关技术中,在发送侧,需要将FIFO(First In First Out,先进先出)缓存器中的并行数据转换成串行数据,并以I2S协议发送串行数据;在接收侧,将I2S的串行数据转换成并行数据后,存入FIFO缓存器中。因此,容易在发送侧或接收侧发生数据传输异常,导致I2S接口传输发生通道调换,从而使左右声道的数据不匹配,进而听到错误的声音。

发明内容

[0005] 为了解决现有技术中存在的至少一个问题,本申请的目的在于提供一种FIFO缓存控制方法、装置及系统,能够有效避免接收侧或发送侧的数据传输发生通道调换,有助于确保左右声道的数据匹配,提高音频质量。
[0006] 为实现上述目的,本申请提供的一种FIFO缓存控制方法,包括:
[0007] 接收发送时钟信号和基于所述发送时钟信号的发送帧选通信号;
[0008] 在所述发送帧选通信号的上升沿和下降沿前,生成发送加载信号;
[0009] 获取与所述发送加载信号的高电平信号对应的FIFO缓存器的发送缓存状态;
[0010] 响应于所述发送缓存状态为读空状态,控制发送串行接口发送替代数据;
[0011] 响应于所述发送缓存状态为未读空状态,获取待发送的第一数据的第一声道类型和所述FIFO缓存器上一次发送的数据的第二声道类型;
[0012] 根据所述第一声道类型和所述第二声道类型,确定是否向所述FIFO缓存器发送读使能信号。
[0013] 进一步地,所述根据所述第一声道类型和所述第二声道类型,确定是否向所述FIFO缓存器发送读使能信号的步骤,包括:
[0014] 响应于所述第一声道类型和所述第二声道类型相同,控制所述发送串行接口发送所述替代数据;
[0015] 响应于所述第一声道类型和所述第二声道类型不同,向所述FIFO缓存器发送所述读使能信号,以令所述FIFO缓存器发送所述第一数据。
[0016] 更进一步地,在所述发送帧选通信号的上升沿和下降沿后,控制所述FIFO缓存器发送所述第一数据,并控制串并转换模块将所述第一数据转换为串行数据后发出。
[0017] 进一步地,所述替代数据,为全0数据或所述FIFO缓存器上一次接收的数据。
[0018] 进一步地,所述FIFO缓存器,为基于集成电路内置音频总线的FIFO缓存器。
[0019] 为实现上述目的,本申请还提供的一种FIFO缓存控制方法,包括:
[0020] 接收接收时钟信号和基于所述接收时钟信号的接收帧选通信号;
[0021] 在所述接收帧选通信号的上升沿和下降沿前,生成接收加载信号;
[0022] 获取与所述接收加载信号的高电平信号对应的FIFO缓存器的接收缓存状态;
[0023] 响应于所述接收缓存状态为写满状态,将待接收的第二数据丢弃;
[0024] 响应于所述接收缓存状态为未写满状态,获取所述第二数据的第三声道类型和所述FIFO缓存器上一次接收的数据的第四声道类型;
[0025] 根据所述第三声道类型和所述第四声道类型,确定是否向所述FIFO缓存器发送写使能信号。
[0026] 进一步地,所述根据所述第三声道类型和所述第四声道类型,确定是否向所述FIFO缓存器发送写使能信号的步骤,包括:
[0027] 响应于所述第三声道类型和所述第四声道类型相同,将所述第二数据丢弃;
[0028] 响应于所述第三声道类型和所述第四声道类型不同,向所述FIFO缓存器发送所述写使能信号,以令所述FIFO缓存器接收所述第二数据。
[0029] 进一步地,所述在所述接收帧选通信号的上升沿和下降沿前,生成接收加载信号的步骤,包括:
[0030] 在所述接收帧选通信号的上升沿和下降沿前,控制串并转换模块接收串行数据,并将所述串行数据转换为并行传输的所述第二数据;
[0031] 生成所述接收加载信号。
[0032] 为实现上述目的,本申请还提供的一种发送端的FIFO缓存控制装置,包括:
[0033] 发送端接收模块,用于接收发送时钟信号和基于所述发送时钟信号的发送帧选通信号;
[0034] 发送端生成模块,用于在所述发送帧选通信号的上升沿和下降沿前,生成发送加载信号;
[0035] 发送端获取模块,用于获取与所述发送加载信号的高电平信号对应的FIFO缓存器的发送缓存状态;
[0036] 发送端控制模块,响应于所述发送缓存状态为读空状态,控制发送串行接口发送替代数据;响应于所述发送缓存状态为未读空状态,获取待发送的第一数据的第一声道类型和所述FIFO缓存器上一次发送的数据的第二声道类型;根据所述第一声道类型和所述第二声道类型,确定是否向所述FIFO缓存器发送读使能信号。
[0037] 为实现上述目的,本申请还提供的一种接收端的FIFO缓存控制装置,包括:
[0038] 接收端接收模块,用于接收接收时钟信号和基于所述接收时钟信号的接收帧选通信号;
[0039] 接收端生成模块,用于在所述接收帧选通信号的上升沿和下降沿前,生成接收加载信号;
[0040] 接收端获取模块,用于获取与所述接收加载信号的高电平信号对应的FIFO缓存器的接收缓存状态;
[0041] 接收端控制模块,响应于所述接收缓存状态为写满状态,将待接收的第二数据丢弃;响应于所述接收缓存状态为未写满状态,获取所述第二数据的第三声道类型和所述FIFO缓存器上一次接收的数据的第四声道类型;根据所述第三声道类型和所述第四声道类型,确定是否向所述FIFO缓存器发送写使能信号。
[0042] 为实现上述目的,本申请还提供的一种FIFO缓存控制装置,包括:如上所述的发送端的FIFO缓存控制装置和如上所述的接收端的FIFO缓存控制装置。
[0043] 为实现上述目的,本申请提供的FIFO缓存控制系统,包括:
[0044] FIFO缓存器,用于缓存数据,所述缓存数据包括发送第一数据和接收第二数据;
[0045] 串并转换模块,与所述FIFO缓存器电连接;用于在所述接收第二数据前,转换出并行传输的所述第二数据,并将所述第二数据发送至所述FIFO缓存器;还用于在所述发送第一数据后,从所述FIFO缓存器接收并行传输的所述第一数据,将所述第一数据转换为串行数据并发送至发送串行接口;
[0046] FIFO缓存控制装置,与所述FIFO缓存器和所述串并转换模块分别电连接,用于进行数据缓存控制。
[0047] 为实现上述目的,本申请提供的一种计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行如上所述的FIFO缓存控制方法的步骤。
[0048] 本申请的一种FIFO缓存控制方法、装置及系统,能够有效避免接收侧或发送侧的数据传输发生通道调换,有助于确保左右声道的数据匹配,提高音频质量。
[0049] 本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。

附图说明

[0050] 附图用来提供对本申请的进一步理解,并且构成说明书的一部分,并与本申请的实施例一起,用于解释本申请,并不构成对本申请的限制。在附图中:
[0051] 图1为根据本申请一个实施例的FIFO缓存控制方法的流程图;
[0052] 图2为根据本申请一个实施例的FIFO缓存控制时序图;
[0053] 图3为根据本申请另一个实施例的FIFO缓存控制方法的流程图;
[0054] 图4为根据本申请另一个实施例的FIFO缓存控制时序图;
[0055] 图5为本申请实施例的发送端的FIFO缓存控制装置的结构框图;
[0056] 图6为本申请实施例的接收端的FIFO缓存控制装置的结构框图;
[0057] 图7为本申请实施例的FIFO缓存控制装置的结构框图;
[0058] 图8为本申请一个实施例的FIFO缓存控制系统的结构框图;
[0059] 图9为本申请另一个实施例的FIFO缓存控制系统的结构框图。

具体实施方式

[0060] 下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
[0061] 应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
[0062] 本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
[0063] 需要注意,本申请中提及的“第二数据”、“第一数据”等概念仅用于对不同的装置、模块、单元或数据进行区分,并非用于限定这些装置、模块、单元或数据所执行的功能的顺序或者相互依存关系。
[0064] 需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。“多个”应理解为两个或以上。
[0065] 下面,将参考附图详细地说明本申请的实施例。
[0066] 实施例1
[0067] 图1为根据本申请一个实施例的FIFO缓存控制方法流程图,下面将参考图1,对本申请的FIFO缓存控制方法进行详细描述。
[0068] 在步骤101,接收发送时钟信号和基于发送时钟信号的发送帧选通信号。
[0069] 具体地,帧选通信号(WS)用于区分左声道和右声道。参考图2所示,对于发送侧来说,可以通过发送时钟信号(TXCLK)采样发送帧选通信号(TXWS)。根据TXWS可以确定是通过哪个声道发送数据,如当TXWS为1时,通过左声道发送数据,当TXWS为0时,通过右声道发送数据。
[0070] 在步骤102,在发送帧选通信号的上升沿和下降沿前,生成发送加载信号。
[0071] 继续参考图2所示,在TXWS的上升沿和下降沿前,生成发送加载信号(txload)。txload是周期性的中间信号,即只有在产生txload的情况下,同时满足相应的控制条件,才能够从FIFO缓存器中读取数据。
[0072] 在步骤103,获取与发送加载信号的高电平信号对应的FIFO缓存器的发送缓存状态。
[0073] 具体地,参考图2所示,可以根据与txload的高电平信号同步的读空状态信号(txfifo_emp),获取FIFO缓存器的发送缓存状态。该发送缓存状态可以包括读空状态(当txfifo_emp为1时)和未读空状态(当txfifo_emp为0时),在读空状态下,若继续读取数据,则会造成FIFO缓存器欠载。
[0074] 在步骤104,响应于发送缓存状态为读空状态,控制发送串行接口发送替代数据。
[0075] 具体来说,当发送缓存状态为读空状态时,参考图2所示,在T2时刻前,txload为1时,对应的txfifo_emp为1,即发送完上一帧的左声道数据后,发送缓存状态为读空状态,若此时继续进行读操作,则会造成FIFO缓存器欠载,因此不向FIFO缓存器发送读使能信号(read),而是控制发送串行接口发送替代数据,从而避免了数据发送异常。
[0076] 需要说明的是,替代数据是通过发送串行接口发送的串行数据,而不在该帧的声道周期(这一帧的左声道传输时段或右声道传播时段)向FIFO缓存器发送相应的read。其中,发送串行接口是指用于FIFO缓存控制系统与外设连接的、发送串行数据的接口。此外,本次替代数据对应的txload生成于TXWS的上升沿或下降沿前,而替代数据发送于相应的TXWS的上升沿或下降沿后,即二者不在同一声道周期。
[0077] 进一步地,替代数据可以为全0数据。当将全0数据作为替代数据播放时,用户听到的是静音。此外,替代数据还可以是FIFO缓存器上一次接收的数据,此时用户会重复听到上一段声音。
[0078] 在步骤105,响应于发送缓存状态为未读空状态,根据发送帧选通信号,获取待发送的第一数据的第一声道类型和FIFO缓存器上一次发送的数据的第二声道类型。
[0079] 需要说明的是,第一数据为有效数据,指的是,对应TXWS的上升沿或下降沿前的txload,在TXWS的上升沿或下降沿后的声道周期中、待发送的数据。具体来说,参考图2所示,如在T3时刻前,txload为1时所对应的txfifo_emp为0,即发送缓存状态为未读空状态。此时,需要获取待发送的第一数据的第一声道类型,由于txload和相应的read生成于TXWS的上升沿或下降沿前,而数据发送于相应的TXWS的上升沿或下降沿后,因此,第一声道类型为T3至T4时段的TXWS信号的声道类型;并且,还获取FIFO缓存器上一次发送的数据的第二声道类型,即T1至T2时段的TXWS信号的声道类型。
[0080] 在步骤106,根据第一声道类型和第二声道类型,确定是否向FIFO缓存器发送读使能信号。
[0081] 也就是说,在FIFO缓存器处于未读空状态的情况下,基于第一数据的声道类型和FIFO缓存器上一次发送的数据的声道类型,判断是否向FIFO缓存器发送读使能信号。
[0082] 在本申请的实施例中,步骤106可以包括:响应于第一声道类型和第二声道类型相同,控制发送串行接口发送替代数据;响应于第一声道类型和第二声道类型不同,向FIFO缓存器发送读使能信号,以令FIFO缓存器发送第一数据。
[0083] 具体地,在FIFO缓存器处于未读空状态的情况下,参考图2所示,对于T3时刻来说,第一数据对应的发送时段是T3至T4时段,期间对应的TXWS信号为1,即第一数据的声道类型是左声道,而FIFO缓存器上一次发送数据是在T1至T2时段,期间对应的TXWS信号为1,即FIFO缓存器上一次发送的数据的声道类型也为左声道。由于第一声道类型和第二声道类型相同,无法满足左右声道交错发送,因此不向FIFO缓存器发出txread,并且,控制发送串行接口发送左声道传输的替代数据(即全0数据)。
[0084] 对于T4时刻来说,T4至T5(图中未示出)时段TXWS信号为0,即第一数据的声道类型是右声道,而FIFO缓存器上一次发送的数据是在T1至T2时段,期间对应的TXWS信号为1,即FIFO缓存器上一次发送的数据的声道类型为左声道。由于第一声道类型和第二声道类型不同,能够满足左右声道交错发送,因此向FIFO缓存器发出txread,以令FIFO缓存器发送第一数据。
[0085] 进一步地,在发送帧选通信号的上升沿和下降沿后,控制FIFO缓存器发送第一数据,并控制串并转换模块将第一数据转换为串行数据后发出。
[0086] 也就是说,参考图2所示,于发送侧,在每帧每声道的前一个声道周期中,生成txread,若该信号对应未读空状态,且第一数据的声道类型和FIFO缓存器上一次发送的数据的声道类型不同,则在TXWS的上升沿和下降沿之前,会备好待发送的第一数据,并控制FIFO缓存器将第一数据发送至串并转换模块。而后,由串并转换模块通过内部计数器,得到每个时刻应发送的串行数据的比特位,同时将FIFO缓存器中读出的并行传输的第一数据进行移位,转换为串行数据并发出。
[0087] 需要说明的是,本申请中的FIFO缓存器,可以为基于I2S总线的FIFO缓存器。
[0088] 综上所述,通过接收发送时钟信号和基于发送时钟信号的发送帧选通信号,并通过在发送帧选通信号的上升沿和下降沿前,生成发送加载信号,以及通过获取与发送加载信号对应的FIFO缓存器的发送缓存状态,并响应于发送缓存状态为读空状态,控制发送串行接口发送替代数据,以及响应于发送缓存状态为未读空状态,根据发送帧选通信号,获取待发送的第一数据的第一声道类型和FIFO缓存器上一次发送的数据的第二声道类型,并根据第一声道类型和第二声道类型,确定是否向FIFO缓存器发送读使能信号。由此,能够有效避免发送侧的数据传输发生通道调换,有助于确保左右声道的数据匹配,提高音频质量,尤其在FIFO存储器欠载的情况下,效果尤为明显。
[0089] 实施例2
[0090] 图3为根据本申请另一个实施例的FIFO缓存控制方法流程图,下面将参考图3,对本申请的FIFO缓存控制方法进行详细描述。
[0091] 在步骤201,接收接收时钟信号和基于接收时钟信号的接收帧选通信号。
[0092] 具体地,参考图4所示,对于接收侧来说,可以通过接收时钟信号(RXCLK)采样接收帧选通信号(RXWS),根据RXWS可以确定是通过哪个声道接收数据,如当RXWS为1时,通过左声道接收数据,当RXWS为0时,通过右声道接收数据。
[0093] 在步骤202,在接收帧选通信号的上升沿和下降沿前,生成接收加载信号。
[0094] 继续参考图4所示,在RXWS的上升沿和下降沿前,生成接收加载信号(rxload)。rxload是周期性的中间信号,即只有在产生rxload的情况下,同时满足相应的控制条件,才可以实现数据的接收。
[0095] 在本申请的实施例中,步骤202可以包括:在接收帧选通信号的上升沿和下降沿前,控制串并转换模块接收串行数据,并将串行数据转换为并行传输的第二数据;生成接收加载信号。
[0096] 具体地,于接收侧,在每帧每声道的时段中,先通过内部计数器与当前输入的串行数据(DATA)一一映射,得到输入的串行数据所对应的比特,而后将串行数据转换为并行数据,并可以在最后一个数据时刻,生成rxload。在rxload为1时,获取FIFO缓存器的接收缓存状态,而后,基于接收缓存状态,或基于接收缓存状态和通道数据类型相关信息,确定是否将上述数据写入FIFO缓存器。
[0097] 在步骤203,获取与接收加载信号的高电平信号对应的FIFO缓存器的接收缓存状态。
[0098] 具体地,参考图4所示,可以根据与rxload的高电平信号同步的写满状态信号(rxfifo_full),获取FIFO缓存器的接收缓存状态。该接收缓存状态可以包括写满状态(rxfifo_full为1)和未写满状态(rxfifo_full为0),在写满状态下,若继续写入数据,则会造成FIFO缓存器过载。
[0099] 在步骤204,响应于接收缓存状态为写满状态,将待接收的第二数据丢弃。
[0100] 具体地,参考图4所示,在T1时刻接收完了第一帧右声道数据,接收完成后,FIFO缓存器处于写满状态。在T2时刻前rxload为1时,表示需要往FIFO缓存器中写入数据,由于FIFO缓存器此时已满,因此不向FIFO缓存器发送写使能信号(write),而是将待接收的改笔左声道数据丢弃(don’t care),以避免造成FIFO缓存器过载。
[0101] 在步骤205,响应于接收缓存状态为未写满状态,根据接收帧选通信号,获取第二数据的第三声道类型和FIFO缓存器上一次接收的数据的第四声道类型。
[0102] 具体地,当接收缓存状态为未写满状态时,继续参考图4所示,如在T3时刻,rxfifo_full为0。此时,需要获取待接收的第二数据的第三声道类型,即通过T2至T3时段RXWS信号,判断第二数据的声道类型;并获取FIFO缓存器上一次接收的数据的第四声道类型,即根据T0(图中未示出)至T1时段所对应的RXWS信号,判断最近一次写入的数据的声道类型。
[0103] 在步骤206,根据第三声道类型和第四声道类型,确定是否向FIFO缓存器发送写使能信号。
[0104] 也就是说,在接收缓存状态为未写满状态的情况下,基于第二数据的声道类型和FIFO缓存器上一次接收的数据的声道类型,判断是否向FIFO缓存器发送写使能信号。
[0105] 在本申请的实施例中,步骤206可以包括:响应于第三声道类型和第四声道类型相同,将第二数据丢弃;响应于第三声道类型和第四声道类型不同,向FIFO缓存器发出写使能信号,以令FIFO缓存器接收第二数据。
[0106] 具体来说,在FIFO缓存器处于未写满状态的情况下,参考图4所示,对于T3时刻来说,第二数据对应的接收时段是T2至T3时段,因此第二数据的声道类型是右声道,而FIFO缓存器上一次接收数据的声道类型也为右声道。由于第三声道类型和第四声道类型相同,无法满足左右声道交错接收,因此,不向FIFO缓存器发出写使能信号,将第二数据丢弃。
[0107] 对于T4时刻来说,T3至T4时段RXWS信号为1,即第二数据的声道类型是左声道,而FIFO缓存器上一次接收数据的声道类型为右声道。由于第三声道类型和第四声道类型不同,能够满足左右声道交错接收,因此,向FIFO缓存器发出写使能信号,以令FIFO缓存器接收第二数据。
[0108] 根据本申请实施例的FIFO缓存控制方法,通过接收接收时钟信号和基于接收时钟信号的接收帧选通信号,并通过在接收帧选通信号的上升沿和下降沿前,生成接收加载信号,以及通过获取与接收加载信号对应的FIFO缓存器的接收缓存状态,并响应于接收缓存状态为写满状态,将待接收的第二数据丢弃,以及响应于接收缓存状态为未写满状态,根据接收帧选通信号,获取第二数据的第三声道类型和FIFO缓存器上一次接收的数据的第四声道类型,并根据第三声道类型和第四声道类型,确定是否向FIFO缓存器发送写使能信号。由此,能够有效避免接收侧的数据传输发生通道调换,有助于确保左右声道的数据匹配,提高音频质量,尤其在FIFO存储器过载的情况下,效果尤为明显。
[0109] 实施例3
[0110] 图5为本申请实施例的一种发送端的FIFO缓存控制装置的结构框图。参考图5所示,该发送端的FIFO缓存控制装置10,包括发送端接收模块11、发送端生成模块12、发送端获取模块13和发送端控制模块14。
[0111] 其中,发送端接收模块11,用于接收发送时钟信号和基于发送时钟信号的发送帧选通信号;发送端生成模块12,用于在发送帧选通信号的上升沿和下降沿前,生成发送加载信号;发送端获取模块13,用于获取与发送加载信号对应的FIFO缓存器的发送缓存状态;发送端控制模块14,响应于发送缓存状态为读空状态,控制发送串行接口发送替代数据;响应于发送缓存状态为未读空状态,根据发送帧选通信号,获取待发送的第一数据的第一声道类型和FIFO缓存器上一次发送的数据的第二声道类型;根据第一声道类型和第二声道类型,确定是否向FIFO缓存器发送读使能信号。
[0112] 在本申请的实施例中,发送端控制模块14,具体用于:响应于第一声道类型和第二声道类型相同,控制发送串行接口发送替代数据;响应于第一声道类型和第二声道类型不同,向FIFO缓存器发送读使能信号,以令FIFO缓存器发送第一数据。
[0113] 进一步地,发送端控制模块14,还用于:在发送帧选通信号的上升沿和下降沿后,控制FIFO缓存器发送第一数据,并控制串并转换模块将第一数据转换为串行数据后发出。
[0114] 根据本申请实施例的发送端的FIFO缓存控制装置,能够有效避免发送侧的数据传输发生通道调换,有助于确保左右声道的数据匹配,提高音频质量,尤其在FIFO存储器欠载的情况下,效果尤为明显。
[0115] 实施例4
[0116] 图6为本申请实施例的接收端的FIFO缓存控制装置的结构框图。参考图6所示,该接收端的FIFO缓存控制装置20,包括接收端接收模块21、接收端生成模块22、接收端获取模块23和接收端控制模块24。
[0117] 其中,接收端接收模块21,用于接收接收时钟信号和基于接收时钟信号的接收帧选通信号;接收端生成模块22,用于在接收帧选通信号的上升沿和下降沿前,生成接收加载信号;接收端获取模块23,用于获取与接收加载信号对应的FIFO缓存器的接收缓存状态;接收端控制模块24,响应于接收缓存状态为写满状态,将待接收的第二数据丢弃;响应于接收缓存状态为未写满状态,根据接收帧选通信号,获取第二数据的第三声道类型和FIFO缓存器上一次接收的数据的第四声道类型;根据第三声道类型和第四声道类型,确定是否向FIFO缓存器发送写使能信号。
[0118] 在本申请的实施例中,接收端控制模块24,具体用于:响应于第三声道类型和第四声道类型相同,将第二数据丢弃;响应于第三声道类型和第四声道类型不同,向FIFO缓存器发出写使能信号,以令FIFO缓存器接收第二数据。
[0119] 在本申请的实施例中,接收端控制模块24,具体用于:在接收帧选通信号的上升沿和下降沿前,控制串并转换模块接收串行数据,并将串行数据转换为并行传输的第二数据。
[0120] 根据本申请实施例的接收端的FIFO缓存控制装置,能够有效避免接收侧的数据传输发生通道调换,有助于确保左右声道的数据匹配,提高音频质量,尤其在FIFO存储器过载的情况下,效果尤为明显。
[0121] 实施例5
[0122] 图7为本申请实施例的一种FIFO缓存控制装置的结构框图。参考图7所示,该FIFO缓存控制装置30,包括发送端的FIFO缓存控制装置10和接收端的FIFO缓存控制装置20。其中,发送端的FIFO缓存控制装置10包括发送端接收模块11、发送端生成模块12、发送端获取模块13、发送端控制模块14;接收端的FIFO缓存控制装置20包括接收端接收模块21、接收端生成模块22、接收端获取模块23和接收端控制模块24。
[0123] 需要说明的是,前述对FIFO缓存控制方法实施例的解释说明也适用于对应的FIFO缓存控制装置实施例,原理相同,此处不再赘述。
[0124] 根据本申请实施例的FIFO缓存控制装置,能够有效避免在接收侧和发送侧发生数据传输异常,使得接收侧和发送侧的数据传输不会发生通道调换,确保了左右声道的数据匹配。尤其在FIFO存储器过载和欠载的情况下,效果尤为明显。
[0125] 实施例6
[0126] 图8为本申请一个实施例的FIFO缓存控制系统的结构框图。参考图8所示,该FIFO缓存控制系统1,包括上述实施例中的FIFO缓存控制装置100、FIFO缓存器200和串并转换模块300。
[0127] 其中,FIFO缓存器200,用于缓存数据,缓存数据包括发送第一数据和接收第二数据;串并转换模块300,与FIFO缓存器200电连接;用于在FIFO缓存器200接收第二数据前,转换出并行传输的第二数据,并将第二数据发送至FIFO缓存器200;还用于在FIFO缓存器200发送第一数据后,从FIFO缓存器200接收并行传输的第一数据,将第一数据转换为串行数据并发送至发送串行接口;FIFO缓存控制装置100,与FIFO缓存器200和串并转换模块300分别电连接,用于进行数据缓存控制。
[0128] 根据本申请实施例的FIFO缓存控制系统,能够有效避免接收侧或发送侧的数据传输发生通道调换,有助于确保左右声道的数据匹配,提高音频质量。尤其在FIFO存储器过载或欠载的情况下,效果尤为明显。
[0129] 实施例7
[0130] 图9为本申请另一个实施例的FIFO缓存控制系统的结构框图。参考图9所示,该FIFO缓存控制系统1,包括发送部分和接收部分。
[0131] 其中,发送部分包括发送端的FIFO缓存控制装置10、发送端的FIFO缓存器50和发送端的串并转换模块70。具体地,发送端的FIFO缓存控制装置10,用于接收TXWS和TXCLK,并向发送端的FIFO缓存器50发送read,以及向发送端的串并转换模块70发送控制信号;发送端的FIFO缓存器50,用于读取第一数据;发送端的串并转换模块70,用于接收并行传输的第一数据,将第一数据转换为串行数据并发送至发送串行接口。
[0132] 接收部分包括接收端的FIFO缓存控制装置20、接收端的FIFO缓存器60和接收端的串并转换模块80。具体地,接收端的FIFO缓存控制装置20,用于接收RXWS和RXCLK,并向接收端的FIFO缓存器60发送write,以及向接收端的串并转换模块80发送控制信号;接收端的FIFO缓存器60,用于写入第二数据;接收端的串并转换模块80,用于在写入第二数据前,转换出并行传输的第二数据,并将第二数据发送至接收端的FIFO缓存器60。
[0133] 根据本申请实施例的FIFO缓存控制系统,能够有效避免接收侧和发送侧的数据传输发生通道调换,有助于确保左右声道的数据匹配,提高音频质量。尤其在FIFO存储器过载和欠载的情况下,效果尤为明显。
[0134] 实施例8
[0135] 本申请一个实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的系统中所包含的;也可以是单独存在,而未装配入该系统中。上述计算机可读存储介质承载有一个或者多个计算机指令,当上述一个或者多个计算机指令被执行时,实现上述实施例的FIFO缓存控制方法的步骤。
[0136] 本申请的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0137] 本领域普通技术人员可以理解:以上仅为本申请的优选实施例而已,并不用于限制本申请,尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。