江苏盐城响水奥鹏学习中心袁超201004727679

更新时间:2023-03-09 04:01:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

网络高等教育

本 科 生 毕 业 论 文(设 计)

题 目:基于DSP(数字信号处理芯片)的电能质量监测

学习中心:江苏盐城响水奥鹏学习中心[11] 层 次: 专科起点本科 专 业: 电气工程及其自动化 年 级: 2010年 春 季 学 号: 201004727679 学 生: 袁 超 指导教师: 胡 楠 完成日期: 2012年 3 月 1 日

摘 要

随着电力系统非线性负荷及冲击性负荷的不断增加,电能质量问题日益突出,而社会对电能质量的要求却越来越高。改善电能质量的关键,首先是能够对电能质量进行全天候、全方位的实时监测和管理。改革开放以前,我国工业水平比较落后,制造业工艺比较粗糙,高、精、尖方面的先进制造业更是缺乏,因而,谐波引起的影响与危害并不明显,而电能质量问题更提不到议事日程。人们普遍认为,只要能保证电网频率的正常以及保证供电电压在一定范围内,就等于保证了电网的电能质量。另外从我国的电力系统供求关系来看,80年代之前处于计划和短缺经济时期,有没有电供用户使用是主要问题,自然 “电能质量”问题就无从谈起。

针对电能质量日益恶化以及用电设备对电能质量的要求相对提高这一现状,设计高精度的电能质量监测装置用以监测及分析电网电能质量,从而可有效的控制、治理电能质量,这有着十分重要的意义。

本文设计了以TMS320F2812 DSP为核心的电能质量在线监测系统。硬件部分的设计主要包括数据采集电路、CPU系统、人机接口电路和通信电路等。软件部分则完成了系统软件整体结构、系统总流程以及各个相应模块功能的设计。

关键词:电能质量;在线;实时监测;DSP; A/D; CCS;滤波

II

目 录

目 录

摘 要 ............................................................. II 1 绪论 ............................................................. 1

1.1 研究背景 ................................................... 1 1.2 电能质量在线监测研究现状 ................................... 1 1.3 本文主要工作 ............................................... 3 2 电能质量在线监测装置的硬件设计 ................................... 4

2.1 系统设计总体结构图 ......................................... 4 2.2 模拟量信号输入模块 ......................................... 4 2.3 低通滤波器模块 ............................................. 4 2.4 AD转换模块 ................................................. 8

2.4.1 AD转换器的选择 ....................................... 8 2.4.2 AD7656的工作原理 ..................................... 9 2.5 DSP核心系统模块 ........................................... 10

2.5.1 DSP芯片结构特点和性能指标 ........................... 11 2.5.2 DSP处理器选择 ....................................... 11 2.6 电源模块 .................................................. 12

2.6.1 系统对电源的要求 ..................................... 12 2.6.2 电源电路设计要点 ..................................... 13 2.7 复位电路设计 .............................................. 14 2.8 时钟电路设计 .............................................. 15

2.8.1 时钟电路的类型 ....................................... 15 2.8.2 时钟电路的选择 ....................................... 16 2.9 存储器电路设计 ............................................ 17

2.9.1 DSP系统存储器电路基础 ............................... 17 2.9.2 TMS320F2812的外部存储器接口 ......................... 17 2.9.3 TMS320F2812的外部存储空间分配及存储器选择 ........... 18 2.10 人机接口模块 ............................................. 19

2.10.1 液晶显示接口电路设计 ................................ 19 2.10.2 键盘接口电路设计 .................................... 20 2.11 RTC时钟模块 .............................................. 21 2.12 通信模块 ................................................. 21

2.12.1 串口通信 ............................................ 21

2.12.1.1 RS232 ......................................... 21 2.12.1.2 RS485 ......................................... 22 2.12.2 以太网 .............................................. 23 2.13 硬件电路中的抗干扰措施 ................................... 24 2.14 小结 ..................................................... 24 3 系统软件设计 .................................................... 25

3.1 DSP软件开发环境及流程 ..................................... 25 3.2 系统软件流程 .............................................. 25

3.2.1 主程序流程图 ......................................... 25 3.2.2 采样子程序流程图 ..................................... 27

III

3.2.3 系统测频子程序流程 ................................... 28 3.2.4 C语言生成的段和CMD文件 ............................. 30 3.2.5 定点DSP中浮点数处理方法 ............................. 34 3.3 软件抗干扰设计 ............................................ 35 3.4 小结 ...................................................... 35 4 系统调试 ........................................................ 36

4.1 装置的主要技术指标 ........................................ 36 4.2 装置的硬件调试 ............................................ 36

4.2.1 数据采集电路调试 ..................................... 37 4.2.2 外部RAM调试 ......................................... 37 4.2.3 人机接口电路调试 ..................................... 38 4.2.4 通信电路调试 ......................................... 39 4.3 装置软件调试 .............................................. 39

4.3.1 软件测频率调试 ....................................... 39 4.3.2 程序的总体调试 ....................................... 41 4.3 小结 ...................................................... 42 5 总结与展望 ...................................................... 43 参考文献 ........................................................... 44

IV

大连理工大学网络高等教育毕业论文(设计)

1 绪论

1.1 研究背景

随着电力系统非线性负荷及冲击性负荷的不断增加,电能质量问题日益突出,而社会对电能质量的要求却越来越高。改善电能质量的关键,首先是能够对电能质量进行全天候、全方位的实时监测和管理。电能既是一种经济实用、清洁方便且容易传输、控制和转换的能源形式,又是一种由电力部门向电力用户提供,并由供、用双方共同保证质量的特殊产品。如今,电能作为走进市场的商品,与其他商品一样,无疑也应讲求质量[1]。

电能质量可以定义为:导致用电设备故障和不能正常工作的电压、电流或频率的偏差,其内容包括频率偏差、电压偏差、电压波动与闪变、三相不平衡、暂时或瞬态过电压、波形畸变、电压暂降与短时间中断以及供电连续性等问题等。

供电质量的保证关系着国家的工农业生产和社会经济发展,至2000年底我国结合国内外的研究成果和实际情况分别制定了五个国家电能质量系列标准:《电能质量公用电网谐波》(GB/T 14549-1993)、《电能质量电力系统频率允许偏差》(GB/T 15945-1995)、《电能质量供电电压允许偏差》(GB12325-1990)、《电能质量电压允许波动和闪变》(GB12326-2000)、《电能质量三相电压允许不平衡度》(GB/T 15543-1995)[2]。

从上述标准可以看出:国标已将反映电能质量的5个主要指标包括在内,这些指标和电力系统正常运行状态密切相关。衡量系统是否达到国家电能质量的标准能为电力系统的设计提供参考,通过对电能质量的监测,可以为电力部门提供电力系统运行的基本状态和性能情况,据此可以了解公用电网的电能质量水平和存在的问题,从而对公用电网的性能做出正确和全面的评估。进行有针对性的系统性能监测,主要是对特定的系统的质量问题进行监测,以便找到问题的根源,给出解决问题的办法和采取相应的措施。对于提高整个电力系统的电能质量也是必须的,对电能质量的测量势在必行。因此,设计高精度的电能质量监测装置用以监测及分析电网电能质量,从而有效的控制、治理电能质量,这有着十分重要的意义。

1.2 电能质量在线监测研究现状

早期电测量理论及仪表技术主要是模拟式的,即通过对模拟量的直接测量获取所需的电能质量各指标。这种方法设备复杂,不易于计算及控制。随着半

1

大连理工大学网络高等教育毕业论文(设计)

导体制造工艺的发展和计算机体系结构的改进,模拟测量仪表逐渐被数字式仪表所代替。自从20世纪70年代末第一片数字信号处理芯片(Digital Signal Processors,DSP)问世以来,DSP就以数字器件特有的稳定性、可重复性、可大规模集成,特别是可编程性高和易于实现自适应处理等特点,被应用到国民经济生活的各个方面。同样DSP也很快被广泛应用于电能的测量和控制领域。

国外对电能质量的重视和研究是在20世纪80年代末,经过多年的发展,已经有比较可靠的电能质量监测仪器和相应的管理软件,如瑞士LEM、美国Fluke以及瑞典Unipower等公司的产品,但这些产品价格昂贵,国内用户难以承受其费用[7]。

目前国外已有的电能质量测量仪中较好的产品有美国FLUKE公司的F43系列,瑞士LEM公司的LEM 3PQ,AN2060等。这些产品都具有如下特点:

(1) 众多的测量功能,包括有效值电压、电流、功率、基波功率因数、谐波、谐波相位、谐波失真总量、电压波动、闪变等;

(2) 可进行记录谐波测量高达50次; (3) 测量精度高;

(4) 数据分析时间较短,实时性好。

近几年,国内也加强了电能质量问题的研究,并投入了科研力量进行研发。当前国内研制的电能质量测量仪主要有两类,其中一类以工控机为主要结构,体积大、重量大、不便于携带使用。另一类则采用51、96系列单片机,其主要优点是构成简单、实现方便,价格也比较低廉,但存在一定的缺陷:

1.处理功能较差,可扩展存储空间较小,运算速度较慢,难以运用精确严格的算法进行大量的实时数据处理,不能满足电能质量监测高实时性的要求;

2.仪器仪表虽然都采用智能式,但分析功能较弱,只能对某一规定波动点进行报警;

3.有的产品虽然直接引进了国外的技术模块,功能较强,可是价格较高,不适应市场的要求;

4.缺乏决策判断的依据:由于监测手段落后,无法对监测点进行跟踪测试,难以深入分析造成电能质量的成因;

5.效率低:从发现电能质量的问题到解决该问题,往往需要很长的时间,不利于管理工作的展开,无法形成一个高效率的电能质量监督管理体系。

2

大连理工大学网络高等教育毕业论文(设计)

1.3 本文主要工作

根据电力行业的发展需要并综合考虑其实用性,开发了基于DSP的电能质量在线监测装置。系统的硬件设计采用了美国TI公司的DSP TMS320F2812为CPU,软件在TI公司提供的CCS2.2环境下开发。以五项国家标准《电能质量公用电网谐波》、《电能质量电力系统频率允许偏差》、《电能质量供电电压允许偏差》、《电能质量电压允许波动和闪变》、《电能质量三相电压允许不平衡度》为依据,对电能质量指标分析计算及实时监测。

针对当前电能质量监测装置的问题,本文提出了以下改进方案: 1.选择具有强大的数据处理能力,能进行复杂数学运算的核心DSP器件。能对各种电能质量指标进行快速、准确的计算。随着电力系统对实时性、测试参数和计算要求的不断提高,单片机在计算能力方面已不能很好地适应电力系统的要求,致使电力系统的高精度测量、实时监控和先进算法的运用受到了限制。DSP优势在于数字信号处理速度极快,这是设计实现电能质量监测装置的一个发展方向。

2. 能够和上位机进行通讯并支持多种通讯方式。在当前电力网、通讯网、因特网三网合一的趋势下,电力网日趋庞大和复杂,对于电力网稳定的要求越来越高,监测装置必须具有通讯功能才能使系统处于有效的监控之下。

本文的主要工作为电能质量在线监测装置硬件系统的设计与调试、软件系统的开发与实现。包括系统的总体结构设计、芯片选型、硬件电路设计、调试。其中硬件系统主要包括低通滤波模块、A/D采样模块、DSP核心处理模块、电源模块、外部扩展存储器(FLASH、SDRAM、EEPROM等)、实时时钟模块以及各通讯接口模块如以太网、RS232、RS485等。软件部分主要建立电能质量在线监测系统整体软件结构以及各模块功能的编程和调试。其中包括:DSP的自举及其基本功能测试、CPLD逻辑的设计,FLASH烧写、A/D采样的控制、SDRAM的读写、实时时钟(RTC)的读写、RS232和RS485的数据收发测试等。

3

大连理工大学网络高等教育毕业论文(设计)

2 电能质量在线监测装置的硬件设计

2.1 系统设计总体结构图

根据电能质量在线监测的要求[6] [7] [9],设计系统结构原理如图2.1所示。

图2.1 系统结构原理图

2.2 模拟量信号输入模块

装置设计模拟量输入范围:电压100V,电流5A。信号源阻抗小于100Ω。装置设计了4路CT、4路PT,D1、D2是瞬变电压抑制二极管,保护后面的电路元件不因瞬态高电压的冲击而损坏。电路图如下:

图4.2 CT、PT电路图

为了达到电磁兼容的要求,输入和输出能通过3000V@1min的交流耐压。

2.3 低通滤波器模块

由于模拟量输入电路中的互感器、变换器的影响,使得信号在进入数据采

4

大连理工大学网络高等教育毕业论文(设计)

集模块之前,所采样的信号混有各种频谱的信号,而这些信号很多是我们不需要的。在实际应用中,信号处理必须满足采样定理的要求,防止频谱混叠的发生。我们采用传统的方法,用模拟滤波器虑除高于采样频率fs一半的高频,但是由于模拟滤波器的物理特性,往往难以保证低通频带的较好的特性。装置采用模拟低通滤波与数字滤波相结合的方法提高抗混叠效果,减少单纯模拟滤波器的非平直通带特性带来的测量误差。

根据装置谐波测量的要求,低通滤波器设计中主要考虑以下因素。 (1)通带增益

通带增益是指滤波器在通频带内的电压放大倍数。性能良好的LPF通带内的幅频特性曲线是平坦的,阻带内的电压放大倍数基本为零。

(2)通带截止频率

其定义与放大电路的上限截止频率相同。通带与阻带之间称为过渡带,过渡带越窄,说明滤波器的选择性越好。

(3)过渡带

过渡带越窄表明选频性能越好,理想滤波器没有过渡带。

根据上述条件,分别设计了一阶有源和无源低通滤波器,二阶有源和无源低通滤波电路,截止频率均为3400Hz,并利用OrCAD/Pspice9.1进行仿真。电路原理图如图2.3所示,(a)图为一阶无源低通滤波器、(b) 图为一阶有源低通滤波器、(c) 图为二阶无源低通滤波器、(d) 图为二阶有源低通滤波器。仿真结果见图2.4。

(a) (b)

5

大连理工大学网络高等教育毕业论文(设计)

(c)

(d)

图2.3 低通滤波器原理图

(a)一阶无源低通滤波器

6

大连理工大学网络高等教育毕业论文(设计)

(b)一阶有源低通滤波器

(c)二阶无源低通滤波器

(d)二阶有源低通滤波器 图2.4 低通滤波器仿真结果

根据图2.4 OrCAD/Pspice9.1仿真的四种低通滤波器幅频和相频曲线可看出,一阶无源低通滤波器阻带衰减太慢,选择性较差。一阶有源低通滤波器效果和二阶无源低通滤波器比较相似。二阶有源低通滤波电路可使输出电压在高频段以更快的速率下降,以改善滤波效果,它比一阶低通滤波器的滤波效果更好。在几种滤波器当中,效果最好的是二阶有源低通滤波器。

本系统设定分析到50次谐波,在2.5kHz以下的通带内,增益基本为1,到3.4kHz时为0.707,以上设计均符合要求。

由于电流、电压信号通过CT/PT后,经滤波电路等进入AD采样,要保证信号不衰减,就要求降低滤波电路的功耗,考虑到信号传输过程的线性特性,要有良好的不失真波形,二阶有源、无源滤波都已经满足要求,考虑到经济性,装置设计选择二阶无源滤波,电路设计如图2.5所示。

7

大连理工大学网络高等教育毕业论文(设计)

图2.5 模拟低通滤波电路

2.4 AD转换模块

2.4.1 AD转换器的选择

ADC(A/D转换器)是数据采集电路的核心,在整个系统中占有重要的地位。没有高精度ADC的保证,高次谐波的计算将毫无意义。ADC的选择一般应视具体的工程应用而定,其原则通常有以下两点:

1、采样精度

ADC的采样精度是整个电能质量分析系统精度的保证,没有高精度的A/D转换,装置的测量的精度无从谈起。分辨率是决定A/D采样精度的一个重要参数,通常人们习惯用ADC输出二数的位数来说明ADC对输入信号的分辨能力。理论上讲,n位输出的ADC能区分2个不同等输入模拟电压,能区分输入电压的最小值为满量程的1/2。

《电能质量公用电网谐波》(GB/T 14549-1993)附录D5.3节中对A级电能质量分析仪表的精度有明确要求,当谐波电压Uh小于标称电压UN的百分之一时,电压允许误差是0.05%,即Uh≤0.05% UN。也就是说ADC至少要能达到1/2000的分辨率,同时,被测电流电压信号都是双极性信号,输出数字信号中必定有一位符号位,这种情况下,12位ADC仅刚能在理论上满足要求,14位ADC是最佳选择。然而在实际应用中,由于转换误差的存在,模数转换不可能达到理想精度。为了提高分析仪的性能及采样数据的准确率,本装置选用了16位高精度模数转换器。

2、采样速率

A/D转换器的采样速率是选择ADC的另一个重要的因素。为了降低频率混叠成分,提高能正确的谐波次数,需尽可能提高采样率。但是提高采样率又必需满足下列条件:

8

nn大连理工大学网络高等教育毕业论文(设计)

①AD具有较短的转换时间;

②AD具有较高的采样转换位数,否则两点之者的数据区分度不够; ③最重要的也是最关键的一点,软件最长程序流程的执行时间要求更短, 须小于两次采样间隔时间,否则会产生数据阻塞和重叠。

采样速率的高低主要取决于ADC的转换时间。不同类型的转换器转换速度相差甚远。其中并行比较ADC的转换速度最高,逐次比较型ADC次之,间接ADC速度最慢。A/D转换器的分辨率与其转换速率是相互制约的,ADC的分辨率越高,其转换所需要的时间就越长,转换速率也就越低。本装置检测信号正常为工频50Hz,每周波采集128个点,采样速率至少为50×128=6.4kSPS。综合考虑采样速度、精度要求、输入模拟信号的范围及输入信号的极性等方面,本装置最终选16位逐次逼近型模数转换器AD7656。 2.4.2 AD7656的工作原理

AD7656 是ADI ( 美国模拟器件公司) 在2006 年推出的16位、6通道、同步采样的逐次逼近( SAR) 型ADC。具有每通道达250kSPS的采样率,并且在片内包含一个2.5V内部基准电压源和基准缓冲器。片内含有采样保持器,这样可简化外部电路设计。仅有典型值160mW的功耗,比最接近的同类双极性输入ADC的功耗降低了60%。可由引脚和软件选择模拟电压范围:10 V或5 V (即2倍或4倍基准电压) ;模拟电源电压范围为+ 4. 75~+ 5. 25 V,因而大范围的工作电压使其无需电平转换等其他措施便可以直接与DSP相连;提供有并行和串行接口,兼容SPI/ QSPI/μwire/ DSP;采iCMOS制造技术和LQFP封装,可工作在- 40℃至+ 85℃。AD7656内部原理框图如图2.6

图2.6 AD7656内部原理框图

9

大连理工大学网络高等教育毕业论文(设计)

由于高精度的AD价格通常比较昂贵,电能质量在线监测装置需八路采样,如果为每路信号都使用一个AD的话成本将会大大增加,因此本系统采用二片AD7656,完成信号转换的作用。装置中AD7656的电路图如下:

图2.7 AD转换模块电路图

/CNVST、RESET、/CS、/RD为AD7656的四个输入控制端,BUSY是AD7656的状态标志输出端。DSP通过软件测频可以获得被测信号的频率,从而控制ADC的采样频率。具体的方法是,首先向/CNVST脚发出一个低脉冲信号触发触发ADC开始采样并转换,这个转换信号与片选/CS及读有效/RD无关,可以在任何情况下单独触发。一旦AD7656被触发转换,这个过程就不可以停止,直到转换结束。我们可以通过BUSY管脚获知AD7656的当前状态,当ADC闲置不工作时,BUSY管脚为低电平,一旦ADC被触发转换,BUSY随之变为高电平,直到转换过程完毕并且数据准备好。因此,BUSY管脚的下降沿可以用作通知DSP读取AD7656数据的中断触发信号。

2.5 DSP核心系统模块

DSP核心系统模块由DSP和CPLD以及一些外扩存储器如FLASH、SDRAM等构成,原理图如图2.8所示。

30MHz晶振 JATG DSP TMS320F2812 @150MHz SPI串行接口 RS232 DSP总线 SRAM 256K×16位 FLASH 256K×16位

图2.8 DSP核心系统原理图

10

大连理工大学网络高等教育毕业论文(设计)

2.5.1 DSP芯片结构特点和性能指标

数字信号处理器(DSP)是一种具有特殊结构的微处理器。DSP内部采用程序总线和数据总线分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,并提供特殊的数字信号处理指令,可以用来快速的实现各种数字信号处理算法。根据数字信号处理的要求,DSP一般具有如下的主要特点[3] [12] [13]:

在一个指令周期内,可完成一次乘法和一次加法; 程序和数据空间分开,可以同时访问指令和数据;

片内具有快速RAM,通常可以通过独立的数据总线,在两块芯片中同时访问; 具有低开销或无开销的循环及跳转的硬件支持; 快速的中断处理和硬件I/O接口支持; 具有在单周期内操作的多个硬件地址产生器; 可以并行执行多个操作;

支持流水线操作,使取指、译码、取操作数和执行等操作可以重叠执行。 2.5.2 DSP处理器选择

考虑到装置在谐波测量中采用的是基于FFT的算法,且需要同时完成8路信号的采样、处理和数据分析。综合比较了TI、ADI、Motorola等公司的DSP,最终选择了TI公司的TMS320F2812。其内部结构如图2.9。

TMS320F2812是基于代码兼容的C28x内核的新型高性能32位定点数字信号处理器,其代码与F24x/LF240x系列DSP代码及部分功能相兼容,C28x内核的指令执行周期达到了6.67ns,最高运行频率可以达到150MHz,保证了控制系统有足够的运算能力。

此外,F2812集成有许多外设,提供了整套的片上系统,从而降低了系统成本,实现更简单、高效的控制。其片上外设主要包括2×8路12位ADC(最快80ns转换时间),2路SCI,1路SPI,1路McBSP,1路eCAN接口等,并带有两个事件管理模块(EVA、EVB),分别包括6路PWM/CMP,2路QEP,3路CAP,2路16位定时器。另外,该器件还有3个独立的32位CPU定时器,以及多达56个独立编程的GPIO引脚。

11

大连理工大学网络高等教育毕业论文(设计)

图2.9 TMS320F2812内部结构图

2.6 电源模块

对于一个系统来说,电源是非常重要的一个环节,其性能的优劣决定了系统的成败,最大程度上决定了一个系统的寿命和工作的稳定。 2.6.1 系统对电源的要求

以TMS320F2812构成的核心系统所需要的电源有: (1) TMS320F2812 DSP芯片 a 核电压V核:+1.9V@230mA; b IO口电压Vi/o:+3.3V@125mA;

c 上电顺序:先Vi/o上电后V核上电,时间间隔不要超过1s。 (2) 存储器SRAM:+1.5V (3) 其余:+3.3V

12

大连理工大学网络高等教育毕业论文(设计)

2.6.2 电源电路设计要点

DSP系统设计中可采用的电源电路有:线性稳压器方案、开关电源控制器方案、开关电源模块方案,三种方案各有特点,不同电路的优缺点比较如图2.10。

直流输入 5V 线性稳压器 优点:简单、成本低 缺点:效率低 直流输出 Vcore VI/O 开关电源控制器 直流输出 优点:大电流、高效率 缺点:占地大 开关电源模块 优点:高效率、方便 缺点:成本高 直流输出 图2.10 各电源电路优缺点比较

电源电路的设计主要如下因素: (1) 转换效率、成本和空间; (2) 输入电压的范围; (3) 输出电压; (4) 输出电流; (5) 控制/状态; (6) 上电顺序。

由于TMS320F2812、Flash、ADC及I/O等需要双电源(1.9V和3.3V),且在上电期间,必需为所有模块赋予正确的复位状态,而不同器件的上电/掉电都需要满足相应的要求。对所有3.3V供电引脚及斜线1.9V供电引脚的电源使能,在I/O电源达到2.5V之前,1.9V电源不会达到0.3V,这样可保证来自I/O引脚的复位信号通过I/O缓冲器的作用为芯片内部所有模块提供上电复位。在掉电期间,在1.9V电源供电达到1.5V之前,器件复位将变低(8us,最小),这有利于使片内Flash逻辑保持在复位中,并先于3.3V的向下斜线的供电。

TMS320F2812有5类典型的电源输入: 1.CPU核电源输入; 2.i/o电源输入;

13

大连理工大学网络高等教育毕业论文(设计)

3.PLL电路电源输入; 4.Flash编程电源输入; 5.模拟电路电源输入。

电路设计时需要将DSP上的所有电源引脚连到各自的供电电源上。TI DSP的上电次序一般是CPU内核先于I/O上电,后于I/O掉电。但是本设计所选的TMS320F2812属于TMS320F281X,这个系列是个例外,其要求是I/O先上电,CPU核后上电。CPU内核与I/O上电时间应尽可能保持一致,二者时间相差过长(一般不超过1s)可能会影响器件的寿命或者损坏器件。

在本装置中,电源电路的设计采用TPS75733作为+3.3V@3A电源,采用TPS76801作为+1.9@1A的电源。

由于Vi/o先上电,所以TPS75733一直被使能,它产生的FB//PG信号控制TPS76801的使能端,从而实现V核后上电。电源电路原理图如图2.11。

图2.11 电源电路图

2.7 复位电路设计

在设计复位电路时,可以采用TI公司推出的TPS382x系列电压监控电路,它主要包括TPS3820-xx、TPS3823-xx、TPS3824-xx、TPS3825-xx和TPS3828-xx这五种芯片[4]。TPS382x系列器件不需要外围电路即可组成监控电路,同时具有看门狗、手动复位、低电平复位等功能。其主要特点如下:

1) 在微处理器上电时,会产生一个延迟200ms的低电平复位脉冲信号。 2) 具有手动复位功能,可监控电压为:2.5V、3V、3.3V、5V。

3) 具有Watchdog电路,外触发脉冲时间间隔不小于1.6s时,将产生一个低

电平复位输出。

4) 供电电压范围:1.1V~5.5V,输出电流15uA(典型值)。

14

大连理工大学网络高等教育毕业论文(设计)

5) SOT23-5封装,工作温度范围:-40度~85度。

根据上述原理,可选用TPS3823复位芯片,加上一些外围电路构成复位电路,确保在系统运行出现故障时可方便地人工复位,如图2.12所示,本装置采用TPS3823-33设计复位电路。当TPS3823芯片的/MR引脚为低时,便产生低电平RESET信号,使DSP复位。

图2.12 系统复位电路

2.8 时钟电路设计

系统中需要时钟输入的器件有:TMS320F2812 CPU主时钟150MHZ、看门狗电路、CPU定时器、eCan总线控制器、SCI、SPI、McBSP、事件管理器(EV)、ADC等片上外设。 2.8.1 时钟电路的类型

时钟电路一般有三种:晶体、晶振和可编程时钟芯片。

晶体Crystal是晶体谐振器的简称,是一种压电石英晶体器件,具有一个固有的谐振频率,在恰当的激励作用下,以其固有的频率振荡。

振荡电路Oscillator是为晶体提供激励和检测的电路。

晶振Crystal Oscillator是将晶体、振荡器和负载电容集成在一起,其输出直接为一方波时钟信号。

锁相环电路PLL(Phase-locked Loops)是用于对输入时钟信号进行分频或倍频的电路。

(1) 晶体时钟电路

其优点是电路结构简单,只需要一个晶体加两个电容,价格便宜,占地小;时钟信号电平容易满足要求。

其缺点是驱动能力差,不可以提供给多个器件使用;频率范围也比较小,一般为20KHZ至60MHZ。

15

大连理工大学网络高等教育毕业论文(设计)

(2) 晶振时钟电路

其优点是电路简单,占地小;频率范围宽,一般可达1HZ至400MHZ;驱动能力比较强,可提供多个器件使用。

缺点是成本较高,晶振的频率已经确定,多个独立的时钟信号需要多个晶振。 另外,一般的晶振输出信号电平为5V或3.3V,对于要求输入时钟信号电平为1.8V的器件,一般不能选用晶振来提供时钟信号。

(3) 可编程时钟芯片

其优点是电路简单、占地小,只需要可编程时钟芯片+晶体+2个外部电容;多个时钟输出,可以产生特殊的频率值,适合于多时钟源的系统;输出时钟信号频率现场可编程,并可用专用软件进行设计;驱动能力很强,可提供多个器件使用;另外频率范围也比较宽,可达200MHZ。

缺点是成本高,对多时钟源系统来说,总体成本还是比较低。另外,可编程时钟芯片输出信号电平一般为5V或3.3V。 2.8.2 时钟电路的选择

由上面的分析可以知道,晶振和可编程时钟芯片电路的输出信号电平一般为5V或3.3V,而TMS320F2812的时钟信号电平不能超过核电源电压+1.9V,所以本系统只能选择使用晶体时钟电路。另外,使用DSP片内的锁相环(PLL),降低片外的时钟频率,以提高系统时钟的稳定性。CPU时钟电路如图2.13:

图2.13 CPU时钟电路

CPU定时器、eCan总线控制器的输入时钟由片内SYSOUTCLK得到,在装置中设计为150MHz;看门狗电路的输入时钟由晶体振荡器时钟(OSCCLK)得到,在装置中设计为30MHz;SCI、SPI、McBSP属于低速外设,它们的输入时钟由SYSOUTCLK经低速外设分频器分频得到,装置设计时钟为由SYSOUTCLK经低速外设分频器4分频得到,时钟为37.5MHz;事件管理器(EV)、ADC属于高速

16

大连理工大学网络高等教育毕业论文(设计)

外设,它们的输入时钟由SYSOUTCLK经高速外设分频器分频得到。装置设计使用了事务管理器A(EVA),其时钟由SYSOUTCLK经高速外设分频器6分频得到,时钟为25MHz。

2.9 存储器电路设计

2.9.1 DSP系统存储器电路基础

(1) 存储器电路的两个主体:存储器+存储器控制器。

(2) 三总线接口:两个主体之间以数据、地址和控制三总线连接。 a 数据总线:双向传输,在读/写过程中在三态/输入/输出之间动态变化; b 地址总线:由存储器控制器输出给存储器,来选择存储单元; c 控制总线:由存储器控制器输出给存储器,来控制读/写单元。

(3) 二种基本操作:数据、地址和控制总线之间以一定时序完成相应的操作。 a 读操作:控制器驱动地址、控制总线,存储器放数据到数据总线,读操作后释放数据总线;

b 写操作:控制器驱动地址、控制总线,并放数据到数据总线,写操作后释放数据总线。

(4) 存储器接口类型

存储器接口类型可分为:异步存储器接口和同步存储器接口两大类型。 a 异步存储器接口类型是最常见的,也是我们最熟知的,MCU一般均采用此类接口。相应的存储器有:SRAM、Flash、NvRAM等,另外许多以并行方式接口的模拟/数字I/O器件,如A/D、D/A、开入/开出等,也采用异步存储器接口形式实现。

b 同步存储接口相对比较陌生,一般用于高档的微处理器中,TI DSP中只有C55x和C6000系列DSP包含同步存储器接口。相应的存储器有:同步静态存储器:SBSRAM和ZBTSRAM,同步动态存储器:SDRAM,同步FIFO等。SDRAM可能是我们最熟知的同步存储器件,它被广泛用作PC机的内存。 2.9.2 TMS320F2812的外部存储器接口

(1) 接口信号相关内容

16位数据总线,读/写控制信号。 (2) 接口配置能力

17

大连理工大学网络高等教育毕业论文(设计)

TMS320F2812可以通过存储器全局控制寄存器来配置时钟频率,也可以通过空间控制寄存器分别配置建立时间、读/写宽度和保持时间。另外,此DSP芯片只支持异步存储器[4]。

2.9.3 TMS320F2812的外部存储空间分配及存储器选择

(1) TMS320F2812存储空间映射[3]

TMS320F2812存储空间采用哈佛结构,但程序、数据空间统一为4M×16位物理空间,外部存储器接口只支持异步存储器接口,19位地址总线,16位数据总线,5个存储空间(zone 0,zone 1,zone 2,zone 6,zone 7)和3个片选信号(XZCS0&1、XZCS2、XZCS6&7),3个读/写控制信号(XRD、XWE、XR/W),访问时序控制信号XRDY,总线仲裁控制信号XHOLD和XHOLDA。

zone 0:8K×16位, 0x00 2000------0x00 3FFF; zone 1:8K×16位, 0x00 4000------0x00 5FFF; zone 2:512K×16位,0x08 0000------0x0F FFFF; zone 6:512K×16位,0x10 0000------0x17 FFFF;

zone 7:16K×16位, 0x3F C000------0x3F FFFF;MP/MC=1 BootRom:4K×16位,0x3F F000------0x3F FFFF;MP/MC=0 复位后,程序从0x3F FFC0处开始执行。 (2) 存储器选择

由于TMS320F2812的IO口是3.3V,并且只支持异步存储器,此处选择256K×16位的异步存储器CY7C1041CV33。此芯片是256K×16位高速异步CMOS静态RAM,其特性如下:

a 高速访问,8、10、12ns可供选择;可与TMS320F2812的时钟周期为6.67ns相匹配;

b CMOS低功耗操作,支持低功耗,典型功耗低于5mA;由于TMS320F2812也是低功耗芯片,使用支持低功耗存储器可降低DSP输出电流,降低其温度;

c 与TTL接口兼容;与TMS320F2812的接口电路方便;

d 只需一个3.3V供电,TMS320F2812的IO口电压为3.3V,方便存储器的供电,同时可以降低DSP的输出功率;

e 完全的静态操作:不需要时钟和刷新;方便DSP快速访问存储器; f 支持高字节和低字节的数据控制,使得数据传输和处理方便。

18

大连理工大学网络高等教育毕业论文(设计)

DSP与外扩SRAM接口电路如图2.14,DSP与外扩FLASH接口电路如图2.15:

图2.14 外扩SRAM电路图

图2.15 外扩FLASH电路图

2.10 人机接口模块

2.10.1 液晶显示接口电路设计

液晶显示器具有低损耗、低价格、寿命长、接口方便等优点被广泛应用于智能仪器仪表。

其中点阵式液晶显示模块是一种较低价位、具有较高显示功能的显示器件。显著特点是性能稳定、可进行简单的图形显示,适用于不需要复杂图形显示功能的场合。

19

大连理工大学网络高等教育毕业论文(设计)

根据装置所要的实现功能,采用128×64点阵的T6963C液晶模块,DSP内部含有128K×16位的FLASH,它可以方便的作为外部程序区来存储程序与外部字库。对于液晶显示屏的数据接口,一般由3.3V-5V供电,而TMS320F2812的IO口为3.3V,也可以驱动5V的外设,所以设计过程中可以将DSP的数据总线和T6963C的数据总线直接相连,这样DSP可以很方便的将ROM或RAM中的数据直接送入控制器的缓存中显示,装置设计时考虑到操作时序及T6963C的特点,采用CPLD来控制液晶[17]。TMS320F2812与T6963C硬件接口如图2.16所示。

图2.16 T6963C液晶电路图

2.10.2 键盘接口电路设计

由于用户需要对装置进行有关的功能选择操作,所以设计了一个4×4键盘。由于本装置对键盘的实时性要求不高,因此采用查询法设计。键盘电路如图2.17所示。

图2.17 键盘电路原理图

20

大连理工大学网络高等教育毕业论文(设计)

2.11 RTC时钟模块

装置需要准确记录发生电压闪变、波动等的时间,设计了时钟电路,选用X1226时钟芯片。X1226是一个带有时钟、日历、两路报警、512×8位的EEPROM,振荡器补偿和电池切换的实时时钟。 振荡器用一个外部的、低价格的32.768Khz晶体。所有补偿和调整元件集成于芯片上。这样去除了外部的分立元件和一个调整电容,简化了电路设计,减小了PCB面积和元器件的费用。

实时时钟分别用时、分、秒寄存器跟踪时间。日历有日期、星期、月和年寄存器,日历可正确通过2099年,具有自动闰年修正。

X1226器件可提供4Kbit的EEPROM,可用作用户数据存储的存储器,具有安全、保密性。这个存储器在主电源和备用电源全都失效时不受影响。X1226为装置提供时间信息,原理图如下:

图2.17 RTC时钟电路图

2.12 通信模块

2.12.1 串口通信

2.12.1.1 RS232

RS232是异步串行通信中应用最广的标准总线,是美国电子工业协会正式公布的异步串行通信标准,用来实现计算机与计算机之间、计算机与外设之间的数据通信。其数据传输速率一般最高为20kbit/sec。F2812中的RS232通信通过DX0和RX0两根信号线进行与计算机通信。电平采用负逻辑,即逻辑1(-3~-15V)逻辑0(+3~+15V)。由于光耦隔离端电压为+5V标准,而RS232发送端口可能需要±10V的电压水平。因此在对外部收发信号端还应加一块SP202EEN收发器作为电平转换,装置中用来与计算机短距离的传输数据使用。电路如图2.18。

21

大连理工大学网络高等教育毕业论文(设计)

图2.18 RS232接口电路图

2.12.1.2 RS485

RS485标准是一种多发送器的电路标准,它扩展了RS422A的性能。它允许双导线上一个发送驱动32个负载设备,负载设备可以是被动发送器、接收器或收发器。对驱动器和接收器规定了双端电气接口形式,把电位差转变成逻辑电平,实现终端的信息接收[15]。RS485采用平衡发送和差分接收方式来实现通信:在发送端TXD将串行口的TTL电平信号转换成差分信号A、B两路输出,经传输后在接收端将差分信号还原成TTL电平信号。两条传输线通常使用双绞线,由于是差分传输,因此有极强的抗共模干扰的能力,接收灵敏度也相当高,最大传输速率和最大传输距离也大大提高[16]。

设计选用了TI的SN65HVD485E半双工RS485收发器,其供电电压仅为5V,完全符合TIA/EIA-485A标准,工作电流很低(小于2mA),完全和TIA/EIA-485标准兼容,在很长双绞线对的数据传输速率高达10Mbps,总线引脚的ESD保护高达15KV,1/2单元负载,总线上可多达64个节点,并且拥有业界标准的SN75176封装以及集成的接收器故障保护设计,因此消除了采用外部组件的麻烦,可提供小型MSOP-8封装,工作温度-40度到+85度。本装置选择用485与后台服务程序通信。电路如图2.19

图2.19 RS485接口电路图

22

大连理工大学网络高等教育毕业论文(设计)

2.12.2 以太网

近年来,电能质量监测装置的通信方式在不断改进。最早是用RS485总线用主从方式与主机通信,方式简单,技术缺陷也很多。后来出现的现场总线技术因为组网方便、抗干扰能力强等特点得到广泛的应用。随着电网的发展,现场总线标准不统一、传输速率低(最大也仅为1Mbit/s左右)的局限性逐渐暴露出来。以太网具有通用性强,技术成熟,带宽迅速增加等特性,工业控制领域出现嵌入式技术,尤其是DSP技术的发展和DSP在工业控制领域的广泛应用,使得在电能监测系统设计时可以利用嵌入式技术实现以太网通信。

本装置选用Cirrus Logic公司的10M/100Mbps的以太网控制器CS8900A作为以太网接口的控制芯片。

CS8900A是Cirrus公司生产的一种高集成度的全面支持IEEE802.3标准的以太网控制器。CS8900A支持8位、16位的微处理器,能够工作在I/O方式或Memory方式。片内整合了ISA总线接口,能够直接和有ISA总线的微处理器系统无缝连接。片内整合了4KB容量的Packet Page结构的RAM,这4KB存储器映像结构的RAM包括片内各种控制、状态、命令寄存器,连同片内发送、接收缓存。用户能够以I/O方式、Memory方式或DMA方式访问他们。电路如图2.20

图2.20 以太网电路图

23

大连理工大学网络高等教育毕业论文(设计)

2.13 硬件电路中的抗干扰措施

由于电磁干扰在空间内无孔不入,但因其能量较弱,只有通过信号输入环节进行放大后才能对电路发生作用。为确保装置具有较高的抗干扰能力,对输入电路采取硬件抗干扰措施主要包括:

信号输入端加设RC滤波器,通过设置RC参数,只允许某一频带的信号通过,降低对干扰源频带的敏感性。

根据用途的不同设置不同的电源,减小共电源共阻抗引起的干扰。模拟量电源、数字电源、开关量电源及通讯电源等分开。使用高质量的开关电源。

在印刷电路板的设计阶段,除了保证布线正确合理以外,针对DSP硬件系统中最容易出现高频干扰的特点,在布线时尽量使高频线短而粗,且远离易受干扰的信号线,如模拟信号线。此外,电源滤波、模拟线与数字线相分离。

2.14 小结

本章主要介绍电能质量在线监测装置硬件结构的总体设计,包括前向通道的设计、采样及A/D转换的设计、DSP核心处理模块、通信模块、电源模块。重点介绍了核心处理模块TI DSP TMS320F2812的整体结构、功能及A/D转换等模块的硬件设计。

24

大连理工大学网络高等教育毕业论文(设计)

3 系统软件设计

3.1 DSP软件开发环境及流程

基于DSP的系统设计需要一套完整的开发平台,开发平台含有代码生成工具和代码调试工具。

DSP的硬件开发环境建立于相应的仿真系统,该仿真系统采用先进的扫描仿真器。传统的电路仿真器的电缆插头必须插入到用户硬件电路中CPU芯片的相应位置,即仿真器的电缆插头引脚必须与CPU芯片的引脚一一对应。而扫描仿真器则通过仿真信号线的JTAG接口方便地与目标系统进行数据交换,消除了传统电路仿真存在的仿真电缆过长引起的信号失真、仿真插头引起的可靠性差等问题,用户程序可在目标系统的片内或片外存储器实时运行,不会因仿真器引入而增加额外的等待状态。

CCS是code composer stdio的简称是TI公司的DSP集成开发环境。它提供了源文件编辑、程序调试、跟踪和分析等工具,可以使用户在一个软件环境下完成程序的编辑、编译链接、调试和数据分析等工作。CCS一般工作在两种模式下:软件仿真器和与硬件开发板相结合的在线编程。前者可以脱离DSP芯片,在PC机上模拟DSP的指令集与工作机制,主要用于前期算法实现和调试。后者实时运行在DSP芯片上,可以在线编制和调试应用程序。

DSP单元的软件设计通常采用混合编程的方法,即大部分采用C语言,中间某些部分根据系统的要求及数据处理的特点穿插汇编语言。因为汇编语言可以提高程序代码的效率,节省CPU的时间,满足实时性的要求。但是由于其编程复杂,一些算法实现起来困难,所以采用了混合编程的方法,这有利于缩短开发周期。

3.2 系统软件流程

3.2.1 主程序流程图

系统主程序流程如图3.1所示,主程序完成对系统的初始化,设定各种标志位和相应状态寄存器,然后等待中断,判断数据是否采集完毕,在数据采集完后跳转至运算子程序,进行后续的计算工作。DSP进行数据采集时由定时器输出触发信号作为A/D转换的启动信号,转换完成后产生中断信号。DSP接收到中断信号即执行采样中断服务程序,进行相应的数据处理。

25

大连理工大学网络高等教育毕业论文(设计)

开始 系统初始化 采样第一周波按照50Hz定时采样 设置采样标志 中断开始采样,打开通讯功能 软件测频率 调整采样间隔时间 频率是否是50Hz N Y 数字滤波 数据处理,数据存储 刷新数据显示(LCD) 结束

图3.1 主程序流程

26

大连理工大学网络高等教育毕业论文(设计)

3.2.2 采样子程序流程图

主程序入口 参数初始化 获取采样间隔T 设置定时器 N 开始采样? Y 产生定时器中断? 进入中断服务程序 启动CS/CONVST信号 AD7656产生INT中断 进入XINT中断服务程序,开通讯功能 启动CS、RD信号 从AD7656读取转换结果 采完128点? Y 返回主程序 N

图3.2 采样子程序流程

27

大连理工大学网络高等教育毕业论文(设计)

3.2.3 系统测频子程序流程

电力系统频率一方面作为衡量电能质量的指标,需加以动态监测,另一方面作为实时监测系统的重要反馈量,要求能实时重构。因此,频率测量成为电力系统参数测试测量的重要技术[11]。频率测量的方法主要有两种:以硬件电路为主的硬件测量法和基于交流采样值处理的软件测量法。

(1) 硬件测量方法,其硬件原理如图3.3所示。

u(t) 电压 形成 低通 滤波 电 压 比较器 INT CPU

图3.3 频率硬件测量示意图

其中低通滤波器用于滤除电压信号中的高频成分,电压比较器将正弦波信号变换成同频率的方波信号,由方波信号的上升沿或下降沿向CPU提出中断。CPU通过测量相邻两个中断间的时间间隔来求取电压信号周期,以此得到系统的频率值。

(2) 软件测量方法

软件测量的方法又有多种: a 周期法

通过信号波形相继过零点的时间宽度来计算频率,其原理与硬件测频法相同。但是该方法精度低,受谐波噪声非周期分量的影响,实时性不好。因此,实用的测量装置很少单一地应用原始周期算法。

b 解析法

对信号观测模型进行数学变换,将待测量f表示为样本值的显函数来估计。解析法测频的特点是:涉及复杂的数学推导,为简化分析和计算,只能采用简单的信号观测模型,难以考虑谐波、非周期分量和噪声影响;算法简明,计算量不大,较传统的周期法有所改进,但难以适应非稳态频率的测量,即使在稳态条件下,也必须有严格的前置滤波环节,且算法推导有近似化过程,精度总体不高。

c 误差最小化原理类算法

采用含噪声的信号观测模型,算法设计以最小化误差的某种范数为目标,由于数学分析和信号处理领域对此类算法有详细的阐述,故问题的关键在于将测量求解化为相应的标准格式,并减少计算量。

d DFT(FFT)类算法

28

大连理工大学网络高等教育毕业论文(设计)

假定输入信号是角频率为?的正弦电压: u(t)?Asin(?t??),

式中:???0???,???????2??ft?? ?为初相位,A为幅值,?0?2?f0,f0?50Hz。

对采样值进行傅立叶变换,可以得到基波分量的实部和虚部分别为:

2UR?N?uncosn?0N?12?n N2N?12?UI??unsinn;

Nn?0NUI??argtanUR 基波分量相位变化

为了测量频率的变化?f,并从f?f0??f求得f,如果每周采样N次,得到N个采样值,计算出UI和UR,然后求得基波分量相位变化?1。同样利用后N个采样值可求出?2,利用下式即可计算出频率的变化?f:

因为:

??2??ft?? d?1?2??11?2??11?2??1?2??f1d??f????dt 2?dt2?N?tT2?2?T0N0T01N所以 ; ?t?,T0?,f0?50HzNf0式中?t为采样间隔,,N为每周期采样次数。 以上几种算法理论分析上比较合理,但在实际使用中很不理想。特别后三种算法需要做大量的运算,势必占用CPU大量的时间,对频率的测量已经有很大误差。本次设计提出了另外一种基于周期法的频率测量软件同步采样法,可以使采样时间间隔动态调整[11]。这种方法经实践证明精度可以满足装置的要求,同时有效的降低了硬件成本。

该方法的基本原理是先按照电网频率50Hz进行采样,采样频率为6.4KHz,定时采样后判断每一个采样点,当判断出采样值过零后,记住此次过零采样点的序号,再次出现同向过零时记下序号,判断两次序号的差值,如果为128说明频率没有变化,如果大于或小于128,就相应的调整定时器的初值,这样就可以做到准同步采样,并且频率的测量精度也有所提高。测频流程图如图3.4

29

大连理工大学网络高等教育毕业论文(设计)

初始化EV定时器1,0.15625ms中断一次 初始化EV定时器2,计数器计数周期0.32 us 进入外部中断,读取采样结果 继续 采集 根据采样值判断是否过零记下采样序号 设置标志位flag=0; EV定时器2开始计时 继续 采集 判断是否再次同向过零,记下采样序号 设置标志位flag=1; EV定时器2停止计时,计算当前频率 调整EV定时器1的定时初值,做到准同步采样 判断采样序号差值是否128,频率是否为50Hz?

图3.4 软件测频子程序流程

3.2.4 C语言生成的段和CMD文件

使用段的好处是模块化编程,以强大而灵活的方法来管理代码和目标系统的内存空间。在DSP程序设计中,程序执行过程有许多地方需要跳转,所以需要明确跳转的目标地址。但实际上,这是很不好控制的,所以TI公司提出了CMD文件的概念。它最大的好处是可以对每个段分配地址,所以当程序从一个段跳到另一个段的时候,就很方便的知道这个段的起始地址。

CMD的基本原理是用于分配rom和ram空间,告诉链接程序怎样计算地址和

30

大连理工大学网络高等教育毕业论文(设计)

分配空间。不同大小的rom和ram,放置用户程序的地方也不尽相同。所以要根据系统具体的情况修改.cmd文件,CMD文件分两部分:MEMORY和SECTIONS。

Section( 段)指一块连续的储存空间,用于存放代码块或数据块,在编程时,“段”没有绝对定位,每个“段”都认为是从0地址开始的一块连续的储存空间,所以软件开发人员只需要将不同代码块和数据块放到不同的“段”中,而无需关心这些“段”究竟定位于系统何处。这样做的特点是便于程序的模块化编程和工程化管理。

系统定义:

.cinit :存放C程序中的变量初值和常量;

.const :存放C程序中的字符常量、浮点常量和用const声明的常量; .switch :存放C程序中switch语句的跳针表; .text :存放C程序的代码;

.bss :为C程序中的全局和静态变量保留存储空间; .far :为C程序中用far声明的全局和静态变量保留空间;

.stack :为C程序系统堆栈保留存储空间,用于保存返回地址、函数间

的参数传递、存储局部变量和保存中间结果;

.sysmem :用于C程序中malloc、calloc和realloc函数动态分配存储空间 用户定义段

#pragma CODE_SECTION (symbol, \#pragma DATA_SECTION (symbol, \

在TMS320F28XXX DSP里,代码从内部flash里运行,比从内部RAM里运行要慢30%左右,所以对运行时间苛刻的程序直接在flash里运行,往往不能满足要求。故而,需要将代码拷贝到RAM以提高运行速度[14]。本文通过对

TMS320F28XXX 的启动代码研究,参考TI公司提供的文档,实现了从FLASH启动后将整个代码段拷贝到RAM中,然后在RAM中运行的方法,其中主要的工作就是对CMD文件的编写,此处提供本装置烧写使用的CMD文件。

-l rts2800_ml.lib MEMORY {

PAGE 0:

ZONE0 : origin = 0x002000, length = 0x002000

31

大连理工大学网络高等教育毕业论文(设计)

ZONE1 : origin = 0x004000, length = 0x002000

RAML0 : origin = 0x008000, length = 0x001000 ZONE6 : origin = 0x100000, length = 0x020000 OTP : origin = 0x3D7800, length = 0x000400 FLASHJ : origin = 0x3D8000, length = 0x002000 FLASHI : origin = 0x3DA000, length = 0x002000

FLASH_GH : origin = 0x3DC000, length = 0x008000

FLASH_EF : origin = 0x3E4000, length = 0x008000 FLASH_CD : origin = 0x3EC000, length = 0x008000 FLASH_AB : origin = 0x3F4000, length = 0x003F80 CSM_RSVD : origin = 0x3F7F80, length = 0x000076 CSM_PWL : origin = 0x3F7FF8, length = 0x000008

RAM_H0

: origin = 0x3F8000, length = 0x002000

ROM : origin = 0x3FF000, length = 0x000FC0 RESET : origin = 0x3FFFC0, length = 0x000002 VECTORS : origin = 0x3FFFC2, length = 0x00003E PAGE 1 :

RAMM0 : origin = 0x000000, length = 0x000400 RAMM1 : origin = 0x000400, length = 0x000400 RAML1

: origin = 0x009000, length = 0x001000

}

ZONE6 : origin = 0x120000, length = 0x018000

SECTIONS {

csmpasswds : > CSM_PWL PAGE = 0

PAGE = 0

csm_rsvd : > CSM_RSVD

codestart : > BEGIN_FLASH, PAGE = 0

: > FLASH_CD,

PAGE = 0 PAGE = 0

wddisable

copysections : > FLASH_CD,

FFTtf > FLASH_CD, PAGE = 0

FFTipcb ALIGN(256) : { } > RAML1, PAGE = 1

32

大连理工大学网络高等教育毕业论文(设计)

FFTmag > .stack .ebss .esysmem .cinit :

RAML1, PAGE = 1

: > RAMM0, PAGE = 1

: > ZONE6, PAGE = 1

: > RAMM1, PAGE = 1

PAGE = 0

LOAD = FLASH_CD,

.const :

.econst :

.pinit :

.switch :

.text :

RUN = RAM_H0, PAGE = 0

LOAD_START(_cinit_loadstart),

RUN_START(_cinit_runstart), SIZE(_cinit_size)

LOAD = FLASH_CD, PAGE = 0 RUN = RAM_H0,

PAGE = 0

LOAD_START(_const_loadstart),

RUN_START(_const_runstart), SIZE(_const_size)

LOAD = FLASH_CD, PAGE = 0 RUN = RAM_H0, PAGE = 0

LOAD_START(_econst_loadstart),

RUN_START(_econst_runstart), SIZE(_econst_size)

LOAD = FLASH_CD, PAGE = 0 RUN = RAM_H0,

PAGE = 0

LOAD_START(_pinit_loadstart),

RUN_START(_pinit_runstart), SIZE(_pinit_size)

LOAD = FLASH_CD, PAGE = 0 RUN = RAM_H0,

PAGE = 0

LOAD_START(_switch_loadstart),

RUN_START(_switch_runstart), SIZE(_switch_size)

PAGE = 0 RUN = ZONE6, PAGE = 0 33

LOAD = FLASH_CD,

大连理工大学网络高等教育毕业论文(设计)

LOAD_START(_text_loadstart),

RUN_START(_text_runstart), SIZE(_text_size)

IQmath : > FLASHI PAGE = 0 IQmathFastTables : > FLASHI PAGE = 0 IQmathTables : > ROM PAGE = 0 }

3.2.5 定点DSP中浮点数处理方法

定点DSP芯片本身无能力处理浮点数,但不是说DSP芯片就不能处理小数。处理小数的方法有三种:

1) 把变量定义成float型。C语言中自动调用库函数来处理浮点数运算,在

高级语言的层次上,C语言“抹平”了定点处理器和浮点处理器的差别,用户的编程工作量少,但是编译出来的代码也最大。float类型精度最高,运算速度也最慢,一个简单的浮点加法也需要用好多汇编指令完成,在嵌入式应用中的很多情况中是不合适使用float型数据的。

2) 变量仍定义为整形变量类型(int和long型),采用放大若干倍来表示小

数,但这是一个比较僵硬的做法,如果数据的精度重新定义,那么整个程序就要重新编写,以防止溢出。

3) 变量仍定义为整形变量类型(int和long型),采用定标法来确定小数。

这其中的关键就是由程序员来确定一个数的小数点处于32位中的哪一位,这就是数的定标。

TI公司采用Q格式来表示数的定标,如下图,当假定小数点(图中以实心原点表示)位于第5位的右侧时,为Q5格式。 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 浮点数与定点数之间的转换公式如下: xfxqxq?(int)(xf?2Q)浮点数转换成定点数时,

34

.reset : > RESET, PAGE = 0, TYPE = DSECT vectors

: > VECTORS PAGE = 0, TYPE = DSECT

● 大连理工大学网络高等教育毕业论文(设计)

定点数

xq转换成浮点数

xf时,

xf?(float)(xq?2?Q)

在Q格式中,Q之后的数字(如Q15格式中的15)决定小数点右边有多少位二进制位,故Q15表示在小数点后有15位小数。当用一个16位的字来表示Q15格式时,在MSB(最高位)的右边有一个小数点,而MSB表示符号位。所以Q15的表示数字可表示范围从+1(以+0.999997表示)到-1的值。

2812属于定点型DSP,采用定点数进行数值运算。但是,在FFT计算及电量计算过程中涉及到大量的小数。这就需要采用上述的Q表示法来进行数的定标。

在FFT计算中,计算出的三相电压、电流的实部和虚部均转换成以Q31格式表示的标幺值的形式,接着计算出的电压、电流的模值和功率用Q30格式表示。这些数据在送液晶显示屏显示之前,均全部转换成Q16格式表达的有名值形式,再把数据转换成ASC码。

3.3 软件抗干扰设计

系统的抗干扰设计,除了在硬件上采取必要的措施外,还须从软件设计上采取适当的方法,以进一步提高系统的可靠性,为此在软件中采取了以下抗干扰措施:

1.使用看门狗(Watchdog)监视装置的运行状态

看门狗又称程序运行监视器,能有效的防止系统在不可预测的干扰作用下产生的程序执行紊乱,即“程序跑飞”。TMS320F2812自带了一个内部看门狗,当DSP不能在规定的时间内将Watchdog复位,Watchdog从内部触发RESET中断,将整个系统复位,从而使整个系统重新运行,避免了程序死锁。

2.设置软件陷阱与指令冗余

采取设置软件陷阱及冗余指令的方法。在程序正确执行不能运行的地址,如程序各模块间、未用的中断向量地址等,填入NOP指令,或者复位指令,特别是在中断过程中设置大量冗余指令和标志,以减少由外界输入信号干扰所引起的错误中断。

3.软件数字滤波。

采用中位值滤波法,能有效克服因偶然因素引起的波动干扰。

3.4 小结

本章主要介绍电能质量在线监测装置的软件设计方法,重点阐述了系统软件的的基本结构、程序的流程、软件测频的方法、FLASH程序转到RAM运行的方法。

35

大连理工大学网络高等教育毕业论文(设计)

4 系统调试

4.1 装置的主要技术指标

·装置测试参数主要有: 1) 电压、电流基波有效值

2) 电压、电流2~50次谐波的含有率、总畸变率 3) 基波功率因数

4) 基波视在功率、基波有功功率、基波无功功率 5) 电压偏差 6) 电压波动

7) 三相电压不平衡度 8) 电网频率 ·测量精度: 1) 频率测量:

测量范围:45~55Hz,中心频率50Hz 测量条件:信号基波分量不小于80%F.S. 测量误差:≤0.1Hz 2) 基波电压(电流)幅值:

基波电压允许误差:≤0.2%F.S. 基波电流允许误差:≤0.5%F.S.

3) 输入电压、电流量程:100Vrms、5Arms 4) 电压、电流谐波总畸变率:≤0.2% 5) 单通道采样率:6.4K ·数据通讯:

Modbus-RTU通讯协议; RS-485接口; 波特率:9600bps;

4.2 装置的硬件调试

硬件部分的调试主要包括数据采集电路、CPU系统、人机接口电路和通信电路。

36

大连理工大学网络高等教育毕业论文(设计)

4.2.1 数据采集电路调试

调试方法:利用标准信号源在PT、CT输入端加入57V(有效值)、5A(有效值)的电压、电流信号,经过PT、CT后变换为峰峰值在10V以内的电压信号,测量RC滤波电路的输出端信号,即输入AD7656的信号的测量值为7.68V(峰峰值),达到设计要求。

使用标准源输出基波并叠加基波幅值20%的5次谐波信号,利用仿真器进行单步调试,一个周波(20ms)采集128点,由采样值得到的波形如图4.1所示。从图中可看出一个周波的两个同向过零点之间正好是128点,说明是准同步采样,测量值表明5次谐波含量为19.96%,误差为0.2%。

图4.1 数据采集电路调试波形

4.2.2 外部RAM调试

由于F2812片内只有18K的RAM,仿真的时候程序是通过仿真器映射到RAM中运行的,如果编写的代码比较长,片内的RAM是不够的,因此开发DSP一般都会外扩一片RAM,本装置外扩了256K的外部RAM。

SRAM的测试过程是对外部SRAM的0x0000~0xFFFF 空间进行写操作,即连续写入0~SRAM_LENGTH个数据,然后回读,判断是否正确,如果正确进入good_flag=1的循环;否则进入good_flag=0的循环。经过测试,外部RAM工作正常。

片外FLASH调试方法与测试外扩的RAM一样,在此就不复述了。

37

大连理工大学网络高等教育毕业论文(设计)

测试参考程序如下:

for(LoopVar = 0; LoopVar < SRAM_LENGTH; LoopVar++)

{ sram_data[LoopVar] = LoopVar; }

for(LoopVar = 0; LoopVar < SRAM_LENGTH; LoopVar++) { if(sram_data[LoopVar] != LoopVar) { good_flag = 0; break; } good_flag = 1; }

if (good_flag == 1) { for(;;); } else { for(;;); }

4.2.3 人机接口电路调试

在CCS中运行键盘和LCD显示程序,输入键值后刷新LCD,将按键的键值在LCD上显示出来。测试程序如下:

InitSysCtrl(); /*初始化系统*/ DINT; /* 关中断 */ IER = 0x0000; IFR = 0x0000;

InitPieCtrl(); /* 初始化PIE控制寄存器 */ InitPieVectTable(); /* 初始化PIE参数表 */ InitPeripherals(); /* 初始化外设寄存器 */ GUILCD_init(); /*初始化LCD*/ GUILCD_clear(); /*清屏*/

GUILCD_writeCurse(0x02,0x02); /* 写光标 */ GUILCD_clearCurse(0x02,0x02); /* 清光标 */ x1 = 0; /* 准备画线数据 */ y1 = 0;

for(i = 0; i <128; i++) { a[i] = - i/2; }

38

大连理工大学网络高等教育毕业论文(设计)

GUILCD_drawChart(0,0,&a[0],1); /* 画线,显示 */ GUILCD_drawChart(0,0,&a[0],0); /* 画线,不显示 */ Key_SCan(); /*扫描键盘程序*/

if (Key_Down) /*根据键值显示不同的字符*/ { GUILCD_writeCharStr(0x01,0x01,0,FALSE); /* 写汉字,无反显 */ GUILCD_writeCharStr(0x01,0x02,1,TRUE); /* 写汉字,有反显 */ }

if (Key_Enter==1) { GUILCD_writeLetterStr(0x01,0x02,0,FALSE); /* 写字母,无反显 */

GUILCD_writeLetterStr(0x01,0x00,1,TRUE); /* 写字母,有反显 */ }

4.2.4 通信电路调试

RS232和RS485串行通信的调试,利用PC机的串口与装置的RS232输出口线连接,RS485接口调试时则需要通过RS232/RS485转换器。

装置的通信程序先运行,程序处于等待接收状态。运行PC机上的串口调试程序,并向装置发送测试报文,如循环发送“0102030405060708”这8个字节。装置接收到指定长度的报文后,再把接收到的内容发回PC机。调试时装置的默认波特率为9600。若装置返送的数据与接受的数据一致,则说明通信电路工作正常。

4.3 装置软件调试

由于软件采用了模块化设计,所以软件的调试是按不同功能模块进行。由于软件调试过程较为复杂,因此仅对个别模块的调试作简要的说明。 4.3.1 软件测频率调试

按照第三章介绍的方法进行软件测频率,使用标准信号源,频率在45~55Hz内调整,装置频率测量与标准信号源的误差不超过0.2%。

表1 是测频的数据记录 序号 标准源频率(Hz) 装置实测频率(Hz) 1 48.000 47.998 2 49.000 49.016 3 50.000 49.998 4 51.000 51.049 5 52.000 52.003 以下是软件测频调试程序:

39

测量误差 0.108% 0.033% 0.004% 0.096% 0.006% 大连理工大学网络高等教育毕业论文(设计)

Uint16 aa=0; Uint16 bb=0; if(fftflag = = 0) { //中断服务,取数据 adcdata_ia[x]=*AD_CHIPSEL0;//板子从左至右第6个通道 adcdata_ib[x]=*AD_CHIPSEL0;//板子从左至右第5个通道 adcdata_ic[x]=*AD_CHIPSEL0;//板子从左至右第4个通道 adcdata_ua[x]=*AD_CHIPSEL0;//板子从左至右第3个通道 adcdata_ub[x]=*AD_CHIPSEL0;//板子从左至右第2个通道 adcdata_uc[x]=*AD_CHIPSEL0;//板子从左至右第1个通道 //中断服务,取数据 if(x>=512) { x=0; } if(x>=1) { aa=adcdata_ua[x]&0x8000; bb=adcdata_ua[x-1]&0x8000; if(aa!=bb) { timer_flag[it]=x; it++; if(cepinflag==0) { EvaRegs.T2CNT=0x0000; //16位可读写增/减定时器计数器。 EvaRegs.T2CON.bit.TENABLE=1; // 启动定时器2 } cepinflag++; } if(cepinflag==3) { EvaRegs.T2CON.bit.TENABLE=0; // 停止定时器2 //停止计时 frq=EvaRegs.T2CNT; if ((frq>=28400)&&(frq<=34718)) { frqave[frqcyc]=frq; frqcyc++; } if (frqcyc>=8) { frqcyc=0; }

40

大连理工大学网络高等教育毕业论文(设计)

frq2 = 1562500000/(Average(frqave,8)); cepinflag = 0; } } x++; if(it>=3) {

x=0; it=0;

fftflag = 1; if ((timer_flag[2]-timer_flag[0]) != 128) timerchange1(); } }

4.3.2 程序的总体调试

在进行程序综合调试时,由于程序比较大,程序的存储器分配需要进行调整,此时CMD文件编写也是最容易出错的。调试过程中发现FFT运算数据最好定位在内部L0L1RAM空间,起始地址:0x008000,长度0x2000。程序const、text段放在外扩存储器中,其他数据段放在内部RAM中,即重要的参数放在内部存储器中,这样可以使数据计算减少错误。以下为仿真时的CMD文件配置。

MEMORY

{

PAGE 0 :

RAMM0 : origin = 0x000000, length = 0x000400

BEGIN : origin = 0x3F8000, length = 0x000002 PRAMH0 : origin = 0x3f8002, length = 0x000ffe RESET : origin = 0x3FFFC0, length = 0x000002 VECS(R) : origin = 0x3FFFC2, length = 0x3E PIEVECS(R) : origin = 0x000D00, length = 0xFF

ZONE6 : origin = 0x100000, length = 0x004000 PAGE 1 :

RAMM0M1 : origin = 0x000400, length = 0x000400 L0L1RAM : origin = 0x008000, length = 0x2000 DRAMH0 : origin = 0x3f9000, length = 0x001000 ZONE6 : origin = 0x104000, length = 0x03c000 }

SECTIONS {

codestart : > BEGIN, PAGE = 0 ramfuncs : > PRAMH0 PAGE = 0

41

大连理工大学网络高等教育毕业论文(设计)

.text : > ZONE6, PAGE = 0 .cinit : > PRAMH0, PAGE = 0 .pinit : > PRAMH0, PAGE = 0 .switch : > RAMM0, PAGE = 0

.reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */ vectors : > VECS, PAGE = 0 FFTtf > PRAMH0, PAGE = 0

FFTipcb ALIGN(256) : { } > L0L1RAM, PAGE = 1 FFTmag > L0L1RAM, PAGE = 1 .stack : > RAMM0M1, PAGE = 1 .ebss : > ZONE6, PAGE = 1 .econst : > ZONE6, PAGE = 1 .esysmem : > DRAMH0, PAGE = 1 }

4.3 小结

本章介绍了硬件、软件调试的方法,重点说明了外部RAM、AD转换可视化调试的方法和结果,而且对调试时CMD文件编写的要求进行分析。

42

大连理工大学网络高等教育毕业论文(设计)

5 总结与展望

本论文通过分析电力系统电能质量国内外发展概况,指出现有电能质量监测研究的现状、存在的问题及解决方法。

重点对电能质量监测装置的硬件设计进行了研究,根据装置所要达到的功能,设计了以TMS320F2812为核心的电能质量在线监测装置,并用C语言和汇编语言编制了实用化的应用程序,同时对所采用的算法及程序的正确性进行了仿真验证,为基于DSP技术的电能质量监测装置在工程上的应用提供了必要的经验。

本装置的功能还需要进一步的完善,但由于时间的原因,很多想法未能在装置中实现,需要进一步研究探讨的问题有:

需要提出监测系统的概念,装置中加入GPS系统监测网络、装置通讯方法的选择、还需要监测中心二次处理软件设计,这些问题有待于进一步的研究,不断的完善。

电能质量在线监测目的是为了实现对其进行有效的控制和治理,从而得到优质的电能,所以电能质量在线监测装置的研究和应用是一件具有较大经济效益和社会效益的工作。

43

大连理工大学网络高等教育毕业论文(设计)

参考文献

[1] [2]

肖湘宁.电能质量分析与控制[M].北京: 中国电力出版社, 第一版, 2004年5月. 国家电力公司发输电运营部.电力工业技术监督标准汇编(电能质量监督)[M].北京:中国电力出版社,2003年.

苏奎峰, 吕 强, 耿庆峰,陈圣俭等. TMS320F2812 原理与开发[M]. 北京: 电子工业出版社,第一版,2005年4月.

北京合众达电子技术有限责任公司:2006年河海大学DSP设计、开发技术讲座. 北京瑞泰创新科技有限责任公司:2007年C2000 DSP系统设计技术讲座:硬件部分. 杨淑英:电能质量测量方法及其监控装置研究,华北电力大学学报,2003年9月,第30卷第5期.

周晓光,韩晓俊,于庆广:电能质量在线监测系统的设计与实现, 电气应用,2006年10月,第25卷第10期.

祁才君,陈隆道,王小海:应用插值FFT算法精确估计电网谐波参数.,浙江大学学报(工学版),2003年1月. 陈隆道,陈云,祁才君:电能质量的监测与分析系统,电测与仪表,2003年11月,第40卷第455期.

[3]

[4] [5] [6]

[7]

[8]

[9]

[10] 谢小荣等:电力系统频率测量综述,电力系统自动化,1999年2月,第23卷第3

期. [11] 黄纯,彭建春:周期电气信号测量中软件同步采样方法的研究,电工技术学报,2004

年1月,第19卷第1期. [12] Texas Instruments Incorporated,C2000 APPLICATIONS:DSP28 Peripheral Examples. [13] Texas Instruments Incorporated:Hardware Design Guidelines for TMS320F28xx and

TMS320F28xxx DSCs Application Report SPRAAS1–March 2008. [14] Copying Compiler Sections From Flash to RAM on the TMS320F28xxx DSCs ,March

2008. [15] 周凯,郭黎利.基于MAX485实现PC机与单片机通信的程序设计[J].信息技术,

2005年第4期. [16] 陈斌.基于RS-485的单片机多机通信技术.嵌入式系统,2002年第7期. [17] 李志军,宋江鹏,马军.TMS320F2812与慢速外设接口的时序控制.单片机与嵌入

式系统应用,2005年11月.

44

本文来源:https://www.bwwdw.com/article/gm6p.html

Top