APP下载

基于SEP4020剩余电流保护装置测试仪SoC设计

2010-04-11姜仲秋

淮阴工学院学报 2010年5期
关键词:宿主机字节保护装置

姜仲秋

(淮安信息职业技术学院计算机科学与工程系,江苏淮安223003)

0 引言

为保证我国城乡用电的安全,在用户中安装剩余电流动作保护装置是用电系统中一项重要的安全技术措施,但由于该设备处于长期运行状态,其元器件不可避免地会产生老化或损坏,影响性能指标的变化,甚至影响人身与电力设备的安全。为了及时检测剩余电流,国内外不少生产厂开发出了基于单片机技术的测试仪。但由于单片机技术的局限性,其功能简单,测试精度有限,测试数据只能进行人工记录与管理,智能化程度不高。而相对于GB13955-2005以前的国家标准,国家对剩余电流保护装置动作特性的测试提出了更高的要求。本文提出一种基于ARM核嵌入式系统的新型剩余电流保护装置动作特性测试仪,该设备采用基于ARM核的嵌入式技术,采用数字合成技术产生正弦波的数控信号源,作为测试中所使用标准测试电流,摒弃了传统的电阻式剩余电流发生器,测试电流稳定可靠,控制精度高、便于携带,是ARM技术在智能测试仪器中新的应用方向。

1 新型剩余电流保护装置测试仪SoC模型设计

按照新国标GB13955-2005对剩余电流保护装置动作特性测试仪的要求,本文的主要设计思想是利用嵌入式系统SoC技术,实现友好的人机图形界面,控制信号源实现规定测试信号范围内的多点扫描自动测试剩余电流保护装置动作特性参数,并对多个产品测试参数进行存储功能与处理,实现测试数据的采集、显示、存储与处理的智能化。

其系统模型方案如图1所示,处理器是整个系统中起核心作用的芯片,它的性能很大程度上会影响整个系统的性能,所以在设计时选用目前常用的32位嵌入式处理器ARM core SEP3203,其主频为75MHz以上,能比较好的满足控制类多任务管理的要求。外部总线位数为32位,大部分芯片都能提供灵活的外部总线宽度来满足不同的应用要求。在片内高速存储器方面,大多数处理器内嵌了片内的高速存储体,结合代码分布算法用于实现关键代码的运行和性能优化,SEP3203内嵌的20KB的eSram能满足该项要求。

图1 新型测试仪系统模型示意图

1.1 主控系统的整体功能

主控系统的基本要求:在ARM嵌入式技术支持下,实现检测剩余电流保护装置动作特性(剩余动作电流值、分断时间、极限不驱动时间)检测的自动化,具有数据存储与检测信息处理机能,从而实现专用检测仪器的智能化。

采用最新嵌入式微处理器技术,具有结构精巧、图形彩色液晶显示、自动检测、数据存储与处理,触摸屏操作的特点。可以在线、离线测试,并有电源同步开关、开机优先档、保护警示等功能。在性能、携带、操作方面适用于一线电工和用电安检部门的使用和推广,同时满足剩余电流动作保护装置生产厂定性测量的需要。

利用SoC技术,可实现的具体功能如下:

(1)提高检测速度,根据剩余电流保护装置生产厂与供电系统的实际需要提高检测速度,较大幅度提高生产效率与提供方便实用的功能;

(2)基于ARM技术系统的设计,利用ARM的SoC技术设计出高性能、智能化程度高的信号源扫描控制系统、数据采集系统、数据分析与存储系统,利用SoC技术实现智能化的算法设计;

(3)设计程序可控信号源,提高其受控性与稳定性能;

(4)以ARM核为基础联结外围设备实现数据采集控制、断电控制、数据显示与数据存储控制等电路的设计,其中要求将检测数据保存到Flash中,并通过与PC机的USB接口将数据传输到PC机检测信息管理的数据库中进行智能化的处理;

(5)采用5~8英寸液晶显示系统、声光报警系统。

利用ASIX OS的图形界面设计方法,根据实际测试功能需求,测试仪的主控界面设计如图2所示。

图2 主界面图

在图2中,“文件”、“查询”、“帮助”为触摸屏 按钮,可显示对应菜单,“开始测试”、“信息管理”、“日期校准”、“关机”为实现相应功能的触摸屏按钮。

1.2 硬件设计模型

系统硬件,以嵌入式处理器芯片SEP3203为核心,利用ARM的SOC技术设计出高性能、智能化程度高的信号源扫描控制系统、数据采集系统、存储系统,硬件系统模型如图3所示。

硬件系统中,围绕SEP3203处理器采用如下硬件设计:

(1)5-8英寸液晶触摸屏显示系统;

(2)数控信号源系统;

(3)实时数据采集系统;

(4)32MB Flash程序存储系统与检测数据存储系统;

(5)32MB SDRAM工作存储器;

(6)USB接口与PC机实现数据交换;

(7)声光报警系统。

图3 新型剩余电流保护装置动作特性测试仪硬件设计方案

1.3 系统软件设计模型

测试仪软件系统采用自主设计的嵌入式实时操作系统平台ASIX OS,实现嵌入式系统中任务管理、内存管理、界面管理、通信管理等。系统软件由十个模块组成,如图4所示,每个模块主要功能如下:

(1)系统初始化模块实现系统的初始加载;

(2)LCD显示模块实现8寸液晶彩色图形显示的驱动;

(3)触摸屏管理实现友好的人机界面;

(4)信号源控制模块驱动程序可控信号源产生所需的测试信号;

(5)数据采集模块获取剩余电流保护装置相关动作信号;

(6)文件管理模块利用Flash实现检测数据的保存;

图4 软件设计方案

系统保护模块判断用户的错误操作与异常情况产生相应的保护动作;

(7)功耗管理模块利用SEP3203低功耗工作模式,实现停电或野外操作所需的低功耗要求;

(8)声光报警模块报告系统的状态。

检测信息管理系统检取测试仪中数据并转入数据库,根据用户对信息的需求实现智能化的数据管理。

2 主控系统调试平台的架构

2.1 交叉开发环境的建立

图5为交叉开发环境。交叉开发是在一台PC机上进行软件的编辑与编译,然后由调试通道JTAG下载到嵌入式设备中进行运行调试。PC可运行通用的Windows或Unix操作系统,开发用的PC机一般称为宿主机,嵌入式系统设备称为目标机。

图5 交叉开发系统示意图

交叉开发环境运行于宿主机上的软件最少必须包含编译调试模块,另外还应包括已移植μClinux及μC/OS-Ⅱ并提供源代码、串口调试工具MTTTY、主板功能评估软件源代码。其中编译器为交叉编译器,将用户编写和汇编语言程序或C语言程序处理为目标程序。编译后的目标代码必须在ARM体系结构的目标机上运行,这就是所谓的交叉编译。宿主机上编译好的目标代码通过宿主机到目标机的调试通道将代码下载到目标机,然后由运行于宿主机的调试软件控制代码在目标机上进行调试。为了方便调试开发,交叉开发软件一般为一个整合编辑、编译、汇编、链接、调试、工程管理及函数库等功能模块的集成开发环境IDE(Integrated Development Environment)。本文采用ARM公司的ADS1.2以及南京博芯电子有限公司提供的ASIX OS。

2.2 基于SEP3203微处理器嵌入式系统的调试平台

针对SEP3203微处理器的特性,本文利用南京博芯电子技术有限公司提供的GE01MB嵌入式系统开发装置搭建设备所需的液晶屏、触摸屏、USB通信、外部存储器(SDRAM和FLASH等),如图7所示。实现利用SEP3203微处理器中的LCD控制器来控制在黑白(彩色)液晶屏上的数据以及利用SEP3203微处理器的SPI通信模块采集触摸屏的数据;利用SEP3203微处理器的USB通信模块来实现通过USB来和PC机进行同步以及在检测仪和PC机之间进行数据同步的硬件电路的设计;利用SEP3203微处理器的外部存储器的管理功能来验证硬件存储电路的设计,实现系统从Nand Flash启动,保存数据到Flash中或SDRAM中。

根据SEP3203微处理器的特性设计搭建好硬件电路后,下一步即考虑如何在设计好的硬件平台上实现嵌入式操作系统的移植,本文采用国家专用集成电路与系统工程技术研究中心自主研究与设计的ASIC OS操作系统。嵌入式操作系统在硬件平台上的移植最大的工作量在于与硬件相关的底层代码的移植,如系统的启动代码、各个外设的驱动程序、文件下载到实验板上的SDRAM中或者烧录到Flash中、如何调试实验板的代码。

3 调试过程

3.1 内核加载方式

嵌入式操作系统内核可以在Flash上直接运行,也可以加载到内存中运行。Flash的运行方式,是把内核的可执行映像烧写到Flash上,系统启动时从Flash的某个地址开始执行。这种方法实际上是很多嵌入式系统所采用的方法。内核加载方式是把内核的压缩文件存放在Flash上,系统启动时读取压缩文件在内存里解压,然后开始执行。这种方式相对复杂一些,但是运行速度可能更快,因为RAM的存取速率要比Flash高。由于嵌入式系统的内存管理机制,嵌入式操作系统对用户程序采用静态链接的形式。在嵌入式系统中,应用程序和操作系统内核代码编译、链接生成一个二进制影像文件来运行。

3.2 嵌入式系统开发相关技术

相对于在Windows环境下的开发应用程序,嵌入式系统开发有着很多的不同。不同的硬件平台和操作系统带来了许多附加的开发复杂性。

在嵌入式开发过程中有宿主机和目标机的角色之分:宿主机是执行编译、链接、定址过程的计算机;目标机指运行嵌入式软件的硬件平台。首先须把应用程序转换成可以在目标机上运行的二进制代码。这一过程包含三个步骤:编译、链接、定址。编译过程由交叉编译器实现。所谓交叉编译器就是运行在一个计算机平台上并为另一个平台产生代码的编译器。常用的交叉编译器有GNU C/C++(gcc)。编译过程产生的所有目标文件被链接成一个目标文件,称为链接过程。定址过程会把物理存储器地址指定给目标文件的每个相对偏移处。该过程生成的文件就是可以在嵌入式平台上执行的二进制文件。嵌入式开发过程中另一个重要的步骤是调试目标机上的应用程序。嵌入式调试采用交叉调试器,一般采用宿主机-目标机的调试方式,它们之间由串行口线或以太网或BDM线相连。交叉调试有任务级、源码级和汇编级的调试,调试时需将宿主机上的应用程序和操作系统内核下载到目标机的RAM中或直接烧录到目标机的ROM中。目标监控器是调试器对目标机上运行的应用程序进行控制的代理(Debugger Agent),事先被固化在目标机的Flash、ROM中,在目标机上电后自动启动,并等待宿主机方调试器发来的命令,配合调试器完成应用程序的下载、运行和基本的调试功能,将调试信息返回给宿主机。

3.3 字节顺序

由于软件开发模式是先在PC机上编写软件,再进行嵌入式平台软件的移植工作。在PC机上编写软件时,要注意软件的可移植性,选用具有较高移植性的编程语言(如C语言),尽量少调用操作系统函数,注意屏蔽不同硬件平台带来的字节顺序、字节对齐等问题。字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有小端、大端两种字节顺序。小端字节序指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处;大端字节序是高字节数据存放在低地址处,低字节数据存放在高地址处。基于X86平台的PC机是小端字节序的,而有的嵌入式平台则是大端字节序的。因而对int、uint16、uint32等多于1字节类型的数据,在这些嵌入式平台上应该变换其存储顺序。字节对齐是因为有的嵌入式处理器的寻址方式决定了在内存中占2字节的int16、uint16等类型数据只能存放在偶数内存地址处,占4字节的int32、uint32等类型数据只能存放在4的整数倍的内存地址处;占8字节的类型数据只能存放在8的整数倍的内存地址处;而在内存中只占1字节的类型数据可以存放在任意地址处。由于这些限制,在这些平台上编程时有很大的不同。首先,结构体成员之间会有空洞,如这样一个结构:

结构TEST在单字节对齐的平台上占内存三个字节,而在以上所述的嵌入式平台上有可能占三个或四个字节,视成员a的存储地址而定。当a存储地址为偶数时,该结构占四个字节,在a与b之间存在一个字节的空洞。对于通信双方都是对结构成员操作的,这种情况不会出错,但如果有一方是逐字节读取内容的,就会错误地读到其它字节的内容。其次,若对内存中数据以强制类型转换的方式读取,字节对齐的不同会引起数据读取的错误。因为假如指针指在基数内存地址处,我们取得占内存两个字节的数据存放在uint16型的变量中,强制类型转换的结果是取得了该指针所指地址与前一地址处的数据,并没有按照我们的要求取该指针所指地址与后一地址处的数据,这样就导致了数据读取的错误。解决字节对齐有许多方法,比如可以在GCC的项目管理文件Make-File中增加编译选项-pack-struct;但这种方法只能去除结构中的空洞,并不能解决强制类型转换引起的错误。为了增强软件的可移植性以及和同类其它平台产品的互通性。

3.4 代码优化

嵌入式系统对应用软件的质量要求更高,因而在嵌入式开发中尤其须注意对代码进行优化,尽可能地提高代码的效率,减少代码的大小。虽然现代C和C++编译器都提供了一定程度的代码优化,但大部分由编译器执行的优化技术仅涉及执行速度和代码大小的平衡,不可能使程序既快又小,因而必须在编写嵌入式软件时采取必要的措施。

(1)提高代码的效率

①switch-case语句。在程序中经常会使用switch-case语句,每一个由机器语言实现的测试和跳转仅仅是为了决定下一步要做什么,就浪费了处理器时间。为了提高速度,可以把具体的情况按照它们发生的相对频率排序,即把最可能发生的情况放在第一,最不可能发生的情况放在最后,这样会减少平均的代码执行时间。

②全局变量。使用全局变量比向函数传递参数更加有效率,这样做去除了函数调用前参数入栈和函数完成后参数出栈的需要。当然,使用全局变量会对程序有一些负作用。

(2)减小代码的大小

嵌入式系统编程应避免使用标准库例程,因为很多大的库例程设法处理所有可能的情况,所以占用了庞大的内存空间,因而应尽可能地减少使用标准库例程。

(3)避免内存泄漏

用户内存空间(堆)为RAM中全局数据和任务堆栈空间都分配后的剩余空间,为了使程序能有足够的内存运行,必须在申请的内存不用后及时地将其释放,以确保再次申请时能有空间。如果程序中存在内存泄漏(即申请内存后没有及时释放)的情况,程序最终会因为没有足够的内存空间而无法运行。

4 结论

本文采用嵌入式处理器芯片SEP3203为核心,基于嵌入式SoC技术,设计了一种新型的剩余电流保护装置动作特性测试仪。通过嵌入式系统开发平台,以SEP3203内核为基础,完成了应用程序框架的设计,将ASIX OS成功地移植到目标板上,将此系统用于NC信号源控制,对剩余电流保护装置动作特性参数进行测量,测量结果保存在Flash内指定的文本文件中。同时,为了方便厂家或供电系统对大量检测数据进行管理,用VB.NET开发了检测信息管理系统,通过USB通信接口对检测仪的检测结果文件内容进行处理并转存至PC机的数据库中,根据工作需要进行分类统计、按需查询、形成报表。本设计具有系统人机界面友好、测试响应速度快、操作简单等优点,可广泛应用于城乡用电保护器的检测领域。

[1]王田苗.嵌入式系统设计与实例开发——基于ARM微处理器与μC/OS-Ⅱ实时操作系统[M].北京:清华大学出版社,2002.

[2]俞建新.嵌入式应用程序开发综合实验9例——基于博创ARM300教学平台和各类手持设备[M].北京:清华大学出版社,2004.

[3]顾咏枫,陈章龙.嵌入式Linux裁剪方法[J].小型微型计算机系统,2003,24(9):1697 -1700.

[4]王煌.创新是推进实验教学与实验室建设的密钥[J].实验室研究和探索,2004,23(4):1 -4.

[5]吕向阳,陈明义.嵌入式系统创新实验室建设[J].实验室研究与探索,2005,24(5):32 -33.

[6]马寒,曹玲芝.开放式电子创新实验室的运行管理模式初探[J].实验室科学,2006(1):99-101.

猜你喜欢

宿主机字节保护装置
No.8 字节跳动将推出独立出口电商APP
嵌入式计算机软件测试关键技术研究
No.10 “字节跳动手机”要来了?
虚拟网络实验室在农村职校计算机网络技术教学中的应用研究
简谈MC7字节码
电力系统微机保护装置的抗干扰措施
翻车机人行通道光电安全保护装置
火电厂热控自动化保护装置的维护策略初探
基于单片机的低压马达保护装置
人类进入“泽它时代”