原创 GPRS模块 转自21ic

2007-6-7 16:17 2001 8 9 分类: MCU/ 嵌入式

 


转自21iC


在众多的模块中选择了国产的德信的piml-900/18000,就是一个字-便宜。技术支持做的也很好。说说我的调试过程吧。
现在的gprs模块都封装的很好,与mcu连接的管脚我只用了rxd,txd作为数据线,另外加上几条控制线,控制模块的工作状态。操作起来很简单。
什么进口国产,够我们用就行了。


一.模块的选择
其实在选择模块时并没有考虑价钱,反正有人报销。网上流行的有的虽有gprs功能,但没有tcp/ip协议(mc35i),要不就是价钱高,gr47,wavecom2046.小弟当时也是没信息,第一次接触这无线传输的东东,总怕出问题。除了问题怎么办,找技术支持。找国内的总比国外的方便吧。所以选择了德信的piml模块。价钱也便宜,后来证实,技术支持做的确实好。
二.模块的电源设计:
   在众多的GPRS模块中,模块的电源范围都在3.3-4.2V之间,推荐使用电压3.6-3.8V,峰峰值电流1700mA 。德信的PIML-900/1800模块的推荐的典型电源电压为3.8V,有2A的电流输出能力。由于周围网络很好,所以我在实际的使用中电源设计采用的是LM2941,输出电流为1A,调整电阻使输出在3.8v左右,模块工作正常。在周围网络不好的情况下,模块不停的搜寻网络,这时将消耗较大的电流,此时应采用输出电流能力较大的电源芯片。为了防止模块电源电压产生突然的降低导致模块死机,在靠近模块的输入端加了一个470uf的电容,增强模块在发送数据期间供电电压的稳定性。
   用这种电源芯片,发短信,打电话,发送数据均没出现问题。
注意:如果电路中没有设计充电电池,应把电源接到模块的VBAT管脚。我在应用时第一次接到了CHG_IN管脚,充电电路工作,模块发热量很大。


下面的这段程序适合给新手,初步了解用哪些at指令对模块进行基本的操作
以下为对模块操作的具体程序、流程及用到的AT指令:
该函数完成通过串口向模块写入字符串(AT命令)的功能
void writeGSM(uchar *str)
{
    uchar i="0";   
    while(str!=0x00)               //判断是否为字符串结尾
    {   
        TXBUF0=str;          //不是则将字符发给串口   
        while((UTCTL0&0x01)==0);   //等待数据发送完成                                 
        i++;           
    }   
}
2.1 短消息传输的控制
2.1.1 设置短信格式为文本格式
在用模块发送短信前要对短信格式进行设置 指令为 AT+CMGF=1<CR> 
发送(取消)短消息AT指令:    AT+CMGS=“目标卡号”<CR>
                               >HELLO WORLD!<ctrl+z>(Esc)
短信例程:
    writeGSM("AT+CMGF=1\r"); 
                                  
    writeGSM("AT+CMGS=\"13126520830\"\r");   //发送手机号         writeGSM("HELLO CAU");               //发送短信内容             TXBUF0=0x1a;                            //发送CTRL+Z
2.2 GPRS数据传输的控制
2.2.1 首先定义PDP移动场景
AT+CGDCONT=1,"IP","CMNET"
2.2.2    激活PDP,获得IP地址
AT+CGATT=1
2.2.3     设置模块连接方式为GPRS连接,接入点为“CMNET”
AT+CIPCSGP=1,"CMNET"
2.2.4     建立连接
AT+CIPSTART="TCP/UDP",221.216.163.44,2020
TCP/UDP指明是TCP连接还是UDP连接,221.216.163.44是SEVER端的IP地址,2020为端口,连接成功后模块返回 CONNECT OK
2.2.5    发送数据
AT+CIPSEND<CR> 返回“>”后输入要传输的数据,再发送CTRL+Z
即将所要发送的数据发送到指定IP的服务器上
2.2.6    关闭TCP连接
AT+CIPCLOSE
只有在TCP/UDP处于CONNECTING 或者CONNECT OK的状态下才返回OK,否则返回ERROR
2.2.7    关闭移动场景
 AT+CIPSHUT


  注意:服务器端的IP地址,我当时是在学校做实验,服务器打开了,但是模块就是连不上,后来分析才知道(高手一看就知道),我的ip属于私网的,非公网IP,估计是找不到网络入口,所以找了一个同学,他们是研究所,有一个公网ip地址,把服务器接收软件传给他,他打开接收软件,我在学校这边进行连接,ok了。


这是小弟的一点经验,但是根本没接触过gprs,胡乱弄了一下,稍微懂了一点,给出学的一点点借鉴。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

41527112_485020566 2009-4-18 20:01

不错,终于找到个通俗易懂的文章了
相关推荐阅读
用户41648 2008-11-13 09:16
步进电机。。(转载)
虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算...
用户41648 2008-07-22 14:17
转载 3V与5V混合系统中逻辑器接口问题
3V与5V混合系统中逻辑器接口问题  3V与5V混合系统中逻辑器接口问题1 引言近年来,随着便携式数字电子产品棗笔记本计算机、数字式移动电话、寻呼机、手持式测试仪表等的迅速发展,要求使用体积小、功耗低...
用户41648 2008-07-03 15:16
GB ma
GB码 GB 即"国标"的汉语拼音缩写,为中华人民共和国国家标准的意思. 国标编码就是中华人民共和国信息交换汉字编码标准(GB2312-80), 在此标准中制定了每一个汉字及非汉字符号的编码。规定将汉...
用户41648 2008-06-30 14:21
俄文866编码及其与ANSI编码的转换
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщыьэюяёъ(俄文866编码,用一个字节表示,在WORD中用西里尔文(DOS))80...
用户41648 2008-05-07 16:15
液晶扫描一帧的行数N的倒数叫占空比,半选择点和选择点的电压比叫偏压。
液晶扫描一帧的行数N的倒数叫占空比,半选择点和选择点的电压比叫偏压。很抽象?具体的说液晶是n行的(com端的数目),占空比就是1/n,在电压一定的情况下,行数的增加意味着占空比下降,使液晶的显示质量下...
用户41648 2008-03-21 09:30
区位码和国标码转换
国标与机内码的转换   国标码并不等于区位码,它是由区位码稍作转换得到,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,;这样就得了一个与国标码有一个相对位置差的代码,;再将这个代码的第...
EE直播间
更多
我要评论
1
8
关闭 站长推荐上一条 /3 下一条