基于LabVIEW被动接收型的串口通信系统的制作方法

文档序号:6503315阅读:225来源:国知局
基于LabVIEW被动接收型的串口通信系统的制作方法
【专利摘要】本发明提出了一种基于LabVIEW被动接收型的串口通信系统,包括外界通讯模块、触发模块、串口基本通信模块、数据检测和重测模块和数据存储模块;外界通讯模块通过两个共享变量与外部控制器实现通讯,触发模块根据外界通讯模块传入的触发共享变量数据值进行判断,串口基本通信模块包括初始化模块、数据传输和处理模块、数据接收模块;数据检测和重测模块判断接受数据的数据类型、长度是否和测试仪器设定的数据类型、长度相同,数据存储模块存储数据检测和重测模块判断合格的数据。该系统只需设置相应串口参数即可显示硬件采集的数据,并可实时存储和回放采集到的数据,方便以后对采集数据进行研究。实验证明,系统的稳定性和可靠性较高。
【专利说明】基于LabVIEW被动接收型的串口通信系统
【技术领域】
[0001]本发明属于串口通信领域,具体涉及一种基于LabVIEW被动接收型的串口通信系统。
【背景技术】
[0002]串行通信是一种在计算机与外部设备以及算机与测试系统之间最简单、最普遍的数据通信方式。串行通信使用计算机内建的串口,用户无需再购买任何特殊硬件,只要一根串口线就可以达到发送或接收数据的目的,而且不失测试的准确性。串口通过RS-232串口总线与PC计算机组成虚拟仪器系统,主要适用于速度较低的测试系统,它具有接口简单,使用方便的特点。所以,串口通信广泛应用于数据采集、监测监控以及仪表控制等场合。图形化编程语言LabVIEW的出现为串口调试与数据分析带来了极大方便。
[0003]传统的串口调试采用高级语言,比如乂(^8工#、拓^等,这些语言程序代码冗长,不便进行功能拓展,如果对串口数据进行分析,则需推翻原有程序结构,重新编制代码。与传统的编程语言相比LabVIEW采用图形(即各种图标、图形符号、连线等)编程,具有编程简洁、直观性强、人机交互界面友好、数据可视化分析与设备控制能力优等特点。LabVIEW经典的串口程序都是先写入数据和后读取数据,比如李晴的《基于LabVIEW的串口通信应用》、吕向锋的《基于LabVIEW串口通信的研究》、梁国伟的《基于LabVIEW的串口数据采集的实现及应用》中,就是采用先写数据和后读数据的方式来实现串口数据的采集。但是现在非常多的仪表、设备等下位机都是不断地发送数据给上位机,而且发送的数据长度一般可设定,而上位机不知道下位机何时发送的情况下被动接收数据,这属于典型的被动接受型串口通信。
[0004]基于LabVIEW编程的被动接受型串口通信会出现下面三个问题。问题一:一般的被动接受型串口通信系统利用循环结构不断查询缓冲区的方式来读取数据,但串口数据有时接受不全或者为空,这是由于在数据没有全部传送过来时,系统就将数据读出,导致了数据的不完整。问题二:当使用LabVIEW从串口读取数据的时候,会连续不断地查询串口缓冲区直到接收到数据为止,这增加了处理器和资源的占用,如果程序中有较多的其他循环结构,就会导致系统中的其他循环不能流畅地运行,使系统运行缓慢。问题三:由于串口本身的不稳定性,很容易受到外界电磁场等外界干扰,导致下位机发过来的数据有可能本身就存在数据类型不符合、数据不完整等问题。

【发明内容】

[0005]要解决的技术问题
[0006]为解决现有技术存在的问题,本发明提出了一种基于LabVIEW被动接收型的串口通信系统。
[0007]技术方案
[0008]本发明的技术方案为:[0009]所述一种基于LabVIEW被动接收型的串口通信系统,其特征在于:包括外界通讯模块、触发模块、串口基本通信模块、数据检测和重测模块和数据存储模块;
[0010]外界通讯模块通过两个共享变量与外部控制器实现通讯,所述两个共享变量分别为触发共享变量和重测共享变量,两个共享变量的数据类型为布尔型,初始值为false ;夕卜部控制器通过接受测试仪器发出的脉冲信号改变触发共享变量,且脉冲信号使触发共享变量先变为true,而后变为false ;外界通讯模块通过改变重测共享变量值使外部控制器驱动测试仪器重新测试;
[0011]触发模块根据外界通讯模块传入的触发共享变量数据值进行判断;在触发模块中国,触发共享变量与true常值进行等逻辑运算,循环结构的移位寄存器与false常值进行等逻辑运算,其中循环结构的移位寄存器初始值为false ;两个等逻辑运算的输出进行逻辑与运算,逻辑与运算的结果控制串口基本通信模块是否执行;
[0012]串口基本通信模块包括初始化模块、数据传输和处理模块、数据接收模块;初始化模块控制波特率、数据位、停止位和校验位四个参数与测试仪器的串口参数一致,且初始化模块中不启用终止符;数据传输和处理模块将通过测试仪器串口传来的数据暂存在串口通信系统的数据缓冲区中;数据接收模块利用循环结构不停查询串口通信系统的数据缓冲区,当数据缓冲区有数据时,数据接收模块就按照串口数据长度将串口数据读取;
[0013]数据检测和重测模块判断接受数据的数据类型、长度是否和测试仪器设定的数据类型、长度相同,若不同,则通过改变重测共享变量使外部控制器驱动测试仪器重新测试;
[0014]数据存储模块存储数据检测和重测模块判断合格的数据。
[0015]有益效果
[0016]针对基于LabVIEW编程的被动接受型串口通信出现的三个问题,本发明设计了一种应用于串口数据采集的系统:触发串口通信系统。触发串口通信系统采用共享变量与外界硬件通信的方式触发串口,通过共享变量告诉上位机何时读对应串口的数据,而不是盲目的查询,解决问题一。该系统会在数据全部传送过来之后,才读取串口缓冲区的数据,可保证读取数据的完整性,而且不需要连续不断地查询串口缓冲区,减少了处理器和资源的占用,使系统能够流畅运行,解决问题二。系统可以判断接收数据的合格与否,一旦出现不合格数据,则可以通过共享变量与外界硬件通信的方式来触发下位机重新测量,重新获得合格测试数据,解决问题三。该系统只需设置相应串口参数即可显示硬件采集的数据,并可实时存储和回放采集到的数据,方便以后对采集数据进行研究。实验证明,系统的稳定性和可靠性较高。
【专利附图】

【附图说明】
[0017]图1:串口通信硬件线路;
[0018]图2:控制器、下位机、工控机的硬件连接与信号传递流程图;
[0019]图3:触发串口通信软件系统信号传递流程图;
[0020]图4:串口基本通彳目t旲块;
[0021]图5:触发串口通信方法。
【具体实施方式】[0022]下面结合具体实施例描述本发明:
[0023]本实施例中串口通信系统与外部控制器和测试仪器通过线路连接,其中串口通信硬件线路只需三根线(发送线、接收线、信号地线)便可实现全双工异步串行通信,使用串口通信线将两个串口设备连接起来即可。准备两个9针的串口接线端子,准备3根导线(最好采用3芯屏蔽线),将导线焊接到接线端子上,串口接线端子I的2脚、3脚、5脚分别对应串口接线端子2的3脚、2脚、5脚。而外部控制器和测试仪器之间通过4路接口信号,包括启动、复位、急停、完成信号通信,复位、急停、完成接口信号分别连接到控制器的输入点上,启动接口信号连接到控制器的输出点上。通过下位机输入控制器的3个信号,告知控制器此时下位机的状态。通过编写控制器的程序实现下位机的动作,控制器的输出来控制下位机的启动。
[0024]参照附图3,串口通信系统,包括外界通讯模块、触发模块、串口基本通信模块、数据检测和重测模块和数据存储模块。
[0025]外界通讯模块通过两个共享变量与外部控制器实现通讯,所述两个共享变量分别为触发共享变量和重测共享变量,两个共享变量的数据类型为布尔型,初始值为false ;夕卜部控制器通过接受测试仪器发出的脉冲信号改变触发共享变量,且脉冲信号使触发共享变量先变为true,而后变为false ;外界通讯模块通过改变重测共享变量值使外部控制器驱动测试仪器重新测试。
[0026]触发模块根据外界通讯模块传入的触发共享变量数据值进行判断;在触发模块中国,触发共享变量与true常值进行等逻辑运算,循环结构的移位寄存器与false常值进行等逻辑运算,其中循环结构的移位寄存器初始值为false ;两个等逻辑运算的输出进行逻辑与运算,逻辑与运算的结果控制串口基本通信模块是否执行。
[0027]当触发共享变量的值变为true,循环结构的移位寄存器初始值为false,两个等逻辑输出为true,然后再进行与逻辑,输出为true,可以触发对应串口基本通信模块读取数据,读完数据后,即执行完一次循环之后,循环结构的移位寄存器值变为true。而循环再次执行时,一个等逻辑输出为false,然后再进行与逻辑,输出为false,,不能再次执行串口基本通信模块。由于触发共享变量为一个脉冲信号,当外界硬件将触发共享变量的值置为false时,循环结构的移位寄存器值为false,两个等逻辑输出为false,然后再进行与逻辑,输出为false,确保不能再次执行串口基本通信模块。同时为下次触发做准备,当触发共享变量的值再次变为true,又可以进行上述的操作。保证触发共享变量每次触发只能执行一次串口基本通信模块。
[0028]串口基本通信模块包括初始化模块、数据传输和处理模块、数据接收模块。初始化模块控制波特率、数据位、停止位和校验位四个参数与测试仪器的串口参数一致,且初始化模块中不启用终止符,防止数据接受不全。数据传输和处理模块将通过测试仪器串口传来的数据暂存在串口通信系统的数据缓冲区中,数据发送后到接收之间延时500毫秒,即读取数据之前延时500毫秒。数据接收模块利用循环结构不停查询串口通信系统的数据缓冲区,当数据缓冲区有数据时,数据接收模块就按照串口数据长度将串口数据读取。
[0029]数据检测和重测模块判断接受数据的数据类型、长度是否和测试仪器设定的数据类型、长度相同,若不同,则表示数据不合格,通过改变重测共享变量使外部控制器驱动测试仪器重新测试。当下次数据合格时,输出将重测共享变量的值置false,不再启动下位机。
[0030]串口数据判断合格后,一方面用于显示,另一方面用于数据的存储。数据存储模块就用于存储数据检测和重测模块判断合格的数据。
【权利要求】
1.一种基于LabVIEW被动接收型的串口通信系统,其特征在于:包括外界通讯模块、触发模块、串口基本通信模块、数据检测和重测模块和数据存储模块; 外界通讯模块通过两个共享变量与外部控制器实现通讯,所述两个共享变量分别为触发共享变量和重测共享变量,两个共享变量的数据类型为布尔型,初始值为false ;外部控制器通过接受测试仪器发出的脉冲信号改变触发共享变量,且脉冲信号使触发共享变量先变为true,而后变为false ;外界通讯模块通过改变重测共享变量值使外部控制器驱动测试仪器重新测试; 触发模块根据外界通讯模块传入的触发共享变量数据值进行判断;在触发模块中国,触发共享变量与true常值进行等逻辑运算,循环结构的移位寄存器与false常值进行等逻辑运算,其中循环结构的移位寄存器初始值为false ;两个等逻辑运算的输出进行逻辑与运算,逻辑与运算的结果控制串口基本通信模块是否执行; 串口基本通信模块包括初始化模块、数据传输和处理模块、数据接收模块;初始化模块控制波特率、数据位、停止位和校验位四个参数与测试仪器的串口参数一致,且初始化模块中不启用终止符;数据传输和处理模块将通过测试仪器串口传来的数据暂存在串口通信系统的数据缓冲区中;数据接收模块利用循环结构不停查询串口通信系统的数据缓冲区,当数据缓冲区有数据时,数据接收模块就按照串口数据长度将串口数据读取; 数据检测和重测模块判断接受数据的数据类型、长度是否和测试仪器设定的数据类型、长度相同,若不同,则通过改变重测共享变量使外部控制器驱动测试仪器重新测试; 数据存储模块存储数据检测和重测模块判断合格的数据。
【文档编号】G06F11/26GK103514073SQ201310201926
【公开日】2014年1月15日 申请日期:2013年5月27日 优先权日:2013年5月27日
【发明者】杨旭东, 徐海亭, 王俊, 徐继贺, 平庆伟 申请人:西北工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1