TI工程师您好,
我是应用rfwsn例程中的通信协议进行组网开发。
设置为:通信频率433MHz;传输速率1M;网络1对6
任务实现为:6个node程序是通过ADC采集数据(采样率200),采集的数据字长60,通过数据压缩为45字长后进行无线传输。在concentrator程序接收后,对6个node程序数据解析处理,并通过DA输出。
目前出现的问题是:
1.烧录程序后,能正常运行,几十分钟后,开始出现6个node板中的几个停止工作。通过串口调试,发现程序是运行完nodeRadioTask中sendPacket();后停止的,还未找到真正停止的位置。通信协议应该没有问题,但是,我要怎么样找到程序停止在了哪一部分呢?
2.另外,我通过降低发送的数据量,发现正常通信后6个node板中出现上述问题的板子变少,由于问题1没有解决,因此考虑是否是传输速率影响到该通信网络。若是,不明白原理?
3.通过测试发现,node板(自己制作)在运行时功耗较大,在2.7mA左右,测量发现ADC采样程序运行时功耗大,约为2.3mA,查询看到RTOS系统会在任务pend时,自动控制功耗。现在不清楚怎么样控制功耗,我该怎么样降低ADC采样功耗呢?
问题比较严重,希望得到帮助,谢谢!
致礼!
Viki Shi:
根据描述,怀疑buffer出问题的可能性大,建议排查这一块
Mings Liu:
回复 Viki Shi:
您好ViKi Shi,由于发现程序会停在nodeRadioTask的主循环中。我想咨询一下,应用WSN该协议组网的话,能否支持像我应用的ADC实时采集数据,数据量比较大的传输呢?
Viki Shi:
回复 Mings Liu:
数据量比较大的话,确实容易出现buffer溢出的问题
Mings Liu:
回复 Viki Shi:
您说的是continuousConversion.sampleBuffer = sampleBufferOne;continuousConversion.sampleBufferTwo = sampleBufferTwo;
这两个buffer可能出现了溢出是吧,但是我怎么样检查溢出问题呢?因为我在线调试,程序仍在运行中,暂时没有发现程序停止(6个node端出现程序停止的情况比较随机)。另外,接收部分的程序运行一段时间后也会出现不稳定的情况:与node端连接不稳定,过会儿又能重新建立好网络。
期待您的回复,谢谢!