- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
一种多通道实时数据采集监控系统设计与实现
引言
随着工业自动化与信息化的不断发展。数据采集已经成为了计算机与外部物理世界连接的桥梁。数据采集系统广泛地应用于工业生产中设备工作状况的监测、控制领域中的闭环控制系统及仿真领域的半实物仿真系统。
传统的数据采集装置通常由单片机及采集卡组成。其采集通道数较少、单任务的软件结构及实时性差等不足之处已无法满足人们的需求。ARM(Advanced RISC Machines)是基于RSIC架构的数据宽为32位可嵌入操作系统的微处理器。由于其体积小、价格低、可靠性高、低功耗等特点在工业自动化、国防、运输等领域得到了广泛的应用。
本文设计并实现了基于ARM的多通道实时数据采集监控系统,能够保证采集过程中数据的可靠性及实时性,并通过计算机软件对数据进行监控显示,整个系统实现了数据采集、模拟量的输出及数据存储功能。
1 系统工作原理
如图1所示,数据采集监控系统包括上位计算机及下位机系统。下位机由ARM工控开发平台,数据采集板、模拟量输出板、LCD液晶显示屏及SD存储卡组成,使用μC/OSⅡ实时多任务操作系统,对任务进行调度与管理,实现数据采集板对外界模拟量的多通道采集功能,将数据存储于SD卡,并通过USB或以太网传送至上位计算机;在上位机的控制下,下位机接收模拟最输出指令,完成模拟量输出功能;LCD液晶显示屏用于显示下位机的工作状态信息。
图1 数据采集监控系统组成图
上位计算机通过USB或以太网与下位机进行通讯,接收下位机的采集数据进行实时监控,图形化显示数据变化曲线,并可对模拟量输出进行设置,从而控制下位机模拟量输出功能。
2 下位机硬件组成
根据系统的工作原理,采用周立功公司的Smart 2400ARM7工控开发板,其ARM为LPC2478,开发板内嵌μC/OSⅡ实时多任务操作系统,集成10/1OOM以太网PHY芯片、以太网接口、USB接口、98KB SRAM、SD卡插槽、STN和TFT液晶接口、512KB Flash及MiniI SA总线,通过MiniI SA总线可以直接挂载不同功能的扩展板。开发板组成如图2所示。
图2 开发板组成示意图
图2 开发板组成示意图使用周立功公司的MiniISA-8208BT数据采集板及MiniISA8204CT模拟量输出板,均基于MiniISA总线结构,通过总线与工控开发平台进行通讯。MiniISA8208BT 为12位的A/D转换设备,包含8路差分或者16路单端隔离模拟信号输入;MiniISA8204CT是4通道12位的模拟量输出板,这两款扩展板的性能指标均符合系统的需要。
3 软件设计
将软件系统分成下位机软件及上位机监控软件分别进行设计。
3.1下位机软件设计
下位机采用μC/OSⅡ实时多任务操作系统,μC/OSⅡ是一个源码公开、可移植、可固化、可裁剪、抢占式的实时多任务操作系统,完全基于优先级来管理任务,总是使处于就绪态的优先级最高的任务运行。不支持时间片轮转调度,所以必须按照任务的重要性和实时性要求程度,将系统功能合理的分解为若干不同优先级的任务,任务及优先级划分的合理性将直接影响软件设计的质量。
对系统功能进行任务划分时,首先要使所有任务满足实时性要求,即使在最坏的情况下,系统中所有对实时性有要求的功能都能够正常实现;并且任务数目要合理,简化软件系统以降低对资源的需求。根据数据采集监控系统的工作原理及任务划分的原则,将下位机系统任务划分为USB通讯任务、以太网通讯任务、SD卡写数据文件任务、数据采集任务、LCD液晶屏显示任务、模拟量输出任务。此外,赋予紧迫性、执行快捷性任务较高优先级,人机接口显示任务实时性要求低,赋予较低优先级。优先级划分如下所示。
①TASK1任务,优先级1,USB通讯任务;
②TASK2任务,优先级2,以太网通讯任务;
③TASK3任务,优先级3,SD卡写数据文件任务;
④TASK4任务,优先级4,数据采集任务;
⑤TASK5任务,优先级5,模拟量输出任务;
⑥TASK6任务,优先级6,LCD液晶屏显示任务。
下位机软件系统中,任务间的通讯主要是通过消息邮箱来完成的。消息邮箱是用来在任务之间或中断与任务之间传递一个指针,以便任务可以通过指针发送和接收任意类型的数据。定义3个消息邮箱,消息邮箱1用于数据采集任务向通讯发送任务传递数据;消息邮箱2用于通讯接收任务与模拟量输出任务之间的通信;消息邮箱3用于数据采集任务向SD卡写数据文件任务发送数据。如以下程序语句所示,使用消息邮箱必须先定义消息邮箱指针,再创建消息邮箱,最后等待其它任务发送邮箱或者发送邮箱至其它任务。
OS_EVENT*mbox;//定义消息邮箱指针
mbox=OSMboxCreate(NULL);//创建消息邮箱
OSMboxPend(mbox,0,&err);//等待消息邮箱数据
OSMboxPost(mbox,Buf);//发送消息邮箱,数据为缓冲区Buf中数据
应用程序运行时,首先调用OSInit()初始化μC/OSⅡ,接着通过调用OSTaskCreate()依次创建任务,随后执行OSStart()启动多任务环境,从而进行多任务管理调度。下位机程序模块及流程如图3所示。
图3 下位机程序模块及流程图
图3下位机程序模块及流程图数据采集任务中,板卡初始化完成后,使用定时器周期定时启动采集功能,以查询方式读取各个采集端口的数据,并且进行算术平均滤波处理,连续读取5次采样值进行算术平均运算,然后通过消息邮箱将数据传递给通讯任务及SD卡写数据文件任务。
使用ADS1.2开发下位机应用程序,利用LPC2400系列专用工程模板,由于Smart2400开发板内嵌μC/OSⅡ操作系统,所以开发过程中不必进行移植操作系统工作,只需将μC/OSⅡ源文件加载到工程中,对程序所用到的源文件、驱动文件、头文件等进行相应的修改、加载,编译链接成功后,即可通过仿真器烧写至Flash中。
3.2上位机软件设计
上位机数据采集监控软件使用VC++6.0开发。当USB与以太网均连通时,使用USB进行通讯。主要实现以下几个功能:
①通过USB及以太网与下位机进行通讯;
②创建数据接收线程,通过通讯接口接收下位机采集的数据,实时显示于监控界面上,同时绘制数据变化曲线图;
③通过上位机软件设定相应的模拟量输出值,控制下位机进行模拟量输出工作;
④显示通讯接口的连接状态及下位机工作状况信息。上位机软件流程如图4所示。
图4 上位机软件流程图
4 实验验证
为了验证数据采集监控系统,将模拟量输出板的4个输出通道分别与数据采集板的采集通道1、2、3、4连接,使用上位机软件控制模拟量输出板输出模拟电压,初始值为1.5V,经过一段延迟时间后线性减少至1.0V,最终保持在1.0V,延迟时间由数据采集监控软件设置,设置为100s.下位机IP地址设为192 168 1.2, 上位机IP地址设为192 168 1.3,使两者位于同一局域网内。数据采集监控系统工作时,上位机软件运行情况如图5所示。
图5 数据采集监控软件运行界面
上位机软件"设置"按钮按下后,下位机模拟量输出板开始输出4通道模拟电压,输出值从1.5V经过100s线性减至1.0V,数据采集板采集模拟电压并将数据传送至上位机及储存至SD卡。上位机软件对采集数据进行实时监控,并绘制数据变化曲线。通过实验验证,此系统成功实现了数据采集监控功能,完成了数据的采集、监控、存储及模拟量的输出,系统运行过程中具有良好的实时性及稳定性。
5 结论
本文对基于ARM的多通道实时数据采集监控系统进行设计与实现。下位机采用μC/OSⅡ实时多任务操作系统,实现了数据的采集、存储及模拟量的输出,具有人机接口显示功能;上位机软件成功完成了对采集数据的实时监控显示及对模拟量输出的控制。整个系统具有精度高、运行稳定、实时性好、抗干扰能力强等特点,能够有效地应用于一般的系统监控和武器系统中。
作者:薛源 刘卫东 来源:《计算机测量与控制》
上一篇:网络演进促进基站天线小型化
下一篇:基于Wi-Fi技术在电信业务中的应用