APP下载

智能传感器电力监测系统接口研究

2014-04-19黄军友

石家庄学院学报 2014年3期
关键词:浮点数波特率信号处理

黄军友

(四川信息职业技术学院 机电工程系,四川 广元 628000)

智能传感器电力监测系统接口研究

黄军友

(四川信息职业技术学院 机电工程系,四川 广元 628000)

为了实时研究三相交流电的性能和特征参数,提出基于单片机AT89C52的电力智能传感器监测粗信号处理系统,分析了电力智能传感器监测系统组成,对系统接口电路进行了设计,编写了串行通信软件.仿真实验结果表明,Visual C++6.0上编写的通信软件基本能实现单片机与PC机的数据传输,为电力智能传感器各种粗信号处理做好了准备.

智能传感器;粗信号处理;嵌入式系统;接口设计

0 引言

电力智能传感器由普通传感器和微处理器构成,不仅能提供一定质量的反映电力特征参数和性能的电信号,还具有信息处理功能与通讯、自校正、自补偿、自诊断能力[1].粗信号处理是对预处理后的信号进行分析和计算,获得能直接用于通信传播的具有一定知识级别的信息.随着供电系统复杂性加剧,用电设备不断增多,交流电力参数和性能的实时监测显得尤为重要[2].高性能测试系统和智能控制系统成为国家电网、智能楼宇系统和家庭的迫切需求.交流电力智能传感器粗信号处理系统主要监测三相交流电的电力状况和质量,相比传统电力监测设备体积小,功能丰富、成本低、测量性能好.

1 系统结构

电力智能传感器粗信号处理系统由嵌入式系统和PC系统组成,二者通过串口进行通信.嵌入式系统以AT89C52微处理器为核心,主要完成交流电力智能传感器粗信号处理方法即实现交流电力特征信号的测量、A/D转换、数据处理与PC机系统通信的实现,并通过串口接收上位机的命令进行数据采集、粗信号处理并发送结果至上位机.PC机系统采用Visual C++6.0编写,串口通信软件与单片机通信并实现发送命令、接收数据、显示数据及保存数据等功能.系统结构如图1.

图1 系统结构框图

2 硬件电路

系统采用并行口扩展数据存储器,使用SRAM芯片6264以三总线的方式连接.该方式存储数据快,只需定义好外部数据的存储地址后便可以使用,无需通过读写函数.但占用I/O较多,无法再接显示屏,通过上位机系统进行数据显示解决.基于低成本,嵌入式CPU采用AT89C52单片机,单片机最小系统包括AT89C52、时钟电路、复位电路.时钟电路采用内部时钟方式,晶体振荡器晶振频率为11.059 2 MHz产生时钟脉冲,提供精确的通讯波特率和稳定的时钟信号.复位电路采用按键与上电复位电路,利用电阻和电容来实现复位.系统死锁时,通过按键实现系统复位启动[3].

系统各芯片采用所需电源电压均为+5 V直流电,电源电路的设计采用两种方式供电:一是通过AC Adapter将输入的220 V交流电转为9 V直流电,三端集成稳压器LM7805将其转为稳定的5 V电源输出;二是通过USB接PC机获得5 V电压.两种供电方式用开关进行选择.

电力信号感知和调理电路中,系统感知部分由电压互感器和电流互感器感知电力信号,并将工频高电压和大电流按比例分别变换成低电压和小电流,既便于测量又便于保护设备和人身安全[4].电压互感器采用环氧灌封精密电压互感器TV19-E,匝比是1 000:1 000,输入电流等于输出电流.基于文献[1,2]工作原理图,输入电压为三相交流电的线电压,其峰值电压为537 V,限流电阻取值35 kΩ,输出端电阻取值100 Ω,计算输出电压等于±1.534 V,经运算放大器的放大及调理后进行A/D转换.电流互感器采用TA17(L)-04.互感器采用超微晶铁芯,全密封,线性度优于2‰,工作频率20 Hz-20 kHz,温度-55℃-85℃,匝比2 000:1,输入电流在0-20 A[5].设380 V交流负载为3.5 kW,电流约为6.5 A,根据典型应用电路[2],计算出输出电压±325 mV,同样需放大后进行A/D转换.放大电路采用价格便宜的四运算放大器集成芯片LM324.

通信电路是嵌入式系统与PC机系统通信的硬件电路,是设计的重点内容.采用串口通信实现,系统不需要长距离传输,采用RS-232C协议,在AT89C52的TXD与RXD引脚上加上电平转换MAX232构成RS-232C接口.MAX232在系统中的连接电路图如图2所示,MAX232专为RS-232标准串口设计的单电源电平转换芯片,+5 V单电源供电,功耗低,典型供电电流5 mA,内部集成2个RS-232C驱动器,片外最低只需5个电容即能实现电平转换[6].

图2 MAX232连接电路图

3 下位机(嵌入式)系统软件设计

软件编写采用C语言,开发环境Keil uVision4.主要针对系统接口设计,着重于串口通讯软件设计.主程序流程简单:首先进行串口初始化、接着进入while(1)的无限循环中以等待串口中断.程序主要内容在于串口中断服务程序,当串口收到命令时单片机进行相应操作.

3.1 串口初始化程序设计

使用串口前,先对串口进行初始化.初始化的内容包括串行口工作方式、波特率的设置、中断设置.系统设计采用异步传输,在异步传输中,数据一帧一帧传送,每帧数据只有一个字节数据,不需要同步脉冲,灵活且简单.为获得精准的通讯波特率采用串口工作方式1.方式1为波特率可变的10位异步通信方式.发送或接受一帧信息,包括1个起始位0,8个数据位(由低位到高位)和1个停止位1[7].

方式1的发送:当CPU执行一条指令将数据写入发送缓冲SBUF时,就启动发送.一条写SBUF指令就可启动数据发送过程.在发送移位时钟的同步下,从TXD引脚先送出起始位,然后是8位数据位,最后是停止位.这样的一帧10位数据发送完成[8],中断标志TI置位.串行数据从TXD引脚输出,发送完一帧数据后,就由硬件置位TI.

方式1的接收:在允许接收的条件下REN=1,串行口采样RXD引脚,当采样RXD出现由1到0的跳变时,才认为是串行口发来的一帧数据起始位0,开始接收一帧数据.只有当RI=0且SM2=0(或接收到的第9位数据为1)时,接收到的前8位数据装入接收缓冲器SBUF,第9位停止位进入RB8,并由硬件置位中断标志RI,一帧数据的接收过程完成,否则信息丢失.在方式1接收时,软件对RI和SM2标志位清0,本设计SCON=0x50,SM2=0.串行口方式1发收时序图如图3.

图3 串行口方式1收发时序图

波特率即数据传送的速率.波特率过慢传送效率低,波特率过高在传送中容易产生乱码,设计中波特率为9 600波特,采用串口工作方式1,定时器T1作为波特率发生器,串行口波特率由定时器T1的溢出率和SMOD值同时决定:

其中,fosc为定时器溢出频率,n为定时器位数,X为时间常数.设计中SMOD=0,波特率为9600,fosc= 11.059 2 Mhz,n=8.

串口初始化程序如下.

3.2 串口中断服务程序设计

单片机通过接受上位机命令符然后做出相应的响应.串口中断服务程序流程如图4所示.

图4 串口中断服务流程图

串口中断服务程序如下:

3.3 浮点数收发程序设计

系统采样到的数据为浮点型数据,相关计算后的结果值也为浮点数.单片机中的浮点数存储格式遵循IEEE 754标准.IEEE 754规定了单精确度(32位元)、双精确度(64位元)、延伸单精确度(43位元以上)、延伸双精确度(79位元以上)四种表示浮点数值的方式.设计中收发的浮点数为单精度浮点数,包含3个构成字段:23位小数f,8位偏置指数e,1位符号s.将这些字段连续存放在一个32位字里,并对其进行编码.其中0-22位包含23位的小数f;23-30位包含8位指数e;第31位包含符号s.单精度浮点格式在Visual C++存放逆序存储,发送时将4个无符号的字节数组以逆序的方式发送.

下位机发送浮点数主要的代码如下:

上位机还原浮点数的主要代码如下:

4 上位机(PC)系统软件设计

上位机软件采用Visual C++6.0编写,使用串口控件MSComm实现通信,基本能达到设计要求.上位机软件系统总体框图如图5.

上位机系统软件的基本编程步骤如下:

1)建立应用程序工程.在Visual C++6.0中建立一个基于对话框的MFC应用程序SCommTest.绘制通讯界面,为相应控件添加变量,控件的属性设置情况如表1.

2)为实现PC与计算机的串口通信,在工程中添加MSComm控件.

3)初始化串口.

4)添加串口事件消息处理函数.

图5 上位机总体框图

表1 程序主界面内的控件类型、ID及说明

5)为按钮添加一个单击消息,即BN_CLICKED处理函数.系统软件共设置6个按钮,如测试和显示处理函数:

5 系统仿真

5.1 仿真环境

采用proteus、Visual C++6.0和VSPD(虚拟串口)以实现单片机与PC机串口通信的软件仿真.Proteus中,单片机内部晶振为11.059 2 Mhz.COMPIM内部自带RS232和TTL电平转换功能,不需要使用电平转换芯片,单片机RXD与TXD可直接与COMPIM的RXD与TXD连接,并且COMPIM可以设置占用计算机上的一个实际串口或者是一个虚拟串口,设置COMPIM属性PhsicalPort:COM4,波特率:9600,数据位:8,停止位:1,无数据校验.虚拟串口软件是一种可以在不占用真实串口的情况下,创建在功能上以及使用上与真实物理串口一致的虚拟串口,并通过软连接技术代替串口数据线将虚拟串口对互连.设计中采用VSPD创建虚拟串口COM3与COM4并将其互连.

5.2 通讯测试

单击测试按钮,单片机通信指示灯点亮且上位机显示通信正常,如图6.

图6 通讯仿真

5.3 数据采集测试

单击数据采集,显示“传感器状态栏显示数据采集中”,数据采集完成进行数据显示,如图7所示将采集到的数据显示在对应的编辑框.

图7 数据采集仿真

5.4 数据保存测试

单击数据保存,显示数据保存成功,找到指定文件打开检查数据是否正确.如图8和图9.

5.5 浮点数发送测试

通信过程中,点击浮点数发送,之后打开proteus,在Debug中钩选Memory Contens-U4即外部数据扩展RAM6262芯片.通过观察数据存储情况,看是否有浮点数存入指定的内存地址.如图10.

图8 数据保存仿真

图9 数据核对

图10 浮点数发送仿真

6 结语

仿真结果表明,设计的串口通信软件基本实现上位机与单片机的串口通信,为有效进行交流电力智能传器各种粗信号处理方法的性能监测做好了准备.接口系统能够通过串口实现上位机发送命令符控制单片机,单片机接收命令并进行数据采集并将数据发送回上位机.上位机的串口通信软件也能实现串口接收数据及接收显示浮点型数据,并能将接收到的数据以TXT格式保存至磁盘中,另外上位机串口通信软件也能将浮点型数据传给单片机,用以验证嵌入式系统的算法.下一步将对串口通讯软件进行交流电力信号的图形仿真.

[1]程志.交流电力智能传感器粗信号处理实验系统的研制[D].成都:西华大学,2012.

[2]程志,肖继学,李世玺.交流电力智能传感器粗信号处理实验硬件系统设计[J].西华大学学报(自然科学版),2011,(4):68-71+ 103.

[3]蒋新革,王平,古丽孜娜,等.基于单片机与电话网实现远程测控[J].电力自动化设备,2006,(8):46-47.

[4]车畅,胡丹.交流电力功率智能传感器粗信号处理[J].西南交通大学学报,2011,(4):598-603.

[5]程志,肖继学,李世玺.交流电力智能传感器粗信号处理实验硬件系统设计[J].西南交通大学学报,2011,(4):68-71+103.

[6]郑恭明,陈志方,武洪涛.基于MAX232的正负电源设计[J].仪器仪表与分析监测,2012,(1):23-25.

[7]殷巧,肖继学,童俊,等.交流电力智能传感器粗信号处理实验平台的软件设计[J].中国测试,2013,(2):89-93.

[8]马龙飞.基于DSP的长基线数字信号处理软件的设计与实现[D].哈尔滨:哈尔滨工程大学,2012.

(责任编辑 李健飞)

A Study of Smart Sensor Power Monitoring System Interface

HUANG Jun-you
(Department of Mechanical&Electrical Engineering,Sichuan Vocational College of Information Technology,Guangyuan,Sichuan 628000,China)

In order to study in real time the performance and characteristics parameters of three-phase alternating current,this paper introduces coarse signal processing system based on MCU AT89C52 power smart sensor monitoring,analyses the composition of power smart sensor monitoring system,designs the interface circuit,and works out the serial communication software.The simulation experiment results show that the communication software written in Visual C++6.0 can transmit data between MCU and PC basically,and prepare for the coarse signal processing of power smart sensor.

smart sensor;coarse signal processing;AT89C52;interface design

TP36

:A

:1673-1972(2014)03-0010-09

2013-09-11

黄军友(1977-),男,四川威远人,副教授,主要从事电子与通信研究.

猜你喜欢

浮点数波特率信号处理
四种Python均匀浮点数生成方法
CAN 总线波特率自适应程序设计
《信号处理》征稿简则
《信号处理》第九届编委会
《信号处理》征稿简则
《信号处理》第九届编委会
在C语言中双精度浮点数线性化相等比较的研究
非精确浮点数乘法器设计
基于FPGA的整数开方运算
C*Core芯片SCI串口波特率容限优化