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-),女,江苏南京人,硕士学位,从事通信方向的

研究。

本文标签: 串口数据串行