目的是为了使用电话线进行点对点的双向数字语音数据传输,语音数据经过压缩以后单向的传输码率约为7500bps,也就是说实际双向的传输速率要求为15Kbps左右,目前基本功能已经实现,但是测试时发现在线路比较长的时候,例如跨市的长途传输,数据在传输时会发生丢包现象。追踪modem的行为发现当丢包时,modem的UART接收流控一直处于高电平状态,也就是说modem拒绝接收数据。
分析:因为modem的传输协议(V92,V34等)自身带有纠错功能,也就是说当线路质量较差时,modem会不停地重发数据包而导致内部缓冲区溢出,导致不能再接收新的数据包而产生了丢包现象。
小弟水平有限,目前可查的modem资料也不多,不知道坛子里的各位大虾们有没有做过类似的工作?还请给个分析解决问题的思路,或者是否这条路就走不通呢? |