100分求使用SPCOMM编制发送手机短信的代码!(100分)

  • 主题发起人 主题发起人 yesky123
  • 开始时间 开始时间
Y

yesky123

Unregistered / Unconfirmed
GUEST, unregistred user!
代码通过即送分,谢谢!
 
分数不够吗?我可以再加,久仰delphibbs大名,才注册第一次上来问问题,第一次写串口的东东,请大家多支持!谢谢
 
你要在网上搜一下手机模块的说明书。
比如说西门子的。
也是向手机发 AT 指令(扩展的)
我知道一点。
但我的手机没有串口线。我与就没有写代码了。
 
你看看,我目前有如下几篇文章!需要哪篇我贴上来!

GSMSMS模块--数传电台的理想替代产品

GSMSMS模块与客户单元板连接方式说明

GSMSMS模块通信协议详解

GSMSMS模块调试软件的使用方法

GSMSMS模块启用方法与技巧

GSMSMS模块保修维护的有关说明

GSMSMS模块客户疑难问答

购买二手手机验货注意事项

手机与适配板连接方法说明

手机短信基础知识帮助手册

中国移动“移动梦网”简介

中国联通“联通在信”简介

 
楼上
GSMSMS模块通信协议详解
能给我看看吗 ?
谢谢
 
to yesky123
我也想研究一下
可以把你上邊的東東全貼出來嗎﹕)
 
To:yesky123
好东西!贴上来,现在软件功能动则要求加上能发短消息,强烈关注啊!
 
正在学这方面的,发分给我,mail:ah_wcw@sohu.com,谢谢
 
hehe 很长呢! 我发上来了!
各位多研究研究! 希望能一起搞定这东西:

GSMSMS模块通信协议详解

◆帧格式:
帧格式:
$ LN FX DA XX XX XX
帧头 长度 命令 数据(数据可选)

◆常用指令:
GSMSMS指令系统定义符合半双工异步串口应用环境。该指令系统分三部分:通讯界面指令,管理界面指令,加密调试指令(不提供给用户使用)。通讯界面常用指令:

F0:链接查询 [24][01][F0]

F1:链接应答+接收到新信息 [24][02][F1][00]
说明:第4个字定义:[00]表示没有接收到新SMS,[0X]表示接收到新SMS及条数,最多3条。

F2:复位命令 [24][01][F2]
说明:该指令用于复位GSMSMS模块,如果此时手机处于关闭状态则会自动开机!

F3:复位应答 [24][01][F3]

F4:发一条短信息[24][XX][F4][XX][XX][XX][XX][XX]
说明:例子:[24][06][F4][41][42][43][44][45],帧长度=要发送的SMS长度+1。

F5:发送应答 [24][01][F5]
说明:为了简化客户使用,模块采用了重发机制,如果网络繁忙,重发过程可能会很长,因此给应答也会很慢。如果长时间收不到该应答指令,说明网络瘫痪。

F6:设置目标号码(中心模式)[24][07][F6][XX][XX][XX][XX][XX][XX]
说明:例子:[24][07][F6][31][56][90][41][18][F8],目标手机号码为:13650914818。

F7:设置目标号码应答 [24][07][F7][XX][XX][XX][XX][XX][XX]
说明:例子:[24][07][F7][31][56][90][41][18][F8]。返回的目标号码提供校验使用,可以不予处理,该指令只需要客户单元板启动后设置一次即可。

F8:接收状态查询[24][01][F8]

F9:接收状态应答[24][04][F9][XX][XX][XX]
说明:数据3个字分别对应GSMSMS内部3个缓冲区的新短信息长度,[00]表示无短信息或是旧短信息,该指令建议使用频率在1次/3-10秒,频率过高将会增加GSMSMS模块的数据处理效率,频率过低可能会引起GSMSMS模块内部短信息积压。如果某个缓冲区的新短信息已经被读过一次,则该位置的应答自动变为[00],提示您这个缓冲区的信息是旧信息,当然您还可以重新读旧信息,但不保证它在某时刻可能会被新信息覆盖。

FA:接收请求 [24][02][FA][XX]
说明:[XX]表示GSMSMS内部3个缓冲区的序号:1,2,3。这3个缓冲区的优先级依次按照1最高,3最低的顺序,如果有新的短信息到来依次填充到这3个缓冲区。如果填充满后客户板仍然没有实时读取这3个缓冲区的内容,那么后到的新短信息将会保留到手机的SIM卡上的缓冲区。这种双缓冲设计的目的在于提高短信息的实时性并适当避免大量短信息在短信中心的积压,在实际应用中13个缓冲区完全可以满足客户的需要。

FB:接收数据 [24][XX][FB][XX][XX][XX][XX][XX]
说明:帧长度=返回数据长度+1。数据定义如下:
[31][56][90][41][18][F9]
13 65 09 14 81 9 信息来源手机号码,注意手机号码的转换方法:依次高低4位交换位置,不足12位的手机号码末尾空白处填“F”。
[00][00]
保留数据
[00][40][20][32][70][82]
00 04 02 23 07 28 SMS发送时间:年月日时分秒,转换方法同手机号码
[00]
保留数据
[03][31][32][33]
长度 短信息数据

FC:关机请求 [24][01][FC]
说明:该指令将手机关闭,使用于省电方案,还可以用于一定程度上激活短信息中心的积压信息。关机不影响短信息接收

FD:关机应答 [24][01][FD]
说明:当手机关闭时模块返回的关机完成信息。
注释:以上为常用指令,特殊型号有特殊的指令

管理界面常用指令:

EO:模块版本查询 [24][01][EO]
说明:该指令仅用于查询模块版本,没有任何功能,如果您的模块不支持该指令,说明版本为V1.0。

E1:模块版本应答 [24][01][E1][XX][XX]
说明:[XX][XX]指示版本号,如[33][31],说明主版本为3,次版本为1,即:V3.1。

E2:手机号码长度设置 [24][02][E2][XX]
说明:目前手机号码长度为11位,加2为区号共13位,因此应该:[XX]=[0D]。如果您不对手机号码长度进行设置,默认长度为13。

E3:手机号码长度应答 [24][02][E3][XX]

关于通信接口的说明

◆串行接口采用异步半双工通信,默认设置:2400,N,8,1
◆并行接口采用8位数据总线与2条挂钩线实现,时序如图所示。其中时间t=12uS左右。

51汇编发送例子:
以11.0592MHz晶振为例
SEND: MOV P1,A ;A为待发送数据,P1为数据总线
CLR P3.3 ;P3.3定义为EN
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
SETB P3.3
MOV P1,#0FFH
RET
51汇编接收例子:
在外部中断处理程序中接收数据
INT: CLR EX0
PUSH ACC
PUSH PSW
MOV A,P1 ;把数据接收并放到A中
...... ;对数据进行处理
POP PSW
POP ACC
SETB EX0
RETI
对GSMSMS模块编程的建议

以51串口编程为例,应该启动一定时器,产生N秒的时间中断作为流量控制的控制时隙。假如N=5秒,每次时隙都检测是否“发送允许”,如果不允许发送,则返回重新计时;如果发送允许,则检测有何种类型的数据帧发送,如果有用户命令数据发送,则关断定时器,发送一条短信息,并等待发送完成的返回指令,收到返回指令后重新启动该定时器;如果没有用户命令数据,则发送“接收状态查询”命令,并接收返回信息,返回重新计时。关于N的取值根据客户实际应用环境设定,建议3-10秒。
另外要启动串口中断,建议收发都采用中断方式。发数据帧受定时器控制,发完数据后清除发送“允许标记”;发送程序运行必须在收到“复位应答”之后,“关机应答”之前。收数据帧是关键环节,根据接收数据帧的类型决定整个程序的运行状态:在接收到“复位应答”之后置位“活动状态”,在接收到“关机应答”之后置位“休眠状态”。在“活动状态”中采用查询应答相对应的半双工方式进行数据交换:如发送短信息,然后等待发送应答;发送“接收状态查询”,然后等待“接收状态应答”,由应答信息判断是否有收到新的短信息,如果有,依次用“接收请求”得到“接收数据”应答。总之就是典型的半双工工作方式。
如果您对通过短信息交换信息的方式不很熟悉,可以通过中电网提供的“GSMSMS模块调试软件”来熟悉这种工作模式。在使用过程中注意收发短信息过程的时间间隔,短信息系统运行状况等经验知识,同时观察串口数据的交换过程来了解GSMSMS模块的工作流程。

关于中文模块的中文编码

中文编码采用Unicode标准编码,每个字符用2个字节表示。您可以通过中电网提供的“字符标准编码计算器”软件计算您要发送的汉字编码。
 
手机与适配板连接方法说明


手机底部数据接口示意图如下所示,请使用6芯扁平线焊接后连接到适配板的J5插座上。注意手机的4与8可以直接使用导线直连短接起来。
焊接前建议您对数据口除锈,这样会容易焊接以些。如果您不使用手机外壳的话,您可以先把手机外壳拆卸下来,然后把扁平线直接焊接到手机主板上,这样会更可靠一些。

6芯扁平线您可以购买那些带有插头的成品线,操作更容易一些。
 
不好意思,图片无法复制上来!没办法!
如果有谁需要
留个信箱,我发给你!
希望我的问题能有人提供点意见!
谢谢
 
to yesky123
我记得好象用串口和手机模块通讯时候:
有个初始化的 过程
ComPort1.PutString('AT+CMGF=0'+Chr(13));
然后就 判断返回的
数据总 有没有 ok 的 ,
如果有 ok 就通过 ,初始化完成

下来就是发送数据,读取数据等,
我想知道 它发的 命令是不是通用的,
都有那些?
 
yesky123说的是有专用GSM-Modem向外发短信,当然要用专有通讯协议。我用的也是GSM-Modem,按协议写,通讯不成问题。
没见可用普通Modem或手机发信成功的例子,其实我也很想试试。
 
hoho,你说的那个指令好象是某个模块的指令集,并非串口跟手机的直接通信!
如果是那样很简单啊!按他们的指令发送命令就行了!
先把字符转化为16进制,再通过相应的接口通信空间比如mscom或者spcom等
此类代码我有,以前做过,要的话我发给你!
 
to yeazhang:
anterycn@163.com.小弟还有个问题,可以无线传输吗?xiexie
 
需要硬件的配合,否则不可能实现!除非通过利用搜狐等网站的短信平台。
单纯用modem和spcomm是没有用的。是不可能发送成功短信的。
用at命令拨打手机倒很容易。呵呵
买个GSMSMS手机模块吧,好几百块
 
多人接受答案了。
 
后退
顶部