linux下利用GPRS模块发短信、打电话
一、开发环境
内核版本:linux-3.0
开发板:FL2440(nandflash:K9F1G08 128M)
GPRS模块:SIM900
开发板:FL2440(nandflash:K9F1G08 128M)
GPRS模块:SIM900
二、与发短信和拨号相关的 AT 指令
序号 | 命令 | 命令说明 | |
1 | AT+CMGC | Send an SMS command | 发出一条短消息命令 |
2 | AT+CMGD | Delete SMS message | 删除 SIM 卡内存的短消息 |
3 | AT+CMGF | Select SMS message formate | 选择短消息信息收发格式: 0-PDU;1-文本 |
4 | AT+CMGL | List SMS message from preferred store | 列出 SIM 卡中的短消息 |
5 | AT+CMGR | Read SMS message | 读短消息 |
6 | AT+CMGS | Send SMS message | 发送短消息 |
7 | AT+CMGW | Write SMS message to memory | 向 SIM 内存中写入待发的短消息 |
8 | AT+CMSS | Send SMS message from storage | 从 SIN |M 内存中发送短消息 |
9 | AT+CNMI | New SMS message indications | 显示新收到的短消息 |
10 | AT+CPMS | Preferred SMS message storage | 选择短消息内存 |
11 | AT+CSCA | SMS service center address | 短消息中心地址 |
12 | AT+CSCB | Select cell broadcast messages | 选择蜂窝广播消息 |
13 | AT+CSMP | Set SMS text mode parameters | 设置短消息文本模式参数 |
14 | AT+CSMS | Select Message Service | 选择短消息服务 |
15 | AT+CNMI=2,1,0,0,0 | 设置收到新短信存于SIM卡中并发CMTI通知 | |
16 | +CMTI:”SM”,1 | 收到了短信,自动弹出,其中1表示存在SIM中的序号 | |
17 | AT+CMGR=1 | 读取短信,其中1要与上面序号对应 | |
18 | AT+CMGD=1 | 删除短信,其中1为短信序号 | |
19 | ATD | 拨号命令 | 这个命令用来设置通话、数据或传真呼叫; 例 ATD13844019770; |
20 | ATH | 挂机命令 | |
21 | ATA | 接电话 |
发送短消息有两种方式:PDU和TEXT 模式,TEXT模式只支持传送英文及数字信息,但它的编码要比PDU模式简单很多,所以建议采用TXET模式发送和接受短消息。(以下以TEXT 模式示范)
三、准备工作
GPRS模块,是具有GPRS数据传输功能的GSM模块。
GPRS模块就是一个精简版的手机,集成GSM通信的主要功能于一块电路板上,具有发送短消息、通话、数据传输等功能。
GPRS模块相当于手机的核心部分,如果增加键盘和屏幕就是一个完整的手机。
普通电脑或者单片机可以通过RS232串口与GPRS模块相连,通过AT指令控制GPRS模块实现各种基于GSM的通信功能。
准备工作:
1)通过串口线将GPRS模块的串口和开发板的串口连接好
2)将可以使用的手机SIM卡插入GPRS模块的卡槽;
3)启动开发板,接通GPRS模块的电源
4)然后按下GPRS模块的SW1,让SIM开始工作,搜索网络,这时发光二极管D3会闪烁。
四、实验过程:
PS:确保内核添加了串口驱动
执行如下命令进行测试:
1 [root@root /]# ls dev/ 2 3 td2 null tty3 ttyS0 4 mtd2ro pcmC0D0c tty30 ttyS1 5 mtd3 pcmC0D0p tty31 ttyS2 6 [root@root /]# microcom -s 115200 /dev/ttyS1 //microcom命令制作跟文件系统时busybox会添加,这里的/dev/ttyS1需要根据GPRS使用的串口选择 接的串口选择) 7 8 at //返回OK则说明模块可以正常工作 9 OK 10 11 AT+COPS? //运营商,此处为联通 12 +COPS: 0,0,"CHN-UNICOM" 13 14 AT+CSQ //查看SIM信号质量 15 +CSQ: 23,0 16 17 18 OK 19 20 AT+CPIN? //查询状态,模块准备好打印如下 21 +CPIN: READY 22 23 OK 24 25 AT+CMGF=1 //将短信息格式设为 TEXT 模式,如果为0 则为PDU格式 26 OK 27 28 AT+CSCS="GSM" //设置字符格式为 GSM 模式 29 OK 30 31 //有的说在发短信之前要设置短信中心号码示例:AT+CSCA=”+86138XXXXXXXX”,,但是我的没有设置就可以发短信,示例如下 32 33 at+cmgs="13007110996" //输入手机号 34 35 > zhouyou,hello! //出现>后输入短信内容,之后不是enter键输入,切记是按ctrl+z,如果错了可按esc返回 36 37 +CMGS: 36 38 39 OK //发送成功的标志 40 41 ATD13007110996; //打电话,注意后面的分号不能掉,拨号成功返回OK,插上带话筒的耳机就可以通话了 42 OK 43 44 ATH //挂电话命令,成功后返回OK 45 OK 46 47 48 RING //来电话时,会不断打印RING 49 50 RING 51 ATA //接听命令,成功后返回OK 52 OK 53 ATH 54 OK 55 56 ctrl+x //退出microcom
microcom的用法:http://blog.csdn.net/macrohasdefined/article/details/28258553