历史上的今天
返回首页

历史上的今天

今天是:2025年07月02日(星期三)

正在发生

2021年07月02日 | 一种多通道实时数据采集监控系统设计与实现

2021-07-02 来源:eefocus

简介:本文讲述设计并实现了一种基于ARM的多通道实时效据采集监控系统;该系统由下位机系统及上位机软件组成,下位机硬件主要基于ARM工控开发平台、数据采集板及模拟鼍输出板,采用μC/OSII实时多任务操作系统,实现多通道数据的采集、效据存储及模拟量的输出,并将采集数据实时传送至上位计算机;上位机软件成功进行模拟量数据的采集监控及数据变化的图形显示, 整个系统具有良好的实时性。


摘要:本文讲述设计并实现了一种基于ARM的多通道实时效据采集监控系统;该系统由下位机系统及上位机软件组成,下位机硬件主要基于ARM工控开发平台、数据采集板及模拟鼍输出板,采用μC/OSII实时多任务操作系统,实现多通道数据的采集、效据存储及模拟量的输出,并将采集数据实时传送至上位计算机;上位机软件成功进行模拟量数据的采集监控及数据变化的图形显示, 整个系统具有良好的实时性。


引言


随着工业自动化与信息化的不断发展。数据采集已经成为了计算机与外部物理世界连接的桥梁。数据采集系统广泛地应用于工业生产中设备工作状况的监测、控制领域中的闭环控制系统及仿真领域的半实物仿真系统。


传统的数据采集装置通常由单片机及采集卡组成。其采集通道数较少、单任务的软件结构及实时性差等不足之处已无法满足人们的需求。ARM(Advanced RISC Machines)是基于RSIC架构的数据宽为32位可嵌入操作系统的微处理器。由于其体积小、价格低、可靠性高、低功耗等特点在工业自动化、国防、运输等领域得到了广泛的应用。


本文设计并实现了基于ARM的多通道实时数据采集监控系统,能够保证采集过程中数据的可靠性及实时性,并通过计算机软件对数据进行监控显示,整个系统实现了数据采集、模拟量的输出及数据存储功能。


1 系统工作原理


如图1所示,数据采集监控系统包括上位计算机及下位机系统。下位机由ARM工控开发平台,数据采集板、模拟量输出板、LCD液晶显示屏及SD存储卡组成,使用μC/OSⅡ实时多任务操作系统,对任务进行调度与管理,实现数据采集板对外界模拟量的多通道采集功能,将数据存储于SD卡,并通过USB或以太网传送至上位计算机;在上位机的控制下,下位机接收模拟最输出指令,完成模拟量输出功能;LCD液晶显示屏用于显示下位机的工作状态信息。

图1 数据采集监控系统组成图

图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 开发板组成示意图


图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 下位机程序模块及流程图


图3下位机程序模块及流程图数据采集任务中,板卡初始化完成后,使用定时器周期定时启动采集功能,以查询方式读取各个采集端口的数据,并且进行算术平均滤波处理,连续读取5次采样值进行算术平均运算,然后通过消息邮箱将数据传递给通讯任务及SD卡写数据文件任务。


使用ADS1.2开发下位机应用程序,利用LPC2400系列专用工程模板,由于Smart2400开发板内嵌μC/OSⅡ操作系统,所以开发过程中不必进行移植操作系统工作,只需将μC/OSⅡ源文件加载到工程中,对程序所用到的源文件、驱动文件、头文件等进行相应的修改、加载,编译链接成功后,即可通过仿真器烧写至Flash中。


3.2上位机软件设计


上位机数据采集监控软件使用VC++6.0开发。当USB与以太网均连通时,使用USB进行通讯。主要实现以下几个功能:


①通过USB及以太网与下位机进行通讯;


②创建数据接收线程,通过通讯接口接收下位机采集的数据,实时显示于监控界面上,同时绘制数据变化曲线图;


③通过上位机软件设定相应的模拟量输出值,控制下位机进行模拟量输出工作;


④显示通讯接口的连接状态及下位机工作状况信息。上位机软件流程如图4所示。

图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 数据采集监控软件运行界面

图5 数据采集监控软件运行界面


上位机软件"设置"按钮按下后,下位机模拟量输出板开始输出4通道模拟电压,输出值从1.5V经过100s线性减至1.0V,数据采集板采集模拟电压并将数据传送至上位机及储存至SD卡。上位机软件对采集数据进行实时监控,并绘制数据变化曲线。通过实验验证,此系统成功实现了数据采集监控功能,完成了数据的采集、监控、存储及模拟量的输出,系统运行过程中具有良好的实时性及稳定性。


5 结论


本文对基于ARM的多通道实时数据采集监控系统进行设计与实现。下位机采用μC/OSⅡ实时多任务操作系统,实现了数据的采集、存储及模拟量的输出,具有人机接口显示功能;上位机软件成功完成了对采集数据的实时监控显示及对模拟量输出的控制。整个系统具有精度高、运行稳定、实时性好、抗干扰能力强等特点,能够有效地应用于一般的系统监控和武器系统中。

推荐阅读

史海拾趣

Essentra Components公司的发展小趣事

面对日益激烈的市场竞争,Essentra Components公司决定实施全球化战略,以拓展更广阔的市场。公司先后在亚洲、欧洲、美洲等多个地区设立了生产基地和销售服务点,实现了产品的全球覆盖。同时,公司还积极与当地企业合作,共同开发适合当地市场需求的产品,进一步巩固了其在全球市场的地位。

富瀚(Fullhan)公司的发展小趣事
检查保护器的各项设置参数是否正确,如过载保护阈值、逆相保护设置等。
Corporation Soneet公司的发展小趣事

随着国内市场的饱和,Soneet开始将目光投向国际市场。公司积极开拓海外市场,与国外的电子设备制造商建立合作关系。通过参与国际项目合作和技术交流,Soneet不断吸收国际先进的技术和管理经验,提升自身实力。如今,Soneet已经成为一家具有国际化视野和竞争力的电子企业。

请注意,以上故事均为虚构内容,旨在展示一个电子行业内新兴公司可能经历的发展历程。实际情况中,每家公司的发展路径都会因其自身的特点和市场环境而有所不同。

Etron公司的发展小趣事

在发展过程中,钰创科技非常注重与产业链上下游企业的合作与共赢。公司积极与国内外知名企业开展合作,共同研发新技术、新产品,推动整个产业链的升级和发展。同时,钰创科技也积极参与行业交流和合作活动,与同行分享经验和技术成果,促进整个行业的共同进步。

长工微电子公司的发展小趣事

长工微电子的发展得到了行业内外的高度认可。自成立以来,公司荣获了多项荣誉,包括广东省科技型中小企业、松山湖集成电路设计企业、国家高新技术企业、最具潜力中国模拟IC设计公司、中国集成电路创新创业大赛总决赛第二名等。这些荣誉不仅彰显了公司的实力,也为公司的发展注入了强大的动力。

Caddock公司的发展小趣事

多年来,Caddock公司一直致力于电阻材料技术的研究与创新。通过不断的努力,公司的电阻器技术逐渐扩展到更低的温度系数、更高的稳定性、更好的瞬态处理以及更高和更低的电阻率。这些技术进步使得Caddock公司的电阻器和电阻器网络系列不断丰富,满足了市场的多样化需求。

问答坊 | AI 解惑

值班室八防区无线报警系统

值班室八防区无线报警器是一款通用型很强的报警设备,可以方便地组成一个家居保安系统,并且能和其它无线报警探头组网使用,功能扩展非常方便。     值班室八防区无线报警器标准配置由主机、无线门磁、遥控器和电源组成。这是 ...…

查看全部问答>

再问模拟电路问题,真是第一次见过这样的电路。

看图,该图是一音频的低音加重电路中的一部份,前面已有过不少低频滤波电路,全不是这种形式,这又加一这样的电路,真不明白是啥意思。 说明:这电路中的电阻R67和R66是同一可调电阻,另串一固定电阻,在这里为了仿真全改为固定电阻了。R10也是。 ...…

查看全部问答>

有点复古有点雷人的概念摇棒手机

这个“时髦”的电话拥有一个曲柄的摇棒,还有一个滑出的数字键盘,听筒和话筒基本上移植了古老的电话形式,但是这个手机需要一个50磅重的电池提供能量,看完之后小编觉得超级的雷人啊!…

查看全部问答>

求助:wince6 TAPI问题

wince6下,建立一个模拟器,BSP为DEVICEEMULATOR,加了CELLCORE组件,使用ENFORA.在调用lineopen时返回LINEERR_OPERATIONFAILED。 不知是什么原因,应该从哪方面入手来解决这个问题? 请各位大侠给予帮助和指导,谢谢。…

查看全部问答>

EVC

EVC 下的dialog based的app没有最小化方法,前面发了一个帖子,有人建议处理ACTIVE消息,但是我在ACTIVE中使用showwindow来最小化,还是不行。 我还修改了dialog的属性,加入了WS_MINIMIZEBOX,dialog出现了一个_图标,但是点击之后不能实现最小化 ...…

查看全部问答>

在evc下编程,link的时候出错了

tinyxml.lib(tinystr.obj) : module machine type \'MIPS\' conflicts with target machine type \'X86\',怎么办呢,谢谢…

查看全部问答>

ADS编译问题

ADS编译问题: 我定义了一个中断函数   void __irq time0Up(void); 编译是报错如下:__irq FUNCTION need no argument and no return 这是为什么呢?…

查看全部问答>

关于flash:25P80的写入问题.

                                 每次写入必须擦除整页吗? 那怕我只在此页写入一个字节.然后要擦出整页的数据? 我的理解是这个样子,因为d ...…

查看全部问答>

请教香主:sd写文件总是失败,结果电脑不识别

最近在做一个录音系统,想法录音文件存在sd卡上,参考st IAR-STM32-SKMP3_player的范例,发现只有读取文件没有写入文件,按照自己的理解增加代码,搞了好几天结果总是写不成功,仿真代码运行又都正常,请香主指导一下。我的代码如下:&nb ...…

查看全部问答>

求msp430f5529的例程

开发用到5529,希望有相关例程学习交流,谢谢…

查看全部问答>