提出了一种多功能配电监控器的设计原理图,该控制器采用ARM7作为中央处理芯片和少量外设来执行无功补偿控制器的功能。点介绍基于Keil的RTX多任务操作系统的软件设计,并解释如何使用RTX提供的Keil开发环境和系统功能来合理分配芯片资源,包括处理器时间,执行复杂的任务。行检查后,系统可以可靠地工作。功功率补偿Keil RTX多任务系统中图分类号:TP334文献标识码:A项目编号:1672-3791(2011)05(c)-0133-02目前,没有多少基于RTX操作系统的嵌入式应用程序。无功补偿领域,集成操作系统的应用主要适用于uCOS。如,在文献[1]中,RTX操作系统相对于ARM芯片的uCOS具有相当大的优势。

RTX操作系统是Keil为ARM芯片开发的实时操作系统,除了实时操作系统的一般优点外,还具有以下特点:(1)免费和开源代码, (2)灵活的任务调度:轮换,预防,协作时间片,(3)短暂中断时间,实时系统,(4)任务数量可无限制,每项任务优先级为254定义,(5)邮箱,信号量,互信答案和定时器可以无限多; (6)支持多线程和线程安全操作; (7)开发环境支持调试RTX内核; (8)开发环境支持基于对话框的系统配置。于设备的基本硬件结构的描述,本文档解释了如何应用RTX来执行多个软件功能的协调实现。件结构概述多功能配电监控器的主控芯片采用恩智浦LPC 2122,基于32/16位ARM7 TDMI-STM处理器微控制器,支持实时内置跟踪,具有32 KB,64 KB,51 KB内置高速闪存.128位宽存储器接口和独特的加速结构允许32位代码以最大时钟速率运行。格控制代码大小的应用程序可以使用16位Thumb模式将代码大小减少30%以上,同时将性能损失降至最低。料结构主要由以下元素组成(图1)。(1)AD转换。用LPC2132内置的10位AD将模拟电压和电流值转换为数字值。(2)按键输入。按钮连接到普通IO,软件通过轮询检测按钮更改。

(3)液晶输出。
过正常IO根据串行同步输出显示内容。(4)切换信号输出。规I / O以串行同步方式与HC595移位寄存器通信,并输出16个开关信号。(5)RS485通讯。过控制RS485隔离芯片实现半双工通信。(6)I2C接口的EEPROM。件任务分析软件必须执行的任务和功能如下。(1)获取电压和电流的数字电流。任务需要实时高性能的程序。确保正确绘制采样信号,必须确保每个采样点的时间间隔完全一致。(2)计算和分析每个循环的数量。括三相电压,三相相关计算,总RMS,基波RMS,谐波RMS和内容,功率,功率等。设计每个周期采样64个点,以满足国家标准中谐波监测精度的B级要求,这意味着可以计算25次谐波。于计算量很大,芯片的计算速度相对较高,计算必须在一个周期后的20 ms内完成。际上,许多其他任务还没有在20 ms内完成,这样计算必须在10毫秒内完成。(3)无功补偿的判断。功功率补偿具有较低的实时和速度要求,可以使用通过过滤任务2中的计算结果获得的稳定状态值来评估;它每1秒评估一次。
(4)治疗青春痘。过询问IO模式检测按钮,每20 ms检测一次。(5)液晶显示器。晶显示屏每1秒刷新一次。有必要,需要额外刷新,例如,如果按下按钮,则必须及时刷新LCD屏幕,并且在1秒后无法刷新。(6)串口通讯。口还需要快速接收和处理,因此采用中断方式接收和完成数据帧分析。到完整的正确帧后,处理通信帧的任务是启动并由上级计算机发送的命令完成。任务需要实时响应和低响应性。务优先顺序:就处理紧急程度而言,可以使用以下排序:采样→定期计算→密钥处理→串行通信→无功补偿决策→液晶显示。于RTX的软件实现从第三部分中的任务特征开始,并为RTX定义以下参数。(1)系统时钟的时钟设置为20 ms。于由软件定时触发的任务具有任务3,4和5,它们的时间间隔分别为1,20ms和1,并且20ms的最短时间可以满足时间要求。(2)任务数设置为5.任务1在中断中完成,RTX任务分配给其他任务以确保协调。(3)自定义堆栈的任务数量为3.任务2,3和6更复杂,可用的堆栈更多,使其适用于自定义大小的堆栈。然RTX是实时系统,但LPC2132芯片的IRQ中断阻断时间为3.1μs,导致采样误差为0.06°。此,任务1与其他任务不同:由于它满足实时和速度要求,因此无法使用IRQ中断或RTX作业管理功能。后,我们可以选择FIQ中断以确保采样周期内的零误差。然完成AD转换和FIQ中断中的数据传输会中断RTX系统的操作,但其他任务实时并不太重,而且要求很快,并且这些错误是可以接受的。使用的密钥系统的各种功能如下。(1)os_tsk_create,os_tsk_create_user。两个函数创建任务来自定义任务堆栈。于任务2和3很长,因此必须使用更多内存。用os_tsk_create_user自定义堆栈,而其他任务使用默认大小堆栈。开RTX堆栈溢出检测功能,当任务堆栈溢出时,程序可以访问系统错误管理器,很容易找到堆栈溢出情况,从而增加堆栈大小的任务对应或默认堆栈大小。(2)os_dly_wait。是延迟函数,以时钟滴答单位表示,但不能依赖它来执行特定的延迟,即使任务的优先级设置为最大值,也会有从-1到0的错误滴答时钟。功能用于按钮检测任务和LCD屏幕的刷新任务。两个精度时间不是太高,时钟误差是可以接受的。他短延迟,例如串行通信同步,看门狗超时等,直接由循环计数延迟实现,而时间延迟实现长延迟。确。(3)os_evt_wait_or,isr_evt_set。个功能是耦合应用,主要用于串行通信。I2C串行通信速度快,UART速度慢。果使用查询指示器方法等待通信结束,则会浪费大量CPU时间。别是,由于I2C通信用于与EEPROM通信,因此必须使用许多任务。此,您无法通过为低优先级方法设置任务来将处理器时间分配给其他任务。时,os_evt_wait_or函数用于将CPU时间转移到其他任务。行端口的发送和接收由中断终止。中断检测到已发送和接收所有数据时,将调用isr_evt_set函数以通知挂起的通信作业。(4)os_mut_wait,os_mut_release。多个任务使用同一设备时,两个函数相关联并用于避免冲突。I2C-EEPROM用于许多任务:关键任务是用于记录用户配置信息,切换任务用于记录切换记录和计算任务,历史统计。使用I2C总线之前,每个任务必须首先调用os_mut_wait函数以获取总线使用,然后调用os_mut_release释放总线,否则其他基于I2C总线的任务将保持等待状态。(5)os_evt_wait_or,os_evt_set。两个与LCD更新任务相关的功能。了在不到一秒钟内更新LCD屏幕外,按下按钮时必须立即刷新LCD屏幕。LCD刷新任务调用os_evt_wait_or函数以等待触发器执行。下按钮时,按钮任务调用os_evt_set来触发LCD的更新。(6)os_tsk_prio。功能用于实时更改任务的优先级。功补偿控制器的功能主要用于以下情况:当串行协议通信必须处理大量数据并进行长期计算时,通信人员的优先级由最低者替换,以便在此期间执行其他任务,恒温阀芯但知道其他任务不会修改通信任务的执行条件和使用的全局变量。果使用全局变量,请确保在降低优先级之前保存这些全局变量。论从当前的开发过程可以清楚地看出,基于RTX多任务操作系统的多功能配电监控器的开发可以有效地简化开发过程:与每个程序段的耦合相比,显着降低了初始和最终开发,减少了程序的复杂性,提高了开发效率。
是多任务系统的结果。于RTX系统,Keil开发环境在整个开发过程中提供了明显的帮助:模拟环境可以观察每个任务的执行状态,便于系统参数的定义,如堆栈的大小,提高开发效率。
本文转载自
恒温阀芯 https://www.wisdom-thermostats.com
