CDMA应用系统设计

更新时间:2024-03-17 09:19:29 阅读: 评论:0

2024年3月17日发(作者:朱自清代表作)

CDMA应用系统设计

电脑编程技巧与维护

CDMA应用系统设计

苗建广

(中国电信菏泽分公司,菏泽274000)

摘要:从计算机串口通信入手,结合CDMA短信内容编码,最后给出基于CDMA网络的应用系统关键

流程解决方案。

关键词:CDMA;SMS;计算机串口通信;无线Modem;AT指令

CDMAShortMessageApplicationSystemDesign

MIAOJianguang

(ChinaTelecomHezeBranch,Heze274000)

Abstract:Inthispaper,startingfromthecomputerrialportcommunication,combinedwithCDMAencodingmessagecon-

tent,andfinallygivetheShortmessagebadontheCDMAnetworkcriticalmassflowapplicationsystemsolutions.

Keywords:CDMA;SMS;Computerrialportcommunication;Wirelessmodem;ATcommand

CDMASMS(CDMAShortMessageService)是通过CDMA

网络传输的一种限长文本信息的服务,从而实现移动用户间信

息传递。通过CDMASMS平台,可以实现诸如信息定制、信

息点播、监控报警、抄报电表度数、天气预报、Email通知等

信息服务。随着短信业务拓展和其应用范围扩大,短信作为一

种廉价而快捷的无线通信方式,在许多行业内得到广泛应用。

本系统主要是为解决**电信公司客户经理和维系人员,

向所维系的用户群发短信的困难,而提出的一个课题。

使用重叠I/O方式时,要用到OVERLAPPED结构,该结

构最重要的成员是hEvent事件句柄。它将作为线程的同步对

象使用,读写函数完成时hEvent处于有信号状态,表示可进

行读写操作;读写函数未完成时,hEvent被系统置为无信号。

下面以重叠操作为例,给出串口通信的关键代码:

HANDLEhComm;

hComm=CreateFile("COM3",//使用COM3

GENERIC_READ|GENERIC_WRITE,

//打开类型为可读写

0,//以独占模式打开串口

NULL,//不设置安全属性

OPEN_EXISTING,

//串口通信中必须设置为OPEN_EXISTING

FILE_FLAG_OVERLAPPED,//重叠I/O方式

0);

if(hComm==INVALID_HANDLE_VALUE)

//不能成功打开串口

returnFALSE;

在成功打开串口3后,要进行一些必要的设置,诸如串

口波特率、读/写超时设置、流控等,在此略。

串口监视线程:

UINTCommWatchThread(LPVOIDlp)

//工作者线程,用于监视串口

{

BOOLbRes=FALSE;

DWORDdwEvtMask=0;

DWORDdwError;

unsignedcharrxchar;

COMSTATcomstat;

OVERLAPPEDos;

memt(&os,0,sizeof(OVERLAPPED));

HANDLEm_hEventArray[2];

m_hEventArray[0]=CreateEvent(NULL,TRUE,FALSE,

NULL);

//退出线程事件句柄

m_hEventArray[2]==CreateEvent(NULL,

1串口通信

计算机串口通信在各行各业中得到广泛的应用,如各通

信运营商,中心机房为实时监控机房(包括基站机房)内电

源电流、电池电压、温/湿度以及门磁等数据信息,各监测点

模块间的接口基本全部采用串口通信。现基于Win32系统,

简单介绍计算机串口通信的两种实现方式。

1.1基于控件的串口通信

微软公司在其Windows操作系统中提供了一个串口通信

控件(MSComm),使用该控件,可以简单快捷的开发出串口

通信软件。本系统不采用该控件。

在Win32中,对各种通信资源的函数(CreateFile、Clo-

Handle、ReadFile、ReadFileEx、WriteFile和WriteFileEx)做了

很大改进和标准化,使得它们的操作就如同文件的操作一样。

串口设备的打开、读/写、关闭等操作与文件的操作也一样。

从对串口的操作上来讲,可分为两种模式:同步操作模

式和重叠/异步操作模式。

(1)同步操作

采用该操作模式,API函数会阻塞直到操作完成以后,才

能返回,因本系统不采取该操作模式,不再详述。

(2)串口重叠操作

重叠操作使得线程从费时的I/O操作中解脱出来,让I/O

操作在后台执行,而线程可以自由执行其他任务,提供充分

利用CPU的处理能力,使得各操作得以并行运行。

本文收稿日期:2009-4-29

-84-

NETWORKANDCOMMUNICATION

TRUE,FALSE,NULL);

//有数据到达的事件句柄

if(!SetCommMask(hComm,EV_RXCHAR)

//设置检测事件

return0;

if(hComm)//查看串口是否打开

PurgeComm(hComm,PURGE_RXCLEAR|PURGE_TX-

CLEAR|PURGE_RXABORT|PURGE_TXABORT);

//清空缓冲区

el

return0;//串口没打开,则退出线程

while(1)

//该线程成功创建后,即处于监视串口事件的无限循环

{

bRes=WaitCommEvent(hComm,&dwEvtMask,&os);

//等待串口事件EV_RXCHAR

if(bRes)

{

ClearCommError(hComm,&dwError,&comstat);

if(e==0)

continue;

Event=WaitForMultipleObjects(2,m_hEventArray,

FALSE,INFINITE)-

WAIT_OBJECT_0;

switch(Event)

{

ca0://退出线程

{

gotoend0;

break;

}

ca1://EV_RXCHAR事件发生

{

if(dwEvtMask&&EV_RXCHAR==EV_RXCHAR)

{

RecvChar(&rxchar,e);

//RecvChar为已定义的接收数据函数

PostThreadMessage(idThread,WM_RECVCHAR,(WPARAM)

rxchar);

//将接收到的数据传递到线程ID为idThread的线

//程(3.1描述的线程)中去//WM_RECVCHAR为

//自定义消息

}

break;

}

}//endswitch

}//endif(bRes)

}//endwhile(1)

end0:

if()

{

CloHandle();

=NULL;

}

if(hComm)

{

CloHandle(hComm);

hComm=NULL;

}

AfxEndThread(0);

return0;

}

网络与通信

2CDMA无线ModemAT指令

要利用CDMA无线Modem发送短信或完成其他工作,关

键在于要向其发送相应的AT指令。AT指令集是由一个特定

的“命令前缀”开始,由一个“命令结束标志”结束。指令

前缀通常由AT两个字符组合,它是Attention的缩写。命令结

束标志是一个单字符,通常为回车符

AT指令集是由ETSI发布的,其中包含了对短消息的控制

指令。PC通过无线Modem的串行通信接口,向其发送一定的

AT指令,就能达到控制无线Modem发送短消息的目的。

在发送中文短信时,CDMAModem与GSMModem有3点

不同:(1)前者工作在TEXT模式,而后者工作在PDU模

式;(2)前者不用设置短信中心号码,而后者必须正确设置

3)对要发送短信的目标号码,前者需要目短信中心号码;(

标号码加上引号,而后者不需要。

2.1控制短信功能的AT指令

AT+CMGF

AT+WSCL

AT+CNMI

AT+CMGS

选择短消息支持格式(TEXTorPDU)

设置短消息组成的语言和编码方式

设置新短消信指示

发送短消息

2.2CDMA无线Modem设置

在用CDMAModem发送中文短信前,要先作一些设置工作。

(1)将CDMA无线Modem设为TEXT模式:

AT+CMGF=1

(2)设置短信的语言及编码方式:

利用CDMA无线Modem发送中文短信,需要作如下设置:

AT+WSCL=6,4

(3)因本系统仅用于,不处理新接收到的短信,

因此,在系统中做如下设置:

AT+CNMI=2,0,0,1,0

(4)由于CDMA无线Modem发送中文短信,短信内容的

编码必须是Unicode格式,因此,需要将中文内容由ANSI编

码转换成Unicode编码后,才能发送出去,否则,目标号码接

到的短信内容为乱码。

编码转化例程代码:

intwlen=0;

wlen=MultiByteToWideChar(CP_ACP,0,smsconten,-1,

NULL,0);

//返回smsconten转换成宽字符后所需的宽字符存储空间

//大小

if(wszTxt){

deletewszTxt;

wszTxt=NULL;

}

wszTxt=newWCHAR[wlen];//创建宽字符缓冲区

len=MultiByteToWideChar(CP_ACP,0,smsconten,(int)

strlen(smsconten),wszTxt,wlen);

//将smsconten的ASCII码转换成宽字符,放入wszTxt中,同

-85-

电脑编程技巧与维护

//时返回写入到wszTxt中的宽字符个数。

for(inti=0;i

wszTxt[i]=MAKEWORD(HIBYTE(wszTxt[i]),

LOBYTE(wszTxt[i]));

至此完成ASCII编码到Unicode编码的转化。

(5)经(4)编码处理后,再通过执行以下几行代码,就

可成功实现短信发送。

charphone[50];

memt(phone,0,50);

sprintf(phone,"AT+CMGS="%s",%dr",phone,

len*2);

Write(phone,strlen(phone));

//Write()函数拥有某一串口句柄

//将目标号码及短信内容的长度写入串口

Sleep(400);//延时

Write(wszTxt,len*2);//将短信内容输出到串口

Write("x00x1ar",3);//发送短信

Y

3.2短信发送

如图2所示。

短信发送线程(发送泵线程

smsstat=SMSSENDOK

N

发送下一条短信

smsstat=SMSBUSY

重发

smsstat=SMSBUSY

图2短信发送流程

一旦启动该系统的功能,本流程则根据3.1描述的

smsstat的值及错误重发机制,判断是发送下一条,还是重发。

3

下面给出本系统两个主要工作线程的流程图。

4结语

目前,**电信***分公司正在试用CDMA系

3.1判断CDMA网络反馈的已发送短信的状态

如图1所示。

判断短信发送状态线程

①smsstat=SMSSENDOK,发送一下条短信

②smsstat=SMSSENDFAIL,错误重发发

③rept:为设定的重发次数

i:为重发次数计数器

错误重发机制

发送正确

统,已经过3万条左右的测试,运行正常,现已可

以在有CDMA需求的行业推广应用。

接收数据

}

i++

短信发送线程依据smsstat的值,

选择发送机制

参考文献

[1]法国WAVECOM公司.CDMAATCommandsInterface

Specification.英文手册.

[2]中兴通讯股份有限公司.中兴通讯MG815+模块AT指令手

册.2006.

[3]陈坚,孙志月.Modem通信编程技术.西安:西安电子科

技大学出版社,1998.

作者简介

苗建广,男(1975-)通信工程师/学士,移动网络增值应用。

N

Y

N

i=0

i=0

smsstat=SMSSEND

i

smsstat=SMSSENDF

Y

发送失败

图1判断短信发送结果

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

(上接第74页)

5结语

本文对于现有的网格资源搜索模型进行了改进,提出了

[3]张晓东,LightFlood:AnOptimalFloodingSchemeforFile

SearchinUnstructuredP2PSystems2008-12-1www.

/#_课程资料.

[4],"TheGrid:ANewInfrastructurefor21stCen-

tury",ScienceToday,2002.

[5]IanFoster,CarlKeslman,ThePhysiologyoftheGrid:An

OpenGridServicesArchitectureforDistributedSystemsInte-

gration[EB/OL].June2.

[6]meier,Adefinitionofp2pnetworkingoftheclassifica-

tionofp2parchitecturesandapplications,IEEE,July2002.

基金项目

长沙学院科研基金资助项目(CDJJ-08010203)。

作者简介

王鑫,(1964-),长沙学院信息与计算科学系,实验师。

李彬,男,讲师,长沙学院。

基于对等网络的资源搜索系统,没有将资源的使用者和资源

的提供者进行严格的区分,采用的平板结构中的各个资源完

全平等,相互可直接通信,不需要中介,适合于对等网络。

同时提出了动态资源搜索机制,达到了使资源使用者可利用

状态不断变化的异质资源的功能。然后提出了匹配机制和应

答协议模式,与现有网格搜索方法相结合,可以极大地提高

它们的网格资源搜索效率。

参考文献

[1]SongJiangandXiaodongZhang,FloodTrail-anefficientfile

archtechniqueinunstructuredpeer-to-peersystems2009-

1-11/hpcs/WWW/HTML/internet-P2P.

html.

[2],Peer-to-peerNetworks,IEEE,ComputinginScience

andEngineering,May/June2001.

-86-

CDMA应用系统设计

本文发布于:2024-03-17 09:19:28,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/1710638369163618.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:CDMA应用系统设计.doc

本文 PDF 下载地址:CDMA应用系统设计.pdf

上一篇:常见的软件
下一篇:返回列表
标签:串口   短信   发送
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|