CN112035168A - 具有移位寄存器的hda控制器控制hda codec芯片的方法、系统及存储介质 - Google Patents
具有移位寄存器的hda控制器控制hda codec芯片的方法、系统及存储介质 Download PDFInfo
- Publication number
- CN112035168A CN112035168A CN202010905579.1A CN202010905579A CN112035168A CN 112035168 A CN112035168 A CN 112035168A CN 202010905579 A CN202010905579 A CN 202010905579A CN 112035168 A CN112035168 A CN 112035168A
- Authority
- CN
- China
- Prior art keywords
- clock
- data
- module
- shift register
- hda
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明提供了一种具有移位寄存器的HDA控制器控制HDA CODEC芯片的方法、系统及存储介质,该方法在HDA控制器内写入程序,通过HDA控制器控制HDA CODEC芯片。本发明的有益效果是:通过在HDA控制器运行本发明的方法,从而实现对HDA CODEC芯片的控制,进而使HDA CODEC芯片能够在嵌入式设备内工作,解决了本领域技术人员一直渴望解决而没有解决的技术难题。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种具有移位寄存器的HDA 控制器控制HDA CODEC芯片的方法、系统及存储介质。
背景技术
在音频产品制造行业,包括音频处理器,前级效果器,直播设备,调音台以及各种音箱,但凡需要对音频进行数字信号处理的产品中,都需要对信号先进行模拟到数字的转换,模拟信号经量化后转换成离散的数字信号,经数字信号处理后,最后通过数字转模拟芯片,还原出模拟信号,输出到发声单元,还原出声音。在这个过程中,模拟/数字,数字/模拟互换的芯片(以下简称AD/DA),必不可少,并且作为核心部件直接影响到整机产品的功能实现与性能体验,AD/DA目前主流有两种接口,一类为IIS/PCM 用于嵌入式,另一类为AC97/HDA接口,广泛用于电脑主板,前者主要依赖于进口,而后者国产很多,而且性价比很高。
在音频处理领域,很多产品都需要同时传输或处理多个信号通道,而 IIS/PCM接口AD/DA,基本以立体声为主,多通道的AD/DA成本都很高,行业中很需要一个多通道,并且价格相对比较低廉的AD/DA。
IIS/PCM接口AD/DA,国产供应商并不多,基本都依赖于进口供应商,并且国内很多工厂的购买价格相差甚远,大部分工厂购买价格是低价工厂的2倍还多,给生产的采购带来非常大的局限性。
HDA接口的AD/DA(称为HDA CODEC芯片),一直用于电脑上,市场使用量非常大,而且每通道价格相当便宜,基本只要IIS/PCM接口 AD/DA的1/5-1/10的价格便可以买到接近品质的AD/DA,并且供应商是国内的,并向市场大量供货,尽管如此,过去这么多年,HDA接口AD/DA (HDA CODEC芯片)由于种种原因,也仅用于电脑制造行业,消费性,民用的音频产品无法享受到这个福利,将HDA接口AD/DA(HDA CODEC 芯片)应用于更多的音频产品,急需有人去发现,并实现。
HDA接口AD/DA(HDA CODEC芯片)用于电脑制造,基本由原厂提供了驱动包/软件包,要跨界应用到嵌入式设备,需要花大量时间,精力,金钱投入去研究,对于单一的产品研发,这种成年积月的研发通常是不划算的,也是项目研发时间上不允许的,但是本领域技术人员却迫切的希望将HDA CODEC芯片应用到嵌入式设备中,但受限于技术等原因,始终无法实现。嵌入式设备包括声卡、音频处理器、音频效果器、家庭音响或车载音响等。
HDA:high-definition-audio(高保真音频)。
发明内容
为了解决现有技术中无法将HDACODEC芯片应用到嵌入式设备中的问题,本发明提供了一种具有移位寄存器的HDA控制器控制HDA CODEC 芯片的方法,实现将HDA CODEC芯片应用于嵌入式设备中。
本发明提供了一种具有移位寄存器的HDA控制器控制HDA CODEC 芯片的方法,包括如下步骤:
步骤1,上电初始化:复位HDA控制器内部的移位寄存器和时钟单元,复位内存,时钟单元为HDA控制器的时钟单元;
步骤2,管脚初始化:分配1个通用输出管脚,用于连接HDA CODEC 芯片RST#管脚,RST#管脚为全局复位管脚;分配4个端口,分别用于连接HDA LINK的4个信号管脚,所述HDALINK的4个信号管脚分别为 BCLK、SYNC、SDI、SDO,并且为4个端口分别配置了1个移位寄存器; BCLK:全局位同步时钟,SYNC:全局帧同步时钟,SDI:串行数据输入脚,SDO:串行数据输出脚;
步骤3,HDA CODEC芯片复位:设置RST#管脚为低电平,令HDA CODEC芯片进入复位状态;
步骤4,产生移位寄存器模块工作时钟:分配一个PLL电路给移位寄存器使用,令PLL输出频率为n倍全局位同步时钟频率,n为偶数,n的最小取值为2;
步骤5,移位时钟源配置:初始化一个时钟源,命名为CLOCK A,重复频率设置为2倍全局位同步时钟频率;再初始化另一个时钟源,命名为 CLOCK B,重复频率设置为全局位同步时钟频率,并设置CLOCK B由 CLOCK A触发启动,即CLOCK A启动时,同时启动CLOCK B;
步骤6,移位寄存器配置:给管脚BCLK、SYNC、SDI、SDO分别分配一个移位寄存器,设置BCLK、SYNC、SDO的移位寄存器由CLOCK A 驱动,设置SDI的移位寄存器由CLOCK B驱动;或者,BCLK由CLOCK B直接输出,不经过移位寄存器;执行完步骤6后,继续执行步骤S1;
步骤S1,启动传输:打开CLOCK A,开始传输;
步骤S2,完成HDA CODEC芯片复位:设置RST#引脚为高电平,完成HDA CODEC芯片内部复位,恢复到出厂默认值,至此,开始对HDA CODEC芯片进行数据操作;
步骤S3,运行及判断:用于等待HDA LINK是否传输完成,若是,那么执行步骤S4,否则,返回执行步骤S3;
步骤S4,数据读出:当数据传输完成后,从SDI移位寄存器缓冲区取出新数据,同时将需要发送的数据写入BCLK、SYNC、SDO移位寄存器缓冲区;
步骤S5,数据处理:根据应用需要,将SDI取回数据做处理;
步骤S6,数据写回:将处理完后数据写回BCLK、SYNC、SDO移位寄存器缓冲区,然后返回执行步骤S3。
作为本发明的进一步改进,BCLK为全局24MHz位同步时钟,SYNC 为全局48KHz帧同步时钟。
作为本发明的进一步改进,在所述步骤S2中,首先等待全局位同步时钟建立,然后,设置RST#引脚为高电平,完成HDA CODEC芯片内部复位,恢复到出厂默认值,至此,开始对HDA CODEC芯片进行数据操作。
作为本发明的进一步改进,在所述步骤6与所述步骤S1之间还包括步骤7,
步骤7,DMA/eDMA配置:为BCLK、SYNC、SDI、SDO分别分配一个DMA/eDMA,并打开DMA/eDMA中断请求,当DMA/eDMA完成数据传输后,向CPU发起一次中断请求,请求CPU更新数据帧,DMA/eDMA:直接内存访问功能或增强型直接内存访问功能模块。
作为本发明的进一步改进,在所述步骤S1,启动传输:打开 DMA/eDMA中断,准备传输,打开CLOCK A,开始传输;
在所述步骤S3,运行及判断:运行中断服务程序,并判断中断服务程序是否完成传输,若是,那么执行步骤S4,否则,返回执行步骤S3;
在所述步骤S4,数据读出:当数据传输完成后,CPU产生中断,在中断服务程序中,更新数据,并设置标志,让主程序识别到,数据已经传输完,可以对新数据进行处理;
在所述步骤S5,数据处理:处理中断服务程序接收到的数据;
在所述步骤S6,数据写回:将处理完后数据写回中断服务程序发送地址位置,然后返回执行步骤S3。
本发明还提供了一种具有移位寄存器的HDA控制器控制HDA CODEC芯片的系统,包括:
上电初始化模块:用于复位HDA控制器内部的移位寄存器和时钟单元,复位内存,时钟单元为HDA控制器的时钟单元;
管脚初始化模块:用于分配1个通用输出管脚,用于连接HDA CODEC 芯片RST#管脚,RST#管脚为全局复位管脚;分配4个端口,分别用于连接HDA LINK的4个信号管脚,所述HDA LINK的4个信号管脚分别为 BCLK、SYNC、SDI、SDO,并且为4个端口分别配置了1个移位寄存器; BCLK:全局位同步时钟,SYNC:全局帧同步时钟,SDI:串行数据输入脚,SDO:串行数据输出脚;
HDA CODEC芯片复位模块:用于设置RST#管脚为低电平,令HDA CODEC芯片进入复位状态;
产生移位寄存器模块工作时钟模块:用于分配一个PLL电路给移位寄存器使用,令PLL输出频率为n倍全局位同步时钟频率,n为偶数,n的最小取值为2;
移位时钟源配置模块:用于初始化一个时钟源,命名为CLOCK A,重复频率设置为2倍全局位同步时钟频率;再初始化另一个时钟源,命名为CLOCK B,重复频率设置为全局位同步时钟频率,并设置CLOCK B由 CLOCK A触发启动,即CLOCK A启动时,同时启动CLOCK B;
移位寄存器配置模块:用于给管脚BCLK、SYNC、SDI、SDO分别分配一个移位寄存器,设置BCLK、SYNC、SDO的移位寄存器由CLOCK A 驱动,设置SDI的移位寄存器由CLOCK B驱动;或者,BCLK由CLOCK B直接输出,不经过移位寄存器;运行完移位寄存器配置模块后,继续运行启动传输模块;
启动传输模块:用于:打开CLOCK A,开始传输;
完成HDA CODEC芯片复位模块:用于设置RST#引脚为高电平,完成HDA CODEC芯片内部复位,恢复到出厂默认值,至此,开始对HDA CODEC芯片进行数据操作;
运行及判断模块:用于等待HDA LINK是否传输完成,若是,那么运行数据读出模块,否则,返回执行运行及判断模块;
数据读出模块:用于:当数据传输完成后,从SDI移位寄存器缓冲区取出新数据,同时将需要发送的数据写入BCLK、SYNC、SDO移位寄存器缓冲区;
数据处理模块:用于:根据应用需要,将SDI取回数据做处理;
数据写回模块:用于将处理完后数据写回BCLK、SYNC、SDO移位寄存器缓冲区,然后返回执行运行及判断模块。
作为本发明的进一步改进,在所述完成HDA CODEC芯片复位模块中,首先等待全局位同步时钟建立,然后,设置RST#引脚为高电平,完成HDA CODEC芯片内部复位,恢复到出厂默认值,至此,开始对HDA CODEC 芯片进行数据操作。
作为本发明的进一步改进,在所述移位寄存器配置模块与所述启动传输模块之间还包括DMA/eDMA配置模块,
DMA/eDMA配置模块:用于为BCLK、SYNC、SDI、SDO分别分配一个DMA/eDMA,并打开DMA/eDMA中断请求,当DMA/eDMA完成数据传输后,向CPU发起一次中断请求,请求CPU更新数据帧,DMA/eDMA:直接内存访问功能或增强型直接内存访问功能模块。
作为本发明的进一步改进,在所述启动传输模块:打开DMA/eDMA 中断,准备传输,打开CLOCK A,开始传输;
在所述运行及判断模块:运行中断服务程序,并判断中断服务程序是否完成传输,若是,那么运行数据读出模块,否则,返回执行运行及判断模块;
在所述数据读出模块:当数据传输完成后,CPU产生中断,在中断服务程序中,更新数据,并设置标志,让主程序识别到,数据已经传输完,可以对新数据进行处理;
在所述数据处理模块:处理中断服务程序接收到的数据;
在所述数据写回模块:将处理完后数据写回中断服务程序发送地址位置,然后返回执行运行及判断模块。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现本发明所述的方法的步骤。
本发明的有益效果是:通过在HDA控制器运行本发明的方法,从而实现对HDACODEC芯片的控制,进而使HDA CODEC芯片能够在嵌入式设备内工作,解决了本领域技术人员一直渴望解决而没有解决的技术难题。
附图说明
图1是本发明的硬件原理框图;
图2是本发明的流程图;
图3是本发明一优选实施例的硬件原理框图;
图4是本发明一优选实施例的流程图。
具体实施方式
图1给出了HDA控制器通过HDA LINK与HDA CODEC芯片连接的方框示意图,本发明是在支持移位寄存器的控制器上开发出能够产生HDA LINK 通信接口的软件,运行于HDA控制器之中,完成对HDA CODEC芯片的采样与回放。
下面对图1中的各器件进行解释说明:
HDA控制器(具有移位寄存器的HDA控制器):该HDA控制器器为支持移位寄存器功能的控制器,例如:FPGA,ARM,以及XMOS的XL1, XCORE200,AICORE系列芯片的部分型号都可以支持移位寄存器的操作功能,本方法便是基于移位寄存器讲述HDA LINK的实现过程。
PLLs:Phase lock loop(PLL)锁相环,一个HDA控制器内部一个或多个 PLL电路,用于产生系统所需要的时钟,同时,各个功能单元仍可能有一个或多个div(分频器),用于对时钟进行降频调整,以便得到适用于各个单元的精准时钟。
CPU:为一个芯片内部的内核,负责计算以及控制各个功能单元,如移位寄存器、GPIO。
移位寄存器模块:移位寄存器模块由移位寄存器、移位寄存器数据缓冲区以及管脚构成,同时,必须向每个移位寄存器提供一个移位时钟,需要发送的数据,只要将需要发送的数据写入移位寄存器缓冲区,移位时钟将移位寄存器缓冲区中的数据搬到移位寄存器并在移位时钟的同步下,一位一位移到管脚上,同时,移位寄存器模块也有状态寄存器,等待数据时,可以读取状态寄存器得知数据是否传输完成。
GPIO:通用输入输出端口,可用于产生RST#管脚信号。
RAM:随机存储内存,简称内存。
HDA CODEC芯片:为HDA LINK接口的数字/模拟互相转换芯片, HDA CODEC芯片可以为多个,分别是HDA CODEC芯片1、HDA CODEC 芯片2...HDA CODEC芯片n,用移位寄存器实现的HDA LINK可以实现多片HDA CODEC芯片并联,各个HDA CODEC芯片通过地址编码来区分。
HDA LINK:用来连接HDA控制器与HDA CODEC芯片之间的传输协议,HDA LINK共包括5条信号线路,见表1。
表1:HDA信号线路
如图2所示,本发明公开了一种具有移位寄存器的HDA控制器控制 HDA CODEC芯片的方法,包括如下步骤:
步骤1,上电初始化:复位HDA控制器内部的移位寄存器和时钟单元,复位内存,时钟单元为HDA控制器的时钟单元;
步骤2,管脚初始化:分配1个通用输出管脚,用于连接HDA CODEC 芯片RST#管脚,RST#管脚为全局复位管脚;分配4个端口,分别用于连接HDA LINK的4个信号管脚,所述HDALINK的4个信号管脚分别为BCLK、SYNC、SDI、SDO,并且为4个端口分别配置了1个移位寄存器; BCLK:全局位同步时钟,SYNC:全局帧同步时钟,SDI:串行数据输入脚,SDO:串行数据输出脚;
步骤3,HDA CODEC芯片复位:设置RST#管脚为低电平,令HDA CODEC芯片进入复位状态;
步骤4,产生移位寄存器模块工作时钟:分配一个PLL电路给移位寄存器使用,令PLL输出频率为n倍全局位同步时钟频率,n为偶数,n的最小取值为2;
步骤5,移位时钟源配置:初始化一个时钟源,命名为CLOCK A,重复频率设置为2倍全局位同步时钟频率;再初始化另一个时钟源,命名为 CLOCK B,重复频率设置为全局位同步时钟频率,并设置CLOCK B由 CLOCK A触发启动,即CLOCK A启动时,同时启动CLOCK B;
步骤6,移位寄存器配置:给管脚BCLK、SYNC、SDI、SDO分别分配一个移位寄存器,设置BCLK、SYNC、SDO的移位寄存器由CLOCK A 驱动,设置SDI的移位寄存器由CLOCK B驱动;或者,BCLK由CLOCK B直接输出,不经过移位寄存器;执行完步骤6后,继续执行步骤S1;
步骤S1,启动传输:打开CLOCK A,开始传输;
步骤S2,完成HDA CODEC芯片复位:设置RST#引脚为高电平,完成HDA CODEC芯片内部复位,恢复到出厂默认值,至此,开始对HDA CODEC芯片进行数据操作;
步骤S3,运行及判断:用于等待HDA LINK是否传输完成,若是,那么执行步骤S4,否则,返回执行步骤S3;
步骤S4,数据读出:当数据传输完成后,从SDI移位寄存器缓冲区取出新数据,同时将需要发送的数据写入BCLK、SYNC、SDO移位寄存器缓冲区;
步骤S5,数据处理:根据应用需要,将SDI取回数据做处理,例如音量调节、混音等处理;
步骤S6,数据写回:将处理完后数据写回BCLK、SYNC、SDO移位寄存器缓冲区,然后返回执行步骤S3。
作为本发明的优选方案,BCLK为全局24MHz位同步时钟,SYNC为全局48KHz帧同步时钟。
作为本发明的优选方案,在所述步骤S2中,首先等待全局位同步时钟建立,然后,设置RST#引脚为高电平,完成HDA CODEC芯片内部复位,恢复到出厂默认值,至此,开始对HDA CODEC芯片进行数据操作。
如图3所示,作为本发明的硬件优选实施例,该HDA控制器还包括 DMA/eDMA,DMA/eDMA:Direct Memory Access(DMA)/Enhanced Direct Memory Access(eDMA)直接内存访问功能或增强型直接内存访问功能模块,负责将数据从RAM搬到移位寄存器模块或从移位寄存器模块将数据搬回到RAM,以减轻在数据传输过程当中,CPU发送/接收数据带来的多余负担。
如图4所示,作为本发明的优选实施例,在所述步骤6与所述步骤S1 之间还包括步骤7,步骤7,DMA/eDMA配置:为BCLK、SYNC、SDI、 SDO分别分配一个DMA/eDMA,并打开DMA/eDMA中断请求,当 DMA/eDMA完成数据传输后,向CPU发起一次中断请求,请求CPU更新数据帧,DMA/eDMA:直接内存访问功能或增强型直接内存访问功能模块。
因为增加了DMA/eDMA,所以对步骤S1、步骤S3、步骤S4、步骤 S5、步骤S6进行如下调整:
在所述步骤S1,启动传输:打开DMA/eDMA中断,准备传输,打开 CLOCK A,开始传输。
在所述步骤S3,运行及判断:运行中断服务程序,并判断中断服务程序是否完成传输,若是,那么执行步骤S4,否则,返回执行步骤S3。
在所述步骤S4,数据读出:当数据传输完成后,CPU产生中断,在中断服务程序中,更新数据,并设置标志,让主程序识别到,数据已经传输完,可以对新数据进行处理。
在所述步骤S5,数据处理:处理中断服务程序接收到的数据;
在所述步骤S6,数据写回:将处理完后数据写回中断服务程序发送地址位置,然后返回执行步骤S3。
使用时,将HDA控制器与HDA CODEC芯片相连,然后安装在嵌入式设备内,将本发明的方法编写成代码,然后将代码烧录到HDA控制器中,这样HDA控制器便可以运行本发明的方法,从而就可以实现对HDA CODEC芯片的控制,进而使HDA CODEC芯片能够在嵌入式设备内工作;所以本发明具有如下技术优势:
1.让嵌入式产品大面积使用HDA CODEC芯片,扩大产品的材料选型范围,解决工厂在生产时,受材料供应商的制约。
2.让国内芯片制造商的HDA CODEC芯片更大范围应用于市场,更多行业可以使用HDA CODEC芯片,推进国内技术进步。
3.让行业产品的制造更加国产化,并预防了国外技术制约。
4.提升产品性价比,用更低的制造成本生产出更高性能的成品。
本发明还公开了一种具有移位寄存器的HDA控制器控制HDA CODEC芯片的系统,包括:
上电初始化模块:用于复位HDA控制器内部的移位寄存器和时钟单元,复位内存,时钟单元为HDA控制器的时钟单元;
管脚初始化模块:用于分配1个通用输出管脚,用于连接HDA CODEC 芯片RST#管脚,RST#管脚为全局复位管脚;分配4个端口,分别用于连接HDA LINK的4个信号管脚,所述HDA LINK的4个信号管脚分别为 BCLK、SYNC、SDI、SDO,并且为4个端口分别配置了1个移位寄存器; BCLK:全局位同步时钟,SYNC:全局帧同步时钟,SDI:串行数据输入脚,SDO:串行数据输出脚;
HDA CODEC芯片复位模块:用于设置RST#管脚为低电平,令HDA CODEC芯片进入复位状态;
产生移位寄存器模块工作时钟模块:用于分配一个PLL电路给移位寄存器使用,令PLL输出频率为n倍全局位同步时钟频率,n为偶数,n的最小取值为2;
移位时钟源配置模块:用于初始化一个时钟源,命名为CLOCK A,重复频率设置为2倍全局位同步时钟频率;再初始化另一个时钟源,命名为CLOCK B,重复频率设置为全局位同步时钟频率,并设置CLOCK B由 CLOCK A触发启动,即CLOCK A启动时,同时启动CLOCK B;
移位寄存器配置模块:用于给管脚BCLK、SYNC、SDI、SDO分别分配一个移位寄存器,设置BCLK、SYNC、SDO的移位寄存器由CLOCK A 驱动,设置SDI的移位寄存器由CLOCK B驱动;或者,BCLK由CLOCK B直接输出,不经过移位寄存器;运行完移位寄存器配置模块后,继续运行启动传输模块;
启动传输模块:用于:打开CLOCK A,开始传输;
完成HDA CODEC芯片复位模块:用于设置RST#引脚为高电平,完成HDA CODEC芯片内部复位,恢复到出厂默认值,至此,开始对HDA CODEC芯片进行数据操作;
运行及判断模块:用于等待HDA LINK是否传输完成,若是,那么运行数据读出模块,否则,返回执行运行及判断模块;
数据读出模块:用于:当数据传输完成后,从SDI移位寄存器缓冲区取出新数据,同时将需要发送的数据写入BCLK、SYNC、SDO移位寄存器缓冲区;
数据处理模块:用于:根据应用需要,将SDI取回数据做处理;
数据写回模块:用于将处理完后数据写回BCLK、SYNC、SDO移位寄存器缓冲区,然后返回执行运行及判断模块。
在所述完成HDA CODEC芯片复位模块中,首先等待全局位同步时钟建立,然后,设置RST#引脚为高电平,完成HDA CODEC芯片内部复位,恢复到出厂默认值,至此,开始对HDACODEC芯片进行数据操作。
在所述移位寄存器配置模块与所述启动传输模块之间还包括DMA/eDMA配置模块,DMA/eDMA配置模块:用于为BCLK、SYNC、 SDI、SDO分别分配一个DMA/eDMA,并打开DMA/eDMA中断请求,当 DMA/eDMA完成数据传输后,向CPU发起一次中断请求,请求CPU更新数据帧,DMA/eDMA:直接内存访问功能或增强型直接内存访问功能模块。
在所述启动传输模块:打开DMA/eDMA中断,准备传输,打开CLOCK A,开始传输;
在所述运行及判断模块:运行中断服务程序,并判断中断服务程序是否完成传输,若是,那么运行数据读出模块,否则,返回执行运行及判断模块;
在所述数据读出模块:当数据传输完成后,CPU产生中断,在中断服务程序中,更新数据,并设置标志,让主程序识别到,数据已经传输完,可以对新数据进行处理;
在所述数据处理模块:处理中断服务程序接收到的数据;
在所述数据写回模块:将处理完后数据写回中断服务程序发送地址位置,然后返回执行运行及判断模块。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现本发明的方法的步骤。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种具有移位寄存器的HDA控制器控制HDA CODEC芯片的方法,其特征在于,包括如下步骤:
步骤1,上电初始化:复位HDA控制器内部的移位寄存器和时钟单元,复位内存,时钟单元为HDA控制器的时钟单元;
步骤2,管脚初始化:分配1个通用输出管脚,用于连接HDA CODEC芯片RST#管脚,RST#管脚为全局复位管脚;分配4个端口,分别用于连接HDA LINK的4个信号管脚,所述HDA LINK的4个信号管脚分别为BCLK、SYNC、SDI、SDO,并且为4个端口分别配置了1个移位寄存器;BCLK:全局位同步时钟,SYNC:全局帧同步时钟,SDI:串行数据输入脚,SDO:串行数据输出脚;
步骤3,HDA CODEC芯片复位:设置RST#管脚为低电平,令HDA CODEC芯片进入复位状态;
步骤4,产生移位寄存器模块工作时钟:分配一个PLL电路给移位寄存器使用,令PLL输出频率为n倍全局位同步时钟频率,n为偶数,n的最小取值为2;
步骤5,移位时钟源配置:初始化一个时钟源,命名为CLOCK A,重复频率设置为2倍全局位同步时钟频率;再初始化另一个时钟源,命名为CLOCK B,重复频率设置为全局位同步时钟频率,并设置CLOCK B由CLOCK A触发启动,即CLOCK A启动时,同时启动CLOCK B;
步骤6,移位寄存器配置:给管脚BCLK、SYNC、SDI、SDO分别分配一个移位寄存器,设置BCLK、SYNC、SDO的移位寄存器由CLOCK A驱动,设置SDI的移位寄存器由CLOCK B驱动;或者,BCLK由CLOCK B直接输出,不经过移位寄存器;执行完步骤6后,继续执行步骤S1;
步骤S1,启动传输:打开CLOCK A,开始传输;
步骤S2,完成HDA CODEC芯片复位:设置RST#引脚为高电平,完成HDA CODEC芯片内部复位,恢复到出厂默认值,至此,开始对HDA CODEC芯片进行数据操作;
步骤S3,运行及判断:用于等待HDA LINK是否传输完成,若是,那么执行步骤S4,否则,返回执行步骤S3;
步骤S4,数据读出:当数据传输完成后,从SDI移位寄存器缓冲区取出新数据,同时将需要发送的数据写入BCLK、SYNC、SDO移位寄存器缓冲区;
步骤S5,数据处理:根据应用需要,将SDI取回数据做处理;
步骤S6,数据写回:将处理完后数据写回BCLK、SYNC、SDO移位寄存器缓冲区,然后返回执行步骤S3。
2.根据权利要求1所述的方法,其特征在于,BCLK为全局24MHz位同步时钟,SYNC为全局48KHz帧同步时钟。
3.根据权利要求1所述的方法,其特征在于,在所述步骤S2中,首先等待全局位同步时钟建立,然后,设置RST#引脚为高电平,完成HDA CODEC芯片内部复位,恢复到出厂默认值,至此,开始对HDA CODEC芯片进行数据操作。
4.根据权利要求1至3任一项所述的方法,其特征在于,在所述步骤6与所述步骤S1之间还包括步骤7,
步骤7,DMA/eDMA配置:为BCLK、SYNC、SDI、SDO分别分配一个DMA/eDMA,并打开DMA/eDMA中断请求,当DMA/eDMA完成数据传输后,向CPU发起一次中断请求,请求CPU更新数据帧,DMA/eDMA:直接内存访问功能或增强型直接内存访问功能模块。
5.根据权利要求4所述的方法,其特征在于,
在所述步骤S1,启动传输:打开DMA/eDMA中断,准备传输,打开CLOCK A,开始传输;
在所述步骤S3,运行及判断:运行中断服务程序,并判断中断服务程序是否完成传输,若是,那么执行步骤S4,否则,返回执行步骤S3;
在所述步骤S4,数据读出:当数据传输完成后,CPU产生中断,在中断服务程序中,更新数据,并设置标志,让主程序识别到,数据已经传输完,可以对新数据进行处理;
在所述步骤S5,数据处理:处理中断服务程序接收到的数据;
在所述步骤S6,数据写回:将处理完后数据写回中断服务程序发送地址位置,然后返回执行步骤S3。
6.一种具有移位寄存器的HDA控制器控制HDA CODEC芯片的系统,其特征在于,包括:
上电初始化模块:用于复位HDA控制器内部的移位寄存器和时钟单元,复位内存,时钟单元为HDA控制器的时钟单元;
管脚初始化模块:用于分配1个通用输出管脚,用于连接HDA CODEC芯片RST#管脚,RST#管脚为全局复位管脚;分配4个端口,分别用于连接HDA LINK的4个信号管脚,所述HDA LINK的4个信号管脚分别为BCLK、SYNC、SDI、SDO,并且为4个端口分别配置了1个移位寄存器;BCLK:全局位同步时钟,SYNC:全局帧同步时钟,SDI:串行数据输入脚,SDO:串行数据输出脚;
HDA CODEC芯片复位模块:用于设置RST#管脚为低电平,令HDA CODEC芯片进入复位状态;
产生移位寄存器模块工作时钟模块:用于分配一个PLL电路给移位寄存器使用,令PLL输出频率为n倍全局位同步时钟频率,n为偶数,n的最小取值为2;移位时钟源配置模块:用于初始化一个时钟源,命名为CLOCK A,重复频率设置为2倍全局位同步时钟频率;再初始化另一个时钟源,命名为CLOCK B,重复频率设置为全局位同步时钟频率,并设置CLOCK B由CLOCK A触发启动,即CLOCK A启动时,同时启动CLOCK B;
移位寄存器配置模块:用于给管脚BCLK、SYNC、SDI、SDO分别分配一个移位寄存器,设置BCLK、SYNC、SDO的移位寄存器由CLOCK A驱动,设置SDI的移位寄存器由CLOCK B驱动;或者,BCLK由CLOCK B直接输出,不经过移位寄存器;运行完移位寄存器配置模块后,继续运行启动传输模块;
启动传输模块:用于:打开CLOCK A,开始传输;
完成HDA CODEC芯片复位模块:用于设置RST#引脚为高电平,完成HDA CODEC芯片内部复位,恢复到出厂默认值,至此,开始对HDA CODEC芯片进行数据操作;
运行及判断模块:用于等待HDA LINK是否传输完成,若是,那么运行数据读出模块,否则,返回执行运行及判断模块;
数据读出模块:用于:当数据传输完成后,从SDI移位寄存器缓冲区取出新数据,同时将需要发送的数据写入BCLK、SYNC、SDO移位寄存器缓冲区;
数据处理模块:用于:根据应用需要,将SDI取回数据做处理;
数据写回模块:用于将处理完后数据写回BCLK、SYNC、SDO移位寄存器缓冲区,然后返回执行运行及判断模块。
7.根据权利要求6所述的系统,其特征在于,在所述完成HDA CODEC芯片复位模块中,首先等待全局位同步时钟建立,然后,设置RST#引脚为高电平,完成HDA CODEC芯片内部复位,恢复到出厂默认值,至此,开始对HDA CODEC芯片进行数据操作。
8.根据权利要求6至7任一项所述的系统,其特征在于,在所述移位寄存器配置模块与所述启动传输模块之间还包括DMA/eDMA配置模块,
DMA/eDMA配置模块:用于为BCLK、SYNC、SDI、SDO分别分配一个DMA/eDMA,并打开DMA/eDMA中断请求,当DMA/eDMA完成数据传输后,向CPU发起一次中断请求,请求CPU更新数据帧,DMA/eDMA:直接内存访问功能或增强型直接内存访问功能模块。
9.根据权利要求8所述的系统,其特征在于,
在所述启动传输模块:打开DMA/eDMA中断,准备传输,打开CLOCK A,开始传输;
在所述运行及判断模块:运行中断服务程序,并判断中断服务程序是否完成传输,若是,那么运行数据读出模块,否则,返回执行运行及判断模块;
在所述数据读出模块:当数据传输完成后,CPU产生中断,在中断服务程序中,更新数据,并设置标志,让主程序识别到,数据已经传输完,可以对新数据进行处理;
在所述数据处理模块:处理中断服务程序接收到的数据;
在所述数据写回模块:将处理完后数据写回中断服务程序发送地址位置,然后返回执行运行及判断模块。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现权利要求1-5中任一项所述的方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010839291 | 2020-08-19 | ||
CN2020108392919 | 2020-08-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035168A true CN112035168A (zh) | 2020-12-04 |
CN112035168B CN112035168B (zh) | 2021-03-30 |
Family
ID=73590904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010905579.1A Active CN112035168B (zh) | 2020-08-19 | 2020-09-01 | 具有移位寄存器的hda控制器控制hda codec芯片的方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035168B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1519845A (zh) * | 2003-01-30 | 2004-08-11 | ������������ʽ���� | 纠错方法、纠错电路及信息记录再生装置 |
CN101087144A (zh) * | 2006-04-27 | 2007-12-12 | 创新科技有限公司 | 高分辨率音频体系结构 |
GB2465465A (en) * | 2008-11-14 | 2010-05-26 | Wolfson Microelectronics Plc | Codec with status report queue ordered according to priority assigned to status reports |
CN101790842A (zh) * | 2007-09-01 | 2010-07-28 | D2影音公司 | 用于控制高清晰度音频编码解码器的处理器中的音量的系统及方法 |
CN106155960A (zh) * | 2016-06-29 | 2016-11-23 | 广州慧睿思通信息科技有限公司 | 基于gpio握手和edma的uart串口通信方法 |
CN107003971A (zh) * | 2014-12-27 | 2017-08-01 | 英特尔公司 | 用于高性能互连中的嵌入式流通道的方法、装置、系统 |
CN108809311A (zh) * | 2018-06-13 | 2018-11-13 | 苏州顺芯半导体有限公司 | 一种音频模数转换芯片阵列模拟采样同步的实现装置及实现方法 |
CN209343274U (zh) * | 2019-03-29 | 2019-09-03 | 成都爱斯顿科技有限公司 | 基于cpci主板接口的加固服务器 |
CN111208893A (zh) * | 2020-01-13 | 2020-05-29 | 深圳震有科技股份有限公司 | 一种cpu复位的控制方法、系统及存储介质 |
-
2020
- 2020-09-01 CN CN202010905579.1A patent/CN112035168B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1519845A (zh) * | 2003-01-30 | 2004-08-11 | ������������ʽ���� | 纠错方法、纠错电路及信息记录再生装置 |
CN101087144A (zh) * | 2006-04-27 | 2007-12-12 | 创新科技有限公司 | 高分辨率音频体系结构 |
CN101790842A (zh) * | 2007-09-01 | 2010-07-28 | D2影音公司 | 用于控制高清晰度音频编码解码器的处理器中的音量的系统及方法 |
US8224469B2 (en) * | 2007-09-01 | 2012-07-17 | D2Audio Corporation | Systems and methods for controlling audio volume in the processor of a high definition audio codec |
GB2465465A (en) * | 2008-11-14 | 2010-05-26 | Wolfson Microelectronics Plc | Codec with status report queue ordered according to priority assigned to status reports |
CN107003971A (zh) * | 2014-12-27 | 2017-08-01 | 英特尔公司 | 用于高性能互连中的嵌入式流通道的方法、装置、系统 |
CN106155960A (zh) * | 2016-06-29 | 2016-11-23 | 广州慧睿思通信息科技有限公司 | 基于gpio握手和edma的uart串口通信方法 |
CN108809311A (zh) * | 2018-06-13 | 2018-11-13 | 苏州顺芯半导体有限公司 | 一种音频模数转换芯片阵列模拟采样同步的实现装置及实现方法 |
CN209343274U (zh) * | 2019-03-29 | 2019-09-03 | 成都爱斯顿科技有限公司 | 基于cpci主板接口的加固服务器 |
CN111208893A (zh) * | 2020-01-13 | 2020-05-29 | 深圳震有科技股份有限公司 | 一种cpu复位的控制方法、系统及存储介质 |
Non-Patent Citations (2)
Title |
---|
MATTHIAS RÜNGELER 等: "Design and Evaluation of Hybrid Digital-Analog Transmission Outperforming Purely Digital Concepts", 《 IEEE TRANSACTIONS ON COMMUNICATIONS》 * |
张义邴 等: "一种语音编解码器与微处理器的接口方法", 《电子科技》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112035168B (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017028514A1 (zh) | 一种数据存储、读取方法及装置 | |
AU2014278189B2 (en) | Using dual PHYs to support multiple PCIe link widths | |
TWI423033B (zh) | 可串接之序列匯流排卡裝置及其管理方法及串接方法 | |
TW201915756A (zh) | 主從式系統、指令執行方法與資料存取方法 | |
CN108304334B (zh) | 应用处理器和包括中断控制器的集成电路 | |
JP2003076654A (ja) | Dspメモリ間データ転送方式 | |
CN101876915B (zh) | 程序的更新系统、带程序更新功能的电子设备 | |
CN101089838A (zh) | 一种实现i2c读写时序的方法 | |
CN109902056A (zh) | 一种串行传输的方法、装置、设备及计算机可读存储介质 | |
CN101257402A (zh) | 设备实现自定义命令的方法及系统 | |
US20070283260A1 (en) | Human-machine Interface System with Device Bridge and Method for Designing and Operating the Same | |
CN112035168B (zh) | 具有移位寄存器的hda控制器控制hda codec芯片的方法、系统及存储介质 | |
CN112306937B (zh) | 服务器中主板器件的设定选择电路、方法、设备及介质 | |
CN107741965B (zh) | 数据库同步处理方法、装置、计算设备及计算机存储介质 | |
CN112463703B (zh) | 一种i2c总线的数据收发控制方法和系统 | |
CN116954192A (zh) | 总线控制器的功能测试方法、系统、装置及可读存储介质 | |
CN101593123A (zh) | 闪存烧录插件的固化方法以及终端设备 | |
KR100736902B1 (ko) | 복수의 프로세서에 의한 메모리 공유 방법 및 장치 | |
CN110362526B (zh) | Spi从机设备、存储和适配方法及计算机存储介质 | |
CN101707781B (zh) | Td-scdma射频功放模块通用测试盒 | |
CN201185008Y (zh) | 计算机接口控制装置 | |
CN101025718A (zh) | 一种具有自动同步功能的数据自动同步方法 | |
WO2017177448A1 (zh) | 一种通信方法、装置及电子设备 | |
KR100295683B1 (ko) | 인터아이씨의 제너럴콜 어크날리지장치및 방법 | |
KR102167621B1 (ko) | 시리얼 인터페이스를 이용한 데이터 전송장치 |
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 |