项目概述:
设计一个公交(长途客运)监控系统,能够实时监控车辆的运行状态,包括地理位置、行驶速度、车内人员图片。使用嵌入式系统设计,CPU选择为s3c2440,操作系统选择为Linux,使用GPRS将车辆运行状况实时的发送到控制中心,GPRS选择Motorola G24模块。
应该来说,GPRS模块的外围电路设计是非常简单的,只要加载合适的电压,功率足够,模块就能够跑起来。
对于G24模块,需要注意的有:GVCC,设计为3.8V;IGN信号:可以保持高电平;ON_OFF信号:可以保持高电平,或者使用CPU的IO口控制,达到关断开启模块的目的。
CPU和G24模块的通信使用标准的UART通信,只要TXD、RXD和GND即可以完成通信,但是G24必须还需要将RTS和DTR信号设置为低电平UART才能通信。关于TXD和RXD,G24的TXD是对应的计算机的TXD,也就是说G24的TXD管腿是一个输入信号;而RXD才是输出信号,这一点也比较容易搞混。
调试的一般过程:
1)拨打GPRS模块的号码,看看是否能够拨通,如果能够拨通,说明模块已经在正常工作;模块要拨通,必须满足三个条件,G24的电源和启动信号正常、SIM卡检测成功、无线信号接收正常。
2)使用计算机或者CPU与模块建立UART通信,建立通信需要满足两个条件:G24的电源和启动信号正常、UART信号连接正常,包括RTS和DTR信号正确使能(保持低电平);
实际过程中,两个步骤可以结合起来调试。
一般来说,可以先调试步骤2,只要上电正常,串口连接好,就可以和计算机的超级终端调试,波特率设置为9600或者其他都可以,G24能够自动适应波特率。
首先在超级终端中输入at,正常会回应ok,
at
OK
第二步,输入at+csq,测试信号强度
at+csq
+CSQ: 18,99
OK
返回rssi和ber,rssi在0-31之间,ber在0-7之间,如果是99,表示未知或者无法探测;(、
注意,一定需要给模块加上天线,否则信号强度可能为0,或者只有1,2
第三步,输入at+cpin?,检测SIM卡
at+cpin?
+CPIN: READY
OK
第四步,输入at+creg? 检测是否连接到了网络
at+creg?
+CREG: 000,001
OK
返回值:0:没有注册到网络,ME也没有搜索
1:注册到家乡网络
2:没有注册,但是ME正在搜索网络;
3:注册拒绝 4:未知
如果没有接天线,会返回002,表示正在搜索网络。
下面说一说模块如果正常工作的现象:
1)RST管腿:输出为高电平;
2)CTS和DSR:输出为高电平;
3)GPRS管腿:输出为低电平,表示注册到了网络;
4)RTF管腿:当模块的射频部分正在收发数据,管腿置低;
5)RI管腿:当检测到振铃信号,大约每2-3秒输出一个1秒的低电平脉冲,典型的就是当模块工作正常,拨打模块的号码,RI会有反应;
6)有关SIM卡的几个管腿:平时都是低电平,只是在上电以及模块需要读写SIM卡的时候能够检测到脉冲;
调试现象举例:
1)重新做了一个G24的开发板,却发现模块没有工作,采用上面的调试1)和调试2)都不成功,既不能拨通模块,也不能与计算机的UART联通;
2)RST、CTS、DSR等管腿电压正常,发现天线接触不好,导致没有信号,换了一个天线,就可以拨打模块的号码了;
3)使用三线制串口,不能和计算机的UART联通,检查MAX232芯片,使用示波器,发现MAX232的震荡电容有波形,说明MAX232工作正常;接上串口线,在计算机的超级终端里面输入字符(超级终端没有反应),使用示波器观察G24模块的TXD管腿,可以发现有低电平脉冲出来,说明计算机的输入已经被传给G24了,但是G24就是没有反应。查看RTS和DTR的电平,为低电平,也是正常的,百思不能其解,后来对照PCB图发现,G24模块的RTS管腿接触不好,导致没有真正接地。重新焊接,故障排除;
当模块能够拨打电话,能够和计算机或者CPU建立通信,就可以调试使用模块的GPRS功能上网了。
为了能够上网,首先linux内核必须支持ppp协议,并且在应用层,需要一个pppd的可执行拨号文件,以及其他的拨号脚本设置。
转载自:http://xiyong8260.blog.163.com/blog/static/66514621200810271212735/