AT指令编程相关技术问题 (MODEM***作)
2007-03-26 16:48
351 查看
AT编程常见问题 1. 如何与GSM MODEM建立通信联系
2. 不能与GSM MODEM进行正常的通信或总是在仿真终端上出现乱码
3. 如何才能知道错误代码
4. 发送短消息后,收到出错信息+CMS ERROR 512
5. 发送短消息后,收到出错信息+CMS ERROR 513
6. 发送短消息后,收到出错信息+CMS ERROR 514
7. 发送短消息后,收到出错信息+CMS ERROR 515
8. 如何才能知道您发送的短消息已被送达目的号码
9. 如何发送中文短消息
10.如何建立一个话音呼叫
11.如何建立一个数据呼叫
12.当GSM MODEM作被叫时,如何显示主叫的电话号码
13.当GSM MODEM作被叫时,如何判别主叫发起的是话音、数据或传真呼叫
14.当GSM MODEM作被叫时,如何使其自动应答或不能自动应答
15.如何不通过SIM卡直接读或写短消息
1. 如何与GSM MODEM建立通信联系
您可用诸如Windows下的超级终端或Pcomm等终端仿真软件,将计算机的串行口与GSM MODEM的串行口用电缆直接连接。
2. 不能与GSM MODEM进行正常的通信或总是在仿真终端上出现乱码
检查您的串口是否保证正常连接,计算机的串口引线与GSM MODEM的串口引线应是一一对应的。GSM MODEM与仿真终端应设置相同的通信速率。
但您初次使用GSM MODEM时,请在仿真终端上设置为通信速率9600bps、8位数据位、无较验位、1位停止位。
3. 如果您想在出错后得到错误代码号,需将GSM Modem作如下设置:
AT+CMEE=1
4. 发送短消息后,收到出错信息+CMS ERROR 512
表示您的GSM MODEM在发送短消息的同时它收到了新的短消息,发送短消息被拒绝,您需要重新发送此条短消息。
5. 发送短消息后,收到出错信息+CMS ERROR 513
您遇上了下面问题中的一种:
a) 您的GSM MODEM失去了无线链路连接;
b) 在发送完短消息后的28秒内,您的GSM MODEM没有收到短消息中心送来的接收确认+CMGS:〈顺序号〉;
c) 在送出请求建立发送短消息的控制信道指令后的42秒内,您的GSM MODEM没有收到基站送来的确认〉。
6. 发送短消息后,收到出错信息+CMS ERROR 514
您遇上了下面问题中的一种:
a) 您设置的短消息中心的号码是错误的;
b) 短消息将要送达的目的号码是错误的;
c) 您发送的短消息被短消息中心拒绝(一般为目的号码不存在或目的号码被禁用)。
7. 发送短消息后,收到出错信息+CMS ERROR 515
如果您的GSM MODEM在初始化期间或在指令执行过程当中GSM MODEM又接受新的指令,将会出现此错误。您必须等到初始化完成或指令执行完毕。
8. 如何才能知道您发送的短消息已被送达目的号码
a) 采用文本格式发送
在您采用文本格式发送短消息时,您的GSM MODEM须作以下的设置:
at+csmp=49,〈X〉,〈X〉,〈X〉
at+cnmi=〈X〉,〈X〉,〈X〉,1,〈X〉
〈X〉代表根据您的需要您所选择的合适的参数。
当您发送完短消息后,您将收到来自短消息中心的以下两种确认中的一种:
+CDS:〈X〉,〈顺序号〉,"电话号码","发送时间","接收时间",0
或:
+CDS:〈X〉,〈顺序号〉,"电话号码","发送时间","接收时间",48
确认中的最后个数代表了此短消息的传输状态。(0表示已经送达目的号码,48表示不可能将此送达目的号码)
b) 采用PDU格式发送
在您采用PDU格式发送短消息时,您的GSM MODEM须作以下的设置:
at+cnmi=〈X〉,〈X〉,〈X〉,1,〈X〉
〈X〉代表根据您的需要您所选择的合适的参数。
在您所要发送的PDU格式的短消息中,您须将短消息中心号码后的第一个字节设成31
在发送完短消息后,您将收到来自短消息中心的以下确认:
+CDS:〈长度〉00〈PDU格式的确认信息〉
注意:在收到的PDU格式的确认中,顺序号和传输状态标志都是以16进制数存在的,您可将其直接转成10进制数而无需将其倒置后再转换。
9. 如何发送中文短消息
采用现有的GSM MODEM发送中文短消息,都必须先将准备发送的中文短消息转换成16位的Unicode编码。
A) 采用文本方式发送
在您采用文本格式发送Unicode编码中文短消息时,您的GSM MODEM须作的设置:
at+csmp=〈X〉,〈X〉,〈X〉,8
〈X〉代表根据您的需要您所选择的合适的参数。
然后您就可将转换好的Unicode编码中文短消息按照发送普通文本短消息的方法发送出去。
B) 采用PDU方式发送
您只须在您的PDU格式的短消息中,将目的号码字符串后的第二个字节设成08,将转
换好的Unicode编码中文短消息作为PDU中的发送内容一齐发送。
10. 如何建立一个话音呼叫
向GSM MODEM的串口送指令ATD〈电话号码〉;〈回车〉必须确认电话号码是一个话音号码而非传真或数据号码。
11. 如何建立一个数据呼叫
先将您的GSM MODEM作如下设置:
at+ipr=9600
at+ifc=2,2
at+cbst=0,0,1
向GSM MODEM的串口送指令ATD〈电话号码〉〈回车〉
必须确认电话号码是一个数据号码而非传真或话音号码,同时必须确认您的SIM卡已开通数据通信的服务。
12.当GSM MODEM作被叫时,如何显示主叫的电话号码
将您的GSM MODEM作如下设置:
at+clip=1
13.当GSM MODEM作被叫时,如何判别主叫发起的是话音、数据或传真呼叫
将您的GSM MODEM作如下设置:
at+crc=1
14.当GSM MODEM作被叫时,如何使其自动应答或不能自动应答
如果您想让您的GSM MODEM自动应答,将您的GSM MODEM作如下设置:
ats0=〈N〉 N是代表GSM MODEM震铃的次数的一个整数,即GSM MODEM在N 次 震铃后将自动应答。
如果您想让您的GSM MODEM不能自动应答,将您的GSM MODEM作如下设置:
ats0=0
15.如何不通过SIM卡直接读或写短消息
因为SIM卡只有1万到10万次的读写次数和10-15条短消息的存储空间,还涉及到SIM卡上短消息读写需要一定的时间才能完成。这些因素影响了许多应用,这些应用需要通过GSM网络进行大量的数据交换,为保证流程的顺利进行,SIM卡要完成大量的读、写和删除***作,SIM卡的寿命周期很快就会达到,此外,SIM卡完成这些工作所耗费的时间比外界要求的要多。为解决这些问题,有必要在终端上作一些软件设置,使短消息不通过SIM卡进行读写***作。
以下的描述介绍了如何采用这种方法在Falcom A2系列和数据终端MT4002之间不通过SIM卡交换数据,这种方法也可用与2个MT4002之间。
a) 串口上的从终端来的RTS信号可用来指示数据交换时隙是否忙,串口准备好接收数据
b) 如果终端双方都可用来接收和发送短消息,在设置时双方都要设同样的命令和常数。
在接收端,设命令AT+CNMI=2,2,0,0,0
在发送端,设命令AT+CSMP=17,167,0,240 (当使用PDU格式发送时,240改成字符串DCS(F0))
c) 当程序发现短消息以前缀+CMT后跟所传送的数据这种格式时,立即将此短消息捕获并将其分发到原定的地址。
d) 当发送端如果没有设置CSMP=17,167,0,240时,捕获到的短消息应有前缀+CMTI,此时用命令AT+CMGR=n读取并分发到原定的地址,随后用命令AT+CMGD=n将此短消息删除以保证SIM卡有足够多的空间。
Q:请问什么是STK,FALCOM A2D系列有没有这项功能?怎么用STK? 多谢.
A:STK (SIM Tool Kit)卡预先储存一些移动网络可提供的一些服务的数据资料,如短消息中心号码、信息服务代码等,目前中国移动即将推出的手机银行业务即需要STK卡来支持。使用STK卡的手机在屏幕上可显示普通SIM卡不具备的菜单,如"全球通服务"。通过调用这一菜单,可进入下一级和在下一级菜单。用户通过选择可进行新闻股票信息查询、银行转帐股票委托等移动电子商务等多项移动信息服务,***作上类似于internet网页的分级链接。STK (SIM Tool Kit)卡由SIM卡厂家提供。
Q:STK程序如何开发,工具及帮助文档?
A:目前中国移动网络的STK (SIM Tool Kit)卡由SIM卡厂家提供技术支持,负责提供STK开发系统,负责STK的编程和制作,并保证消息加密方式的先进性和密钥的安全性应用层协议格式有网络运营,业务提供,SIM卡厂家,短消息厂家四方共同制定。 Q:发SMS的时候,是怎么实现能自动判断接受手机的语言,发中文SMS给中文机,英文SMS给英文机.
A:发送短消息时,无法自动判断接受手机的语言,必须预先知道接受手机所能支持的语言,再选择语言种类编码发送。以小区广播为例,无论发送中文还是英文信息小区内的手机都将同时收到,不支持该发语种的手机收到的将是乱码。 Q:GSM MODEM有没有提供SMS编程的API或者其他资料
A:GSM Modem的使用及开发资料请参看A2D-1。对于FalcomA2D-A(B,C)和A2D-3我们提供配套的开发工具,请参看相关类别的资料说明。 Q:SMS的格式如何规定的?
A:请在我们网站上下载Falcom A2D用户手册上面有关于短消息通信的相关指令.
Q:我买了一个nokia data suite想通过它发at命令来实现发中文短讯 但是不支持"at * c" "send " 请问如何处理?
A:不知您提到的"at * c" 是否在GSM规范07.07和07.05中? Q:从哪能得到GSM规范07.07和07.05?谢谢!
A:您在我们网站上可以下载相关文档,里面有关于GSM规范AT指令的详细说明。或者您可以到ETSI的官方网站上去找。 Q:我也用数据套件(Nokia DataSuite2.0)发过消息,但只能发英文,发不了中文.怎么办?
A:中英文短消息的编码格式不一样. Q:我可以确定我是用Unicode格式发送的中文,怎么还不好使? 如果想发中文,你说该怎办? Email:zhangqing888@sina.com
A:"Nokia DataSuite2.0"的数据格式和定义我们不了解. Falcom A2D可以实现中文短信. Q:AT+CMGS如何发送命令?本人想通过超级连接发送中文(手机不支持中文发送),应如何写命令格式? 望大虾指点.
at+cmgf=0
ok
at+cmgs="683106316070F60008050034192242308007400650073007"
Error
如何解决? 求助大虾!
A:假设有一个消息ab须发送,则:
at+cmgs=16
>0891(短消息中心号码)11000D91(目的号码)00F2A7024121(ctrl+Z结束) Q:Re: AT+CMGS如何发送命令?
A:先设at+cmgf=0,再发at+cmgs="LEHGTH"
"LENGTH'代表发送字节长度短消息中心号码和目的号码包含其中中文用unicode编码,如不明白与我联系发信给我 Q:我就是用unicode编码,但是在pdu格式下,在对方手机上显示不出来
A:Falcom A2D可以实现中文短信. Q:请教PDU数据格式以及SMS-AT命令中的发送数据格式
A:"PDU数据格式"见GSM03.40和GSM03.41,"SMS-AT命令中的发送数据格式"见GSM07.05和GSM07.07.上述规范可到http://www.etsi.org/ 下载。 Q:falcom的A2D系列产品可否与WAP、GPRS兼容?
A:WAP是一种简化的浏览器协议,与传输通路没有关系只要您的终端上有WAP或类似的浏览器,您就可支持WAP,所以,falcom的A2D是可以通过的只要您在上建立了数据链路。 支持的A2D将在今年第三季度推出,现有的内核是支持的只不过现在未开放。 Q:请问A2D的内核支持WAP,是否直接内置WAP浏览器,如果是的话,A2D是否等于WAP手机。
A:A2D本身没有WAP浏览器,须在A2D中加入WAP浏览器和显示屏及键盘才能成为手机 Q:贵公司有GPS receiver 的代理和A2D-GPS的相关中文的资料吗?
A:我公司不代理单独的GPS,不过我可推荐此代理给您. A2D-GPS目前没有中文资料,抱歉 Q:可以发以份报价表给我吗?EMAIL:SEAGATE@163。NET 希望可以得到贵公司的最新的代理产品和公司产品。谢谢!
A:请在'联系方式'下填写用户信息我们将电邮给您 Q:Nokia手机的NDS收发短信息也是用AT命令吗?有没有手机和电脑通讯的规范呢?本人也非常想知道有关PC和手机通讯的规范。当TE 和 ME (未经 TA)相连时,手机端所采用的通讯规范是哪一种?
A:NDS代表什么?请参考本网站a2dman.pdf.请参考ETSI相关规范。http://www.etsi.org Q:本人已查看过 ETSI 关于GSM的规范,如GSM07.01 GSM 07.07 GSM 07.05 等,但仍未搞明白,在此特请教先生,涉及手机编程问题的具体规范.
A:有关Falcom GSM 产品的开发问题请直接与我公司联系。其他产品我们因不了解无法提供进一步解答,请见谅.欢迎各位同仁提供信息和指教。 Q:Can I find any papers published on IEEE and how? Thanks.
A:http://www.ieee.org/ Q:MODEM如何设置自动应答?请教AT命令集?
A:ats0=1 Q:用什么指令可以让手机收到的短信息不存储在手机内部而直接发送到数据终端(如计算机)?如果广泛使用短消息,势必造成接收短消息那台手机的flash或sim卡eeprom的损坏,用什么at指令可以让手机收到的短消息直接从串行口发送出来而不存储?
A:请下载simcn.doc文件 Q:我用PDU方式,对字符进行8bit编码,发送英文字符正常,但发送汉字在手机上显示不出来?SMS对汉字怎样编码才能被手机识别并显示出来?
A:请参考本论坛以前讨论内容。 Q:但是还是不能解决问题啊,怎样编码才能让普通手机收到后显示出来?
A:您的手机是否支持中文? Q:Re: AT+CMGS如何发送命令?
我就是用unicode编码,但是在pdu格式下,在对方手机上显示不出来
A:Falcom A2D可以实现中文短信.
Q:请教
内容:
我在接收中文短信时,接收到的是UNICODE原码,但它的正文个数好象是按普通的ASC码算的,比如:
我发的是"一一一一"收到的是"4E004EOO4E004E",后面的还有的"00"没有;
当我发"一一一乙"时,收到的还是"4E004E004E004E"
请教一下这是为什么?
A:但是这不是unicode原码,是手机自己的编码!
Q: 请教一下,GPRS是什么单词的缩写。
A:GPRS的全称是"通用分组无线业务"(General Packet Radio Service),它是ETSI组织制定的一套标准,以实现移动分组数据业务。
· 实现方式:在GSM网络上增加分组数据服务设备,并对GSM无线网络设备进行升级,从而利用现有的GSM无线覆盖提供分组数据业务。
· 特点:
· 传输速度快:最高可达171kbps(初期9-50kHz)
· 可灵活支持多种数据应用
· 网络接入速度快
· 可长时间在线连接
· 计费更加合理(按数据流量计费)
· 高效利用网络资源,降低通信成本
· 利用现有无线网络覆盖,提高网络建设速度,降低建设成本
· GPRS的核心网络顺应通信网络的发展趋势,为GSM网向第三代演进打下基础
· 进展情况:商用系统计划2000年推出 Q:使用ISDN的适配器向手机发送短消息
有pc的串口发送AT命令,ISDN适配器使手机收到短消息可以实现吗?
A:只要您的ISDN适配器可与短消息中心正常通信就可向手机发送短消息
"与短消息中心正常通信"是指向ISDN的适配器发送标准贺氏指令即可,短消息中心一定会接受。还是指要经过短信息中心授权,短信息中心给出一套自己定义的标准指令。与短消息中心正常通信"是指向ISDN的适配器发送标准贺氏指令即可,短消息中心一定会接受。还是指要经过短信息中心授权,短信息中心给出一套自己定义的标准指令。 AT指令既可 Q:A2D设备发送SMS是否大材小用,因为从兼容AT指令的MODEM发送AT即可.
A:A2D是GSM Modem,针对于基于GSM无线网络的系统应用。
Q:A2D模块是否支持16位的短消息传输内容:也就是说如何实现中文短消息.烦请举一个例子说明。谢谢!
A:Falcom A2D模块支持16位的短消息传输。具体应用请与我们联系。
Q:Re: 如何用falcom发送广播消息?
A:Falcom GSM Modem/Module 完全符合GSM规范,通过FTA认证。发送广播消息应该需要短消息中心具备这种功能。 Q:Re: 请问如何用PDU格式发送短信?
A:有关Falcom GSM Modem/Module开发应用请直接与我们联系或参看本网站所列资料。
将uniCode转化为中文的代码 以下是将uniCode转换为中文的代码。
function TfrmMain.ReadHex(AString: string): integer;
begin
Result:=StrToInt('$'+AString)
end;
function TfrmMain.UnicodeToAnsi(Unicode: string): string;
var
s:string;
i:integer;
j,k:string[2];
begin
i:=1;
s:='';
while i j:=Copy(Unicode,i+2,2);
k:=Copy(Unicode,i,2);
i:=i+4;
s:=s+Char(ReadHex(j))+Char(ReadHex(k));
end;
if s<>'' then
s:=WideCharToString(PWideChar(s+#0#0#0#0))
else
s:='';
Result:=s;
end;
如何在vb中将汉字转化成unicode A.发送中文例子:
发送中文有两种方法,一种是PDU,一种是UCS2文本
1.PDU方法:
at+cmgf=0
at+cmgs=24
>0891683108100005F011000B813109018759F10008A70A00650073007496484E30
信息内容为set陈丰
解释:此字符串传set陈丰五个字符,采用unicode编码。
0891固定格式不动,683108100005F0为短消息中心号码,
11固定格式不动代表PDU格式,
00代表是第几条短消息,
0B81固定格式不动,3109018759F1为目的号码,
00固定格式不动代表是短消息,
08代表8位unicode编码(中文必须用unicode编码),F0到F3为7编码,F4到F7为8位编码
A7代表此短消息在短消息中心存储的时间是24小时,最大FF为135周,
0A代表后有10个字节(有1个字节为01,2个为01,类推)
0065是s的unicode编码,0073是e的unicode编码,0074是t的unicode编码,
9648是陈的unicode编码,4E30是丰的unicode编码
0A后跟的就是所需发送的消息部分,全部采用unicode的编码。
unicode的编码转换可调用VB或VC中的函数直接得到。
at+cmgs=24中的24是14再加上消息长度10得出的.
2.USC2的文本方法
at+cmgf=1
at+csmp=??,??,??,8(问号代表自己根据需要选择合适的参数)
at+cmgs=手机号码(1390PQRABCD)
>00650073007496484E30
信息内容为set陈丰
当您用UCS2文本发送中文短消息时,要先将中文转成unicode编码,
再将中文短消息的unicode编码用文本方式发送.
B.编程例子:
Private Sub Command1_Click()
' 使用 COM3。
' 9600 波特,无奇偶校验,8 位数据,一个停止位。
MSComm1.Settings = "9600,N,8,1"
MSComm1.Handshaking = comRTS
' 打开端口。
' MSComm1.PortOpen = False
' MSComm1.PortOpen = True
' 将 at 命令送到调制解调器。
MSComm1.Output = "AT"
MSComm1.Output = Chr(13)
MSComm1.Output = "AT+CMGF=1"
MSComm1.Output = Chr(13)
MSComm1.Output = "AT+CMGS="
MSComm1.Output = Chr(34)
MSComm1.Output = "13901237885"
MSComm1.Output = Chr(34)
MSComm1.Output = Chr(13)
MSComm1.Output = "test OK "
MSComm1.Output = Chr(26)
End Sub
Private Sub Command3_Click()
MSComm1.CommPort = 2
MSComm1.PortOpen = True
End Sub
//将UNICODE转换中文
Public Function Unicode2AscII(ByVal s As String)
On Error Resume Next
Dim i As Integer
Dim r As String
For i = 1 To Len(s) Step 4
r = r + ChrB("&H" & Mid(s, i + 2, 2)) & ChrB("&H" & Mid(s, i, 2))
Next
Unicode2AscII = r
End Function
//将中文转换为UniCode,
function AnsiToUnicode(Ansi: string):string;
var
s:string;
i:integer;
j,k:string[2];
a:array [1..1000] of char;
begin
s:='';
StringToWideChar(Ansi,@(a[1]),500);
i:=1;
while ((a[i]<>#0) or (a[i+1]<>#0)) do begin
j:=IntToHex(Integer(a[i]),2);
k:=IntToHex(Integer(a[i+1]),2);
s:=s+k+j;
i:=i+2;
end;
Result:=s;
end;
基于串口通信的远程自动抄表系统实现 摘 要:对远程抄表系统的方案、系统的组成、硬件的配置、软件设计、工作原理、功能以及技术性能进行了论述。该系统通过下位机(MCU)和无线收发模块(PTR2000)采集、整理数据,通过串口经MODEM模块与上位机通信,水、电、气公司通过上位机(PC机)收集数据,实现远程无线自动抄表的功能。 引言 在人们的日常生活中,水、电、气是不可缺少的必备生活保障,然而对于水、电、气供应公司来说,每个月上门抄取各个用户的三表读数却是非常繁重的工作,需要投入大量的人力和物力。现在许多公司在研究自动抄表系统,但是他们通常采用电话线或者是专线完成与上位机的通讯,成本比较高。详见参考资料[3][6][7]。针对这种情况,作者设计了一种远程无线自动抄表系统。自动抄表系统,简称ARMS(Automatic Reading Meter System),是供应水、电、气的部门将安装在用户处的水、电、气表所记录的用量等数据通过遥测、传输和计算机系统汇总到营业部门,代替人工抄表及一连串后续工作的系统。该系统的无线通信是采用GSM短消息业务,它的实现是迈向家庭自动化的第一步,并有助于提高水电系统管理的现代化水平。该系统具有两个主要特点:其一系统数据采集点多,成千上万,数据量大;其二系统是一个覆盖面很广的通信网络,采集点具有分散性。对系统的要求,一方面应造价低、经济实惠,另一方面数据的采集要准确及时,又要有一定的环境适应能力和抗干扰能力。随着现代化电子技术的发展,通信技术和计算机技术都有了飞速发展,而两者的结合又进一步演化出许多新的通信方式和通信系统,为ARMS的实现提供了可能。这样可避免抄表员上门抄表带来的弊端,省却了上门抄表打扰用户的尴尬问题,对公司、用户都有很大的便利,具有良好的市场前景。特别是在大中城市里,该系统具有很广的推广价值。 1.系统的组成及工作原理 系统组成:数据采集部分;数据发送、无线通信部分;数据接收、处理部分。 工作原理:数据采集装置首先通过传感器采集三表的读数,将采集的数据存 入单片机(AT89C2051)内;单片机再通过无线通讯模块PTR2000(发端)将数据发送,用户集中器的PTR2000(收端)将发送来的数据接收,下位机主要完成采集数据、分时存储和同上位机通信的功能,它通过串行接口与GSM/Modem联接,以公众网(GSM)为平台,通过电信公众网络传输数据。随着GSM移动通信网络的建设和发展,移动通信网日益庞大复杂,所覆盖地区也日益广泛。因而通过GSM移动通信网络进行数据的传输也成为了一种新式的数据传输手段。GSM/Modem通过GSM的短消息业务发送数据。PC机(上位机)一般设在公司的营业处,它是负责整个系统管理的,它将数据收集到,然后对接收的数据整理、存储、显示,并计算出各用户需缴纳的费用。还可以将用户的用量曲线打印出来,对实行季节电价、分时电价,用经济杠杆实现削峰填谷很有利,可以为国家节约能源。系统的组成结构原理图如图1: 经济分析:本系统的最大容量设计为1000家。规定每100ms采集一家的数据,则一分钟可以采集600家的数据。普通的电表是2400转/KWH,采集装置每采集20个脉冲记1个点。每十分钟采集的数据最多占1个字节,每家的用量数据是按增量采集的,三个表的增量最多占3个字节,所以600家的数据最多占2K字节,每分钟采集一轮,采集到的数据存储在AT89C51的RAM内,在存储器内整理、打包,每十分钟发送一次。由于夜晚用电水气量比较少,所以在晚上发送的数据包,很多是空包,这样就浪费占用通信信道的时间。因此在软件设计时,采用越限发送,即每次采集的数据必须超越一定的量才发送,一天最多12小时的用量高峰期是每十分钟发送一次的。基于GSM短消息业务的容量主要是由短消息服务中心的处理能力和无线信令信道的承载能力决定的,每个短消息的信息量限制为140个八位组(7比特编码,160个字符)不超过140个字节。每十分钟采集3K数据,需要发送22条短消息,则每月发送约5万条。按照西安市短信费用标准,2-5万条/月的费用是2000元/月。平均每家2元/月。因此该系统非常的经济。而且上位机每十分钟就收集一次的数据,这样就可以在一天里用电高峰期里及时采集用户的用量,并将用量曲线打印出来。
2.硬件配置 2.1数据采集、发送部分 水表是将原水表计数齿轮指针换装成带磁性的指针,再通过传感器进行数据采集;气表要用带信号输出的气表;电表必须采用脉冲式电子电度表,电表脉冲输出的器件为光耦输出,具有较好的隔离作用。数据采集装置与用户的电表安装在一起,为了防止用户的突然断电,采集装置必须装在空气开关的前端。电表可以通过计数脉冲来测量,由光电采集头采集电表的计数脉冲,表盘转一圈,光电采集头发出一个脉冲,输入的P1口的P1.0,由AT89C2051存储。然后通过PTR2000模块发送数据。PTR2000模块乃是超小型、超低功耗、高速率19.2K无线收发数传MODEM。采用了当代最先进的欧洲“蓝牙技术”应用全数字科技,由单IC组合而成,接收发射合一,工作频段为433--434MHz,空中传输数据速率为19.2Kbps,工作电压范围为2.7V—5.25V,采用FSK调制,抗干扰能力强,标准的DIP引脚间距,更适合嵌入式设备。当PTR2000的TXEN脚为高时,它处于发射状态;当TXEN脚为低时,它处于接收状态。在硬件设计时,将TXEN与AT89C2051的P1.1脚连接,通过软件控制PTR2000的状态。电路原理图如图2。
图2 数据采集、发送装置电路原理图 2.2 数据接收和远程无线通讯 PTR2000将数据接收并且存入AT89C51内,ROM和RAM分别用来存储程序和数据,数据按当时的时间存入相应时段的存储区内,时段间隔为10分钟。不同日期的同一时段数据仅在相应的存储区内累加。采集装置内装有免维护电源,保证断电后还可以工作,保护数据和接收、执行上位机的命令。AT89C51通过串口与无线MODEM连接,实现与上位机的无线通讯。 GSM(Global System for Mobile Communication)系统是目前基于时分多址技术的移动通信体制中最成熟、最完善、应用最广的一种系统。我国目前已建成了覆盖全国的GSM数字蜂窝移动通信网,是我国公众陆地移动通信网的主要方式。GSM的短消息业务SMS(Short Message Service)与话音传输及传真一样同为GSM数字蜂窝移动通信网络提供的主要电信业务,它通过无线控制信道进行传输,是GSM通信网所特有的,经短消息业务中心完成存储和前转功能,它不用拨号建立连接,直接把要发的信息加上目的地址发送到短消息服务中心,由短消息服务中心再发送给最终的信宿。这适于把每次采集到的数据随时发送到监控中心。传送短消息业务的控制信道为专用控制信道(DCCH)。详见参考资料[6]。短消息业务可以使网络端知道被叫方是否已经收到短消息,如果传送失败,被叫方没有回答确切消息,网络一侧会保留所传的消息,一旦网络发现被叫方能被叫通时,消息能被重发以确保被叫方能收到。因此短消息业务作为GSM网络的一种主要的电信业务,它的传递是可靠的。综上所述,本系统选用GSM的短消息业务来实现远程无线数据传送是可行的。GSM调制解调器(GSM/MODEM)的出现改变了传统的以话音为主的通信手段,打开了GSM网络数据通信及其应用的大门。它提供RS232数据接口,采用AT贺氏指令,符合ETSI标准GSM0707和GSM0705。本系统的GSM/MODEM采用法国WAVECOM公司的GSM/MODEM模块。详见参考资料[5]电路原理图如图3 图3 数据接收、无线通讯电路原理图 2.3 数据处理部分 上位机通过DDE接口将下位机发送的数据传送到EXCEL工作表中,在EXCEL中定义好报表格式,计量格式,并将文件以模板格式保存,在抄表完成后,系统能自动将数据填写到相应指定单元格,由EXCEL自动计算,换算成KWH值并算出收费值。在上位机上打印、显示用户的水、电、气费和各种报表及负荷曲线,当用户负荷超限时发出报警信号,根据公司的规定决定是否发遥控命令给下位机对用户实行断电处理。还可以计算各个时段的费用,为电力部门实行分时收费提供可靠的保证。而且为了保证数据存储的安全性,上位机(PC机)采用了双硬盘做数据备份,系统带有后备电源,停电后能保持正常工作状态。后备电源可保证系统在满负荷工作状态下正常工作36小时以上,若停电时间更长,系统将不会进行数据采集,但原有数据不会丢失,供电恢复后需要重新核查数据,更新设置用户集中器中下位机存储的数据。 3.软件设计 由于该系统采用的是一点对多点的双向数据传输,因此每家的表都有自己的地址码。上位机可以查询下位机,下位机也可以定时发送数据给上位机。本系统要实现的目的是一机(上位机)对多机(下位机)的通讯控制,其通讯软件主要分为两部分:上位机与下位机的远程通讯软件;单片机与GSM/MODEM的串行通讯软件。详见参考资料[2]。程序设计的关键是上、下位机间的远程通讯的准确性。在程序设计中,采用通讯协议(Protocol)的做法,由上位机发出读表指令与地址码,让各个下位机将记录的数据传过来,同时进行校验,以保证数据的正确性。每个下位机都编有不同的地址码,当上位机向所有的下位机发送一个地址码和抄表指令时,所有的下位机都接收到该地址码,并比较是否与其自身的地址码相同,如不相同则退出比较,不再接收其他命令。如相同则表示上位机查询的就是该下位机,同时收回应答信号,并准备接收命令,而上位机将收回的应答信号与发出的地址码相比较,不同则给出错误的信息,相同则可控制已叫通的下位机。这时已叫通的下位机继续接收上位机发送的抄表命令,并收集用户的数据,通过GSM网络发送给上位机,直到接收到上位机发来的执行完成命令。程序流程图见图4、图5。
4.结束语 本文介绍的自动抄表系统集计算机、通信技术于一体,采用先进的无线通讯模块和最成熟、最完善、应用最广的GSM作为数据传输的平台,抄数即快速又准确,彻底解决了人工抄表的所有弊病。还可进一步与银行系统的微机联网,实现费用自动划拨,大大提高了工作效率,具有良好的市场前景。
2. 不能与GSM MODEM进行正常的通信或总是在仿真终端上出现乱码
3. 如何才能知道错误代码
4. 发送短消息后,收到出错信息+CMS ERROR 512
5. 发送短消息后,收到出错信息+CMS ERROR 513
6. 发送短消息后,收到出错信息+CMS ERROR 514
7. 发送短消息后,收到出错信息+CMS ERROR 515
8. 如何才能知道您发送的短消息已被送达目的号码
9. 如何发送中文短消息
10.如何建立一个话音呼叫
11.如何建立一个数据呼叫
12.当GSM MODEM作被叫时,如何显示主叫的电话号码
13.当GSM MODEM作被叫时,如何判别主叫发起的是话音、数据或传真呼叫
14.当GSM MODEM作被叫时,如何使其自动应答或不能自动应答
15.如何不通过SIM卡直接读或写短消息
1. 如何与GSM MODEM建立通信联系
您可用诸如Windows下的超级终端或Pcomm等终端仿真软件,将计算机的串行口与GSM MODEM的串行口用电缆直接连接。
2. 不能与GSM MODEM进行正常的通信或总是在仿真终端上出现乱码
检查您的串口是否保证正常连接,计算机的串口引线与GSM MODEM的串口引线应是一一对应的。GSM MODEM与仿真终端应设置相同的通信速率。
但您初次使用GSM MODEM时,请在仿真终端上设置为通信速率9600bps、8位数据位、无较验位、1位停止位。
3. 如果您想在出错后得到错误代码号,需将GSM Modem作如下设置:
AT+CMEE=1
4. 发送短消息后,收到出错信息+CMS ERROR 512
表示您的GSM MODEM在发送短消息的同时它收到了新的短消息,发送短消息被拒绝,您需要重新发送此条短消息。
5. 发送短消息后,收到出错信息+CMS ERROR 513
您遇上了下面问题中的一种:
a) 您的GSM MODEM失去了无线链路连接;
b) 在发送完短消息后的28秒内,您的GSM MODEM没有收到短消息中心送来的接收确认+CMGS:〈顺序号〉;
c) 在送出请求建立发送短消息的控制信道指令后的42秒内,您的GSM MODEM没有收到基站送来的确认〉。
6. 发送短消息后,收到出错信息+CMS ERROR 514
您遇上了下面问题中的一种:
a) 您设置的短消息中心的号码是错误的;
b) 短消息将要送达的目的号码是错误的;
c) 您发送的短消息被短消息中心拒绝(一般为目的号码不存在或目的号码被禁用)。
7. 发送短消息后,收到出错信息+CMS ERROR 515
如果您的GSM MODEM在初始化期间或在指令执行过程当中GSM MODEM又接受新的指令,将会出现此错误。您必须等到初始化完成或指令执行完毕。
8. 如何才能知道您发送的短消息已被送达目的号码
a) 采用文本格式发送
在您采用文本格式发送短消息时,您的GSM MODEM须作以下的设置:
at+csmp=49,〈X〉,〈X〉,〈X〉
at+cnmi=〈X〉,〈X〉,〈X〉,1,〈X〉
〈X〉代表根据您的需要您所选择的合适的参数。
当您发送完短消息后,您将收到来自短消息中心的以下两种确认中的一种:
+CDS:〈X〉,〈顺序号〉,"电话号码","发送时间","接收时间",0
或:
+CDS:〈X〉,〈顺序号〉,"电话号码","发送时间","接收时间",48
确认中的最后个数代表了此短消息的传输状态。(0表示已经送达目的号码,48表示不可能将此送达目的号码)
b) 采用PDU格式发送
在您采用PDU格式发送短消息时,您的GSM MODEM须作以下的设置:
at+cnmi=〈X〉,〈X〉,〈X〉,1,〈X〉
〈X〉代表根据您的需要您所选择的合适的参数。
在您所要发送的PDU格式的短消息中,您须将短消息中心号码后的第一个字节设成31
在发送完短消息后,您将收到来自短消息中心的以下确认:
+CDS:〈长度〉00〈PDU格式的确认信息〉
注意:在收到的PDU格式的确认中,顺序号和传输状态标志都是以16进制数存在的,您可将其直接转成10进制数而无需将其倒置后再转换。
9. 如何发送中文短消息
采用现有的GSM MODEM发送中文短消息,都必须先将准备发送的中文短消息转换成16位的Unicode编码。
A) 采用文本方式发送
在您采用文本格式发送Unicode编码中文短消息时,您的GSM MODEM须作的设置:
at+csmp=〈X〉,〈X〉,〈X〉,8
〈X〉代表根据您的需要您所选择的合适的参数。
然后您就可将转换好的Unicode编码中文短消息按照发送普通文本短消息的方法发送出去。
B) 采用PDU方式发送
您只须在您的PDU格式的短消息中,将目的号码字符串后的第二个字节设成08,将转
换好的Unicode编码中文短消息作为PDU中的发送内容一齐发送。
10. 如何建立一个话音呼叫
向GSM MODEM的串口送指令ATD〈电话号码〉;〈回车〉必须确认电话号码是一个话音号码而非传真或数据号码。
11. 如何建立一个数据呼叫
先将您的GSM MODEM作如下设置:
at+ipr=9600
at+ifc=2,2
at+cbst=0,0,1
向GSM MODEM的串口送指令ATD〈电话号码〉〈回车〉
必须确认电话号码是一个数据号码而非传真或话音号码,同时必须确认您的SIM卡已开通数据通信的服务。
12.当GSM MODEM作被叫时,如何显示主叫的电话号码
将您的GSM MODEM作如下设置:
at+clip=1
13.当GSM MODEM作被叫时,如何判别主叫发起的是话音、数据或传真呼叫
将您的GSM MODEM作如下设置:
at+crc=1
14.当GSM MODEM作被叫时,如何使其自动应答或不能自动应答
如果您想让您的GSM MODEM自动应答,将您的GSM MODEM作如下设置:
ats0=〈N〉 N是代表GSM MODEM震铃的次数的一个整数,即GSM MODEM在N 次 震铃后将自动应答。
如果您想让您的GSM MODEM不能自动应答,将您的GSM MODEM作如下设置:
ats0=0
15.如何不通过SIM卡直接读或写短消息
因为SIM卡只有1万到10万次的读写次数和10-15条短消息的存储空间,还涉及到SIM卡上短消息读写需要一定的时间才能完成。这些因素影响了许多应用,这些应用需要通过GSM网络进行大量的数据交换,为保证流程的顺利进行,SIM卡要完成大量的读、写和删除***作,SIM卡的寿命周期很快就会达到,此外,SIM卡完成这些工作所耗费的时间比外界要求的要多。为解决这些问题,有必要在终端上作一些软件设置,使短消息不通过SIM卡进行读写***作。
以下的描述介绍了如何采用这种方法在Falcom A2系列和数据终端MT4002之间不通过SIM卡交换数据,这种方法也可用与2个MT4002之间。
a) 串口上的从终端来的RTS信号可用来指示数据交换时隙是否忙,串口准备好接收数据
b) 如果终端双方都可用来接收和发送短消息,在设置时双方都要设同样的命令和常数。
在接收端,设命令AT+CNMI=2,2,0,0,0
在发送端,设命令AT+CSMP=17,167,0,240 (当使用PDU格式发送时,240改成字符串DCS(F0))
c) 当程序发现短消息以前缀+CMT后跟所传送的数据这种格式时,立即将此短消息捕获并将其分发到原定的地址。
d) 当发送端如果没有设置CSMP=17,167,0,240时,捕获到的短消息应有前缀+CMTI,此时用命令AT+CMGR=n读取并分发到原定的地址,随后用命令AT+CMGD=n将此短消息删除以保证SIM卡有足够多的空间。
Q:请问什么是STK,FALCOM A2D系列有没有这项功能?怎么用STK? 多谢.
A:STK (SIM Tool Kit)卡预先储存一些移动网络可提供的一些服务的数据资料,如短消息中心号码、信息服务代码等,目前中国移动即将推出的手机银行业务即需要STK卡来支持。使用STK卡的手机在屏幕上可显示普通SIM卡不具备的菜单,如"全球通服务"。通过调用这一菜单,可进入下一级和在下一级菜单。用户通过选择可进行新闻股票信息查询、银行转帐股票委托等移动电子商务等多项移动信息服务,***作上类似于internet网页的分级链接。STK (SIM Tool Kit)卡由SIM卡厂家提供。
Q:STK程序如何开发,工具及帮助文档?
A:目前中国移动网络的STK (SIM Tool Kit)卡由SIM卡厂家提供技术支持,负责提供STK开发系统,负责STK的编程和制作,并保证消息加密方式的先进性和密钥的安全性应用层协议格式有网络运营,业务提供,SIM卡厂家,短消息厂家四方共同制定。 Q:发SMS的时候,是怎么实现能自动判断接受手机的语言,发中文SMS给中文机,英文SMS给英文机.
A:发送短消息时,无法自动判断接受手机的语言,必须预先知道接受手机所能支持的语言,再选择语言种类编码发送。以小区广播为例,无论发送中文还是英文信息小区内的手机都将同时收到,不支持该发语种的手机收到的将是乱码。 Q:GSM MODEM有没有提供SMS编程的API或者其他资料
A:GSM Modem的使用及开发资料请参看A2D-1。对于FalcomA2D-A(B,C)和A2D-3我们提供配套的开发工具,请参看相关类别的资料说明。 Q:SMS的格式如何规定的?
A:请在我们网站上下载Falcom A2D用户手册上面有关于短消息通信的相关指令.
Q:我买了一个nokia data suite想通过它发at命令来实现发中文短讯 但是不支持"at * c" "send " 请问如何处理?
A:不知您提到的"at * c" 是否在GSM规范07.07和07.05中? Q:从哪能得到GSM规范07.07和07.05?谢谢!
A:您在我们网站上可以下载相关文档,里面有关于GSM规范AT指令的详细说明。或者您可以到ETSI的官方网站上去找。 Q:我也用数据套件(Nokia DataSuite2.0)发过消息,但只能发英文,发不了中文.怎么办?
A:中英文短消息的编码格式不一样. Q:我可以确定我是用Unicode格式发送的中文,怎么还不好使? 如果想发中文,你说该怎办? Email:zhangqing888@sina.com
A:"Nokia DataSuite2.0"的数据格式和定义我们不了解. Falcom A2D可以实现中文短信. Q:AT+CMGS如何发送命令?本人想通过超级连接发送中文(手机不支持中文发送),应如何写命令格式? 望大虾指点.
at+cmgf=0
ok
at+cmgs="683106316070F60008050034192242308007400650073007"
Error
如何解决? 求助大虾!
A:假设有一个消息ab须发送,则:
at+cmgs=16
>0891(短消息中心号码)11000D91(目的号码)00F2A7024121(ctrl+Z结束) Q:Re: AT+CMGS如何发送命令?
A:先设at+cmgf=0,再发at+cmgs="LEHGTH"
"LENGTH'代表发送字节长度短消息中心号码和目的号码包含其中中文用unicode编码,如不明白与我联系发信给我 Q:我就是用unicode编码,但是在pdu格式下,在对方手机上显示不出来
A:Falcom A2D可以实现中文短信. Q:请教PDU数据格式以及SMS-AT命令中的发送数据格式
A:"PDU数据格式"见GSM03.40和GSM03.41,"SMS-AT命令中的发送数据格式"见GSM07.05和GSM07.07.上述规范可到http://www.etsi.org/ 下载。 Q:falcom的A2D系列产品可否与WAP、GPRS兼容?
A:WAP是一种简化的浏览器协议,与传输通路没有关系只要您的终端上有WAP或类似的浏览器,您就可支持WAP,所以,falcom的A2D是可以通过的只要您在上建立了数据链路。 支持的A2D将在今年第三季度推出,现有的内核是支持的只不过现在未开放。 Q:请问A2D的内核支持WAP,是否直接内置WAP浏览器,如果是的话,A2D是否等于WAP手机。
A:A2D本身没有WAP浏览器,须在A2D中加入WAP浏览器和显示屏及键盘才能成为手机 Q:贵公司有GPS receiver 的代理和A2D-GPS的相关中文的资料吗?
A:我公司不代理单独的GPS,不过我可推荐此代理给您. A2D-GPS目前没有中文资料,抱歉 Q:可以发以份报价表给我吗?EMAIL:SEAGATE@163。NET 希望可以得到贵公司的最新的代理产品和公司产品。谢谢!
A:请在'联系方式'下填写用户信息我们将电邮给您 Q:Nokia手机的NDS收发短信息也是用AT命令吗?有没有手机和电脑通讯的规范呢?本人也非常想知道有关PC和手机通讯的规范。当TE 和 ME (未经 TA)相连时,手机端所采用的通讯规范是哪一种?
A:NDS代表什么?请参考本网站a2dman.pdf.请参考ETSI相关规范。http://www.etsi.org Q:本人已查看过 ETSI 关于GSM的规范,如GSM07.01 GSM 07.07 GSM 07.05 等,但仍未搞明白,在此特请教先生,涉及手机编程问题的具体规范.
A:有关Falcom GSM 产品的开发问题请直接与我公司联系。其他产品我们因不了解无法提供进一步解答,请见谅.欢迎各位同仁提供信息和指教。 Q:Can I find any papers published on IEEE and how? Thanks.
A:http://www.ieee.org/ Q:MODEM如何设置自动应答?请教AT命令集?
A:ats0=1 Q:用什么指令可以让手机收到的短信息不存储在手机内部而直接发送到数据终端(如计算机)?如果广泛使用短消息,势必造成接收短消息那台手机的flash或sim卡eeprom的损坏,用什么at指令可以让手机收到的短消息直接从串行口发送出来而不存储?
A:请下载simcn.doc文件 Q:我用PDU方式,对字符进行8bit编码,发送英文字符正常,但发送汉字在手机上显示不出来?SMS对汉字怎样编码才能被手机识别并显示出来?
A:请参考本论坛以前讨论内容。 Q:但是还是不能解决问题啊,怎样编码才能让普通手机收到后显示出来?
A:您的手机是否支持中文? Q:Re: AT+CMGS如何发送命令?
我就是用unicode编码,但是在pdu格式下,在对方手机上显示不出来
A:Falcom A2D可以实现中文短信.
Q:请教
内容:
我在接收中文短信时,接收到的是UNICODE原码,但它的正文个数好象是按普通的ASC码算的,比如:
我发的是"一一一一"收到的是"4E004EOO4E004E",后面的还有的"00"没有;
当我发"一一一乙"时,收到的还是"4E004E004E004E"
请教一下这是为什么?
A:但是这不是unicode原码,是手机自己的编码!
Q: 请教一下,GPRS是什么单词的缩写。
A:GPRS的全称是"通用分组无线业务"(General Packet Radio Service),它是ETSI组织制定的一套标准,以实现移动分组数据业务。
· 实现方式:在GSM网络上增加分组数据服务设备,并对GSM无线网络设备进行升级,从而利用现有的GSM无线覆盖提供分组数据业务。
· 特点:
· 传输速度快:最高可达171kbps(初期9-50kHz)
· 可灵活支持多种数据应用
· 网络接入速度快
· 可长时间在线连接
· 计费更加合理(按数据流量计费)
· 高效利用网络资源,降低通信成本
· 利用现有无线网络覆盖,提高网络建设速度,降低建设成本
· GPRS的核心网络顺应通信网络的发展趋势,为GSM网向第三代演进打下基础
· 进展情况:商用系统计划2000年推出 Q:使用ISDN的适配器向手机发送短消息
有pc的串口发送AT命令,ISDN适配器使手机收到短消息可以实现吗?
A:只要您的ISDN适配器可与短消息中心正常通信就可向手机发送短消息
"与短消息中心正常通信"是指向ISDN的适配器发送标准贺氏指令即可,短消息中心一定会接受。还是指要经过短信息中心授权,短信息中心给出一套自己定义的标准指令。与短消息中心正常通信"是指向ISDN的适配器发送标准贺氏指令即可,短消息中心一定会接受。还是指要经过短信息中心授权,短信息中心给出一套自己定义的标准指令。 AT指令既可 Q:A2D设备发送SMS是否大材小用,因为从兼容AT指令的MODEM发送AT即可.
A:A2D是GSM Modem,针对于基于GSM无线网络的系统应用。
Q:A2D模块是否支持16位的短消息传输内容:也就是说如何实现中文短消息.烦请举一个例子说明。谢谢!
A:Falcom A2D模块支持16位的短消息传输。具体应用请与我们联系。
Q:Re: 如何用falcom发送广播消息?
A:Falcom GSM Modem/Module 完全符合GSM规范,通过FTA认证。发送广播消息应该需要短消息中心具备这种功能。 Q:Re: 请问如何用PDU格式发送短信?
A:有关Falcom GSM Modem/Module开发应用请直接与我们联系或参看本网站所列资料。
将uniCode转化为中文的代码 以下是将uniCode转换为中文的代码。
function TfrmMain.ReadHex(AString: string): integer;
begin
Result:=StrToInt('$'+AString)
end;
function TfrmMain.UnicodeToAnsi(Unicode: string): string;
var
s:string;
i:integer;
j,k:string[2];
begin
i:=1;
s:='';
while i j:=Copy(Unicode,i+2,2);
k:=Copy(Unicode,i,2);
i:=i+4;
s:=s+Char(ReadHex(j))+Char(ReadHex(k));
end;
if s<>'' then
s:=WideCharToString(PWideChar(s+#0#0#0#0))
else
s:='';
Result:=s;
end;
如何在vb中将汉字转化成unicode A.发送中文例子:
发送中文有两种方法,一种是PDU,一种是UCS2文本
1.PDU方法:
at+cmgf=0
at+cmgs=24
>0891683108100005F011000B813109018759F10008A70A00650073007496484E30
信息内容为set陈丰
解释:此字符串传set陈丰五个字符,采用unicode编码。
0891固定格式不动,683108100005F0为短消息中心号码,
11固定格式不动代表PDU格式,
00代表是第几条短消息,
0B81固定格式不动,3109018759F1为目的号码,
00固定格式不动代表是短消息,
08代表8位unicode编码(中文必须用unicode编码),F0到F3为7编码,F4到F7为8位编码
A7代表此短消息在短消息中心存储的时间是24小时,最大FF为135周,
0A代表后有10个字节(有1个字节为01,2个为01,类推)
0065是s的unicode编码,0073是e的unicode编码,0074是t的unicode编码,
9648是陈的unicode编码,4E30是丰的unicode编码
0A后跟的就是所需发送的消息部分,全部采用unicode的编码。
unicode的编码转换可调用VB或VC中的函数直接得到。
at+cmgs=24中的24是14再加上消息长度10得出的.
2.USC2的文本方法
at+cmgf=1
at+csmp=??,??,??,8(问号代表自己根据需要选择合适的参数)
at+cmgs=手机号码(1390PQRABCD)
>00650073007496484E30
信息内容为set陈丰
当您用UCS2文本发送中文短消息时,要先将中文转成unicode编码,
再将中文短消息的unicode编码用文本方式发送.
B.编程例子:
Private Sub Command1_Click()
' 使用 COM3。
' 9600 波特,无奇偶校验,8 位数据,一个停止位。
MSComm1.Settings = "9600,N,8,1"
MSComm1.Handshaking = comRTS
' 打开端口。
' MSComm1.PortOpen = False
' MSComm1.PortOpen = True
' 将 at 命令送到调制解调器。
MSComm1.Output = "AT"
MSComm1.Output = Chr(13)
MSComm1.Output = "AT+CMGF=1"
MSComm1.Output = Chr(13)
MSComm1.Output = "AT+CMGS="
MSComm1.Output = Chr(34)
MSComm1.Output = "13901237885"
MSComm1.Output = Chr(34)
MSComm1.Output = Chr(13)
MSComm1.Output = "test OK "
MSComm1.Output = Chr(26)
End Sub
Private Sub Command3_Click()
MSComm1.CommPort = 2
MSComm1.PortOpen = True
End Sub
//将UNICODE转换中文
Public Function Unicode2AscII(ByVal s As String)
On Error Resume Next
Dim i As Integer
Dim r As String
For i = 1 To Len(s) Step 4
r = r + ChrB("&H" & Mid(s, i + 2, 2)) & ChrB("&H" & Mid(s, i, 2))
Next
Unicode2AscII = r
End Function
//将中文转换为UniCode,
function AnsiToUnicode(Ansi: string):string;
var
s:string;
i:integer;
j,k:string[2];
a:array [1..1000] of char;
begin
s:='';
StringToWideChar(Ansi,@(a[1]),500);
i:=1;
while ((a[i]<>#0) or (a[i+1]<>#0)) do begin
j:=IntToHex(Integer(a[i]),2);
k:=IntToHex(Integer(a[i+1]),2);
s:=s+k+j;
i:=i+2;
end;
Result:=s;
end;
基于串口通信的远程自动抄表系统实现 摘 要:对远程抄表系统的方案、系统的组成、硬件的配置、软件设计、工作原理、功能以及技术性能进行了论述。该系统通过下位机(MCU)和无线收发模块(PTR2000)采集、整理数据,通过串口经MODEM模块与上位机通信,水、电、气公司通过上位机(PC机)收集数据,实现远程无线自动抄表的功能。 引言 在人们的日常生活中,水、电、气是不可缺少的必备生活保障,然而对于水、电、气供应公司来说,每个月上门抄取各个用户的三表读数却是非常繁重的工作,需要投入大量的人力和物力。现在许多公司在研究自动抄表系统,但是他们通常采用电话线或者是专线完成与上位机的通讯,成本比较高。详见参考资料[3][6][7]。针对这种情况,作者设计了一种远程无线自动抄表系统。自动抄表系统,简称ARMS(Automatic Reading Meter System),是供应水、电、气的部门将安装在用户处的水、电、气表所记录的用量等数据通过遥测、传输和计算机系统汇总到营业部门,代替人工抄表及一连串后续工作的系统。该系统的无线通信是采用GSM短消息业务,它的实现是迈向家庭自动化的第一步,并有助于提高水电系统管理的现代化水平。该系统具有两个主要特点:其一系统数据采集点多,成千上万,数据量大;其二系统是一个覆盖面很广的通信网络,采集点具有分散性。对系统的要求,一方面应造价低、经济实惠,另一方面数据的采集要准确及时,又要有一定的环境适应能力和抗干扰能力。随着现代化电子技术的发展,通信技术和计算机技术都有了飞速发展,而两者的结合又进一步演化出许多新的通信方式和通信系统,为ARMS的实现提供了可能。这样可避免抄表员上门抄表带来的弊端,省却了上门抄表打扰用户的尴尬问题,对公司、用户都有很大的便利,具有良好的市场前景。特别是在大中城市里,该系统具有很广的推广价值。 1.系统的组成及工作原理 系统组成:数据采集部分;数据发送、无线通信部分;数据接收、处理部分。 工作原理:数据采集装置首先通过传感器采集三表的读数,将采集的数据存 入单片机(AT89C2051)内;单片机再通过无线通讯模块PTR2000(发端)将数据发送,用户集中器的PTR2000(收端)将发送来的数据接收,下位机主要完成采集数据、分时存储和同上位机通信的功能,它通过串行接口与GSM/Modem联接,以公众网(GSM)为平台,通过电信公众网络传输数据。随着GSM移动通信网络的建设和发展,移动通信网日益庞大复杂,所覆盖地区也日益广泛。因而通过GSM移动通信网络进行数据的传输也成为了一种新式的数据传输手段。GSM/Modem通过GSM的短消息业务发送数据。PC机(上位机)一般设在公司的营业处,它是负责整个系统管理的,它将数据收集到,然后对接收的数据整理、存储、显示,并计算出各用户需缴纳的费用。还可以将用户的用量曲线打印出来,对实行季节电价、分时电价,用经济杠杆实现削峰填谷很有利,可以为国家节约能源。系统的组成结构原理图如图1: 经济分析:本系统的最大容量设计为1000家。规定每100ms采集一家的数据,则一分钟可以采集600家的数据。普通的电表是2400转/KWH,采集装置每采集20个脉冲记1个点。每十分钟采集的数据最多占1个字节,每家的用量数据是按增量采集的,三个表的增量最多占3个字节,所以600家的数据最多占2K字节,每分钟采集一轮,采集到的数据存储在AT89C51的RAM内,在存储器内整理、打包,每十分钟发送一次。由于夜晚用电水气量比较少,所以在晚上发送的数据包,很多是空包,这样就浪费占用通信信道的时间。因此在软件设计时,采用越限发送,即每次采集的数据必须超越一定的量才发送,一天最多12小时的用量高峰期是每十分钟发送一次的。基于GSM短消息业务的容量主要是由短消息服务中心的处理能力和无线信令信道的承载能力决定的,每个短消息的信息量限制为140个八位组(7比特编码,160个字符)不超过140个字节。每十分钟采集3K数据,需要发送22条短消息,则每月发送约5万条。按照西安市短信费用标准,2-5万条/月的费用是2000元/月。平均每家2元/月。因此该系统非常的经济。而且上位机每十分钟就收集一次的数据,这样就可以在一天里用电高峰期里及时采集用户的用量,并将用量曲线打印出来。
2.硬件配置 2.1数据采集、发送部分 水表是将原水表计数齿轮指针换装成带磁性的指针,再通过传感器进行数据采集;气表要用带信号输出的气表;电表必须采用脉冲式电子电度表,电表脉冲输出的器件为光耦输出,具有较好的隔离作用。数据采集装置与用户的电表安装在一起,为了防止用户的突然断电,采集装置必须装在空气开关的前端。电表可以通过计数脉冲来测量,由光电采集头采集电表的计数脉冲,表盘转一圈,光电采集头发出一个脉冲,输入的P1口的P1.0,由AT89C2051存储。然后通过PTR2000模块发送数据。PTR2000模块乃是超小型、超低功耗、高速率19.2K无线收发数传MODEM。采用了当代最先进的欧洲“蓝牙技术”应用全数字科技,由单IC组合而成,接收发射合一,工作频段为433--434MHz,空中传输数据速率为19.2Kbps,工作电压范围为2.7V—5.25V,采用FSK调制,抗干扰能力强,标准的DIP引脚间距,更适合嵌入式设备。当PTR2000的TXEN脚为高时,它处于发射状态;当TXEN脚为低时,它处于接收状态。在硬件设计时,将TXEN与AT89C2051的P1.1脚连接,通过软件控制PTR2000的状态。电路原理图如图2。
图2 数据采集、发送装置电路原理图 2.2 数据接收和远程无线通讯 PTR2000将数据接收并且存入AT89C51内,ROM和RAM分别用来存储程序和数据,数据按当时的时间存入相应时段的存储区内,时段间隔为10分钟。不同日期的同一时段数据仅在相应的存储区内累加。采集装置内装有免维护电源,保证断电后还可以工作,保护数据和接收、执行上位机的命令。AT89C51通过串口与无线MODEM连接,实现与上位机的无线通讯。 GSM(Global System for Mobile Communication)系统是目前基于时分多址技术的移动通信体制中最成熟、最完善、应用最广的一种系统。我国目前已建成了覆盖全国的GSM数字蜂窝移动通信网,是我国公众陆地移动通信网的主要方式。GSM的短消息业务SMS(Short Message Service)与话音传输及传真一样同为GSM数字蜂窝移动通信网络提供的主要电信业务,它通过无线控制信道进行传输,是GSM通信网所特有的,经短消息业务中心完成存储和前转功能,它不用拨号建立连接,直接把要发的信息加上目的地址发送到短消息服务中心,由短消息服务中心再发送给最终的信宿。这适于把每次采集到的数据随时发送到监控中心。传送短消息业务的控制信道为专用控制信道(DCCH)。详见参考资料[6]。短消息业务可以使网络端知道被叫方是否已经收到短消息,如果传送失败,被叫方没有回答确切消息,网络一侧会保留所传的消息,一旦网络发现被叫方能被叫通时,消息能被重发以确保被叫方能收到。因此短消息业务作为GSM网络的一种主要的电信业务,它的传递是可靠的。综上所述,本系统选用GSM的短消息业务来实现远程无线数据传送是可行的。GSM调制解调器(GSM/MODEM)的出现改变了传统的以话音为主的通信手段,打开了GSM网络数据通信及其应用的大门。它提供RS232数据接口,采用AT贺氏指令,符合ETSI标准GSM0707和GSM0705。本系统的GSM/MODEM采用法国WAVECOM公司的GSM/MODEM模块。详见参考资料[5]电路原理图如图3 图3 数据接收、无线通讯电路原理图 2.3 数据处理部分 上位机通过DDE接口将下位机发送的数据传送到EXCEL工作表中,在EXCEL中定义好报表格式,计量格式,并将文件以模板格式保存,在抄表完成后,系统能自动将数据填写到相应指定单元格,由EXCEL自动计算,换算成KWH值并算出收费值。在上位机上打印、显示用户的水、电、气费和各种报表及负荷曲线,当用户负荷超限时发出报警信号,根据公司的规定决定是否发遥控命令给下位机对用户实行断电处理。还可以计算各个时段的费用,为电力部门实行分时收费提供可靠的保证。而且为了保证数据存储的安全性,上位机(PC机)采用了双硬盘做数据备份,系统带有后备电源,停电后能保持正常工作状态。后备电源可保证系统在满负荷工作状态下正常工作36小时以上,若停电时间更长,系统将不会进行数据采集,但原有数据不会丢失,供电恢复后需要重新核查数据,更新设置用户集中器中下位机存储的数据。 3.软件设计 由于该系统采用的是一点对多点的双向数据传输,因此每家的表都有自己的地址码。上位机可以查询下位机,下位机也可以定时发送数据给上位机。本系统要实现的目的是一机(上位机)对多机(下位机)的通讯控制,其通讯软件主要分为两部分:上位机与下位机的远程通讯软件;单片机与GSM/MODEM的串行通讯软件。详见参考资料[2]。程序设计的关键是上、下位机间的远程通讯的准确性。在程序设计中,采用通讯协议(Protocol)的做法,由上位机发出读表指令与地址码,让各个下位机将记录的数据传过来,同时进行校验,以保证数据的正确性。每个下位机都编有不同的地址码,当上位机向所有的下位机发送一个地址码和抄表指令时,所有的下位机都接收到该地址码,并比较是否与其自身的地址码相同,如不相同则退出比较,不再接收其他命令。如相同则表示上位机查询的就是该下位机,同时收回应答信号,并准备接收命令,而上位机将收回的应答信号与发出的地址码相比较,不同则给出错误的信息,相同则可控制已叫通的下位机。这时已叫通的下位机继续接收上位机发送的抄表命令,并收集用户的数据,通过GSM网络发送给上位机,直到接收到上位机发来的执行完成命令。程序流程图见图4、图5。
4.结束语 本文介绍的自动抄表系统集计算机、通信技术于一体,采用先进的无线通讯模块和最成熟、最完善、应用最广的GSM作为数据传输的平台,抄数即快速又准确,彻底解决了人工抄表的所有弊病。还可进一步与银行系统的微机联网,实现费用自动划拨,大大提高了工作效率,具有良好的市场前景。
相关文章推荐
- AT指令编程相关技术问题
- AT指令编程相关技术问题
- AT编程相关技术问题
- Java 编程技术中汉字问题的分析及解决
- 转:Java 编程技术中汉字问题的分析及解决
- Java 编程技术中汉字问题的分析及解决
- 学习《java多线程编程核心技术》遇到的一些问题
- Java 编程技术中汉字问题的分析及解决
- 用MFC编程,在软件登录时与服务器同步数据时遇到的相关问题
- Java 编程技术中汉字问题的分析及解决
- Python GUI编程-了解相关技术
- Java 编程技术中汉字问题的分析及解决
- 面试相关的技术问题--泛型集合
- UFT GUI 测试—— 概述 相关项: GUI 测试和组件 UFT GUI 测试解决方案采用关键字驱动测试的概念, 以增强测试创建和维护。 关键字驱动测试是一项将大量编程工作与实际测试步骤分离的技术
- Oracle技术之和外键相关的阻塞和死锁问题总结(一)
- Java 编程技术中汉字问题的分析及解决
- Qt 及其 PyQt 编程相关问题
- HttpWebRequest编程相关问题(4)
- Java 编程技术中汉字问题的分析及解决
- HttpWebRequest 编程相关问题