CN102722150A - 一种基于通用串口的多路波形采集显示和数据分析处理系统 - Google Patents
一种基于通用串口的多路波形采集显示和数据分析处理系统 Download PDFInfo
- Publication number
- CN102722150A CN102722150A CN2012101855741A CN201210185574A CN102722150A CN 102722150 A CN102722150 A CN 102722150A CN 2012101855741 A CN2012101855741 A CN 2012101855741A CN 201210185574 A CN201210185574 A CN 201210185574A CN 102722150 A CN102722150 A CN 102722150A
- Authority
- CN
- China
- Prior art keywords
- data
- waveform
- module
- 0xff
- serial ports
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
本发明涉及上位机测试技术领域,特别是一种基于通用串口的波形采集显示和数据分析处理系统,包括波形采集与显示部分和数据分析与处理部分,本系统采用多线程架构,波形采集与显示部分通过从PC的RS232通用串行接口获取下位机上传的多路波形数据,经过处理之后用文本和波形图显示;于此同时,数据分析与处理部分进行波形数据采集和处理显示工作,显示波形的连续实时变化。本发明的优点在于用一种简单新型的方法,在运行windows操作系统的PC机上实现了基于RS232串行接口的多路(最大4路)波形数据实时传输与分路显示的系统,并且这个系统还融合了数据分析功能,能对每路波形进行频谱分析和多种滤波算法处理。
Description
技术领域
本发明涉及上位机测试技术领域,特别是一种基于通用串口的波形采集显示和数据分析处理系统。
背景技术
工业自动化的各个方面都离不开执行机构,构成执行机构的除了液动及气动装置,应用最广泛的设备就是电动机。电动机的种类繁多,常见的有步进电机、直流有刷电机、三相交流电机等。其中步进电机和有刷电机结构不复杂、控制算法也相对简单。三相交流电机由于不能物理换相,必须通过软件来实现电压电流换相,因此控制算法相对更加复杂。特别是应用于工业机器人机械臂上的伺服电机,为了获取最好的工作状态和效率,除了需要加入精密的位置传感器进行准确的位置和速度控制之外,还需要加入电流反馈,利用电流环作为内环,对电压和电流矢量同时进行精确控制。
在嵌入式控制器上编程实现上述电机控制功能时,控制参数的标定需要大量调试实验,在调试过程中,有必要对控制芯片内部进行运算的波形数据和中间参数进行实时监测和记录,由于嵌入式控制器本身功能有限,一般来说这需要通过通讯接口从控制芯片将数据传输到上位PC机上进行保存、处理和显示。
在本领域的现有技术中,有多种方式实现从下位机到PC的数据传输,最常见的是通过RS232串行接口,较为常见的通讯接口还有以太网、CAN总线等。其中,RS232串行接口的优点是较为通用、协议较简单,易于实现,缺点是传输速度较慢。而如以太网、CAN总线等接口传输速度很快,但是对硬件的要求较高,协议较为复杂。
现有的基于RS232串行接口的波形采集方法多数仅能采集单路波形。现有的波形采集技术只是简单地数据采集、存储和绘图,一般不具备实时图像显示功能,这一功能恰恰是电机控制参数标定应用中最为需要的。并且现有的波形采集技术也没有同时具备数字滤波等数据分析功能。
用户需要保存一定时间段的波形数据并导出到记录文档中。也需要对波形数据进行频谱分析。由于硬件电路不可避免的干扰等问题,嵌入式芯片通过模数转换采集到的电流等信号可能存在噪声,一些特殊情况下噪声可能会大到不可忽略的程度。因此,有必要对嵌入式芯片上传的波形原始数据进行数字软件滤波处理。
现有专利也对相关技术进行了改进,如专利申请号为200910010648.6,申请日为2009-3-11,名称为“一种永磁同步电机控制性能自动化测试系统”的发明专利,其技术方案为:包括通讯子系统、上位机子系统、永磁同步电机控制子系统、直流电机控制子系统,永磁同步电机控制子系统中控制电路连接通讯子系统中的RS232转接桥设备,直流电机控制子系统中的西门子6RA7025直流调速器连接通讯子系统中的直流调速器通讯板卡CBP2,通讯子系统中的直流调速器通讯板卡CBP2和RS232转接桥设备连接上位机子系统中的可编程控制器PLC。永磁同步电机控制子系统与上位机子系统之间通过编程实现通讯。
上述专利的通讯子系统和上位机子系统虽然也是通过某种通讯接口实现上下位机的数据通讯,但是这些子系统仅仅适用于该专利所述的测试系统,应用范围很有限。具体来说不足之处如下:
1、上述专利并不是永磁电机控制子系统与PC直接通讯,而是多了一个中转设备——PLC,并且其主要的通讯接口是profibus总线,而不是本发明专利所用的RS232串行接口,虽然永磁电机控制子系统的输出接口是RS232,但是通过RS232转接桥设备转换成了profibus节点。因此,虽然profibus速度很快,但是数据传输速率最终还是受限于RS232接口。仅就数据传输效率来说反而不如本发明专利中直接用rs232连接永磁电机控制系统与上位PC机。
2、上述专利PC机的上位机程序是基于西门子的wincc子系统编写,而本发明专利所包含软件直接运行在windows操作系统上。
3、上述专利的上位机子系统除了显示下位机传输的数据,还包括向下位机发送控制命令,设定控制参数的功能。并不能专注于数据的采集和波形的显示、实时监测,虽然也具备向下位机发送数据的功能,但功能上较为简单。
3、上述专利从下位机传输到上位机的数据,其包含的意义是预先设定无法更改的,包括电机控制字、电机实际速度、相电压有效值和相电流有效值四种数据。不能实现波形数据可以任意定义其意义。另一个缺点是,上述专利不能实时绘制波形曲线。
4、上述专利的上位机子系统不包含数据处理功能。
总的来说,上述专利只适用于该专利所述特殊应用,在数据采集显示和监测方面的功能较为简陋,并且上位机子系统也不具备通用性。
又如专利申请号为201010168045.1,申请日为2010-5-6,名称为“一种CAN总线物理层测试方法”的发明专利,其技术方案为:利用上位机与若干个测试CAN节点通过USB to CAN(或者类似功能的设备)分别组成一条测试CAN网络和一条被测CAN网络,构建一个CAN总线物理层测试平台。上位机通过对比、判断测试网络上通信内容与被测网络上通信内容得出测试结果。测试命令及测试用例通过测试CAN网络下载到测试节点。
上述专利不足之处如下:
上述专利的主要内容是通过CAN测试网络检测CAN总线物理层是否满足CAN协议一致性要求,其数据传输目的是为了对比数据完整性和一致性,检测CAN网络的可靠性,数据内容本身是不具备任何意义的。不能对数据进行分析处理。
再如专利申请号为201020568919.8,申请日为2010-10-20,名称为“电机控制器电路检测装置”的实用新型专利,其技术方案为:所述的检测装置包括上位机单元、显示单元、电源单元、数字信号处理器单元、测试电路板单元和示波器单元,其中,所述的电源单元连接所述的测试电路板单元,所述的上位机单元连接所述的数字信号处理器单元和所述的示波器单元,所述的数字信号处理器单元的输出端连接所述的显示单元和所述的测试电路板单元,所述的测试电路板单元还连接待测的电机控制器电路。
上述专利通过额外的测试电路板和示波器等硬件设备检测电机控制器的功能,目的是通过额外给定的控制信号检测电机控制器驱动电路及保护电路是否正常工作。然后将测试数据传输到上位机单元和显示单元,针对的是硬件电路的正确性和可靠性。不是针对控制芯片内部正在运算和存储的数据,实现检查数据运算是否正确,控制算法是否可靠,控制参数是否得到优化的功能。
并且上述专利上位机单元功能有限,仅能显示测数数据数值,而不能实时显示波形,同时也不具备数据分析处理功能。
综上所述,目前最为常见的具备类似功能的软件多为串口调试助手,这些技术仅能实现从串口收发数据,保存接收到的历史数据功能,完全不具备对数据的处理分析及多路波形显示能力。
发明内容
为了克服现有的串口调试助手类系统不能对数据的处理分析及多路波形显示的问题,现在特别提出一种基于简单的应用层协议、基于RS232串行接口的、融合了数据分析和波形的实时传输和分路显示的一种基于通用串口的多路波形采集显示和数据分析处理系统。
为实现上述目的,本发明的技术方案如下:
一种基于通用串口的波形采集显示和数据分析处理系统,包括波形采集与显示部分和数据分析与处理部分,其特征在于:本系统采用多线程架构,波形采集与显示部分通过从PC的RS232通用串行接口获取下位机上传的多路波形数据,经过处理之后用文本和波形图显示;于此同时,数据分析与处理部分进行波形数据采集和处理显示工作,显示波形的连续实时变化;
所述RS232通用串行接口的串口波特率小于或等于115200bps,自动识别和显示多路波形,同时处理1-4路波形;
所述RS232通用串行接口通讯过程为:RS232接口以字节为单位串行发送数据,每个字节数值范围为0x00 – 0xFF,下位机循环发送多路波形的每个时间节点数据,例如,发送a、b、c三路波形,假设其在时间节点i上的数据值分别为ai、bi和ci,那么下位机发送数据的顺序为…、ai、bi、ci、ai+1、bi+1、ci+1、…。为防止波形出现串混错误,在每两个时间节点的数据之间插入一个标志位,作为第一路波形数据的起始标志,定义这个标志位为0xFF;于是数据发送序列变为…、0xFF、ai、bi、ci、0xFF、ai+1、bi+1、ci+1、0xFF、…;由于0xFF被标志位占用,因此波形数据的有效数值范围为0x00 – 0xFE;波形数据应禁止出现0xFF数值;
所述发送方法为:
a、按时间节点顺序发送多路波形的节点数据,如…、0xFF、ai、bi、ci、0xFF、ai+1、bi+1、ci+1、0xFF、…;
b、以0xFF作为时间节点分割标志;
与之对应的接收方法具体为:
a、以0xFF作为时间节点检测标志
b、从当前接收到0xFF标志起,到下一个0xFF标志之间,第一个字节作为波形1数据,第二个字节作为波形2数据,第三个字节作为波形3数据,第四个字节作为波形4数据;
c、若两个标志位之间不足四个字节,则没有数据的波形不做处理;若两个标志位之间多于四个字节,第四个字节以后的字节直接忽略,保证良好的兼容性;
数据分析与处理部分将波形数据转换成表格形式,对任意一路波形通过快速傅里叶变换FFT进行频谱分析,通过有限冲激响应数字滤波器FIR或无限冲激响应数字滤波器IIR实现滤波,并显示滤波前后的波形和频谱图对比。
所述波形采集和显示部分包括硬件驱动模块、参数设置模块、数据读写模块、波形显示模块和错误处模块;硬件驱动模块驱动PC机的串口等硬件设备;参数设置模块设置串口相关参数,如波特率、端口号、缓存大小以及数据存储参数;数据读写模块与下位机通过串口进行数据交互,并将读取的多路波形数据分别保存;波形显示模块以层叠图和分格图两种方式分别将各路波形随时间的变化显示在屏幕上;错误处理模块分析系统运行中遇到的错误,根据错误弹出对话框提醒用户。
所述波形采集和显示部分为状态机架构,包括初始化、参数设置、数据读取、数据写入、关闭退出五个状态,上述状态之间通过用户输入指令或事件的发生进行相互跳转。
所述初始化状态是系统运行后进入的第一个状态,对各种变量和结构进行初始化赋值;参数设置状态获取用户设置的相关参数;数据读取状态通过硬件驱动从串口读取下位机传回的数据,并进行格式转换、分路保存和波形显示;数据写入状态通过硬件驱动将数据写入串口并发送至下位机;关闭退出状态进行程序退出前的后期处理,如关闭串口、释放缓存,完成后退出系统。
所述波形采集与显示部分的层叠图将1-4路波形同时显示在一个窗口,以对各路波形进行同步比对;分格图将各路波形在不同的窗口中显示,以分别观察每一路波形的状况与趋势。
波形采集显示和数据分析处理系统通过硬件驱动模块提供的API函数实现串口驱动的基本功能,包括串口参数设置、向串口写入字节数据、从串口读取字节数据,RS232串口为PC机自带的硬件设备。
所述波形采集与显示部分的串口缓存应用防溢出技术,用户自定义缓存大小,当数据保存队列过长,程序处理不及时导致缓存即将溢出时,程序自动清空串口缓存防止因缓存溢出造成的系统卡死,以丢失部分数据的代价保证波形的连续读取与实时显示。
所述波形数据的存储采用队列方式,自定义队列长度,在队列末端添加数据元素,如队列已满,则通过删除队列前端的元素使新元素入队;波形数据以用户自定义的长度存储在内存中,或导出保存在文件中。存储的目的在于,首先,数据分析处理功能(频谱分析和滤波)需要提取存储的历史数据。另外,除了显示波形,本发明还有一个文本框显示各路波形的节点具体数值,因此,存储一定长度的历史数据,可以方便用户导出,并运用别的工具(如Matlab)进行进一步分析处理。
所述数据分析和处理部分包括数据格式转换模块、波形提取模块、频谱分析模块、数字滤波模块;数据格式转换模块将波形数据转换为文本形式,并且用制表符分隔,导入excel进行后续处理;波形提取模块提取任意一路原始波形并显示在屏幕上;频谱分析模块通过设置的窗函数和波形采样率,对原始波形进行快速傅里叶变换(FFT),并将功率谱显示在屏幕上;数字滤波模块通过有限冲激响应(FIR)或无限冲激响应(IIR)数字滤波器对提取的原始波形进行数字滤波,并将滤波后的波形图及功率谱显示在屏幕上。
所述频谱分析采用快速傅里叶变换(FFT),使用矩形、汉明、汉宁窗、Blackman-Harris、三角、高斯函数;所述数字滤波器同时支持有限冲激响应滤波(FIR)和无限冲激响应滤波(IIR),两种滤波器都包含低通、高通、带通、带阻四种模式。
本发明的优点在于:
1、本发明用一种简单新型的方法,在运行windows操作系统的PC机上实现了基于RS232串行接口的多路(最大4路)波形数据实时传输与分路显示的系统,并且这个系统还融合了数据分析功能,能对每路波形进行频谱分析和多种滤波算法处理。由于基于RS232接口,并且没有对每路波形实际意义进行定义,因此系统具备较强的通用性,具备多种应用场景。
2、发明采用LabVIEW2010作为编程环境在上位机上实现多路波形采集和数据分析功能,本多路波形采集最主要的技术是定义一种基于RS232串行接口的应用层协议,定义多路波形数据的串行传送方式,以及每路波形的辨识方法,并且具有波形采集技术的同时还具备了数字滤波等数据分析功能。本发明可广泛应用于相关领域(如电机控制等)。
3、PC机上常见的通讯接口是通用RS232串口,这种接口的优点是通用,几乎所有的PC和嵌入式芯片上都具备通用串行接口;RS232串口的缺点是传输速度不够快。其他的接口如CAN、以太网等传输速度可以很快,但是对PC或嵌入式芯片提出了较高的硬件要求。本发明硬件基于PC机上的串行接口,系统环境基于Windows操作系统,具备较强的通用性和兼容性。
4、本发明规定了一种可实现至多4路波形同时采集、显示与分析的串口信息通讯方法。嵌入式控制器按照这种方法能以串行方式发送一至四路波形数据,系统自动识别发送波形的数目并分别进行处理、保存和显示。
5、针对电机控制算法调试的典型应用,本发明采用多线程技术,波形采集显示和数据分析处理并行运行,互不干扰,最大限度保证用户指令能及时正确执行。常见的PC串口调试工具只为了对串口收发功能进行验证,功能简单,几乎没有使用多线程处理技术。
6、本发明由于同时具备波形采集显示和数据分析处理两个可以并行的大型功能模块,因此采用多线程技术是合理而高效的。效果就是可以以115200波特率连续接收并显示4路波形,而其它常见的串口调试助手在此情况下很快失去响应。
7、本发明针对波形采集显示系统的复杂性,采用状态机形式编写,程序逻辑清晰,架构合理,功能上具备较强的扩展性,并且结构相对简单,便于实际应用。
8、本发明采用队列技术存储波形数据,用户可自定义队列长度,队列满时程序自动将队列最前端元素删除,在波形数据的实时性、稳定性和保存数据大小等要素之间寻求了平衡点;
以前采用的多为缓存区满则直接清空从头开始保存的方法。因为如果不需要实时显示波形,就没必要采用队列的概念。队列本身是先进先出的,换句话说,队列中总是保存最近收到的最新数据,删除的是最老的数据,这就保证了波形显示的实时性。这也是为什么本发明需要用到队列技术的原因。
9、本发明保证程序运行的连续性和稳定性,为防止如用户设定保存过多的波形数据,系统处理速度跟不上导致串口缓存溢出错误,本发明应用串口缓存防溢出技术,用户可自定义缓存大小,当缓存即将溢出时,程序自动清空缓存,以丢失部分数据的代价保证波形的连续读取与实时显示。如要避免丢失数据,可通过降低串口波特率或限制保存的历史数据长度来实现。
对串口操作使用的是编程环境所提供的API函数,可以实现自定义缓存和清空缓存的操作,但是无法实现队列技术,因此一旦出现缓存清空操作就会丢失数据,因此为保证实时性,最好避免出现清空缓存的情况,可以通过降低发送速率或限制保存波形数据的队列长度(减少系统处理延时)来实现。大多数PC串口调试助手不具备自定义串口缓存的功能。
10、本发明所含数据分析和处理部分频谱分析功能可选择多种窗函数。为适应多种滤波需求,数字滤波同时包含了有限冲激响应滤波(FIR)和无限冲激响应滤波(IIR)两种方式,两种方式也支持多种算法和参数设置。用户可选低通、高通、带通、带阻四种模式。
两种滤波算法各有优缺点,而多种窗函数针对不同的波形、不同的滤波要求也是各有长处,因此这里给用户提供多种选择,通过比较各种函数频谱分析和滤波的实际效果,可以获得最好的结果。
11、综合考虑上述情况,选择通用串口作为通讯接口。对于通用串行RS232接口,其发送每个字节数据的最高速率约为10kHz,为保证接收与显示的同步进行,软件系统对波形每个字节数据的处理速率应大于10kHz。针对上述应用,上位PC机上需要一套软件系统,通过通用串行接口读取下位机传送的多路波形数据,经过处理后将波形分路显示在PC屏幕上。综上所述,这套软件系统有必要包含频谱分析和数字滤波功能。除了上述典型应用场景,本软件系统还可应用于其它领域。例如,通过串口自发自收,可以脱离下位机,应用本软件系统对任意波形数据进行分析处理。因此本系统还可以作为一套独立的数据分析处理工具。
附图说明
图1是本发明系统硬件架构示意图。
图2是本发明系统整体框架示意图。
图3是本发明波形采集与显示部分状态机状态切换示意图。
具体实施方式
一种基于通用串口的波形采集显示和数据分析处理系统,包括波形采集与显示部分和数据分析与处理部分,本系统采用多线程架构,波形采集与显示部分通过从PC的RS232通用串行接口获取下位机上传的多路波形数据,经过处理之后用文本和波形图显示;于此同时,数据分析与处理部分进行波形数据采集和处理显示工作,显示波形的连续实时变化;
所述RS232通用串行接口的串口波特率小于或等于115200bps,自动识别和显示多路波形,同时处理1-4路波形;
所述RS232通用串行接口通讯过程为:RS232接口以字节为单位串行发送数据,每个字节数值范围为0x00 – 0xFF,下位机循环发送多路波形的每个时间节点数据,例如,发送a、b、c三路波形,假设其在时间节点i上的数据值分别为ai、bi和ci,那么下位机发送数据的顺序为…、ai、bi、ci、ai+1、bi+1、ci+1、…。为防止波形出现串混错误,在每两个时间节点的数据之间插入一个标志位,作为第一路波形数据的起始标志,定义这个标志位为0xFF;于是数据发送序列变为…、0xFF、ai、bi、ci、0xFF、ai+1、bi+1、ci+1、0xFF、…;由于0xFF被标志位占用,因此波形数据的有效数值范围为0x00 – 0xFE;波形数据应禁止出现0xFF数值;
所述发送方法为:
a、按时间节点顺序发送多路波形的节点数据,如…、0xFF、ai、bi、ci、0xFF、ai+1、bi+1、ci+1、0xFF、…;
b、以0xFF作为时间节点分割标志;
与之对应的接收方法具体为:
a、以0xFF作为时间节点检测标志
b、从当前接收到0xFF标志起,到下一个0xFF标志之间,第一个字节作为波形1数据,第二个字节作为波形2数据,第三个字节作为波形3数据,第四个字节作为波形4数据。
c、若两个标志位之间不足四个字节,则没有数据的波形不做处理;若两个标志位之间多于四个字节,第四个字节以后的字节直接忽略,保证良好的兼容性;
数据分析与处理部分将波形数据转换成表格形式,对任意一路波形通过快速傅里叶变换FFT进行频谱分析,通过有限冲激响应数字滤波器FIR或无限冲激响应数字滤波器IIR实现滤波,并显示滤波前后的波形和频谱图对比。
所述波形采集和显示部分包括硬件驱动模块、参数设置模块、数据读写模块、波形显示模块和错误处模块;硬件驱动模块驱动PC机的串口等硬件设备;参数设置模块设置串口相关参数,如波特率、端口号、缓存大小以及数据存储参数;数据读写模块与下位机通过串口进行数据交互,并将读取的多路波形数据分别保存;波形显示模块以层叠图和分格图两种方式分别将各路波形随时间的变化显示在屏幕上;错误处理模块分析系统运行中遇到的错误,根据错误弹出对话框提醒用户。
波形采集和显示部分为状态机架构,包括初始化、参数设置、数据读取、数据写入、关闭退出五个状态,上述状态之间通过用户输入指令或事件的发生进行相互跳转。
初始化状态是系统运行后进入的第一个状态,对各种变量和结构进行初始化赋值;参数设置状态获取用户设置的相关参数;数据读取状态通过硬件驱动从串口读取下位机传回的数据,并进行格式转换、分路保存和波形显示;数据写入状态通过硬件驱动将数据写入串口并发送至下位机;关闭退出状态进行程序退出前的后期处理,如关闭串口、释放缓存,完成后退出系统。
波形采集与显示部分的层叠图将1-4路波形同时显示在一个窗口,以对各路波形进行同步比对;分格图将各路波形在不同的窗口中显示,以分别观察每一路波形的状况与趋势。
波形采集显示和数据分析处理系统通过硬件驱动模块提供的API函数实现串口驱动的基本功能,包括串口参数设置、向串口写入字节数据、从串口读取字节数据,RS232串口为PC机自带的硬件设备。
波形采集与显示部分的串口缓存应用防溢出技术,用户自定义缓存大小,当数据保存队列过长,程序处理不及时导致缓存即将溢出时,程序自动清空串口缓存防止因缓存溢出造成的系统卡死,以丢失部分数据的代价保证波形的连续读取与实时显示。
波形数据的存储采用队列方式,自定义队列长度,在队列末端添加数据元素,如队列已满,则通过删除队列前端的元素使新元素入队;波形数据以用户自定义的长度存储在内存中,或导出保存在文件中。存储的目的在于,首先,数据分析处理功能(频谱分析和滤波)需要提取存储的历史数据。另外,除了显示波形,本发明还有一个文本框显示各路波形的节点具体数值,因此,存储一定长度的历史数据,可以方便用户导出,并运用别的工具(如Matlab)进行进一步分析处理。
数据分析和处理部分包括数据格式转换模块、波形提取模块、频谱分析模块、数字滤波模块;数据格式转换模块将波形数据转换为文本形式,并且用制表符分隔,导入excel进行后续处理;波形提取模块提取任意一路原始波形并显示在屏幕上;频谱分析模块通过设置的窗函数和波形采样率,对原始波形进行快速傅里叶变换(FFT),并将功率谱显示在屏幕上;数字滤波模块通过有限冲激响应(FIR)或无限冲激响应(IIR)数字滤波器对提取的原始波形进行数字滤波,并将滤波后的波形图及功率谱显示在屏幕上。
频谱分析采用快速傅里叶变换(FFT),使用矩形、汉明、汉宁窗、Blackman-Harris、三角、高斯函数;所述数字滤波器同时支持有限冲激响应滤波(FIR)和无限冲激响应滤波(IIR),两种滤波器都包含低通、高通、带通、带阻四种模式。
本系统只存在于上位机计算机1中,嵌入式控制器3只需要按前文所述方法发送数据即可。
波形采集与显示5中,硬件驱动7属于底层支持模块,提供驱动RS232串口的多种API函数,供参数设置8模块和数据读写9模块调用。
在参数设置8模块中,除了对串口参数进行设置,还通过用户自定义方式在内存中生成了波形数据存储队列16,该队列被多个模块调用,包括数据读写9模块,以及数据分析与处理6中的数据格式转换12模块和波形提取13模块。
数据读写9模块将从串口读出的原始数据以字节形式存储在波形数据存储队列16中,同时,该模块还将原始数据按设定的协议进行多路波形辨识,并将辨识后的多路波形数据发送至波形显示10模块实时显示。此外、以上各模块(7、8、9、10)在正常循环运行过程中都会保存错误信息,错误处理11模块会以轮询方式检查错误信息,当出现错误时,该模块中止系统运行并告知用户详细的错误代号。
队列数据分析与处理6调用波形采集与显示5生成并不断刷新的波形数据存储队列16,数据格式转换12模块将该队列保存的十六进制数据转换成十进制数据并分每路波形显示在屏幕文本框中。波形提取13模块将用户指定的某路波形数据从波形数据存储队列16中单独提取并将其保存在内存中。频谱分析14模块和数字滤波15模块分别调用这路波形数据进行进一步分析处理。
下面结合附图对本发明进行更为详细的描述。
如图1所示,本发明系统硬件架构包括运行Windows操作系统的计算机1作为上位机,各种嵌入式控制器3作为下位机,上下位机之间通过通用串行接口2进行通讯。本发明运行在上位机计算机1上。
如图2所示,本发明波形采集显示与数据分析处理系统4包括波形采集与显示5和数据分析与处理6两个部分。这两部分采用多线程技术,分属两个线程并行运行。
波形采集与显示5负责对通用串行接口2进行参数设置,通过此接口与下位机进行数据交互,获取并保存下位机传回的波形数据,对数据进行处理并将波形分路显示在计算机1屏幕上。
波形采集与显示5部分按功能可划分为硬件驱动7、参数设置8、数据读写9、波形显示10和错误处理11五个模块。硬件驱动7模块包含驱动通用串行接口2硬件相关的库文件;参数设置8模块设置通用串行接口的波特率、数据位、停止位等参数,另外还可设置波形数据存储队列16的长度;数据读写9模块通过通用串行接口2与嵌入式控制器3进行数据交互,将接收的波形数据按设定协议进行分路辨识,将辨识结果保存在内存中。另外,用户还可通过数据读写9模块向嵌入式控制器3发送简单的命令。波形显示10模块将分路辨识后的波形数据以层叠图或分格图的形式显示在屏幕上并实时刷新;错误处理11模块在程序出错后弹出对话框,告诉用户可能的错误信息。
数据分析与处理6负责对波形数据格式转换成表格形式、提取任意一路已保存波形数据,并通过多种方法对其进行频谱分析和数字滤波。
数据分析与处理6包含数据格式转换12、波形提取13、频谱分析14和数字滤波15四个功能模块。其中,数据格式转换12模块将波形数据存储队列16中保存的十六进制数据转换成十进制数据,并按每一路波形分别显示在屏幕文本框中。波形提取13模块允许用户从波形数据存储队列16中单独提取出任意一路波形数据;频谱分析14模块对用户选择提取的单路波形数据进行快速傅里叶变换,得到功率谱图并显示在屏幕上;数字滤波15模块对用户选择提取的单路波形数据进行数字滤波,多种滤波方式可选,并将滤波后的波形和功率谱显示在屏幕上,与滤波前的原始波形及功率谱进行对比。
波形采集与显示5部分按状态机架构编写,状态机所含状态及各个状态之间的跳转关系如图3所示。状态机一共包含五个状态,分别是初始化17、数据读取18、参数设置19、数据写入20以及关闭退出21。其中,初始化17状态是系统运行后进入的第一个状态,对各种变量和结构进行初始化赋值;参数设置19状态获取用户设置的相关参数;数据读取18状态通过硬件驱动从串口读取下位机传回的数据,并进行格式转换、分路保存和波形显示;数据写入20状态通过硬件驱动将数据写入串口并发送至下位机;关闭退出21状态进行程序退出前的后期处理(如关闭串口、释放缓存),完成后退出系统。
各个状态之间通过相应的事件消息进行跳转。无指令输入表示没有任何事件消息发生时将会进行的状态跳转。
系统进入初始化17状态之后将会自动进入参数设置19状态。
在参数设置19状态下,若无任何事件发生,系统保持在本状态中;若用户点击“退出”按钮,则跳转至关闭退出21状态;若用户点击“打开串口”按钮,则跳转至数据读取18状态。
在数据读取18状态下,若无任何事件发生,系统保持在本状态中;若用户点击“退出”按钮,则跳转至关闭退出21状态;若用户点击“关闭串口”按钮,则跳转至参数设置19状态。若用户点击“写入串口”按钮,则跳转至数据写入20状态。
在数据写入20状态下,若无任何事件发生,系统自动跳转至数据读取18状态;若用户点击“退出”按钮,则跳转至关闭退出21状态;
进入关闭退出21状态后,系统不再跳转,程序完成收尾工作后自动退出。
以上状态与状态跳转设置的合理性体现在,如用户参数设置错误或不合理,不必退出程序重开,只需关闭串口,修改设置再打开即可,使用更加方便。
尽管为说明目的公开了本发明的具体实施方式和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限具体实施方式和附图所公开的内容,本发明要求保护的范围以权利要求书所述内容为准。
信号采集显示并且进行处理分析的完整流程如下:
串口波特率设置为115200,数据位为8比特,停止位为1比特,无奇偶校验位。波形数据存储队列长度设为5000个字节,下位机按设定的数据发送协议从串口传回三路波形,波形1是幅值为128的直流信号,波形2是幅值为64的标准正弦信号,波形3在波形2的基础上叠加了幅值为16的三次谐波。
对波形3进行频谱分析和滤波处理。下位机发送波形节点的速率为1000Hz,一个波形周期包含400个点,因此基波频率为2.5Hz,三次谐波频率为7.5Hz。
Claims (10)
1.一种基于通用串口的波形采集显示和数据分析处理系统,包括波形采集与显示部分和数据分析与处理部分,其特征在于:本系统采用多线程架构,波形采集与显示部分通过从PC的RS232通用串行接口获取下位机上传的多路波形数据,经过处理之后用文本和波形图显示;于此同时,数据分析与处理部分进行波形数据采集和处理显示工作,显示波形的连续实时变化;
所述RS232通用串行接口的串口波特率小于或等于115200bps,自动识别和显示多路波形,同时处理1-4路波形;
所述RS232通用串行接口通讯过程为:RS232接口以字节为单位串行发送数据,每个字节数值范围为0x00 – 0xFF,下位机循环发送多路波形的每个时间节点数据,例如,发送a、b、c三路波形,假设其在时间节点i上的数据值分别为ai、bi和ci,那么下位机发送数据的顺序为…、ai、bi、ci、ai+1、bi+1、ci+1、…;
为防止波形出现串混错误,在每两个时间节点的数据之间插入一个标志位,作为第一路波形数据的起始标志,定义这个标志位为0xFF;于是数据发送序列变为…、0xFF、ai、bi、ci、0xFF、ai+1、bi+1、ci+1、0xFF、…;由于0xFF被标志位占用,因此波形数据的有效数值范围为0x00 – 0xFE;波形数据应禁止出现0xFF数值;
所述发送方法为:
a、按时间节点顺序发送多路波形的节点数据,如…、0xFF、ai、bi、ci、0xFF、ai+1、bi+1、ci+1、0xFF、…;
b、以0xFF作为时间节点分割标志;
与之对应的接收方法具体为:
a、以0xFF作为时间节点检测标志
b、从当前接收到0xFF标志起,到下一个0xFF标志之间,第一个字节作为波形1数据,第二个字节作为波形2数据,第三个字节作为波形3数据,第四个字节作为波形4数据;
c、若两个标志位之间不足四个字节,则没有数据的波形不做处理;若两个标志位之间多于四个字节,第四个字节以后的字节直接忽略,保证良好的兼容性;
数据分析与处理部分将波形数据转换成表格形式,对任意一路波形通过快速傅里叶变换FFT进行频谱分析,通过有限冲激响应数字滤波器FIR或无限冲激响应数字滤波器IIR实现滤波,并显示滤波前后的波形和频谱图对比。
2.根据权利要求1所述的一种基于通用串口的波形采集显示和数据分析处理系统,其特征在于:所述波形采集和显示部分包括硬件驱动模块、参数设置模块、数据读写模块、波形显示模块和错误处模块;硬件驱动模块驱动PC机的串口等硬件设备;参数设置模块设置串口相关参数,如波特率、端口号、缓存大小以及数据存储参数;数据读写模块与下位机通过串口进行数据交互,并将读取的多路波形数据分别保存;波形显示模块以层叠图和分格图两种方式分别将各路波形随时间的变化显示在屏幕上;错误处理模块分析系统运行中遇到的错误,根据错误弹出对话框提醒用户。
3.根据权利要求2所述的一种基于通用串口的波形采集显示和数据分析处理系统,其特征在于:所述波形采集和显示部分为状态机架构,包括初始化、参数设置、数据读取、数据写入、关闭退出五个状态,上述状态之间通过用户输入指令或事件的发生进行相互跳转。
4.根据权利要求3所述的一种基于通用串口的波形采集显示和数据分析处理系统,其特征在于:所述初始化状态是系统运行后进入的第一个状态,对各种变量和结构进行初始化赋值;参数设置状态获取用户设置的相关参数;数据读取状态通过硬件驱动从串口读取下位机传回的数据,并进行格式转换、分路保存和波形显示;数据写入状态通过硬件驱动将数据写入串口并发送至下位机;关闭退出状态进行程序退出前的后期处理,如关闭串口、释放缓存,完成后退出系统。
5.根据权利要求4所述的一种基于通用串口的波形采集显示和数据分析处理系统,其特征在于:所述波形采集与显示部分的层叠图将1-4路波形同时显示在一个窗口,以对各路波形进行同步比对;分格图将各路波形在不同的窗口中显示,以分别观察每一路波形的状况与趋势。
6.根据权利要求5所述的一种基于通用串口的波形采集显示和数据分析处理系统,其特征在于:波形采集显示和数据分析处理系统通过硬件驱动模块提供的API函数实现串口驱动的基本功能,包括串口参数设置、向串口写入字节数据、从串口读取字节数据,RS232串口为PC机自带的硬件设备。
7.根据权利要求6所述的一种基于通用串口的波形采集显示和数据分析处理系统,其特征在于:所述波形采集与显示部分的串口缓存应用防溢出技术,用户自定义缓存大小,当数据保存队列过长,程序处理不及时导致缓存即将溢出时,程序自动清空串口缓存防止因缓存溢出造成的系统卡死,以丢失部分数据的代价保证波形的连续读取与实时显示。
8.根据权利要求7所述的一种基于通用串口的波形采集显示和数据分析处理系统,其特征在于:所述波形数据的存储采用队列方式,自定义队列长度,在队列末端添加数据元素,如队列已满,则通过删除队列前端的元素使新元素入队;波形数据以用户自定义的长度存储在内存中,或导出保存在文件中。
9.根据权利要求1所述的一种基于通用串口的波形采集显示和数据分析处理系统,其特征在于:所述数据分析和处理部分包括数据格式转换模块、波形提取模块、频谱分析模块、数字滤波模块;数据格式转换模块将波形数据转换为文本形式,并且用制表符分隔,导入excel进行后续处理;波形提取模块提取任意一路原始波形并显示在屏幕上;频谱分析模块通过设置的窗函数和波形采样率,对原始波形进行快速傅里叶变换,并将功率谱显示在屏幕上;数字滤波模块通过有限冲激响应或无限冲激响应数字滤波器对提取的原始波形进行数字滤波,并将滤波后的波形图及功率谱显示在屏幕上。
10.根据权利要求2所述的一种基于通用串口的波形采集显示和数据分析处理系统,其特征在于:所述频谱分析采用快速傅里叶变换,使用矩形、汉明、汉宁窗、Blackman-Harris、三角、高斯函数;所述数字滤波器同时支持有限冲激响应滤波和无限冲激响应滤波,两种滤波器都包含低通、高通、带通、带阻四种模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101855741A CN102722150A (zh) | 2012-06-07 | 2012-06-07 | 一种基于通用串口的多路波形采集显示和数据分析处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101855741A CN102722150A (zh) | 2012-06-07 | 2012-06-07 | 一种基于通用串口的多路波形采集显示和数据分析处理系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102722150A true CN102722150A (zh) | 2012-10-10 |
Family
ID=46947951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101855741A Pending CN102722150A (zh) | 2012-06-07 | 2012-06-07 | 一种基于通用串口的多路波形采集显示和数据分析处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102722150A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103148882A (zh) * | 2013-01-09 | 2013-06-12 | 华东理工大学 | 一种物理参量测量值的复合指示方法 |
CN104615528A (zh) * | 2015-02-09 | 2015-05-13 | 兰州理工大学 | 一种智能手机传感器数据在线采集与实时处理方法 |
CN104616467A (zh) * | 2014-11-12 | 2015-05-13 | 江苏大学 | 一种电动汽车制动能量回收系统数据采集方法 |
CN104836639A (zh) * | 2015-04-02 | 2015-08-12 | 中国科学院信息工程研究所 | 一种可传输多种算法参数的数据传输方法 |
CN105511360A (zh) * | 2016-01-08 | 2016-04-20 | 东华大学 | 基于上位机的直流电机控制优化系统 |
CN108427026A (zh) * | 2018-03-22 | 2018-08-21 | 西安天箭防务科技有限公司 | 一种通用信号波形采集设备 |
CN108627718A (zh) * | 2017-03-23 | 2018-10-09 | 罗德施瓦兹两合股份有限公司 | 测试和测量设备和操作方法 |
CN111104361A (zh) * | 2019-12-03 | 2020-05-05 | 日立楼宇技术(广州)有限公司 | 串口的端口号查询方法、装置、计算机设备和存储介质 |
CN111193264A (zh) * | 2019-11-08 | 2020-05-22 | 浙江晟泰电气有限公司 | 一种电能质量治理综合控制方法 |
CN111711485A (zh) * | 2020-06-01 | 2020-09-25 | 深圳市南科信息科技有限公司 | 一种基于可见光通信的多帧数据融合解码算法 |
CN112202628A (zh) * | 2020-09-08 | 2021-01-08 | 杭州涂鸦信息技术有限公司 | 一种WiFi模块串口协议自动化测试系统及方法 |
CN113127119A (zh) * | 2021-03-31 | 2021-07-16 | 深圳市法拉第电驱动有限公司 | 上位机的数据显示分析系统及方法 |
CN113626187A (zh) * | 2021-07-31 | 2021-11-09 | 浙江省机电产品质量检测所有限公司 | 测量数据的处理方法及装置 |
WO2022267578A1 (zh) * | 2021-06-24 | 2022-12-29 | 广东泰坦智能动力有限公司 | 一种基于can通信的可重构化多线程并行上位机系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425224A (zh) * | 2007-10-30 | 2009-05-06 | 比亚迪股份有限公司 | 一种用于实时监测系统的数据采集方法 |
CN102393301A (zh) * | 2011-07-14 | 2012-03-28 | 华东理工大学 | 发动机柔性测试系统 |
CN102446209A (zh) * | 2011-10-18 | 2012-05-09 | 北京航空航天大学 | 一种海量时域数据读取与图形显示的方法 |
-
2012
- 2012-06-07 CN CN2012101855741A patent/CN102722150A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425224A (zh) * | 2007-10-30 | 2009-05-06 | 比亚迪股份有限公司 | 一种用于实时监测系统的数据采集方法 |
CN102393301A (zh) * | 2011-07-14 | 2012-03-28 | 华东理工大学 | 发动机柔性测试系统 |
CN102446209A (zh) * | 2011-10-18 | 2012-05-09 | 北京航空航天大学 | 一种海量时域数据读取与图形显示的方法 |
Non-Patent Citations (3)
Title |
---|
张鑫: "基于LabVIEW的阵列式传感器数据采集系统", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑2008年》, no. 8, 15 August 2008 (2008-08-15), pages 140 - 214 * |
徐华中等: "基于LabVIEW和DSP串口的多通道电机参数采集系统", 《电子测量技术》, vol. 34, no. 4, 30 April 2011 (2011-04-30), pages 66 - 69 * |
陈开容等: "基于LABVIEW的陶瓷砖压机多通道同步数据采集系统的设计", 《液压气动与密封》, no. 5, 31 May 2012 (2012-05-31) * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103148882A (zh) * | 2013-01-09 | 2013-06-12 | 华东理工大学 | 一种物理参量测量值的复合指示方法 |
CN103148882B (zh) * | 2013-01-09 | 2018-01-09 | 华东理工大学 | 一种物理参量测量值的复合指示方法 |
CN104616467A (zh) * | 2014-11-12 | 2015-05-13 | 江苏大学 | 一种电动汽车制动能量回收系统数据采集方法 |
CN104616467B (zh) * | 2014-11-12 | 2018-04-03 | 江苏大学 | 一种电动汽车制动能量回收系统数据采集方法 |
CN104615528A (zh) * | 2015-02-09 | 2015-05-13 | 兰州理工大学 | 一种智能手机传感器数据在线采集与实时处理方法 |
CN104615528B (zh) * | 2015-02-09 | 2018-03-09 | 兰州理工大学 | 一种智能手机传感器数据在线采集与实时处理方法 |
CN104836639A (zh) * | 2015-04-02 | 2015-08-12 | 中国科学院信息工程研究所 | 一种可传输多种算法参数的数据传输方法 |
CN104836639B (zh) * | 2015-04-02 | 2018-04-27 | 中国科学院信息工程研究所 | 一种可传输多种算法参数的数据传输方法 |
CN105511360A (zh) * | 2016-01-08 | 2016-04-20 | 东华大学 | 基于上位机的直流电机控制优化系统 |
CN108627718A (zh) * | 2017-03-23 | 2018-10-09 | 罗德施瓦兹两合股份有限公司 | 测试和测量设备和操作方法 |
CN108627718B (zh) * | 2017-03-23 | 2022-08-26 | 罗德施瓦兹两合股份有限公司 | 测试和测量设备和操作方法 |
CN108427026A (zh) * | 2018-03-22 | 2018-08-21 | 西安天箭防务科技有限公司 | 一种通用信号波形采集设备 |
CN111193264A (zh) * | 2019-11-08 | 2020-05-22 | 浙江晟泰电气有限公司 | 一种电能质量治理综合控制方法 |
CN111193264B (zh) * | 2019-11-08 | 2021-10-08 | 浙江晟泰电气有限公司 | 一种电能质量治理综合控制方法 |
CN111104361A (zh) * | 2019-12-03 | 2020-05-05 | 日立楼宇技术(广州)有限公司 | 串口的端口号查询方法、装置、计算机设备和存储介质 |
CN111104361B (zh) * | 2019-12-03 | 2021-07-06 | 日立楼宇技术(广州)有限公司 | 串口的端口号查询方法、装置、计算机设备和存储介质 |
CN111711485A (zh) * | 2020-06-01 | 2020-09-25 | 深圳市南科信息科技有限公司 | 一种基于可见光通信的多帧数据融合解码算法 |
CN112202628A (zh) * | 2020-09-08 | 2021-01-08 | 杭州涂鸦信息技术有限公司 | 一种WiFi模块串口协议自动化测试系统及方法 |
CN113127119A (zh) * | 2021-03-31 | 2021-07-16 | 深圳市法拉第电驱动有限公司 | 上位机的数据显示分析系统及方法 |
WO2022267578A1 (zh) * | 2021-06-24 | 2022-12-29 | 广东泰坦智能动力有限公司 | 一种基于can通信的可重构化多线程并行上位机系统 |
CN113626187A (zh) * | 2021-07-31 | 2021-11-09 | 浙江省机电产品质量检测所有限公司 | 测量数据的处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102722150A (zh) | 一种基于通用串口的多路波形采集显示和数据分析处理系统 | |
CN104483011B (zh) | 一种旋转机械多通道振动信号的在线检测与分析系统及方法 | |
CN103995764B (zh) | 一种具有串行总线协议连续触发功能的逻辑分析仪 | |
CN108009065B (zh) | 监控axi总线的方法和装置 | |
CN108304299A (zh) | 服务器上电状态监测系统及方法、计算机存储器及设备 | |
CN102360329A (zh) | 总线监控与调试控制装置及进行总线监控与总线调试的方法 | |
CN110209607A (zh) | 一种多通道雷达中频数据采集回放系统 | |
CN112148515A (zh) | 一种故障定位方法、系统、装置、介质和设备 | |
EP2052324A2 (en) | Methods and products for determining and visualizin ic behaviour | |
CN107015896B (zh) | 一种嵌入式设备cpu及其外设状态实时监测方法、系统 | |
CN101751327B (zh) | 嵌入式处理器的跟踪调试方法 | |
CN103955419A (zh) | 具有串行总线协议在线实时检测分析功能的逻辑分析仪 | |
CN107809349A (zh) | 一种监测服务器信号波形的装置及方法 | |
CN103092119A (zh) | 一种基于fpga的总线状态监视系统和方法 | |
CN103631689B (zh) | 数据采集装置、在线仿真调试系统及方法 | |
CN103592599A (zh) | 基于usb逻辑分析仪触发装置 | |
WO2012026958A1 (en) | Real-time usb class level decoding | |
CN103853680A (zh) | 总线信号监测装置及方法 | |
CN105242603B (zh) | 一种具有usb otg接口的电力采集终端及其调试升级方法 | |
CN202267954U (zh) | 总线监控与调试控制装置 | |
CN201765279U (zh) | 一种基于tft-lcd显示电力质量分析仪表 | |
CN103809000A (zh) | 基于伺服驱动单元的数据处理方法 | |
CN100498732C (zh) | 通用串行总线装置的测试系统及其方法 | |
CN105183954A (zh) | 一种基于pxi的串行总线健康监测平台 | |
Xuehua et al. | The solution of hybrid electric vehicle information system by modbus protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20121010 |