仿真Modem的设计与应用 仿真Modem的设计与应用

仿真Modem的设计与应用

  • 期刊名字:电脑编程技巧与维护
  • 文件大小:264kb
  • 论文作者:马玉春
  • 作者单位:
  • 更新时间:2020-06-12
  • 下载次数:
论文简介

网络与通信NETWORK& COMMUNICATION仿真 Modem的设计与应用马五春摘要电话客户管理软件的开发需要来电显示。本文用Ⅴ isual Busic6.0设计了一个仿真Modem,可以非常方便地辅助电话客户管理软件的调试,并給出了应用实例。关键词调制解调器,AT命令,来电显示,串行通讯或不加空格,命令中或命令间的空格会被忽略。若命令行中任引言处出现语法错误,本行其后的内容将祓忽略,并返回ER通讯和计算机网络的高速发展,使基于电话与网络的物流ROR。绝大多数 Modem都使用 Hayes兼容的AT命令集,但系统越来越普及,如网上购物,电话订货。网上购物适合远距由于功能和设计的不同又稍有不同[1]。AT命令较多,这里只离,时间要求不高,一般不需要当天送达,而且,主要采用邮涉及跟本软件相关的。寄的形式;而电话订货,特别是订购桶装纯净水,一般要求尽1. ATTN快送达,而且,客户群比较固定。该命令用来拨号,“D”表示拨号,“T”表示双音频方对于客户群固定的电话客户(以订购桶装纯净水为例),式,如字符串如果每次订购都需要手工记录客户订单,显得比较低效,月度ATDT025-12345678;"+vbcr统计也比较复杂繁琐,容易出错。将订单告知外勤员工,也存表示用音频方式拨打电话025-12345678,“;”表示电在通讯费用较高,语音信息不清楚的问题。所以,研究开发基话接通后保持通话状态,vCr为回车符( Visual basic中内部于短信的电话客户管理软件,通过座机的来电显示,调出具有定义的常量),是AT命令结束和有效的标志。利用通用多功相同电话号码的客户信息,然后,通过 Internet,利用电子邮s Communication test on Serial Port件转短信通知的形式将订单发送到外勤员工的手机中,充分利Systen Operation Tools Help用有线电话、 Internet和无线手机,是解决这些问题的良好方田As个份◎令法。但是,该软件的开发需要一个支持来电显示的 Modem,而Hex: ODOA4F4B0D0A且,还需要不同的电话拨入,来产生不同的来电号码。本文通Char: OK过对 Modem的分析,设计了仿真Modm来替代实际的Mode-m,进行相关软件的开发和调试,并可用于教学系统中,节iskCon88929844/Tme11010500n81:peTme110135省教学经费。ickCount 88965906//T: 11: 01- 41二、Mdem的AT命令Cour88977442/Tme1101:52AT命令使计算机或终端与调制解调器通讯,用于设置Sena pot setting COM3: $600n8.1: CloseModem的参数、发起或终止呼叫、执行 Modem的测试等操作,是 Hayes公司发明的。AT是 Attention的字头,中文含义为“注意”,引起 Modem的注意,下面是命令,所以,AT又Staus: COM3: 9500 n 8称为命令前缀。所有命令行必须由ASCI字符“AT”开始并由中国煤化工< Enter结束,AT必须同为大写或小写,如“At”或“aTr是不允许的。一串命令可以写在一行里,为了便于阅读可以加CNMHG实际数据记录200510(61电程教巧与能护网络与通信NETWORK& COMMUNICATION能计算机监控系统测试软件进行测试, Modem接受拨叫命令持来电显示(即支持本命令),二是座机开通来电显示。此后,立即将命令原样返回(现在,有的 Modem不返回原始命外,有的 Modem满足第一个条件,但是,只能在某一种操作令),拨通电话平均耗时5秒左右,如果成功,则返回系统下,才能发送身份数据。例如,在 Windows98系统下支vbCrLf+“OK”+ vbCrLf;否则,返回“ ERROR”,具体结果持来电显示,在 Windows XP下,却没有来电显示。图1所示。用 Modem拨打电话的接线方法如图2所示,虚线所示为Modem有若干S寄存器,用来设定其工作方式计算机系统,电话外线插入 Moderm的Line接口,话机则与ATsn?”命令用来读S寄存器n,所有的S寄存器都可以Modem的 Phone接口相连,话机处于挂机状态,当听到用Mo读。“ATSn=x”用来将x值写人指定的S寄存器ndem拨通电话或看到 Modem返回OK后,摘机工作即可。“ATS0=15”表示向 Modem的S0寄存器中写入15,使Modem响铃15次以后再自动摘机(如果对远程智能设备进行测试,则一般将该参数设为3)。对于座机的来电显示,是在第二次响铃的时候,送出电话号码。如果该参数为1,则第一话机次响铃即自动应答,就不可能收到来电显示信息了。一般情况下,座机在响铃13次以后没有接听,即自动中断。因而,将值设为15,既能保证来电显示数据的接收,又不影响电话的功能(即无人接听时也自动摘机)。耳机、来电显示的数据格式图2用Modm拨打电话接线方法通过“AT#CID=1”命令打开DE格式化形式的呼叫者身2. AT#CID份鉴定,正常情况下,当有电话拨入时,将产生来电显示数AT#CID=0”关闭呼叫者身份鉴定,这时,当有电话呼据,其格式为:人时,通用多功能计算机监控系统测试软件的响应如图3所DATE 0725示,当 Modem不支持来电显示或座机没有开通来电显示也会TME=1549出现这种情况。NMBR=13933587001Communication Test on Serial Port以上数据每行的开头和结尾都包括 vbCrlf,表示7月25ystem Operation Tools Help日15:49,电话13933587001通过 Modem拨人。第二次响铃为声≌分品0令以上完整的数据,其它每次响铃,仅产生RING(开头和结尾Hex: ODOA52494E470D0A都包括 vbCrLf),如图4所示,是通过权威的超级终端捕获的三次响铃数据。CharTickCourt89282070∥e1057cTestcoI超级终回厄文件②)编指①)查看①呼叫)传送①)帮助TickCount 89286937 / Tme 11: 07: 02TickCount 89286987 / Time 11: 07: 02DATE =0725ick Count 89291905//Tme 11- 07: 07TiekCount89291985//Time 11.07:07TIME-1549Status. COM3: 9E00. B.1: DTR-Disable: RTS.Disable: Open 2006-7-25 11:09NMBR=13933587081图3 Modem接受电话拔入—无身份鉴定的情况RINGAT#CID=1”打开DTE格式化形式的呼叫者身份鉴定中国煤化工一但是,是否有来电显示,需要两个必要条件,一是 Modem支CNMHG据格式2006.10物丹数聽雌网络与通信NETWORK&COMMUNICATIONEnd If四、仿真 Modem的实现End Sub电话客户订货在城市中非常普及,例如,订购桶装纯净这些代码将收到的数据进行累加,当 timer Comm给定的水。利用仿真 Modem辅助电话客户管理软件的调试,对于开时间到,就执行定时器事件,源代码如下:发这种类型的软件非常便利,不需要到电信局开通座机的来电Private Sub timer Comm Timer()On Error Resume Next显示,不需要拨打电话,也不需要实际的 Modem,而且,样本timer Comm, Enabled false数据可以在较小的范围内加以控制。我们需要做的只是按照一定的格式要求和时间要求,向指定的串口发送相关数据而已。If bDial= True Thentimer Comm Enabled FalseSImulated lodendIalMSComm1. Output= vbCrLf +'OK+ vbCrLfCuririeuluri PieeeiuesReval Tietimer Comm, Interval 100Da.a Dits: 8imerExit SubPality: NoneEnd ifStcp Bts:If (Mid( strin Buffers, 1, 2)=AT )And Rightminutes(strIn BuffersChr(13)) ThenMSComm1 Output strinBuffersSpeed: 9600If In Str(1, strin Buffers, DT)=0 ThenSampe F OMSComm1 Output vbCrLf +'OK vbCrLfCoM4:8600r8.1Modem out of cervicebDial Tr图5仿真Mdem的设计界面timer Comm. Interval 9000timer Comm Enabled True仿真 Modem的设计界面如图5所示。 Connection Prefer-ence主要用来设置串口参数, Interval Time用来选择1-9分If In Str(1, strin Buffers, #CID=1, vbTextc钟产生一次来电。核选 Sample,将从 Base Code.txt文件中读取0 Then给定的电话号码,以此号码为基础,在大于等于该号码1-9vAlid False范围内随机产生电话号码。串行通信控件 MSComm1用来接Status Bar1 Panels("Modem"). Text ="Modem: ouof service收命令数据,与第一个定时器 timer Comm辅助工作MSComm的事件处理代码为vAlid TruePrivate Sub MSComm OnComm()timer_ Times nterval. Enabled= validDim vIn Buffer As variaStatus Bar1 Panels(" Modem). Text =Modem: inDim strRecChars As StringserviceOn Error Resume NextEnd扦fIf MSComm1 CommEvent comEv Receive ThenEnd IfIf sTart Comm False Then strIn BuffersEnd SubvIn Buffer MSComm1 Inptimer Comm定时器分析AT命令。因为我们的仿真 ModemstrRecChars= Hex Chars ToString( Variant Chars只提供来电显示功能和比较简单的响应功能,所以,只分析最基本的语法,即以“AT”开头,以vCr结尾的字符串,即认strIn Buffers strin Buffers strRecCharsIf bStartComm = False Then为是正确的AT命令,就将收到的AT命令原样返回。如果是bStart Comm True拨号命令“DT”,就等待9秒以后发送OK,表示电话已经拨timer Comm. Enabled True通;否则,直接返回OK,表示命令正确。如果命令中包含“AT#CID=1”,则启动来电显示功能,否则,来电显示功能If sTart Comm True then无效。timer Comm Enabled Falsetimer Comm Enabled True中国煤化工,发送响铃数据。经过End IfcYH测试CNMHG0毫秒左右,因而,当a地51护63网络与通信NETWORK&COMMUNICATION模拟来电显示的时间到,就每隔5700毫秒发送模拟数据。来nCount =1电显示中的日期和时间取自计算机,随机电话号码取7位,为timer Send interval Enabled True系统启动后经过的毫秒数的最后7位,不足7位前面补8;如End If果核选 Sample,则随机选择以 Base Code.txt为基础的10个固End Sub定号码,周而复始。 Base Code的范围为4位以上,最后两位变以上子程序编写完毕后,调整表单的高度,隐藏串行通信化。如果 Basecode.bt中为“13903361234”,则随机电话号控件和定时器控件(为了美观,同时,空间有限)。运行时,码的范围为:13903561234-1390361243。因为第2次响铃发点击红灯打开仿真 Modem的电源,当收到来电显示命令(AT#送来电数据,其它响铃都是发送RING,所以,我们只模拟4CI=1)后,根据设定的时间,模拟 Modem来电显示,同时次响铃,在程序中,除第2次发送来电数据外,其它3次均发红灯变绿,表示正在工作,状态栏显示“ Modem: In ser-送RING,源代码如下e";点击绿灯将变红,表示仿真 Modem的电源已关闭。Private Sub timer Send Interval_ Timer(6所示为刚打开电源,但是,还没收到来电显示命令时的情Dim str No As StringDim str Tmp As StringOn Error Resume Next五、测试与应用If n Sample= 1 ThenstrTmp ts(nEnd No Int(Rnd TOTAL NO))利用通用多功能计算机监控系统测试软件进行测试,当向Len(str Tmp)= 3 Then str Tmp= Mid (str Tmp, 2)strNo strHead_No str Tmp仿真 Modem发送来电显示命令后,仿真 Modem能按照设定的时间间隔,仿真实际的 Modem产生来电显示数据。在调试strNo= Right(Trim(Str( GetTick Count()),7I“基于短信的电话客户管理软件”中,仿真 Modem的使用如If Len(sNo)<7 Then strO= String(7-Len图7所示。仿真 Modem模拟实际的 Modem产生可在一定范围(stNo),“8")+ strO内控制的来电号码数据,通过RS-232接口给电话客户软件提If n Count 2 Then供数据。如果是新客户(第一次来电),则操作员输人客户数MSComm1. Output= Get TwoRing(strNo据;如果是老客户,则电话客户软件根据电话号码自动调出客户数据,然后,输入客户订单(桶装纯净水的数量等),通过MSComm1 Output strRing-45接口利用 Internet,将订单发送到外送员工的手机邮箱End If中,再通过移动通讯公司的无线网关,以邮件通知的形式发送If Check File(strSound) Then PlaySound strSound, 0,SND ASYNC短信到外勤员工的手机中。n Count nCount +1六、结语If nCount >4 Thentimer Send interval Enabled False电话客户订货在城市中非常普及,利用仿真 Modem辅助End If电话客户管理软件的调试,对于开发这种类型的软件非常便End Sub利,因为不需要到电信局开通座机的来电显示,不需要拨打电最右边的定时器 timer Times Interval.行间隔来电功能,话,也不需要实际的Moem,而且,样本数据可以在较小的范即在选择的1-9分钟内,启动·次来电显小,其源代码如围内加以控制。下参考文献Private Sub timer TimesDim str Tmp As stAT命令集.htDim mInute As Integermanuals/cat htm. 2005.. 13.Dim n Second As Integer马玉春·通用多功能计算机监控系统测试软件的设计str Imp Format(Time, HH: MM: SSsEcond= Val( GetNoString(str Tmp,与开发[J].电脑编程技巧与维护,20007If n Second 0 And n Count =0 Then2006年7月18日)mInute Vaf( GetNoString(str Tmp,中国煤化工If mInute Mod nOptinterval =0 ThenCNMHG2006.10电脑编程技巧与维

论文截图
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。