2024年2月7日发(作者:)
第26卷Vol.26第11期No.11电子设计工程ElectronicDesignEngineering2018年6月Jun.2018基于LABVIEW的上位机串口通信程序设计汤佳明,安伟(江南大学机械工程学院,江苏无锡214122)摘要:基于简化计算机与外部串行设备或其他计算机之间串口通信软件开发流程的目的,采用了依据串口通信原理使用LABVIEW作为上位机程序开发平台的方法,运用图形化程序语言搭建上位机串口通信监控界面。通过由虚拟串口通信驱动软件建立虚拟串口通道用于模拟上位机与外部设备数据通信过程的试验,可得出在建立两个对应串口的基础上文中设计的两种数据通信方式均可完整传输数据、且能够以一个指定的终止字符形式结束传输过程的结论。总的来说,本文设计的上位机串口通信程序简单易懂,相应的监控界面也简洁易用,两者结合在实际近距串口通信中拥有一定的实用与参考价值。关键词:串口通信;LABVIEW;VSPD;模拟中图分类号:TN919文献标识码:A文章编号:1674-6236(2018)11-0086-05DesignofserialportcommunicationprogramforhostcomputerbasedonLABVIEWTANGJia⁃ming,ANWei(CollegeofMechanicalEngineering,JiangNanUniversity,Wuxi214122,China)Abstract:Basedonthepurposeofsimplifyingtheprocessofdevelopingtheserialcommunicatiingtotheprincipleofprogramminglanghserialportcommunication,phicalVirtualSerialPortDriver(VSPD),virtualserialportchannelsarebuiltinordertosimulatethedatacompletelytransmithempossesscertainpracticds:serialportcommunication;LABVIEW;VSPD;simulation随着工业自动化进程的不断深入,虚拟仪器的使用越来越普遍,上位机作为虚拟仪器的一部分在工业生产与科学研究领域也被广泛得使用,在测控与软件设计方面已有了许多成功实例。上位机的功能是发出指令并传送至下位机端,在这一过程中,数据的传输与反馈需要监控,故根据需求设计相关的上位机程序显得很有必要。开发平台,在教学、研究、测试和生产自动化领域被收稿日期:2017-08-08稿件编号:201708043LABVIEW作为一款已被广泛使用的虚拟仪器广泛应用[1]。其图形化编程界面与常规编程语言的不同在于以图形数据流代替了代码,这对于从事工程应用的工程师而言简洁易懂,故可灵活迅速地开发上位机软件。同时,LABVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可以方便地创建用户界面[2]。通过LABVIEW搭建的控制系统,软件程序是其核心[3]。本文基于串口通信原理,编写了上位机通信监控程序,并对其进行模拟通信验证。,heregettheconclusionthatwithtwocorrespondingserialports,twodatacommunicationmethodsdesignedinthearticlecansummary,thisserialportcommunicationprogramofhostcomputeriseasytounderstand,itshomologous作者简介:汤佳明(1993—),男,江苏无锡人,硕士研究生。研究方向:机电一体化技术。-86-
汤佳明,等基于LABVIEW的上位机串口通信程序设计1串口配置本文设计的上位机软件程序是基于串口通信方式,串口通信是一种在计算机与计算机之间或者计算机与外围设备之间传送数据的常用方法[4],通常应用于传统仪器的控制和缓慢变化信号的采集[5]。在本文的串口通信过程中,上位机写入的为字符类型的数据,而后软件将字符按照单个的字节位发送至接收端,作为接收端的下位机一方再将这些位组成完整的字节,从而完成数据的传送。通常采用美国信息交换标准代码(AmericanStandardCodefor的值Information,当传输特Interchange定文件时,则ASCII会使)表用示二数进据制位数对据应类型。在串口通信中,数据位是数据帧格式的一部分,完整的数据帧一般涵盖了起始位、数据位、校验位与停止位。校验位根据字符编码中“1”的数目用于检查数据的准确性。在通信传输过程中,按照相同的通信规则规定上位机与下位机端口的性质,即对两者的通信端口进行初始化设置,按要求设置通信端口的传输速度、单位、起始位、停止位和校验位等参数,这一过程由LABVIEWInstrumentSoftware中的虚Architecture拟仪器软,VISA件架)模构(块实VirtualVISA作为一个综合软件包模块,可在任何平台、现[6]。同时,总。线和环境下对串口进行配置、编程和调试VISA应用程序和仪器总线的通信建立了通道,也是测试程序与数据传输中总线的中间层,是应用于为仪器编程的标准I/O应用程序接口[7]。同时,如前所述,VISA的串口配置要与下位机的串口配置一一对应[8]。VISA模块的串口初始化配置如图1所示。图1串口参数配置由于串口参数类型不同,在此通过数据簇模块设定。簇为一种数据类型,相当于文本编程语言中的结构体变量,是由不同类型的数据组成的集合[9]。由上到下依次为波特率、数据位、校验位、停止位、流控制位,经“解除捆绑”后分割为独立的参数,通过串口资源名称模块选择串口。2数据通信在上位机监控模式中,上位机与下位机之间的数据通信是整个系统的基础,这方面也有许多应用实例[10]。本文在此设计了两种数据通信模式,一种为单点通信,即将单个或少量特定数据字符写入后发送至下位机端;另一种为表格通信,即将大量以Excel下位机端。设定的上位机端串口数据通信流程如图表格文件形式汇总的数据读取转换后发送至2所示。图2串口通信流程初始阶段虚拟串口设置主要通过VSPD软件实现,串口参数配置与串口通信终止字符类型设置两者均相同,通过模式选择按钮选择不同的通信方式,表格通信较单点通信的区别在于表格文件的读取与数据的转换,两种方式的实现过程将在下文详细阐述。2.1单点通信在LABVIEW平台控制的串行通信过程中,数据格式是以字符串形式构成的[11]。实际使用过程中,上位机端需要根据需求发送单个或少量数据至下位机端,故在此设计了单点通信模式。单点通信程序如图3所示:整个程序包含在一个条件判断结构体(CaseStructure)中,根据选择按钮的开关状态决定程序的运行与停止。首先进行串口参数配置,-包含87-
《电子设计工程》2018年第11期输出与输入端口两个。其次,是设置VISA传输中的终止字符类型,在此用到了字节属性模块,用于在传输完毕下位机端收到的字符串后增加指定的结束字符,例如换行、回车或者空字符等类型,例如本程序框图中字节属性模块设定了终止字符(TermChar)判断、终止字符使能(TermCharEn)开关、写入结束模式(ASRLEndOut)3个属性功能。需要注意的是,字节属性模块同时也用于检测串口数据的存在,起到判断的作用[12]。由于端口数据收发之间有延时,故需要加入计时功能,通过写函数模块(VISAWrite)写入数据后延时500ms再经由读函数模块(VISAWrite)读出串口数据。由于加入了结束字符,因此读出的字符会比写入的字符多一位,故将写入的数据字节数与读出的数据字节数进行比较时两者不相等,若前者小于后者且与前面板显示结果一致,则表明通信正常,若两个结果不同则表明通信异常。在串口通信结束后必须关闭串口,因此使用串口关闭函数(VISAClose)执行这一功能。图3单点通信2.2表格通信在实际使用过程中,往往需要发送大量数据至作用为通过引用句柄找到指定文件路径下的文件;随后通过属性节点与调用节点找到用户指定表格文件中的表单号(Sheet);最后将表单范围内的数据值以数组格式输出前面板显示。表格文件读取及显示程序如图4所示。下位机,这些数据通常以表格文件形式存储,如此一来发送更加便捷,因此针对这一需求本文也设计了表格数据通信功能,程序分为表格数据的读取与数据的转换通信两部分。2.2.2表格数据通信由于串口通信接受字符串数据格式,因此需先2.2.1表格数据读取表格数据通信的首要条件是上位机能够读取表将从表格中读取的、以数组形式呈现的表格数据转化为字符串形式发送,这一过程由“数组至字符串转换”模块实现。表格数据通信程序如图5所示。表格数据通信程序结构与单点通信大致相同,同样在此增加了延时与字节比较功能。格文件,在此本文通过ActiveX控件读取表格文件内容。ActiveX控件是一类面向对象程序技术和工具的策略性软件组件的简称,涉及的主要技术内容为部件对象模型(ComponentObjectModel,COM),通过使用ActiveX组件,可以在开发工具中增添特定的功能。在LABVIEW环境下,通过打开ActiveX生成主对象,再由其生成所需子对象,通过设置和调用这些对象的属性来实现程序所需功能[13]。由于自带相关的ActiveX控件,因此LABVIEW在处理Excel表格文件时直接采用该控件即可。首先打开自动化引用模块并创建自动化引用句柄,[15][14]3模拟通信由于串口通信至少需要一对串口互相连接、传输数据,为方便快捷地对上位机程序进行模拟验证、降低实验成本,在此使用了专用的串口调试软件:虚拟串口驱动(VirtualSerialPortDriver,VSPD)。VSPD可通过虚拟出成对的相互连接的串口,用于模拟上-88-
汤佳明,等基于LABVIEW的上位机串口通信程序设计图4表格数据读取图5表格数据通信位机与下位机或者外部串行设备的通信通道[16-17]。模拟通信分为两部分,单点模拟通信与表格模拟通信,其中单点通信以COM2为上位机发送端口,设定COM3为下位机接收端口;表格通信以COM4为上位机发送端口,设定COM5为下位机接收端口。上位机监控界面模拟通信结果与VSPD串口收发字符统计如图6、图7所示。在显示界面中,单点通信的中止字符为十六进制图6上位机监控界面显示显示的字符“A”,对应ASCII码表中换行键,即下位机读出完毕后自动换行;表格通信中的终止字符为“0”,对应为空字符,因此读取的字节数均比写入的多了一位。两对虚拟串口发送与接收的数据字节数一致,说明通信内容完整。模拟通信结果表明,设计的上位机串口通信监控程序能够准确地在端口间传送数据。-89-
《电子设计工程》2018年第11期图7VSPD串口收发字节统计4结论文中说明了基于串口通信原理的上位机监控程序的设计过程。使用LABVIEW开发上位机通信监控界面软件,解决了工程设计中实现简易的串口通信的问题,不仅能够简化软件开发流程和减少硬件成本,而且具有良好的扩展性。文中设计了单点数据通信和表格数据通信两种通信模式。前者采用Case条件选择结构选定模式,通过VISA函数配置模块配置参数、VISA字节模块设置终止格式,根据字节数判断通信是否正常。后者相比前者的不同之处在于:在数据发送与显示过程之前需通过ActiveX控件读取表格文件并转化为字符串数据,然后进行正常的通信。总体而言,该上位机软件实现了所需功能,但包含的通信模式较少,只能作为简单的数据通信工具使用,对后续的深入开发具有一定的参考价值。实现PC与C8051F320的USB数据通信[J].电子[7]魏义虎,陈雷.基于LabVIEW-VISA方式的串口[8]马银平,王长坤,叶志斌.基于LabVIEW的串口通[9]岂兴明,田京京,夏宁.LabVIEW入门与实战开发[10]李江全,刘恩博,胡蓉,等.LABVIEW虚拟仪器数邮电出版社,2010.100例[M].北京:电子工业出版社,2011.(12):61-62.通信研究[J].电子设计工程,2015(24):129-131.技术应用,2013(8):17-19.信系统设计与实现[J].工业控制计算机,2015据采集与串口通信测控应用实战[M].北京:人民[11]崔牧凡.基于LabVIEW和FPGA的串口通信系统[12]杨康,叶麦克,全书海.基于LabVIEW的非车载充[13]古萍,王亮,冯磊,等.基于Labview环境的ActiveX[14]陈金兰,张家精,陈松.基于ActiveX控件的Lab⁃北师范大学学报:自然科学版,2013(4):72-76.编程实例[J].科技创新与应用,2016(19):动态控制Excel多工作表数据显示[J].淮(信息与管理工程版),2016(5):636-640.设计与实现[J].计算机应用,2012(S2):82-84.电机无线监测系统设计[J].武汉理工大学学报参考文献:[1]陈树学,刘萱.LabVIEW宝典[M].北京:电子工业[2]余开亮,刘亚斐,陆迪,等.基于LabVIEW的CAN(3):1-2.出版社,2011.通信上位机监控系统研究[J].科技展望,2016,[3]朱杰.基于LabVIEW和单片机的太阳自动跟踪监[4]杨旭东,徐海亭,王俊.基于LabVIEW被动接收型2013(11):100-103.控系统[D].武汉:武汉理工大学,2013.[15]曹玉保,周兆庆,吴凯.Labview基于ActiveX技术[16]赵建勋.Proteus下SHT11数据监测系统的研究与(6):69-72.的Word测试报表研究[J].中国集成电路,2016串口通信数据采集系统[J].计算机与现代化,[5]雷振山,魏丽,赵晨光.LabVIEW高级编程与虚拟[6]段晋军,位恒曦,常晓明.基于LabVIEWNI-VISA-90-仪器工程应用[M].北京:中国铁道出版社,2009.[17]党俊博,李哲,李雅俊.基于FPGA的串口通信电路设计与实现[J].电子科技,2016(7):106-109.设计[J].电子设计工程,2016,24(7):58-62.
本文发布于:2024-02-07 10:31:38,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170727309864394.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |