基于ARM9和μC/OSII的多频道数据采集系统的智能化设计
随着IT技术、电子技术、通信技术、以及自动控制技术的飞速发展,对工业现场数据的高速实时采集就成为电子产品和工业控制技术发展不可避免的一个环节。
本文针对高速实时多任务数据采集中的多任务实现算法以及实时性、实效性和高速性的要求,提出了基于ARM9和μC/OSII操作系统的智能化设计方案,实现了任务优先级动态调度、系统工作参数动态设定、系统内部软件智能化设计,针对低速外围设备进行了系统优化,并提高了系统可靠性改善了内部任务同步性。
1 整体电路设计
整个采集系统的硬件电路如图1所示。首先利用多路调制电路对12路信号进行调制,这部分包含相应的信号转换、抗干扰、以及初步的信号处理等,使得各路采集信号能够达到ARM9内核对信号采集的要求。经多路选择和ADC采样后进入ARM9内核。为了实现对整个系统工作状态的实时监视、实时控制和实时调节,设置了上位机监视器和现场显示触摸屏,将用户所有要求显示的信息在上位机显示输出或者在现场LCD同步显示输出。采样按照采样频段分为高频段(300~200 ksps)、中频段(200~100 ksps)、和低频段(小于100 ksps)3个频段,每个频段由4个外部采样通道组成。ARM9内核与上位机的通信利用UART和RS232转换电路来实现。系统工作电源由统一的电源供给,在实现电压转换后对PC机和ARM9内核以及相应的工作电路提供电源支持。
![](http://m.amcfsurvey.com/editerupload/fetch/20140120/218858_1_0.jpg)
图1数据采集系统硬件电路
2 系统总体软件设计思路
系统的软件设计原理如图2所示。12路采集信号经调制电路多路选择和ADC采样后进入各个采集任务内部通道。每一路采集通道都设计独立的数据采集、数据存储、数据处理以及数据提交任务。也就是说,每一路外部采集通道都对应一个独立的内部数据通道,而且本通道数据只在本通道内进行存储、处理和传递。各个内部数据通道任务之间只有在系统调度时执行时间上的先后关系、优先级关系,没有数据耦合关系。
图2 系统软件设计原理图
命令扫描部分由独立的上位机和下位机扫描任务完成对上位机监视器和下位机触摸屏的实时监控,一旦检测到用户命令,立即将其发送给命令解析和处理任务,由该任务对用户命令进行分析处理。命令处理完后将提取的结果发送给用户要操作的采样通道,使之按照用户要求运行。
各个频段的各个通道采集任务均设置两个数据缓冲区。双数据缓冲区为采样任务顺利存储提供了双重保证,使得采样工作一旦结束就有可用缓冲区,就可立即将数据存储而后进行下一次采集。也使得后续的数据处理任务减少数据等待时间,能迅速得到当前采样通道需要处理的数据,并在最短的时间内处理发送给下一级任务。
采样、数据显示、命令扫描都涉及外围设备,是整个系统所有任务里面运行速度最慢的,针对采样任务设置双数据缓冲区可以很大幅度地改善由于采样速度慢而造成的系统速率下降问题,显示和命令扫描部分的优化设计将在下文中详细说明。
3 内部软件调度算法
系统内部各个频段命令如图3所示。命令扫描函数捕捉到用户命令后,对用户命令进行验证、分析、提取,而后将提取结果以广播的方式发送至各个频段的命令等待队列。该队列如得到新的命令,将用户命令发送给本队列下辖的各个采样任务函数,用户命令将立即得到执行,包括通道切换、变换采样周期、改变当前任务优先级、显示特定通道数据等。如没有得到新的命令,等待超时后采样任务按照原有方式继续工作。这也是一种智能化设计,以很简单的方式实现了按照用户命令随时对任何通道的查看、监督、操作、工作状态切换、通道切换、由单通道到所有通道并行实时采集切换等所有功能的任意切换。
评论