evergreen
驱动牛犊
驱动牛犊
  • 注册日期2002-04-16
  • 最后登录2007-09-24
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2942回复:17

1394网络中的节点ID是否可以固定?

楼主#
更多 发布于:2003-02-26 09:12
1394中的节点ID都是自己识别的,用来适应热插拔,但是我如果不拔插的话想固定节点的ID号,应该怎么做?
atuhappy
驱动老牛
驱动老牛
  • 注册日期2002-03-15
  • 最后登录2009-09-09
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-27 20:56
什么ID?
是说的节点地址吗? :)
在一回首间,才忽然发现,原来,我一生的种种努力,不过只是为了要使周遭的人都对我满意而已。为了要博得他人的称许和微笑,我战战兢兢得将自己套入所有得模式,所有的桎梏。走到中途,才忽然发现,我只剩下一副模糊得面目,和一条不能回头的路...
evergreen
驱动牛犊
驱动牛犊
  • 注册日期2002-04-16
  • 最后登录2007-09-24
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-01 13:58
我的意思是这样的:
由于1394网络中的节点的NodeID是经常变化的,比如说网络中加入或删除了一个节点,本来这个节点的NodeID是FFC0,现在可能变成FFC1了。
但是在应用中,需要在确定节点之间传输数据。比如A和B之间,但是A和B的NodeID有可能变化,这给怎么办呢?
据我所知,读出ConfigRom中的GUID即可,但是有的芯片实现的1394可以没有ConfigureROM,那又该怎么办呢?

请各位大哥提个思路或者方法!
atuhappy
驱动老牛
驱动老牛
  • 注册日期2002-03-15
  • 最后登录2009-09-09
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-01 21:21
这个意思呀
这个nodeid是总线配置时产生的
根结点的id好像不会变吧
总线重标识以后
你读一下根结点的拓扑图怎么样
在一回首间,才忽然发现,原来,我一生的种种努力,不过只是为了要使周遭的人都对我满意而已。为了要博得他人的称许和微笑,我战战兢兢得将自己套入所有得模式,所有的桎梏。走到中途,才忽然发现,我只剩下一副模糊得面目,和一条不能回头的路...
evergreen
驱动牛犊
驱动牛犊
  • 注册日期2002-04-16
  • 最后登录2007-09-24
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-03 09:31
我觉得根节点的ID也是会变的。比如说,原来的根节点被删除了,自然要有一个原来不是根节点的节点出来作为新的根节点,这样节点ID能不变吗?
ARRON
驱动老牛
驱动老牛
  • 注册日期2002-03-18
  • 最后登录2010-05-02
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望21点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-03-03 17:55
跟节点的id也会变的
谁当根结点和拓扑有关系
当然也可以指定一个根结点
sunshine
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2005-05-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-03-04 09:43
由谁做根节点是可变的,但根节点的的物理标识总是最大的号,这样你就可以找到根节点,读出拓扑图。
evergreen
驱动牛犊
驱动牛犊
  • 注册日期2002-04-16
  • 最后登录2007-09-24
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-03-06 09:05
是可以找到根节点,也可以读出来拓扑图,但是怎么就能知道NodeID与具体节点的对应关系呢?
等于没说。
ARRON
驱动老牛
驱动老牛
  • 注册日期2002-03-18
  • 最后登录2010-05-02
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望21点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-03-07 15:40
我觉得应该固定不了
但是可以根据节点地址找到该设备
wombat
驱动牛犊
驱动牛犊
  • 注册日期2002-08-06
  • 最后登录2003-03-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-03-11 09:23
那请问你在读configrom时,用的是什么命令呀
wombat
驱动牛犊
驱动牛犊
  • 注册日期2002-08-06
  • 最后登录2003-03-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-03-11 09:24
那请问evergreen在读configrom时,用的是什么命令呀
sunshine
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2005-05-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-03-15 09:15
  1394各节点知道物理标识后,就可以建立节点之间的通信联系,至于物理标识N对应的是什么设备,1394不知道也不需要知道,因为使用1394网络的人知道。
  这和互联网有点类似,网络地址就相当于1394的物理标识,TCP/IP通过网络地址建立计算机之间的通信联系,TCP/IP不知道也不需要知道202.108.37.42对应的是什么网站。因为上网的人知道。(什么?你不知道?晕!那还不上去看看...........原来就是新浪网啊,呵呵。)  
evergreen
驱动牛犊
驱动牛犊
  • 注册日期2002-04-16
  • 最后登录2007-09-24
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-03-18 09:58
sunshine说得好,但是就是网络,即使是TCP/IP,即使有IP地址,也是有一套机制,把IP地址转化成网卡的物理地址!上网的人可以不知道IP地址具体是什么网站,但是驱动程序知道!否则,谁给你找到具体的服务器?IP地址是可以变化的呀!
sunshine你知道这些吗?
做1394的底层驱动,能不知道这些吗?
nouel
驱动牛犊
驱动牛犊
  • 注册日期2003-02-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-03-18 19:16






            节点ID是什么时候确定的?
            按照你们的意思,应该是卡一插上去之后就定了?
sunshine
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2005-05-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-03-18 19:33
你不是通过网络拓扑找到了物理标识了吗?你应该换个角度来看,对1394来说,是先有物理标识的。物理标识和设备之间的对应是由人来决定的,具有总线管理功能的1394设备,可以显示链在1394上的各设备的物理标识(实际使用的是通过查ROM配置来显示各设备的名字)。假设是0-N吧,如果其中有一个优盘,使用设备的人访问一下,就知道5号对应的就是。
  你看一下网上邻居就知道,显示的每一台计算机名其实是以太网的网址,只是换了一个名字。明白了吗?
  顺便说一句,IP地址也有动态分配的,比如拨号上网,网站的地址固定,只是为了方便而已。
sunshine
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2005-05-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-03-20 19:07
驱动程序知道的也只是网络地址,发送IP包。并不知道是什么网站。
lingh99
驱动牛犊
驱动牛犊
  • 注册日期2003-04-17
  • 最后登录2003-04-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-04-30 22:00
是否可以将网站和1394网络中的一个设备作这么一个类比:

网站                 1394设备
-----------------
IP地址(可变的)      1394网络上的ID(可变的)
域名(固定的)        设备自己的描述串(固定的)

剩下的问题就是如何获得域名/描述串。
IP网络通过域名解析的机制获得,1394网络上实在不行就遍历整个
拓扑树吧,逐个节点查询,反正最多也就64个节点。

^_^ 我还没开始看1394标准呢,以上只是我的猜想。
cathyLH
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2004-08-28
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-05-04 19:08
要固定ID,没有这个可能,因为ID是动态分配的,其实你的思路不对,正确的做法是在数据发送前完成一次MakeRoot的过程:
//--------------------------------------------------------------------------
// Routine Name: void MakeRoot()
//
// Description:
// Set the current host controller as the root node
//
// Input:
// None
//
// Output:
// None
//
// Return:
// None
//
//--------------------------------------------------------------------------
// Revision History:
// 01/07/02 Created, Weifeng. Ge
//--------------------------------------------------------------------------
void P1394::MakeRoot(){
PhyTParameter->PhyPacketType=Phy_configPacket;
PhyTParameter->gap_cnt=0x3F;                    
PhyTParameter->T=0;          
PhyTParameter->R=1;          
LLC_REG->LLCNodeID.Quad.ulQuadlet=MEM_READ_DWORD(OHCI_SEG,OHCI_OFF+OHCI_NodeID_Reg);
PhyTParameter->root_ID=LLC_REG->LLCNodeID.Reg.NodeNumber;  
ATPhysicalQuadlet(PhyTParameter);
}
然后在进行数据传送,而且发送方ID为本地节点ID即可。
游客

返回顶部