复杂模块接口的独立设计

网友投稿 250 2022-10-24

复杂模块接口的独立设计

一、引言

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

二、接口功能结构分析

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

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

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

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

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

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

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Kubernetes1.91(K8s)安装部署过程(一)--证书安装
下一篇:feign 调用第三方服务中部分特殊符号未转义问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~