ARM+llinux系统移植3G拨号上网收发短信(二)

转载 2013年12月03日 18:29:37

一、发送text格式的短信

给联通发text格式的短信:

~ >: microcom -s 115200 /dev/ttyUSB1

at

OK

设置短信格式为Text模式:

at+cmgf=1

OK

at+cmgs="+861300711**** "

输入发送的内容:

> hello         (内容写完后按一下ctrl + z发送)                                      

+CMGS: 48

OK



给电信发text格式的短信:

~ >: microcom -s 115200 /dev/ttyUSB1

at

OK

设置短信格式为Text模式:

at+cmgf=1
OK

at+cmgs="+861532736**** "

设置短信格式为Text模式:

> hello    (内容写完后按一下ctrl + z发送)

+CMGS: 48



二、发送PDU格式的短信

接收号码:+8613007110996
短信内容:工作愉快!
武汉中心号码:+8613800270500


1、短信中心号码处理:用字符串 addr 表示
a、将短信息中心号码去掉+号,看看长度是否为偶数,如果不是,最后添加F
     即 addr = "+8613800100500"
    => addr = "8613800270500F"
b、将奇数位和偶数位交换。
    => addr = "683108200705F0"
c、将短信息中心号码前面加上字符91,91是国际化的意思
    => addr = "91683108200705F0"
d、算出 addr 长度,结果除2,格式化成2位的16进制字符串,16 / 2 = 8 => "08",并放到addr前面去。
    => addr = "0891683108200705F0"


2、手机号码处理:用字符串 phone
a、将手机号码去掉+号,看看长度是否为偶数,如果不是,最后添加F
    即 phone = "+8613007110996"
    => phone =  "8613007110996F"
b、将手机号码奇数位和偶数位交换。
    => phone =  "683100170199F6"


3、短信息部分处理:用字符串 msg 表示
a、转字符串转换为Unicode代码,转换方法为:

      下载一个汉字Unicode编码转换器,当输入“工作愉快!” 时

      

     转换为的是十进制24037 20316 24841 24555 65281 ,再利用计算器五个一转换,例如24037转换为十六进制的5DE5,

    最终转换为的十六进制连起来就是5DE54F5C61095FEBFF01 (转换在linux里可用iconv函数实现。)

b、将 msg 长度除2,保留两位16进制数,即 5DE54F5C61095FEBFF01 = 20 / 2 => "0A",再加上 msg
    => msg = "0A5DE54F5C61095FEBFF01"


4、组合
a、手机号码前加上字符串 11000D91(1100:固定,0D:手机号码的长度,不算+号,十六进制表示,91:发送到手机为91,发送到小灵通为81)
    即 phone = "11000D91" + phone
    => 11000D91683100170199F6
b、手机号码后加上 000800 和刚才的短信息内容,000800也写死就可以了
    即 phone = phone + "000800" + msg
    即 11000D91683100170199F6 + 000800 + 0A5DE54F5C61095FEBFF01
=> phone = 11000D91683109423346F90008000A5DE54F5C61095FEBFF01
c、phone 长度除以2,格式化成2位的十进制数
    即 11000D91683100170199F60008000A5DE54F5C61095FEBFF01 => 50位 / 2 => 25


5、note = addr+phone ==> 0891683108200705F011000D91683100170199F60008000A5DE54F5C61095FEBFF01


5、所以要发送的内容为
发:AT
收:OK
发:AT+CMGF=0 
收:OK
发:AT+CMGS=25
收:>
发:note --->  //"--->"为发送符(ctrl+z,十六进制0x1A)
收:+CMGS: 50 

        OK


6、如果返回不是ERROR,恭喜你,发送成功了。如果返回+CMS ERROR: 304,说明格式还是有问题,要检查一下。

ARM+llinux系统移植3G拨号上网收发短信(一)

一、      PPP移植 各项工作具体说明 向linux内核添加3G模块的驱动(USB转串口驱动)和PPP协议的支持,然后编译内核并下载到开发板。当然如果之前已经移植好内核,那么只需要增...
  • pugu12
  • pugu12
  • 2016年02月26日 19:36
  • 266

ARM+llinux系统移植3G拨号上网收发短信(一)

以下向大家演示如何在2440开发板的linux系统中实现3G拨号上网的功能。 1 向linux内核中添加3G模块的驱动(USB转串口的驱动)和ppp协议的支持,重新编译下载内核。 2 对ppp-...
  • sonbai
  • sonbai
  • 2013年07月14日 17:04
  • 10792

ARM+llinux系统移植3G拨号上网收发短信(一)

一、      PPP移植 各项工作具体说明 向linux内核添加3G模块的驱动(USB转串口驱动)和PPP协议的支持,然后编译内核并下载到开发板。当然如果之前已经移植好内核,那么只需要增...
  • hbk320
  • hbk320
  • 2015年12月02日 10:48
  • 1517

ARM+llinux系统移植3G拨号上网收发短信(一)

一、      PPP移植 各项工作具体说明 向linux内核添加3G模块的驱动(USB转串口驱动)和PPP协议的支持,然后编译内核并下载到开发板。当然如果之前已经移植好内核,那么只需要增加几个选...
  • hanmengaidudu
  • hanmengaidudu
  • 2013年12月03日 18:28
  • 5386

ARM+llinux系统移植3G拨号上网收发短信(一)

一、      PPP移植 各项工作具体说明 向linux内核添加3G模块的驱动(USB转串口驱动)和PPP协议的支持,然后编译内核并下载到开发板。当然如果之前已经移植好内核,那么只需要增加几个选...
  • keyue123
  • keyue123
  • 2013年09月21日 10:05
  • 1056

ARM+llinux系统移植3G拨号上网收发短信(二)

一、发送text格式的短信 给联通发text格式的短信: ~ >: microcom -s 115200 /dev/ttyUSB1 at OK 设置短信格式为Text模式...
  • pugu12
  • pugu12
  • 2016年02月26日 19:38
  • 183

ARM+llinux系统移植3G拨号上网收发短信(二)

一、发送text格式的短信 给联通发text格式的短信: ~ >: microcom -s 115200 /dev/ttyUSB1 at OK 设置短信格式为Text模式: at+cm...
  • keyue123
  • keyue123
  • 2013年09月21日 10:07
  • 669

ARM+llinux系统移植3G拨号上网收发短信(二)

一、发送text格式的短信 二、发送PDU格式的短信
  • sonbai
  • sonbai
  • 2013年07月14日 12:57
  • 2693

ARM+llinux系统移植3G拨号上网收发短信(二)

一、发送text格式的短信 给联通发text格式的短信: ~ >: microcom -s 115200 /dev/ttyUSB1 at OK 设置短信格式为Text模式...
  • hbk320
  • hbk320
  • 2015年12月02日 10:50
  • 662

linux下实现3G模块收发短信、拨号上网

我用的是中兴的
  • u011196227
  • u011196227
  • 2014年09月07日 15:58
  • 1589
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ARM+llinux系统移植3G拨号上网收发短信(二)
举报原因:
原因补充:

(最多只允许输入30个字)