首页 理论教育 XINTF功能简介

XINTF功能简介

时间:2023-06-24 理论教育 版权反馈
【摘要】:XTIMCLK时钟信号应用于所有XINTF区域。XINTF总线周期开始于XCLKOUT的上升沿,且所有时序和事件都是在相应的XTIMCLK上升沿产生。数据线宽度不同并不会改变XINTF区域或存储器的长度。281x系列的XINTF仅局限于16位数据总线模式。而281x系列器件上XINTF引脚不可复用成其他功能使用,只能作为XINTF功能使用。2833x系列器件XINTF区域数目减少到3个为区域0、区域6、区域7,每个区域都有各自的片选信号。2833x器件中XINTF寄存器受EALLOW保护;而281x器件上,XINTF寄存器不受EALLOW保护。

XINTF功能简介

F2833x系列芯片的XINTF映射到了3个固定的存储区域,如图5-5所示。图中区域1~5保留,用于将来扩展;图中的3个区域,每个区域都可以配置为不同的等待状态数、建立及保持时序;当在PCLKCR3中使能XINTF模块时钟时,所有区域均被使能。

978-7-111-49650-2-Chapter05-58.jpg

图5-5 外部接口模块结构框图

28x系列DSP每个XINTF区域都有一个片选信号,当访问某一XINTF区域时,相应的区域就会产生该片选信号。每个区域都可以配置特定的等待状态时间、选通信号建立时间和保持时间,且读访问和写访问可以分开独立配置;另外,每一个区域还可以配置成是否使用外部XREADY信号扩展等待状态。这些功能可以使DSP与外部存储器外设实现无缝连接。

用户通过配置相应的XTIMINGx可以指定每个XINTF区域的建立/保持时间和访问等待状态数。访问时序是基于内部时钟XTIMCLK的。XTIMCLK的频率可以配置成等于SYSCLK-OUT或者为SYSCLKOUT的1/2。XTIMCLK时钟信号应用于所有XINTF区域。XINTF总线周期开始于XCLKOUT的上升沿,且所有时序和事件都是在相应的XTIMCLK上升沿产生。

1.TMS320x281x器件XINTF的区别

TMS320x2833x系列器件的XINTF与TMS320x281x系列器件的XINTF很相似,它们的主要差别如下:

1)数据总线宽度。2833x系列器件每个XINTF区域都可以独立配置使用16位或32位的数据总线。采用32位数据总线模式改善了XINTF性能,因为单个读、写操作可访问32位数据。数据线宽度不同并不会改变XINTF区域或存储器的长度。在32位模式下,地址线最低位XA0作第2个写选通信号使用。281x系列的XINTF仅局限于16位数据总线模式。

2)地址总线。2833x系列器件地址扩展到20根地址线。区域6和区域7都使用所有地址线,因而每块区域寻址高达1M×16位。而281x系列器件只能达到512K×16位。

3)直接存储器访问(DMA)。2833x系列器件三个XINTF区域都可以连接到片上的DMA模块。DMA可以在CPU处理其他数据时,复制代码和数据至XINTF或从XINTF中复制代码和数据。而281x系列器件没有DMA模块。

4)XINTF时钟使能。2833x系列器件XINTF时钟(XTIMCLK)默认情况下被禁止(节能)。XTIMCLK可以通过向PCLKCR3寄存器中的第12位写1来使能。关闭XTIMCLK时钟并不会关闭XCLKOUT时钟。XCLKOUT时钟有专门的关闭控制位。而281x系列器件上的XTIMCLK一直处于使能状态。

5)XINTF引脚复用。2833x系列器件的许多XINTF引脚可复用成通用输入输出口。在使用XINTF之前,必须要在相应GPIO复用寄存器中将有关引脚配置成XINTF操作。而281x系列器件上XINTF引脚不可复用成其他功能使用,只能作为XINTF功能使用。

6)区域数目和片选信号。2833x系列器件XINTF区域数目减少到3个为区域0、区域6、区域7,每个区域都有各自的片选信号。区域0仍然受“其后紧跟读的写操作”保护。而281x系列器件某些区域共享一个片选信号,如区域0和区域1共享XZCS0AND1,区域6和区域7共享XZCS6AND7。

7)区域7存储器映射。2833x系列器件区域7总是映射到存储区域,区域6和区域7不共享任何区域空间。而281x系列器件上区域7是否被映射由MPNMC引脚的输入信号决定,281x系列器件上区域7镜像映射到区域6中。

8)区域存储器映射。2833x系列器件区域0从地址0x4000开始,长度是4K×16位;而在281x系列器件上,区域0从地址0x2000开始,长度是8K×16位。2833x系列器件区域6和区域7长度都是1M×16位,并且起始地址分别是0x100000和0x200000;而281x系列器件上这两处区域长度分别是512K×16位和16K×16位。

9)EALLOW保护。2833x器件中XINTF寄存器受EALLOW保护;而281x器件上,XINTF寄存器不受EALLOW保护。

2.与TMS320x2834x器件XINTF的区别

TMS320x2833x、2823x系列器件XINTF与TMS320x2834x系列器件的XINTF主要差别在于:

1)XA0和978-7-111-49650-2-Chapter05-59.jpg。对于F2833x/F2823x器件,XA0和978-7-111-49650-2-Chapter05-60.jpg共享一个输入引脚;而在C2834x器件上,这两个为独立的引脚。

2)XBANK周期选择。用户需要选择基于XTIMCLK和XCLKOUT时钟的延迟周期数;而C2834x器件无此要求。

3.访问XINTF区域(www.xing528.com)

XINTF区域是28x系列存储器映射中直接与外部接口相连接的那一段区域。图5-5给出了区域分配情况及各区域的寻址范围。连接到某一XINTF区域的存储器或外设寄存器可以直接被CPU或CCS开发工具访问。

每一XINTF区域可以单独配置特定的读、写访问时序,每个区域还有相应的区域片选信号。当片选信号拉低时,即可访问相应区域。对于2833x系列器件,所有片选信号都是独立的。

外部地址总线XA是20位宽,被所有区域共享。总线产生什么样的地址取决于哪一区域被访问。具体情况如下:

●区域0。区域0使用的外部地址是0x00000~0x00FFF,即当访问区域0第一个存储地址时,总线产生外部地址0x00000和片选信号0978-7-111-49650-2-Chapter05-61.jpg;当访问区域0最后一个存储地址时,总线产生外部地址0x00FFF和片选信号978-7-111-49650-2-Chapter05-62.jpg

●区域6和区域7。这两个区域都使用外部地址0x00000~0xFFFFF,哪一片选信号978-7-111-49650-2-Chapter05-63.jpg变低,取决于哪一区域被访问。

4.其后紧跟读的写操作流水线保护

在28xCPU流水线中,一个操作的读阶段在写阶段之前,由于这个顺序,若一写访问后面跟着读操作,则实际中访问顺序可能会颠倒为先读后写。

例如,图5-6所示的代码实现的是先向一地址写然后从另一地址读的操作,根据28x流水线,读操作将先于写操作执行。

针对这一现象,在28x器件中,外设寄存器所在的存储区域都设有相应的硬件保护,防止顺序颠倒。这些区域被称作是“其后紧跟读的写操作流水线保护”。区域0是默认“其后紧跟读的写操作流水线保护”的区域。对区域0进行写访问和读访问是按照编程的顺序执行的。例如,其后紧跟读操作的写操作执行如图5-7所示。

978-7-111-49650-2-Chapter05-64.jpg

图5-6 先读后写

978-7-111-49650-2-Chapter05-65.jpg

图5-7 其后紧跟读的写操作执行

在对同一存储单元访问时,28xCPU将自动保护其后紧跟读的写操作。上文所述的保护机制是针对在同一受保护的存储区域,但读、写访问地址不一样的情况。在这种情况下,CPU通过插入足够的NOP指令使得在进行读访问前完成写操作。

当外设寄存器映射到XINTF区域时才需关心读写的执行顺序。对某一寄存器的写操作可能会导致另一寄存器状态的更新。在这种情况下,向第一个寄存器的写操作必须在对第二个寄存器的读操作之前完成,若写和读操作是以通常的流水线操作完成,则读取的值可能会出错,因为写操作可能在读操作之后完成。而当存储器映射到XINTF区域时,则不需要担心读写次序颠倒。因此,区域0通常用来与外设器件连接,而不是存储器。

如果用其他区域访问外设寄存器,为实现后紧跟读的写操作按正确顺序执行,可用如下方法:

●在写指令和读指令之间至少加3条NOP汇编指令。如果对代码分析发现流水线因其他原因会暂停,则添加的NOP指令可以少于3条。

●把其他指令移到读指令之前,保证写指令和读指令之间至少隔了3个CPU指令周期。

●使用-mv编译选项,那么写指令和读指令之间将自动插入NOP汇编指令。需要注意该选项的使用,因为只有在访问映射到XINTF区域的外设寄存器时才需关注写-读的顺序,而访问通常的存储器时不需关注读写顺序。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈