基于C#的超声数据采集系统上位机软件设计
2017-12-01李鸣谦蓝若明翟光杰
李鸣谦,蓝若明,翟光杰
(1.中国科学院国家空间科学中心北京100190;2.中国科学院大学北京100049)
基于C#的超声数据采集系统上位机软件设计
李鸣谦1,2,蓝若明1,2,翟光杰1
(1.中国科学院国家空间科学中心北京100190;2.中国科学院大学北京100049)
基于提高超声数据采集系统的稳定性和数据采集效率的目的,利用C#语言编写上位机软件从而将数据通过CH375接口进行读取、转换、存储并实时显示。通过使用Visual Studio 2013.NET编程环境中Thread类联合CH375动态链接库,大大提高程序运行效率。测试结果表明,系统各项功能运行良好,界面友好,提高了数据采集效率,为今后类似的数据采集系统的研发和设计提供参考。
C#语言;USB接口;CH375;数据采集
传统的RS-232由于接口电路简单、编程容易,得到广泛运用,但其最大通信速度仅达到115.2 kb/s。随着超声技术的不断发展,采集的数据量也在不断的加大,这个速度不能满足高速数据通信的需求。而USB(通用串行总线)在速度上具有RS-232无法匹敌的优势,USB2.0达到480Mbits/s的传输速度,大有取代传统RS-232的趋势[1]。
针对实验室现有的超声换能器硬件电路,本文详细介绍了基于CH375芯片的USB接口与上位机(计算机)通信的设计方法和技巧。
采用C#语言编写上位机程序,实现上位机对超声换能器硬件电路的读写控制,并对采集数据进行转换、存储、绘图等处理。
1 通信原理介绍
1.1 CH375芯片简介
CH375是由南京沁恒有限公司生产的USB总线通用接口芯片。支持主机方式和设备方式,并可动态切换主机和设备方式。本文中对CH375的操作是采用命令加数据的I/O操作方式,任何操作都是由上位机软件先发命令给CH375,然后再执行数据输入输出。CH375接收到命令或数据后,以中断方式通知下位机[2-4]。中断处理流程如图1。
CH375在计算机端提供了应用层接口,是由CH375动态链接库DLL提供的面向功能应用的API。CH375动态链接库提供的API包括:设备管理API、数据传输API、中断处理API等。由于CH375DLL.DLL中API函数很多,本程序只用到了部分函数,主要介绍如下:
①CH375OpenDevice(UInt32 iIndex)。打开设备,返回句柄,出错则无效;iIndex指定CH375设备序号,0对应第一个设备。
② CH375ResetDevice(UInt32 iIndex)。 复 位USB设备。
③ CH375WriteData(UInt32 iIndex, byte[]iBuffer,UInt32[]ioLength)。写出数据块。
④ CH375ReadData(UInt32 iIndex, byte[]oBuffer,UInt32[]ioLength)。读取数据块。
⑤CH375QueryBufUpload(UInt32 iIndex)。查询内部上传缓冲区中的已有数据包个数,成功返回数据包个数,出错返回-1。
⑥ CH375CloseDevice(UInt32 iIndex)。 关 闭CH375设备。
图1 中断处理流程
1.2 FPGA与上位机之间的通信协议
上位机通过USB接口芯片CH375获取下位机采集的数据,主要通过现场可编程门阵列(FPGA)的控制来实现[5]。因此在上位机与FPGA中要事先约定好通信协议,让FPGA知道从上位机传来的哪些命令。
数据包的格式为:包头+包长+功能码+数据+校验和。
建立好通信协议后,当FPGA接收到从上位机发出的命令,则执行相应的操作,否则FPGA则一直处于等待状态;当接收到新的命令后,FPGA将中断当前操作,转而执行新的命令操作。
2 上位机软件设计
本系统上位机软件的任务是:通过CH375芯片与下位机进行通信,完成数据采集工作并对数据进行适当处理后,进行数据存储与显示。本上位机软件是在Windows 7操作系统下Visual Studio 2013.NET编程环境中使用C#语言编程完成,通过调用CH375制造商提供的设备方式下的标准驱动CH375WDM.INF和动态链接库:CH375DLL.DLL,通过加载驱动信息可以在应用程序中直接调用动态链接库[6-9]。
2.1 软件结构设计
上位机软件的主要功能结构图如图2所示。主要实现了如下功能。
图2 上位机软件结构图
1)设备管理。主要实现对下位机的控制操作。主要包括以下功能:
①设备打开。执行命令时,程序调用API函数CH375OpenDevice,用来对该设备进行进一步访问。
②设备复位。程序调用CH375ResetDevice函数实现对设备的复位,方便下一次操作;
③参数设定。向下位机写入数据,使下位机调整超声换能器工作参数。
④数据读取。数据读取是该软件中的重要部分,其算法的优劣决定了该软件的有效性及实用性。执行读取操作时,上位机软件向CH375发送读取命令,同时启动监听线程。CH375将该命令发送给下位机,下位机进行数据采集并发送上传请求。监听线程收到后,通知上位机收集数据[10-13]。
⑤设备关闭。当实验完成后,程序调用API函数CH375CloseDevice对设备进行关闭操作,方便下一次实验的进行。
2)数据管理。主要实现验证数据读取的正确性,存储数据并实时显示。该部分主要包含以下功能:
①数据处理。主要是数据转换和验证数据读取的正确性。数据转换是将以16进制浮点数形式传递的原始数据转换为10进制浮点数,便于对数据的查看和分析;在验证读取数据正确性的时候,直接判断整包校验和即可,若不正确则当错误帧处理。为了提高程序的执行效率以及便于程序的维护和开发,将校验和设置为双份,这样便不用整包检验,只需要对比双份校验和是否相等即可,有效地提高了程序的执行效率。
②数据存储。
③数据显示。由于C#绘图过于繁琐,所以上位机软件借助于TeeChart插件进行波形的绘制。
2.2 程序流程设计
由于Visual Studio 2013.NET集成了大量实用类库,本系统上位机软件进行编程时,可使用Thread类来进行多线程编程,轻松完成编程工作。部分核心代码如下:
为保证线程间的数据能正确传递,通常要采用全局变量;跨线程调用数据时,要采用委托的方法,避免多线程编程的复杂性破坏控件状态。
上位机程序流程如图3。
图3 上位机程序流程
3 运行效果及软件界面
本系统上位机软件经过长期运行,数据采集情况正常,能够正确读取下位机采集数据并按规定格式处理,拥有较好的数据采集效率,达到了设计预期的要求。软件界面效果图如图4。
图4 上位机软件界面
4 结 论
文中介绍了一种针对实验室现有的基于CH375和超声换能器FPGA电路的数据采集上位机软件设计方法,详细分析了上位机与下位机之间的通信原理,并讨论了上位机软件设计的关键技术。经过长期测试,本文所设计的上位机软件性能稳定、操作简便,较好的满足了数据采集系统对上位机软件的要求[14-17]。
[1]童洪洁,李宝华.USB上位机程序开发与设计[J].仪器仪表用户,2005,12(1):52-53.
[2]胡荣强,郝艳杰,唐盛.USB接口在数据采集系统中的应用[J].微计算机信息,2005,21(1):51-52.
[3]智兆华,张鹏.USB接口芯片CH375的原理及应用[J].今日电子,2005(8):74-75.
[4]汤剑灵,高玉.USB通信芯片CH375在数据交换中的应用[J].电子工程师,2007,33(10):61-63.
[5]蔡江洪,史小军,朱为,等.利用FT245BM实现FPGA与PC机的USB通讯[J].电子器件.2005,28(1):132-137.
[6]张立.C#程序设计编程经典[M].北京:清华大学出版社,2008.
[7]安荣,任勇峰,李圣昆.基于FPGA和USB2.0的数据采集系统[J].仪表技术与传感器,2009(3):49-51.
[8]李朋勃,张洪平.基于FPGA和USB2.0的高速数据采集系统[J].电子技术应用,2009(10):109-112.
[9]唐崇华.基于C#的数据采集组件的设计与实现[J].软件导刊,2013(2):103-105.
[10]韩梅,崔海全.基于C#液位数据采集与处理软件的设计[J].工业控制计算机,2012,25(11):6-8.
[11]梁佳,张帅.基于MSP430和C#的数据采集系统开发[J].电子科技,2011,24(10):115-118.
[12]甘亚鹏,方磊.基于C#的ADC数据采集上位机[J].计算机光盘软件与应用,2014(13):67-68.
[13]徐泰,刘庆华,申继鹏,等.基于C#的数据处理与分析的上位机软件设计[J].电脑编程技巧与维护,2015(5):19-21.
[14]高飞,汤志祥,李自强,等.智能数据采集与分析系统[J].仪表技术与传感器,2007(9):44-45.
[15]孟强,徐慧,万青苗.基于STM32的数据采集及显示系统的设计[J].电脑知识与技术,2013(5):3183-3186.
[16]李楠,宋晓梅,巩学芳.一种支持USB和以太网端口的数据采集器设计[J].西安工程大学学报,2014,28(5):593-597.
[17]王爱华.基于快速数据分组处理方法的改进研究[J].重庆师范大学学报:自然科学版,2015(4):113-117.
Design of the ultrasonic data acquisition system based on C#
LI Ming⁃qian1,2,LAN Ruo⁃ming1,2,ZHAI Guang⁃jie1
(1.National Space Science Center,Chinese Academy of Sciences,Beijing100190,China;2.University of Chinese Academy of Sciences,Beijing100049,China)
Based on the purpose of improving the efficiency of data acquisition and stability of ultrasonic data acquisition system,using the language of C#to write PC software to read the data through the inter⁃face CH375,and to transform,to store and to display the data.By using Visual Studio 2013.NET pro⁃gramming environment in the thread class combined CH375 dynamic link library,greatly improving the running efficiency of the program.Test results show that,the function of the system is running well,and improving the efficiency of data collecting provide a reference for future similar data acquisition system development and design.
C#language;USB interface;CH375;data acquisition
TN99
A
1674-6236(2017)22-0190-04
2016-01-12稿件编号:201601077
李鸣谦(1991—),男,安徽阜阳人,硕士研究生。研究方向:计算机技术。