近期正在调试无线模块,包括GPRS以及CDMA模块,环境为linux,采用PPPD拨号方式;
目前GPRS模块能支持GSM07.10协议的多路复用,而CDMA模块厂商正在调试,目前采用直连物理串口方式;
在调试过程中发现CDMA模调用PPPD拨号始终无法成功,经过放开调试开关查看到PPPD调用chat脚本拨号发的第一个AT探测指令就无法成功!经过反复调试发现原来是CDMA设置成了无流控方式,而PPPD的传参中却设置了crtscts模式表明为启用流控打开物理串口方式!(具体原因为此时物理串口会判断流控线而未真正将AT指令发送到模块而导致模块无响应),改为nocrtscts后问题解决!
但在挂断过程又出现问题了,挂断脚本采用传统的+++切换,但实际情况是linux系统挂断了PPP拨号,ifconfig看不到PPP0连接了,但模块本身并未从数据模式切出到AT指令模式,导致下次PPP重拨号失败!(此时发AT指令得到模块回复一串乱码!!!),但手动输入+++能切出!目前只能重新复位模块后恢复为AT指令态!此问题已经与CDMA模块厂商沟通,但至今仍然未找到好的解决办法!如有后续继续完善.
但由于GPRS采用多路复用,PPP挂断通过+++则能切出到AT指令态!!!
在项目过程中遇到通过GPRS模块远程下载情况,则需要关心GPRS模块下载速度,与模块厂商确认得到的答复是:最好的下载速度为4.5K Bytes/s,上传最好速度为:1.5K Bytes/s;网络一般情况下下载速度在1~3K Bytes/s之间.