本帖最后由 xcsjava 于 2010-4-5 11:09 编辑
无线串口 三个问题: 1 为什么要用?
2 怎么用?
3 什么叫透明串口?
1 为什么要用? 一般的调试程序,比如我们的xs128编程,可以使用bdm来查看寄存器,内存的内容来查看我们的程序是否运行正确,他提供了单步运行,断点设置等,这些工具的目的就是在写程序碰到问题时,用这些工具能方便,有效的排除bug。当车静止的时候我们可以用这些工具做些工作,当我们的车跑起来的时候,再用bdm来调试车的程序的运行状况,难度就大了。可是我们必须要知道车运行起来的各种参数,比如速度,图像,转角,传感器状态。 只有这样,我们才能真的控制车,只有你熟悉它,你才能控制它。 这就是我们要用无线串口的原因,看车运行的实时的状态数据。
2 怎么用?
我们既然要看车的实时状态,那么必须要保证速度。必须要保证车输出实时数据的时候不影响它的处理环节,否则的话,车跑的不连贯。表现诡异。 关于速度,有的人说了,我每个控制周期,才发一两个数据,那么速度不用谈。当你发的数据多的时候怎么办?比如光电的传感器8个,控制周期2ms,,每隔2ms我就要输出8个传感器的状态,来查看路况,同时还有速度,还有转角,这个时候怎么办?我的车在传输的时候会受影响吗?答案是肯定会,因为你的串口速度慢,你的大部分时间都用来传输数据,而不是控制车跑。所以你的车跑的就诡异了。跑不起来。。。我们分析它的原因。 一般无线串口串口是“子母”收发两个模块,小车安装发模块,电脑上用收模块,让车边跑边传图像到电脑上,想法很好,效果很差。目前一般的无线串口速度最快76.8k/s ,这个速度看实时数据,太慢!!我们分析一下就清楚了, 首先重量 无线串口+天线给车带来很大的负重。 其次电源 无线串口的电源你需要转换3.3或者6-8v的,5v的很少。 重点是速度 而速度是致命的伤害,我们分析下, 车根本跑不起来,跑的很滞后!怎么办?有人想到了b方案。目前的无线串口76.8k/s这个速度还是极限速度。我们稳定的跑,那么76.8k/s ,在串口上每次要发送一个字节。这个时候他的速度将为为76.8/8=9.6k/s,如果我们是摄像头那么我们想每场传数据。要每隔20ms 传送数据。因为 1s= 50*20ms ,
那么速度再细分9.6k/50= 0.192k的数据 也就是说我们每场什么事情都不干,只能发送0.192k的数据!
0.192k是什么概念? 如果每场采集30行,每行30个点那么数据就是0.9k 就算你的速度快,就算你每次发送一位就是数据,你的速度无非就最1.6k的数据,什么概念 30行 50列。这个速度根本达不到实时显示的要求,如果无线速度上不去,你的开始就意味着失败。 面对这个问题,我们必须提高无线串口的速度 |