期刊
论文
课题
会议
基于ARM7的无功动态补偿控制器的设计

【关键字】无功动态补偿控制器;ARM;USB;I2C;键盘扫描

【出   处】 2018年 1期

【收   录】中文学术期刊网

【作   者】胡 胜,胡必武, 宋 跃,李 君

【单   位】

【摘   要】  摘要:为设计一种新型无功动态补偿控制器,以ARM7为核心器件,运用了I2C总线外挂功能模块的方法,本方案外围电路结构简单可靠,实验结果表明本系统具有性能高、实时性好、补偿快


  摘要:为设计一种新型无功动态补偿控制器,以ARM7为核心器件,运用了I2C总线外挂功能模块的方法,本方案外围电路结构简单可靠,实验结果表明本系统具有性能高、实时性好、补偿快速准确等优点。本文重点介绍了基于LPC2220、USB接口芯片D12、I2C和一种新型键盘扫描的系统设计。

  关键词:无功动态补偿控制器;ARM;USB;I2C;键盘扫描

  0 引言

  我国电网线路损耗严重,从发电到用电,在高低配电线路损耗的电量高达25%以上,低压电网的损耗就更大。为了节能降损,改善电网电压质量,常采用并联电容器分级投切方法(静态补偿)进行无功功率补偿。而该方法无法使电网无功功率得到完全的补偿,电网经常处于欠补或过补状态,功率因数不能接近1,不能最大限度发挥供电设备的能力,而且静态补偿有浪涌电流大、补偿时间慢、维护费用高及使用寿命短的缺点。因此,设计了一种无功动态补偿控制器,它通过对电网无功电流、无功电压的快速检测,以无功电流、无功电压为取样物理量,经比较判断而以编码工作方式发出无触点开关的通断信号,进行投切控制。具备断电记忆功能、人机对话功能、手动/自动切换功能,以及较强的抗干扰能力。当无功动态补偿控制器发出投切信号时,无触点开关投入或切除相应的电容器。

  最常用的方案多以MCU为核心,控制多路信号的采集于处理。但由于单片机本身的指令周期以及处理速度的影响,对于多通道A/D进行控制及数据处理,普通的MCU往往不容易达到要求。本文采用ARM7为核心来实现数据的采集、存储和传输控制。

  1 系统硬件设计

  整个无功动态补偿控制器使用ARM7 LPC2220为核心来控制各个功能模块。主要功能模块有A/D前端处理单元、A/D采样单元、数据存储区单元、USB通信单元、液晶显示单元、键盘控制单元、时钟单元、汉字库存储单元。

  LPC2220[1,2]是基于一个支持实时仿真和跟踪的32位ARM7TDMI-S CPU,具有内置的8路10位AD转换模块,更重要的是从硬件上支持目前较为通用的高速(400kbps)I2C总线串行通信方式,系统要外挂的功能模块很多,包括片外存储器、液晶驱动器、键盘控制器、时钟芯片等,所以采用I2C总线通信方式,将大部分功能模块挂在I2C总线上。由此可大大简化外围电路,从而降低仪器成本,缩小仪器体积。

  A/D前端处理单元包括滤波网络、增益放大,作用是实现对信号的放大、衰减及阻抗匹配,从而满足ADC对输入信号的要求。滤波网络滤除高频噪声和工频信号的干扰,、增益放大通过ARM给出的控制信号实现对模拟信号不同增益的放大[3,4]。A/D采样单元使用LPC2220内置的8路10位AD转换模块,负责把模拟信号转换成数字信号。AD转换模块的基本时钟由VPB外部时钟提供,内置的可分频器可将VPB时钟调整至转换所需的频率。采集的数据在传输到计算机之前所有的数据都必须保存在仪器中,由于要求的数据存储量很大,该系统设置了外扩的数据存储单元。同时可以通过USB通信单元将存储器中的数据上传到微机。系统使用了液晶显示和键盘控制以实现系统和使用者之间的实时交互。不同的按键分别执行不同的任务,如在液晶上显示功率因数、电压、电流、投切延时设定值、投切判据设定值、过压设定值、无功电流、频率等。为方便使用者,控制器可以显示时间,并且可以确定某一批数据采集的时间,所以有专门的时钟单元。人机对话采用汉字显示,而此时液晶需要显示大量的汉字,汉字字库存储在ARM外挂的存储器之中。

  4*4

键盘 RS5C372计时控制 PCF8574 键盘控制 A/D前端处理单元 A/D

  LPC2220 I2C总线

USB通

信模块 SDA 液晶显示模块

LPH7653 SCL M24M01 1MB EEPROM M24M01 1MB EEPROM

  图1 无功动态补偿控制器总体结构

  I2C总线系统上挂接的所有外围器件,必须支持两线制I2C串行通信模式,I2C总线上所有的器件和接口模块都连接在同一条SDA和SCL上。每个器件都有一个唯一的地址以供识别,地址码又分为两部分:

  (1) 器件类型地址,占高4位,属于固定地址,不可改变;

  (2) 引脚设定地址,占低3位,可以通过器件的引脚接线状态来配置。

  系统中要接在I2C总线上的外围器件包括:一片接口扩展芯片PCF8574,2片EEPROM存储器M24M01、一片LCD LPH7653以及一片日历时钟芯片RS5C372,均是7位地址格式的器

  件。

  对于USB接口,采用PHILIPS公司的PDIUSBD12接口器件,PDIUSBD12带有并行总线和局部DMA传输能力,可以任何外部微处理器实现高速并行接口。具有良好的EMI特性的总线供电能力,在挂起时可控制LazyClock输出。

  整个系统的运行是一个和用户不断交互的过程,它需要不断接受用户通过键盘输入的命令并将相应的处理信息显示在液晶屏幕上。系统利用I2C总线系统中8位I/O扩展器PCF8574组成的一种新型4×4键盘扫描方案。

  图2 键盘的接口电路

  与传统的键盘相比较,设计了4个上拉电阻,即在键盘的4行和4列上都接了4个上拉电阻,而传统的键盘的设计是或者4行接4个电阻或者4列接4个电阻,这是两者的本质区别。这就为对键盘的扫描只要2次提供了可能,而传统的键盘需要扫描4次。扫描的方法是:先设P0-P3这4列为1、P4-P7这4行为0,然后读取键盘4列,看是否有键按下。如有,再读一次,判定是否是抖动,如是按键,则把P0-P3值存入寄存器的低字节,接着设P0-P3这4列为0、P4-P7这4行为1,然后读取键盘4行,把P4-P7值存入寄存器的高字节,最后把寄存器的低字节和寄存器的高字节相结合,则可断定按键值。

  2系统软件设计

  2.1 USB通信的实现

  根据USB 协议[5,6],主机通过端点0 向设备发出一些获得相关设备基本状态的命令。这些基本状态可以反映USB设备所属的类别及子类, 反映配置状态、接口状态和端点状态, 主机按照USB 协议与设备建立通道。设备向主机传送相应的描述符,描述符掌握了关于设备的各种信息,包括设备描述符、配置描述符、接口描述符、端点描述符、类描述符、报告描述符。

  为了使软件可移植性强、易维护, 采用了分层的方法编写PDIUSBD12 驱动程序。硬件提取层(EPPHAL.C)是固件中最低层代码,其执行对PDIUSBD12和线路硬件与I/O相关的访问。D12 命令接口(D12CI.c ) 实现PDIUSBD12 的命令接口以简化器件的编程。D12中断服务程序(ISR.C ) 它将数据从PDIUSBD12 的内部FIFO取回到CPU存储器,并建立正确的事件标志,以通知主循环程序进行处理。该层的函数及其功能如下:

  (1) 中断服务程序:void fn_usb_isr()

  (2) 端口0 OUT中断:void epo_rxdone(viod)

  (3) 端口0 IN处理:void epo_txdone (viod)

  协议层(CHAP_9.C)和PROTODMA.C用来处理标准的USB设备请求及特殊的厂商请求, 如DMA 等。所有请求都是通过端点0 接收和发送SETUP 包完成的。所有SETUP 包都由函数control_handler () 来处理。

  Void control_handler ()

  {

  unsigned char type,req; //读取请求类型

  type=ControlData.DeviceRequest.bmRequestType&USB_REQUEST_TYPE_MASK;

  //读取请求代码

  req= ControlData.DeviceRequest.bRequest&USB_REQUEST_MASK;

  if(type==USB_STANDARD_REQUEST)

  (*StandardDeviceRequest[req])(); //标准请求处理

  else if (type==USB_VENDOR_REQUEST)

  (*VendorDeviceRequest[req])(); //厂商请求处理

  else

  Stall_ep0(); //无效请求,返回STALL

  }

  应用层(mainloop.c ) 实现PDIUSBD12 的所有功能。

  应用层要实现的任务包括:

  (1) 初始化PDIUSBD12 ,包括初始化PDIUSBD12 的硬件连接、复位PDIUSBD12 、配置PDIUSBD12 的中断服务程序地址、初始化应用层相关的全局变量。

  (2) 编写PDIUSBD12 中断服务程序,PDIUSBD12 几乎所有功能都通过PDIUSBD12 中断服务程序完成。

  2.2 ARM程序设计

  ARM程序整体流程为图3, 根据不同的按键值在液晶上显示不同的内容。

开始

初始化系统

数据采集、处理

USB中断?

Y

USB通信

  N

有键按下? Y

  N

  根据处理、计算得到

  的功率因数,通过无

触点开关投切电容器 键值分析

  根据键值读取储存器

内容并在液晶上显示

  图3 主程序流程图

  3结束语

  在ARM7 LPC2220嵌入式控制器硬件平台上,实现了对电网无功电流和无功电压的数据采集、处理、D12驱动,在I2C总线协议方式下,提供相应的硬件设计和软件设计方法。为无功动态补偿控制器提供了一种方便、可靠的方案。

  为保证装置的可靠性,控制器采取了一系列的措施:

  < >交流电源输入端加装电源滤波器;印制版电路采用最短走线法,元器件的排列尽量使分布电容最小,地线构成环路;采用 “看门狗”技术。黄锋,谢运祥,黄敏俊.智能TSC低压动态无功补偿控制器设计[J].电气传动自动化, 2007(03)

  [3] 刘小林,范育兵,罗春晖. 基于FPGA的多通道数据采集系统设计,电子技术应用,2009.7,35(7):42-44.

  [4] 杨健,张慧慧.基于DSP和ARM的网络化数据采集与信号分析终端[J].计算机工程,2006,32(8):269-271.

  [5] 田小林,王建华;无功补偿控制器中数据采集及FFT算法处理[J];仪表技术与传感器;2004(04)

  [6] 胡金双,吴文传,张伯明,孙宏斌,李民,高雪生,陈伯胜;基于分级分区的地区电网无功电压闭环控制系统[J];继电器;2005(01)

 

论文推荐 +更多
不锈钢在4-甲基咪唑缓蚀液中的电化学行为研究
长庆油田第一净化厂外输污水配伍性试验研究
低烟耐火材料聚氧化磷腈的合成与表征研究
等离子发射光谱法测定煤中总硫含量的研究
煤与瓦斯突出危险区域巷道贯通安全技术
登录 注册 投稿