科氏流量计串口调试系统设计与应用

为解决科氏流量计二次仪表软件调试开发过程中与上位机的通信问题 ,设计并实现了针对科氏流量计二次仪表的串口调试系统,包括系统的软硬件以及串口传输协议。主要功能包括串口配置、数据收发、数据显示以及二次仪表参数设置等。系统实验验证了本串口调试系统对科氏流量计二次仪表开发的有效性。

科里奥利质量流量计(以下简称科氏流量计)可以直接测量高精度的质量流量。在科氏流量计二次仪表的设计过程中,串口通信是一个必不可少的功能,担负着与上位机通信的任务。同时,在二次仪表嵌入式软件的开发调试过程中,通过串口通信实时传输相关数据或参数并直观显示,有利于及时掌握程序运行状态,发现算法不足,以便及时修正。

传统的串口调试软件(如sscom、串口调试助手等),作为通用的串口调试工具,存在如下缺点:

① 数据显示类型单一,上述软件一般仅支持 HEX字符和 ASCII字符的显示,而不能显示浮点数;

② 数据显示界面简单,不能直观、动态地显示数据,并作相关处理;

③ 不具有针对性,上述软件作为通用串口工具不能很好地与二次仪表通信、实现数据保存、参数在线设置等功能。

针对上述缺点,本文设计并实现了针对科氏流量计二次仪表的串口调试系统,为二次仪表的开发、调试提供支持。

1.系统总体设计

本文设计的串口调试系统主要由3部分构成:系统硬件、系统软件和传输协议。总体设计如图1 所示。系统硬件部分包括:二次仪表上的串口通信模块和上位机,其中上位机需要配有串口,否则需使用USB转 RS-232串口转接线。系统软件包括二次仪表内采用C语言编写的程序和上位机采用 MATLAB编写的程序。由于串口通信都是基于二进制传输的,因此需要相应的传输协议控制二次仪表和上位机的通信,以实现更复杂的通信。

总体1.jpg

.系统实现

2.1 系统硬件

本文二次仪表选用的是 TI公司 C28X 系列32位浮点 DSP 控制器———TMS320F28335。该芯片外设丰富,含有3个SCI串行通信接口。SCI是一个双线异步串行端口,就像通常的 UART,支持 CPU 和其他使用标准不归零格式(nRZ)的异步外围设备间的通信。由于上位机串口多采用基于RS-232的DB9接头,因此本设计通过SCI口接 TRSF3221E,实现 TTL电平到 RS-232电平的转换,硬件电路如图2所示,只需要3根线即可实现全双 信,即 线、接 线 线。

总体2.jpg

TRSF3221E型RS-232收发器采用3~5.5V 供电,***大传输速率为1Mb/s,同时该芯片具有自动断电功能,在没有通信的时候可断电降低功耗。上位机此处不多做介绍,一般带有串口的PC即可。

2.2 系统软件

系统 部分:二次仪表内  程序和上位 MATLAB  序。二次仪表内C程序的主要功能是流量计量、显示输出、串口通信等。串口通信程序通过SCI中断和主函数查询的方式实现指令的接收和处理。中断服务程序流程如图3所示。在主程序内定时查询接收帧标志位,当标志位置   图3 SCI中断服务程序流程图表示接收到完整的一帧,则转入帧处理程序,即根据传输协议处理帧内容,并做出相关操作。

总体3.jpg

上位机 MATLAB程序的主要功能是串口配置、向二次仪表发送指令、接收处理数据、实时显示数据、保存数据以及仪表参数设置等。MATLAB的串口接口提供了一个对外围设备的直接访问,这个接口通过串口对象可实现串口通信和读写数据等功能。MATLAB通过以下指令建立和配置串口对象

总体9.jpg

 为了可以实时显示数据,需要配置串口对象的回调函数(CalbackFunction)。当接收到数据后触发回调函数,在回调函数内根据传输协议处理数据,并实时显示。

软件界面设计如图4所示,主要包括显示区、串口配置区、显示设置区、指令发送区以及仪表参数设置等。

总体4.jpg

各区域功能如下:

① 显示区:实时绘制接收到的数据;

② 串口配置区:配置串口参数,主要是波特率、数据位、停止位、校验位、流控制、串口号等;

③ 显示设置区:选择要绘制显示的数据和设置缓存大小;

④ 指令发送区:直接发送指令控制二次仪表;

⑤ 仪表参数设置:打开二次仪表参数设置窗口,设置相关参数,如流量系数、零点等。

2.3 传输协议

上位机的COM 口一般为 RS-232接口,这种接口作为一种异步通信的接口标准和总线标准,只规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等物理介质层和链路层的内容。要实现数据的双向访问和控制就需要编写相应的传输协议,因此本文设计了通用帧和数据帧两种传输帧格式用于实现二次仪表和上位机的通信。

通用帧的主要作用是封装指令和数据以及传输控制,二次仪表和上位机接收到完整一帧后根据内容作出相关操作。帧格式如下:

总体5.jpg

具体说明如下:

① 起始字节:标志着一帧的开始,设置为一固定值,如0xAA

② 长度字节:当前帧的长度,以字节为单位。

③ 功能字节:当前帧的功能标识,用于标识二次仪表的不同参数和不同指令。

④ 读写字节:标识当前帧为读或写。

 

⑤ Byte:具体的参数或指令内容,***长为15字节。实际软件调试时需要连续发送数据监控二次仪表运行,为了提高传输效率,采用如下所示简化的数据帧格式。

总体6.jpg

每帧包含6个字节,首字节与指令帧相同,第二字节标识数据类型,如频率或相位差等,其余字节构成32位单精度浮点数。

.系统实验

为验证设计的科氏流量计串口调试系统的有效性,对其进行了测试。实验方案如下:

① 打开 MATLAB串口调试程序,设置波特率38400b/s,数据位8位,停止位1位,校验位,流控制,然后点击打开串口按钮;

② 二次仪表SCI配置同上,实时向上位机发送频率、幅值、相位差等测量信息;

③ 上位机通过仪表参数设置设置二次仪表参数或发送指令;

④ 关闭串口,保存数据。

接收数据结果如图5所示,可实时绘制频率、幅值、相位差和信号图形,并实时显示当前平均值等信息。

总体7.jpg

数据保存界面如图6所示,保存类型为 Excel文件,默认文件名为当前系统时间。仪表参数设置如图7所示

总体8.jpg

4.结语

本文设计并实现了一套科氏流量计串口调试系统,用于解决科氏流量计二次仪表开发调试过程中与上位机通信的问题。系统可实时传输相关数据、在线发送指令,以及设置二次仪表相关参数。本系统有利于在二次仪表的调试过程中掌握程序运行状态,并及发现算法不足,极大地方便了二次仪表的软件开发工作。

 

相关新闻

返回顶部
0517-8699 6066 欢迎来电咨询
Hello. Add your message here.