您的位置:首 页 >> 技术资讯 >> 接口与连接 >> 正文
IEEE 1394高性能串行总线接口物理层的行为分析和设计

中采网-电子资讯及技术频道      

    北京航空航天大学 胡瑛 张建国   
北京巨数数字技术开发有限公司 徐微    北京航空航天大学 夏宇闻

摘  要 作者在IEEE 1394协议物理层行为模型的编写过程中对其细节进行了深入的分析研究,把对协议物理层的理解转化成为精确的行为模型,并与链路层协议的行为模型和虚拟外围电路的行为模型进行了仿真,加深了对该协议的理解,修正了原标准中不严密和不准确之处。本论文对该通信协议芯片的设计和应用开发的工程师们具有参考价值。
关键词 IEEE 1394协议,ASIC设计, FireWire

一  引言

IEEE 1394标准是一种高速数据串行传输标准,它的原型是由Apple公司开发的“FireWire”(火线)。Sony 公司的 i.Link技术以及Texas Instruments公司 的 Lynx技术,虽然注册的商标名称不同,但本质上采用同一项通信协议,即 IEEE 1394。1995年IEEE 1394标准正式制定,当时规定的数据传输速率为100、200及400Mbps(Mega bits / per second),最大连接距离为4.5米,之后不久推出修正案IEEE 1394a,增强了原先IEEE 1394-1995标准。为了解决传输距离的问题并提升传输速率,又产生了新的IEEE1394b标准。这个由Intel公司所主导的新标准采用了更大的传输速率,由目前的400Mbps提高到了800Mbps、1.6Gbps,甚至是3.2Gbps。在传输距离方面,IEEE 1394b已经能够用5类线和塑料光纤传输到100米的距离。IEEE 1394b同时继承了IEEE 1394a特有的热插拔(PnP)、点对点的连接和同步通道的技术,这些技术都保证了IEEE 1394标准完全具有满足消费电子、PC及其周边应用需求的能力。 
二  IEEE 1394标准简介
    
(1) IEEE 1394标准主要功能

支持即插即用和热插拔,连接至总线的每个IEEE 1394节点都可以不需要主机系统的干预而自动参与配置进程。同时IEEE 1394总线上的数据传输是点对点的,不需要处理器和内存子系统的参与。与其他需要主机系统参与总线配置和数据传输的串行传输标准相比,IEEE 1394标准具有更高的独立性和自我管理功能。支持多种数据传输速度。IEEE 1394a标准支持100 Mbps、200 Mbps及400Mbps的数据传输速率。支持等时和异步传输。IEEE 1394标准同时支持等时和异步两种数据传输方式。等时事务的传输机制使得视频和音频数据流能够持续的占用自己所需要的带宽,从而保证了视频和音频数据流的连续正常传送。每条IEEE 1394串行总线最多支持64个节点地址(0-105),其中地址105被用作一个所有节点都可以辨认的广播地址,所以每条1394串行总线上实际可以连接105个物理节点。每个节点拥有256Tb的地址空间,总的地址空间为16Pb。最多支持1024条总线,采用CSR体系结构,最多可以支持总地址空间为16Eb。

(2) IEEE 1394 
    标准架构

IEEE 1394标准共有3层,包括事务层、链路层和物理层。IEEE 1394标准分层图如下:

事务层定义了请求及响应协议,并提供了节点间数据传输的三种操作:读取、写入和锁定。链路层主要完成数据包的发送、数据包的接收以及循环控制。物理层位于整个传输接口的最底层,分为线缆(Cable)环境和底板(Backplane)环境。线缆环境的物理层提供各节点物理层间的接口,进行串行总线状态的确定,执行总线仲裁,完成所有数据包的收发并实现接收数据包的解码和发送数据包的编码功能,同时还要完成对接收数据的本地时钟同步,并实现接收数据包的转发功能。

三  IEEE 1394a标准物理层功能简述

(1) 完成总线初始化

当总线重新上电,或者总线拓扑图改变了,即总线上有节点加入或者移出,再或者总线应用层要求发起总线复位,在这些情况下都会发生总线初始化。总线初始化过程由总线上各节点的物理层实现。
IEEE 1394总线上的数据传输不需要处理器的参与,具有自我管理功能。为了实现总线的自我管理,需要在总线初始化的过程中选择出总线上的一个节点作为根节点(root),根节点完成对总线的基本管理。初始化过程除了选择根节点,还要完成总线拓扑结构的识别,包括总线上各个节点的物理标识的分配,以及总线速度拓扑图的建立。

(2) 实现总线仲裁

IEEE 1394是串行总线,同一时刻总线上只能有一个节点发送数据包。总线仲裁机制保证了总线上同一时刻只有一个节点发送数据包,也保证了总线上每个节点的数据包发送机会。总线仲裁是物理层的核心,也是整个IEEE 1394总线接口的核心部分之一。
总线仲裁机制的基础是循环周期(Cycle Period)和公平间隔(Fairness Interval)。IEEE 1394总线的带宽被划分为一个个大约125us的循环周期。IEEE 1394总线在每一个循环周期内都预留了带宽给等时事务和异步事务,大约80%的带宽是预留给等时数据包的传输。在进行完等时事务的传输之后,余下的带宽是留给异步事务的。在每个循环周期内,异步事务的最小带宽是20%。如果等时带宽没有被完全使用,则剩下的带宽都是异步事务的。实现异步事务公平仲裁的基础是公平间隔。在每一个公平间隔内,每个有待发异步数据包的节点只能发送一次异步数据包,之后就不能再向总线请求发送异步数据包,当下一个公平间隔到来后才能再次请求发送异步数据包。
IEEE 1394总线共定义了4种仲裁服务:公平仲裁服务、优先级仲裁服务、立即仲裁服务和等时仲裁服务。公平仲裁服务用于异步数据包的传输,优先级仲裁服务用于循环开始数据包的传输和一个具有高优先级异步数据包的传输,立即仲裁服务用于传输确认数据包,等时仲裁服务则用于等时数据包的传输。

(3) 数据包的接收、发送和转发

物理层对所有从总线上接收到的数据包先进行数据选通解码,然后由本地时钟重同步后发送给链路层。
仲裁成功后物理层将物理层与链路层之间的接口控制权交给链路层(只要不进行数据包发送,物理层链路层之间的双向接口由物理层控制),链路层向物理层传输要发到总线上的等时数据包,物理层则将来自于链路层的等时数据包经过数据选通编码后从各个活动的端口发送到总线上,并不对数据包进行任何重组。物理层会参与异步数据包中的物理层包的组成和发送。非物理层包的异步数据包的发送过程与等时数据包的发送过程相同,物理层不会对数据包进行任何重组。
IEEE 1394总线支持不同速率的数据包的发送和接收,线缆环境下的数据传输速率为100Mbps、200Mbps或者400Mbps。同时IEEE 1394总线支持连接数据包的发送,在满足一定条件的情况下,可以在上一个数据包后连接发送一个数据包,连接数据包的速率可以不同。


四  IEEE 1394a标准物理层行为级设计
 
(1) 物理层设计概述

物理层行为级设计依据的设计规范为IEEE1394-1995标准和IEEE1394a标准中有关线缆环境下物理层的设计规范。物理层行为级设计实现各节点物理层间的接口,完成总线初始化,负责总线状态的确定,实现总线仲裁,完成数据包的发送、接收和转发,包括对数据包的编码和解码和所有接收数据包的本地时钟同步。物理层与链路层的接口设计遵守IEEE1394a标准的附录中的5a标准(定义了物理层芯片和链路层芯片的接口)。
物理层行为级设计结构图如下:(2) 物理层模块

物理层端口模块
IEEE 1394总线物理层设计的端口接口信号按照IEEE 1394标准中定义的端口接口信号来定义。物理层端口模块实现物理层间的端口连接信号,完成端口状态的确定。端口连接检测模块完成端口连接后的去抖动和偏压检测电路输出的过滤。
物理层与链路层接口模块
物理层与链路层接口按照IEEE1394a标准的附录中的5a标准进行设计。IEEE1394a标准附录中的5a标准定义了IEEE 1394总线接口物理层芯片和链路层芯片的接口。物理层链路层接口信号图如下:
       图 3 物理层链路层接口信号图
物理层链路层接口模块实现5a标准定义的接口,将物理层主模块要上传给链路层的数据和控制信号以5a标准定义的逻辑和时序输出到接口上,同时处理来自于链路层的异步请求和其它信号,并以5a标准定义的逻辑和时序接收链路层发出的数据包给物理层主模块。    
物理层主模块
物理层主模块是物理层的核心模块。在IEEE 1394a物理层功能简述中提到的物理层的功能都由此模块完成,包括完成总线初始化、实现总线仲裁和完成数据包的接收、发送和转发,在此不再赘述。
物理层寄存器模块
物理层的操作结果和操作过程的控制都是由标志寄存器和变量来实现的。物理层的所有寄存器和变量都在物理层寄存器模块中定义,部分端口变量也在此模块中定义。所有寄存器和变量的命名都参照原协议完成,尽量使得寄存器和变量的命名具有直观性和统一性。

(3) 物理层行为模型设计方法

物理层设计采用模块化的行为级设计方法,用VerilogHDL语言设计完成。物理层内部按照功能划分成几个模块,模块内部用状态机控制操作过程,每个独立的操作用函数(function)或者任务(task)实现,使用while语句来控制各个函数和任务的时序关系。模块间通过模块间变量赋值和模块间事件(event)触发的方式相互联系。端口模块、端口连接检测模块和物理层主模块运行的结果通过模块间赋值的方法设置物理层寄存器模块中标志寄存器的值,物理层寄存器模块中标志寄存器的值又是这三个模块状态机翻转的条件,由此寄存器模块实现了这三个模块的相互作用。物理层主模块不实现与链路层的通信操作,主模块用模块间事件触发的方法触发物理层链路层接口模块中的事件来发起对链路层的通信,同时用模块间变量调用的方式从接口模块获得来自于链路层的信息。物理层外部接口信号定义和信号时序严格按照硬件标准设计,从外部来看,整个物理层可以和任何有标准接口的RTL级或者行为级的物理层模块和链路层模块连接使用。
物理层行为模型与链路层的行为模型和虚拟外围电路的行为模型进行了联合仿真。物理层行为模型的各个模块中增加了很多显示语句,将模型的运行过程记录在指定的文件中,用查阅这些运行结果文件与看仿真波形相结合的方法进行调试。物理层行为模型通过了全面的仿真测试。

(4) 物理层改进

由于仲裁信号和数据信号都是通过差模信号完成传输,所以它们是合并在一起发送和接收的。因为是串行传输,只有两根信号线,不可避免出现仲裁信号与个别数据信号相同的情况,所以正确区分仲裁信号和数据信号成为物理层设计的关键部分。原标准没有明确给出仲裁信号和数据信号的正确区分方法,尤其是在数据包接收过程中,没有正确给出当开始接收数据包后如何区分数据信号和仲裁信号(包括复位信号)的方法,使得数据包不能正确地发送和接收。在数据包开始接收后,由于个别数据信号有可能与仲裁信号相同,物理层无法根据之后收到的信号内容来判定究竟是数据信号还是仲裁信号,只能根据接收到信号的保持时间来判定。物理层接收数据包时首先将接收到的数据写入数据包缓存器中,写的位置由写指针控制。与此同时,物理层利用读指针逐一从缓存器中读出数据向链路层发送。数据包发送结束后发送节点要发送DATA_END(表明没有连接数据包要发送)或者DATA_PREFIX(表明还有连接数据包要发送)仲裁信号到总线上,并且必须保持一段时间让接收节点有时间来完成对链路层的数据包传送和正确地判断这是仲裁信号。在仲裁信号保持的这段时间写指针不再更改,读指针继续读数据,读指针必然会在数据包读取完毕后追上写指针,此时物理层就可以判定此数据包接收完毕,当前发送的是仲裁信号,并根据仲裁信号内容确定状态机的翻转。用这种方法同样可以正确接收空数据包和在数据包接收过程中正确地接收复位信号。此外在自标识过程的状态机中原标准给出的各节点之间速度能力信号的发送和接收的时序不正确,使得各节点不能正确判断相邻节点的最大速度能力。在设计时通过更改时序和增加时序控制实现了速度拓扑图的建立。在物理层设计过程中做了大量的修正和调试工作,以上是对物理层改进的两个方面。

五  设计意义

(1) 为物理层的RTL级设计提供明确的设计规范。在行为级设计过程中,最重要也是最耗时的工作就是对原标准的错误进行修正。物理层行为级设计的完成表明对IEEE 1394总线接口的物理层标准的精确分析和修正的完成。在行为级设计中,物理层内部各个信号及寄存器的逻辑和时序关系已经相当明确,这就为IEEE 1394总线接口物理层芯片的设计提供了明确的设计规范。
(2) 为链路层设计提供底层仿真环境。物理层行为级设计的接口信号时序完全按照标准中的规范实现,包括物理层端口信号的时序和物理层与链路层接口信号的时序。其中物理层与链路层接口完全按照IEEE1394a标准附录中的5a标准实现。5a标准明确定义了IEEE 1394物理层芯片和链路层芯片之间的接口,这样物理层的行为级设计就可以为IEEE 1394链路层芯片设计提供底层软件仿真环境,大大减少了链路层设计的仿真测试程序编写的工作量。与硬件仿真相比,用EDA工具进行软件仿真可以方便查看各个信号在仿真时间内的变化情况,所以在链路层芯片的设计初期以IEEE 1394物理层行为级设计为基础的IEEE 1394软件仿真环境要比硬件仿真环境效率高很多。

六  总结
IEEE 1394标准是一种发展前景看好的高速数据串行传输标准。为开发自有知识产权的IEEE 1394芯片做必要的技术储备,我们编写了IEEE 1394物理层行为精确的Verilog模型,与链路层行为精确的Verilog模型[注1]和管理层[注2]与外围设备(热插接、复位等)行为的虚拟Verilog模型一起进行了全面细致的仿真,从而完成了对该标准的深入理解和修正等工作,为物理层的RTL级设计提供了明确的设计规范,也为链路层RTL级设计提供底层测试仿真环境。
[注1] 将由另外一篇论文《IEEE 1394高性能串行总线接口链路层的行为分析和设计》介绍
[注2] 将由另外一篇论文《IEEE 1394高性能串行总线接口管理层的行为分析和设计》介绍

七  感谢 

本项目得到北京市科技计划项目基金国家集成电路设计北京产业化基地关键技术研究项目的资助,特别表示感谢。
参考资料

1.IEEE Std 1394a-2000
2.IEEE Std 1394-1995
3.《FireWire系统体系》(第二版)Don Anderson 著 姜汉龙译  
中国电力出版社 2001年3月
4.《Verilog数字系统设计教程》夏宇闻编著 北京航空航天大学出版社 2003年6月  

来源:
  相关文章链接
关于中采网成长历程广告服务版权及商标法律声明隐私申明客户反馈工作机会网站建设网络推广手机网站 商业域名友情链接网站地图

常年法律顾问于波律师著作权与商标声明隐私申明法律声明电子词典互动问答网上黄页网址大全

本频道所有文章或图片的版权和著作权均归作者本人所有,如有疑问请电邮至:sz#cnebuyer.com
Copyright©2000- CNeBuyer.com All Rights Reserved 中采网 版权所有 ICP备09029428号

中国互联网不良信息举报中心

中国互联网网络垃圾举报中心

做文明网,传播文明

深圳市网络警察在线报警平台入口