加我模型论坛

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: joyrus
打印 上一主题 下一主题

我的第二个单片机开源项目——全比例模型遥控器摇杆位置采样与PPM编码信号输出程序

[复制链接]
2#
 楼主| 发表于 2012-6-21 08:18:01 | 只看该作者

本人对设计前所做的一些设计要点归纳

本帖最后由 joyrus 于 2012-6-21 19:19 编辑

要点:
1. 遥控器摇杆并没有占用电位器的所有行程,所以其采样电压并非0-5V,这样的话就需要使用单片提供的Vref+/-两个参考电压引脚来框定摇杆满行程的电压。另外还要考虑微调叠加的总电压。当然如果是独立微调电位器暂时就不用考虑。

2. 如果设计为4通道全比例那么需要4个ADC通道,如果微调独立则需要另外4个ADC通道,微调的另一种方式为机械按钮,这样就需要8个普通IO口,节省下的4个ADC通道可用于遥控器通道扩展。

3. PPM编码的特点:在以20ms为周期(每一帧)的信号中包含了所有通道的信息,每个通道占用最多2.5ms的脉冲宽度,这样一帧信号中最多只能纳入8个通道的信息。这就是为什么Futaba的遥控器在PPM模式下仅支持8通道的原因。

4. 单片机需要在20ms内完成所有通道的ADC转换并将数据处理后输出标准的PPM编码。如果以最简单的不带任何存储与调整功能的遥控器为例,其对单片机的处理能力主要由遥控器通道的数量决定的,当然同时还有能够使用的晶振频率,概念就是电脑CPU的频率一样。

5. 如果使用单片机内部的ADC,那么在获得结果后可以直接用于转换输出PPM编码,但这样也会占用单片机(MCU)的处理时间,因为ADC采样需要时间,同时采样后因对数据进行一些基本的校验,这都需要时间,即使MCU有8通道的ADC也是一个个轮流采样,而不是同时进行的。如果用独立的ADC采样IC,那么采样的过程就可以和MCU并行工作,但问题又来了。ADC采样后的数据需要传输到MCU来处理,这需要程序对数据进行缓存。本人认为在对采样位数要求不高(一般8位-10位),遥控器通道数比较少的情况下,应该使用MCU内建的ADC。而在通道数比较多,采样位数12位甚至更高时要考虑使用独立的ADC部件。最佳的方式是用一颗MCU独立采样并处理采样数据,有专门的共享存储器来存储数据供其他MCU使用并输出需要的更高级的数据格式。

6. ADC采样位数问题,PIC16F877A有10位ADC,而8位MCU需要处理超过8位的数据需要分两步来做,所以是选择8位还是10位ADC模数在实际编程时将做以比较。如果MCU(单片机)的处理能力有足够的冗余,内存空间足够,程序代码空间足够(如果使用查表确定转换关系的话,表长度将增加到原来的4倍),考虑使用10位ADC模数转换。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|JOYRUS.com

GMT+8, 2024-5-18 14:01 , Processed in 0.170398 second(s), 15 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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