之前我也整理过GPRS脸颊FTP服务器的文章,只是不够完整,今天发现万工的博客,很是不错,就借转过来。
MC52i 和 MC55i 模块是德国Cinterion公司(原西门子)生产的工业级别GPRS模块,使用英飞凌工业级别的无线通信套片——eagle radio.
在使用模块连接FTP 服务器之前,请确认模块所使用的SIM卡支持GPRS通讯,如果支持请给模块上电,然后按照以下的流程进行初始化操作:(视自身的需要可以增加其他的AT指令)
--------------------------------------------------------------------------------------------
AT↙ //确认串口是否正常,模块串口初始化为自适应的
OK↙
ATE0↙ //关闭回显
OK↙
AT+CPIN?↙ //检查SIM卡工作是否正常,返回READY表明正常
+CPIN: READY↙
↙
OK↙
AT+CREG=1↙ //设置模块网络注册提示,当模块从GSM网络中掉线后,会自
↙ //动上报+CREG:1,0
OK↙
AT+CREG?↙ //检查GSM网络注册情况
+CREG:1,1↙ //第一个1表示模块网络的注册方式
↙ //第二个1表示模块已经注册到当地网络
OK↙
AT+CSQ↙ //检查当地的网络信号强度,31最大,0最小。
+CSQ: 23,99↙
↙
OK↙
AT+CGREG=1↙ //设置模块GPRS网络注册提示,当模块从GPRS网络中掉线后,
↙ //会自动上报+CGREG:1,0
OK↙
AT+CGREG? //检查GPRS网络注册情况。
↙
+CGREG:1,1↙ //第一个1表示模块GPRS网络的注册方式
↙ //第二个1表示模块已经注册到GPRS网络
OK↙
------------------------------------------------------------------------------------
完成上面的初始化操作之后,需要使用AT^SICS指令来设置模块连接Internet的脚本,具体如下:
--------------------------------------------------------------------------------------------
AT^SICS=0,conType,GPRS0↙ //0表示脚本的编号,最多有6个,分别为0~5
↙ //conType表示后面GPRS0的连接方式是GPRS
OK↙ //除了GPRS0外,还可以选择CSD连接方式
AT^SICS=0,user,gprs↙ //设置连接脚本编号0的用户名为gprs
↙
OK↙
AT^SICS=0,passwd,gprs↙ //设置连接脚本编号0的密码为gprs
↙
OK↙
AT^SICS=0,apn,“cmnet”↙ //设置连接脚本编号0的APN接入点名称为cmnet
↙ //中国移动为cmnet,中国联通为uninet
OK↙ //其他的请咨询相应的服务商
--------------------------------------------------------------------------------------------
对于GPRS连接方式而言,模块还允许用户设置连接超时时间和DNS服务器等,具体可以参看Datasheet。完成Internet连接脚本设置后,需要按照下面的流程设置Internet服务脚本的相关设置,具体如下:
--------------------------------------------------------------------------------------------
AT^SISS=1,ConID,0↙ //1表示Internet服务脚本编号,最多允许10个,分别是0~9
↙ //ConID以及后面跟着的‘0’表示编号为1的服务脚本使用
OK↙ //编号为0的连接脚本
AT^SISS=1,srvType,ftp↙ //设置Internet服务为FTP,除了FTP外,还可以设置为Socket,
↙ // Http,Smtp,Pop3,Socket对应于TCP和UDP。
OK↙
AT^SISS=1,address,"ftp://218.17.99.1/Test1.txt;type=a"↙
//设置FTP服务器的IP地址及下载的文件名
↙
OK↙
AT^SISS?↙ //设置完成后,使用该命令查询所有服务脚本的相关信息
^SISS: 0,"srvType",""↙
^SISS: 1,"srvType","Ftp"↙
^SISS: 1,"conId","0"↙
^SISS: 1,"alphabet","0"↙
^SISS: 1,"address","ftp://218.17.99.1/Test1.txt;type=a"↙
^SISS: 1,"tcpMR","10"↙ //最大重发次数为10次
^SISS: 1,"tcpOT","6000"↙ //在关闭连接之前等待需要数据包的最长时间,单位:秒
^SISS: 2,"srvType",""↙
^SISS: 3,"srvType",""↙
^SISS: 4,"srvType",""↙
^SISS: 5,"srvType",""↙
^SISS: 6,"srvType",""↙
^SISS: 7,"srvType",""↙
^SISS: 8,"srvType",""↙
^SISS: 9,"srvType",""↙
↙
OK↙
--------------------------------------------------------------------------------------------
在Internet服务脚本中,设置的关键是address的设置,对于FTP而言,address有两种类型,一种是从FTP服务器上下载文件,其设置如下:
AT^SISS=1,address,"ftp://’user’:’password’@’host’:’tcp/port’/’url-path’[;type=’a|i|d’] “
1、‘user’和‘password’用于登陆需要用户和密码的FTP服务器,如果省略则使用anonymous用户和密码登录FTP服务器,此时不需要@;
2、‘host’是必须的,它可以是一个IP地址,也可以是一个域名;
3、‘tcp/port’如果忽略则采用FTP服务器默认端口——21;
4、‘url-path’指的是需要下载的文件在服务器上的目录,记得加‘/’;
5、type=a表示下载ascii文件,type=i表示下载image文件,type=d表明下载目录(directory)
另一种是向FTP服务器上传文件,其设置如下:
AT^SISS=1,address,"ftpput://’user’:’password’@’host’:’tcp/port’/’url-path’/’element name’[;type=’a|i ’][;mode=’u|a|d’]”
1、 大部分是一样的,主要区别在ftp和ftpput;
2、 Element name是指上传的文件名称;
Mode=u表示上传一个唯一(unique)的文件,mode=a表示在服务器上的同一个文件后面追加(append)内容,mode=d表示删除(delete)服务器上的该文件,如果mode设置省略了,则默认采用替代方式;