返回该小组首页 回复主题
kate2008_chen

kate2008_chen

小组等级:     E币:64  (E币换礼)

#1楼主:broadcast message problem

文章发表于:2008-06-20 12:59

我用cc2430搭了这么一个环境:

pc----Serail Port  ---zigbee module <----OTA------>zigbee module ----Serail Port  ---pc

其中一个设为协调器,一个设为路由器,用来传输大量串行文件。

当发送模式设16bitAddress为点对点时,传输正确。

当任意其中一个设为广播模式发送文件时,设置为广播模式的模块单片机就挂了

。有谁能分析一下什么原因呢?

kate2008_chen

   小组等级:    E币:64  (E币换礼)

#2

文章发表于:2008-06-23 21:59

查到串口大量传输时会有问题,不知道是不是串口传输引起的。

hxldhz

   小组等级:    E币:179  (E币换礼)

#3

文章发表于:2008-06-24 08:49

这个是因为串口一帧的数据太长了,我测试的时候也遇到过相同的事情,一般在50左右把,具体记得不清楚了,可以试试

kate2005_chen

   小组等级:    E币:96  (E币换礼)

#4

文章发表于:2008-06-29 14:29

----因为串口一帧的数据太长

是指串口 传到应用层发送的 帧太长了么?

点对点传我设的是60字节,一般传输没有问题。

设广播方式传的那点,即使设置到30字节,也只能传一二百字节,而且每次传的时间间隔很小时,也会挂了。

会不会是栈区不够大?我串口的传输速率是9600的。

另外:广播方式和其他方式传的比较,除了发广播包的点能自己收到广播包这点不一样以外,是不是还有什么不一样的

我之前试过这两个端点,一个设为组A内的一个端点M,一设为组A以外的一个端点N,当N向组A发送包时,也有这样的问题。

没时间处理这个问题,一直拖着。

hxldhz很有经验啊,多指教指教!

windark

   小组等级:    E币:100  (E币换礼)

#5

文章发表于:2008-07-03 11:37

这个问题我也遇到了,不过是飞思卡尔的。
情况是:每发送3个packet后就会阻塞,约等5秒后会重新传送,依旧3个packet。百思不得其解。

windark

   小组等级:    E币:100  (E币换礼)

#6

文章发表于:2008-07-03 13:53

我想问一下发送16位地址怎么设置,怎么查找路由器的16位地址?
还有我想根据64位地址来发送数据,但发送64位地址也同样需要知道16位网络地址。其中需要调用一个叫原语,用来根据ieee地址来获取网络地址的,但是有几个参数不知道怎么用。
ASL_NWK_addr_req (
     zbCounter_t  *pSequenceNumber,  /* IN: The sequence number used to send the request. */
     zbNwkAddr_t  aDestAddress,      /* IN: The destination address where
to send the request. */
     zbIeeeAddr_t  aIeeeAddr,        /* IN: The IEEE address to be matched
by the Remote Device */
     uint8_t  requestType,           /* IN: Request type for this command:
0x00 ?Single device response
   0x01 ?Extended response 0x02-0xFF ?reserved */
     index_t  startIndex             /* IN: If the Request type for this
command is Extended response,

                         the StartIndex provides the starting index for the requested

                         elements of the associated devices list */
)
我用的飞思卡尔的beekit来开发,所以部分内容和你们不一致,但我想大体上都是根据zigbee2006来的,所以部分问题是可以探讨的

hxldhz

   小组等级:    E币:179  (E币换礼)

#7

文章发表于:2008-07-04 09:52

16位地址是通过另一个软件设置的,这个软件是SmartRF04 Flash Programmer,TI的原装软件。

广播的意思顾名思义就是让大家都知道,就是所有的节点都能收到,除了这种方式外还有,组发送,就是设置位一个小组,只有小组的成员才能收到数据,还有绑定发送,就是只有绑定了的设备才能收到数据,还有单播,就是发送的时候指定地址发送,一般我们采用网络地址发送,只有网络地址位发送地址的设备才能收到。

hxldhz

   小组等级:    E币:179  (E币换礼)

#8

文章发表于:2008-07-04 09:53

上面说错了,16位地址是网络自动分配的,有那个软件设置的是物理地址,抱歉

windark

   小组等级:    E币:100  (E币换礼)

#9

文章发表于:2008-07-04 16:29

光知道64位ieee地址没用的,协调器如果要用64位ieee地址发数据,还需要知道16位网络地址。所以发送前必须调用过ASL_NWK_addr_req。
网络地址是网络分配的,如果节点多就乱套了。所以我希望协调器根据64位地址来发送数据,毕竟这个是固定的,指哪打哪。
现在的问题就是ASL_NWK_addr_req有几个参数不知道填什么?

广播容易引起广播风暴,所以在无ack、node少或者radius少的情况下用用可以,多了就要出事了。
虽然不打算在广播数据,但还是想知道我遇到的问题是怎么发生的,因为自己对网络的设置就是radius=1,2node,无ack,poll时间也设置了,但现象还是发3个packet停5s。

windark

   小组等级:    E币:100  (E币换礼)

#10

文章发表于:2008-07-04 16:32

ti出2007版本的zstack了,不过freescale还没出。

总共 , 当前 /

快速回复主题--如果想加入编辑器功能,建议使用 [高级回复]

您目前还不是小组成员,请先加入

回复贴子区

用户名:    您没有注册?

密码:    忘记了密码?

内容:

  • DesignDesign
  • HTMLHTML

浏览该小组的用户还看过...

所有小组精华文章