基于windows api的串口通信方式、软件设计、终端通信协议
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于windows api的串口通信方式、软件设计、终端通信协
议
摘要:手机、gps等终端的通信已经深入人民的日常生活中,大部分通信的手段为无线传输、蓝牙、usb,终端通信的串口通信是
探究终端核心和通信网络协议等的重要手段,本文主要介绍终端通信的基于windows api的串口通信方式、软件设计、终端通信协议等有关内容。
关键词串口;模块;通信;软件;设计;结构;协议;
中图分类号:s611 文献标识码:a 文章编号:
引言
串口是常用的计算机与外部串行设备之间的数据传输通道。为
了提高串口通信的速度和资源利用率,软件采用windows api函数并基于多线程技术和异步串口通信的设计理念,实现了终端(手机终端、gps)与上位机之间的数据交换,并且将采集到的数据保存
到数据库中,便于分析和处理。
软件结构及概述
软件涉及的核心内容包含三部分:串口通信模块,终端设备操
控模块,通信数据分析模块。
串口通信模块由三个“类”组成-串口初始化
(communication_init)、数据发送(message_send)、数据接收(message_receive)。
串口初始化完成对串口关键参数配置后的初始化操作,接收和发送模块分别为单独的功能模块,调用时均会创立独立线程,线程池时刻检索端口连接及忙闲状态,保障数据收发的准确性和稳定性。软件的组成结构如图 1 所示。
终端设备操控模块,是采用串口向终端发送at指令,以控制终端的行为,目前的at指令能够模拟几乎所有手机按键操作指令,除此以外,at指令亦能够将终端模式打开到专业版本模式下,并且可通过at指令直接获取工程模式下参数。一般情况下,终端将直接反馈ok,error等信息作为操作执行的回应。
通信数据分析模块是针对特殊终端在非at指令下产生的通信相关数据的收集及分析,能够通过这些数据获悉通信网络的状况。
串口通信模块
串口设置界面截图
串口的本质功能是作为 cpu 和串行设备间的编码转换器。串口数据均为二进制数据流,亦可视为十六进制编码,目前windows api 提供的串口控件,均具有数据转化功能,可直接采用,对于串口的连接需要配置信息,最重要的参数是波特率、数据位、停止位和奇偶校验位。
串口初始化时,需要配置相关的信息,串口适配成功后方可进
行连接和收发,由于每台电脑或者外设对自身串口的默认设置不尽相同, 所以在进行通信之前一定要设置好这些参数, 使通信双方的串口配置一致, 才能确保通信的正常。对于终端常见的gps设备波特率一般为4800,工程类手机一般根据手机型号的不同波特率不尽相同,如57600、115200等。
以下为串口初始化编码():
串口接收代码段()
终端串口及协议
一部测试终端或工程终端,at命令为必须的协议之一,但是生产厂商在实现网络通信的前提下,会应运生成手机物理层协议,该协议包含物理层数据交互命令,返回数据详细格式说明等。为明确阐述,以最常见的工程终端为例绘图如下:
终端串口协议层次图
终端设备操控模块
对于终端的at command命令,根据终端的不同命令格式不同,目前很多终端均采用统一的通用格式,但是该命令通过命令文档可以知道,这样的命名数目庞大,如果想用枚举的方式将这些at command命令通通编写既浪费时间,应用起来也很繁琐,如何让所
有的at command命令准确简洁的使用呢,就需要编写一个将at command命令的字符串封装成一个完成的帧格式的函数。这样用户可以任意的输入正确的at command命令然后发送,就可以轻松的操作终端了。
这个封装的过程要参照at command命令统一的帧结构去确定。
终端设备操控模块流程图
终端手机在接到at command命令后,除了执行相应的操作外,还会有相应的回复信息,比如“ok”“error”等,必须将从手机上收到的关于at command命令的回复的信息进行处理,然后显示。
通信数据分析模块
通信数据分析模块通过串口收到相关数据,根据终端特殊指令进行数据的解析,分析入库。
对于手机终端,一般为手机协议、空口协议。gps设备为gps协议。
如下摘取协议段:
gps协议段-摘自gps论坛
摘自《3gpp ts 04.04 v8.1.2 (2002-05)》
根据终端自身协议,对数据进行拆分的过程称为解析,解析后
的数据均具有特殊的含义,如图gps协议中第二个数据代表的为经度信息。手机终端解析后的数据均是通信网络参数,代表网络通信过程中的相关指标,再根据通信理论进行深入分析,即可得网络状况。
如下为gps解析分析代码()
综述:基于windows api的实现与终端的串口通信,可探究终端更底层的数据传输机制、传输参数、网络参数等,是科研及终端类软件二次开发的必要技术,相关领域研究意义深远。
参考文献:
[1] 崔红志, 索岩基. 基于 a pi 的 win32 串口通信编程技术[j] .科技信息, 2010(7): 1-2.
[2] 张威.gsm网络优化原理与工程.人民邮电出版社,2003(10)
[3] 3gpp ts 04.08 v7.9.1(2000-11)
[4] 3gpp ts 04.04 v8.1.2 (2002-05)
[5] 基于windows api的异步串口通信软件设计.百度文库