当前位置:首页 > 通信技术 > 通信技术
[导读]摘要 设计了一种在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月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭