首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

802.15.4求教

802.15.4求教

1、协议中coordinator在associte.response中分配给请求device的16 bit short address主要有什么作用?可不可以理解为coordinator为每一个在其PAN内分配的网络地址?
2、在associate.request原语中请求device并没有提供自己的地址信息,而接收端的associate.indication中却包含“DeviceAddress”,这个地址从哪里得到?
3、在mesh的网络拓扑中,非coordinator的device之间如何建立连接?协议中定义的associate原语似乎只针对coordinator与device之间的连接。
4、有什么方法可以验证网络中的节点都已经连接到网络,完成组网的功能?
1. 可以理解为PAN分配的网络地址。主要是为了方便联系。如果大家都用64bit的地址来进行通讯的话会比较麻烦。分配一个短地址给device,就可以通过16bit的地址来联系。
2. device的地址是从device自己给出去的。associate.request是给MAC层以上的用户使用的,虽然没有给出device的extendedAddress,但是在device发送请求的过程中会加入这个信息。
3.一个网络只有一个PAN coordinator,但是可以有很多的coordinator,这些coordinator充当路由器的功能。在mesh网络中,device之间可以不经过PAN coordinator,只通过Coordinator来进行通讯。device可以通过associate来和coordinator(路由)建立联系。
4.验证的方法很多,最简单的就是所有的device之间可以相互通讯。它们采用同一个PanID,同一个Channel。


[此贴子已经被作者于2005-7-11 17:41:50编辑过]

十分感谢你的回答!
对于1、2的回答应该没什么问题。对于3、4我的理解的错误可能在混淆了PAN coordinator和coordinator的概念,在协议中并未看到这二者的具体区别,能告诉我具体的地方吗?
对于第三个问题,coordinator和coordinator之间的连接也可以用associate.request来建立连接了,对吗?
对于第四个问题,我的想法是,每个Coordinator建立一个短地址表,存储与之连接的所有节点的短地址。这个表也可以为上层的ip层形成路由表时服务。
还有一个问题在device发送associate.request之前应该获取如下信息:LogicalChannel,CoordAddrMode,CoordPanId,CoordAddress这些信息是从何处获取?是不在之前Coordinator需要进行广播自己的信息?
以后可能还有需要请教的,能留个QQ或者MSN吗?
谢谢!
可不可以这样理解:在无线传感器网络中,PAN coordinator是不是等同于网关的作用?
可以这样理解,PAN coordinator类似于网关,网络由它来建立(它决定网络所使用的channel,网络的PanID,BeaconOrder等),一个网络只有一个PAN coordinator。一般的Coordinator就是路由器。协议中没有详细说,但是在很多地方提到了这些。所有设备之间都是通过associate来建立连接的。
在device发送associate之前必须先进行scan。通过active或者passive scan把device周围存在的所有网络的信息获取到,然后才能assoicate。
我不上qq,有问题可以大家在版面上一起讨论
在我们拟建立的网路中,所有的节点均要求具有路由功能,对应到15.4的话,应该就是coordinator。所以我们关注的重点是coordinator之间建立连接的过程。当一个coordinator发出associate.request时,对等的coordinator收到后给出associate.response,在associate.response中分配的短地址是否需要PAN Coordinator的协助?因为在我的理解中,如果短地址作为PAN的网络地址的话,这个地址只能是由PAN Coordinator来统一分配,才能不导致地址的冲突。
具体的实现mesh功能的网络我也没有做过。我的理解是短地址应该由PAN Coordinator来统一分配。和PAN coordinator直接相联系的coordinator会收到PAN coordinator给它的一部分地址,这些地址coordinator可以去分配给和它相连的下一级coordinator。
比如有三个coordinator(编号为1、2、3)和PAN Coord相连,一号Coord得到的短地址为0100,同时0101-010A这十个地址它可以分配给和它相连的设备;二号Coord得到的短地址为0200,0201-020F这十五个短地址它可以分配给和它相连的设备;三号得到的为0300,0301-0320这32个短地址它可以分配给它下级的设备。
这样可以避免地址的冲突,也可以方便PAN coordinator分配地址。
我想到的也是这个办法,呵呵
谢谢了!有问题再向你请教
:)
又有一个新的问题:
当一个device发出associate.request时,coordinator收到后给出associate.response,但我在associate.response中想把requesting device的64 bits longaddress通过串口打印出来时,在超级终端中看到的longaddress的值竟然全是1!这好像意味着板子上的64 bits longaddress都是一样,这似乎有问题。因为,按照我的理解,64 bits longaddress是在出厂前固化在节点上的节点唯一标示,没道理相同啊。我用的是13192 dsk a00 , load的程序是Wireless_App_Demo中的MyApp_Ex07a
64bit的address是在出厂的时候固化的,但是在这个开发的demo程序中必须你自己去改变。你可以查看sys目录下的NV_Data.c文件,在#endif SYSTEM_CLOCK_16_78MHZ 之后有8个byte的data,这个8个字节就是64bit的longaddress。在main.c文件中可以看见这样一句话,FLib_MemCpy(aExtendedAddress, (NV_RAM_Struct_t *)NV_RAM_ptr->MAC_Address, 8);
这个就是把NV_Data.c中定义的8byte的address读入底层中去。如果你需要改变64bit的address可以直接给aExtendedAddress赋值,或者在NV_Data.c中修改那8byte的值。
谢谢!!我试试!





[此贴子已经被作者于2005-7-14 13:11:28编辑过]

问题解决!谢谢!
朋友,联系把,QQ:65926601,MSN:beenet1110@163.com
返回列表