轻松学会DSP 多通道缓冲串口【优质材料】_第1页
轻松学会DSP 多通道缓冲串口【优质材料】_第2页
轻松学会DSP 多通道缓冲串口【优质材料】_第3页
轻松学会DSP 多通道缓冲串口【优质材料】_第4页
轻松学会DSP 多通道缓冲串口【优质材料】_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

1、DSP增强型外设 多通道缓冲串口McBSP 直接存储器访问DMA 主机接口HPI,1,专业资料,2,专业资料,一、McBSP概述,McBSP设计是基于TMS320C2X、C20X、C5X、C54X的标准串口上扩展的,McBSP提供: 全速双工通信 双缓存发送和三缓存接收数据寄存器,以支持连 续传送 收和发使用独立的帧和比特时钟 接口和与串行ADC/DAC的接口 外部变速时钟发生器,内部可编程时钟发生器,1、McBSP的基本特点,3,专业资料,直接多种工业格式接口 多通道收发,通道数达128 字宽可选: 8, 12, 16, 20, 24, and 32 bits U-Law and A-Law

2、 压缩与扩展 8位传输时可选先传: LSB or MSB 帧信号与时钟信号极性可编程,4,专业资料,2、 McBSP的结构,TMS320C54xx多通道缓冲串口(McBSP)由引脚、接收发送部分、时钟及帧同步信号产生、多通道选择以及CPU中断信号和DMA同步信号组成,如图所示,5,专业资料,表 McBSP引脚说明,6,专业资料,表 McBSP内部信号说明,7,专业资料,3、 McBSP的工作流程,McBSP与外设进行数据传输是通过(DX)脚来发送,(RX)脚来接收,通信的时钟与帧信号是由CLKX, CLKR, FSX, and FSR脚来控制。 DSP的CPU或DMA从数据接收寄存器(DRR1

3、,2)读取接收数据,发送时向数据发送寄存器(DXR1,2)写数据,8,专业资料,数据写入(DXR1,2)后通过传输移位寄存器(XSR1,2) 移位输出到DX上,同样,从DR上接收的数据移位存储到接收移位寄存器(RSR1,2) 并拷贝到接收缓存寄存器(RBR1,2) ,然后,再由(RBR1,2)拷贝到DRR1,2,DRR1,2就可以由CPU或DMA来读出。多级寄存器允许在通信时内部和外部数据同时传输。 C54XX对McBSP的控制由16位的控制寄存器实现,9,专业资料,二、 McBSP的配置,1、 McBSP控制寄存器,表 McBSP控制寄存器及其映射地址,10,专业资料,寄存器类型 通用控制寄

4、存器:SPCR1,2,PCR 接收和发送通道寄存器:RCR1X,RCR2X,XCR1X,XCR2X 时钟控制寄存器:SRGR1X,SRGR2X 多通道控制寄存器:MCR1X,MCR2X,11,专业资料,2、串口控制寄存器1(SPCR1,12,专业资料,SPCR1设置McBSP串口的数字环回模式、 接收符号扩展和校验模式、Clock Stop模式、DX是否允许、A-bis 模式、接收中断模式等,并给出接收同步错误、接收移位寄存器(RSR1,2)空、接收准备好等状态。此外可以进行接收复位,13,专业资料,3、串口控制寄存器2(SPCR2,14,专业资料,SPCR2设置McBSP自由运行模式、SOF

5、T 模式、发送中断模式,并给出发送同步错误、发送移位寄存器(XSR1,2)空、发送准备好等状态。此外可以进行发送复位、采样率发生器复位、帧同步发生电路复位,15,专业资料,4、引脚控制寄存器(PCR,16,专业资料,17,专业资料,PCR设置McBSP传输帧同步模式、接收帧同步模式、发送时钟模式、接收时钟模式、发送帧同步信号的极性、接收帧同步信号的极性、发送时钟极性、接收时钟极性,并给出CLKS、DX、DR脚的状态。此外PCR还定义发送和接收部分在复位时相应引脚是否配置为通用 I/O,18,专业资料,5、接收控制寄存器1(RCR1,RCR1设置McBSP接收时第一相的接收帧长度(从1个字到12

6、8个字、接收字长度(8、12、16、20、24、32bits,19,专业资料,6、接收控制寄存器2(RCR2,RCR2设置McBSP接收时是否允许第二相(RPHASE=1)。如果允许,设置McBSP接收时第二相的接收帧长度(从1个字到128个字、接收字长度(8、12、16、20、24、32bits)。此外, RCR2设置McBSP接收时的接收压缩模式、接收同步帧忽略模式、接收数据延迟,20,专业资料,7、发送控制寄存器1(XCR1,XCR1设置McBSP发送时第一相(FIRST PHASE)的发送帧长度(从1个字到128个字、发送字长度(8、12、16、20、24、32bits,21,专业资料

7、,8、发送控制寄存器2(XCR2,XCR2设置McBSP发送时是否允许第二相(XPHASE=1)。如果允许,设置McBSP时第二相的发送帧长度(从1个字到128个字、发送字长度(8、12、16、20、24、32bits)。此外, XCR2设置McBSP发送时的发送压缩模式、发送同步帧忽略模式、发送数据延迟,22,专业资料,三、时钟和帧同步,1、系统框图,23,专业资料,串口工作需要帧同步和比特时钟信号,这两个信号的来源可以是外部管脚输入,也可以是内部采样率生成器产生,对于后者,此时管脚可能是一个时钟输出管脚,24,专业资料,2、工作帧同步和工作比特时钟,真正用于发生和接收的帧同步和比特时钟我们

8、叫做internal CLKR,internal FSR,internal CLKX,internal FSX。 这些信号同数据关系满足如图要求 1)比特时钟上升沿对齐帧同步,下降 沿采样帧同步 2)帧同步高电平有效,长度无所谓 3)比特时钟上升沿对齐数据,下降沿采样数据,25,专业资料,26,专业资料,3、工作帧同步和比特时钟来源,对于发送通道,可以是外部管脚,也可以是内部采样率生成器 对于接收通道,可以是外部管脚,也可以是内部采样率生成器,工作在DLB模式时,则来源于发送通道工作帧同步和工作时钟,27,专业资料,4、采样率生成器,采样率发生器由三级时钟分频组成,产生可编程的CLKG(数据位

9、时钟)信号和FSG(帧同步时钟)信号。CLKG和FSG是McBSP的内部 信号,用于驱动接收/发送时钟信号(CLKR/X)和帧同步信号(FSR/X)。采样率发生器时钟既可以由内部的CPU时钟驱动(CLKSM=1),也可以由外部时钟源驱动(CLKSM=0,采样率发生器框图,28,专业资料,采样率发生器的三级分频分别是: 数据位时钟分频(CLKGDV) 帧周期分频(FPER) 帧脉冲宽度分频(FWID) 采样率发生器的工作模式由采样率发生器控制寄存器SRGR1和SRGR2控制,29,专业资料,采样率发生器控制寄存器(SRGR1,采样率发生器寄存器1设置帧正脉冲宽度(必须小于WDLEN指出的字的长度

10、)和数据位时钟分频( CLKG与输入CLK频率之比,约定值为1,30,专业资料,采样率发生器控制寄存器(SRGR2,采样率发生器寄存器2设置采样率发生器时钟同步模式、CLKS的极性、采样率发生器输入时钟选择、帧周期分频,31,专业资料,采样率发生器复位,设备复位或置/GRST为零可以复位采样率发生器。 设备复位使采样率发生器复位时,CLKG等于CPU-CLK/2,而FSG为无效低电平。当/RS放开(延迟)/GRST放开后,CLKG按SRGR1编程产生;如果,/FRST也放开,则经过FPER个CLKG,FSG为有效高电平。 置/GRST为零复位采样率发生器,CLKG和FSG都将是无效低电平,32

11、,专业资料,采样率生成器复位过程,33,专业资料,5、帧和时钟极性操作,34,专业资料,用于控制接收和发送的帧同步和时钟有内部的概念,就是真实的工作帧同步和时钟。 数据在工作时钟的上升沿产生,下降延采样。 工作帧同步是高电平有效,其上升沿同工作比特时钟上升沿对齐。 工作帧同步和时钟来源可以是外部管脚FSR/X和CLKX/R得到,也可以是采样率生成器得到,35,专业资料,外部引脚产生工作帧同步和时钟可能会有极性问题。这时,通过CLK(R/X)P,PFS(R/X)P来调整,使之满足工作帧同步和时钟的极性要求。 采样率生成器产生的工作帧同步和时钟肯定是满足极性要求的,即:数据在工作时钟的上升沿产生,

12、下降沿采样,工作帧同步是高电平有效,36,专业资料,使用管脚CLKS作为采样率生成器的时钟输入而不是CPU时钟时,存在极性和同步问题,通过CLKSP选择是在CLKS上升沿还是下降沿产生CLKG和FSG。 当GSYNC=1,FSG由外部管脚FSR触发,FPER没有作用,而且CLKG要重新与FSG同步,即FSG上升沿时保持高电平,37,专业资料,6、数据时钟生成,38,专业资料,CLK(R/X)M=0,外部管脚CLK(R/X)作为工作数据时钟,通过CLK(R/X)P控制极性; CLK(R/X)M=1,内部采样率生成器产生工作数据时钟。采样率生成器的输入时钟可以是CPU时钟,也可以是CLKS管脚,由

13、CLKSM控制。当是后者,CLKSP控制器极性; 内部采样率生成器产生工作数据时钟,通过CLKGDV分频采样率生成器输入时钟得到,39,专业资料,7、帧同步信号生成,40,专业资料,如果是由采样率生成器产生发送和接收帧同步,首先考虑采样率生成器的输入时钟是CPU还是CLKS管脚。这个同数据时钟是一致的,由FS(R/X)M=1和CLKSM决定。 当由采样率生成器产生帧同步,FPER和FWID控制帧同步的周期和有效宽度(高电平宽度),大小为设定值加1。 FWID不能大于WDLEN,41,专业资料,例子:FPER=15,FWID1,42,专业资料,FS(R/X)M=0,帧同步由外部输入管脚产生,可以

14、通过FS(R/X)P控制极性; FS(R/X)M=1,帧同步由内部产生。对于接收帧同步,内部产生只能是采样率生成器,但对于发送帧同步,内部产生除了采样率生成器,还可以是DXR1,2-TO-XSR1,2产生,43,专业资料,发送帧同步信号生成,课本Page 330 表6.414,44,专业资料,接收帧同步信号生成,45,专业资料,8、DLB,数据从XSR1直接进入RSR1,而且不通过外部DX和DR管脚 通过寄存器SPCR1中的DLB比特控制,46,专业资料,DLB与时钟,DLB时,在DSP内部,DR,FSR,CLKR 同DX,FSX,CLKX是短接在一起的。 发送数据时钟决定接收数据时钟,而发送

15、数据时钟控制方法如前页所述。 发送数据时钟确定后,接收数据时钟选择情况,47,专业资料,DLB与帧同步,首先我们确定发送帧同步,确定方法如前所述。 然后由发送帧同步确定接收帧同步,48,专业资料,9、帧配置,FSR,FSX,CLKX,CLKR的极性 单相还是多相帧结构 对每一相,设置字数(每帧该相有多少字) 对每一相,设置字宽(字的比特位数) 设置相对帧脉冲,第一位传输数据的延迟为0、1、2位(CLKG,49,专业资料,设置连续帧同步工作模式,还是除第一个帧脉冲后忽略帧同步脉冲工作模式 对串口接收,设置左或右效验和符号扩展或0填充模式 如果采用内部采样率发生器产生帧脉冲信号,设置帧信号脉宽、周

16、期、CLKG时钟分频、信号极性等,50,专业资料,帧格式,51,专业资料,帧格式,52,专业资料,10、数据延时,定义从帧同步信号有效到第一个数据产生的时延,通常取1,53,专业资料,11、DX脚延时使能,本来是CLKX上升沿数据开始,但DX延时使能条件下,数据可以有一定延时后才开始。在一般模式下,只有第一个BIT可以有延时,在A-bis模式下,则是每个比特都可以,54,专业资料,四、多通道模式,目的是提高传输数据量,1、多通道工作模式的控制寄存器,1)、多通道控制寄存器1(MCR1,MCR1设置McBSP在多通道工作模式时的接收PART-B的块结构、接收PART-A的块结构、当前可接收块、接

17、收多通道选择,55,专业资料,2)、多通道控制寄存器2(MCR2)说明,MCR2设置McBSP在多通道工作模式时的发送PART-A块结构、发送PART-B块结构、当前发送块、发送多通道选择,3)、接收、发送通道使能寄存器说明(图中各位:置1-使能,置0-不允许,56,专业资料,57,专业资料,2、多通道工作模式设置 设置(R/X)PHASE = 0选择单相工作模式 设置FRLEN1 = ?选择帧长(字数,也是多通道工作模式下的通道数,最多可达128) 设置字长WDLEN1 = ?(每通道传输多少bits) 如果是单通道连续工作,置RMCM=0X和MCM=0 如果是多通道工作,设置RP(A/B)

18、BLK,XP(A/B)BLK,RCER(A/B)、XCER(A/B),并置RMCM=1、XMCM位非0,58,专业资料,五、工作流程,控制McBSP系统工作模式的寄存器包括SPCR1,SPCR2,PCR 控制接收和发送数据具体工作模式的寄存器是RCR1,RCR2,XCR1,XCR2 多同道工作模式涉及寄存器MCR1,MCR2,RCERA,RCERB,XCERA,XCERB,59,专业资料,1、McBSP串口的复位,两种复位方式: 1)设备复位(/RS=0): 即整个串口复位。此时,/RRST和/XRST为零,DR、CLKR/X、FSR/X为输入信号,DX为输出信号,输出高阻。同时/GRST也为

19、零,CLKG=CPU时钟/2,不产生FSG信号。/RS放开后,/RRST、/XRST、/GRST、/FRST仍为零,此时,McBSP配置寄存器赋值,复位进入McBSP复位状态,60,专业资料,2)从McBSP复位 McBSP串口发送器和接收器可以分别复位(/RRST=0、/XRST=0、/FRST=0)。不论是接收还是发送的复位,相应部分将停止串口操作,而相应引脚当作I/O脚使用,由PCR的XIOEN、RIOEN决定。 串口初始化过程见P.327,61,专业资料,2、McBSP的准备好状态,1)接受准备好 串口复位时RRDY清为0,当RBR1,2内容拷贝到DRR1,2时,RRDY有效,该数据可

20、以被CPU or DMA读,一旦CPU or DMA读走数据RRDY又清为0。如果SPCR1中的RINTM = 00,RRDY将驱动McBSP的接收中断(RINT)给CPU,62,专业资料,2)发送准备好 XRDY = 1说明DXR1,2的数据已拷贝到XSR1,2中,DXR1,2可以装入新的数据。串口复位放开时(/XRST从0到1),XRDY从0变到1已说明DXR1,2可以装入新数据,一旦有新数据装入,XRDY就清为0。如果SPCR2中XINTM = 00,XRDY 还直接驱动发送中断(XINT) 给CPU,63,专业资料,3、 串口产生的中断,R/X)INTM=00:每传送一个字,(R/X)

21、RDY 响应一次,就产生响应串口中断一次。 (R/X)INTM=01:在多通道模式中,一个帧内出现16通道的块(PARTITION)边界就产生中断。此时CPU可以检测是哪个PARTITION。 (R/X)INTM=10:检测到帧同步脉冲就产生(R/X)INT。 (R/X)INTM=11:当出现帧同步错误时产生中断,64,专业资料,4、帧和时钟配置,帧配置; 接收时钟选择; 发送时钟选择; 接收帧同步选择; 发送帧同步选择,65,专业资料,备注 IO工作方式,满足两个条件工作在IO口模式 1)管脚在复位状态 2)通用IO使能比特设为有效 而具体每个管脚是输入还是输出,其高低电平如何读写见下表,6

22、6,专业资料,67,专业资料,五、编程举例,下面给出一个McBSP串口实验程序 这是一个串口自测试程序,除检验串口的功能外, 该程序还利用串口完成数据的内部压缩,通过设置 XCOMPAND或RCOMPAND之一可以实现内部数据A-law 或u-law的压缩和解压 程序的流程是: 修改中断向量表 初始化McBSP串口 设置BLD=1,即支持数字回环方式 设置RCOMPAND=10,即采用u-law扩展 ar3指向发送数据缓冲区 ar4指向接收数据缓冲区,初始化将接收数据缓冲 区全部清为0 编写接收与发送中断程序,68,专业资料,详细程序及说明,This is McBSP test program

23、. The work-mode of McBSP Series: ; BLD=1 (Digital loop back mode enabled) ; RCOMPAND=10 or 11 (u-law/A-law Expand: 8bits - 16bits) ; (R/X)INTM=00 (generate an interrupt every word traxsmitted) ; ar3 - Transmit data buffer(buffer_1) ; ar4 - receive data buffer(buffer_2) ; The program is applicable fo

24、r VC5409 ; Designed by liyubai ; Modifing 1.0 Time 2001,6,28 .title Test McBSP Program .mmregs .global mainstart .global interrupt_vector drr11.set 41h;McBSP1 receive data register dxr11.set 43h;McBSP1 transmit data register spsa1.set 48h;McBSP1 sub_bank address register,69,专业资料,spcd1.set 49h;McBSP1

25、 sub_bank data register .bss stack_memory,500 .bss buffer_1,1000 .bss buffer_2,1000 interrupt_vector:;interrupt vector table .text rsb mainstart nop nop nmi b _ret .word 0,0 sint17 b _ret .word 0,0 sint18 b _ret .word 0,0 sint19 b _ret .word 0,0 sint20 b _ret .word 0,0,70,专业资料,sint21 b _ret .word 0,

26、0 sint22 b _ret .word 0,0 sint23 b _ret .word 0,0 sint24 b _ret .word 0,0 sint25 b _ret .word 0,0 sint26 b _ret .word 0,0 sint27 b _ret .word 0,0 sint28 b _ret .word 0,0 sint29 b _ret .word 0,0 sint30 b _ret .word 0,0,int0 b _ret .word 0,0 int1 b _ret .word 0,0 int2 b _ret .word 0,0 tint b _ret .wor

27、d 0,0 brint0 b _ret .word 0,0 bxint0 b _ret .word 0,0 dmac0 b _ret .word 0,0 dmac1 b _ret .word 0,0 int3 b _ret .word 0,0 hpint b _ret .word 0,0,71,专业资料,brint1 b McBSP1_receive_int nop nop bxint1 b McBSP1_transmit_int nop nop q28 .word 0,0,0,0 q29 .word 0,0,0,0 q30 .word 0,0,0,0 q31 .word 0,0,0,0 ma

28、instart: ssbx intm;close all interrupt stm #0ffffh,ifr;cleare all interrupt_flag stm #0,clkmd;switch to DIV mode ts: ldm clkmd,a and #01b,a bc ts,aneq stm #5207h,clkmd;clkout=clkin X 6 rpt #100 ;waits enough clocks,72,专业资料,nop stm #stack_memory,sp ;sp = stack_memory stm #0ff80h,pmst ;vector table st

29、art: 0 xff80 stm #3610h,swwsr;I/O wait: 3clks, data_0 x8000-;0 xffff wait:3clks ;program_0 x8000-0 xffff ;wait:2clks call Clear_McBSP1_receive_buf call McBSP1_initializing rpt #0ffh nop stm #buffer_1,ar3 stm #buffer_2,ar4 ld #799,b;pre_put numberS of McBSP interrupt stm #1800h,imr;enable RINT1,XINT1

30、 rsbx intm;enable all int wait_McBSP_int: nop,73,专业资料,nop bc _ret,beq nop nop b wait_McBSP_int nop _ret:nop rete McBSP1_initializing: stm #0,spsa1;choose SPCR11 stm #08000h,spcd1;1000000000000000 = SPCR11. ;DLB(15)=1(Digital loop back moden enabled) ;RJUST(14-13)=00;CLKSTP(12-11)=00 ;RES(10-8)=000,D

31、XENA(7)=0,ABIS(6)=0 ;RINTM(5-4)=00,RSYNCERR(3)=0,RFULL(2)=0 ;RRDY(1)=0,RRST(0)=0 stm #1,spsa1;choose spcr21,74,专业资料,stm #0h,spcd1;0000000000000000 = SPCR21. ;RES(15-10)=000000,FREE(9)=0,SOFT(8)=0 ;FRST(7)=0,GRST(6)=0,XINT(5-4)=00,XSYNCERR(3)=0 ;XFULL(2)=0,XRDY(1)=0,XRST(0)=0 stm #2,spsa1;choose RCR1

32、1 stm #0,spcd1;0000000000000000 = RCR11. ;RES(15)=0,RFRLEN1(14-8)=000 0000 ;RWDLEN1(7-5)=000,RES(4-0)=0 0000 stm #3,spsa1;choose RCR21 stm #10H,spcd1;0000000000010000 = RCR21. ;RPHASE(15)=0,RFRLEN2(14-8)=000 0000 ;RWDLEN2(7-5)=000,RCOMPAND(4-3)=10(u-law EXPAND) ;RFIG(2)=0,RDATDLY(1-0)=00 stm #4,spsa1;choose XCR11 stm #0,spcd1;0000000000000000 = XCR11. ;RES(15)=0,XFRLEN1(14-8)=000 0000 ;XWDLEN1(7-5)=000,RES(4-0)=0 0000 stm #5,spsa1;choose XCR21 stm #0,spcd1;0000000000000000 = XCR21. ;XPHASE(15)=0,XFRLEN2(14-8)=000 0000,75,专业资料,XWDLEN2(7-5)=000,XCOMPAND(4-3)=00(No compand) ;XF

温馨提示

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

评论

0/150

提交评论