当前位置:首页 > 通信技术 > 通信技术
[导读]摘要 设计了一种在MFC中实现与串口连续通信的简易方法,利用微软提供的MSComm控件,仿照MODBUS-RTU协议,并根据数据包之间的时间间隔T1,将间隔串口通信适用于长距离控制与数据传输,许多单片机在内部均集成了串口通

摘要 设计了一种在MFC中实现与串口连续通信的简易方法,利用微软提供的MSComm控件,仿照MODBUS-RTU协议,并根据数据包之间的时间间隔T1,将间隔

串口通信适用于长距离控制与数据传输,许多单片机在内部均集成了串口通信模块,而计算机的操作系统也内嵌有对串口通信的支持。在现代各工业控制和数据传输等通信系统领域中,单片机与计算机的串口通信得到了广泛应用。因此,在Windows操作系统下实现串口通信,开发与单片机通信软件显得尤为重要。MFC(Microsoft Foundation Classes),是微软公司提供的一个类库(Class Libraries),以C++类的形式封装了Windows的API,且包含一个应用程序框架,减少了应用程序开发人员的工作量,因此基于VC++的MFC平台开发串口通信界面程序的方式深受程序员青睐。

传统串口通信软件采用两种方法处理连续传输的数据包。一种是采用固定字节长度的数据包协议,该方法灵活性差,即使传输极少字节的数据也必须使用固定长度的数据包。另一种方法是加入数据包包头,该方法必须先对接收到的每个字节进行判断,从而造成了CPU的大量浪费。本文采用微软的MSComm控件,设计了一种简便的方法,有效弥补了以上两种方法的缺陷。

1 数据包连续串口通信原理

单片机的时钟频率远小于计算机CPU,如常用单片机C8051F02频率为25 MHz,低于计算机CPU上GHz的处理速度。单片机传给上位机的数据,每个数据包均独立反映硬件对上位机的一个响应状态或硬件处理完的一个任务。因此,单片机连续传送数据包时,数据包之间存在一定的时间间隔,而每个数据包中相邻字节是连接传送的,时间间隔远小于数据包之间的间隔。

仿照MODBUS-RTU协议,利用数据包之间的时间间隔T作为是否去读写串口缓存的判断依据,其只需满足以下两个条件:(1)单独数据包自身发送时,数据包内部数据字节之间发送时间间隔小于时间T;(2)不同的数据包之间发送时间间隔>T,便可实现从串口缓存中连接读取接收到的数据包。

2 基于MFC的软件设计方案

计算机串口通信界面软件包括串口初始化、Comm事件响应、时间间隔判断、读取串口数据和数据处理,其具体流程如图1所示。

3 软件代码实现

打开VS2008软件开发平台,新建一个MFC程序,并插入一个MSComm串口控件。增加了控件响应函数,数据包时间间隔T此处暂设为20 ms。为调试方便,加入时间溢出标志m_time_out_flag变量。

m_time_out_flag=0;//时间溢出标志设为0,表明数据已处理完

为了方便测试,此处添加的数据处理函数是在一个大的编辑框中,将串口接收到的连接数据包全部显示出来。

4 软件验证与结果分析

在单片机开发板中,烧入每隔25 ms向串口发送数据包“Xidian University”的小程序,成功后连接到计算机,并打开编写的MFC串口通信软件以及单片机开发板电源,具体效果如图2所示。

设置时间间隔T为不同的值,相应地修改单片机的数据包发送时间间隔,并在不同CPU型号计算机下进行多次测试,测出结果平均值如表1所示。

从表1中可得出结论,计算机CPU的处理速度越快,数据包长度越短,时间间隔T可设的值也越小。另外,经测试,当数据处理函数变复杂时,最小时间间隔T可设的值也会相应增大。

5 结束语

文中方法,充分利用了数据包内部数据字节间发送时间间隔小,数据包之间发送时间间隔大的特点。采用微软提供的MSComm控件,在Comm事件中设置定时器,并根据计算机CPU处理速度、数据包长度、数据处理函数复杂程度,选取适当的T值。当定时器时间T溢出时,读取并处理串口缓冲区中的数据。由于是根据数据包之间发送的时间间隔T来判断数据包,所以数据包长度可不固定,也无需对每个数据字节进行判断,故有效解决了计算机串口间的连接数据包传输处理问题。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

当地时间 9 月 8 日,SpaceX 与 EchoStar 正式达成一项价值 170 亿美元的频谱交易,SpaceX 将收购 EchoStar 旗下 AWS-4 频段(2GHz 频段)及 H 频段的频谱许可证,此举引发...

关键字: SpaceX EchoStar 星链 通信

中国 北京,2025 年 8 月 28 日 —— 全球领先的数学计算软件开发商 MathWorks 今日宣布,香港中文大学(下文简称:港中大)一支研究团队采用 MATLAB®、Medical Imaging Toolbo...

关键字: 生物医学 计算机

加利福尼亚州圣克拉拉 — 2025 年 8 月 25 日 — NVIDIA 今日宣布 NVIDIA Jetson AGX Thor™ 开发者套件和量产级模组现已发售。这是一款功能强大的新一代机器人计算机,旨在为制造、物流...

关键字: 机器人 计算机 AI

北京2025年8月18日 /美通社/ -- 2025年8月,软通动力集团一项关键决策引发行业瞩目——以自有资金8亿元向全资子公司软通计算机有限公司完成实缴增资,使其注册资本增加至23亿元。这笔战略注资不仅彰显集团对信创核...

关键字: AI 硬件 计算机 智能化

在现代工业和汽车领域,控制器局域网(CAN)总线作为一种可靠且高效的通信方式,广泛应用于各种电子设备之间的数据传输。在 CAN 总线系统中,有一个看似毫不起眼却至关重要的元件 ——120Ω 终端电阻。这个小小的电阻,对于...

关键字: 控制器局域网 总线 通信

8月14日消息,今天,国务院新闻办公室举行“高质量完成‘十四五’规划”系列主题新闻发布会,国家数据局介绍“十四五”时期数字中国建设发展成就。

关键字: 算力 通信

北京2025年8月8日 /美通社/ -- 8月7日,浪潮信息发布面向万亿参数大模型的超节点AI服务器"元脑SD200"。该产品基于浪潮信息创新研发的多主机低延迟内存语义通信架构,以开放系统设计向上扩展...

关键字: 模型 节点 SD 通信

北京2025年7月31日 /美通社/ -- 近日,权威咨询机构德本咨询重磅发布"2025中国信创PC市场影响力品牌TOP 10"榜单。软通计算机凭借其迅猛的发展势头、领先的技术整合能力及显著的市场表现...

关键字: 计算机 TOP PC PC市场

我想把整个红外数据库,数千个远程文件分布在数百个文件夹中,打包到一个手持设备中。

关键字: 红外通信 M5Stack 计算机

在现代通信技术的复杂网络中,射频(RF)滤波器犹如一位幕后英雄,虽鲜少被大众提及,却发挥着举足轻重的作用。从我们日常使用的智能手机,到构建通信基础设施的基站,再到新兴的物联网设备,RF 滤波器无处不在,默默保障着信号的顺...

关键字: 射频 滤波器 通信
关闭