IEEE1394协议是为多媒体应用制订的标准数据通信协议。该协议的主要特色是能适应不同的网络节点数量以及能增加总线服务通信协议。物理层传输基于光纤,因此能用于要求高带宽传输的通信服务。这使得该协议可以为汽车提供所有的嵌入式解决方案。IEEE1394协议提供的串行总线带宽通常为2i—98.304Mbit/s,其中i的值可以取0、1、2、3、4、5[58]。
IEEE1394和早期讨论的SAEJ1850协议一样,通信时无需人为控制。然而,两者的相似仅限于此。IEEE1394协议的重要特色是具有分布式结构。这意味着所有的网络节点能独自完成各自不同的功能。因此,当发生部分系统或者串行总线从网络上断开的情况时,子系统仍能独立完成剩余网络的功能。
如上文所述,IEEE1394具有分布式的结构,管理功能交由各网络节点完成。协议栈由物理层、链路层、事务层以及串行数据管理层组成。每一层都有需要执行的服务程序和功能。图4-60描绘协议栈的这种结构。
图4-60 IEEE1394协议栈结构
IEEE1394支持两种类型的数据传输[59]:异步数据传输和同步数据传输。异步数据传输同其他一些协议,如SAEJ1850提供的相似,主要用来保证数据传输的准确性。传输的信息是一些少量的、用来实现控制和设置目的的数据。
同步数据传输用来传输大量的数据。在这种传输方式中,可靠性不是主要的评判标准,速度和带宽才是主要的考虑因素。信息每125μs以报文的形式送出。视频流是这种传输方式的一种典型应用。(www.xing528.com)
这些传输方式都用到了物理层和链路层。链路层的作用是寻址,数据校验以及报文分组和拼合。物理层主要将二进制数据转换成可以在信道里传输的电气信号,有时也需要仲裁多节点同时想要传输时的总线冲突。当进行等时数据传输时,数据直接送给数据链路层。异步数据传输时,就额外需要传输层来帮助传输。以报文形式传输的数据有一个报头,包括接收方地址和数据类型这些信息。数据校验以循环冗余检验(CRC)的方式实现。物理层、数据链路层以及传输层以管理串行总线的串行总线管理(SBM)方式交换信息。对使用者来说,编写需要大量代码的服务程序比较困难,因此,为了使得程序编写更容易,IEEE1394协议中另外有一个应用程序接口(API)层。同时,还规定了一个硬件抽象层(HAL),作用是让API、事务层以及串行总线管理与链路层管理器间相互独立,以使各层能在不同的嵌入式系统中使用,如图4-61所示。
图4-61 嵌入式系统的IEEE1394协议栈
寻址通过64位的寻址系统来完成[60]。64位地址中的高16位代表了节点的ID。其中10位作为总线ID保留。因此,最多可以有1023条总线。其他的6位代表总线的实际的物理地址,因此,每条总线上最多可容纳63个节点。剩余的48位作为存储空间的外部地址使用。
协议配置过程分为3步[61]:总线初始化、结构树辨识和自辨识。
IEEE1394的一个特色是支持即插即用模式。当增加一个节点,网络就会重启。一旦发生重启,所有的节点开始重新自我辨识。因此,就会重新定义支路节点、根节点和叶节点。这个过程一旦结束,根节点会再分配所有其他节点的ID。数据传输的间隔是125μs。根节点会发出一个周期开始的报文来表示每一个数据传输周期的开始。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。