DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 924|回复: 0
打印 上一主题 下一主题

基于PIC16C63单片机控制的新型交流电压表系统

  [复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 19:44:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    Design of a New AC Voltage Meter System based on SoC
摘要: 智能化微机测量和控制技术的迅速发展和广泛应用己经渗透到国民经济的各个部门。不但国防技术、航空、航天、铁路、冶金、化工等产业,就连在日常生活中也得到广泛的应用。本文在研究国内外有关智能仪器仪表最新科研成果的基础上,采用单片机作为测量仪器的主控制器,从软硬件方面出发设计出可与上位计算机进行通信的新型交流电压表系统。
Abstract: The intelligent computer measurement and control technology is developed and common used in different areas in our life. It’s not only used in aviation, railways, biological fields, but also used in our daily life. In this paper,on the basis of studying the up to date fruit of instrument ,a new instrument which adopts singlechip as control core and which can communicate with the PC is designed.
关键字: 智能仪表;电压表;单片机;采样
Keywords: Intelligent Instrument; Voltage Meter; SoC; Sampling
1 引言
近年来,随着微电子技术的迅速发展和超大规模集成电路的出现,特别是单片机的出现,正在引起测量、控制仪表领域新的技术革命。本着改造传统面板式仪表的目的,本文采用单片机作为测量仪器的主控制器,设计出可与上位计算机进行通信的新型交流电压表系统。这种以单片机为主体的新型智能仪表将计算机技术与测量控制技术结合在一起,在测量过程自动化,测量结果数据处理以及功能的多样化方面都取得了巨大的进步。
2 智能交流电压表的硬件设计
2.1 硬件系统概述
智能交流电压表采用PIC16C63作为主处理器,系统主要由信号采集、A/D转换、时钟计时、显示、与上位机(PC机)通信等几个功能模块组成。系统框图如下图1所示:


500)this.style.width=500;" border=0>
图1 硬件原理框图
被测交流电压由精密电阻分压得到与输入被测电压成比例的交流电压值;由运算放大器OP07放大;经整流滤波得到与输入电压成比例的直流电压值。由压频转换芯片LM331转换成相应的脉冲信号。由单片机在固定时间(200ms)内对脉冲信号进行计量,从而完成A/D转换的功能。再由单片机对A/D转换的结果进行标度变换,得到被测电压数值(BCD码),通过单片机驱动四个LED数码管显示结果。
智能电压表有简单的监控功能,每一小时由时钟芯片通过中断方式要求单片机记录当时电压数值,并记录最近24小时的电压值。由上位PC机对所记录电压值进行显示、保存,并形成相应图形予以直观显示,表明当前电压情况。通过智能交流电压表,达到了监控交流电压有效值变化的目的。
2.2 电压信号采样
电压信号采样模块中,被测电压信号经过两个电阻串联分压,幅值降低1000倍,再由运算放大器OP07进行放大,再由两个二极管线性整流,整流后的脉动直流经n型滤波电路滤波得到平直的直流信号,送LM331的电压输入端。图2为采样部分的原理图。


500)this.style.width=500;" border=0>
图2 采样部分原理图
2.3 时钟芯片单元
在系统设计中,经常需要有时钟,好比单片机内带了一块钟表一样例如电子考勤机不仅要记录员工的身份号码,同时需要记录出入门禁的时间。又比如复费率电表,把一天24小时划分为若干个时段,每一个时段有不同的费率,有了时钟就可以根据不同时段来计费。
单片机内有定时器/计数器,可以用软件来定时,但这要占用片内资源(占用一路定时器/计数器),而且编程十分复杂,在本智能电压表的设计中,如采用定时器通过软件定时,可能出现定时器中断影响单片机计量脉冲的准确度,甚至发生计数错误。反复的定时器中断在单片机以查询的方式通讯时,可能造成通信错误或通信失败。
因此,在这些情况下,多采用实时时钟芯片。时钟芯片的种类很多。有并口方式的器件,如MC146818,MSM6242等,有串口I2C方式的DS1302, PCF8563, PCF8583,以及串口SPI方式的DS12887, RTC4553等等。
在设计中我试用了DS1302, PCF8563, RTC4553等时钟芯片。最后我采用了ESPON公司的RTC8025这一款由ESPON公司最新推出的串口I2C方式的实时时钟芯片,它所独有的固定周期中断功能,恰好满足了我的设计要求,简化了硬件电路,编程也变的简单。
2.4 A/D转换电路
V/F式A/D转换器的核心部件是电压-频率变换器(V/F)。它是把待转换的模拟电压V,先变换成脉冲信号,该脉冲信号的重复频率与信号幅值成正比,然后在一段标准时间内。用计数器累积所产生的脉冲数,从而实现A/D转换。这就是电压-频率-数字变换原理。V/F转换器的典型电路由图3。该电路由积分器、比较器、恒流源、单脉冲发生器和模拟开关组成。
转换开始时,开关K断开,VA单独作用于积分器。输出负斜波电压VO。当VO≤VR,比较器输出一个负脉冲,触发单脉冲发生器产生一个宽度为T2的控制脉冲,该信号使K闭合,将恒流源与积分器的A点接通。因为在设计上保证在数值上IO≥II,,而II=VA/R,且两者极性相反,所以VO波形开始回扫,经过T2时间,单脉冲发生器恢复原态,K又断开,积分器又在II作用下输出负斜波。上述过程周而复始,在比较器的输出端得到一系列的负脉冲。


500)this.style.width=500;" border=0>
图3 V/F转换器原理图
2.5 通信接口硬件设计
由于PIC单片机输入、输出电平为TTL电平,而IBM-PC机配置的是RS-232C标准串行接口,两者的电气规范不一致,单片机中的信号电平是TTL型的,即≥2.4V表示“1”,≤0.4V表示“0”,但如果DTE和DCE之间仍采用这个电平传送数据,那么在两者距离增大时,很可能会使信号源点的逻辑“1"电平在到达目的点时衰减到0.4V以下,从而使通信失败,所以为了提高数据通信的可靠性和抗击线路上各种噪声影响,以及完成与 RS-232C通信总线数据通信的功能,必须进行电平转换。
两种电平转换电路通常是由专用电平转换芯片来实现的,常见的有MC1488,75188等芯片,可实现TTL电平与RS-232C的电平转换;MC1489, 75189等芯片,可实现RS-232C与TTL电平的转换,实际应用中两种芯片配合使用,但是采用这两种芯片需要+12V、-12V和+5V电源,系统硬件较为复杂。存本设计中我采用了MAXIM公司的MAX202电平转换芯片完成通信接口电路设计。
2.6 PIC16C63芯片特点介绍
由MICROCHIP推出的PIC8位微控制器系列率先采用精简指令集计算机(RISC-Reduced Instruction Set Computer)结构的高性能价格比的嵌入式控制器。其高速度、低工作电压、低功耗、较人的输入输出直接驱动能力、一次性编程芯片的低价位、小体积等,都体现出微控制器工业发展的新趋势。MICROCHIP公司开发了三个不同层次系列多种型号的产品,以满足不同的产品设计要求。我所选择的PIC16C63A为中档16CXX系列产品中的一种。
MICROCHIP公司的PIC16C6X系列微控制器包括以下一些型号PIC16C61, PIC16C62, PIC16C63, PIC16C64, PIC16C64A, PIC16C65, PIC16C65A。这是一类低价格高性能的8位全静态基于EPROM的微控制器。根据不同的应用和生产需求,可以提供不同配置、不同频率范围、不同封装形式的芯片。
3 智能交流电压表软件设计
软件主要包括上位PC机的电压监控程序、下位单片机的电压数据采集程序的程序。
PC机的电压监控程序利用Visual Basic 6.0编写监控界面,可获取系统最近24小时的电压值,并形成柱状图型,对系统测量电压值予以直观显示。还可通过PC机修改时钟芯片的设置使系统时间等于当前时间或设定时间。其中PC机的通讯功能由Visual Basic 6.0的串行通讯组件MSComm控件完成。下位单片机通过在固定周期内对LM331输出的脉冲信号进行计数,获取电压值,利用时钟芯片RTC8025产生的一小时中断,记录当时的电压数值并存储最近24小时的电压值供上位PC机进行查询。并接收PC机的指令修改时钟芯片的设置。
整个软件系统可以完成电压数值采集、存储、显示,并由上位PC对电压数值进行简单的监控。使仪表不仅可以计量电压,还可将测量值反馈给上位机。也为仪表系统的总线化、网络化提供了可能。其软件模块框图如图4所示。


500)this.style.width=500;" border=0>
图4 智能电压表的软件模块图
3.1 下位机整体程序设计
程序开始后,先进行初始化。包括I/O的初始化,把单片机的I/O引脚设置成相应的输入输出状态,还包括存储单元的清零,和时钟日历的初始化。
初始化过后,程序进入主循环。在主循环中,单片机串口首先被置为接受状态,并打开外部中断允许,允许时钟日历芯片向单片机申请中断。然后进行脉冲的采集和计算,得到电压数值送显示缓存区显示。开始进入通讯模块,在主循环中,单片机串口处于接收状态,以查询的方式接收由上位机发送的指令和数据。
上位机发送的指令有“改写时钟命令-01”和“要求发送电压值-02”两条,数据只有“日历/时钟数值”。单片机接收的命令、数据字节数较少。所以可以采用查询的方式予以接受,同时避免了频繁中断,对计量脉冲个数的影响。
当单片机查询到20H=1时,进行时钟日历的改写,改写为由上位PC机最新置入的新值。
当单片机查询到20H=2时,置为发送状态,开始向上位PC机发送最近24小时的电压数值。
每一个程序模块返回时,均应重新置为接收状态,保证以查询方式进行的通讯程序收发的正确。
上位PC发送握手信号时,单片机接收正确,握手成功,接收不正确,挂钩次数减一,由PC机重发,设置挂钩次数为的是在通讯无法连接时下位机程序不会陷入死循环中。下位机发送握手信号时,情况相同。
3.2 上位机软件设计
新一代面向对象的程序设计语言Visual Basic(VB)是将WINDOWS图形工作环境与Basic语言编程简便性的美妙结合。它简明易用,实用性强。因而得到了广泛的应用。Visual Basic 6.0提供了一个名为mscomm32. ocx通信控件,它具备基本的应用程序提供串行通讯功能。该控件可以从VB的TOOLBOX中加入到窗体FORM。本电压监控程序主要完成两个功能。第一是读取电压值,并形成连线图予以直观显示:第二为设定、调整实时时钟芯片RTC8025。PC机利用BIOS块INT14中断采用查询的方式完成异步串行中断,由串型通信控件MSComm完成数据的接收和发送。
本文作者创新点:
该智能化仪表不仅具有传统仪表的显示功能,还应具有通信功能。把测量到的数据信息发送给上位计算机或远程计算机,接收并执行计算机或其他控制单元发出的指令。我们可以认为智能仪表将作为工厂底层网络的主体,在工业生产的自动化、总线化、网络化方面发挥主导作用。为适应测量仪表的智能化和网络化的要求,采用Visual Basic 6.0按照RS232C标准总线协议编写了智能交流电压表与上位PC机通信的电压监控程序。
参考文献
[1] 陈佩江,周洪玉.串行通信在远程监控系统中的应用.《哈尔滨理工大学学报》,2002年第2期:42-45
[2] Jan Axelson(著),精英科技(译). Serial Port Complete(串行端口大全).北京:中国电力出版社,2001:117-129, 183-189
[3] 肖韵,汪道辉,石银安. 低压电力线载波集中抄表系统集中器设计[J]. 微计算机信息, 2007, 5-1: 168-170
作者简介: 胡红博(1964.1- ),男, 汉族, 重庆市人, 物理系副教授, 研究生学历, 主要从事无线电技术方面的研究。
通信地址: 贵州省遵义市上海路830号遵义师范学院物理系   563002[1]
         
          [/td]
        [/tr]
      
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-7-4 19:07 , 耗时 0.090735 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表