ajian
驱动牛犊
驱动牛犊
  • 注册日期2001-08-21
  • 最后登录2005-04-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3804回复:5

1394规范概述

楼主#
更多 发布于:2001-12-12 13:58
(自己翻译的英文版,如有错漏敬请原谅)

3.概述
3.1 节点和模块结构
串行总线结构是根据节点定义的。一个节点是一个可寻址的实体,它可以被独立的复位和识别,一个简单的模块是由不止一个的节点组成,一个单一的节点是由不止一个的单元(unit)组成。如图3-1
 
一个模块是由一个或多个的节点组成,能独立的初始化和配置。注意模块是一个物理包装的概念,而节点是一个逻辑地址概念。
3.2  拓扑结构
串行总线的物理拓朴结构被分成两个“环境”,如图3-2。一个是“底板环境”,一个是“电缆环境”。
 
3.2.1 电缆环境
电缆环境的物理拓扑结构是一个有有限支路和扩展的非循环的网络,非循环意味着不支持闭环路。
3.2.2 底板环境
底板环境的物理拓朴结构是multidrop总线。媒介由两个运行在底板长度的单端导线组成。沿总线分布的导线允许节点插入总线。支配模式(或“wired-OR”)逻辑允许所有节点声明总线。
3.3 寻址
串行总线根据CSR结构给定了一个64bit固定的寻址方法,前16bit代表node_ID。这样就为64k的节点提供了地址空间。串行总线将node_ID分为两小段,高10位是bus_ID,低6位是physical_ID,每一段都保留了全1值以做它用,所以提供的寻址范围是1023条总线,每条有63个独立的可寻址节点。这个标准在节点中是继续的,2 字节(256千兆字节)分成了,初始化寄存器空间(2048字节保留为中心CSR结构资源,指定串行总线的寄存器和一个ROM ID空间的第一个1024字节),初始化单元空间(为指定节点的资源保存),私有空间(为本地节点使用保存)和初始化存储器空间。如图3-3:
3.4 协议结构
串行总线协议被描述为一组三个层叠的层。如图3-4:
a) 处理层定义了一个完全的请求-响应(request-respinse)协议来执行总线处理请求来支持CSR结构(read, write ,lock操作)。
b) 连结层为处理层提供了一个应答的数据报(一个单行的伴随请求证实的数据传送)。
c)物理层有三个主要的功能
1) 将连接层的逻辑符号转换为不同串行总线媒介上的电气信号
2) 通过提供仲裁服务保证一次只有一个节点传送数据
3) 为串行总线定义机械接口
电缆环境还提供一个数据再次同步和转发服务以及总线自动初始化。
3.4.1 数据传送服务
这个标准支持两种基本的数据传送服务:
a)异步数据传送
b)同步数据传送
    异步(任何时间)数据传送服务提供了一个包发送协议来发送不定长包到一个确定地址并返回一个acknowledgement。同步数据传送服务提供了一个广播包传送协议在等长时间隔内传送不定长包。如图3-4,异步数据传输服务使用处理层,而异步数据传输服务由应用程序驱动。
3.5 处理层
串行总线上的节点间的数据通过三种不同的处理类型被传送:
a) 读-----数据在一个指定的地址在一个响应者中被传送给回一个请求者
b) 写-----数据从请求者被传送到一个或更多响应者中的一个地址
c) 锁----数据从请求者被传送到一个响应者,在响应者的一个指定地址处理数据,然后传送回请求者
处理层是多线程的,因为在相应的响应返回以前一个请求者可以开始多个处理。这些叫做分开-响应处理。
3.5.1 处理层服务
a) 请求----由一个请求者使用的开始处理的原语
b) 指示----用来通知正在输入请求的响应者的原语
c) 响应----由响应者用来返回状态和可能的给请求者的数据的原语
d) 证实----用来通知请求者相应的响应到来的原语
如图3-5:
3.5.2 锁子命令
3.5.3 子行为队列独立性
3.6 连接层
连接层提供了一个半双工数据包发送服务。发送一个简单包的过程被称为子行为,并且在串行总线连接层中有两种类型:
a) 一个异步子行为――一个数据的可变数量和处理层信息的一些字节被传送给一个明确的地址以及一个确认被返回。
b) 一个同步子行为或“channel”(信道?)――一个数据的可变数目被以一个定期间隔传送给以一个简单的地址并且没有确认。
这个子行为有三个部分
1) 仲裁序列
2) 数据包传送
3) 确认
3.6.1 连接层服务
连接层服务也有请求、指示、响应和证实服务源语:
a) 请求――那个被连接请求者用来发送一个数据包给一个连接响应者的原语。
b) 指示――被连接响应者执行的包接收。
c) 响应――由连接响应者完成的一个确认发送。
d) 应答――由请求者完成的确认的接收。
3.6.2 连接和处理层的相互作用
处理层和连接层以一种最优化总线的使用的方式相互作用。
a) 写处理可以以两种不同的方法实现:统一的或分离的
b) 分离处理和同步子行为在一定环境下可以被连接。
c) 一个忙的处理层可以加强在对等节点上有限的流程控制。
3.6.2.1 统一处理
3.6.2.2 分离处理
3.6.2.3 子行为链接
3.6.2.4 重试
3.6.3异步仲裁
只要一个连接层希望尽可能快的传送数据包时,异步仲裁被使用。有两种异步仲裁类型:
a) 公平仲裁:保证所用参与的节点公平的访问总线,这阻止在总线上拥有高的自然优先权的节点支配传输。
b) 紧急仲裁(只有在底板环境中获得):支持有较少延时的需要更经常使用总线的节点。必须小心使用,因为正在使用紧急仲裁的多个节点可能彼此相互干扰。
3.6.4 同步仲裁
异步仲裁适合于那些不要求高带宽或低等待保证或一个精确的定时参考(比如少于1μs)的节点。但是,那些与数字声音或仪器有关的数据使用同步仲裁更有效。
通过对一个维持普通时钟源的cycle master给予最高优先级访问,同步服务可以被提供,而不扰乱基本仲裁协议。
3.7 物理层
物理层有三个基本功能:传送接收数据比特,仲裁和提供电气、机械接口。
3.7.1 数据比特传送和接收
3.7.2 公平仲裁
3.7.3 电缆物理层
电缆物理层逻辑上由四个主要部分组成(如图3-21):
a) 端口,提供电缆媒质接口。
b) 仲裁逻辑,提供到总线的访问方式。
c) 再同步器,从已编码的数据位取得数据脉冲,并产生与本地时钟同步的数据位。
d) 编码器,或者取得被这个节点传送的数据(如果这个节点赢得仲裁)或取得被再同步器接收到的数据,并用数据脉冲格式将其编码。
3.7.3.1 电缆配置
电缆配置经历三个阶段:总线初始化,树识别,和自识别。
3.7.3.2 普通仲裁
3.7.3.3  速度信号传输法
3.7.3.4 电缆介质接口
电缆介质接口是一个物理连接的实现,电缆介质接口有三个主要部分:
a)电缆的电气接口。由以下两部分组成:
1) TPA 和TPB:两个低电压,低电流,双向差动信号用来携带数据比特或仲裁信号。
2) VP和VG:一对为物理层重复信号提供电流的电源。节点能提供或下拉电源,在一个总线上可以有多个电源。
b)电缆连接器。小而粗,提供六个电气接点加一个屏蔽。
c)电缆介质,有两个屏蔽的很好的高阻抗比信号对(意味着驱动一个适当的信号需要的电力很少),和一低阻抗比的电源对。
3.7.4 底板物理层
底板环境是multidrop总线。有两个信号:Data和Strb,在一个广播总线上的所有节点之间是共享的。典型地,为了确保正确传输特征,总线参数必须紧密控制。
3.7.4.1 底板仲裁
底板环境没有电缆环境的初始化要求,因为拓朴结构固定为广播总线(没有转接器),并且物理地址可以被主机地板设置。(例如,带有一个内置槽标志符装置)。
底板仲裁方案是一个支配-模式媒介上的仲裁号的按位比较。它依赖于两个假设:
a) 如果任何节点声明了总线,则一段时间以后,所有节点察觉总线为已声明的(“wired-or”和“open-collector”都是这种情况的别名)。
b) 每个节点有一个保证唯一的仲裁号。
3.7.4.2  紧急仲裁
3.7.4.3 底板媒介接口
3.8 总线管理
串行总线管理描述了协议、服务和操作程序,由此一个行使管理级控制的节点能够管理总线上其它节点的操作。在所有环境中,节点控制者部件如CSR或ROM结构等,被用来构造和管理在一个独立节点上的活动。
在电缆环境中,有两个管理实体被定义,同步资源管理者和总线管理者。

最新喜欢:

TenTen
kexin
Longhai
驱动牛犊
驱动牛犊
  • 注册日期2001-11-27
  • 最后登录2002-01-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-12-12 14:44
我以前看过一些关于1394的资料,说1394所具有的而USB没有的优点,就是能实现点到点的传输,而不需要主机的干预,这是如何实现的呀?
山重水复疑无路.
Master_Yi
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2004-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-04 17:58
其实很简单,只是因为USB做的不好才不能实现.两个设备挂在总线上(或许更多),通过总线仲裁,决定谁可以发送,至于发到哪里,在数据包里说明就是了.而USB很弱智,一定要一个主控器,其他都是SLAVE.所以两台机器(里面都是host control,就是说都是MASTER),所以是不能直接连接的,而1394就没有这一限制.
我读书少,不要欺负我呀!
cathyLH
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2004-08-28
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-05 08:54
USB和1394最根本的区别在于两者的Toplogy不同,进而决定了USB只能采用HOST-SLAVE的方式而1394可以作NODE-NODE的DMA传输
wombatj
驱动牛犊
驱动牛犊
  • 注册日期2001-12-01
  • 最后登录2002-04-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-08 15:25
首先吧,我不知道usb是怎么工作的,
但是1394其拓扑中也是有一个根结点的呀?
1394要仲裁,不也是通过此根结点实现的?

那1394直接点-点通信又怎样实现呢?


Master_Yi
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2004-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-04-10 15:20
1394 物理上是总线结构,逻辑上是树状结构.总线上所有的传输均须经过根节点的仲裁.然后数据该传到那里就传到那里,根节点只须决定谁可以使用总线.任何一个1394设备都有可能成为根节点,在总线上大家都是平等的.
我读书少,不要欺负我呀!
游客

返回顶部