PIC单片机解密网


首页 -- PIC单片机解密-- PIC24单片机解密-- PIC33单片机解密-- PIC18单片机解密 --关于我们
 

基于MC68HC908LJ12的单相复费率电度表及红外抄表器

1.设计方案简介

单相复费率电度表主要以AD7755和MC68HC08LJ12双芯片为核心,能对峰、平、谷时段设定不同的费率,使用时能根据预设的各时段的费率累计并显示电量,以达到准确、分时、智能地测量电量的目的。此电度表接入线路后,通过分流器、分压电路分别对电流和电压信号进行采样;电流通道和电压通道的信号经放大器放大后,通过AD7755内部的模数转换器转换为两路数字信号,然后经乘法、低通滤波、数字频率变换等电路的处理后,AD7755输出与瞬时功率成正比的脉冲,并将此脉冲送至MC68HC08LJ12微控制器。MC68HC08LJ12微控制器通过中断方式根据设定的不同时段累计脉冲数,并将脉冲数转化为电量送到LCD上显示,同时将结果保存在MC68HC08LJ12片内的FLASH中。 RS232接口与PC机相连接,可进行程序的调试。通过RS485接口或者红外接口,可以实现抄表的功能,以及进行用户参数的设定。

红外抄表器是基于MC68HC08LJ12芯片设计配合电度表进行无线抄表的工具,它通过红外数据通讯来实现抄表的功能,并可以对电度表中的参数进行设置或修改。抄表所得用户数据保存中MC68HC08LJ12片内的FLASH中,并可通过RS232接口将数据送PC机处理,以达到快速、方便、有效管理电网用户的目的。

2.单相复费率电度表部分

1)功能设计

A.具有峰、平、谷三种费率,6个时段。增删费率时段可以通过修改软件实现。

B.具有常显和轮现两种显示方式:常显方式下LCD显示6位累计总电量、时间和当前工作时段;轮流方式下显示总电量并循环显示各时段累计电量等参数。

C.常显轮显按钮可选择常显或者轮显方式;时间日期按钮可选择时间显示或者日历显示。时间设定按钮可设定当前的时间。

D.时段切换或者调电时电度表数据(累计平电量、累计谷电量、累计峰电量和总电量)自动存储于片内FLASH中。

E.外置实时时钟DS1302,精确指示当前时间,具有后备电池,掉电不丢失时间。

F.具有红外发射和接收接口,配合红外抄表器可实现电度表的红外抄表功能;RS485接口可以实现RS485抄表;RS232接口可以通过编程头连接至PC机,实现程序的写入和调试。

 

2)硬件设计

电度表原理框图如图1所示。整个电度表可以分为功率计量和数据处理两个部分,功率计量部分实现对电流和电压信号采样,产生功率脉冲的功能。数据处理部分完成功率脉冲积算以及系统各模块之间的协调访问等功能。为提高抗干扰能力两部分之间用光电耦合器隔离。

 

点击在新窗口中浏览产品

图1  双芯片方案的单相复费率电度表原理框图

 

脉冲计量部分

  图2所示为AD7755设计的电度表功率计量部分的工作原理图。功率计量部分包括AD7755核心芯片、分流器、分压电路、基本电压源、保护电路、光电耦合器输出电路。

点击在新窗口中浏览产品

图2  电表功率计量部分工作原理图

 

  为了给AD7755提供必要的电流、电压转换,本设计采用分流器(300μΩ),并且在电压采样时采用了简单的分压网络。分流器的材料为锰铜合金,阻值仅300μΩ,具有较低的功耗。基本电压源采用由电容分压网络构成的简单低成本电源。大部分的电压都将落在电容C1的两端,电容C3上的电压通过稳压器LM317产生稳定的+5V的输出电压VDD。保护电路对基本电压源电路实行了保护,使用压敏变阻器MOV。压敏变阻器的电阻随电压的增加而减小,它通常与被保护的器件或电路并联,在过压期间形成一个低阻的分流器,因此可以防止被保护的电路两端的电压进一步上升。

  AD7755的CF管脚可提供脉冲常数为1600imp/kwh(脉冲数/千瓦时)的输出脉冲。本设计中将此输出脉冲用LED和光电耦合器隔离输出,然后送至微控制器MC68HC08LJ12的中断输入引脚点击在新窗口中浏览产品 ,由微控制器计量功率脉冲。

  AD7755产生的输出频率与两个电压信号乘积的时间平均值成正比。加在AD7755上的输入电压值为V1和V2。F1、F2输出脉冲频率F和输入电压信号的有效值Vl和V2关系如公式(1)所示,将电度表校验到一个固定常数可用公式(1)对V2值进行标定。

F=(8.06×V1×V2×G×Fl-4)/VREF 2                          (1)

  其中F为引脚F1、F2输出的脉冲频率,Fl-4是由主时钟获得的分频,G为增益,VREF为基准电压+2.5V。(详见AD7755手册)

  本设计中,功率计量部分AD7755芯片引脚G0=1,G1=1,S0=0,S1=1,SCF=0,所以增益G=16,分频F1-4=6.8Hz,CF端的输出频率FCF=16F。通过调整分压电路电阻阻值可改变电压V2的值,从而可使电表CF管脚输出脉冲校准为1600imp/kwh。

数据处理部分

  数据处理部分由MC68HC08LJ12微控制器的中断引脚点击在新窗口中浏览产品 接收此脉冲,并计量脉冲数,根据设定的不同时段的费率计算电量送到LCD显示,同时将结果保存在FLASH中。数据处理部分电路原理图如图3所示。

点击在新窗口中浏览产品

图3  数据处理部分电路原理图

  为了保证时钟精度,本设计采用外置的实时时钟DS1302。在正常供电的情况下,由外接电源给时钟芯片供电,在掉电的情况下通过后备的锂电池供电,保证时钟正常工作。微控制器的3个I/O引脚与DS1302芯片相连接,PTA5配合PTA7产生DS1302芯片读写的时序,PTA6引脚读写数据。

电度表的红外发送和接收电路如图4所示。LJ12的I/O口PTB5和定时器的输出比较接口PTB4用于红外发送,键盘中断引脚PTA1用于红外接收。电度表的红外发送、接收的原理和红外抄表器的红外发送、接收的原理相同,详见红外抄表器部分。

点击在新窗口中浏览产品

图4 电度表的红外发送、接收电路

3)软件设计

  此电度表设定了峰、平、谷三种费率,六个时段,整个电表软件程序主要包括主程序,以及实现系统初始化、电量脉冲积算、电量转化、LCD显示模式选择、电量显示、数据保存、键盘中断等功能的子程序。通过主程序直接或通过中断的方式调用子程序,实现系统的整体功能。各程序模块的设计如下文所述。

主程序

  主程序首先完成启动时的系统初始化,包括串口通信、LCD设置、FLASH、RAM和实时时钟RTC等的初始化操作。然后判断时段,在LCD上显示电量和时间,并根据显示模式判断的结果更改LCD上的显示数据。主程序流程图如图5所示。

点击在新窗口中浏览产品

图5  主程序流程图

 

电量脉冲积算子程序

以AD7755为核心的功率计量电路产生与功率成正比的电量脉冲,对电量脉冲的累计即可获得电量值,本设计产生的电量脉冲为1600imp/KWh。因用6位LCD显示电量(最后1位显示小数位),电量值最大要累计到十万度,所以需要4字节来累计电量脉冲。该程序利用中断的方式来累计电量脉冲,中断程序如图6所示。

点击在新窗口中浏览产品

图6  电量脉冲计算中断子程序

 

键盘中断和LCD显示模式选择程序

  实时时钟和LCD显示模式的设定由键盘中断程序来完成。若B1按钮按下,则进行日历显示和时间显示的切换;若B2按钮按下,则进行常显方式和轮显方式的切换;B3按钮和B4按钮配合使用可以调整实时时钟。按钮的具体功能如下文所述。

1.如果B1按钮按下,则进行日历显示和时间显示的切换:

Ø  B1按钮按一下,LCD第二行显示日历;

Ø  B1按钮再按一下,LCD第二行显示时间;

Ø  按照上述步骤循环实现功能。

2.如果B2按钮按下,则进行常显方式和轮显方式的切换:

Ø  B2按钮按一下, LCD第二行轮显各时段电量;

Ø  B2按钮再按一下, LCD第二行显示时间;

Ø  按照上述步骤循环实现功能。

3.如果B3按钮按下,则进入或推出时间设定模式:

Ø  B3按钮按一下,LCD第二行显示时间,但秒略暗,此时按B4可调整实时时钟的秒钟;

Ø  B3按钮再按一下,LCD第二行显示时间,但分略暗,此时按B4可调整实时时钟的分钟;

Ø  B3按钮再按一下,LCD第二行显示时间,但小时略暗,此时按B4可调整实时时钟的时钟;

Ø  B3按钮再按一下,LCD第二行显示日历,但日期略暗,此时按B4可调整实时时钟的日期;

Ø  B3按钮再按一下,LCD第二行显示日历,但月份略暗,此时按B4可调整实时时钟的月份;

Ø  B3按钮再按一下,LCD第二行显示日历,但年份略暗,此时按B4可调整实时时钟的年份;

Ø  B3按钮再按一下,退出时间设定模式,LCD第二行恢复时间显示;

Ø  按照上述步骤循环实现功能。

    LCD显示模式选择流程图如图7所示。

点击在新窗口中浏览产品

       图7  LCD显示模式选择流程图

3.红外抄表器部分

  1)功能设计

  A.抄表功能:通过红外通讯,发送相应的功能代码对电度表进行操作,可以实现准确无误的无线自动抄表。

  B.电表参数设置、修改功能:可以对电表参数进行设置及修改。

  C.通信功能:通过串口通讯,可以将抄表所得的用户数据送到PC机处理。PC机上有一个为接收和处理用户数据而专门设计的程序界面。

  D.查询功能:可以查询电表参数及峰、平、谷累计电量。

  E.保密功能:只有输入正确密码,才能开机抄表。

  2)硬件设计

红外抄表器通过红外数据通讯来实现抄表的功能。红外数据通讯实际是利用红外线作为通讯载体,有红外发射器和红外接收器来完成信号的无线收发。在发射端,对发送的数字信号经适当的调制后,送入电光变换电路,驱动红外发送二极管发射红外光脉冲;在接收端,红外接收器对受到的红外信号进行光电变换,并进行解调后,恢复出原信号。

  ●原理框图

为方便抄表人员的使用,电度表的红外抄表器带有小键盘和液晶显示器。它的原理框图如图8所示。

点击在新窗口中浏览产品

图8  红外抄表器的原理框图

 

  ●红外发送接收电路

红外发送电路采用塑封的TSAL6200发射二极管,它会将周期的电信号转变成一定频率的红外光信号;红外接收电路采取红外接收器件HS0038。电路如图9。

点击在新窗口中浏览产品     点击在新窗口中浏览产品

图9  红外发送、接收电路图

 

红外发送电路的原理是:红外发送电路使用MC68HC908LJ12的PTB4和PTB5引脚,PTB4作为定时器的输出比较接口,用来产生频率为38K的载波信号,而PTB5作为I/O口使用,用来产生一定脉宽的方波信号,用来代表二进制数字1或0。然后,PTB4和PTB5通过或门、NPN三极管放大,通过TSAL6200发射二极管产生38K的红外载波信号。

红外接收电路的原理是:如果接收到38K的载波信号,HS0038芯片会输出低电平,否则输出高电平,从而可以将“时断时续”的红外载波信号解调成一定脉宽(根据脉宽的不同,代表“0”或“1”)的连续的方波信号,经单片机处理,便可以恢复出原数据信号。

  ●LCD驱动电路

LCD液晶显示器电路如图10所示。本设计中是由LJ12的I/O口控制LCD的片选与读写,并通过LJ12的同步串行通讯接口SPI来传输LCD的显示的数据。为了使串行口MOSI的串行输出能够转变为并行输出数据,从而可以被LCD的DB0~DB7接收,中间加了一个74HC164芯片。它是将A、B引脚上的信号作与运算,作为串行输入的数据信号,并移位输出到Q0~Q7引脚上,MR信号用于清除Q0~Q7的信号(全部输出低电平)。

点击在新窗口中浏览产品

图10   液晶显示电路  

其中LCD液晶显示器型号为HY12864。HY12864为128×64点阵LCD,采用HD61202作为列驱动器,同时使用HD61203作为行驱动器的液晶模块。它具有简单而功能较强的指令集,与微控制器的数据传输采用8位并行传输方式。在LJ12的片内FLASH中存入了需要使用的字符库,通过调用LCD字符显示程序,可以LCD上显示中英文字符。  

  3)软件设计

红外抄表器软件包括上位机软件和下位机软件。上位机软件是运行在PC上的程序,实现通过串口从抄表器读取数据的功能,同时也具有数据处理、管理、存储、打印等功能。下位机软件是驻留在抄表器LJ12芯片中的程序,可以大致分为两大部分:系统主程序部分和中断服务程序。

  ●主程序

主程序首先完成启动时的系统初始化,然后提示用户输入开机密码。用户输入正确的开机密码后,抄表器进入键盘中断等待状态。如果有键盘中断产生,主程序会调用中断服务程序判断何键按下,并执行相应的功能,包括抄表、参数修改、与PC机通讯以及密码修改等功能。抄表器的主程序框图如图11。

点击在新窗口中浏览产品

图11 抄表器的主程序框图

 

  ●红外发送子程序

红外发送的载波信号,是由定时模块的输出比较接口PTB4和I/O接口PTB5共同产生的。其中,由输出比较产生38KHz的载波信号,由I/O接口产生一定脉宽的方波信号,然后通过或门产生二者的或信号。也就说,在PTB5为低时或门允许38K载波信号通过,而PTB5为高时,或门不允许38K载波信号通过,从而产生了时断时续的红外载波信号。而红外接收器接收到38K的载波信号会输出低电平,否则输出高电平,因此红外接收器的输出信号正好是PTB5产生的方波信号。所以只要按照需要传送的数据来设置PTB5产生的方波信号的脉宽,就可以实现红外数据的准确传送。

在本设计中,方波信号的脉宽为2ms表示传送的数据为1,脉宽为1ms表示传送的数据为0,连续传送8个数据,即传送了一个字节。为了保证数据传送的正确性,传送完一个字节的数据后,接着传送它的反码。为了使传送与接收同步,在每个字节数据传送前,又设定了同步头,最开始的同步头脉宽为5ms,其他的同步头脉宽都是3ms。具体的波形图和红外发送子程序的流程图分别如图12、13所示。

点击在新窗口中浏览产品

图12 红外信号波形图

点击在新窗口中浏览产品

图13    红外发送子程序流程图

 

  ●红外接收中断子程序

红外接收器输出的方波信号,是使用单片机的外中断引脚IRQ来处理的。单片机处理的原理:设定IRQ中断的触发方式为下降沿触发,这样两次中断之间的时间间隔正好为方波的一个脉宽,然后通过比较单片机在这段时间间隔内的计数,来判断此脉宽代表“1”、“0”还是同步头。如果是初始同步头,准备接收数据,接收完的8个数据也即一个字节的数据后,应该接收一个中间同步头,然后接收前面接收的数据的反码,接收完后与前面接收的8个数据进行比较,如果不是正反码关系,表示接收出错;若是正反码关系,继续接收下一个字节的数据,直到接收完所有数据。(这样可以保证接收到的数据有很高的准确度)。具体的子程序流程图如图14所示。

14    红外接收中断子程序流程图

返回顶部


2013-2015 PIC单片机解密网 All Rights Reserved.
如有任何问题和建议请联系:498187676@qq.com

深圳市星光芯电子有限公司 版权所有

电话:0755-88820678 QQ: 498187676 地址:深圳市龙岗区南湾街道平吉大道1号建昇大厦B栋1618(李朗软件园对面)
手机:13713820066 联系人:周工


 


站点地图

粤ICP备12084176号