详解基于ARM的直流系统故障检测应用程序设计
1 ARM微处理器S3C44BOX
考虑到设计应用的需要,选用了三星公司的S3C44BOX微处理器。这是该公司一款基于ARM7TDMI的SOC芯片。它一方面具有ARM处理器低功耗、高性能的优点;又具有非常丰富的片上资源,非常适合嵌入式产品的开发。其特点如下:
·采用ARM7TDMI内核,I/O电压3.3V,内核电压2.5V;
·内置锁相环(PLL),系统主频最高达66MHz;
·4种工作模式,可以实现电源管理以降低系统功耗;
·8kB的系统高速缓存(CACHE),极大地提高了系统运行速度;
·支持8个MEMORY BANK,最大外部存储空间达256MB,并支持SDRAM;
·内置彩色LCD控制器;
·2路异步串口(UART);
·71个通用I/O口;
·8通路模/数转换器(ADC);
·实时时钟(RTC)和看门狗电路(WATCHDOG)。
2 直流系统接地故障检测装置总体结构
如图1所示,可以看出此检测装置主要分为两个部分:S3C44BOX主控单元及各种接口、信号采集及预处理单元。
此装置将实现以下功能:
(1)通常情况:此装置处于在线监视状态,通过采集现场信号并依据相关算法判断直流系统是否存在一点接地;
(2)直流系统发生一点接地:当发现直流系统存在一点接地时,并启动低频信号源,向电网中注入低频信号;
(3)依次对低频电压和各个支路电流信号进行同步采样;通过直流系统每个支路上的电流互感器检测出每个支路的电流信号。由多路开关依次选通每个支路,将相关信号经调理后进行采样,同步进行低频电压信号的采样,然后依次按照特定的基于小波变换的控制算法对采样数据进行处理,从而确定故障支路,将结果显示在LCD或是远程终端上以便于用户查看并及时排除该接地故障。
3 软件总体设计方案
对于一个开放的嵌入式系统而言,其程序存储器中一定要有系统的初始化代码。初始化在系统复位后自动完成。在系统的初始化中,必须包含如下的初始化代码:设置入口指针、设置中断向量表、初始化堆栈指针寄存器、初始化存储器系统、初始化I/O端口以及需要改变处理器的工作模式、初始化应用程序存储空间。之后,呼叫并开始执行应用程序。
μC/OS-Ⅱ是基于μC/OS的,μC/OS自1992年以来已经有好几百个商业应用。μC/OS-Ⅱ是为嵌入式应用而设计的,这就意味着,只要读者有固化手段(C编译、连接、下载和固化),μC/OS-Ⅱ可以嵌入到读者的产品中成为产品的一部分。可以只使用μC/OS-Ⅱ中应用程序需要的那些]系统服务。也就是说某产品可以只使用很少几个μC/OS-Ⅱ调用,而另一个产品则使用了几乎所有μC/OS-Ⅱ的功能。这样可以减少产品中的] μC/OS-Ⅱ所需的存储空间(RAM和ROM),这种可裁剪性是靠条件编译实现的。只要在用户的应用程序中(用#define constants 语句)定义哪些μC/OS-Ⅱ中的功能是应用程序需要的就可以了。程序和数据两部分的存储用量已被最大努力的压低了。μC/OS-Ⅱ可以管理64个任务,然而,目前这一版本保留8个给系统。应用程序最多可以有56个任务。赋予每个任务的优先级必须是不同的,这意味着μC/OS-Ⅱ不支持时间片轮转调度法(Round-robin Scheduling)。该调度法适用于调度优先级平等的任务。
μC/OS-Ⅱ提供的仅仅是一个任务调度内核,需要在其基础上扩展成实用的RTOS.根据该装置的功能要求,系统软件中需要实现相应的用户任务:a.监视;b.报警;c.启动低频信号源;d.低频电压采样,并计算其幅值和初始相位;e.选通各个支路并检测其电流信号,然后利用小波算法进行判断;f. 在LCD或远程终端上显示相关信息。其中任务e的具体流程如图2所示。
相对于相敏检波、载波相位等传统的检测方法,上述基于小波变换的处理方法可以充分发挥小波分析优良的时频分析特性,有效地克服直流系统大电容接地环网等因素的影响,能够准确地计算出支路接地电阻值,从而判断出故障支路。由于8/16bit单片机有限的资源,无法实现这么复杂的算法,而ARM的高性能和高可靠性为这种算法提供了良好的硬件平台。扩展后的RTOS总体框图如图3所示。
4 应用程序设计
4.1 直流系统正负母
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)