[url=] [/url]开博一年了,所以决定今天一定要发表点有价值的东西来纪念一下.不过要先看电影,随便开个头,以后再修改.呵呵
什么是PPM, PPM是英文Pulse Position Modulation的缩写,中文意思是脉冲位置调制,又称脉位调制.其组成多为头码+脉冲数.PPM以其编码方式简单,使用方便而曾经被广泛的使用在一些无线遥控系统中.虽然这种方式在遥控系统中正逐渐被PCM方式所代替,但是如果在有线系统中,如多自由度的机器人中,如果需要把系统控制和舵机控制分离的话,即使用一片MCU来专门进行舵机的方位控制.这依然还是一种非常不错的方式.下面以如今模型系统中常见使用的方式来简单介绍下PPM的具体使用.假如3通道的遥控器可能产生如下的PPM脉冲波形为
所谓的三通,就是指控制信号可以分别控制3个通道的舵机,比如控制速度一个,再有2个来控制不同的方向. 如其他文章中所提到的,舵机的控制一般采用20毫秒左右的周期脉冲中,微调正脉冲宽度的方式,该脉冲宽度根据舵机的性能不一而不一的,宽的有0.5~2.5毫秒,窄的有1.1~1.9毫秒等等.而上面图示的channeln的宽度就正好是驱动舵机的20毫秒周期性脉冲中的正脉冲宽度了.接收机也正是需要把各个不同通道的脉冲宽度检测出来,并给正确的分配在每个舵机的驱动信号上.
对于无线遥控的系统,接收机必须要完成这样两个功能, 一正确并准确的测量出个通道的脉冲宽度,二将各通道的控制宽度正确的分配在相应的舵机控制信号上.
在以往的PPM解码处理上,常使用通用的数字集成电路来完成,如CD4013,CD4015,74HC164等等.这样的硬件解码方式通常导致"抖舵"(接收机在无控制信号或控制信号很弱时使得其控制的舵机产生比较严重的抖动)的现象.所以越来越多的模型系统都开始采用MCU来做接收控制器了.然而一些廉价,功能较少的MCU处理起来也会手忙脚乱的,因为MCU一直要不停的检测各脉冲的宽度,象这样的宽度明显使用查询方式是不可取的,所以就必须使用外围中断或脉冲捕捉模式等.而脉冲捕捉的方式,不是一般的低端MCU所具有的.看来对于低端的MCU,外围脉冲的宽度检测只能靠外围中断配合定时器了.好家伙一下子就使用了2各硬件功能.而另外一方面还需要控制好几各舵机的运行呢, 各舵机的约20毫秒周期性脉冲又怎么产生,各舵机的脉宽又该怎么调节.所以对于传统的低端MCU来说,就这样一个简单的接收控制也显得力不从心了,或是检测的宽度和信号源有"较大(10us左右)"出入,或是舵机控制方面脉宽输出的宽度和检测的宽度又有"较大"出入,其实一个30us范围抖动的信号,足可以让瞎子听见舵机的抖动声了,呵呵.而作为多核心的FPPA来说,情况完全不一样了.欢迎查看FPPA是怎么高精度控制舵机的吧,还是毛主席说得好"人多力量大呀"!事实证明采用FPPA控制的PPM接收机的效果的确比一般MCU好很多的,相信使用它来做PCM解码会有更好的效果.当然FPPA再强也需要其他部件的相互配合才可以做出更完美的模型的了. 比如更稳定的高频信号,更轻便灵活的结构等等.
好了,由于本人才疏学浅,就先写这么多吧,希望对初学者有一点帮助的作用,同时还希望各位前辈,各位同行指正一些有过错的地方,谢谢!也欢迎一些技术朋友和我共同探讨一些技术问题,一起成长,一起进步,一起向前走!
[ 本帖最后由 raker 于 2007-6-21 09:27 编辑 ] |