5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 4980|回复: 43
打印 上一主题 下一主题

浅谈模型遥控系统的响应时间(3)

[复制链接]
跳转到指定楼层
楼主
发表于 2010-11-4 20:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在上一次的分析中我们得到了传统的SPI/UART/IIC接口的2.4G遥控系统理论上最大系统响应时间不会超过40ms的结论

让我们看看关于2.4G遥控响应时间测试的帖子

http://bbs.5imx.com/bbs/viewthre ... &extra=page%3D1

有一组数据非常有意思,简直堪称教科书式的典范

Spektrum DX6   |AR6000  |59 | 63| 80.6| 88.6| 72.8
Spektrum DX6i  |AR7000  |23 | 25| 47.6| 49.6| 35.74
Spektrum DX7   |AR7000  |14 | 16| 36  | 40  | 27.5
Spektrum DX7   |AR6100  |14 | 16| 36  | 40  | 27.5
Spektrum DX7   |AR6000  |31 | 35| 53  | 61  | 45
Spektrum DX7SE |        |12 | 13| 20  | 22  | 17

我们看到了可爱的数字40,呵呵!

第3组和第4组的接受不同,但是测试结果却一致
第2组和第3组的接受相同,测试结果有了差别
我们再把第2组对应的数据减去第3组对应的数据,差不多结果都等于9左右.。。。9ms!谁偷走了DX6i的9ms?

我们忽略了什么。。。?混控!
AD转换的数据是不能直接交给舵机来扭动的,首先它必须要利用摇杆的上下止点和中点数据来校正,然后交给混控做类似1通道×50%+2通道×50%这样的计算,这样的运算需要转换成(1通道×50+2通道×50)/100这样的定点运算以减少除法的运算次数,(像DX6i这样遥控使用的单片机是ATMEGA64,这个处理器在华2801/天7上也同样使用。。。)即便减少了除法的运算次数,但是做一次除法对单片机来说还是很耗时的,何况还要处理舵机行程,大小舵,EXPO曲线,都是需要除法运算的,就是这样的运算偷走了DX6i的9ms!

一次AD转换的周期20ms,混控计算花去了9ms,剩下的时间还得给中断,键盘,LCD显示留点吧?地主家也没有余粮啊。。。!这20ms的周期差不多也剩不了多少了。。。

这就是为什么有模友拆控,我就一定想看单片机照片和型号的原因,不管你功能如何强大,如果只有三岁小孩的心脏,通通都是浮云。。。

从测试数据来看,DX7显然抛弃了低效的8位的单片机ATMEGA64,计算已经不成为负担,因为没有看到拆解图片,估计是32位的处理器,但还是沿用传统的20ms/50FPS的设计,最大延时锁定在40ms上。。。感谢B.Tiger同学提供的照片,证实DX7SE的处理器型号是瑞萨(以前是日立)的H8/3687 (8通道10位AD,准32位微处理器,内置乘除法指令,一次32位/16位除法的时间不超过2us(22个时钟周期))



题外话:H8应该算是日本比较成功的微处理器系列,从8位到32位全系列一个架构通吃。。。第一代LEGO头脑风暴(黄砖头)就是内置的H8处理器,呵呵:em15:

新的DX7SE,第一个抛弃了传统的20ms/50FPS的设计,改用了我曾在(1)探讨过的方法,减小了采样和舵机周期到11ms/91FPS的激进的模式,直接把系统延时锁定到了22ms的记录上,同时仍然可以兼容传统的舵机

[ 本帖最后由 lahori 于 2010-11-9 12:53 编辑 ]

欢迎继续阅读楼主其他信息

沙发
发表于 2010-11-4 21:38 | 只看该作者
十几年前就罢了, 如今32位高性能嵌入式处理器的价格相对于遥控器的价格根本不算什么, 竟然还在用8位片子...

我一直觉得模型遥控器的成本控制到了令人发指的程度, 还有一个例子, 电位器, 舵机这种易耗品上使用电位器来做输入反馈也就罢了, 但是用在遥控输入上, 我实在不能理解, 某卖1w多的顶级控都是, 而且低端控上往往都不给用户校准的功能, 相比之下, 使用磁编码器的舵机已经出现了...
http://www.hitecrcd.com/products ... tal/hs-m7990th.html

固件升级这在电脑电子产品上是司空见惯的功能, 连几百块钱的鼠标都可以升级固件, 放到遥控器上, 就是只有进口高端遥控器的特权了

基本上我认为整个遥控器业界是个不求上进只知道吃品牌老本的烂掉的业界
3
发表于 2010-11-4 21:48 | 只看该作者
原帖由 JimmyZ 于 2010-11-4 21:38 发表
十几年前就罢了, 如今32位高性能嵌入式处理器的价格相对于遥控器的价格根本不算什么, 竟然还在用8位片子...

我一直觉得模型遥控器的成本控制到了令人发指的程度, 还有一个例子, 电位器, 舵机这种易耗品上使用电位 ...

这个也是我一直奇怪的,应该不是成本问题。国外中高端控的价格基本可以忽略硬件设备成本,主要成本可能还是在设计和研发上面。
偶是纯搞软件的,偶不太懂硬件。但自从入魔以来一直就奇怪 这么贵的遥控设备干吗还用单片机。。。不知道有没高人能够解释一下~~
最后顶LZ一下,从你这三贴里面学到不少东西
4
 楼主| 发表于 2010-11-4 21:55 | 只看该作者
原帖由 JimmyZ 于 2010-11-4 21:38 发表
十几年前就罢了, 如今32位高性能嵌入式处理器的价格相对于遥控器的价格根本不算什么, 竟然还在用8位片子...

我一直觉得模型遥控器的成本控制到了令人发指的程度, 还有一个例子, 电位器, 舵机这种易耗品上使用电位 ...


硬件价格不是问题,周立功卖的32位ARM Coretex-M3的开发板连JTAG在内才卖99元。。。关键是软成本。。。

日帝和美帝比创新,日帝八杆子赶不上;棒子和日帝比成本控制和可靠性的平衡,棒子八杆子赶不上,国人和棒子比面子活路,国人八杆子赶不上,全世界人和国人比忽悠,全世界人八杆子赶不上。。。
5
发表于 2010-11-4 22:19 | 只看该作者
我基本上在说日本那两家老牌, 国内就更搞笑了, 别的不说, 光是天地飞WFLY商标那傻样儿, 我要是天地飞老总立刻把美工炒了, 等等, 也许他们根本没有美工?

跑题了, 楼主别见怪哈, 其实我也是纯搞软件的, 信号处理延迟什么的基本不懂不敢瞎扯
6
 楼主| 发表于 2010-11-4 22:43 | 只看该作者
原帖由 JimmyZ 于 2010-11-4 22:19 发表
我基本上在说日本那两家老牌, 国内就更搞笑了, 别的不说, 光是天地飞WFLY商标那傻样儿, 我要是天地飞老总立刻把美工炒了, 等等, 也许他们根本没有美工?

跑题了, 楼主别见怪哈, 其实我也是纯搞软件的, 信号处理延迟 ...


我上面也是调侃的,呵呵,Futaba和JR比,我感觉还是Futaba更接近那种很日本传统的电子工厂,日本人在模拟电路上的基础很扎实,这从FM/PCM PLL高频头上的奇巧淫技可见一斑。。。对传统的继承很到位,同时有些盲目自大而固步自封,整体缺乏创新,在可靠性和成本控制上平衡的不错。。。Futaba高端使用的村田SV01密封编码器还是不错的,线性误差+-2%,寿命超过100万次,性能和可靠性平衡得很好,而磁编码器有可能只是看上去很“美”
7
发表于 2010-11-5 00:30 | 只看该作者
内容单片机这种简单的处理器要稳定的多吧!给你一个i7你能用不?就是arm处理器还是有挺高的死机风险,软件复杂了bug也随之增多,你见过你家电子表死机吗?国际空间站用的还是p4处理器,为的也就是稳定性,其实讨论控的延时意义不大,飞飞机多少有一个提前量的
8
发表于 2010-11-5 06:10 | 只看该作者
关键是买的人少,要多的话,啥功能都给搞出来,早就双向高宽带传输啦,原生FPV,自带眼镜显示器
没事放放簧片,听听MP3啥的更是小菜一碟,更绝可能连模拟器都集成了,关键是用户少,列强们还
在3C产品你死我活呢,这点小钱,人家还看不上:em15:
9
发表于 2010-11-5 09:40 | 只看该作者
LZ孤陋寡闻。
软件的做法是千差万别,更不少爱好者还在干着纯汇编的做法,以mega64为例(注意,现在ATMEL已经整合了成mega64A,全电压范围内可在16Mhz工作),一次ADC时间为13-260us,以满足10bit最高分辨率情况下也能做到67us,不计较,按照104us计算(为何104,8Mhz的64次分频,13个ADC周期。足以保证精度),7个ADC通道(AIL,ELE,THR,RUD,电位器1,电位器2,电池电压),算上软件滤波(最简单的是求均值),每个ADC通道需要4个样本,整个周期下来4*7*0.104=2.8ms。如果是汇编处理,除法耗时都是一百微妙以内,乘法数十微妙(别忘了mega64有硬件乘法器,你扩展成16bit不是难事)....还有什么避免除法,将除法转换为乘法.....等等.....接触过这样的人才,才能说出这样的话。

不要想当然。事物的内在远比其表面复杂,曾有爱好者用mega系列单MCU实现数字功放(类似SPWM)。

.............多说无益,找个实物测测看。
10
 楼主| 发表于 2010-11-5 10:19 | 只看该作者
不怕你不出头,出头了板砖伺候。。。:em15:

就按你说的一次除法100us,乘法我不不更你计较了,把20ms的周期全拿来做除法,顶天了也就是200次,还要分配到各个通道上,按8通道算,每个通道在一个PPM周期内最多只能做25次除法,就让我来帮你算一下!

1. 摇杆位置校正需不需要除法?
2. 摇杆行程需不需要除法?
3. 大小舵需不需要除法?
4. 副翼差动需不需要除法?
5. 混控需不需要除法?
6. 舵机输出校正需不需要除法?                       
7. EXPO需不需要除法?
8. 自定义曲线需不需要除法?

要把这些事做完,1/3的时间都没有了!

当然你可以不用做除法,直接做减法,把功能去掉那就更省事儿。。。这叫阉割。。。!
11
 楼主| 发表于 2010-11-5 10:27 | 只看该作者

回复 9楼 全心全意 的帖子

既然你的ATMEGA64这么强,直接把时钟中断改成5ms嘛,这样你的最大延时只有13ms,直接超越8FG拿世界第一,多给力啊!

不管我是不是孤陋寡闻。。。我比你高明的地方是我不需要去测就就能知道结果。。。为什么?因为我们俩的态度不是你我说了算,是屁股说了算。。。

读万卷书不如行万里路,行万里路不如阅人无数!

[ 本帖最后由 lahori 于 2010-11-5 10:43 编辑 ]
12
发表于 2010-11-5 10:28 | 只看该作者
AVR确实是不错的8位机,不过ATMEL太不厚道,近一年来价格越来越高,疯狂了。
13
 楼主| 发表于 2010-11-5 10:37 | 只看该作者
原帖由 铜河 于 2010-11-5 10:28 发表
AVR确实是不错的8位机,不过ATMEL太不厚道,近一年来价格越来越高,疯狂了。


估计是要强推ATMEGAX的架构。。。ATMEGA不是不好,在低端控上用还是不错的,够用!若是非要标榜有多强,多高端,又不愿拿数据出来说话,这就不好了!
14
发表于 2010-11-5 11:11 | 只看该作者
原帖由 lahori 于 2010-11-5 10:19 发表
不怕你不出头,出头了板砖伺候。。。:em15:

就按你说的一次除法100us,乘法我不不更你计较了,把20ms的周期全拿来做除法,顶天了也就是200次,还要分配到各个通道上,按8通道算,每个通道在一个PPM周期内最多只能 ...



半桶水响叮当。
15
发表于 2010-11-5 13:30 | 只看该作者
原帖由 JimmyZ 于 2010-11-4 21:38 发表
十几年前就罢了, 如今32位高性能嵌入式处理器的价格相对于遥控器的价格根本不算什么, 竟然还在用8位片子...

我一直觉得模型遥控器的成本控制到了令人发指的程度, 还有一个例子, 电位器, 舵机这种易耗品上使用电位 ...


至于遥控器为啥要用电位器,我想不是为了省成本。高端的电位器并不便宜的。磁编码、光电码盘用来测相对的角度变化是非常的精确的且无磨损,但是如何获得一个初始值可能比较困难。
16
发表于 2010-11-5 13:39 | 只看该作者
都在用AVR 我们公司早就抛弃了 用Freescale
17
发表于 2010-11-5 14:10 | 只看该作者
原帖由 全心全意 于 2010-11-5 09:40 发表
LZ孤陋寡闻。
软件的做法是千差万别,更不少爱好者还在干着纯汇编的做法,以mega64为例(注意,现在ATMEL已经整合了成mega64A,全电压范围内可在16Mhz工作),一次ADC时间为13-260us,以满足10bit最高分辨率情况下也能 ...

太给力了  :em15: :em15:
18
发表于 2010-11-5 14:29 | 只看该作者
原帖由 lahori 于 2010-11-5 10:19 发表
不怕你不出头,出头了板砖伺候。。。:em15:

就按你说的一次除法100us,乘法我不不更你计较了,把20ms的周期全拿来做除法,顶天了也就是200次,还要分配到各个通道上,按8通道算,每个通道在一个PPM周期内最多只能 ...

再加上一点, 控内数据处理必须扩展16位方式运行, 不然内部精度只有256位那就:em23:
19
发表于 2010-11-5 14:32 | 只看该作者
原帖由 youlan 于 2010-11-5 00:30 发表
内容单片机这种简单的处理器要稳定的多吧!给你一个i7你能用不?就是arm处理器还是有挺高的死机风险,软件复杂了bug也随之增多,你见过你家电子表死机吗?国际空间站用的还是p4处理器,为的也就是稳定性,其实讨论控 ...

我说了要用i7了? 不要矫枉过正, 你怎么不说用6502去?

空间站用的是P4? 用的是386好不好
20
发表于 2010-11-5 14:50 | 只看该作者
不过是不是需要除法, 这个很难说, 比如软件上直接优化成查表, 以输入精度12bit(但是ATMEGA64只有8路10位ADC?), 输出精度16bit内来计算, 每一通道8KBytes够了, 如果RAM足够(但是ATMEGA64好像只有4K SRAM), 这个方法能避免全部的乘除法

就算不做查表优化, 那些步骤也是可以先优化的, 除了exp/曲线以外, 其它的步骤全部是线性的, 于是总可以优化成f(x) = a * x + b, 只需一次乘法

总之, 这个地方的辨论不是太严谨

但是以国内厂商的态度, 我对其软件优化不抱期望

[ 本帖最后由 JimmyZ 于 2010-11-5 14:55 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

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