分类: 嵌入式
2012-09-03 14:57:39
摘要:
在Linux上使用不带GPRS协议栈的GSM模块,很容易会陷入僵局:无法使用pppd的同时又发送AT指令
给模块。此文从此角度出发,着手解决问题。
应用:
Modem--MCU使用PPP连接(DUP)发送数据编码。MCU需要频繁的检查模块的状态,包括:模块信号强度,检查短信和发送短信等等
常用解决办法
通常完成任务,需要使用以下技术:
1.当有数据需要传送时,建立PPP连接(DUN)。检测模块状态时,断开PPP连接,释放COM端口。在检测完模块状态以后,重新建立PPP连接,发送数据。
2.使用CMUX 串口复用,一路做PPP连接,一路输入at 指令。这需要在MCU和MODEM中加入CMUX协议。
第一种解决方法频繁的断开/连接将增大不稳定的可能性,通常DUN需要几秒时间才能正常连接。
Instead of requiring separate physical interfaces to manage different data communication technologies,
CMUX provides a virtualized communication interface. A virtual communication port consists of placing a layer of abstraction between hardware units and the software running on them, abstracting available system resources from a single physical unit and making it act as multiple, independent logical entities.
通过多路复用协议和GSM模组通讯,使得可以在通过GPRS拨号上网时可以同时拨打电话和收发短信。