|
因为case的需要,基本上应用的时候都是连续接收或者连续发送的,数据量不大不小,要求是不低于300B/s。
1.MC55在利用AT^SISO打开链接时,需要等待比较长的时间;而EM200打开PPP链接的延时很短。
2.MC55(GPRS)上网之后,获得是移动内部的IP:10.xx.xx.xx,虽然MC55有建立TCP_Sever的指令,但是因为不是真正的公网IP,所以这个指令没用。
EM200通过PPP链接上网后获得的是公网IP,不过很可惜,EM200里面只有作为客户端链接服务器的AT指令,没有建立TCP_Sever的指令,所以也无法将自己设为服务器。
3.在编程上,发送数据时,两者的步骤差不多,MC55最多一次发送1500个字节,EM200是1024个字节。
不过接收时就大有区别了,MC55收到数据时是先暂存在缓冲区中,等待用户来主动读取,如果你打开了TCP/IP的URC,这时MC55会主动向DTE告知,有数据来了,形式是^SISR:X,XXXX,在关掉TCP/IP的URC模式下,则可以使用AT^SISR指令去查询这时收到的数据,再通过AT^SISR=x,xxxx来读出数据。MC55最多一次接收1500个字节。
而EM200没有读取数据的专用AT指令,一旦收到数据,并不进行缓冲而是直接向DTE输出,形式是CF LF % TCPRECV:0,xx CR LF xxxxxxxxxxxxxxxxxx。EM200最多一次接收1408个字节。
EM200的这种接收模式会给编程带来很大的麻烦,因为没有指令去查询收到的数据个数,而且EM200会不定时地向DTE发送数据,因此必须单独开一个进程用于接收EM200收到的数据(必需是高优先级),然后从接收到的数据中进行分析本次收到了多少个数据,再进行截取其中的有效数据。
很难说,西门子MC55和华为EM200的两种处理方式谁更好些,西门子的这种方式好处是编程上面很简便,但是如果读取不及时的话,很有可能因为MC55缓冲不够,而产生数据覆盖的问题;华为不缓冲直接输出的模式好处是杜绝了数据覆盖的可能性,坏处就是写程序很麻烦。
4.功耗的问题,我的两块载板上都是用的2576的开关电源,在收发数据中,光看直流稳压电源的电流值,感觉功耗两者差不多,也没觉得CDMA比GSM网络功耗低多少,可能这个功耗区别主要指的是在使用语音的情况下吧。
最后还有一点:不要指望串口的硬件流控能防止DTE来不及接收串口数据的情况,我感觉就这两款模块而言,硬件流控只是个摆设而已。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|