您当前的位置:五五电子网电子知识单元电路接口电路FX2的波形描述符设计及应用 正文
FX2的波形描述符设计及应用

FX2的波形描述符设计及应用

点击数:7520 次   录入时间:03-04 11:40:50   整理:http://www.55dianzi.com   接口电路

摘  要  本文介绍了符合USB2.0协议的FX2系列芯片利用可编程控制接口GPIF与外设进行高速数据传输的基本机制,及其软配置波形描述符的实现原理,并详细阐述了波形描述符的结构和各字段的含义,最后给出了据此进行波形描述符设计的基本方法和实例。
关键词   FX2  GPIF  波形描述符  USB2.0协议 
  
1 引言 
EZ-USB FX2系列芯片是CRPRESS公司推出的针对USB2.0规范的高速外设控制器,它提供了对USB2.0的完整解决方案。该芯片包括带8KB片内RAM的高速CPU、16位并行地址总线+8位数据总线、I2C总线、4KB FIFO存储器以及通用可编程接口(GPIF)、串行接口引擎(SIE)和USB2.0收发器。在代码的编写上,它与8051系列单片机兼容,且速度是标准8051的3-5倍。其中,通用可编程接口(GPIF)是最引人注目的一个特点,正是通过这种机制,它才能够实现外设与主机的高速(480bps)数据传输。通用可编程接口由用户编写的波形描述符(wave descriptor)驱动,所以说波形描述符的质量是能否有效的利用该芯片实现高速数传的关键。在固件的设计过程中,该部分的设计一般利用公司给定的软件如GPIFDesigner和EZ-USB Control Panel来完成,考虑到其复杂性和重要性,公司不建议用户在字节这一层上进行修改。然而,在实际的固件编写过程中,为了提高GPIF的执行效率,同时更清楚地理解固件驱动程序,设计时需要对其有更深入的了解。本文针对该部分设计,详细阐述其实现原理,并给出了具体实例加以说明。
2  波形描述符的实现机制
波形描述符通过硬件接口GPIF实现数据的输入输出。GPIF是FX2端点FIFO的内部控制器。在这种方式下,接口内核可产生6个控制输出端(CTL0-CTL5)和9根线的地址(GADR[8:0])输出,同时可以接收6个外部输入(RDY0-RDY5)和2个内部输入。FX2有4个波形描述符控制各个状态,它们分别是单次读、单次写、FIFO读和FIFO写。这些波形描述符可以被动态地配置给任何一个端点FIFO。例如,一个波形描述符可以配置为写FIFO,而另一个配置为读FIFO。在程序中进行GPIF接口的数据操作时,GPIF将自动启动相应的波形描述符。FX2的固件程序可以把这些描述符配置给四个FIFO中的任意一个,配置后,GPIF将依据波形描述符产生相应的控制逻辑和握手信号给外界接口来满足向FIFO读写数据的需要。GPIF的数据总线既可以是单字节宽的(8位FD[7:0])也可以是双字节宽的(16位FD[15:0])。每个波形描述符包含了S0-S6 7个有效状态和一个空闲状态,在每个有效状态对应的时间段里,经过预先设定后,GPIF可以做以下几件事情:(1)驱动(使为高或低)或悬浮6个输出控制端;(2)采样或驱动FIFO的数据总线;(3)增加GPIF地址总线的值;(4)增加指向当前FIFO指针的值;(5)启动GPFIWF(波形描述符)中断。除此之外,在每个状态,GPIF可以对以下几个信号中任意两个进行采样,它们是(1)RDYX输入端;(2)FIFO状态标志位;(3)内部RDY标志位;(4)传输计数中止标志位,然后把这两个信号相与、相或或者相异或,根据结果跳转到其它任意一个状态或延迟1-256个IFCLK个时钟周期。当然也可以根据一个输入端的信号进行跳转或延迟。每次描述符在执行完毕后必须跳转到空闲段才能结束。在GPIF控制其总线进行数据传输时,可以不用CPU的干涉,直接通过内部FIFO与USB总线进行数据交换,这保证了高速数据通道的畅通,其内部机理如图(1)所示。在GPIF接口上同一时刻只能有一个波形描述符在执行,要更换波形描述符必须要等到上一个描述符执行完毕。

 

3  波形描述符的含义
GPIF的4个波形描述符具有相同的数据结构,它们被放在一段连续的地址空间0xE400-0xE47F,在编写固件程序时,一般放到同一个数组中,如下图(2)所示。



对应于GPIF的8个状态,每个波形描述符有8个具有相同结构的控制字段。控制字段包含LENGTH/BRANCH、OPCODE、LOGIC FUNCTION和OUTPUT四个字节,它们分别表示了在本时间段内的延时(或跳转)设置、操作码、要执行的逻辑函数和总线的输出状态。例如,上图中wave 0的第一个字段是0x0F 0x01 0x37 0xC7。对非判决点(Non-Decision Point)和判决点(Decision Point),其含义也有所区别。
对于非判决点(DP = 0),它们代表的意义如下表1所示:


对于判决点(DP = 1),它们的意义如下表2所示:

下面对每一个字节的定义进行详细的说明:
LENGTH/BRANCH  对于非判决点(DP = 0),该字节定义了在此状态停留的IFCLK的时钟周期的个数。但如果值为0的话则表示停留256个IFCLK个时钟周期的时间。对于判决点(DP = 1),该字节定义了逻辑函数所要跳转到的状态。1BRANCH:如果逻辑函数的结果为1时跳转到的状态序号,从0到6或7(空闲态);0BRANCH:如果逻辑函数的结果为0时跳转到的状态序号,从0到6或7(空闲态);
OPCODE  该字节定义了一些状态特征。DP :定义是了该状态是判决点状态还是非判决点状态,=1为判决点,=0为非判决点。DATA:定义数据总线的状态。进行写操作时,=1:驱动数据总线输出,=0:三态(不驱动数据总线);进行写操作时,=1:对数据总线上的数据进采样并存储数据,=0:不采样数据总线上的数据。NEXT:在这个状态的开始,指针是否指向OUT FIFO的下一个字节。=1:把OUT FIFO中的下一个数据移到顶部;=0:不移动数据。当波形描述符应用于IN FIFO时NEXT 位不起作用。INCAD:决定是否增加GPIF地址总线上的地址。=1:表示在这个状态的开始把GPIF地址总线上的地址加1;=0:不增加地址信号。GINT:决定是否在这个状态过程中产生GPIFWF中断。=1:表示在到达这个状态时产生一个GPIFWF中断信号(在INT4上);=0:表示不产生中断信号。
LOGIC FUNCTION 该字节只用于判决点的波形描述符。它指定了一个逻辑函数和应用于这个逻辑函数的输入信号(TERMA 和 TERMB)。其结果将决定采用什么样的跳转方式,跳转方式已在LENGTH/BRANCH中指定。TERMA 和TERMB:决定选择什么输入信号,从000到101分别代表RDY0到RDY5,但是若READYCFG.5=1,则101代表选择传输计数器的溢出信号。剩下两种选择是FIFO的标志位和INTRDY。 LFUNC:对输入信号采用的逻辑函数,从00到11代表到逻辑函数分别为'与'、'或'、'异或'和"非"。  在每个GPIF时钟的上升沿对输入信号进行采样。 在下一个上升沿到来前,GPIF根据选择的逻辑函数对输入信号进行计算,由结果确定跳转到哪一个状态。
OUTPUT  该字节决定了在进入此状态后GPIF的6个控制信号(CTL0-CTL5)的状态。OEn:如果TRICLT = 1,则该位决定了是否驱动CTLx信号。=1:驱动CTLx;=0:使其为三态。CTLn:决定了该状态中CTLn上的电平。=1:输出为'高电平';=0:输出为'低电平。如果在寄存器GPIFCTLCFG中CTLx被设置为1,则输出方式位集电极开路;如果在寄存器GPIFCTLCFG中CTLx被设置为0,则输出方式为CMOS电平。
4  波形描述符的设计与应用
 设计波形描述符主要就是根据具体的硬件接口设计出合理有效的控制字节,一般利用公司给定的软件GPIF Designer或EZ-USB Control Panel来完成。这两种软件都具有可视化的界面,操作简单,最终形成一个名为*.c关于波形描述符的源文件。波形描述符的源文件主要由两部分构成,即初始变量(WavEDAta、FlowStates和InitData)的定义和GPIF初始化函数GpifInit( )的实现。在初始化函数中主要做的就是配置与GPIF相关的寄存器,同时把波形描述符数据填入相应内存空间0xE400-0xE47F。与GPIF相关的寄存器主要有IFCONFIG、GPIFIE、GPIFADRH和GPIFREADYCFG等,具体的配置方法见参考文献【1】。对设计者而言,这种方法无论是设计还是调试过程中的修改都缺乏透明度,这给固件的设计造成了一定的困难。为了更灵活有效地操作GPIF,还需要能从字段的角度对其进行修改。
 下面是一个GPIF与高速采样芯片连接的例子。图(3)是执行图(1)所列波形描述符中的wave2时接口的工作时序。执行这一波形时,每次读一个数,数据读完后启动下一次转换。把wave 2的第三个字段0x01 0x00 0x36 0x00改为0x01 0x0a 0x32 0x00后其输出时序变为图(4)所示的形状。此时,每次读两个通道的两个数,一个数据读完后,内部FIFO地址自动加1,在读第二个数据后通过上升沿启动下一次转换。从图上可以清楚的看出各字段和输出逻辑的对应关系。
               
 
5  结束语
GPIF的灵活性源于其控制时序即波形描述符的软件可编程特点,所以正确设计波形描述符是利用该接口实现其高速数传功能的基础。但是要提高数据传输的效率还必须把波形描述与具体硬件外设电路结合起来,根据实际的时序配合关系,去除多余的状态,使GPIF的性能到达最优。





本文关键字:暂无联系方式接口电路单元电路 - 接口电路

《FX2的波形描述符设计及应用》相关文章>>>