一种基于LabVIEW主动接收型的通信调试系统及其通信调试方法

文档序号:9200295阅读:317来源:国知局
一种基于LabVIEW主动接收型的通信调试系统及其通信调试方法
【技术领域】
[0001]本发明属于串口通信领域,尤其是涉及一种基于LabVIEW主动接收型的通信调试系统及其通信调试方法。
【背景技术】
[0002]串口通信是一种在计算机与计算机之间或计算机与外围设备之间传送数据的常用方法。串口通过RS-232串口总线与计算机组成虚拟仪器系统,主要适用于速度较低的测试系统,实现系统点对点的串口通信,其接口简单,使用方便。所以,串口通信广泛应用于数据采集、监测监控以及仪表控制等场合。图形化编程语言LabVIEW的出现为串口调试与数据分析带来了极大方便。
[0003]传统的串口调试采用高级语言,比如乂(:、¥8工#、拓^等,这些语言程序代码冗长,不便进行功能拓展,如果对串口数据进行分析,则需推翻原有程序结构,重新编制代码。与传统的编程语言相比LabVIEW采用图形(即各种图标、图形符号、连线等)编程,具有编程简洁、直观性强、人机交互界面友好、数据可视化分析与设备控制能力优等特点。LabVIEW经典的串口程序都是先写入数据和后读取数据,采用先写数据和后读数据的方式来实现串口数据的采集。与被动式相对,现在非常多的仪表、设备等下位机都是每隔固定的时间发送一次数据给上位机,而且发送的数据长度一般可设定,而上位机在知道下位机何时发送的情况下主动接收数据,这属于典型的主动接收型串口通信。
[0004]基于LabVIEW的主动接收型串口通信会出现下面两个问题。问题一:主动接收型串口通信系统通常利用循环结构不断查询缓冲区的方式来读取数据,但串口数据有时接受不全或者为空,这是由于在数据没有全部传送过来时,系统就将数据读出,导致了采集数据的不完整。问题二:当使用LabVIEW从串口读取数据的时候,会连续不断地查询串口缓冲区直到接收到数据为止,这增加了处理器和资源的占用,如果程序中有较多的其他循环结构,就会导致系统中的其他循环不能流畅地运行,使系统运行缓慢。

【发明内容】

[0005]有鉴于此,本发明旨在提出一种主动接收型的串口通信调试系统,以解决数据采集不完整的问题。
[0006]为达到上述目的,本发明的技术方案是这样实现的:
[0007]一种基于LabVIEW主动接收型的串口通信调试系统,包括串口基本通信模块、数据检测模块、系统调试模块和数据存储模块;
[0008]串口基本通信模块包括初始化模块、数据传输和处理模块、数据接收模块:初始化模块控制波特率、数据位、停止位和校验位四个参数与测试仪器一致,且初始化模块不启用终止符;数据传输和处理模块将通过测试仪器的串口传送过来的数据暂存在串口通讯系统的数据缓冲区中;数据接收模块利用循环结构不停的查询数据缓冲区,当串口的数据缓冲区中有数据时,数据接收模块就按照串口数据长度将串口数据读取;
[0009]数据检测模块判断接收数据的数据类型、长度是否与测试仪器设定的数据类型、长度相同,若相同则执行数据存储模块,若不同则执行系统调试模块;
[0010]系统调试模块的工作方式为调整while循环中的时间参数;
[0011]数据存储模块用于存储完整准确的测试数据。
[0012]进一步的,系统调试模块的工作方式为调整while循环执行时间间隔。
[0013]进一步的,系统调试模块的工作方式为调整while循环起始执行时间。
[0014]进一步的,系统调试模块的工作方式为既调整while循环执行时间间隔又调整while循环起始执行时间。
[0015]优选的,系统调试模块通过下位机发送时间间隔、下位机数据发送时间、串口数据采集程序执行时间这三个量来调节while循环起始执行时间和while循环执行时间间隔,其中while循环起始执行时间是相对于下位机开始工作时间计算的。
[0016]优选的,系统调试模块调试的原则就是使下位机数据发送时间一定要小于下位机发送时间间隔While循环执行次数与下位机发送数据次数相同,即调整while循环执行时间间隔与下位机发送时间间隔相同;不断调整while循环起始执行时间直至得到完整准确的数据。
[0017]进一步的,串口数据采集模块采集串口数据的方式是将上位机和下位机的通讯参数设置成相同的,下位机向上位机发送串口数据,上位机将数据暂存在将系统的数据缓冲区中,并且利用循环结构不断查询数据缓冲区来读取数据。
[0018]相对于现有技术,本发明所述的主动接收型的串口通信调试系统具有以下优势:
[0019]本发明所述的主动接收型的串口通信调试系统致力于研宄主动接收型串口通信的应用问题,并根据现有主动接收型串口通信系统出现的两个问题,设计了一种主动接收型的串口通信调试系统。该调试系统调整的方式有两个:调整循环执行时间间隔、调整循环起始执行时间,这两种方式在理论上都可以实现调试功能,不过为了方便起见,实际的应用中一般都会将这两种方式结合调节使用。系统通过对下位机发送时间间隔、下位机数据发送时间、串口数据采集模块执行时间这3个参数进行调节,来实现对循环执行时间间隔和循环起始执行时间的调整。该调试系统的目的是保证在下位机每次发送的数据全部发送完成后,上位机才读取串口缓冲区的数据,这样就可保证采集数据的完整性和准确性,而且调试的过程非常简单,只需调整上述3个参数就可以达到调试要求,效率高;该调试系统还可以确保循环执行次数与下位机发送数据次数相同,下位机发送完成一次数据,循环执行一次串口数据采集模块,查询一次串口缓冲区,将串口缓冲区的数据读出,这样系统就不需要连续不断地查询串口缓冲区,减少了对系统资源的占用,使系统能够流畅运行,大大提高了系统的运行效率。
[0020]本发明的另一目的在于提出一种基于LabVIEW主动接收型的串口通信调试方法,以解决数据采集不完整的问题。
[0021]为达到上述目的,本发明的技术方案是这样实现的:
[0022]—种基于LabVIEW主动接收型的串口通信调试方法,包括
[0023]S1.启动初始化模块,对串口进行配置,进入步骤S2 ;
[0024]S2.数据传输和处理模块处理数据,存入缓冲区,进入步骤S3 ;
[0025]S3.数据接收模块按长度读取数据,进入步骤S4 ;
[0026]S4.数据检测模块对数据进行检测;如果数据不完整,则进入步骤S5,若数据完整,则进入数据存储模块,进行存储;
[0027]S5.启动系统调试模块,调整while循环中的时间参数,然后进入步骤SI。
[0028]所述步骤S5中,根据数据发送间隔,数据发送时间和串口数据采集程序执行的时间来调试while循环的起始执行时间和while循环执行时间的时间间隔。
[0029]步骤S5包括
[0030]S51.根据数据长度、数据类型、波特率等计算出数据发送时间,根据数据发送时间,在下位机上对发送数据的时间间隔进行调整,使发送数据的时间间隔大于等于数据发送时间;
[0031]S52.调整while循环的执行时间间隔,使while循环的执行时间间隔等于发送数据的时间间隔;
[0032]S53.调整while循环的起始时间,使其小于发送数据的时间间隔与数据发
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1