该通讯要求能达到吗?

[复制链接]
2121|2
 楼主| helloCan 发表于 2007-8-20 10:30 | 显示全部楼层 |阅读模式
最近有个小项目需要采用RS-422通讯,通讯要求如下:<br />通讯波特率为:串口工作模式3,11bit,波特率为115.2K<br />用户要求每秒传送有效数据768个数据帧即4608字节/S,帧格式如下:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />数据帧格式定义如下:用于发送浮点数据<br />起始标志(0x16)&nbsp;<font color=#FF0000>数据字节1&nbsp;&nbsp;&nbsp;&nbsp;数据字节2&nbsp;&nbsp;&nbsp;&nbsp;数据字节</font><font color=#FF0000>3&nbsp;&nbsp;&nbsp;&nbsp;数据字节4&nbsp;&nbsp;&nbsp;&nbsp;</font>数据校验字节&nbsp;&nbsp;共计6字节数据<br /><br />但我在进行调试时,发现RS-422通讯根本达不到如此多的数据,最多能达到每秒20个有效数据帧即120字节/S。<br />发送数据时是一字节一字节发送,TB8位为空,串口发送子程序如下:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt6;i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//一帧数据包括6个字节<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SBUF=SendBuf;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(!TI_0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TI_0=0;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay_1ms(x);&nbsp;&nbsp;&nbsp;&nbsp;//延时程序,延时时间约为x&nbsp;ms;<br />}&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />在双方通讯时,当波特率为115.2Kbps或9.6Kbps时,若发送延时时间小于3ms时,接收方接收数据就会出现丢帧或帧不完整现象。<br />请高手帮分析分析,该通讯要求能否达到,如何达到?&nbsp;谢谢啦!!!<br /><br />
fuzichun 发表于 2007-8-21 08:53 | 显示全部楼层

自己先多想想

就象这个也容易想通的&nbsp;
a12345678 发表于 2007-8-21 22:41 | 显示全部楼层

你应该用中断,不应该用延迟,特别是ms级延迟

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

本版积分规则

34

主题

73

帖子

1

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