dspC55xxch7 语音信号_第1页
dspC55xxch7 语音信号_第2页
dspC55xxch7 语音信号_第3页
dspC55xxch7 语音信号_第4页
dspC55xxch7 语音信号_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第7章章 基于基于DSP的的语音信号的采集和播放系统语音信号的采集和播放系统 在以在以DSP为核心的语音信号处理系统中,为核心的语音信号处理系统中,DSP要完要完成信号的采集运算处理任务,成信号的采集运算处理任务,A/D和和D/A完成语音信号完成语音信号的输入和输出。在以的输入和输出。在以TMS320VC5509A为核心的语音处为核心的语音处理系统中,采用了专为音频处理应用设计的编解码器件理系统中,采用了专为音频处理应用设计的编解码器件TLV320AIC23,来完成模拟语音信号的采样和数字音频,来完成模拟语音信号的采样和数字音频信号的信号的D/A转换。利用转换。利用TMS320VC5509A

2、片内多通道缓片内多通道缓冲串口(冲串口(McBSP),通过),通过I2C总线来对总线来对AIC23进行控制进行控制,从而实现具有较强功能的语音处理系统。,从而实现具有较强功能的语音处理系统。目 录7.1 系统的总体设计系统的总体设计7.2 TLV320AIC23B与与TMS320VC5509A的的 接口设计接口设计7.3 DSP相关片上外设相关片上外设 7.3.1 I2C 7.3.2 McBSP7.4 软件设计软件设计7.5 系统展望系统展望 语音信号的采集和播放是语音信号处理的基语音信号的采集和播放是语音信号处理的基础,础,DSP是各种语音信号数字处理的平台。是各种语音信号数字处理的平台。

3、DSP通过控制语音信号的模数和数模转换器采通过控制语音信号的模数和数模转换器采集和播放语音信号,再通过集和播放语音信号,再通过DSP的数字信号处的数字信号处理实现各种语音信号处理的算法。理实现各种语音信号处理的算法。7.1 系统的总体设计系统两大组成部分 音频编解码芯片音频编解码芯片 实现数模和模数转换功能实现数模和模数转换功能 DSP芯片芯片 控制音频编解码芯片采集和播放语音信号,实现语音信号控制音频编解码芯片采集和播放语音信号,实现语音信号的采集,然后将语音信号存储到的采集,然后将语音信号存储到DSP的内部的内部RAM中,最后中,最后实现语音信号的播放。实现语音信号的播放。系统硬件结构框图

4、系统硬件结构框图DSP芯片的选择uDSP指标指标 处理速度、功耗、程序存储器和数据存储器的容量、片内处理速度、功耗、程序存储器和数据存储器的容量、片内的资源。的资源。uVC55xx系列特点系列特点 低功耗,适合个人与便携式上网以及无线通信应用低功耗,适合个人与便携式上网以及无线通信应用 。处。处理速度在理速度在80MIPS-400MIPS之间之间 。具有。具有MCBSP同步串口、同步串口、HPI并行接口、定时器、并行接口、定时器、DMA等外设等外设 。C55xx的指令长度的指令长度从从8-bit到到48-bit。这种长度可变的指令可以使每个函数的。这种长度可变的指令可以使每个函数的控制代码量比

5、控制代码量比C54x降低降低40 ,减少了存储器的容量,降,减少了存储器的容量,降低了成本。低了成本。(TMS320VC5509)7.2 TLV320AIC23与TMS320VC5509的接口设计 控制接口控制接口 DSP芯片通过控制接口向音频处理芯片传送配置参芯片通过控制接口向音频处理芯片传送配置参 数,控制音频处理芯片的工作状态。数,控制音频处理芯片的工作状态。 数字音频接口数字音频接口 通过该接口,音频处理芯片将采集到的音频数通过该接口,音频处理芯片将采集到的音频数 据传据传 给给DSP进行处理,处理过后的音频数据再由进行处理,处理过后的音频数据再由DSP通过该通过该 接口传回给音频处理

6、芯片,进行数模转换后播放出来接口传回给音频处理芯片,进行数模转换后播放出来。TLV320AIC23内部结构图内部结构图 AIC23与VC5509接口原理图 J5J6J7J8I2C(主)(从)TLV320AIC23的控制接口接口模式 SPI或者或者I2C选择理由 在设计中,若采用在设计中,若采用SPI总线,则需要多占用一个总线,则需要多占用一个McBSP)资源,但是很多时候)资源,但是很多时候DSP的的McBSP资源会比资源会比较紧张(比如需要跟近端较紧张(比如需要跟近端RS-232和远端和远端RS-485连接),连接),考虑到系统的可扩展性,在设计中采用了通过考虑到系统的可扩展性,在设计中采用

7、了通过I2C总线来总线来配置配置AIC23。MODE接口接口0I2C1SPII2C模式下的时序图对接口原理图的说明 MODE接数字地 表示利用I2C控制接口对AIC23传输控制数据,定义了I2C总线上AIC23的7bit外设地址“0011010”。 收发时钟新信号CLKX1和CLKR1由AIC23的串行数据输入时钟BCLK提供,并由AIC23的帧同步信号LRCIN、LRCOUT启动串口数据传输。 DX1和DR1分别与AIC23的DIN和DOUT相连,从而完成DSP与AIC23间的数字信号通信。CS STATEADDRESS0001101010011011 AIC23通过麦克风采样模拟音频信号或

8、直接输入模拟音通过麦克风采样模拟音频信号或直接输入模拟音频信号,然后将其转换为频信号,然后将其转换为DSP可以处理的数字信号。可以处理的数字信号。 当当DSP处理完后,再将数字信号转换为模拟信号输出处理完后,再将数字信号转换为模拟信号输出,用户即可利用耳机或扬声器收听到高质量的音频信号。,用户即可利用耳机或扬声器收听到高质量的音频信号。 5509A与与AIC23的硬件连接示意图如下图所示。的硬件连接示意图如下图所示。 AIC23通过两个独立的通道进行通信,一路控制通过两个独立的通道进行通信,一路控制AIC23的端口配置寄存器;另一路发送和接收数字音频信号。利用的端口配置寄存器;另一路发送和接收

9、数字音频信号。利用5509A的的I2C总线被用来作为单向控制通道,控制通道只在配总线被用来作为单向控制通道,控制通道只在配置置AIC23时才使用,当传输音频信号时,它一般是空闲的。时才使用,当传输音频信号时,它一般是空闲的。I2C总线是由数据线总线是由数据线SDA和时钟线和时钟线SCL构成的串行总线,可发构成的串行总线,可发送和接收数据。送和接收数据。McBSP被用来作为双向数据通道,所有的音被用来作为双向数据通道,所有的音频数据都通过数据通道传输。频数据都通过数据通道传输。 AIC23内部具有一个可编程时钟,由内部具有一个可编程时钟,由PLL1708 PLL驱动驱动提供。系统的默认时钟为提供

10、。系统的默认时钟为18.432MHz。内部的采样频率通常。内部的采样频率通常由由18.432MHz时钟分频产生,例如时钟分频产生,例如48kHz或或8kHz。采样频率。采样频率通过通过AIC23的的SAMPLERATE寄存器设置。寄存器设置。0 0 1 0 0 0 1 1 TLV320AIC23的内部寄存器地址地址寄存器寄存器地址地址寄存器寄存器0000000左输入声道音量控制左输入声道音量控制0000110电源控制电源控制0000001右输入声道音量控制右输入声道音量控制0000111数字音频接口格式数字音频接口格式0000010耳机左输入声道音量耳机左输入声道音量控制控制0001000采样

11、率控制采样率控制0000011耳机右输入声道音量耳机右输入声道音量控制控制0001001数字接口激活数字接口激活0000100模拟音频通道控制模拟音频通道控制0001111复位寄存器复位寄存器0000101数字音频通道控制数字音频通道控制 在在5509A与与AIC23的连接中,的连接中,McBSP的接收和发送工作的接收和发送工作在同步方式下,接收和发送可以独立配置,利用在同步方式下,接收和发送可以独立配置,利用5509A的的I2C模块,可以对模块,可以对AIC23内部的配置寄存器进行编程配置,内部的配置寄存器进行编程配置,使使AIC23工作在要求的状态下。工作在要求的状态下。 首先对首先对55

12、09A的的I2C模块初始化,图模块初始化,图7-25是是5509A I2C主主从发送控制流程图,将数据逐次写入从发送控制流程图,将数据逐次写入I2CDXR,并通过,并通过I2C总线发送给总线发送给AIC23,可以完成对,可以完成对AIC23的初始化配置。的初始化配置。5509A I2C主从发送控制流程图主从发送控制流程图 由于设置由于设置AIC23接收、处理数据的速度为接收、处理数据的速度为48kHz,程序,程序中发送数据的函数在设备忙的情况下不会返回,而是等待其中发送数据的函数在设备忙的情况下不会返回,而是等待其准备好并接收数据完毕才返回,所以程序中无需使用任何控准备好并接收数据完毕才返回,

13、所以程序中无需使用任何控制数据发送速度的技术。下面给出制数据发送速度的技术。下面给出AIC23初始化的部分源代初始化的部分源代码。码。void AIC23_Init() I2C_Init(); / 复位AIC23并打开电源 AIC23_Write(AIC23_RESET_REG, 0); AIC23_Write(AIC23_POWER_DOWN_CTL, 0); AIC23_Write(AIC23_ANALOG_AUDIO_CTL, ANAPCTL_DAC ,ANAPCTL_INSEL); / 使用麦克风音源AIC23_Write(AIC23_DIGITAL_AUDIO_CTL, 0); /

14、打开打开line in音量控制音量控制s AIC23_Write(AIC23_LT_LINE_CTL,0 x000); AIC23_Write(AIC23_RT_LINE_CTL,0 x000); / AIC23工作于主模式,工作于主模式,44.1kHz立体声立体声, 16bit采样采样 / 输入时钟为输入时钟为12MHz AIC23_Write(AIC23_DIGITAL_IF_FORMAT, DIGIF_FMT_MS | DIGIF_FMT_IWL_16 | DIGIF_FMT_FOR_DSP); AIC23_Write(AIC23_SAMPLE_RATE_CTL, SRC_SR_8 |

15、SRC_BOSR | SRC_MO); / 打开耳机音量控制和数字接口打开耳机音量控制和数字接口 AIC23_Write(AIC23_LT_HP_CTL, 0 x07f); / 0 x79 为麦克风为麦克风 AIC23_Write(AIC23_RT_HP_CTL, 0 x07f); AIC23_Write(AIC23_DIG_IF_ACTIVATE, DIGIFACT_ACT); / 设置设置 McBSP0为从模式为从模式 McBSP0_InitSlave();7.3 DSP相关片上外设时钟发生器时钟发生器 外部时钟信号从外部时钟信号从CLKIN引脚输入,在内部修改这个信号,来引脚输入,在内部

16、修改这个信号,来产生希望频率的输出时钟。时钟发生器将这个输出时钟送给产生希望频率的输出时钟。时钟发生器将这个输出时钟送给CPU、外设和其它内部模块。、外设和其它内部模块。I2C模块模块 发送配置参数给发送配置参数给TLV320AIC23。McBSP 和和TLV320AIC23实现无缝连接,传送音频数据。实现无缝连接,传送音频数据。DSP时钟发生器时钟发生器CLKINCPU时钟时钟CLKDIVCLKOUTCPU、外设或者其他器件、外设或者其他器件图1-3 时钟输出时钟发生器 时钟发生器,它可以利用数字锁相环(时钟发生器,它可以利用数字锁相环(DPLL)分频)分频或者倍频输入时钟频率(从或者倍频输

17、入时钟频率(从CLKIN引脚接收),然后分引脚接收),然后分别送到别送到CPU、外设和、外设和C55x DSP内的其他模块,以使它们内的其他模块,以使它们工作在所要的时钟频率。工作在所要的时钟频率。可编程分频器可编程分频器7.3.1 I2C(Inter-Integrated Circuit内部集成电路)模块 TMS320C55x可以通过可以通过I2C串行总线同其他串行总线同其他I2C兼容设备兼容设备相连接,通过该串行总线可以收发相连接,通过该串行总线可以收发8位数据。位数据。 C55x的的I2C总线模块有如下特点:总线模块有如下特点:l兼容兼容I2C总线标准:即支持位总线标准:即支持位/字节格

18、式传输,支持字节格式传输,支持7位位和和10位寻址模式,支持多主方发送从方接收模式和多主位寻址模式,支持多主方发送从方接收模式和多主方接收从方发送模式,方接收从方发送模式,I2C总线的数据传输率可以从总线的数据传输率可以从10kbit/s到到400kbit/s;l可以通过可以通过DMA完成读写操作;完成读写操作;l可以用可以用CPU完成读写操作和处理非法操作中断;完成读写操作和处理非法操作中断;l模块的工作频率为模块的工作频率为12MHz;l模块可以使能和被禁止。模块可以使能和被禁止。I2C总线连接关系总线连接关系 I2C总线使用一条串行数据线总线使用一条串行数据线SDA和一条串行时钟线和一条

19、串行时钟线SCL,这两条线都支持输入输出双向传输,在连接时应注,这两条线都支持输入输出双向传输,在连接时应注意这两根线都需要外接上拉电阻,当总线处于空闲状态时意这两根线都需要外接上拉电阻,当总线处于空闲状态时两条线都处于高电平。两条线都处于高电平。I2C总线支持多主设备模式,当多总线支持多主设备模式,当多个主设备要进行通信时,可以通过仲裁机制决定那个主设个主设备要进行通信时,可以通过仲裁机制决定那个主设备占用总线。备占用总线。 I2C总线模块由串行接口、总线模块由串行接口、DSP外设总线接口、时钟产外设总线接口、时钟产生和同步器、预定标器、噪音过滤器、仲裁器以及中断和生和同步器、预定标器、噪音

20、过滤器、仲裁器以及中断和DMA同步事件接口,下面给出了同步事件接口,下面给出了I2C总线模块内部框图。总线模块内部框图。 I2C总线模块内部框图总线模块内部框图 1I2C总线数据传输总线数据传输 I2C串行数据信号在时钟信号为低时改变,而在时钟信号为高时串行数据信号在时钟信号为低时改变,而在时钟信号为高时进行判别,这时数据信号必须保持稳定。当进行判别,这时数据信号必须保持稳定。当I2C总线处在空闲态转化到总线处在空闲态转化到工作态的过程中必须满足起始条件,即串行数据信号工作态的过程中必须满足起始条件,即串行数据信号SDA首先由高变首先由高变低,之后时钟信号也由高变低;当数据传输结束时则低,之后

21、时钟信号也由高变低;当数据传输结束时则SDA首先由低变首先由低变高,之后时钟信号也由低变高标志数据传输结束。高,之后时钟信号也由低变高标志数据传输结束。 I2C总线以字节为单位进行处理,而对字节的数量则没有限制。总线以字节为单位进行处理,而对字节的数量则没有限制。I2C总线传输的第一个字节跟在数据起始之后,这个字节可以是总线传输的第一个字节跟在数据起始之后,这个字节可以是7位从位从地址加一个读写位,也可以是地址加一个读写位,也可以是8位数据。当读写位为位数据。当读写位为1时,则主方从从时,则主方从从设备读取数据,为设备读取数据,为0时则向所选从设备写数据。在应答模式下需要在时则向所选从设备写数

22、据。在应答模式下需要在每个字节之后附加一个应答位(每个字节之后附加一个应答位(ACK)。当使用)。当使用10位寻址模式时,所位寻址模式时,所传的第一个字节由传的第一个字节由11110加上地址的高两位和读写位组成,下一字节传加上地址的高两位和读写位组成,下一字节传输剩余的输剩余的8位地址。下面分别给出了位地址。下面分别给出了8位和位和10位寻址模式下的数据传输位寻址模式下的数据传输格式示意图。格式示意图。位寻址数据格式(位寻址数据格式(8位)位) 位寻址数据格式(位寻址数据格式(10位)位) I2C总线的数据传输可以分成总线的数据传输可以分成4种模式种模式主发送模式主发送模式、主接收模式、从发送

23、模式和从接收模式,接下来分别介、主接收模式、从发送模式和从接收模式,接下来分别介绍这四种模式。绍这四种模式。(1)主发送模式:主发送模式支持)主发送模式:主发送模式支持7位和位和10位寻址模式,位寻址模式,这时数据由主方送出,并且发送的数据同自己产生的时钟这时数据由主方送出,并且发送的数据同自己产生的时钟脉冲同步,而当一个字节已经发送走后需要脉冲同步,而当一个字节已经发送走后需要DSP干预时,干预时,时钟信号保持低。时钟信号保持低。(2)主接收模式:主接收模式也支持两种寻址方式。而)主接收模式:主接收模式也支持两种寻址方式。而当地址发送完后,数据线变为输入,而时钟仍然由主方产当地址发送完后,数

24、据线变为输入,而时钟仍然由主方产生。当一个字节传输完后需要生。当一个字节传输完后需要DSP干预时,时钟保持低电干预时,时钟保持低电平。在传输结束时由主方产生一个结束标志。平。在传输结束时由主方产生一个结束标志。(3)从接收模式:从接收模式的数据和时钟都由主方产)从接收模式:从接收模式的数据和时钟都由主方产生,但可以在需要生,但可以在需要DSP干预时使干预时使SCL信号保持低。信号保持低。(4)从发送模式:从发送模式只能由从接收模式转化而)从发送模式:从发送模式只能由从接收模式转化而来,当在从接收模式下接收的地址同自己的地址相同时,来,当在从接收模式下接收的地址同自己的地址相同时,并且读写位为并

25、且读写位为1,则进入从发送模式。从发送模式时钟由,则进入从发送模式。从发送模式时钟由主设备产生,从设备产生数据信号,但可以在需要主设备产生,从设备产生数据信号,但可以在需要DSP干干预时使预时使SCL信号保持低。信号保持低。 2仲裁仲裁 如果在一条总线上有两个或两个以上主设备同时开始如果在一条总线上有两个或两个以上主设备同时开始一个主发送模式,这时就需要一个仲裁机制决定到底由谁一个主发送模式,这时就需要一个仲裁机制决定到底由谁掌握总线的控制权。掌握总线的控制权。 仲裁是通过串行数据线上竞争传输的数据来进行判别仲裁是通过串行数据线上竞争传输的数据来进行判别的,总线上传输的串行数据流实际上是一个二

26、进制数,如的,总线上传输的串行数据流实际上是一个二进制数,如果主设备传输的二进制数较小,则仲裁器将优先权赋予这果主设备传输的二进制数较小,则仲裁器将优先权赋予这个主设备,没有被赋予优先权的设备则进入从接收模式,个主设备,没有被赋予优先权的设备则进入从接收模式,并同时将仲裁丧失标志置成并同时将仲裁丧失标志置成1,并产生仲裁丧失中断。,并产生仲裁丧失中断。 当两个或两个以上主设备传送的第一个字节相同,则当两个或两个以上主设备传送的第一个字节相同,则将根据接下来的字节进行仲裁。将根据接下来的字节进行仲裁。 3时钟产生和同步时钟产生和同步 正常状态下,只有一个主设备产生时钟信号,但如果正常状态下,只有

27、一个主设备产生时钟信号,但如果有两个或两个以上主设备进行仲裁,这时就需要进行时钟有两个或两个以上主设备进行仲裁,这时就需要进行时钟同步。串行时钟线同步。串行时钟线SCL具有线与的特性,这意味着如果一具有线与的特性,这意味着如果一个设备首先在个设备首先在SCL线上产生一个低电平信号就将否决其他线上产生一个低电平信号就将否决其他设备,这时其他设备的时钟发生器也将被迫进入低电平。设备,这时其他设备的时钟发生器也将被迫进入低电平。如果有设备仍处在低电平,如果有设备仍处在低电平,SCL信号也将保持低电平,这信号也将保持低电平,这时其他结束低电平状态的设备必须等待时其他结束低电平状态的设备必须等待SCL被

28、释放后开始被释放后开始高电平状态。通过这种方法时钟得到同步。高电平状态。通过这种方法时钟得到同步。 4I2C模块的中断和模块的中断和DMA同步事件同步事件 I2C模块可以产生模块可以产生5种中断类型以方便种中断类型以方便CPU处理,这处理,这5种类型分别是仲裁丧失中断、无应答中断、寄存器访问就种类型分别是仲裁丧失中断、无应答中断、寄存器访问就绪中断、接收数据就绪中断和发送数据就绪中断。绪中断、接收数据就绪中断和发送数据就绪中断。DMA同同步事件有两种类型,一种是步事件有两种类型,一种是DMA控制器从数据接收寄存器控制器从数据接收寄存器ICDRR同步读取接收数据,另一种是向数据发送寄存器同步读取

29、接收数据,另一种是向数据发送寄存器ICDXR同步写入发送数据。同步写入发送数据。 5I2C模块的禁止与使能模块的禁止与使能 I2C模块可以通过模块可以通过I2C模式寄存器模式寄存器ICMDR中的复位使中的复位使能位(能位(IRS)使能或被禁止。)使能或被禁止。I2C时钟产生I2C时钟产生DSP时钟产生器从外部时钟源接收信号,产生时钟产生器从外部时钟源接收信号,产生I2C输入时钟信输入时钟信号。号。I2C模块内部,还要对这个输入时钟进行两次分频,产模块内部,还要对这个输入时钟进行两次分频,产生主时钟和模块时钟。生主时钟和模块时钟。IPSCd0716大于大于15d的值取决于分频值的值取决于分频值I

30、PSC mod()()mstffICCLdICCHdmod21I CfIPSC输入时钟频率IPSC:分频系数,在预分频寄存器:分频系数,在预分频寄存器(I2CPSC)中设置中设置ICCL:在寄存器:在寄存器I2CCLKL中设置中设置ICCH:在寄存器:在寄存器I2CCLKH中设置中设置具体情况参看具体情况参看TMS320C55x DSP Peripherals Reference Guide 下面给出下面给出I2C模块的寄存器表,并简要说明它们的功能。模块的寄存器表,并简要说明它们的功能。 I2C模块的寄存器模块的寄存器 寄存器寄存器说明说明功能功能ICOARI2C自身地址寄存器自身地址寄存器

31、保存自己作为从设备的保存自己作为从设备的7位或位或10位地址位地址ICIMRI2C中断屏蔽寄存器中断屏蔽寄存器设置中断类型是否屏蔽设置中断类型是否屏蔽ICSTRI2C中断状态寄存器中断状态寄存器用来判定中断是否发生并可查询用来判定中断是否发生并可查询I2C的状的状态态ICCLKLI2C时钟分频低计数器时钟分频低计数器对主时钟分频,产生低速传输频率对主时钟分频,产生低速传输频率ICCLKHI2C时钟分频高计数器时钟分频高计数器对主时钟分频,产生高速传输频率对主时钟分频,产生高速传输频率ICCNTI2C数据计数寄存器数据计数寄存器该寄存器被用来产生结束条件结束传输该寄存器被用来产生结束条件结束传输

32、ICDRRI2C数据接收寄存器数据接收寄存器供供DSP读取接收的数据读取接收的数据 I2C模块的寄存器(续)模块的寄存器(续) ICSARI2C从地址寄存器从地址寄存器存放所要通信的从设备的地址存放所要通信的从设备的地址ICDXRI2C数据发送寄存器数据发送寄存器供供DSP写发送的数据写发送的数据ICMDRI2C模式寄存器模式寄存器包含包含I2C模块的控制位模块的控制位ICIVRI2C中断向量寄存器中断向量寄存器供供DSP查询已经发生的中断查询已经发生的中断ICGPIOI2C通用输入输出寄存器通用输入输出寄存器当当I2C模块工作在通用模块工作在通用IO模式下时控制模式下时控制SDA和和SCL引

33、脚引脚ICPSCI2C预定标寄存器预定标寄存器用来对系统时钟分频以获得用来对系统时钟分频以获得12M时钟时钟ICRSRI2C接收移位寄存器接收移位寄存器DSP无法访问无法访问ICXSRI2C发送移位寄存器发送移位寄存器DSP无法访问无法访问I2C自身地址寄存器(I2COAR) I2C自身地址寄存器自身地址寄存器(I2COAR)是一个)是一个16-bit映射到映射到DSP的的I/O空间的寄存器。空间的寄存器。 I2C模块用这个寄存器来指定模块用这个寄存器来指定自身的从设备地址,与自身的从设备地址,与I2C总线上其它设备区分开。如果总线上其它设备区分开。如果选择选择7-bit寻址模式(寻址模式(I

34、2CMDR中的中的XA0),只用到),只用到I2COAR中的中的bit 60,对,对bit 97写写0。bit域域值值说说 明明1510保留保留0读的返回值总是读的返回值总是0,写无效,写无效90OAR007Fh0003FFh7bit寻址模式寻址模式(I2MDR中中XA0)提供提供I2C模块模块7-bit的从地址,的从地址,bit 97写写010bit寻址模式寻址模式(I2MDR中中XA1)提供提供I2C模块模块10-bit的从地址的从地址I2C从地址寄存器(I2CSAR) I2C从地址寄存器从地址寄存器是一个是一个16-bit I/O映射寄存器,映射寄存器, I2CSAR中的中的SAR域包含

35、了一个域包含了一个7-bit或者或者10-bit的从地址。的从地址。如果选择如果选择7-bit寻址模式(寻址模式(I2CMDR中的中的XA0),只用到),只用到I2CSAR中的中的bit 60,对,对bit 97写写0。 bit域域值值说说 明明1510保留保留0读的返回值总是读的返回值总是0,写无效,写无效90SAR007Fh0003FFh7bit寻址模式(寻址模式(I2MDR中中XA0)当当I2C为主发送设备时,为主发送设备时,bit60提供提供7-bit的的从设备地址,从设备地址,bit90写写010bit寻址模式(寻址模式(I2MDR中中XA1)当当I2C为主发送设备时,为主发送设备时

36、,bit90提供提供10-bit的从设备地址的从设备地址I2C预分频寄存器(I2CPSC) I2C预分频寄存器预分频寄存器(I2CPSC)是一个)是一个16-bit I/O映射寄存映射寄存器,用来对器,用来对I2C的输入时钟分频,获得期望的模块时钟的输入时钟分频,获得期望的模块时钟 。bit域域值值说说 明明158保留保留0读的返回值总是读的返回值总是0,写无效,写无效70IPSC007Fh00FFhI2C的预分频值,它决定了怎样将的预分频值,它决定了怎样将CPU时钟分频,获得时钟分频,获得I2C模块时钟;模块时钟;模块时钟频率模块时钟频率I2C输入时钟频率输入时钟频率/(IPSC+1)注意:

37、当注意:当I2C复位时(复位时(I2CMDR中中IRS=0),必须对),必须对IPSC初始化。预初始化。预分频的频率只有在分频的频率只有在IRS变为变为1时才有时才有效。效。IRS1时,改变时,改变IPSC的值无效的值无效I2C时钟分频寄存器(I2CCLKL和I2CCLKH)(1) 当当I2C模块是模块是主设备主设备时,需要对模块时钟进行分频,获得时,需要对模块时钟进行分频,获得SCL引脚上的主时钟,主时钟的波形取决于两个分频值:引脚上的主时钟,主时钟的波形取决于两个分频值: I2CCLKL的的ICCL :对于每个主时钟周期,:对于每个主时钟周期,ICCL决定信号决定信号电平为低的持续时间。电

38、平为低的持续时间。 I2CCLKH的的ICCH :对于每个主时钟周期,:对于每个主时钟周期,ICCH决定信决定信号电平为高的持续时间。号电平为高的持续时间。 I2C时钟分频寄存器(I2CCLKL和I2CCLKH)(2)bit域域值值说说 明明150ICCL0000hFFFFh 时钟低电平时间分频值(时钟低电平时间分频值(165 535)。为了)。为了产生主时钟的低电平持续时间,将模块时钟产生主时钟的低电平持续时间,将模块时钟周期乘以(周期乘以(ICCLd),),d5、6、7bit域域值值说说 明明150ICCH0000hFFFFh时钟高电平时间分频值(时钟高电平时间分频值(165 535)。为

39、了)。为了产生主时钟的低电平持续时间,将模块时产生主时钟的低电平持续时间,将模块时钟周期乘以(钟周期乘以(ICCLd),),d5、6、7I2C时钟低电平寄存器(时钟低电平寄存器(I2CCLKL)的说明)的说明I2C时钟高电平寄存器(时钟高电平寄存器(I2CCLKH)的说明)的说明7.3.2 多通道缓存串口(MsBSP) 多通道缓存串口(多通道缓存串口(MsBSP, multi-channel buffered serial ports)在)在C55xx DSP和系统中的其它器件间提供了和系统中的其它器件间提供了一个直接的串行接口,它可以提供到其它一个直接的串行接口,它可以提供到其它C55xx

40、DSPs、codecs和其它器件的接口。和其它器件的接口。 McBSP包括一个数据流通路和一个控制通路,通过包括一个数据流通路和一个控制通路,通过7个个引脚与外部设备连接引脚与外部设备连接 。l全双工通信;全双工通信;l双缓冲数据寄存器,允许传送连续的数据流;双缓冲数据寄存器,允许传送连续的数据流;l独立的收发时钟信号和帧信号;独立的收发时钟信号和帧信号;l可用可用128个通道进行收发;个通道进行收发;l可与工业标准的编解码器、模拟接口芯片(可与工业标准的编解码器、模拟接口芯片(AICs)以及其)以及其它串行它串行A/D、D/A芯片直接接口连接;芯片直接接口连接;l能够向能够向CPU发送中断,

41、向发送中断,向DMA控制器发送控制器发送DMA事件;事件;l具有可编程的采样率发生器;具有可编程的采样率发生器;l可设置帧同步脉冲和时钟信号的极性;可设置帧同步脉冲和时钟信号的极性;l传输的字长可以是传输的字长可以是8位、位、12位、位、16位、位、20位、位、24位或位或32位;位;l具有具有律和律和A律压缩扩展功能;律压缩扩展功能;l可将可将McBSP引脚配置为通用输入输出引脚。引脚配置为通用输入输出引脚。 McBSP可以分为可以分为数据通道数据通道和和控制通道控制通道两部分。数据发送两部分。数据发送引脚引脚DX负责数据的发送,数据接收引脚负责数据的发送,数据接收引脚DR负责数据的接收,负

42、责数据的接收,发送时钟引脚发送时钟引脚CLKX、接收时钟引脚、接收时钟引脚CLKR、发送帧同步引脚、发送帧同步引脚FSX和接收帧同步引脚和接收帧同步引脚FSR提供串行时钟和控制信号。提供串行时钟和控制信号。 CPU和和DMA控制器通过外设总线与控制器通过外设总线与McBSP进行通信。当进行通信。当发送数据时,发送数据时,CPU和和DMA将数据写入数据发送寄存器(将数据写入数据发送寄存器(DXR1,DXR2),接着拷贝到发送移位寄存器(),接着拷贝到发送移位寄存器(XSR1,XSR2),通过发送移位寄存器输出至),通过发送移位寄存器输出至DX引脚。同样,当接引脚。同样,当接收数据时,收数据时,D

43、R引脚上接收到的数据先移位到接收移位寄存器引脚上接收到的数据先移位到接收移位寄存器(RSR1,RSR2),接着拷贝到接收缓冲寄存器(),接着拷贝到接收缓冲寄存器(RBR1,RBR2),),RBR再将数据拷贝到数据接收寄存器(再将数据拷贝到数据接收寄存器(DRR1,DRR2)中,并通知串口事件通知)中,并通知串口事件通知CPU或或DMA读取数据。这读取数据。这种多级缓冲方式使得片内数据通信和串行数据通信能够同时种多级缓冲方式使得片内数据通信和串行数据通信能够同时进行。进行。 McBSP的框图的框图 RSR1,2XSR1,2RBR1,2DRR1,2DXR1,28RCERs2MCRsPCR2SRCR

44、s2XCRs2RCRs2SPCRs8XCERsMcBSPExandCompressCompand数据、时钟、数据、时钟、帧同步控制和帧同步控制和监测寄存器监测寄存器多通道控制和多通道控制和监测寄存器监测寄存器DRDXCLKXCLKRFSXFSRCLKSXEVTAREVTAXEVTREVTXINTRINT16位位外设外设总线总线引脚引脚到到CPU的中断的中断到到DMA控控制器的同制器的同步事件步事件Multi-Channel Buffered Serial Port (McBSP)McBSP - Example时钟和成帧数据 (1)u数据的移动,是每次从数据的移动,是每次从DR引脚移动引脚移动1

45、bit到到RSR或者从或者从XSR移移动动1bit到到DX引脚。传输每一位的时间,由时钟信号的上升沿引脚。传输每一位的时间,由时钟信号的上升沿或下降沿控制。或下降沿控制。u数据数据bit组成一个串行字,在移位寄存器和数据引脚之间传送。组成一个串行字,在移位寄存器和数据引脚之间传送。用户可以自定义串行字中的用户可以自定义串行字中的bit数。数。u一个或多个串行字组成帧,同样,用户可以自定义每帧包含一个或多个串行字组成帧,同样,用户可以自定义每帧包含多少个字。一个帧的所有字节都连续传送,但是帧和帧之间多少个字。一个帧的所有字节都连续传送,但是帧和帧之间可以有停顿。可以有停顿。McBSP使用帧同步信

46、号来控制帧的发送和接收。使用帧同步信号来控制帧的发送和接收。uMcBSP允许用户将帧配置成一段或者是两段以求达到最高的允许用户将帧配置成一段或者是两段以求达到最高的传输速率。传输速率。u表表3.14说明了接收控制寄存器(说明了接收控制寄存器(RCR1和和RCR2)以及发送控)以及发送控制寄存器(制寄存器(XCR1和和XCR2)里决定每帧的段数、每段的字数、)里决定每帧的段数、每段的字数、每字的位数的每字的位数的bit域。每帧最多可以有域。每帧最多可以有4096位位 时钟和成帧数据 (2)操作操作段数段数每帧的字数每帧的字数每字的每字的bit数数接收接收1(RPHASE=0)RFRLEN1RWD

47、LEN1接收接收2 (RPHASE=1)RFRLEN1和和RFRLEN2段段1为为RWDLEN1段段2为为RWDLEN2发送发送1 (XPHASE=0)XFRLEN1XWDLEN1发送发送2 (XPHASE=1)XFRLEN1和和XFRLEN2段段1为为XWDLEN1段段2为为XWDLEN2McBSP接收数据流程(1)McBSP接收数据流程(2)(1)McBSP等待内部FSR上的接收帧同步脉冲信号;(2)帧同步脉冲到达时,根据RCR2中RDATDLY位的设置,插入适当的数据延迟。(上图中为1bit数据延迟)(3)McBSP接收DR引脚上的数据bits,并将其移送到接收移位寄存器。如果字长等于或

48、小于16 bits,只用RSR1。如果字长大于16 bits,则要使用RSR2和RSR1,且RSR2中是高位数据。(4)当接收到一个完整的字,如果RBR1为空,则将数据复制到接收缓存寄存器。(5)如果DRR1没有被前面的数据占满,McBSP将RBR中的数据复制到DRR。当DRR1接收到新的数据,SPCR1里面的就绪位置位,表示数据已经准备好,可以读取。(6)CPU或DMA控制器从数据接收寄存器读取数据。当DRR1被读取,RRDY清0,开始下一个RBR到DRR的复制。McBSP发送数据流程(1)McBSP发送数据流程(2)(1)CPU或或DMA控制器将数据写到数据发送寄存器。数据控制器将数据写到

49、数据发送寄存器。数据写到写到DXR1以后以后SPCR2中的发送就绪位中的发送就绪位XRDY清清0,表示,表示DXR1不能接收新的数据。如果字长大于不能接收新的数据。如果字长大于16 bit,则要使用,则要使用DXR2和和DXR1,DXR2中是高位。中是高位。(2)DXR1接收到一个新的数据,接收到一个新的数据,McBSP将将DXR的数据复的数据复制到发送移位寄存器。发送就绪制到发送移位寄存器。发送就绪bit(XRDY)置位,表示)置位,表示发送器已经准备好从发送器已经准备好从CPU或着或着DMA控制器接收数据。控制器接收数据。(3) McBSP等待等待FSX引脚上的发送帧同步信号。引脚上的发送

50、帧同步信号。(4) McBSP根据根据XCR2中中XDATDLY位的设置,插入适当位的设置,插入适当的数据延迟。的数据延迟。(5) McBSP将发送移位寄存器的数值移位到将发送移位寄存器的数值移位到DX引脚。引脚。McBSP的采样率发生器 McBSP包括一个采样率发生器包括一个采样率发生器SRG,用于产生内部数据时钟,用于产生内部数据时钟CLKG和内部帧和内部帧同步信号同步信号FSG,如图所示。,如图所示。CLKG控制控制DR上数据的移位和上数据的移位和DX上的数据发送;上的数据发送;FSG控制控制DR和和DX上的帧同步。上的帧同步。 采样率发生器的时钟源可以由采样率发生器的时钟源可以由CPU

51、时钟或外部引脚(时钟或外部引脚(CLKS,CLKX或或CLKR)提供,时钟源的选择可以通过引)提供,时钟源的选择可以通过引脚控制寄存器脚控制寄存器PCR中的中的SCLKME字段和采样率发生寄存器字段和采样率发生寄存器SRGR2中的中的CLKSM字段来确定,参见下表。输入信号的极字段来确定,参见下表。输入信号的极性由性由SRGR2中的中的CLKSP字段、字段、PCR中的中的CLKXP字段或字段或CLKRP字段确定字段确定 。采样率发生器输入时钟选择采样率发生器输入时钟选择SCLKMECLKSM输入时钟输入时钟00CLKS引脚上的信号作为输入时钟引脚上的信号作为输入时钟01CPU时钟时钟10CLK

52、R引脚上的信号作为输入时钟引脚上的信号作为输入时钟11CLKX引脚上的信号作为输入时钟引脚上的信号作为输入时钟采样率发生器输入时钟极性选择采样率发生器输入时钟极性选择输入时钟输入时钟极性选择极性选择说明说明CLKS引脚引脚CLKSP=0CLKSP=1CLKS为正极性,上升沿有效为正极性,上升沿有效CLKS为负极性,下升沿有效为负极性,下升沿有效CPU时钟时钟正极性正极性CPU时钟为正极性,上升沿有效时钟为正极性,上升沿有效CLKR引脚引脚CLKRP=0CLKRP=1CLKR为正极性,上升沿有效为正极性,上升沿有效CLKR为负极性,下升沿有效为负极性,下升沿有效CLKX引脚引脚CLKXP=0CL

53、KXP=1CLKX为正极性,上升沿有效为正极性,上升沿有效CLKX为负极性,下升沿有效为负极性,下升沿有效1采样率发生器的输出时钟和帧同步信号采样率发生器的输出时钟和帧同步信号 输入的时钟经过分频产生输入的时钟经过分频产生SRG输出时钟输出时钟CLKG。分频值由采样率发。分频值由采样率发生寄存器生寄存器SRGR1中的中的CLKGDV字段确定:字段确定:2551 1CLKGDVCLKGDVCLKG输入时钟频率输出时钟频率所以输出的最高时钟频率是输入时钟频率的一半。当所以输出的最高时钟频率是输入时钟频率的一半。当CLKGDV是奇数是奇数时,时,CLKG的占空比是的占空比是50%,当,当CLKGDV

54、是偶数是偶数2p时,时,CLKG高电平持高电平持续时间为续时间为p+1个输入时钟周期,低电平持续时间为个输入时钟周期,低电平持续时间为p个输入时钟周期。个输入时钟周期。 帧同步信号帧同步信号FSG由由CLKG进一步分频而来,分频值由采样率发生寄进一步分频而来,分频值由采样率发生寄存器存器SRGR2中的中的FPER字段决定:字段决定:40950 1FPERFPERCLKGFSG时钟频率输出时钟频率 帧同步脉冲的宽度由采样率发生寄存器帧同步脉冲的宽度由采样率发生寄存器SRGR1中的中的FWID字段决定:字段决定:2550 1FWIDCLKGFWIDFSG的周期)(脉宽2同步同步 SRG的输入时钟可

55、以是内部时钟,即的输入时钟可以是内部时钟,即CPU时钟,也可以时钟,也可以是来自是来自CLKX、CLKR和和CLKS引脚的外部输入时钟。当采用引脚的外部输入时钟。当采用外部时钟源时,一般需要同步,同步由采样率发生寄存器外部时钟源时,一般需要同步,同步由采样率发生寄存器SRGR2中的字段中的字段GSYNC控制。控制。 l当当GSYNC=0时,时,SRG将自由运行,并按将自由运行,并按CLKDV、FPER和和FWID等参数的配置产生输出时钟;等参数的配置产生输出时钟;l当当GSYNC=1时,时,CLKG和和FSG将同步到外部输入将同步到外部输入时钟。时钟。多通道模式选择 McBSP属于多通道串口,

56、每个属于多通道串口,每个McBSP最多可有最多可有128个通个通道。如图道。如图5-17所示,其多通道选择部分由多通道控制寄存器所示,其多通道选择部分由多通道控制寄存器MCR、接收使能寄存器、接收使能寄存器RCER和发送使能寄存器和发送使能寄存器XCER组成组成。其中,。其中,MCR可以禁止或使能全部可以禁止或使能全部128个通道,个通道,RCER和和XCER可以分别禁止或使能某个接收或发送通道。每个寄存可以分别禁止或使能某个接收或发送通道。每个寄存器控制器控制16个通道,因此个通道,因此128个通道共有个通道共有8个通道使能寄存器。个通道使能寄存器。1接收多通道选择接收多通道选择接收多通道的

57、选择由接收多通道的选择由MCR1中的中的RMCM位确定:位确定:当当RMCM=0,所有,所有128接收通道使能且不能被禁止。接收通道使能且不能被禁止。当当RMCM=1,接收多通道选择模式使能。在这种情况下:,接收多通道选择模式使能。在这种情况下:l通道可以独立地被使能或禁止,使能通道的选择由通道可以独立地被使能或禁止,使能通道的选择由接收通道使能寄存器接收通道使能寄存器RCER确定。确定。l如果某个接收通道被禁止,在这个通道上接收的数如果某个接收通道被禁止,在这个通道上接收的数据只传输到接收缓冲寄存器据只传输到接收缓冲寄存器RBR中,并不拷贝到中,并不拷贝到DRR,因此不会产生,因此不会产生D

58、MA同步事件。同步事件。2发送多通道选择发送多通道选择发送多通道的选择由发送多通道的选择由MCR2中的中的XMCM字段确定:字段确定:当当XMCM=00b,所有,所有128发送通道使能且不能被屏蔽;发送通道使能且不能被屏蔽;当当XMCM=01b,由发送使能寄存器,由发送使能寄存器XCER选择通道,如该通选择通道,如该通道没有被选择则该通道被禁止;道没有被选择则该通道被禁止;当当XMCM=10b,由,由XCER寄存器禁止通道,如果该通道没有寄存器禁止通道,如果该通道没有被禁止则通道使能;被禁止则通道使能;当当XMCM=11b,所有通道被禁止用,而只有当对应的接收通,所有通道被禁止用,而只有当对应

59、的接收通道使能寄存器道使能寄存器RCER使能时发送通道才被使能,当该发送通使能时发送通道才被使能,当该发送通道使能时,由道使能时,由XCER寄存器决定该通道是否被屏蔽。寄存器决定该通道是否被屏蔽。 McBSP的寄存器主要包括的寄存器主要包括3部分:收发通道寄存器、时部分:收发通道寄存器、时钟和帧同步寄存器、多通道选择寄存器。钟和帧同步寄存器、多通道选择寄存器。 1收发通道寄存器收发通道寄存器 收发通道中收发通道中CPU或或DMA控制器可以访问的寄存器包括数控制器可以访问的寄存器包括数据接收寄存器据接收寄存器DRR和数据发送寄存器和数据发送寄存器DXR。由于。由于McBSP支持支持8、12、16

60、、20、24或或32位的字长,当字长等于或小于位的字长,当字长等于或小于16位,位,只使用只使用DRR1/DXR1,当字长超过,当字长超过16位,位,DRR1/DXR1存放低存放低16位,位,DRR2/DXR2存放其余数据位。存放其余数据位。2时钟和帧同步寄存器时钟和帧同步寄存器 时钟和帧部分寄存器主要用于控制时钟和帧同步信号的产时钟和帧部分寄存器主要用于控制时钟和帧同步信号的产生、收发数据帧格式和串口状态的检测等。生、收发数据帧格式和串口状态的检测等。(1) 串口控制寄存器串口控制寄存器 每个每个McBSP有两个串口控制寄存器有两个串口控制寄存器SPCR1和和SPCR2,用,用于控制于控制M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论