关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于CDMA网络的远程自动抄表系统设计

基于CDMA网络的远程自动抄表系统设计

作者: 时间:2016-12-22 来源:网络 收藏

  2短信收发平台设计

  在整个远程抄表系统中,Q2358C模块用做数据和指令传输的工具,它的短信收发功能的实现对于整个系统功能的实现起着决定性的作用。短信不能收发,数据和指令也就不能传输,系统也就无法工作。下面主要介绍的短信收发平台由PC机和短信收发模块组成,以及通过软件设计实现短信收发的方法。

  2.1 AT指令与应用

  AT指令最初由Hayes公司推出,用于对调制解调器的控制,现在已演化为一种的标准,所有移动模块都支持AT指令。基于Q2358C模块的AT指令采用的是1.70版本,共240多条,归纳起来可分成通用指令、功能操作指令和安全保护指令三大类。其中有关短信息服务的指令共17条。利用这些AT指令可实现短信的发送、接收、列表、阅读、删除和存储等功能。

  AT指令的基本格式为:AT+命令字符及相关设置参数。AT为前导符,表示命令的开始;命令字符及相关设置参数表示进行何种操作,如:AT+CMGR=〈n〉表示读索引号为n的短消息[5]。

  AT 指令的返回代码分别以字符开始和结束。如果指令的语法不正确,就返回“ERROR”字符;如果指令是正确的,但存在错误的参数,便返回“+CME ERROR:”或“+CMS ERROR:”。< Err >和< SmsErr >是不同的错误代码;如果指令被成功的执行则会返回“OK”。

  2.2 动态链接库

  动态链接库(Dynamic-Link Libraries),就是一个可执行模块(其扩展名为.DLL),模块中包含了可以被其它应用程序使用或其它DLLs使用的例程和资源。DLLs的特点在于它的代码是在运行时动态地链接到调用它的程序中,DLLs一旦加载,就能被多个应用程序或其它DLLs共享。在CDMA短信收发平台的设计过程中,作者采用VC的COM组件技术来建立动态链接库,实现模块的短信收发功能。建立的方法是首先在VC中新建一个ATL COM工程,然后创建接口SMCC,接着按照最初的设计添加其它类,最后完成编码和调试[6]。

  该组件的接口名称是SMCC,提供的接口函数有:Initialize,UnInitialize,SendSMS,ReadSMS,ListSMS,DeleSMS,NextSMS,SetLangAndEncod。其功能分别为:初始化系统,打开串口,设置波特率等参数;关闭串口,释放系统资源;发送短信息;根据索引读取一条短信息;根据短消息状态罗列短消息;删除短消息;在ListSMS后获得下一条短消息;设置短消息语言和编码。

  该模块的内部实现可用图4所示的类图描述。其中ISerialComm为串口操作接口,CSerialComm为它的具体实现;ISMParser是短消息内容分解接口,可对一条或多条短信息进行分解,提取短消息内容;SMS_INFO 是短消息结构,包含有序列号,消息状态,呼叫号码,服务中心时间戳,编码语言,编码方法,优先级,回叫号码;IHandler 是系统消息处理类,处理诸如新消息到来,SIM卡已满,不完整消息,收到单条消息,收到短消息列表,AT命令正确,错误等类型的消息;CATFactory 是AT 指令形成类,负责各种AT指令的形成,以字符串的形式返回;CSMCC 则为该接口的具体实现,它负责总的系统调度,如:利用CATFactory形成AT指令,用CserialComm发送接收,利用ISMParser分解返回结果,以及利用ImessageHandler处理系统消息等。动态链接库的程序流程图5所示。

  2.3 短信收发应用程序设计

  短信收发应用程序是在VB的开发环境下完成的。首先创建一个工程进入操作界面的设计窗口,在界面上设置两个文本框和命令按钮,文本框用来显示短信内容或输入参数,命令按钮用来启动发送或接收事件。然后在代码窗口中编写应用程序代码[6]。编写代码时首先要调用动态链接库,方法是在工程菜单中选择“引用”,然后在出现的对话框中选择要引用的动态链接库。

  2.4程序调试

  在短信收发的程序调试过程中出现了两个比较明显的问题。一个是串口操作问题,当向串口传送AT指令时,通过串口接收的数据却不是完整信息,要分多次才接收完整。经仔细调试发现,原来系统硬件部分在收到指令后是分两次应答,先是指令的返回,然后才是指令执行结果,但指令执行结果也不是一次返回,而是有可能分发多次,而作者在设置串口模式时是异步模式,这样才造成以上的问题。解决办法是,通过SetCommTimeouts函数来设置ReadIntervalTimeout(读取间隔超时)。由于默认的超时间隔过短,以致还没读取完整信息就退出了。将超时间隔改为10ms就解决问题了。

  另一个比较明显的问题是当采用UNICODE编码方式发送短信时,对方手机接收到的信息不完整,通过程序调试发现原来在采用此编码时,因为原始数据为ASCII,转换为UNICODE后数据大小变为原来的两倍,而最初分配的缓冲区是按照 ASCII的,所以导致部分信息丢失。重新分配缓冲区即解决问题。

  3结语

  基于CDMA网络的远程自动抄表系统可扩展成对多路电表数据的传输,这样可充分的利用短信收发模块,同时降低系统的成本。系统覆盖范围广,不受地域限制(只要是无线网络覆盖范围即可),成本低,能及时准确的向用电管理部门提供数据[7],且数据的分析和处理以及用电管理由系统自动完成,因此节约了人力物力,可避免用电欠费问题,提高了管理水平,具有广阔的应用前景。

  参 考 文 献
[1] 张恺, 李祥珍, 张晶等. 自动抄表系统应用模式的探讨[J]. 电网技术, 2001, 25(5): 41~45
[2] 陈爱萍, 刘望军, 李信德. 远程抄表技术通信方法的研究, 集成电路[J]. 2003年4月: 85-86
[3] 王柏林. 一种用于配电自动化系统的多功能电能表[J]. 电力系统自动化, 2000, 24(10): 53~54
[4] 邹盟军, 翟志强, 曹健雄等. 电能量计量计费系统的工程实现[J]. 电力系统自动化, 2003, 27(1): 83~85
[5] 周学泳, 石丹. 短信息(SMS)与WAP的开发及应用[M]. 北京: 电子工业出版社, 2002
[6] 范逸之, 陈立元. 利用Visual Bbsic实现串并行通信技术M]. 北京: 人民邮电出版社, 2002
[7] 杨忠春. 如何组建高效可靠的专用无线数据传输系统, 微计算机信息[J]. 2002年9月: 31

  本文作者的创新点是:
  研究了电表数据在CDMA无线网络中以短信收发的平台及其实现方法。系统具有成本低、实时性好、安全方便等特点。

  作者简介:齐海兵(1969-),男,湖北天门人,黄石理工学院电子工程师。1991年毕业于中南大学应用物理专业,2004年硕士就读于中南大学物理科学与技术学院物理电子学专业,主要研究方向:信息与信号处理。
Email: qhbcs@yahoo.com.cn
通信地址:黄石理工学院,湖北 黄石 435003


上一页 1 2 下一页

评论


技术专区

关闭