正在加载图片...
第9期 王沁等:一种混合方式的无线传感器网络测试调试系统 ,1205 表2两个节点的通信行为 Table 2 Communication behavior between 2 nodes 节点0 节点1 时间藏(clock cycle) VRF状态 发送中断监测信道 VRF状态 接收中断监测信道 104210280 PowerDown 0 No RxPreamble 1 No 223042324 Idle 0 No RxPreamble 1 No 223045476 TxPreamble 1 0 RxPreamble 0 223045576 TxPreamble 1 0 Rx Preamble 1 0 223046496 TxLength 1 0 RxPreamble 1 0 223046542 TxLength 0 RxLength 1 0 223047520 TxData 0 RxLength 1 0 223047566 TxData 1 0 RxData 1 0 223055712 TxCrch 1 0 RxData 1 0 223055759 TxCrch 1 0 RxData 0 0 223056736 TxCrel 1 0 RxData 0 0 223056784 TxCrel 1 0 RxCrch 0 0 223057760 TxEnd 1 0 RxCreh 0 0 223057762 RxPreamble 0 RxCrch 0 0 223058830 RxPreamble 0 No RxCrel 0 0 223058888 RxPreamble 0 RxCrel 0 No 223465227 RxPreamble 0 No RxPreamble 0 No 中断信号出现一上升沿,发送结束时出现一下降沿 隙大小设置有问题,至此,已发现传统调试方式将 跳变.只有节点0和节点1在通信,所以信道显示 耗费大量的人力、物力和时间 “0”,表示只有0号节点的数据在信道中 对平台原型上收集到事件进行分析,见表3. (3)调试,通过串口输出Sik节点收到的数据 1号节点探针检测到的FIFOP管脚(即接收中断管 包,发现Sink节点从1号节点仅收到了一个数据 脚)仅发生过三次变化.第1次变化表示向MCU发 包.这不符合图7所示的协议,按传统的串口调试 起接收中断请求,第2次变化表示FIF0内数据包 办法,须先猜测错误的可能性,形成一个可能的错误 被读走,第3次表示又向MCU发起接收中断请求, 集,再按照错误可能性大小的经验性判断对错误集 此后该管脚一直处于同一状态(表3特殊标记的表 中的错误逐个断定或排除,该问题可能原因有: 项),这样错误便容易定位到是中断相关,实际原 Sik节点自身的错误,如未能按时进入接收状态、 因是接收中断处理程序进入后关全局中断但是跳出 参数设置与数据节点有不符等;数据节点的错误,如 时没有开中断,本文的平台很大程度地便利了 程序进入死循环等;协议错误,如TDMA的各个时 WSN应用程序的调试 表3调试程序并定位错误源示例 Table 3 A demonstration on debugging programs and locating problems 时间藏 节点0 节点1 (clock eycle) 备注 VRF状态 接收中断管脚 VRF状态 344260428 RxLength 1 TxData 344260474 RxData 1 TxData 344268620 RxData 1 TxCrch 344268667 RxData 0 TxCrch 344271796 RxCrel 0 RxPreamble 344272849 RxPreamble 0 RxPreamble 节点I发送完毕等待ACK 344432849 RxPreamble 0 RxPreamble 节点I等待ACK超时 344433848 RxPreamble 0 TxPreamble 节点1重传数据表2 两个节点的通信行为 Table2 Communication behavior between2nodes 时间戳(clock cycle) 节点0 节点1 VRF 状态 发送中断监测 信道 VRF 状态 接收中断监测 信道 104210280 PowerDown 0 No RxPreamble 1 No 223042324 Idle 0 No RxPreamble 1 No 223045476 TxPreamble 1 0 RxPreamble 1 0 223045576 TxPreamble 1 0 RxPreamble 1 0 223046496 TxLength 1 0 RxPreamble 1 0 223046542 TxLength 1 0 RxLength 1 0 223047520 TxData 1 0 RxLength 1 0 223047566 TxData 1 0 RxData 1 0 223055712 TxCrch 1 0 RxData 1 0 223055759 TxCrch 1 0 RxData 0 0 223056736 TxCrcl 1 0 RxData 0 0 223056784 TxCrcl 1 0 RxCrch 0 0 223057760 TxEnd 1 0 RxCrch 0 0 223057762 RxPreamble 0 0 RxCrch 0 0 223058830 RxPreamble 0 No RxCrcl 0 0 223058888 RxPreamble 0 No RxCrcl 0 No 223465227 RxPreamble 0 No RxPreamble 0 No 中断信号出现一上升沿‚发送结束时出现一下降沿 跳变.只有节点0和节点1在通信‚所以信道显示 “0”‚表示只有0号节点的数据在信道中. (3)调试.通过串口输出 Sink 节点收到的数据 包‚发现 Sink 节点从1号节点仅收到了一个数据 包.这不符合图7所示的协议.按传统的串口调试 办法‚须先猜测错误的可能性‚形成一个可能的错误 集‚再按照错误可能性大小的经验性判断对错误集 中的错误逐个断定或排除.该问题可能原因有: Sink 节点自身的错误‚如未能按时进入接收状态、 参数设置与数据节点有不符等;数据节点的错误‚如 程序进入死循环等;协议错误‚如 TDMA 的各个时 隙大小设置有问题.至此‚已发现传统调试方式将 耗费大量的人力、物力和时间. 对平台原型上收集到事件进行分析‚见表3. 1号节点探针检测到的 FIFOP 管脚(即接收中断管 脚)仅发生过三次变化.第1次变化表示向 MCU 发 起接收中断请求‚第2次变化表示 FIFO 内数据包 被读走‚第3次表示又向 MCU 发起接收中断请求‚ 此后该管脚一直处于同一状态(表3特殊标记的表 项).这样错误便容易定位到是中断相关.实际原 因是接收中断处理程序进入后关全局中断但是跳出 时没有开中断.本文的平台很大程度地便利了 WSN 应用程序的调试. 表3 调试程序并定位错误源示例 Table3 A demonstration on debugging programs and locating problems 时间戳 (clock cycle) 节点0 节点1 VRF 状态 接收中断管脚 VRF 状态 备注 344260428 RxLength 1 TxData 344260474 RxData 1 TxData 344268620 RxData 1 TxCrch 344268667 RxData 0 TxCrch … … … … 344271796 RxCrcl 0 RxPreamble 344272849 RxPreamble 0 RxPreamble 节点1发送完毕等待 ACK 344432849 RxPreamble 0 RxPreamble 节点1等待 ACK 超时 344433848 RxPreamble 0 TxPreamble 节点1重传数据 第9期 王 沁等: 一种混合方式的无线传感器网络测试调试系统 ·1205·
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有