基于SoC的音频IP模块设计

基于soc的音频ip模块设计
随着集成电路设计技术和深亚微米制造技术的发展,集成电路已进入了片上系统时代。由于soc结构极其复杂,对于设计者而言,数百万门规模的系统级芯片设计不可能一切从头开始,随着集成电路设计技术的发展,ip核的开发己成为不可忽视的发展趋势,它的出现为soc的实现和发展提供了基础。ip称之为知识产权,它可以认为是封装在硬件设计中的可重复利用的软件,就功能而言,ip核可以定义为soc的基本电路功能块又称为内核,可由用户或专用ic公司或独立的公司开发而成,ip核的显著特点是具有重用性。鉴于soc系统设计者很难独自开发、维护和移植所有必须的ip核,所以在soc设计中必然要用到第3方的 ip核,当ip核被转移到用户设计与制造工艺中时,ip核被重复利用了,具有自主知识产权的ip核的复用是soc设计中解决设计层次、产品成本、设计周期和降低风险的关键环节是soc设计中的关键技术。ip核重复利用可以提高设计能力,节省设计人员可以缩短上市时间,更好的利用现有的工艺技术,降低成本。基于此笔者设计了基于soc的音频接口ip模块。
1 apb与iis总线
apb(advanced peripheral bus)是amba(advanced microcontrollel bus architectrure)组成部分,是用于低功耗和减少接口复杂度而设计的。apb用于带宽,低速,低性能要求,无管线操作的外围设备。apb总线操作包括setup和enable两个状态。其中apb读操作只需在enable状态数据有效,写操作要求写数据在整个写操作期间保持有效。
apb协议规定每个传输只与时钟上升沿相关。这就使apb外围设备很容易被集成在设计之中,特点如下:
(1)在高频操作的性能改进;
(2)独立的脉冲时钟;
(3)静态时钟分析比较简单,因为用单时钟沿触发;
(4)自测试逻辑插入没有特别的条件需要考虑;
(5)在asic库中有性能很好的上升沿寄存器;
apb状态机,如图1所示。
apb这3个状态描述如下:
idle:默认初始状态。
setup:当有一个传输请求,总线将进入setup状态,当pselx,信号被选择。总线只在setup状态停留一个周期,并将在时钟的上升沿进入enable状态。
enable:在enable状态中,penable有效,地址信号,读写信号,选择信号将保持稳定,当状态从setup到enable状态。 enable状态仅仅维持一个时钟,如果没有传输发生,系统将回到idle,如果有传输发生,系统状态将进入setup状态。当从enable状态到 setup状态时允许有短脉冲干扰。
iis总线:在飞利浦公司的iis标准中,既规定了硬件接口规范,也规定了数字音频数据的格式。iis总线拥有3条数据线进行数据传输:数据传输线 (ds),选择线(ws),时钟线(sck)。在数据传输过程中,发送端(transmitter)和接收端(receiver)具有相同的时钟信号,发送端作为主导装置(master)时,产生位时钟信号、命令(声道)选择信号和数据。在综合的系统中,可能具有几个发送端和接收端,使识别发送端比较困难。在这样的系统中,可以设置一个控制器(controller)来作为系统的主导装置来识别多路的数字音频信号的数据流,此时发送端成为在外部时钟控制下的从属装置(stave),系统的主导装置也可以与发送端或接收端相结合,这需要通过对硬件或软件的设置来激活。它拥有3种模式,如图2所示。
iis有时序信号图,如下所述。串行时钟信号(sck):即对应数字音频的每一位数据,sck对应1个脉冲。sck的频率=2×采样频率×采样位数。
声道选择信号(ws):用于切换左右声道的数据。ws的频率等于采样频率。
串行数据信号(sd):就是用二进制补码表示的音频数据。
典型时序,如图3所示。
iis格式的信号无论有多少位有效数据,数据的最高位总是被最先传输,在ws变化,也就是一帧开始后的第2个sck脉冲处,因此最高位拥有固定的位置,而最低位的位置则是依赖于数据的有效位数。也就使得接收端与发送端的有效位数可以不同。如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的低位数据,如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位(常补足为零)。这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。为了保证数字音频信号的正确传输,发送端和接收端应该采用相同的数据格式和长度。对iis格式来说数据长度可以不同。
2 音频ip模块设计
音频ip模块,完成apb总线协议到iis协议的转换,实现音频的输出,并根据任务要求,设置各种寄存器和中断输出。音频输出模块(apb_iis)示意框图,如图4所示。
apb_iis模块由以下5个模块组成:apb接口模块,apb接口模块主要是遵守amba协议,完成读写数据的译码。符合apb协议完成寄存器读写,实现寄存器register_t的配置,状态读写。
寄存器模块(register_t),完成各种功能寄存器的设置。register_t模块,包含配置寄存器模块(tx_config),屏蔽寄存器 (tx_intmask),状态寄存器(tx_instate),频率配置寄存器模块(tx_frequency),fifo写数据地址 (fifo_data)。
fifo模块(fifo_t),的功能是从一个高速时钟域到低速时钟域数据的缓冲,并产生标志信号,用于中断产生。
iis接口模块(i2s_t),i2s_t模块遵守iis协议,并完成数据的输出。
本模块符合以下功能要求:
(1)传输音频(transmitter)模块;
(2)主模式,由时钟由外部提供(12 m);
(3)支持时序两种模式音频输出;
(4)分频器实现8/11/12/16/22.059/24./32/44.11/48(khz)频率数据传输;
(5)内部记数器完成16音频数据的记数;
(6)数据的并串转换。
中断模块(interrupt_generate),中断信号是通过fifo模块的标志信号和屏蔽寄存器(tx_intmask)信号产生中断信号给系统的中断控制器。
3 仿真结果
图5为apb接口逻辑读写时序和iis输出时序的局部波形仿真。时序仿真证明符合规范和功能要求。
4 结束语
文中根据协议和实际需求设计一个apb转iis的模块,具体描述了协议,功能规范,完成rtl代码描述和功能验证,得出正确可移植的音频ip模块。由于模块是有各个分立的模块单元组成,所以再根据实际需求修改模块是非常容易的。

采用Cortex-M3通用NFC控制器ST21NFCD
ArcGIS10.2中文版安装教程
手机门禁--未来门禁一卡通之发展趋势
PADS如何快速定位元器件库中的元器件
嵌入式人工智能唱响2020年中国嵌入式技术大会!
基于SoC的音频IP模块设计
苹果的造汽车计划或将推迟
inTEST ThermoStream 热流仪已全面取代 Temptronic 和Thermonics
亚马逊发布可飞行的家庭安全摄像头,兼容Ring Alarm报警系统
对比802.11ax与802.11ac射频技术的先进之处
“金三角”撑起2010年电子元器件第一大展
英特尔X86和ARM架构之间的竞争
人工智能芯片明明是硬件,和软件又有什么关系?
两轮电动车电池一般都是多大容量的
电口模块介绍
3D打印有多神 一天内就能打印出个厕所
德索fakra连接器未来的发展趋势
快讯:荣耀70系列正式发布 亚马逊将终止云摄像头服务
基于STM32单片机的DLP1700显示电路、光路系统改进设计
英特尔继续推进7nm工艺,仍在对第三方代工和自主生产进行评估