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

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

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

  一、引言

  在越来越发达的通讯世界里,新产品、新设备层出不穷,随之而来的问题是各产品与设备之间的接口也越来越多样化,虽然标准化组织定义了许多接口标准,比较著名的接口协议如USB,PCI等,但是由于各种接口的性能、价格、应用范围等因素的不同,新的接口协议仍旧层出不穷,如何设计接口一直是困扰着电子工程师,尤其是对复杂的接口协议,问题尤为突出。在国外,已经推出用于接口设计的专用软件。

  在过去的一年多时间里,我们对高性能串行总线IEEE-1394(2000A)做了研究,并设计了基于IEEE-1394(2000A)的物理层和链路层芯片。在芯片设计的过程中,我们对IEEE-1394(2000A)芯片中的PHY/link接口进行了研究和设计,并探寻到了一些接口设计的经验。现在我们以IEEE-1394接口为例,把心得拿出来与大家分享,希望能够起到抛砖引玉的结果。

  二、接口功能结构分析

  接口的主要功能就是使数据通过接口使之能够在不同模块或系统间自由流动,达到数据共享的目的。应用接口的原因多种多样的。通常的情况是由于模块之间协议不匹配使得我们采用接口。另外还有各式各样的原因使得我们不得不采用接口技术,如传输环境恶劣,需要接口把数据按照一定的协议使之能够安全地传输。这方面的一个典型的例子是GSM系统和CDMA的空中接口协议。而在IEEE-1394协议中,定义接口主要用于连接相同厂商或不同厂商的1394串行总线接口的物理层和链路层专用集成电路(ASIC),并为1394系统未来的升级提供支持。国内电子工程师应当在系统设计过程中借鉴这方面的经验。

  总而言之,随着各种新设备,新产品的产生,接口的广泛应用是不言而喻的,它需要我们针对不同的情况,高效快捷地解决数据互连的问题。

  在应用接口的环境中,情况总是这样:模块A的数据输入和输出采用一种接口协议M,而模块B的数据输入和输出采用另外一种接口协议N,因此数据无法在模块A和模块B之间直接传递,模块A和模块B也不能直接互连。

  通常的解决方法是这样的:在模块A和模块B之间进行加上一个接口。这样,接口把模块A发来的数据用协议M接收下来,再在接口中把数据分解出来,按照协议N组成数据包,把数据包发送到模块B,这样模块B就能够接收下到所有模块A发来的数据包。

  三、复杂模块接口的独立设计

  通常我们说某个接口复杂主要指的是接口连接协议很复杂,通常它必须高速处理很多寄存器和多种封装形式复杂数据的存取。对接口设计者来说,必须与接口连接模块的设计者充分地沟通,以得到足够的信息,才能设计出有效的接口连接模块A和模块B。这势必需要接口设计者和模块A、B的设计者多次沟通,以共同制定接口的设计方案。这样的沟通需要很多时间,并可能引起设计交接时的扯皮,所以必须制定设计小组之间的接口文档。这样复杂的工作流程很难保证设计的高效和高正确率。

  在设计实现中,我们更改了通常的接口设计结构,在这种结构的支持下,我们能够很快捷地设计出我们需要的接口,在进行很少的几次讨论之后,各模块的设计者都明白如何进行模块间的连接,使得我们在较短时间内设计出这个复杂接口。

  我们可以看到与一般意义的接口功能结构图的区别在于在接口与模块之间增加了一个发送接收缓冲区,用以存储接口在连接传输数据时需要模块提供的数据,包括相应寄存器的值和需要传送的数据包。

  在接口设计时只要和PHY模块设计者商定好,把需要的信息放在那个寄存器地址下,合作制定好寄存器和发送接收数据包列表就可以了。甚至可以由设计者直接向接口双方模块提供一个寄存器和发送接收数据包清单就可以。这样接口设计者可以有更大的发挥空间,由此使得接口设计者能够细致分析接口需求,设计出性能更好的接口。

  下面,我们以IEEE-1394总线物理层和链路层芯片间的PHY/link接口为例来讨论一下接口的独立设计。

  四、高性能串行总线IEEE-1394简介

  IEEE-1394A 它不仅仅是一项只能在某些领域使用的新技术,它有着广泛的市场空间,甚至有可能成为未来的总线标准。尽管IEEE-1394A目前还没有被PC厂商广泛采用,但是它在数字图像领域内的重要作用已经为世人所关注。作为一种数据传输的开放式技术标准,IEEE-1394A被应用在许多领域。目前,IEEE-1394技术使用最广的还是数字图像领域,支持的产品包括数字相机或摄像机等。然而IEEE-1394的潜在市场远非这些,无论在计算机硬盘还是在网络互连等方面,该协议都有其广阔的用武之地。总体上,IEEE-1394A具有廉价,占用空间小,速度快,支持热插拔,支持同步和异步传输等特点。

  从系统结构而言,IEEE-1394系统分为应用层、管理层,事务层、链路层(link)和物理层(PHY)几个部分。物理层和链路层由于相对稳定,性能要求较高,往往做成ASIC,其余部分通常由相关软件来完成。

  这里定义的接口用于连接相同厂商或不同厂商的1394串行总线接口的物理层和链路层专用集成电路(ASIC),并为1394系统未来的升级提供了支持。在IEEE-1394A中,PHY/link层接口单列成一章,足见其重要性。本文在IEEE-1394A的基础上,提出了这种接口的解决方案,性能经过验证达到了该协议中所要求的指标。

  五、复杂数字逻辑EDA简介

  EDA(EleCTRonic Design Automation),是在计算机平台上,利用软件开发工具进行数字,模拟,数模混合电子电路设计的方法,是电子设计领域中最具活力和最有发展前途的一项技术。其中数字逻辑设计已经比较成熟。与传统的设计方法相比,EDA工具缩短了设计周期,降低了开发成本,提高了设计的可靠性。

  IEEE-1394A的PHY/link接口的复杂逻辑设计,采用了先进的EDA技术,进行 Top-Down的设计。逻辑设计的结果通过FPGA/CPLD验证后,进一步制成ASIC。复杂逻辑的开发需要两部分工具:1)逻辑仿真和综合工具; 2)FPGA/CPLD布局布线工具;

  FPGA/CPLD都是可编程逻辑器件,生产厂家较多,型号各异。其中比较典型的就是Xilinx公司的FPGA(现场可编程门阵列)器件系列和ALTEra公司的CPLD(复杂可编程逻辑器件)器件系列。采用 FPGA/CPLD芯片进行系统开发,具有以下几个优点:

  可实现强大功能。随着VLSI工艺的不断提高,其单片逻辑门数已达到百万门级,内嵌多种特殊模块,所能实现的功能也越来越强,同时也可以实现系统集成。

  研发投入低。FPGA/CPLD芯片在出厂之前都做过可靠的测试,设计人员只需通过相关的软硬件环境来完成芯片的功能设计,所以节省了许多潜在的花费。

  开发周期短,采用EDA设计方法,设计人员不需要具备专门的IC深层次知识,在较短的时间内就可完成电路的逻辑设计和芯片的制作,快速将产品推向市场。

  可在线编程。基于SRAM/FLASH的FPGA/CPLD,用户可以反复地编程、擦除、使调试/升级都十分方便,亦可用同一芯片实现不同的功能。

  FPGA/CPLD开发工具包括软件和编程器,开发软件一般有芯片生产厂家提供,也有一些优秀的第三方软件可以选用。EDA开发软件包括输入工具、编译器仿真工具、综合工具、及布局布线、版图设计等工具。Verilog 高级硬件描述语言的使用,使逻辑设计输入更为简化,更为准确。

  在设计测试中使用的EDA工具有:硬件描述语言Verilog,仿真工具ModelSim,综合工具Synplify,布局布线工具Maxplus等。设计测试采用ALTERA公司的ACEX1K系列低价位的CPLD芯片,它具有3万基本逻辑单元多,位内嵌存储单元,基本可以满足一般的逻辑设计要求。

  六、接口结构功能简介

  接口分别属于IEEE-1394节点系统的物理层和链路层模块,是物理层和链路层的子模块,负责物理层和链路层的控制信号、数据包和状态报告的传输。物理层和链路层之间主要依靠Ctrl[1:0]、Dn[n:0]、LReq、LPS、LinkOn和SClk 六组信号线来进行传输控制信号和其间的多种数据包。

  链路层取得接口控制权时,可能需要传输的包括:读数据请求包(RdReg)、写数据请求包(WrReg)、立即仲裁请求数据包(ImmReq)、公平仲裁请求数据包(FairReq)、优先仲裁请求数据包(PriReq),和等时仲裁请求数据包(IsoReq)。

  物理层取得接口控制权时,除了可能传输总线上传来的所有的数据包,还可能传输状态信息包和读请求响应包。

  在1394总线系统中,物理层/链路层主要实现物理层和链路层模块之间的定时服务,数据请求,数据服务,仲裁请求和仲裁服务。

  Ctrl[1:0]是该接口的控制信号。相同的信号随接口控制权所属模块不同而不同。Dn[n:0]是接口的数据线,用来传输接口的数据包,也是该接口独具特色的一点。它支持S100,S200和S400和更高的速度,数据总线的带宽与总线速度相适应:在以100Mbps传输时,接口只用D[0:1]来传输数据,传输速度每增加100Mbps,传输数据时接口将多用两根数据线。由于项目要求系统传输最高速度为400Mbps,所以接口中共有八根数据线。这样,如果加快传输速度,只是物理层芯片模拟部分提高处理频率,在整个芯片数字部分,数据时钟频率保持不变,与串行总线速度相独立,使得未来的系统升级成为可能。LReq信号线来传输请求信号,包括读写寄存器请求和仲裁请求等,根据请求,物理层响应传输操作。

  LPS是用于指示链路层电源和功能是否正常。

  另外,协议中还规定了该接口配有Direct数字微分编码器(digital differentiators)选通端,用以增加对物理层和链路层芯片之间隔离的支持。根据接口模块独立设计的思想,该接口实现过程中,主要技术难点主要有以下几点:

  接口与上下层模块之间的握手协议需要仔细的设计。由于该接口传输的数据包大小不一,使接口同上下层模块内部的连接变得复杂,这部分协议没有提及,必须自己小心地设计该协议,目标是使上下层模块同接口的连接简明扼要,并且高效,尽可能地减少接口到相应模块的传输延迟,这样物理层和链路层的握手等动作所消耗的时间也将相应减少,得到更高的数据吞吐量。

[1] [2]  下一页


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