计算机和单片机通信问题 求救!!!

[复制链接]
2948|11
 楼主| iampoor 发表于 2007-6-10 22:06 | 显示全部楼层 |阅读模式
我单片机UART通过CP2102转换成USB,和电脑相连。<br />和计算机的数据交换协议如下:<br />&nbsp;MCU向计算机发送一帧数据,共10个字节;<br />&nbsp;计算机校验结束,如果数据正确则向MCU回复一个字符R;如果校验错误则回复字符W,要求MCU重新发送。<br />&nbsp;<br />&nbsp;数据量和波特率来计算,单纯的数据交换应该能在10秒种结束,再加上电脑的数据处理等延时,我觉得30秒怎么说都应该够了吧<br />&nbsp;但实际的测试发现,要90秒左右才能结束。<br />&nbsp;这些时间那里去了呢?计算机程序用VC做的,数据处理也就是带几个公式算算,怎么会耗费这么多时间呢?<br />&nbsp;请各位分析分析这个过程,时间会消耗在那里呢?<br /><br />&nbsp;<br />&nbsp;还有一个问题,就是计算机在回复字符的时候,有时候单片机接收不到,所以数据传输就停止了,但重复发送字符,就可以了。<br />&nbsp;我怀疑是计算机的程序有问题,可同事确认程序没有问题,这个怎么会这样呢?而且这个东西和波特率没有关系,从38400到115200好像没有影响到这个出错的概率。<br />&nbsp;&nbsp;如果是硬件UART和USB转换的问题,那不至于重新发送就能收到这个字符吧,我的理解。<br />&nbsp;是USB和UART通讯中的时序问题?还是什么呢?<br />
sluo 发表于 2007-6-10 23:06 | 显示全部楼层

会不会是

会不会是PC机发送太快,MCU接收缓冲区溢出了?
linjing 发表于 2007-6-10 23:29 | 显示全部楼层

没用过CP2102,建议你调试期间,简化一下你的系统

调试的时候,先用单纯的232试试,上位机的程序先做个简单点的,不带计算,收到数据就回复,等通讯问题都解决好了,再进行计算,而且是通讯与计算分开写
chunyang 发表于 2007-6-11 00:29 | 显示全部楼层

很显然是程序问题

对PC而言,该USB在逻辑上是不存在的,而是一个串口,编程按串口的规范进行,这点数据量的传输及处理时间仅应为毫秒级。
 楼主| iampoor 发表于 2007-6-11 10:05 | 显示全部楼层

我都迷糊了

对于MCU程序来说,肯定没有问题,发送完了等着接收,接收完一个字节就发送。<br />对整个过程数据传输速度慢的问题,我搞不清楚,我只能解释是WINDOWS操作系统下面,对其他程序的操作影响这个程序的执行。不知道能不能说的通?我对这些不了解,做软件的只能告诉这个东西是类的问题,他也没有办法解决。上火!<br /><br />&nbsp;还有PC发送出来的字符MCU&nbsp;有时候收不到,我很郁闷,现在说不清楚是什么问题。
chunyang 发表于 2007-6-11 11:00 | 显示全部楼层

前面已经提到是PC平台的问题

虚拟串口并不等于真正的串口,有“兼容性”问题,所以编程要注意,切记不能针对USB编程,而是针对那个虚拟的“串口”,但处理会有所不同,尤其是涉及缓冲时。建议你转移到普通串口上做对比测试,找出程序的错误。
 楼主| iampoor 发表于 2007-6-12 08:44 | 显示全部楼层

谢谢阳春面老大^_^

谢谢阳春面老大^_^<br /><br />换成电脑上的串口,问题还是这样。<br /><br />我估计是VC编程的问题,还有在WINDOWS操作系统下面,进程太多,估计占用时间太多。
chunyang 发表于 2007-6-12 13:24 | 显示全部楼层

肯定不是进程占用问题,而是对串口设备的编程部分有问题

别说用VC了,就是用VB只要编程正确就不会有问题,建议仔细看看VC的编程手册。
 楼主| iampoor 发表于 2007-6-12 16:46 | 显示全部楼层

可怜我不懂VC

做软件那小子黔驴技穷&nbsp;&nbsp;我也不懂。<br />糟糕。<br /><br />谢谢面条!
zhaizhifen 发表于 2007-6-14 19:41 | 显示全部楼层

瞢了

软件那小子黔驴技穷&nbsp;&nbsp;我也不懂。<br />糟糕。<br /><br />
nordic 发表于 2007-6-18 15:26 | 显示全部楼层

不懂!

  
lixun00 发表于 2007-6-19 15:52 | 显示全部楼层

是不是软件问题,只要把串口部分剥离出来一调试就知道

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

205

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部