科氏流量计串口调试系统设计与应用*
2016-08-31陈宝欣陈林军沈艳林刘鹏姜智译
陈宝欣,陈林军,沈艳林,刘鹏,姜智译
(1.后勤工程学院 后勤信息工程系,重庆401311;2.重庆通信学院;3.65113部队)
科氏流量计串口调试系统设计与应用*
陈宝欣1,陈林军1,沈艳林1,刘鹏2,姜智译3
(1.后勤工程学院 后勤信息工程系,重庆401311;2.重庆通信学院;3.65113部队)
为解决科氏流量计二次仪表软件调试开发过程中与上位机的通信问题,设计并实现了针对科氏流量计二次仪表的串口调试系统,包括系统的软硬件以及串口传输协议。主要功能包括串口配置、数据收发、数据显示以及二次仪表参数设置等。系统实验验证了本串口调试系统对科氏流量计二次仪表开发的有效性。
串口;RS-232;SCI;MATLAB GUI;F28335;TRSF3221E
引 言
科里奥利质量流量计(以下简称科氏流量计)可以直接测量高精度的质量流量。在科氏流量计二次仪表的设计过程中,串口通信是一个必不可少的功能,担负着与上位机通信的任务。同时,在二次仪表嵌入式软件的开发调试过程中,通过串口通信实时传输相关数据或参数并直观显示,有利于及时掌握程序运行状态,发现算法不足,以便及时修正。
传统的串口调试软件(如sscom、串口调试助手等),作为通用的串口调试工具,存在如下缺点:
① 数据显示类型单一,上述软件一般仅支持HEX字符和ASCII字符的显示,而不能显示浮点数;
② 数据显示界面简单,不能直观、动态地显示数据,并作相关处理;
针对上述缺点,本文设计并实现了针对科氏流量计二次仪表的串口调试系统,为二次仪表的开发、调试提供支持。
1 系统总体设计
图1 系统总体设计
本文设计的串口调试系统主要由3部分构成:系统硬件、系统软件和传输协议。总体设计如图1所示。系统硬件部分包括:二次仪表上的串口通信模块和上位机,其中上位机需要配有串口,否则需使用USB转RS-232串口转接线。系统软件包括二次仪表内采用C语言编写的程序和上位机采用MATLAB编写的程序。由于串口通信都是基于二进制传输的,因此需要相应的传输协议控制二次仪表和上位机的通信,以实现更复杂的通信。
2 系统实现
2.1系统硬件
本文二次仪表选用的是TI公司C28X系列32位浮点DSP控制器——TMS320F28335[1-2]。该芯片外设丰富,含有3个SCI串行通信接口[3]。SCI是一个双线异步串行端口,就像通常的UART,支持CPU和其他使用标准不归零格式(nRZ)的异步外围设备间的通信。由于上位机串口多采用基于RS-232的DB9接头,因此本设计通过SCI口接TRSF3221E,实现TTL电平到RS-232电平的转换,硬件电路如图2所示,只需要3根线即可实现全双工通信,即发送信号线、接收信号线和地线。TRSF3221E型RS-232收发器采用3~5.5 V供电,最大传输速率为1 Mb/s,同时该芯片具有自动断电功能,在没有通信的时候可断电降低功耗[4]。上位机此处不多做介绍,一般带有串口的PC即可。
图2 RS-232转换电路
2.2系统软件
图3 SCI中断服务程序流程图
系统软件包括两部分:二次仪表内C程序和上位机MATLAB程序。二次仪表内C程序的主要功能是流量计量、显示输出、串口通信等。串口通信程序通过SCI中断和主函数查询的方式实现指令的接收和处理。中断服务程序流程如图3所示。在主程序内定时查询接收帧标志位,当标志位置1时表示接收到完整的一帧,则转入帧处理程序,即根据传输协议处理帧内容,并做出相关操作。
上位机MATLAB程序的主要功能是串口配置、向二次仪表发送指令、接收处理数据、实时显示数据、保存数据以及仪表参数设置等。MATLAB的串口接口提供了一个对外围设备的直接访问,这个接口通过串口对象可实现串口通信和读写数据等功能。MATLAB通过以下指令建立和配置串口对象[5]:
1966年,荷兰著名数学家、数学教育家弗赖登塔尔(H. Freudenthal)任国际数学教育委员会主席时,建议单独为数学教育召开国际性大会.1969年在法国里昂召开了第一届国际数学教育大会,开始了ICME的历史.ICME每4年召开一次,与国际数学家大会错开两年召开.
Obj=serial(‘port’ , ‘PropertyName’ , Value);
为了可以实时显示数据,需要配置串口对象的回调函数(Callback Function)。当接收到数据后触发回调函数,在回调函数内根据传输协议处理数据,并实时显示。
软件界面设计如图4所示,主要包括显示区、串口配置区、显示设置区、指令发送区以及仪表参数设置等。
图4 界面设计
各区域功能如下:
① 显示区:实时绘制接收到的数据;
② 串口配置区:配置串口参数,主要是波特率、数据位、停止位、校验位、流控制、串口号等;
③ 显示设置区:选择要绘制显示的数据和设置缓存大小;
④ 指令发送区:直接发送指令控制二次仪表;
⑤ 仪表参数设置:打开二次仪表参数设置窗口,设置相关参数,如流量系数、零点等。
2.3传输协议
上位机的COM口一般为RS-232接口,这种接口作为一种异步通信的接口标准和总线标准,只规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等物理介质层和链路层的内容。要实现数据的双向访问和控制就需要编写相应的传输协议,因此本文设计了通用帧和数据帧两种传输帧格式用于实现二次仪表和上位机的通信。
通用帧的主要作用是封装指令和数据以及传输控制,二次仪表和上位机接收到完整一帧后根据内容作出相关操作。帧格式如下:
0123456…起始字节长度字节功能字节读写字节Byte0Byte1Byte2…
具体说明如下:
① 起始字节:标志着一帧的开始,设置为一固定值,如“0xAA”。
② 长度字节:当前帧的长度,以字节为单位。
③ 功能字节:当前帧的功能标识,用于标识二次仪表的不同参数和不同指令。
④ 读写字节:标识当前帧为读或写。
⑤ Byte:具体的参数或指令内容,最长为15字节。
实际软件调试时需要连续发送数据监控二次仪表运行,为了提高传输效率,采用如下所示简化的数据帧格式。
012345起始字节功能字节Byte0Byte1Byte2Byte3
每帧包含6个字节,首字节与指令帧相同,第二字节标识数据类型,如频率或相位差等,其余字节构成32位单精度浮点数。
3 系统实验
为验证设计的科氏流量计串口调试系统的有效性,对其进行了测试。实验方案如下:
① 打开MATLAB串口调试程序,设置波特率38 400 b/s,数据位8位,停止位1位,校验位“无”,流控制“无”,然后点击“打开串口”按钮;
② 二次仪表SCI配置同上,实时向上位机发送频率、幅值、相位差等测量信息;
③ 上位机通过“仪表参数设置”设置二次仪表参数或发送指令;
④ 关闭串口,保存数据。
图5 接收数据结果
接收数据结果如图5所示,可实时绘制频率、幅值、相位差和信号图形,并实时显示当前平均值等信息。
数据保存界面如图6所示,保存类型为Excel文件,默认文件名为当前系统时间。仪表参数设置如图7所示。
图6 数据保存
图7 仪表参数设置
结 语
本文设计并实现了一套科氏流量计串口调试系统,用于解决科氏流量计二次仪表开发调试过程中与上位机通信的问题。系统可实时传输相关数据、在线发送指令,以及设置二次仪表相关参数。本系统有利于在二次仪表的调试过程中掌握程序运行状态,并及发现算法不足,极大地方便了二次仪表的软件开发工作。
[1] Texas Instrument.TMS320C28x CPU and Instruction Set Reference Guide,2009.
[2] Texas Instrument.TMS320x28xx,28xxx DSP Peripheral Reference Guide,2011.
[3] Texas Instrument. TMS320x2833x,2823x Serial
Design and Application of CMF Serial Debugging System
Chen Baoxin1,Chen Linjun1,Shen Yanlin1,Liu Peng2,Jiang Zhiyi3
(1.Department of Information Engineering,Logistical Engineering University,Chongqing 401311,China;2.Chongqing Communication Institute;3.Unit 65113)
In order to solve the communication problem of traditional serial debugging software with the host computer of CMF secondary instrument,a CMF serial debugging system is designed and implemented,which includes the hardware,software and the serial transmission protocol.It can complete the functions such as the serial port configuration,data transceiver,data display and parameter setting of secondary instrument.The experiment results show the effectiveness of the serial debugging system for CMF secondary instrument development.
serial port;RS-232;SCI;MATLAB GUI;F28335;TRSF3221E
国家自然科学基金(频率估计的多段信号频谱融合法及应用基础,61271449);重庆市研究生科研创新项目(短时信号频率估计的相位匹配方法及其应用,CYB14100)。
TN919.6
A