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