一点uwb模块的疑问求解答
理论上讲a模块发送3条数据能得到2个发送时间的时间差 st0 st1b模块接收3条数据也能取得2个接收时间差rt0 rt1
ab模块都静止不动
短时间内时钟误差应该不会太大 那么rt0/st0理论上不是应该等于rt1/st1么?
然而实际测试比例差距会挺大的 比例之间的差值能到0.03
造成这个现象的原因是什么么?
理论上2条发送数据的时间差与2条接收数据的时间差 应该相等才对 也就是说2个差的比例就是俩模块间时钟比例不知道理解对不对
你说的理论上是对的。确实应该是等比例的。 误差应该在千分之几,目前看到你的数据结果3%确实有点大。
晶振是确实会影响测试结果。 可以将三条信息的时间间隔缩短测试。
如果有有源晶振可以对比下测试结果。
之前有个客户,用普通模块测试ss-twr,效果很差,但是用有源晶振模块测试,效果基本能达到ds-twr 用的你们开源的那个代码txmain改发送完成之后间隔2ms再次发送每次发送前获取上传发送时间 把上次发送时间发出去 rx_main里直接接收输出接收时间
这个应该是有源晶振吧https://item.taobao.com/item.htm?spm=a1z09.2.0.0.24d32e8dfL8BNB&id=592290393826&_u=m4ujfmj43cf这个产品 matjumbo 发表于 2022-2-22 09:02
用的你们开源的那个代码txmain改发送完成之后间隔2ms再次发送每次发送前获取上传发送时间 把上次发送时 ...
1 源代码如果方便可以共享一份,我们测试下,对于你说的这个我们也很感兴趣
2 链接不是。官方模组DWM1000没有有源的。 我们的BP400 有有源版本,可以联系客服索要链接 额是这边算错了 少算了一位数据
另外就算想差万分之几的话 传一轮15个字节的数据来回一次差不多6ms 这误差就到微秒级别了呢.....
代码中定义的DWT_TIME_UNITS应该是一个计数是多少分之1秒吧 算下来1毫秒应该是0.001/(1.0/499.2e6/128.0)=0x03cf0000
俩数据用中断收到数据就发送俩次发送时间差为(0xb133354739-0xb11a996c00)/0x03cf0000 =6.461391116411258
(((0xb133354739-0xb11a996c00)/0x03cf0000)*0.0002)这时钟误差产生的距离就有几百米了呢
(((0xb133354739-0xb11a996c00))*0.0002)*DWT_TIME_UNITS*SPEED_OF_LIGHT=387.2990749503255
这时钟产生的误差真能消除掉么? BB 49 8C E6 4B A6 00 64 EF 2F DD 00 00 4A A1 0D 0A C8 E8 16 68 7A 0d 0a 0d 0a
AA AB A6 3C 39 00 00 C6 58 21 00 00 00 4F E6 0D 0A 3F 03 14 80 7A 0d 0a 0d 0a
BB 0E 07 C7 7B A6 00 68 C9 63 A6 00 00 8F 6E 0D 0A 18 01 7C 99 7A 0d 0a 0d 0a
AA C4 CE A1 6A 00 00 48 39 51 00 00 00 BA 07 0D 0A 78 E9 4A B1 7A 0d 0a 0d 0a
BB 06 F5 FD AC A6 00 88 2E 95 A6 00 00 4A DD 0D 0A 4D 8B B2 CA 7A 0d 0a 0d 0a
AA DE 68 D8 9B 00 00 3E 70 82 00 00 00 AD 02 0D 0A B7 37 81 E2 7A 0d 0a 0d 0a
BB E1 4A 34 DE A6 00 1A 65 C6 A6 00 00 BC 6A 0D 0A A0 EF E8 FB 7A 0d 0a 0d 0a
AA ED DC 0E CD 00 00 9C A6 B3 00 00 00 3D 8C 0D 0A EF 95 B7 13 7B 0d 0a 0d 0a
BB DE B0 6A 0F A7 00 86 9B F7 A6 00 00 F8 CC 0D 0A F3 07 1F 2D 7B 0d 0a 0d 0a
AA 04 05 45 FE 00 00 0A DD E4 00 00 00 A5 0B 0D 0A 2A A6 ED 44 7B 0d 0a 0d 0a
BB BE C8 A0 40 A7 00 A6 D1 28 A7 00 00 5E F8 0D 0A 27 6A 55 5E 7B 0d 0a 0d 0a
AA 18 77 7B 2F 01 00 2A 13 16 01 00 00 5F B1 0D 0A 58 0E 24 76 7B 0d 0a 0d 0a
BB A2 38 D7 71 A7 00 10 08 5A A7 00 00 1C 97 0D 0A 85 84 8B 8F 7B 0d 0a 0d 0a
AA 42 A1 B1 60 01 00 A2 49 47 01 00 00 A0 46 0D 0A 6E 22 5A A7 7B 0d 0a 0d 0a
BB 84 54 0D A3 A7 00 32 3E 8B A7 00 00 CF A6 0D 0A C1 B2 C1 C0 7B 0d 0a 0d 0a
AA 55 DF E7 91 01 00 C6 7F 78 01 00 00 B7 4C 0D 0A AE D4 90 D8 7B 0d 0a 0d 0a
BB 59 0E 44 D4 A7 00 68 74 BC A7 00 00 DF 87 0D 0A 08 25 F8 F1 7B 0d 0a 0d 0a
AA 79 61 1E C3 01 00 88 B6 A9 01 00 00 5E AF 0D 0A E0 06 C7 09 7C 0d 0a 0d 0a
BB 49 48 7A 05 A8 00 E2 AA ED A7 00 00 88 0F 0D 0A 5C 61 2E 23 7C 0d 0a 0d 0a
AA 92 AD 54 F4 01 00 CA EC DA 01 00 00 3B 80 0D 0A ED 68 FD 3A 7C 0d 0a 0d 0a
BB 37 B2 B0 36 A8 00 26 E1 1E A8 00 00 88 25 0D 0A A2 D5 64 54 7C 0d 0a 0d 0a
AA A2 31 8B 25 02 00 3C 23 0C 02 00 00 A8 8C 0D 0A EB C2 FF 6C 7C 0d 0a 0d 0a
BB E2 13 B3 68 A8 00 A2 17 50 A8 00 00 5D D3 0D 0A D4 6B 67 86 7C 0d 0a 0d 0a
AA EB D7 8D 57 02 00 A6 25 3E 02 00 00 74 A1 0D 0A BC B0 02 9F 7C 0d 0a 0d 0a
aa bb是俩模块 第一个5位是接收到数据的时间 第二个5位是上次发送的时间0d0a之后的5位数据是使用第三个模块接收到的时间
想使用第三个模块接收俩模块的数据做小车跟随 理论上讲 23模块位置固定1-2模块之间的消息 3模块能接收到 而且1-2之间3条消息之间的时间差应该等于2倍1-2的距离 另外3个消息接收时间差的差应该等于1-3距离与2-3的距离差
这样应该能减少几个请求。。。但这时钟误差消除不顺畅啊。
页:
[1]