您好,欢迎访问三七文档
PSoC®Creator™组件数据手册串行数字音频总线(I2S)2.20特性ƒ仅用于主控ƒ每次采样8到32数据位ƒ16、32、48或64位字选择周期ƒ数据速率高达96kHz,64位字选择周期:6.144MHzƒTx和RxFIFO中断ƒDMA支持ƒ独立的左右声道FIFO+3或交错立体声FIFOƒ独立启用Rx和Tx8/+概述串行数字音频总线(I2S)是用于将数字音频器件连接在一起的串行总线接口标准。此规范来自于Philips®Semiconductor(I2S总线规范;1986年2月,修订时间为1996年6月5日)。I2S组件仅在主控模式下运行。它还可在两个方向上运行:作为发射器(Tx)和接收器(Rx)。Tx和Rx的数据是独立的字节流。字节流首先包含最高有效字节,并且第一个字的第7位中存放最高有效位。用于每次采样的字节数(左/右声道的采样)是保持样品所需的最少字节数。何时使用I2S组件为立体声音频数据提供串行总线接口。此接口是音频ADC和DAC组件最常用的接口。CypressSemiconductorCorporation•198ChampionCourt•SanJose,CA95134-1709•408-943-2600DocumentNumber:001-79534Rev.**RevisedMay23,2012PSoC®Creator™组件数据表串行数字音频总线(I2S)Page2of24DocumentNumber:001-79534Rev.**输入/输出连接本节介绍I2S组件的各种输入和输出连接。I/O列表中的星号(*)表示,在I/O说明中列出的情况下,该I/O可能不可见。sdi—输入*串行数据输入。如果您针对Direction(方向)参数选择了一个Rx选项,则显示此信息。如果此信号连接到输入引脚,则应禁用此引脚的“InputSynchronized”(同步输入)选择。此信号应已同步到SCK,所以,用输入引脚同步器延迟信号会导致信号移入下一个时钟周期中。时钟—输入提供的时钟频率必须是输出串行时钟(SCK)所需时钟频率的两倍。例如,要产生64位字选择周期的48kHz音频,时钟频率应为:2×48kHz×64=6.144MHzsdo—输出*串行数据输出。如果您针对Direction(方向)参数选择了一个Tx选项,则显示此信息。sck—输出输出串行时钟。ws—输出字选择输出指示要传输的通道。rx_interrupt—输出*Rx方向中断。如果您针对Direction(方向)参数选择了一个Rx选项,则显示此信息。tx_interrupt—输出*Tx方向中断。如果您针对Direction(方向)参数选择了一个Tx选项,则显示此信息。rx_DMA0—输出*Rx方向DMA请求FIFO0(左侧或交错)。如果选择了DMARequest(DMA请求)参数下的RxDMA,则显示此信息。PSoC®Creator™组件数据表串行数字音频总线(I2S)DocumentNumber:001-79534Rev.**Page3of24rx_DMA1—输出*Rx方向DMA请求FIFO1(右侧)。如果针对Rx选择了DMARequest(DMA请求)参数下的RxDMA和DataInterleaving(数据交错)参数下的SeparatedL/R(单独的L/R),则显示此信息。tx_DMA0—输出*Tx方向DMA请求FIFO0(左侧或交错)。如果选择了DMARequest(DMA请求)参数下的TxDMA,则显示此信息。tx_DMA1—输出*Tx方向DMA请求FIFO1(右侧)。如果针对Tx选择了DMARequest(DMA请求)参数下的TxDMA和DataInterleaving(数据交错)参数下的SeparatedL/R(单独的L/R),则显示此信息。原理图宏信息默认情况下,PSoCCreator组件目录为I2S组件提供了三个原理图宏实现。这些宏包含已连接到数字引脚组件的I2S组件。取消选择了SDI引脚上的“InputSynchronized”(同步输入)选项,并关闭所有引脚的API生成。原理图宏使用仅针对Rx/Tx/Rx和Tx方向配置的I2S组件,如下图中所示。仅I2SRx仅I2STxPSoC®Creator™组件数据表串行数字音频总线(I2S)Page4of24DocumentNumber:001-79534Rev.**I2SRx和Tx元件参数将I2S组件拖放到您的设计上,双击它以打开Configure(配置)对话框。该对话框有两个选项卡,可引导您完成I2S组件的设置过程。“Basic”(基本)选项卡PSoC®Creator™组件数据表串行数字音频总线(I2S)DocumentNumber:001-79534Rev.**Page5of24方向确定组件运行的方向。此值可设为RxOnly(仅Rx)、TxOnly(仅Tx)或RxandTx(Rx和Tx)(默认值)。DataBits(数据位)确定为各个样品配置的数据位数(硬件编译)。该值可以设置为8到32。默认设置为16。WordSelectPeriod(字选择周期)定义左右声道的完整样品的周期。此值可设为:16、32(默认值)、48或64。“高级”选项卡DataInterleaving(数据交错)允许您选择数据是Interleaved(交错)(默认值)还是SeparateL/R(单独L/R)。可单独选择Rx和Tx。DMARequest(DMA请求)允许您启用和禁用组件的DMA请求信号。可单独设置Rx和Tx。这些选项默认启用。PSoC®Creator™组件数据表串行数字音频总线(I2S)Page6of24DocumentNumber:001-79534Rev.**InterruptSource(中断源)选择I2S中断源。Rx和Tx中断是独立的。多个源可能是“或”运算集合。设置包括:ƒRx:‰RxOverflow(Rx溢出)‰RxFIFO0notempty(RxFIFO0非空)(左侧或交错)‰RxFIFO1notempty(RxFIFO1非空)(右侧)—如果不是交错,则仅有一个选项ƒTx:‰TxUnderflow(Tx下溢)‰TxFIFO0notfull(TxFIFO0未满)‰TxFIFO1notfull(TxFIFO1未满)(右侧)如果不是交错,则仅有一个选项时钟选择此组件中没有内部时钟。您必须附加时钟源。提供的时钟频率必须是输出串行时钟(SCK)所需时钟频率的两倍。放置I2S组件放置在整个UDB阵列中。所有放置信息通过cyfitter.h文件提供给API。资源资源资源类型APIMemory(API存储器)(字节)数据路径(Datapath)单元PLD1状态单元Control/Count7单元Flash(闪存)RAMPins(引脚)(每个外部I/O)Rx方向12(3)1222033Tx方向12(3)1222033Rx和Tx24(6)22326341PLD数指示用于指定配置的典型和最大资源。PSoC®Creator™组件数据表串行数字音频总线(I2S)DocumentNumber:001-79534Rev.**Page7of24应用程序编程接口应用程序编程接口(API)子程序允许您使用软件配置组件。下表列出了每个函数的接口,并进行了说明。以下各节将更详细地介绍每个函数。默认情况下,PSoCCreator将实例名称“I2S_1”分配给指定设计中组件的第一个实例。您可以将该实例重命名为符合标识符语法规则的任意唯一值。实例名称会成为每个全局函数名称、变量和常量符号的前缀。出于可读性考虑,下表中使用的实例名称为“I2S”。函数说明I2S_Start()启动I2S接口。I2S_Stop()禁用I2S接口。I2S_EnableTx()启用I2S接口的Tx方向。I2S_DisableTx()禁用I2S接口的Tx方向。I2S_EnableRx()启用I2S接口的Rx方向。I2S_DisableRx()禁用I2S接口的Rx方向。I2S_SetRxInterruptMode()设置I2SRx方向中断的中断源。I2S_SetTxInterruptMode()设置I2STx方向中断的中断源。I2S_ReadRxStatus()返回I2SRx状态寄存器中的状态。I2S_ReadTxStatus()返回I2STx状态寄存器中的状态。I2S_ReadByte()返回RxFIFO中的单字节。I2S_WriteByte()将单字节写入TxFIFO。I2S_ClearRxFIFO()清除RxFIFO。I2S_ClearTxFIFO()清除TxFIFO。I2S_Sleep()保存配置和禁用I2S接口I2S_WakeUp()恢复配置和启用I2S接口I2S_Init()启用I2S接口I2S_Enable()初始化或恢复默认I2S配置I2S_SaveConfig()保存I2S接口配置I2S_RestoreConfig()恢复I2S接口配置PSoC®Creator™组件数据表串行数字音频总线(I2S)Page8of24DocumentNumber:001-79534Rev.**全局变量变量说明I2S_initVar表示是否已初始化I2S。变量将初始化为0,并在第一次调用I2S_Start()时设置为1。这使得组件无需在第一次调用I2S_Start()子程式后重新初始化便可重新启动。如果需要重新对组件进行初始化,在调用I2S_Start()之前先调用I2S_Init()。或可调用I2S_Init()和I2S_Enable()函数重新对I2S进行初始化。voidI2S_Start(void)说明:启动I2S接口。根据需要,启用活动模式电源模板位或时钟关断。启动生成sck和ws输出。Tx和Rx方向保持禁用状态。参数:None(无)ReturnValue(返回值):None(无)SideEffects(副作用):None(无)voidI2S_Stop(void)说明:禁用I2S接口。根据需要,禁用活动模式电源模板位或时钟关断。sck和ws输出设为0。禁用Tx和Rx方向,并清除其FIFO。参数:None(无)ReturnValue(返回值):None(无)SideEffects(副作用):None(无)voidI2S_EnableTx(void)说明:启用I2S接口的Tx方向。在下一个字选择下降沿开始传输。参数:None(无)ReturnValue(返回值):None(无)SideEffects(副作用):None(无)PSoC®Creator™组件数据表串行数字音频总线(I2S)DocumentNumber:001-79534Rev.**Page9of24voidI2S_DisableTx(void)说明:禁用I2S接口的Tx方向。数据传输停止,在下一个字选择下降沿传输常量0值。参数:None(无)ReturnValue(返回值):None(无)SideEffects(副作用):None(无)voidI2S_EnableRx(void)说明:启用I2S接口的Rx方向。在下一个字选择下降沿开始接收数据。参数:None(无)ReturnValue(返回值):None(无)SideEffects(副作用):None(无)voidI2S_DisableRx(void)说明:禁用I2S接口的Rx方向。在下一个字选择下降沿,不再将数据接收信息发送到接收FIFO。参数:None(无)ReturnValue(返回值):None(无)SideEffects(副作用):None(无)PSoC®Creator™组件数据表串行数字音频总线(I2S)Page10of24DocumentNumber:001-79534Rev.**voidI2S_SetRxInterruptMode(uint8interruptSource)说明:设置I2SRx方向中断的中断源。多个源可能是“或”运算。参数:uint8:包含选定中断源的常量的字节I2SRx中断源值RX_FIFO_OVERFLOW0x01
本文标题:I2S协议
链接地址:https://www.777doc.com/doc-3383945 .html