admin管理员组文章数量:1567748
2024年5月3日发(作者:)
基于CSerialMFC的串口调试助手程序实现
文章以MFC的CDialog类为中心,加上CSerial类的支持,采用RS-232接
口标准,使用MFC进行串口调试助手程序开发,并在程序中提供通信口、波特
率、数据位、校验位和停止位等通信参数的设置。希望能够对相关工作提供参考。
标签:串口通信;C++;MFC;RS-232
1 串行通讯协议
如今计算机网络技术和多微机系统的应用广泛,计算机通信的重要性越发显
现[1]。计算机通信可以分为并行通信和串行通信。并行通信将数据字节的各位
用多条数据线同时传送,控制简单,传输速度快,但是成本较高。串行通信则将
数据字节分成一位一位的形式在一条传输线上逐个传送,成本低,但是控制复杂。
串行通信更方便易行,所以应用十分广泛,文章中的串口通讯采用串行通讯。
在实现计算机通信中,首先需要确定使用什么协议。所谓协议,实际上就是
通信双方彼此都知道、并且遵守的东西。协议包含的信息必须在通信之前送达,
协议对于所控制的通信而言是先驗的[3]。作为一种点对点的通信方式,串行通
信在数据流向中可分为单工、半双工和双工。单工指物理上一方只能向另一方传
送数据;半双工指物理上双方可以互传数据,但是任一时刻只能有一个方向的流。
全双工指在同一时刻,任何一方都可以向另一方发送数据。
较为流行的串行通信协议可分为同步串行协议和异步串行协议[1]。
同步协议中,双方约定好采样率后即开始数据的传输,数据的协调过程不需
要专门的起始信息,但是要建立发送方时钟对接收方时钟的直接控制,双方达到
完全同步,线上的每个数据都是有效的。异步协议中,不再要求收发双方时钟的
完全一致,发送方在任何时刻都可以发送若干比特组成的帧,接收方对数据的到
达是无法预测的。帧与帧之间的间隔由发送方控制,可以取任意值[1]。发送端
和接收端都以“接收时钟”和“波特率因子”决定一位的时间长度。以起止式异步传
输协议为例,每次异步传输的信息都以一个起始位开头,以一个停止位结束。在
异步传输协议中,只有数据帧而没有命令帧,且数据帧不分段。由于异步通信实
现容易,且设备开销小,在文章中采用异步通信协议。
2 串行通信接口标准
串行通信接口标准中,应用最为广泛的是EIA-232、EIA-422和EIA-485,
也就是以前所称的RS-232、RS-422和RS-485,目前在通信工业中应用最广泛的
是EIA-232。
EIA RS-232标准主要定义了串行通信中DTE和DCE的定义、接口的模拟
数字特性、接口的机械特性、子电路的结构和接口、用于调制传输的电路接口[4]。
作为标准,其每一个细节必须严格实现,否则整个标准所实现的目标就不能够达
到。在追求稳定的工业界,RS-232标准仍然有大量应用。
在电气特性上,负电平代表逻辑1,正电平代表逻辑0。控制信号和逻辑信
号的正负电平允许范围相同,信号线端口的电气特性应与等效电路的电气特性相
同。在信号线定义上,简化的9信号连接中只有保护地线、主异步串行传输控制
线以及部分调制解调器状态控制信号。深度简化的信号连接也就是三线连接法,
只保留了主异步串行传输控制线组的TxD和RxD以及信号底线。
3 程序实现
基于Windows API和C++的串口类CSerial类是一种较优秀的类封装,而
MFC是一种应用框架,提供一组通用的可重用的类库供开发人员使用。其对原
始API的封装给程序设计带来了方便,但也造成了冗余和复杂。
文章以MFC的CDialog类为中心,加上CSerial类的支持,使用MFC进行
串口调试助手程序的编写。程序主流程图如图1所示。
程序调试中,将两计算机用RS-232将COM口互联,均使用COM1,在波
特率为9600、数据总共八位、不带校验位和一位停止位的情况下的串口通信结
果如图2所示。
4 结束语
RS-232是PC机与通信工业中应用最广泛的一种串行接口,特别是本地设备
中的通信,文章主要依托CSerial类的支持,利用MFC进行了串口调试助手程
序开发,在程序中提供了波特率、通信口、数据位、校验位和停止位等通信参数
的设置,并经实际调试,运行良好。
参考文献
[1]赵晓辉,陈艳萍,张科英,等.基于VC++环境下串口通信程序的研究与
实现[J].科技信息,2010,1:39-40+78.
[2]王正强.VC中应用MSComm控件实现串口通信[J].电子测试,2010,5:
73-76.
[3]王坤,高 .基于VC++实现串口通信的方法[J].信息化研究,2010,10:52-54.
[4]汪滢,孙华军.基于VC++串口通信的设计与实现[J].现代电子技术,2011,
14:19-20+24.
作者简介:方雨纯(1990-),女,江苏南京人,硕士学位,从事通信方向的
研究。
版权声明:本文标题:基于CSerialMFC的串口调试助手程序实现_图文 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1714705753a418732.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论