尊敬的专家:
我使用 macop 执行数据 Rx 和 TX。 在一端、我将示例收集器协处理器用作收集器;在另一个器件、我根据协处理器模型移植了传感器应用程序。
当传感器发送的数据不超过255字节时、一切都正常、但当数据长度大于256 (自定义消息)时、根据程序、数据会进行分段。 根据运行的日志,传感器成功发送所有片段,但收集器只接收第一个片段。
以下日志是在主机侧从传感器和收集器捕获的。 主机和器件使用 UART 接口、SDK 版本为 simplelink_cc13x0_sdk_4_20_02_07。 Linux 收集器来自 ti154stack_linux_x64_4_40_00_03软件包。
** 传感器日志(数据发送)*******
ApiMac_mcpsDataReq
mcpsDataReq:WR_u8:addrMode:0、0x0
mcpsDataReq:WR_u8:Addr-fill:0、0x0
mcpsDataReq:WR_u8:Addr-fill:0、0x0
mcpsDataReq:WR_u8:Addr-fill:0、0x0
mcpsDataReq:WR_u8:Addr-fill:0、0x0
mcpsDataReq:WR_u8:Addr-fill:0、0x0
mcpsDataReq:WR_u8:Addr-fill:0、0x0
mcpsDataReq:WR_u8:Addr-fill:0、0x0
mcpsDataReq:WR_u8:Addr-fill:0、0x0
mcpsDataReq:WR_U16:dstPanId:80、0x50
mcpsDataReq:WR_u8:srcAddrMode:2、0x2
mcpsDataReq:WR_u8:msduHandle:50、0x32
mcpsDataReq:WR_u8:txOptions:0、0x0
mcpsDataReq:WR_u8:通道:0、0x0
mcpsDataReq:WR_u8:功率:0、0x0
mcpsDataReq:wrBuf:keySource、len:8
mcpsDataREQ:WR_u8:securityLevel:0、0x0
mcpsDataReq:WR_u8:KeyIdMode:0、0x0
mcpsDataReq:WR_u8:KeyIndex:0、0x0
mcpsDataReq:WR_u32:includeFhIEs:0、0x0
mcpsDataReq:WR_U16:MSDU.len:242、0xf2
mcpsDataReq:WR_U16:payloadIELen:0、0x0
mcpsDataReq:wrBuf:MSDU-DATA、len:242
TX:块:1、共2个、尝试:0、共3个
TX:UART:(frag)块:2选1
UART:TX 消息(开始)[片段数据]
Frag-data msg (00b2) nbytes=255 len=250 [ 0xFE 0xfa 0xa2 0x05 0x10 0x00 0x15 0x01]
UART:TX 255字节
00000000:Fe fa A2 05 10 00 15 01-00 00 00 00 00 00 00 00 00 |.......... |
00000010:00 50 00 02 32 00 00 00-00 00 00 00 00 00 |.P..2 .......... |
00000020:00 00 00 00 00 00 00 f2-00 00 00 00 11 22 33 44 |............ "3D|
00000030:55 66 77 88 99 aa bb 08-00 45 00 E4 00 40 |UFW ... 就是…… @|
00000040:00 80 01 00 0A 0A-C9 0A 0A 0A 0A 0A 0A 0A C8 08 00 |................ |
00000050:00 06 00 06 00 78 78 78 78 78 78 78 78 78 78 |.. xxxxxxxxxxx|
00000060:78 78 78 78 78 78 78 78 78-78 78 78 78 78 78 78 78 78 78 78 | xxxxxxxxxxxx|
00000070:78 78 78 78 78 78 78 78 78-78 78 78 78 78 78 78 78 78 78 78 | xxxxxxxxxxxx|
00000080:78 78 78 78 78 78 78 78 78-78 78 78 78 78 78 78 78 78 78 78 | xxxxxxxxxxxx|
00000090:78 78 78 78 78 78 78 78 78-78 78 78 78 78 78 78 78 78 78 78 | xxxxxxxxxxxx|
000000a0:78 78 78 78 78 78 78 78 78-78 78 78 78 78 78 78 78 78 78 78 | xxxxxxxxxxxx|
000000b0:78 78 78 78 78 78 78 78 78-78 78 78 78 78 78 78 78 78 78 78 | xxxxxxxxxxxx|
000000c0:78 78 78 78 78 78 78 78 78-78 78 78 78 78 78 78 78 78 78 78 | xxxxxxxxxxxx|
000000d0:78 78 78 78 78 78 78 78 78-78 78 78 78 78 78 78 78 78 78 78 | xxxxxxxxxxxx|
000000e0:78 78 78 78 78 78 78 78 78-78 78 78 78 78 78 78 78 78 78 78 | xxxxxxxxxxxx|
000000f0:78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 D2 |xxxxxxxxxxxxxx。 |
UART-wr:写入(255字节)= 255
uart:TX 消息(完整) r=255 [frag-data]
正在等待 frag-ack
事件类型 UART 写入请求! 刻度2627961
UART 接收3长度数据! 刻度2627963
UART RX:cmd0=0xe2、cmd1=0x5
UART:Rx-msg 查找启动
UART-rd:读取(5字节)= 5、5
UART:可用字节:5
00000000: Fe 03 E2 05 18 -|.. |
UART-rd:读取(3字节)= 3、8
UART:可用字节:8
00000000: Fe 03 E2 05 18 00 fc -|.. |
接收碎片整理
srsp_frag_ack msg (00b3) nbytes=8 len=3 [ 0xFE 0x03 0xe2 0x05 0x18 0x00 0xFC]
传感器处理事件:0x3
TX:块:2、共2个、尝试:0、共3个
TX:UART:(frag)块:2、共2
UART:TX 消息(开始)[片段数据]
Frag-data msg (00b2) nbytes=40 len=35 [ 0xFE 0x23 0xa2 0x05 0x10 0x01 0x15 0x01]
UART:TX 40字节
00000000:FE 23 A2 05 10 01 15 01-78 78 78 78 78 78 78 78...………………………… XXXXXXXX|
00000010:78 78 78 78 78 78 78 78 78-78 78 78 78 78 78 78 78 78 78 78 | xxxxxxxxxxxx|
00000020:78 78 78 78 78 78 F9 -|xxxxxxx。 |
UART-wr:写入(40字节)= 40
uart:TX 消息(完整) r=40 [frag-data]
正在等待 frag-ack
UART:Rx-msg 查找启动
UART-rd:读取(5字节
ES)= 5、5
UART:可用字节:5
00000000: Fe 03 E2 05 18 -|.. |
UART-rd:读取(3字节)= 3、8
UART:可用字节:8
00000000:Fe 03 E2 05 18 01 06 fb-|.. |
接收碎片整理
srsp_frag_ack msg (00b4) nbytes=8 len=3 [ 0xFE 0x03 0xe2 0x05 0x18 0x01 0x06 0xfb]
UART 接收1长度数据! 节拍2627972
UART RX:cmd0=0x62、cmd1=0x5
UART:Rx-msg 查找启动
UART-rd:读取(5字节)= 5、5
UART:可用字节:5
00000000:FE 01 62 05 00 -|..b. |
UART-rd:读取(1字节)= 1、6
UART:可用字节:6
00000000:Fe 01 62 05 00 66 -|..b.f |
传感器处理事件:0x3
传感器处理事件:0x3
UART:TX 消息(开始)[片段状态]
Frag-status msg (00b6) nbytes=8 len=3 [ 0xFE 0x03 0xa2 0x05 0x20 0x01 0x06 0x83]
UART:TX 8字节
00000000:FE 03 A2 05 20 01 06 83-|.. ... |
UART-wr:写入(8字节)= 8
uart:TX 消息(完整) r=8 [frag-status]
Incoming-msg:Rd_u8:状态:0、0x00
SREQ:(mcpsDataREQ) SRSP:结果:0 (0x00)
** 收集器日志(数据接收)*****
UART RX:cmd0=0xC2、cmd1=0x85
UART:Rx-msg 查找启动
UART-rd:读取(5字节)= 5、5
UART:可用字节:5
00000000: Fe 03 C2 85 20 -|.. |
UART-rd:读取(3字节)= 3、8
UART:可用字节:8
00000000:FE 03 C2 85 20 00 07 63-|.. ..c |
扩展状态:块:0、已中止
areq_ext_status msg (0058) nbytes=8 len=3 [ 0xFE 0x03 0xC2 0x85 0x20 0x00 0x07 0x63]
UART 接收151个长度数据! 勾选570409
UART RX:cmd0=0xC2、cmd1=0x85
UART:Rx-msg 查找启动
UART-rd:读取(5字节)= 5、5
UART:可用字节:5
00000000: Fe 97 C2 85 10 -|.. |
UART-rd:读取(151字节)= 151,156
UART:可用字节:156
00000000:FE 97 C2 85 10 00 25 01-02 01 00 00 00 00 00 00 |…… %......... |
00000010:00 00 00 00 00 00 00 00 00 00 00 51 C3 02 00 02 00 |.......... 问: |
00000020:50 00 00 00 90 00 d6 67-00 00 00 00 00 00 00 00 |P。。。。 g.…… |
00000030:00 00 00 00 00 00 00 f2-00 00 00 00 11 22 33 44 |............ "3D|
00000040:55 66 77 88 99 aa bb 08-00 45 00 E4 00 40 |UFW ... 就是…… @|
00000050:00 80 01 00 0A 0A 0A-C9 0A 0A 0A 0A 0A 0A 0A C8 08 00 |................ |
00000060:00 06 00 06 00 78 78 78 78 78 78 78 78 78 78 |.. xxxxxxxxxxx|
00000070:78 78 78 78 78 78 78 78 78-78 78 78 78 78 78 78 78 78 78 78 | xxxxxxxxxxxx|
00000080:78 78 78 78 78 78 78 78 78-78 78 78 78 78 78 78 78 78 78 78 | xxxxxxxxxxxx|
00000090:78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 97 |xxxxxxxxxxx. |
RX Frag:2个块中的1个、frag 大小:147
areQ_frag_data msg (0059) nbytes=156 len=151 [ 0xFE 0x97 0xC2 0x85 0x10 0x00 0x25 0x01]
UART:TX 消息(开始)[frag-ack]
Frag-ack msg (005A) nbytes=8 len=3 [ 0xFE 0x03 0xC2 0x85 0x18 0x00 0x5c]
UART:TX 8字节
00000000:FE 03 C2 85 18 00 5c-|…… \|
UART-wr:写入(8字节)= 8
uart:TX 消息(完整) r=8 [frag-ack]
*
问题是收集器仅接收第一个片段块(大小为147)字节、从不接收其余字节。 可能是什么原因? 非常感谢!