您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术接口功能结构及复杂模块接口的独立设计 正文
接口功能结构及复杂模块接口的独立设计

接口功能结构及复杂模块接口的独立设计

点击数:7436 次   录入时间:03-04 11:59:12   整理:http://www.55dianzi.com   嵌入式系统-技术

  接口传输多种格式和功能的数据包,传送不同的数据包时,物理/链路层接口的动作和响应都不同。如果处理不当,会极大地增加了接口实现时的复杂度和规模。

  规范定义的Ctrl和Dn定时匹配成为很主要的矛盾。接口依靠Ctrl[1:0]来传输和识别控制信号,以产生相应动作。在物理层把接口控制权交接给链路层时,协议中要求不超过两个周期。但在系统中,各层发送和识别控制信号需要一定的时间,接口必须尽可能少地减少这个时间,使响应模块识别控制信号。

  以下将针对以上几个难点简述我们在项目中的实现方法。

  接口和物理/链路模块的握手协议

  七、接口和物理/链路模块的握手协议

  物理层/链路层模块和接口的握手协议在IEEE-1394A中没有定义,给设计者留下了思考的空间。1394总线系统本身旨在提供一种高速的数据传输方式, 而物理/链路接口处于所有数据流必经的通路,所以在设计协议时,我们的目标是尽可能地减小数据流通过接口的延迟,以避免接口的“瓶颈”效应。

  基于以上的考虑,我们考虑了这种方案:

  (注:由于物理层和链路层模块处于对等的地位,限于篇幅,我只描述物理层模块的情形,链路层模块以此类推。)

  在上述方案中,各引脚功能定义如下:

  Preq_En[1:0]是物理层数据包传输使能位,而且代表请求的优先级。2 'b00代表无请求,2 'b01代表该请求具有最高的优先级,可以终止现在的正在操作的请求,2 'b10代表请求优先级较低,它将等待接口正在处理的请求完成后再执行。

  Preq_Data[31:0]是物理层请求数据,包含请求类型,包长度,速度及相关参数。0~15位请求相关数据,16~31位数据包长度及格式信息,最大情况支持65536个32位字节组成的数据包(可以容纳协议中最大的数据包)。

  Preq_Pkt[31:0]是物理层数据包输入端口,一次能够输入一个32位字节。

  PktUpdt_Req是数据包输入端口数据更新请求位,物理数据包输入端口上的字节已经传输完毕,请求更新数据以便传输。

  Link_Pkt[31:0]是链路层数据包输出端口。

  Link_Pkt_On是链路层数据包到达指示。用以判断链路层的新数据是否被传输完毕。

  INTF_Busy是接口物理层模块忙指示,表明此时接口忙。用以判断总线上的数据包(物理层接收的数据包)是否可以向链路层传输。

  在总线数据包即将向链路层传输时,接口先置位INTF_Busy,阻止在此操作的同时,阻止其他的总线数据包向上传输。与此同时,置位Preq_En,设置请求使能和优先级。接着当接口物理层模块做好准备后,置位PktUp-dt_Req,物理层模块检测到该信号置位后,立即把数据放在Preq_Data上。接口物理层层模块传输完后,再次置位PktUpdt_Req以得到数据包的下一个字节,同时接口内部计数器加一,在重复该过程,直至该数据包被传输完毕。当链路层有数据包要求传至总线上时,接口物理层模块转交总线控制权,同时置位INTF_Busy,阻止总线上的数据包上传。当接口物理层模块接收到数据包的第一个32位字节后,置位Li-nk_Pkt_On,同时置位Link_Pkt。物理层模块检测到Link_Pkt_On后读取Link_Pkt上得到第一个32位数据包,计数器加一,重复此过程,直至该数据包接收完毕。

  在实际的应用过程中,我们采取了提前准备数据的方法,在每个32位字节最后一位开始传输的同时,发出更新数据的请求,使数据包从物理层模块传输到链路层模块的过程中,基本上没有握手协议上的延迟。

  设计之初,我们曾经考虑过把请求数据位用一个控制数据包代替,并把所有数据一次性地读到一个ram中去,并用ram的读写协议进行操作。

  容易看出,改进后的协议在处理大的数据包时显现出了无法比拟的优势,付出的代价是增加了握手信号的数量,由于这些信号线处于模块内,相对增加的成本微乎其微。

  八、多个数据包处理状态机化简合并

  在协议中规定接口必须完成传输多种格式和功能的数据包。对各种数据包,其传输方式也各不一样。类似地,对接口物理层模块的每种请求相应的操作也都不一样。我们考察各种请求操作流程后,我们对这些流程进行的多次化简归纳,最后采用了如下这种状态机。

  在接口物理层模块和链路层模块实现时,我们采用了一个主状态机和一个从状态机的结构。

  采用了主状态机和从状态机的结构,不仅很大程度上简化了状态机,而且是结构清晰,其次操作相近的仲裁请求包被合为一类,并依据请求类型来编写从控制状态机。在实现过程中,在主从状态机的前提下我们开始使用另外一种依据Ctrl控制线的状态编写从控制状态机。从综合后的结果来比较,现在的这个改进状态机节省了50%以上的资源。从这点看,可见同样的功能,不同的设计会产生截然不同的效果。

  九、Ctrl和Dn定时匹配

  在IEEE-1394A协议中要求支持数字微分编码器(digital differe-ntiators),所以接口引入了微分编码延迟。此时,从数字信号产生到接口相应信号线上的延迟如果超过半个SClk时钟周期,可以依据IEEE1394-2000A协议推断出:对应的接收模块不能准确地接收到有效信号。所以数字微分编码器的设计成为了整个设计的“瓶颈”之一。

  十、结束语

  把复杂协议内部模块间的接口独立出来进行设计,是一种加快和简化设计过程、提高设计可重用性和可维护性的好方法,值得重视和推广。目前国外产品一般采用锁相环(PLL)技术,把外部时钟倍频至SClk的八倍频以作为系统的工作频率,而本接口设计只有部分电路用了SClk的两倍频,在很大程度上降低了对元器件的要求和系统的功耗。

  PHY/link接口在IEEE-1394协议中具有非常重要的作用,对芯片处理速度的提高有较大的影响。本文通过对该接口的分析,提出了解决该接口设计难点的方案。以上方案经过FPGA布线后仿真测试,证明是切实可行的。



上一页  [1] [2] 


本文关键字:接口  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术