当前位置:首页 > 测试测量 > 测试测量
[导读]引言  随着IT技术、电子技术、通信技术、以及自动控制技术的飞速发展,对工业现场数据的高速实时采集就成为电子产品和工业控制技术发展不可避免的一个环节。  本文针对高速实时多任务数据采集中的多任务实现算法

引言

  随着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内核以及相应的工作电路提供电源支持。

图1  数据采集系统硬件电路

  2  系统总体软件设计思路

  系统的软件设计原理如图2所示。12路采集信号经调制电路多路选择和ADC采样后进入各个采集任务内部通道。每一路采集通道都设计独立的数据采集、数据存储、数据处理以及数据提交任务。也就是说,每一路外部采集通道都对应一个独立的内部数据通道,而且本通道数据只在本通道内进行存储、处理和传递。各个内部数据通道任务之间只有在系统调度时执行时间上的先后关系、优先级关系,没有数据耦合关系。

图2  系统软件设计原理图

  命令扫描部分由独立的上位机和下位机扫描任务完成对上位机监视器和下位机触摸屏的实时监控,一旦检测到用户命令,立即将其发送给命令解析和处理任务,由该任务对用户命令进行分析处理。命令处理完后将提取的结果发送给用户要操作的采样通道,使之按照用户要求运行。

  各个频段的各个通道采集任务均设置两个数据缓冲区。双数据缓冲区为采样任务顺利存储提供了双重保证,使得采样工作一旦结束就有可用缓冲区,就可立即将数据存储而后进行下一次采集。也使得后续的数据处理任务减少数据等待时间,能迅速得到当前采样通道需要处理的数据,并在最短的时间内处理发送给下一级任务。

  采样、数据显示、命令扫描都涉及外围设备,是整个系统所有任务里面运行速度最慢的,针对采样任务设置双数据缓冲区可以很大幅度地改善由于采样速度慢而造成的系统速率下降问题,显示和命令扫描部分的优化设计将在下文中详细说明。

  3  内部软件调度算法

  系统内部各个频段命令如图3所示。命令扫描函数捕捉到用户命令后,对用户命令进行验证、分析、提取,而后将提取结果以广播的方式发送至各个频段的命令等待队列。该队列如得到新的命令,将用户命令发送给本队列下辖的各个采样任务函数,用户命令将立即得到执行,包括通道切换、变换采样周期、改变当前任务优先级、显示特定通道数据等。如没有得到新的命令,等待超时后采样任务按照原有方式继续工作。这也是一种智能化设计,以很简单的方式实现了按照用户命令随时对任何通道的查看、监督、操作、工作状态切换、通道切换、由单通道到所有通道并行实时采集切换等所有功能的任意切换。

图3  各个频段内部命令

  3.1  任务优先级设置及采样任务优先级动态调度

  μC/OSII操作系统是基于优先级的抢占式操作系统,所有任务必须有各自独立且唯一的优先级[1]。命令扫描和数据显示分别设置为最高优先级和最低优先级。扫描函数的最高优先级可以确保随时对用户命令进行响应,而显示任务由于其运行速速慢,将其设置为最低优先级。只要系统设计合理,适当避免低优先级任务的饥饿现象,即可实现将用户有效信息显示输出。

  内部优先级设置规则是,低频段、中频段、高频段3个频段的任务之间优先级依次递减。低频段的采样周期明显比高频段长,在低频段数据采集的空闲时间里系统可以顺利地将CPU使用权切换给其他任务,使其他任务得到CPU使用权并执行。每个频段内部的各个任务的优先级从采样到数据存储、数据处理、数据提交依次递减。

  为了使得整个系统实现优先级动态调度也可以修改其他采样参数,在软件设计时将所有频段采样任务的优先级、采样周期以全局变量的形式在进入操作系统之前进行设置,并将其定义为volatile格式分配独立的变量存储地址。而后设立独立的扫描任务,来专门完成这些参数的判断、修改、存储和动态更新。这样便使得系统除了可以按照根据采样周期设计的初始化优先级和初始化参数运行外,还可以依据用户自身需要对各个频段、各个通道的采样任务优先级以及采样频率进行设置和修改。修改完并确认后,修改任务会保存、更新当前系统工作参数并退出操作系统,而后重新启动并初始化,整个采集系统将按照全新的状态开始工作。当然,在这里用户优先级和采样周期设置是受限的,必须符合上文提及的优先级规则及各个频段对采样周期的要求。

 3.2  任务时限设置

  为了对整个系统的时间调度进行优化,首先说明几个内部工作时间。i386体系和Linux2.5内核中操作系统节拍率都设置为1000 Hz[2]。在这里将μC/OSII操作系统调度时间OS_TICKS_PER_SEC也设置为1000,也就是说操作系统的任务调度以ms为单位。ARM9内核CPU工作频率设置为400 MHz,即CPU机械周期以ns为单位。外设包括上位机命令扫描和上位机、下位机显示部分工作都以s为单位。μC/OSII系统中任务切换、调度及延时都以系统节拍率为单位,而内部代码的运行是以机械周期为单位。内部任务时限可以以节拍律为单位,也可以以实时时间为基准,获得一个绝对时间差。

  单个采样任务通道内部只有采样任务需要时限设置。为了达到智能化,用消息队列的等待延时替代了采样任务时限,而该延时便是本通道的采样周期。其他的后续任务包括内存开辟、数据处理、数据发送,都依次等待上一级任务消息,受上一级任务钳制不设置任务时限。显示任务时限按ms设置为绝对时间差。

  3.3  针对外设的时间优化

  针对命令扫描和解析任务,将其设置为中断方式,在检测到有用户命令输入时发生中断,在中断里对用户命令进行解析、分析、提取和处理。在中断下半部分对命令进行广播式发布,发布到各个采样任务函数使其立即刷新执行。因为用户工作方式改变,命令刷新频率并不高而且任务量不大,所以完全可以利用中断的快速处理来实现这种功能。

图4  显示任务工作原理图

  在处理完命令扫描和采样任务之后,影响整个系统性能的就剩下上位机和下位机显示部分了。显示任务工作原理如图4所示,利用μC/OSII系统提供的消息队列对显示部分进行改善。分别建立两个长度为16的消息队列和内存块链表,数据提交任务从空闲内存池中得到可用内存块之后将本任务要显示的数据存入该内存块,此时该内存就变成了带有数据的待显示数据块。而后将该内存块的地址以消息的形式注册在显示消息队列上。消息队列的长度设置为16,虽然这里只有12个任务会发送消息给消息队列,但在实时多任务程序中,各个任务的运行是随机的,消息队列在一段时间内得到的消息个数是个不定值,所以留出4个空位作为裕度。而且设置初始值为16的计数信号量来保护消息队列,数据提交任务在提交数据之前先检测该信号量,如该信号量有效就可以发送信号,如信号量无效则需等待,直到有可用信号位时方可将信号发出。在外部硬件操作端,由外部发送任务将消息队列中的消息按照固定速率发送到外部信号线上。

  这样设计,消息队列就相当于一个缓冲区,使得所有提交任务都可以向这个缓冲区发送待显示数据,有效地避免了多个任务争用一个外围设备而引起的死锁、竞争冒险等问题。同时减少了任务数量,减少了任务切换的次数,充分利用了系统时间,提高了系统性能。

  3.4  关键区保护

  多任务设计中每个任务在任何时刻都可能被其他任务打断,必须充分考虑代码的安全性、可重入性、可靠性、饥饿、互锁、死锁等情况。[3]

  为了避免上述情况,任务间消息发送和传递时以及在数据采样时对相应函数体进行关键区保护,在这些函数运行的时候禁止中断和任务调度,以保证数据传递和数据采样的绝对正确性和系统运行的绝对安全性。

  4  极限频率测定及总结

  上位机超级终端接收到的极限频率测试结果如图5所示。

图5  极限频率测量结果

  分别测试了高频段、中频段和低频段的极限频率,结果在CPU使用率80%~90%的情况下测定。该系统成功实现了智能化设计和优先级动态调度、系统参数动态设置等功能,达到了设计指标。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭