5508|16

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

S3C2440平台WinCE5.0中串口发送堵塞现象的疑惑 [复制链接]

S3C2440平台WinCE5.0中串口发送堵塞现象的疑惑:

   本人开发一个软件,使用TQ公司的SKY2440开发板为模板,使用的是从4.2移植到wince5.0使用的BSP包。
   该软件需要用到2个串口(COM0和COM1),TCP/UDP编程;修改MDD层的mdd.c文件使串口接收缓冲区为1MB,同时在BSP的注册表中使2个串口的线程优先级都提高到97(wince5.0中驱动的最高级别,之前设置为0也可以正常使用,但有时出现串口发送堵塞的现象),应用程序的串口超时为:

  1.          //设置串口读写时间
  2.         COMMTIMEOUTS CommTimeOuts;
  3.         GetCommTimeouts (m_hComm, &CommTimeOuts);
  4.         //读线程1ms超时
  5.         CommTimeOuts.ReadIntervalTimeout = 1;        //字间距间隔1ms
  6.         CommTimeOuts.ReadTotalTimeoutMultiplier = 0;          
  7.         CommTimeOuts.ReadTotalTimeoutConstant = 0;
  8.         //写超时=0+(1*要写的字节数)
  9.         CommTimeOuts.WriteTotalTimeoutMultiplier = 1;        //10;  
  10.         CommTimeOuts.WriteTotalTimeoutConstant = 0;  //1000;
复制代码


        同时应用程序的串口读线程设置为普通应用程序最高级别的248级“THREAD_PRIORITY_TIME_CRITICAL”(之前设置为0也能正常使用,但有时出现串口发送堵塞的现象)。

      两个串口的波特率均为115200,8个数据位,1个停止位和0个校验位。

      应用程序的串口的读写操作使用的是读操作为线程,写操作为函数的方式模拟异步运行方式!
      
       经过测试,经过以上设置,串口执行短数据的接收后立即把收到的数据通过同个串口发送回上位机,最快速度为4ms,请问这个速度正常不?
       这种上位机向2440发送完数据后,等待一定时间(该时间内2440已把数据回发给上位机)后,再继续自动发送数据的模式下,2440的最快转发速度均在4ms。
      
       但是实际应用中,如果是在串口有可能同时接收和发送的情况下,串口发送会堵塞一段很长时间(有时可以达到1000ms量级)!

       请各位帮忙分析一下原因和提出改进方法!
      谢谢各位eeworld的网友咯!

最新回复

现在使用TQ2440原生态的WinCE5.0 BSP包,问题解决了; 10个字节左右的数据从接收到直接转发出去,用时在2ms以内! 结贴!  详情 回复 发表于 2010-4-2 16:19
点赞 关注
 

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
可以检查一下串口发送时还有没有其他线程在工作,建议把其他的线程屏蔽掉,在一个相对纯净的条件下测试你的串口操作
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 wdhhawk_nnc 的回复:
可以检查一下串口发送时还有没有其他线程在工作,建议把其他的线程屏蔽掉,在一个相对纯净的条件下测试你的串口操作


哦,屏蔽其他线程的思路不错,那如果操作呢?
 
 
 

回复

89

帖子

0

TA的资源

禁止访问

4
 
提示: 作者被禁止或删除 内容自动屏蔽
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 sunrain_hjb 的回复:
http://download.eeworld.net/source/870333
有点怀疑是应用程序的问题,
你下载这个串口调试工具测试一下,是否也有同样的问题。

三星应该有出5.0的bsp吧,你可以找一个跟你现在的对比看看。


这个工具我有。

也有可能是驱动的问题,但是现在再移植那个5.0的BSP要耗点时间...
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

6
 
用那个工具测试的效果怎样?问题还是存在么?

如果怀疑是BSP的问题,最好还是从BSP入手解决,否则是治标不治本,也许花的时间更多。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 sunrain_hjb 的回复:
用那个工具测试的效果怎样?问题还是存在么?

如果怀疑是BSP的问题,最好还是从BSP入手解决,否则是治标不治本,也许花的时间更多。


那个软件我今天试试,它不能完全模拟实际使用的情况.
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 4 楼 iwillbeback008 的回复:
引用 3 楼 sunrain_hjb 的回复:
http://download.eeworld.net/source/870333
有点怀疑是应用程序的问题,
你下载这个串口调试工具测试一下,是否也有同样的问题。

三星应该有出5.0的bsp吧,你可以找一个跟你现在的对比看看。


这个工具我有。

也有可能是驱动的问题,但是现在再移植那个5.0的BSP要耗点时间...


先弄好5.0 串口,其他不用管先,直接跑都可以的,呵呵。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 5 楼 sunrain_hjb 的回复:
用那个工具测试的效果怎样?问题还是存在么?

如果怀疑是BSP的问题,最好还是从BSP入手解决,否则是治标不治本,也许花的时间更多。



你说的那个测试软件,我测试啥?
又没有自动接收数据后自动回发功能。

看来还是像7楼说的,先换个5.0的BSP试试...
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

10
 
你可以用自动发送的功能进行测试,看看效果。
你的应用是收到后再回发同样内容?你可以模拟着自动发送一些数据。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 9 楼 sunrain_hjb 的回复:
你可以用自动发送的功能进行测试,看看效果。
你的应用是收到后再回发同样内容?你可以模拟着自动发送一些数据。


我就是想用“收到后再回发同样内容”,来测试小数据量时,串口的速度
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

12
 
自己再顶上
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

13
 
TQ2440 5.0的BSP包是兼容SKY2440的
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

14
 
帮你顶下
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

15
 
通过咨询TQ公司,TQ工程师回复:
1、从4.2升级到5.0的BSP包的串口驱动本身有bug,当数据量大了就会出现丢失数据的问题。
2、推荐使用TQ2440的BSP包,全面兼容SKY2440。
3、下面是链接: http://bbs.embedsky.net/viewthread.php?tid=554&extra=page%3D1  
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(中级)

16
 
延迟100ms是winCE线程时间片的大小。
4ms的发送时间,数据量有多大?这么慢。
可以更改一下线程时间片,不过这点我感觉不怎么好。
你的串口程序线程之间关系可能不太合理,所以那么耗时间。
建议修改程序。

 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

17
 
现在使用TQ2440原生态的WinCE5.0 BSP包,问题解决了;
10个字节左右的数据从接收到直接转发出去,用时在2ms以内!

结贴!
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表