51uwb.cn

 找回密码
 立即注册
查看: 1704|回复: 4
打印 上一主题 下一主题

uwb数据长度限制

[复制链接]

5

主题

16

帖子

41

积分

新手上路

Rank: 1

积分
41
跳转到指定楼层
楼主
发表于 2023-3-28 17:58:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我对resp/final数据包的通讯数据格式进行了一些调整,采用数据中断的方式进行接收,另外有些业务逻辑改有一些调整,但基本的通讯功能可跑通。
发现一个问题:当数据包大于24字节时,接收端就收到不数据了。

        frame_len = dwt_read32bitreg(RX_FINFO_ID) & RX_FINFO_RXFLEN_MASK;   //这一步对得上
        if (frame_len <= 127)
        {
            dwt_readrxdata(rx_buffer, frame_len, 0);  // rx_buffer为全局静态变量,执行此步后,  rx_buffer中的内容没有变化
        }


ps:  按api文档的说明,uwb通讯可传输的内容长度是127,可扩展到1023. 上面的代码没有这么长。验证过,24个字节可以,26个字节就不行。

请教各位大佬,是否见过这种现象。
回复

使用道具 举报

35

主题

965

帖子

4052

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4052
沙发
发表于 2023-3-28 21:51:20 | 只看该作者
你看下数据包总长是多少
因为有帧头帧尾。 你的数据payload 是24,但是实际数据长度远不止24byte
回复

使用道具 举报

5

主题

16

帖子

41

积分

新手上路

Rank: 1

积分
41
板凳
 楼主| 发表于 2023-3-29 09:21:49 | 只看该作者
你提到的数据包总长度指的是否指参考源码中的rx_poll_msg/tx_resp_msg/rx_final_msg,长度分别为12/15/24.
这里边包含有最后两位自定义的CRC,不知道是不是另外还有桢头桢尾。

static uint8 rx_poll_msg[] =  {0x41, 0x88, 0, 0x0, 0xDE, 'W', 'A', 'V', 'E', 0x21, 0, 0};
static uint8 tx_resp_msg[] =  {0x41, 0x88, 0, 0x0, 0xDE, 'V', 'E', 'W', 'A', 0x10, 0x02, 0, 0, 0, 0};
static uint8 rx_final_msg[] = {0x41, 0x88, 0, 0x0, 0xDE, 'W', 'A', 'V', 'E', 0x23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

因为要添加一些业务,在项目中对数据包做了些修改,比方说,在final消息后再增加些其他内容,目前rx_final_msg最长也不超过50byte,但测试的结果是rx_final_msg最长就是24,长了接收的数据就乱了(接收端检查接收长度是对的)
回复

使用道具 举报

35

主题

965

帖子

4052

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4052
地板
发表于 2023-3-29 22:04:15 | 只看该作者
admy 发表于 2023-3-29 09:21
你提到的数据包总长度指的是否指参考源码中的rx_poll_msg/tx_resp_msg/rx_final_msg,长度分别为12/15/24.  ...

能提供测试程序吗?我们复现一下问题
回复

使用道具 举报

5

主题

16

帖子

41

积分

新手上路

Rank: 1

积分
41
5#
 楼主| 发表于 2023-3-30 13:59:04 | 只看该作者
发现问题了。刚刚整理源码准备发出来,结果发现基站侧,#define FRAME_LEN_MAX 24。自己把数据长度限制死了
感谢您的回复。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

bphero Inc.  

GMT+8, 2024-5-2 06:40 , Processed in 0.016888 second(s), 4 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表