欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 信息安全 > 基于AT指令的GPRS模块来电显示的实现

基于AT指令的GPRS模块来电显示的实现

日期:2023-01-24 阅读量:0 所属栏目:信息安全


摘 要:通过基于AT指令的M22 GPRS模块,在VB6.0下利用MSComm控件实现GPRS模块与计算机的串行通信,对电话呼入时串口的数据进行分析、提取,开发设计了来电显示功能,从而实现对来电号码的追踪。

关键词:AT指令;GPRS模块;MSComm控件;来电显示

1.引言
  GPRS(General Packet Radio Service)是“通用分组无线业务”英文的缩写,是在现有的GSM网络基础上叠加了一个新的网络。它充分利用了现有移动通信网的设备,在GSM网路上增加一些硬件设备和软件升级,形成一个新的网络逻辑实体。它以分组交换技术为基础,采用数据网络协议。随着移动通信技术的发展,采用GPRS通信方式的移动数据通信网络已经覆盖了各地,而且网络运行稳定,因此给行业应用带来了广阔的市场前景。
  将计算机通过串行通信技术与GPRS无线通信网络建立连接,可以实现手机与计算机的通信。计算机与GPRS网络的连接可以采用GPRS模块,也可以采用GPRS Modem,笔者采用基于AT指令的M22 GPRS模块使计算机与GPRS网络进行连接,其组成原理如图1所示。本文在Windows环境下,采用VB6.0中的MSComm控件实现M22 GPRS模块与计算机的串行通信,开发设计了来电显示功能,从而实现对来电号码的追踪。


图1  基于GPRS网络的M22模块应用系统组成原理
  2. AT指令
  最初AT指令仅被用于Modem操作,随后一些主要的移动电话生产厂商共同为GSM制订了一套比较完善的AT指令。在此基础上,AT指令又逐渐演化并被加入到了GSM 07.05标准以及GSM 07.07标准。GSM07.07标准是手机、Modem等设备与计算机进行通信的标准,不同的厂家对AT指令都进行了相应的扩充和修改,因而不同设备的指令格式并不完全相同,但都遵循GSM07.07标准。AT指令的格式通常有如下几种:
  (1)AT
  (2)AT+XXXX=XX
  (3)AT+XXXX=″XX″
  3. 串行通信配置方案
  在Windows环境下,串口与外部设备的通信可以利用VB提供的MSComm控件来完成。MSComm是一种串行通信控件,它提供了两种处理通信的方式:事件驱动方式和查询方式。事件驱动通讯是处理串行端口交互作用的一种非常有效的方法,可以利用 MSComm 控件的 OnComm 事件捕获并处理通讯事件,OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,通过检查 CommEvent 属性的值事件和错误来查询。每个MSComm 控件对应着一个串行端口,如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。由于每个MSComm控件均对应着唯一的一个串行端口号,因此在设备连接好后,需要根据系统的具体配置设置相应的参数,主要设置的参数有设备的端口号、数据传输速率、数据位、奇偶校验位、停止位等。假设连接端口为COM1,数据传输速率为9600bit/s、数据位为n、奇偶校验位为8、停止位为1,则可设置VB的MSComm控件的属性如下:
  rt = 1
  gs = "9600,n,8,1"
  en = 0
  erSize = 1024
  en = True
  hold = 64
  当参数设置好后,需要通过下列的AT指令来进行测试连接是否成功。
  AT
  AT+CMGF=1
  在MSComm的OnComm事件里,当检测到返回的响应指令为“OK”时,表示串口已经连接成功。
  4.来电显示的实现
  笔者应用基于AT指令的M22 GPRS模块,采用VB6.0设计开发了来电显示功能,实现方法如下:
  GPRS模块有电话呼入时串口收到如下数据:
  RING
  +CLIP:"13514303856",129,,,,0
  +CLIP:"13514303856",129,,,,0
  RING
  +CLIP:"13514303856",129,,,,0
  RING
  +CLIP:"13514303856",129,,,,0
  当对方挂机时收到NO CARRIER。从收到的数据可以看出,要想得到来电号码,必须对收到的数据进行处理,即提取有用信息,过滤无用信息。当有来电时,在缓存中寻找“+CLIP:”,用Val命令在连续的15个字符中取连续的数字,可将来电号码提取出来。代码如下:
  Dim StrBuffer As String
  Dim Point As Integer
  StrBuffer =
  If IsOff = False And <> "" Then
   Exit Sub
  End If
  Point = InStr(1,StrBuffer,"+CLIP:")
  If Point = 0 Then
   Exit Sub
  End If
  If Len(Mid(StrBuffer,Point + 8,15)) <> 15 Then
   Exit Sub
  End If
   = Val(Mid(StrBuffer,Point + 8,15))
  如果前一次来电挂断后的数据不足64字节,未能触发事件,则前次的数据会驻留缓存中,本次来电后凑满64字节触发事件,如:
  RING
  +CLIP:"13514303856",129,,,,0
  NO CARRIER
  
  RING
  +CLIP:"13180809999",129,,,,0
  +CLIP:"13180809999",129,,,,0
  则用寻找“+CLIP:”的方法读出的号码为:13514303856,而本次来电的号码为:13180809999。
  为避免出现这个问题需要采用新的判断条件,即寻找NO CARRIER。在NO CARRIER后寻找22个字符,读出其中的连续数字。代码如下:
  Dim StrBuffer As String
  StrBuffer =
  If InStr(1,StrBuffer,"ER") <> 0 Then
    = ""
   If Mid(StrBuffer,InStr(1,StrBuffer,"ER") + 6,1) <> "R" Then
     = ""
    IsOff = True
    Exit Sub
   Else
    If Len(Mid(StrBuffer,InStr(1,StrBuffer,"ER") + 22,15)) = 15 Then
      = Val(Mid(StrBuffer,InStr(1,StrBuffer,"ER") + 22,15))
    End If
   End If
  End If
  5.结论
  通过上述的程序设计,实现了来电显示的功能。本程序在设计过程中,通过对电话呼入时串口收到的数据进行分析,提取了其中的电话号码,摒弃了无效信息,同时考虑了可能出现的特殊情况,从而确保来电显示的号码无误。
  参考文献
黄晴.基于VB的网络管理系统的设计与实现.华东师范大学硕士学位论文,2007.

作者简介:王洪革(1968—),男,吉林警察学院信息工程系副教授,工学硕士,主要研究方向:信息处理及计算机通信。


 

本文链接:http://www.qk112.com/lwfw/jsjlw/xinxianquan/225334.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学