APP下载

基于ARM的电力在线监测系统的研究设计

2011-07-25包乙春段本成

电气开关 2011年5期
关键词:双口驱动程序上位

包乙春,段本成

(1.广西大学,广西 南宁 530023;2.柳州供电局,广西 柳州 545005)

1 引言

电力监控自动化是电力系统自动化的重要组成部分,是保证电力系统安全运行的重要措施之一。为了保证电力系统的安全运行,了解电力系统运行状况,需要对电力系统各种运行参数进行在线监测、快速识别故障、实时处理和录波。这就对电力系统中的监测系统在精度、实时性和可靠性等方面提出了严格的要求。本文设计了一套能将PC计算机、PCI总线[1-5]及自动化测量技术融为一体的高精度电力在线监测系统。

近年来,嵌入式技术已被应用于某些电力系统产品中。本文将ARM7系列的一款芯片LPC2132[6]用于电力系统的监测装置研制中,充分利用ARM强大的功能,采用先进的软件编程技术、设计出了一种在线电力监测系统由于该系统集多种功能于一体,所以对进一步提高电网的自动化水平、提高供电的安全性和可靠性都将具有十分重要的意义。

2 系统的硬件结构

2.1 系统的硬件结构框图

电力监测系统的硬件结构由信号前端处理模块、微处理器、PCI总线接口模块、显示模块、键盘模块等组成,其硬件结构原理图如图1所示。

图1 系统结构图

2.2 微处理器模块

微处理器应根据所要完成的数据处理工作的复杂程度来选择。考虑到本次设计中涉及到大量数据的计算,同时微处理器还要完成与显示面板、上位机的通讯,因此对微处理器的要求较高。本设计采用荷兰PHILIPS公司LPC2132作为核心控制器。LPC2132是基于一个支持实时仿真和跟踪的32位ARM7TDMISTMCPU的微控制器,并带有64K嵌入的高速Flash存储器。LPC2132片内集成了数据采集和控制系统中常用的模拟及数字外设功能部件。这些功能部件的高度集成为设计体积小、功耗低、可靠性高的应用系统系统提供了方便。LPC2132芯片最大的特点是,它是一个32位的处理器,可以处理32位数据,也可以处理16位数据和8位数据。由此可见,ARM处理器采用32位的数据结构,所表达的信息量是很大的。也正好满足系统中计算量大和数据存储量大的要求。

2.3 数据处理模块

电力系统中高次谐波以及暂态电能质量指标的测量对模数转换芯片的要求非常高。根据实测数据,如果采用12位分辨率的模数转换芯片,仅仅因为A/D转换精度不够,对15次谐波而言至少会引起1.67%的误差[7],而且在实际谐波测量中一般测到30次谐波以上,这样产生的误差影响会更大,高次谐波测量数据将没有可信性。因此本文选用16位并行输出的A/D芯片AD976,它具有转换速度快、精度高的特点。

用双口RAM作为数据缓存器,可以实现ARM和上位机同时对缓存器的读写操作,提高通信速率。本系统选用容量大小为4k×16bit的双口RAM IDT7133作为数据缓存器。采样的数据放入双口 RAM,由ARM7计数,双口RAM半满后ARM7向上位机发送中断信号。

2.4 PCI接口芯片

目前市场上有一些专用的 PCI接口芯片,如S5933、PLX9054等等,但使用 S5933需要外部扩展FPGA来进行IO接口处理,占用面积较大。而使用含有PCI MegaCore的FPGA芯片可以根据设计的要求自行设计接口功能,不仅降低了成本、提高了电路板的集成度,而且,通过在顶层的测试口,可以大幅度提高接口逻辑的调试速度。

pci_t32是Altera公司提供的最简单的32位PCI TARGET接口宏核逻辑,支持33MHz和66MHz的PCI时钟,其外围接线简单实用,在PCI总线一侧,各信号线符合PCI规范2.2版,系统上电后,通过PCI配置寄存器,双口RAM被映射到上位机的寄存器空间或I/O空间,上位机通过寄存器操作或I/O操作可以对双口RAM进行访问;在扩展总线一侧:l_adi[31:0]为地址、数据的输入端;l_dato[31:0]、l_adro[31:0]分别为数据和地址的输出端;l_beno[3:0]为字节使能端;l_cmdo[3:0]为命令输出端;lt_rdyn为目标设备准备好信号线,与双口RAM的BUSY相连,避免上位机与下位机对双口RAM的同一地址单元进行操作;lt_irqn为目标设备的中断请求线,由ARM控制,lt_irqn有效时,上位机执行双口RAM的猝发读操作。PCI接口的结构如图2所示。

图2 PCI接口结构图

PCI规范中定义了Memory和I/O两种读写操作模式,而Memory读写又分单周期读写模式和猝发读写模式。本文采用的是Memory的猝发读模式,所谓猝发读模式,即在给出首地址后,主设备连续读取多个数据,而从设备能对自动地址加1。pci_t32的猝发Memory读操作时序如图3所示。

图3 猝发读操作时序图

2.5 键盘和显示模块

显示电路和微控制器的连接采用I2C总线,由于LPC2132内部已经有集成I2C总线模块,故可以容易的实现I2C通讯,显示驱动器采用具有I2C总线的器件SAA1064,可动态驱动4位8段LED显示器。它内部具有显存和自动刷新功能,可免去微控制器的频繁刷新任务,减少CPU占用时间。键盘输入采用动态扫描中断工作方式,当查询到有键按下时先识别键码再转入相应的服务程序。用户通过键盘可以对电力监测参数进行设置。

2.6 其他模块

时钟模块电路:LPC2132使用外部11.0592MHz晶振.使用外部11.0592MHz晶振使串口波特率更精确,同时能支持LPC3132微控制器芯片内部PLL及ISP功能。

3 系统的软件设计

3.1 软件设计

软件设计主要包含三部分,ARM的软件设计、PC机的软件设计和PCI接口的驱动程序设计。

在ARM的软件设计中,若用C语言进行开发,程序的可读性较强,但是由C编译器形成的汇编语言不一定能合理利用ARM的片内资源;若用汇编语言进行开发,片内资源的利用率较高,但程序的可读性较差。为了充分利用ARM芯片的内部资源,更好的发挥C语言的可读性,作者采用混合编程的方式进行软件设计。

在PC机侧,由于涉及到对硬件的操作,故而选用对硬件有较强控制能力的C语言进行开发。

图4 系统工作流程图

PCI接口的驱动程序由WinDriver实现。在Windows操作系统中,CPU工作在保护模式下,要实现对系统的硬件资源(如内存、中断等)的访问,必须要对相关的设备编写相应的驱动程序。目前,使用较多的开发工具是JUNGO公司(Jungo Software Technologies)出版的驱动程序开发组件WinDriver。利用WinDriver开发驱动程序,不需熟悉操作系统的内核知识[8]。整个驱动程序中的所有函数都是工作在用户态的,通过与WinDriver的.VXD和.SYS文件交互来达到驱动硬件的目的。

3.2 系统软件流程

这里不妨设一个周期内的采样点数为N。监测系统的工作流程如图4所示。在图中,BLOCK0为一个桶形存储单元,循环存故障前的数据。BLOCK0的容量为N,偏移地址为0~N-1,每采样一个新点,地址指针自动加1,当指针为N时,指针归0。

BLOCK1的容量也为N,存放故障后一个周期的数据。上位机在收到ARM的中断命令后,读取双口RAM中的数据。根据故障信息,上位机作出相应的控制决策。

4 结束语

用ARM实现的多路高速电力在线监测系统是有多方面优越性的,其高速数据采集完全可以响应瞬态或暂态发生事件。监测系统的传输总线采用PCI总线,提高了系统的通用性及可扩展性,而且使整个系统具有高速、高可靠性等特点,能很好的满足电力系统在线监测方面的需要。但在系统的工作流程方面仍然存在一些缺陷。例如,如果系统处于录波状态时发生了电力系统故障,则此故障无法被识别,故而,对于发生时间相隔很短的两次故障,监测系统可能会丢失部分数据。在今后的研究中,可以考虑在ARM中嵌入多任务的实时操作系统解决此类问题。

[1]张旭东,付强,何松华,等.基于PCI接口的多通道高速数据采集系统[J].数据采集与处理,2000,15(2):240 -244.

[2]宋克柱,杨小军,王砚方.基于FPGA的PCI接口设计[J].电子技术应用,2001,9:74 -77.

[3]刘海平,朱仲英.基于FPGA的PCI总线接口设计[J].微型电脑应用,2003,19(9):49 -51.

[4]刘潇,孟铁,胡立伟,等.基于PCI总线的谐波检测数据采集系统[J].2006,9:31 -32.

[5]彭海兰,张翌晖,蒋志龙.基于PCI总线的高速数据采集系统[J].电网技术,2004,28(4):69 -72.

[6]周立功,张华.深入浅出 ARM7——LPC213x/214x(上册)[M].北京航空航天大学出版社,2004.2

[7]介海民,鄢圣茂,宋立忠,等.基于DSP的船舶电力监测系统设计[J].舰船电子工程,2007,2:186 -188

[8]姚金,王彦梅,裴林民.基于新型DSP的嵌入式远程电力监测系统的设计[J].中国仪器仪表,2007,4:43 -45.

猜你喜欢

双口驱动程序上位
双口RAM在航天伺服系统中的应用
计算机硬件设备驱动程序分析
特斯拉 风云之老阿姨上位
Matching mechanism analysis on an adaptive cycle engine
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
以新思路促推现代农业上位
双口RAM读写正确性自动测试的有限状态机控制器设计方法
双口RAM在无人机三余度飞控计算机数据交换中的应用
基于MPC8280的CPU单元与内部总线驱动程序设计