#1楼主:broadcast message problem
文章发表于:2008-06-20 12:59
我用cc2430搭了这么一个环境:
pc----Serail Port ---zigbee module <----OTA------>zigbee module ----Serail Port ---pc
其中一个设为协调器,一个设为路由器,用来传输大量串行文件。
当发送模式设16bitAddress为点对点时,传输正确。
当任意其中一个设为广播模式发送文件时,设置为广播模式的模块单片机就挂了
。有谁能分析一下什么原因呢?
#2
文章发表于:2008-06-23 21:59
查到串口大量传输时会有问题,不知道是不是串口传输引起的。
#3
文章发表于:2008-06-24 08:49
这个是因为串口一帧的数据太长了,我测试的时候也遇到过相同的事情,一般在50左右把,具体记得不清楚了,可以试试
#4
文章发表于:2008-06-29 14:29
----因为串口一帧的数据太长
是指串口 传到应用层发送的 帧太长了么?
点对点传我设的是60字节,一般传输没有问题。
设广播方式传的那点,即使设置到30字节,也只能传一二百字节,而且每次传的时间间隔很小时,也会挂了。
会不会是栈区不够大?我串口的传输速率是9600的。
另外:广播方式和其他方式传的比较,除了发广播包的点能自己收到广播包这点不一样以外,是不是还有什么不一样的
我之前试过这两个端点,一个设为组A内的一个端点M,一设为组A以外的一个端点N,当N向组A发送包时,也有这样的问题。
没时间处理这个问题,一直拖着。
hxldhz很有经验啊,多指教指教!
#5
文章发表于:2008-07-03 11:37
这个问题我也遇到了,不过是飞思卡尔的。
情况是:每发送3个packet后就会阻塞,约等5秒后会重新传送,依旧3个packet。百思不得其解。
#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来的,所以部分问题是可以探讨的
#7
文章发表于:2008-07-04 09:52
16位地址是通过另一个软件设置的,这个软件是SmartRF04 Flash Programmer,TI的原装软件。
广播的意思顾名思义就是让大家都知道,就是所有的节点都能收到,除了这种方式外还有,组发送,就是设置位一个小组,只有小组的成员才能收到数据,还有绑定发送,就是只有绑定了的设备才能收到数据,还有单播,就是发送的时候指定地址发送,一般我们采用网络地址发送,只有网络地址位发送地址的设备才能收到。
#8
文章发表于:2008-07-04 09:53
上面说错了,16位地址是网络自动分配的,有那个软件设置的是物理地址,抱歉
#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。
#10
文章发表于:2008-07-04 16:32
ti出2007版本的zstack了,不过freescale还没出。