基于单片机的电表抄表系统学术论文

3997
    


来源:
Licence:
联系:
分类:
平台:
环境:
大小:
更新:
标签:
联系方式 :
免费下载 ×

下载APP,支持永久资源免费下载

限免产品服务请联系qq:1585269081

下载APP
免费下载 ×

下载APP,支持永久资源免费下载

下载APP 免费下载
下载 ×

下载APP,资源永久免费


如果出现不能下载的情况,请联系站长,联系方式在下方。

免费下载 ×

下载论文助手APP,资源永久免费

免费获取

如果你已经登录仍然出现不能下载的情况,请【点击刷新】本页面或者联系站长


 

基于单片机的电表抄表系统

 

 摘 要

     自动抄表是指采用通信和计算机网络等技术自动读取和处理表计数据。发展电能自动抄表技术是提高用电管理水平的需要,也是网络和单片机技术迅速发展的必然。采用自动抄表技术,不仅能节约人力资源,更重要的是可提高抄表的准确性,减少因估计或誊写而造成账单出错,使供用电管理部门能及时准确获得数据信息。本例中介绍的抄表方案可方便移植到煤气表、水表等各种智能抄表系统。本例抄表系统主要由主站端数据采集计算机、客户端基于单片机的抄表模块、计量电表三部分组成。客户终端单片机模块和数据采集计算机通过RS-485串行通信口连接,实现数据传输。本例中被测量的电表为威胜3型电表。

本例主要介绍客户端基于单片机的电表抄表终端的设计和实现方案在设计本例抄表系统时,以上功能均需要满足,其中主要部分是供电方式设计、数据掉电保护。功能设计、终端抄表模块与数据采集计算机通信协议设计、实时时钟功能设计。其中终端单片机抄表模块主要功能如下:采用三相四线(3x220/380V)供电方式,在三相交流电压断一相或二相的条件下,交流电源能维持终端正常工作,并且系统具有备用电池供电功能;具有实时测量用户用电电量功能;具有掉电数据保护功能,能保存用户用电电量信息。支持DL/T—645电表通信规约。终端和数据采集计算机通过RS-485通信,终端和主站通信具备数据完整性认证机制以保。

终端具有实时时钟功能,并且有对时功能。

关键词: 单片机;抄表系统;串行通信;

 

 

                                                                                                         

摘要

Abstract

1 绪论·········································································································· 1

1.1 本课题的研究背景······················································································ 1

1.2 电表抄表系统的国内外研究动态···································································· 1

1.3 电表抄表系统的目的及意义·········································································· 3

2 系统的总体设计··························································································· 3

2.1 系统的组成······························································································· 4

2.2电表抄表系统的功能说明及论文要求······························································ 4

2.3电表抄表的关键问题··················································································· 5

3系统的电路设计···························································································· 6

3.1 单片机简介······························································································· 6

3.2技术方面具体体现······················································································ 6

3.3 RS-232和RS-485穿行通信设计··································································· 14

3.3.1串行通信的作用······················································································ 14

3.3.2技术方案······························································································· 15

3.4 通信协议设计··························································································· 15

3.4.1通信协议的作用······················································································ 15

3.4.2 技术方案······························································································ 16

3.5  抄表系统电路图······················································································· 19

4 软件的实现································································································ 20

4.1串行通信的基础知识·················································································· 20

4.1.1串行通信的数据传输················································································ 20

4.1.2串行通信的数据转换················································································ 20

4.1.3串行通信协议························································································· 22

4.2 RS-232和RS-485串行通信设计··································································· 23

4.3系统通讯方式实现····················································································· 26

4.4掉电数据保护的软件实现············································································ 27

4.5数传终端的软件实现·················································································· 27

4.5.1AT指令的调试························································································ 26

4.5.2程序的设计···························································································· 27

5结论········································································································· 32

 

参考文献

附录

致谢

 

 

基于单片机的电表抄表系统

 

1 绪论

 

1.1 本课题的研究背景

目前,我国用户都是人工抄表。这种方式消耗了大量的人力、物力。因此,国家有关部门规定以后将逐步以计算机为基础的自动抄表系统取代传统的人工抄表,即实现远程集中自动抄表。[1]

电能表远程抄表系统就是利用这种新型的智能化信息管理方式,设计为小区、公寓的智能化管理系统的子系统。但是由于各个厂家生产的电能表的差异性,所以该系统不可能支持目前市场上的所有电能表,目前只支持太原市特普高电子科技有限公司生产的“多用户多功能电能表”[2]

1.2电表抄表系统的国内外研究动态

 

由于电能计量和管理的需要以及电子技术的发展,使电子式电度表在20世纪70年代就已出现。随着数字电子技术的飞速进步,电子式电度表的功能逐渐增多并日臻完善。电子式电度表一般由电能测量机构和数据处理机构两部分组成,根据电能测量机构的不同,又分为机电脉冲式电度表和全电子式电度表两大类。机电脉冲式电度表沿用感应系电度表的测量机构,其数据处理机构则由电子电路和计算机控制系统实现,因而,机电脉冲式电度表是一种电子线路与机电转换单元相结合的半电子式电度表全电子式电度表是由又被称为“静止式电度表”或“固态电度表”。近年来,各种新型电子式电度表不断推出,型号各异乘法器完成对电功率的测量。由于它没有传统电度表上的旋转机构,因而功能众多,但其基本原理相需量计量和预付费等;保护功能,包括过电流、过电压保护与防窃电等;通信功能,可以是红外通同,主要功能可归为三个方面:计量、计费功能,包括分时计量、最大需量计量和预付费等;保护功能,包括过电流、过电压保护与防窃电等;通信功能,可以是红外通信、无线电通信或载波通信等。常见的自动抄表通信方式:(1)按信道介质分,常见的自动抄表通信有载波通信,电话线通信和无线三种方式。a 、光纤通信具有频带宽、传输速率高、传输距离远和抗干扰能力强等特点,非常适合上层通信网的要求。随着光纤技术的发展和广泛应用,自动抄表系统中将更多地使用光纤。b、由于电话在城镇的迅速普及,利用现有电话网进行数据通信是一个经济有效的方案。利用电话网通信,只需在数据集中器和工作主站处加装调制解调器即可,其传输速率可达56Kbps。但电话线通信的线路接通时间较长,一般要几秒到十几秒。而且,我国的部分乡村、小城镇还没普及电话c、 对于分布分散的集中器,利用无线方式进行数据通信是一种较好的选择。目前我国已有车载无线通信自动抄表系统投入运行。但无线通信方式需要慎重选择频点,并需申请频点使用权。[3]

(2)若按连接方式分,则自动抄表系统的通信方式主要有星型和总线型连接方式。a、星型连接通信是以工作主站为中心,以星型发散的形式分别通过通信信道与分散于各地的集中器连接,形成1对N的连接形式。这种方式下信道通信数据量大,要求有一定的传输速率和频宽。b 、总线型通信以一条串行总线连接各分散的采集器或电度表,实行各节点的互连。这种方式下信道上节点多,传输速率也不会很高,一般用于底层的电能数据的采集。常见的有RS-485总线网和低压电力线载波通信网。由于电力线完全由电力部门控制,如果用电力线实施载波通信,不需要再投资铺设通信线路,不仅可大大节约资金投入,且还具有维护量小的特点;而且,用低压电力线作通信信道可以实现灵活的“即插即用”。尤其是近年来扩频通信技术的成功应用,使得低压电力线载波通信越来越多地用于自动抄表系统。利用低压电力线作为自动抄表系统的底层数据通道,具有成本低、方便准确的特点通信方式的选择是设计自动抄表系统的首要任务,它直接关系到系统的性能。具体确定通信方式时需要综合考虑系统面对的对象、用户的分布、用户的数量、地理条件、期望达到的目标、系统的扩展升级以及与其他网络的兼容等。

目前许多国家和地区都广泛应用自动抄表系统代替人工抄表系统主要集中在煤气表,电量表和流量表的自动抄表,特别是煤气抄表已经有几十年的发展历史。抄表技术的快速发展得益于80年代计算机技术,超大规模集成电路和通讯技术高速发展,使得抄表系统在向着智能化,低功耗,低成本和通信标注化设计的过程迈出了坚实的一步达到了可以大规模推广的使用性阶段。我国国内所采集的抄表方式大致可分为三种:一是传统的人工抄表方式,抄表人需到用户读取数据,返回总局后将数据重新输入电脑进行处理;二是预付费方式,抄表人无需到用户处,用户通过银行划拨收费活到仪表管理部门购买磁卡,ic卡等,按购买额提供用量,完成收费工作;三是远程抄表方式,监控中心通过远程通信系统自动获取远程仪表数据的方式。当前在我国国内大量使用的是预付费方式。部分地区已经开始了远程抄表的试点,远程抄表优势更大,在将来会得到更广泛的应用,技术上也发展飞速,现在介绍的就是一种远程抄表系统的设计与实现。

 

1.3 电表抄表系统的目的及意义

水、电和燃气是生活中必不可少的,它们的发展一直倍受人们的关注。在人们关注的同时,三表抄送系统产生了,并且,随着科技的不断发展,三表抄送系统也越来越智能化。 同时,随着人们的生活水平不断提高,老百姓对生活环境提出了更高的要求。在政府政策的鼓舞下,家居智能化得到了高速的发展。随着科技的发展,小区住宅除了满足人们最基本的居住要求,还要将方便、省时的物业管理带给住户。实现住宅的三表(水、电、煤气)自动抄表、自动计费,已成为新型智能小区的必备条件。

作为智能化产业链中的一环——智能抄表系统也同时得到了蓬勃发展。从沿海的经济发达地区深圳、广州、上海到政治文化中心北京,以及中国西部城市成都、重庆、贵州、昆明等地均不同程度地建设了智能化示范小区。这些智能化住宅小区的建设,提高了住户的生活质量,扩大了住户的居住空间,为当地智能化建设起到了示范作用。 让我们回头看看,几年前甚至是在现在,很多落后的地区对三表抄送这一块还是用最原始的方法,“亲自登门拜访”这就是传统的抄表方式。传统的三表需要抄表人员定期挨家挨户抄取数据,结算出费用后,再到各家索取,误差大、统计工作量大,人为的错误给物业管理和用户带来极大不便。现在有许多地区改为插卡式买电装置,这虽然减少了人为因素,但是买电时要到银行,费时费力,且水、电、气表分别交费,也有许多不便之处。小区智能抄表系统节省时间、人力、物力、提高工作效率,降低物业成本,准确及时地将住户所使用的三表数据显示出来,为实现小区科学、系统的物业管理提供了有效的解决方法。

   小区智能抄表系统的出现,方便了住户,可设置多级加密功能,定义访问权限,更可增加系统的保密性。防泄漏报警可以使住户放心,不必因家中只有老人、孩子而担心煤气的泄漏与触电现象的发生。一方面杜绝了抄表扰民的问题;另一方面可以简化管理手段,减轻制物业管理负担。因此三表出户系统是新一代的具有城市性自动化计量收费管理系统,是提高住宅发展的必然,合乎人们高品质生活的追求,符合国家小康型住宅产业的精神。

 

 

2 系统的总体设计

 

2.1 系统硬件的组成

基于单片机的电表抄表模块设计在设计时需要解决下面五方面的问题:一是供电方式的硬件电路设计;二是掉电数据保护功能的设计;三是RS-232、RS-485串行通信设计;四是通信协议设计;五是实时时钟功能设计。本例中,和这五个方面相关的关键技术包括。

(1)供电方式设计——如何在三相四线(3x220/380V)供电方式,三相交流电压断一相或者二相的条件下,能够提供给单片机稳定的+5V电源。如何设计备用电池供电。本例中将给出可行的硬件电路设计并作详细的说明,这是本系统能够正常运行的关键。[4]

(2)掉电数据保护功能——设计系统扩展E2PROM芯片AT24C04的硬件接口电路和单片机口模拟IIC总线读写AT24C04的驱动程序,以实现掉电数据保护功能。

(3)RS-232、RS-485串行通信设计——系统使用具有两个串口的单片机w77e58,串口1为RS-232接口实现与电表的通信,串口2为RS-485接口实现与数据采集计算机的通信。本例中将详细介绍串口通信的硬件电路设计和软件编程要点。

(4)通信协议设计——介绍本例中使用的通信协议格式及检验数据传输正确性的CRC(循环冗余校验)算法。

(5)实时时钟功能——主要介绍实时时钟芯片DS12887和单片机的硬件连接和软件驱动编程.

2.2系统软件组成

该系统使用Visual C++6.0为开发工具。Visual C++是Microsoft公司开发的面向对象的可视化软件开发系统,它基于Windows95/98/NT/2000/XP,采用高度结构化的C++语言,具有结构清晰、高效优化等特点。

Visual C++6.0软件包包含了许多单独的组件,如编辑器、编译器、链接器、生成实用程序、调试器以及各种各样为开发Microsoft Windows下的C/C++程序而设计的工具。更令我们兴奋的是,它还包含有一个名为Developer Studio的开发环境, Developer Studio的特点是:把所有的Visual C++工具结合在一起,集成为一个整体,通过一个由窗口、对话框、菜单、工具栏、快捷键及宏组成的和谐系统,你可以观察和控制整个开发进程。集成开发环境就像一间带有监视器、刻度盘和操纵杆(它使个人能操作工厂中的许多机器)的控制室。该环境几乎就是Visual C++中所能“看见”的所有东西。所有其他事情都在其管理下在幕后运行。

在Visual C++6.0中包含的Win32软件开发工具包(SoftwareDevelopmentKit,即通常所说的SDK)中的结构、功能,它为编程者提供了一个应用程序框架,这个应用程序框架为编程者完成了很多Windows编程中的例行性工作,如管理窗口、菜单和对话框,执行基本的输入和输出、使用集合类来保存数据对象等等,并且,MFC使得在程序中使用很多过去很专业、很复杂的编程课题,如ActiveX、OLE、本地数据库和开放式(Open Da-tabase Conn-ectivity,简写为ODBC)、Windows套接字和Internet应用程序设计等,以及其他的应用程序界面特性,如属性页(也叫标签对话框)、打印和打印预览、浮动的和可定制的工具条变得更加的容易。

 

2.2 电表抄表系统的功能说明及论文要求

随着人们生活水平的提高,科学技术的发展,现代城市居民住区只能化楼宇管理系统成为了一个热门的话题在目前的技术下,可以相对较好地实现只能化楼宇管理系统的要求,无人抄表系统需要具备以下功能。电力线通信的独特之处在于它可适应任何新的基础设施。

(1)实时查询。用户可实时查询起冷热水表、电表和煤气表的读数,应交纳各项费用金额和上次统计数据以及各种条目的事实查询、打印。

(2) 历史查询。可提供每户各种不同条目下历史数据的查询和打印,包括自动收费信息、人事信息的查询和打印。

(3) 自动收费。包括各项财务参数,收费方式,收费周期等的设置,水。电,燃气量统计,按厂商设置周期自动统计客户不同表使用量,并按起设置的财务参数,收费方式及不同表的读数,自动计算客户应交纳的费用,实现收费单的打印。

(4) 人事管理。实现居民区住户信息的增、减几浏览。

在为试点居民小区远程抄表系统做的总体技术方案设计时,本文遵循三条基本原则:

(1)在试点小区的配电变压器和小区住户之间不铺设任何专用有线信道,数据的上行或下行传送必须使用现成的低压电力线作为数据媒介。

(2)只在配电变压器和住户地点对应安装数据的收发装置,建立起各用户电能表终端与配变集中器的直接数据链路,中间不安装任何硬件上的中继或第二级集中转发装置。

(3)用户电能表终端除了记录电量外,它还应该执行就地保护和远方监控功能。

本系统的任务在于实现低压用户电量数据的远程传输和抄算,对低压电力用户的负荷和用电进行远程监测。

2.3搞好自抄系统设计的关键问题

由于现代电子技术、通信技术的飞速发展和电力市场营销管理的不断需求,电能表自动抄表系统的技术研究、产品开发、系统设计和试点运行工作日益引起电力营销管理部门、电能表制造企业及相关行业的关注和投人,因此,虽然我国对自动抄表的研究起步较晚,但发展较快。目前,车载无线电抄表、电力线载波抄表、近地集中抄表和远程控制抄表等各种形式的自动抄表系统已分别在我国各地有试点运行。 配电网自抄系统设计,必须解决好下列三个关键问题:传输通道及链路的选定;信号、数据的处理和检测;自抄系统管理网络的建立。第一,传输通道及链路的选定:传输通道及链路的选择直接关系到信号、数据传输的可靠性和工程实施的可行性。通过对国内外有关文献资料比较分析和试用效果的验证,加之对我国配电网现状、特性的研究分析之后,我们认为,采用配电线作为变电所与其用户之间的数据传输通道、光缆作为供电公司计算机与变电所计算机联网的链路,这是一种既经济又实用的最佳选择。第二,信号、数据的处理和检测:大家知道,任何一种传输通道及链路都不可避免的存在着不同程度的干扰。能否依据所选定的传输通道及链路的特征,对其信号、数据采取相应的包装方式和检测方法,将会直接影响到自抄系统的成败。根据我们对国内外有关电力线载波通讯技术进展的研究和试点运行效果的综合分析,可以说,我国在理论和实践上,已经研制成能够适应我国配电网特点的电力载波微弱信号的包装方式和检测方法,并取得比较令人满意的效果。第三,自抄系统管理网络的建立:自抄系统管理网络的建立是实现自抄系统的前提,选定一种符合实际、简便可靠的管理网络是自抄系统正常工作运行的保障。依据我国电力市场营销管理特点和所采用的配电线传输信道及光缆链路,我们拟定出了配电网自抄系统管理网络框图。实现自动抄表,能提高住宅档次和物业管理水平。[5]

   物业管理公司或专业公司可节省大量的人力、物力、财力,提高工作效率、提高抄表的准确性,同时系统施工方便、操作简单,由于电表自动抄表系统具有良好的经济效益和社会效益,因此它具有广阔的发展前景。

 3 系统的电路设计

 

3.1 单片机简介

由于本模块的使用现场环境相对特殊,故对于电源的设计充分考虑到了系统供电的稳定性和可靠性。本模块采用三相工业用电作为电源输入,首先通过防雷抗干扰电路,接着通过220-9V/18V变压器降压,再接着通过桥式整流电路得到18V左右直流电压,再通过一系列隔离滤波进入直流转换稳压器件LM2575得到系统的5V工作电压。另外,考虑到现场存在停电的可能性,我们还专门设计了系统的备用电源。备用电源采用比较廉价的锂离子电池,当系统正常供电时,锂离子电池处于充电状态,对于充电的管理我们选用了比较常用的电源充电管理芯片MAX713管理备用电池的充电。当现场停电时,自动转为备用电池给系统供电。[6]

77E58与标准8051相兼容的全新核心的微处理器。由于去掉了多余的存储器周期和运算周期,它在相同周期里执行8051的指令比最初的8051快得多。典型的指令周期77E58比8051快1.5到3倍。电源消耗也做了改进采用静态COMS设计。可以工作于较低的时钟频率下。32K的EEPROM程序段和1K的外部SRAM可以省去外部的扩展存储器。并可以为使用者保留更多的引脚。32K Rom,4.5-5.5V,1K  Ram,4个振荡为1 个机器周期,40MHZ,1个扩展4BIT  I/O(44脚),12个中断源,2个增强型串口,256字节RAM,1K SRAM (用MOVX存取)000H ---3ffH,内置看门狗,双16位数据指针  DPH1   DPL1,软件可编程存取RAM周期等.

 

W77e58单片机的特点:

(1)8位处理器

(2)最高40M时钟,4机器周期的指令执行速度

(3)与标准8051兼容的管脚。

(4)与8051兼容的指令

(5)4个8位I/O口

(6)扩展的4位I/O和等待信号线(44脚的PLCC或QFP封装提供)。

(7)三个16位计数/时器

(8)12级中断

(9)片上时钟源

(10)两个增强的双工窜口

(11)1K的片上外部存储器

(12)可编程看门狗

(13)两个全速16位数据指针DPTR

(14)外部数据访问周期可编程

(15)封装[7]

 

  1. 技术方案及具体实现

   以下介绍配电变压器集中器和用户电能表终端分别与配电变压器、用户一一对应并就地分布式安装。用电管理信息只能在系统的上下级之间传输。由于使用了分布式安装结构,在系统建设上与集中抄表箱用电系统相比,无须庞大繁琐的缆线工程,施工难度将会大幅下降。系统的扩展将随用户或配变数量的递增而模数化扩展,就象增加一个用户增加一块电能表那样简单。因此,系统扩展极具伸缩性,不会象集中式系统那样新建时资源闲置,用户发展时容量又不够。应该说,这个系统比较符合营业用电管理系统发展的主流方向。

其中用电管理主机到配电变压器集中器的信息传输媒介采用扩频无线信道或公共电话网(第一级信道),配电变压器集中器到用户电能表终端的信息传输媒介利用低压电力线载波信道(第二级信道)。显然,整个系统与配电变压器下面的电压电力网一样呈树形分布结构,可随用户发展和负荷增长任意扩展。系统在正常运行时采用三相四线外部工业电源供电方式,三相交流电压断一相或者二相的条件下,能够提供给单片机稳定的+5V电源。我们使用三相桥式整流电路来给系统提供+5V电压,具体实现电路如图3-1所示。

3-1 三相桥式整流电路图

 

系统在由外部电源正常供电的同时给备用锂电池充电,充电电路设计如图3-2所示。

                           3-2备用电 充电

   

   备用电池充电电路功能主要由MAX713完。MAX713系列是MAXIM公司生产的快速充电管理芯片,它可通过简单的管脚电压配置进行编程,实现对充电电池支数和最大充电时间的控制。芯片封装如图3-3所示。

   MAX713的引脚功能描述如下:

 

图3-3MAXIM封装图

(1)VLIMIT:设置单节电池的最大电压,电池组(BATT+—BATT-)的最大电压Em不能超过VLIMIT×(电池数量n),且VLIMIT不能超过2.5V,当VLINIT接V+时,Em=1.65n(V),通常将VLIMIT与VREF连接

(2)BATT+:电池组正极。

(3)PGM0:可编程引脚。

(4)PGM1:可编程引脚。通过对PGM0和PGM1脚电压的设定可设置充电电池的数量,从1~16。

(5)THI:温度比较器的上限电压。当TEMP电压大上升到THI时,快速充电结束。

(6)TLO:温度比较器的下限电压。充电初始,当TEMP电压低于TLO时快速充电被禁止,直到TEMP电压高于TLO。

(7)TEMP:温度传感器输入。

(8)FASTCHG:快速充电状态输出。

(9)PGM2:可编程引脚。通过对PGM2和PGM3脚电压的设定可设置快速充电的最大允许时间,从33min~264min。

(10)PGM3:可编程引脚。除设定最大允许时间外,还可设定快速充电和涓流充电的速率。

(11)CC:恒流补偿输入。

(12)BATT-:电池组负极。

(13)GND:系统地。

(14)DRV:驱动外围“PNP”。

(15)V+:分路调节器。V+对BATT-电压为+5V,为芯片提供分路电流(5~20mA)。

(16)REF:参考电压输出2V。

 

在应用中MAX713提供可编程引脚PGM0和PGM1,通过对两者采取不同的电压连接方式即可设置充电电池数量。而实际充电电池的数量也必须与由PGM0和PGM1编程确定的数量一致,否则利用电压梯度检测充电功能将可能失去意义。通过对PGM2和PGM3引脚的编程电压设置可设定电池的充电速率和充电时间。从表1中可以看出,对于MAX713来说,最大允许快速充电时间为264分钟,因此其最小充电速率将不能低于C/4。[8]\

  而涓流充电电流ITRICKLET一般为C/16。此外,鉴于电池本身的固有特性(将电能转化为化学能存储),充电时间效率通常在80%左右,即当以C/2速率充电时,理论上充满电所需时间为2小时,而实际时间通常为2小时30分钟左右。电池数量的设定如表3-1所示

电池数量

 

PGM1

连接方式

PAM2

连接方式

1

V+

V+

2

3

Open

V+

REF

V+

4

BATT-

V+

5

V+

Open

6

7

Open

Open

REF

Open

8

BATT-

Open

9

V+

REF

10

Open

REF

11

REF

REF

12

BATT-

REF

13

V+

REF

14

15

16

Open

REF

BATT-

         REF

BATT-

BATT-

       

3-1 MAX713引脚功能

电压梯度充电原理图如图3-4所示。

3-4  利用电压斜率充电

 

图3-4反映了利用电压梯度控制快速充电的全过程。在时间段1内,MAX713从电池吸收很小的电流(5mA左右),当接通充电电源后,开始对电池以C/16的速率进行涓流充电,电池电压开始上升(时间段2)。当单节电池电压上升到0.4V以后,快速充电正式开始(时间段3),电池电压和电池温度持续上升,充电电流保持在设定值不变。当电池电量达到额定值后,电池组电压开始下降,即负值时系统从快速充电转到涓流充电(时间段4),此时电池电压继续下降到一定值后保持不变,电池温度也随之降低。当充电电源从电路中移开后负载和MAX713从电池吸收电流(时间段5)。当系统失去外部三相四线电压以后自动切换为由备用电池供电,电路设计如图3-5所示。

 

 

 

                      图3-5系统电源供电方式切换电路

    当系统由三相四线工业用电供电时,触点开关K1吸和到左边,此时由外部三相电压通过桥式整流以后得到的18V电压经过LM2575降压以后提供给系统+5V电压VCC。同时给备用电池充电当外部三相四线电压掉电后,触点开关K1吸和到右边,备用电池接入供电回路,给系统提供工作+5V电压VCC。[9]

3.3 掉电数据保护功能的实现

 

1.  掉电数据保护功能的作用

单片机控制系统中,通常一些重要的数据需要具有在系统掉电以后不丢失,当系统再次上电以后能够正确读取的功能。本例中我们需要实现一些通信数据的掉电保护功能,实现掉电数据保护功能的方法有很多,常用的有系统扩展易失性存储器外加电池的方法和系统扩展非易失性存储器的方法。其中系统扩展非易失性存储器的方法中常使用EEPROM和FLASH作为存储介质,由于本例中需要实现掉电数据保护功能的数据不多,所以使用具有支持IIC总线数据传送协议的串行CMOS EEPROM AT24C04作为系统的掉电数据保护介质。

掉电数据保护及其软件的任务主要包括以下几个方面:

(1)IIC总线的原理及用单片机普通I/O口模拟IIC总线的方法。

(2)AT24C04芯片的读写驱动程序的编写。 [10]

2.  技术方案

选择具有IIC总线的芯片AT24C04作为掉电数据保护模块,但是一般单片机没有IIC总线接口,所以我们要用单片机的I/O口模拟IIC总线的时序来实现芯片的读写功能,图3-6所示是AT24C04的管脚图。

3-6AT24C04的管脚图

  1. IIC总线简介

IIC(Inter-Integrated Circuit)总线是由PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。IIC 总线最主要的优点是简单性和有效性。由于接口直接接在组件之上,因此IIC总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互连成本。IIC总线的另一个优点是,它支持多主控,其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。在任何时间点上只能有一个主控。[11]

2)IIC总线工作原理

IIC总线是由数据线SDA 和时钟SCL 构成的串行总线,可发送和接收数据。在CPU 与被控有拨通各自的号码才能工作,所以每个电路和模块都有惟一的地址,在信息的传输过程中,IIC总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU 发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的模块,确定控制的种类;控制量决定该调整的类别及需要调整的量。这样,各控制模块虽然挂在同一条总线上,却彼此独立,互不相关。

IIC总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。

开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。

结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。

应答信号:接收数据的IC 在接收到8bit 数据后,向发送数据的IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,则判断为受控单元出现故障。由于选用的单片机没有IIC总线控制器,所以就要用单片机的I/O口模拟IIC总线的时序来实现AT24C04的数据读写功能。下面介绍IIC总线读写数据的时序,这也是后面编写读写驱动程序的基础。

3)IIC总线基本操作

IIC规程运用主/从双向通信。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。[12]

在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符,不同的芯片类型有不同的定义,EEPROM 一般应为1010。接着三位为片选(AT24C04的A0是作为页选P0),最后一位为读写位,当为1时为读操作,为0时为写操作。AT24C04的控制字如图9所示。

              

 

1

0

1

0

A3

A1

P0

P/W

3-7  AT24C04的控制字配置

 写操作分为字节写和页面写两种操作,AT24C04容量为512字节,分为32页,每页大小为16字节。字节写操作要求单片机首先送出开始标志和控制字等到AT24C04以低电平回答收到以后送出8位数据地址,AT24C04收到以后再次以低电平回答,然后单片机送出8位数据,待AT24C04收到并以低电平回答以后单片机送出结束位。这样一次字节写操作完成,AT24C04完成一个字节数据写入之前不能再进行第二次字节写操作。上述过程如图3-8所示

 

 

            

3-8  AT24C04字节写操作时序

页面写操作类似于字节写操作,页面写操作是一次写入16个字节,其时序图如图11所示

 

3-9  AT24C04页面写操作时序

读操作有三种基本操作:当前地址读、随机读和顺序读。当前地址读:AT24C04内部地址计数器会自动记下上次读或写的地址,所以只要AT24C04不掉电,我们就可以读出上次读或写的地址内的数据,需要注意的是当AT24C04返回数据内容data以

后单片机不用给回答信号,直接发出停止位既可。当前地址读操作时序如图3-10所示。

 

3-10 AT24C04当前地址读时序

随即读时序如图3-11所示。

 

 

 

 

 

 

 

           3-11  AT24C04随机读时序

顺序读:顺序读每次读出一个字节内容,当单片机送出停止位时停止读取数据。如图14所示。

 

 

3-12  AT24C04顺序地址读时序

 

 

 

 

3.3 RS-232、 RS-485串行通信设计

3.3.1       串行通信方的作用

单片机w77e58作为系统的要控制器件负责两个串口数据收发和处理工作 ,下面介绍本例中双串口通信的实现 [13]。

3.3.2. 技术方 案 

本例中要使用两个串口,一个串口用做RS-485,用来和电表通信另一个串口用作  RS-232,用来和电表通信 。而一般的51 单片机只有一个串口驱动器,我们可以选用具有两个串口驱动器的增强型单片机例如w77e58,或者采用单串口单片机 通过串口扩展芯片例如 16c550来扩展出第二个串口。

下 面对这 两种 方案做 简单的对比 :

方案 1:采用具有两个串口驱动器的增强型单片机 w77e58。由于串口驱动在单片机内部,所以不用外部再增加硬件设备就可以实现双串口功能 同时这种方案的稳定性好也比较可靠,而且相对于采用单串口单片机  16c550 成本较低。但是双串口单片机 w77e58 比一般51单片机在使用上稍微复杂 。

方案 2:采用具有一个串口驱动器的单片机扩展串口芯片16c550。这种方案实际上是对单片机扩展了一组外部寄存器,所以调试的时候比方案一简单,但是需要硬件投入比方案一多,同时系统稳定性没有方案一好。经过对比可以发现方案一在成本投入 和稳定性方面都比方案二好, 虽然方案一的调试过程比方案二稍微复杂一点。下面会具体介绍双串口单片机w77e58法,如图15 所示[14]

 

 

 

 

 

3-13 单片机w77e58

w77e58是WINBOND的增强型51单片机,除具有一般51单片机的功能外, 它还具有两个串行口控制器32k Flash EPROM,同时芯片内置了看门狗电路 。

 

3.4    通信协议设计

3.4.1通信协议的作用

在实际应用中,单片机很多时候不是作为一个独立的控制单元而存在,它还要 与其他控制单元进行通信。这些控制单元可能是其他的单片机系统,也可能是PC机 如果是短距离通信可以使用RS-232,如果是长距离通信的话,可以选RS-485。在通信过程中,通信设备双方是相互独立的,从而造成了通信过程中数据传输的不确定性,即通信甲方向乙方发送完数据后,并不知道乙方是否正确收到。系统能否很好地克服这种不可确定性,很大 程度 上取决 于通信过程 中的 通信协 议及通 信 流 程的设 计。 [15]

3.4.2.   技术方案 

本系统中需要使用两个异步串行口, 一个用来和监控中心通信,另外一个用来和电 表通信。 和监控中心通信使用 RS-485,遵循本例中自定的通信规约;和电表通信的 串口使用RS-232方式,通信遵循DL/T— 645电表通 信规约 。

(1) 监控中心通信规约设计良好的通信协议中的数据格式一般都是基于包( 帧 )的 ,即将所要发送的数据 /命令的头尾加入修饰性的字符,形成一个包(帧 )发送出去;接受时将所收到的包(帧 )去掉所加入的头尾既可取出命令/数据 。当确定了通信过程中的通信协议格式和通信流程后,通信协议的框架就基本建立 起来了下面分别介绍这两个方面的内容 。

本例中使用的通信协议格式如下 : 

( 帧头)                                                                          ( 帧尾) 

3-1

 

Head

Addr

Data_len

Func_code

Data_area

CRC16

16_Bits

16_Bits

8_Bits

8_Bits

N*8_Bits

16_Bits

 

其中 : 

( 1)Head为帧起始字符代表一帧数据开始,双字节。本系统设定为十六进制的0xfa,0xfa。

(2)Addr为模块的地址号,双字节。每个模块设定的地址号是惟一的,最大可支持 65535个。

(3)模块。同时规定0xff 0xff为系统广播地址号。

(4)Data_len为数据帧的长度,包括Func_code及Data_area中包含的字节个数。

(5)Func-Code为功能代码,单字节。本例中用功能代码来定义一些任务,不同任务应该有不同的功能代码 。

(6)Data_area为帧的数据区。定义最多有N=100个字节 。

(7)CRC16为帧的校验信息,采用CRC-16校验码,低字节先发送, 高字节后发送。 此例中的通信协议是基于长度的。整个帧的接收和停止是根据帧的起始字符、长度字符来完成。

当出现一个起始字符时,即表示某一帧已经到来,当接收完所规定的长度时,一帧数据结束。单片机和监控计算机应该都遵循此通信协议,这样才能保证通信的正确 性。

通信过程中的某一帧数据的Func-Code( 功能代码 )决定了这一帧数据Data_area的长度 。也就是说不管是监控主机对单片机发送数据还是单片机对监控 主机发送数据,其功能代码都应该指定惟一的任务并且此任务的数据长度是可以确定的 。 [16]

(2)电表通信规约DL/T— 645简介

电表通信规约DL/T— 645是一种适用于本地系统中多功能电能表的费率与手持单元或其他数据终端设备进行电对点或一主多从的数据交换方式,规定了他们之间的物理连接,通信链路及应用技术规范。 此通信协议对通信过程的物理层、 链路层、应用层都做了详尽的说明,此处只对规约中定义的通信数据格式作简单 的介绍 。

 

0

D0

D1

D2

D3

D4

D5

D6

D7

P

1

3-14

 

 

字节传输序列。

字节传输方向为从左到右,其中0为起始位,D0到D7为8位数据位 ,P为偶校验 位,1为停止位。通信协议中规定通信以帧为传输单元,帧格式如下:

3-2

说明

代码

帧起始符

地址 域

 

 

 

 

 

 

帧起始符

控制码

数据长度域

数据域

校验码

结束符

68H

A0

A1

A2

A3

A4

A5

68H

C

L

DATA

CS

16H

 

帧 格式说 明如下:

帧起始符68H:标识一帧信息的开始,其值为68H=01101000B。[17]

地址域A0~A5:地址域由6个字节构成,每字节2位BCD码。地址长度可达12位十进制数,可以为表号 ,资产号,用户号,设备号等。具体使用由自定 义 ,当使用的地址码长 度不足6字节时,用十六进制AAH补足6字节,低地址位在前 ,高地址位在后 。当地址为999999999999H时,为广播地址。

控制 码C:控 制码的 格式 如下所 示: 

D7

D6

D5

D4

D3

D2

D1

D0

图3-14

D7= 0:由主站发出的命令帧;D7=1:由从站发出的应答帧。

D6= 0:从站正确应答;D6=1:从站对异常信息的应答。

D5= 0:无后续数据帧;D5= 1:有后续数据帧 。

D4~ D0:请求及应答功能码。

00000:保留。

00001:读数据 。

00010:读后续数据。

00011:重读数据。

00100:写数据 。

01000:广播校时 。

01010:写设备地址。

01100:更改通信速率 。

01111:修改密码 。

10000:最大需量清零。

数据长度L:L为数据域的字节数。读数据时L<=200,写数据时L<=50,L=0表示 无数据。数据域DATA数据域包括数据标识和数据、密码等,其结构随控制码的功能而改变。传输时发送方按字节进行加33H处理,接受方按字节进行减33H处理。

校验码CS:从帧起始符开始到校验码之前的所有字节的模256 的和,即各字节二进制算术和,不计超过256的溢出值。

结束符16H:标识一帧信息的结束,其值为16H=00010110B。

(3)通信协议中CRC16校验算法的实现在数字通信系统中可靠与快速是一对矛盾。若要求快速,则必然使得每个数据码元所占的时间缩短、波形变窄、能量减少,从而在受到干扰后产生错误的可能性增加,传送信息的可靠性下降。若是要求可靠,则使得传送消息的速率变慢,因此,如何合理地解决可靠与速度这一对矛盾,是正确设计一个通信系统的关键问题之一。为保证传输过程的正确性,需要对通信过程进行差错控制。差错控制最常用的方法是自动请求重发方式(ARQ)、向前纠错方式(FEC)和混合纠错(HEC)。在传输过程误码率比较低时,用FEC 方式比较理想。在传输过程误码率较高时,采用FEC容易出现 “乱纠 ”现象。 HEC方式则是 ARQ 和 FEC的结合。在许多数字通信中,广泛采用ARQ方式,此时的差错控制只需要检错功能 。实现检错功能的差错控制方法很多, 传统的有:奇偶校验、校验和检测、重复码校验 、恒比码校验、行列冗余码校验等,这些方法都增加数据的冗余量,将校验码和数据一起发送到接受端。接受端对接受到的数据进行相同校验,再将得到的校验码和接受到 的校验码比较,如果二者一致则认为传输正确。但这些方法都有各自的缺点,误判的概率比较高 。 [18]

CRC的全称为Cyclic Redundancy Check,中文名称为循环冗余校验。它是一类重要的 线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差错控制。差错控制理论是在代数理论基础上建立起来的。这里着眼于介绍本例中CRC16 的算法与实现。若需要进一步了解线性码、分组码、 循环码、纠错编码等方面的原理,可以阅读有关资料。

利用CRC进行检错的过程可简单描述为:在发送端根据要传送的k位二进制码序列 ,以一定的规则产生一个校验用的r监督码(CRC码),附在原始信息后边,构成一个新的二进制码序列数共k+r位,然后发送出去。在接收端,根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。这个规则,在差错控制理论中称为“生成多项式”。CRC算法有很多标准,常见的有:CRC-4, CRC-12, CRC-16, CRC-ITU, CRC-32, CRC-32c。本例中使用的是CRC-16标准,下面详细介绍本例中CRC16 算法 的实现 。

CRC算法可分为硬件电路实现方法和软件实现方法,其中软件实现方法主要有 比特型算法和字节型算法,本例中使用字节型算法。比特型算法逐位进行运算,效率比较低,不适用于高速通信的场合。数字通信系统(各种通信标准)一般是对一帧数据进行CRC校验,而字节是帧的基本单位。最常用的是一种按字节查表的快速算法 ,该算法基于这样一个事实:计算本字节后的CRC码,等于上一字节余式CRC码的低8位左移8位,加上上一字节CRC右移8位和本字节之和后所求得的CRC码。如果我们把8位二进制序列数的CRC(共256 个 全部计算出来放在一个表里,编码时只要从表中查找对应的值进行处理即可 。

CRC-ITU 的计 算算法 如下 :

(1) 寄存器组初始化为全“ 1”( 0xFFFF)。

(2) 寄存器组向右移动一个字节。

(3) 刚移出的那个字节与数据字节进行异或运算,得出一个指向值表的索引 。

(4) 索引所指的表值与寄存器组做异或运算。

(5) 数据指针加1,如果数据没有全部处理完 ,则重复步骤( 2)。

(6) 寄存器组取反,得到CRC,附加在数据之后。

CRC-ITU 的验证算法 如下 :

(1) 寄存器组初始化为全“ 1”( 0xFFFF)。

(2)寄存器组向右移动一个字节。

(3) 刚移出的那个字节与数据字节进行异或运算,得出一个指向值表的索引 。

(4) 索引所指的表值与寄存器组做异或运算。

(5)数据指针加 1,如果数据没有全部处理完 ,则重复步骤( 2)(数据 包括CRC 的 两个字节 )。

(6)寄存器组的值是否等于“Magic Value”( 0xF0B8),若相等则通过,否则失败 。

 

3.5 抄表系统电路

电 路图主 要包 括单片 机核 心电路 ,掉 电数据 保护 电路, 时钟 电路和 串行 通信接 口电 路这四个主要模块。

下面逐一简要分析各模块电路设计:

(1)w77e58单片机的核心电路 。

单片机的核心电路包括单片机w77e58,地址锁存器74LS373和SRAM6264。

(2)掉电数据保护电路 。

掉电数据保护电路包括具有IIC总线的EEPROMAT24c04。 需要注意的是管脚  SCL和SDA要

接10K的上拉电阻 。

(3)时钟电路。

时钟电路包括时钟芯片DS12887,时钟芯片主要包括和单片机地址总线的连接 和数据总线的连接。

(4)串行通信接口电路 。

系统具有两个串行通信口,分别为RS-232和RS-485总线。RS-232接口由MAX232 扩展实现, 采用3线接法RS-485由MAX485扩 展实现 。

以下是系统其他部分的总体电路图 。 [19]

 

 

 

具体实现

 

4.1 串行通信的基础知识

与外界的信息交换称为通信。基本的通信方式有并行通信和串行通信两种,一条信息的各位数据被逐位按顺序传送的通信方式称为串行通信。串行通信又分为异步通信和同步通信两种方式。串行通信的特点是:数据位传送按位顺序进行,最少只需一根传输线即可完成,成本低但传送速度慢。串行通信的距离可以从几米到几千米。

根据信息的传送方向,串行通信可以进一步分为单工、半双工和全双工三种。信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。

MCS-51单片机有一个全双工串行口。全双工的串行通信只需要一根输出线和一根输入线。数据的输出又称发送数据(TXD),数据的输入又称接收数据(RXD)。

串行数据通信中主要有两个技术问题:一个是数据传送,另一个是数据转换。数据传送主要解决传送中的标准、格式及工作方式等问题。数据转换是指数据的串并行转换。具体说,在发送端,要把并行数据转换为串行数据;而在接收端,却要把接收到的串行数据转换为并行数据。[20]

4.1.1 串行通信的数据传送

单片机的串行通信使用的是异步串行通信,所谓异步就是指发送端和接收端使用的不是同一个时钟。异步串行通信通常以字符(或者字节)为单位组成字符帧传送。字符帧由发送端一帧一帧地传送,接收端通过传输线一帧一帧地接收。

字符帧由四部分组成,分别是起始位、数据位、奇偶校验位、停止位。如图4-1所示。

4-1 字符帧格式

 

① 起始位:位于字符帧的开头,只占一位,始终为逻辑低电平,表示发送端开始发送一帧数据。

② 数据位:紧跟起始位后,可取5、6、7、8位,低位在前,高位在后。

③ 奇偶校验位:占一位,用于对字符传送作正确性检查,因此奇偶校验位是可选择的,共有三种可能,即奇偶校验、偶校验和无校验,由用户根据需要选定。

④ 停止位:末尾,为逻辑“1”高电平,可取1、1.5、2位,表示一帧字符传送完毕。

串行通信的速率用波特率来表示,所谓波特率就是指一秒钟传送数据位的个数。每秒钟传送一个数据位就是1波特,即1波特=1位/秒。

波特率用于表征数据传输的速度,波特率越高,数据传输速度越快。但波特率和字符的实际传输速率不同,字符的实际传输速率是每秒内所传字符帧的帧数,和字符帧格式有关。通常,异步通信的波特率为50~9600 b/s。 [21]

4.1.2 串行通信的数据转换

单片机串行接口电路为用户提供了两个串行口缓冲寄存器(SBUF),一个称为发送缓存器,它的用途是接收片内总线送来的数据,即发送缓冲器只能写不能读,发送缓冲器中的数据通过TXD引脚向外传送;另一个称为接收缓冲器,它的用途是向片内总线发送数据,即接收缓冲器只能读不能写,接收缓冲器通过RXD引脚接收数据。

因为这两个缓冲器一个只能写,一个只能读,所以可共用一个地址99H。

4.1.3 串行通信协议

通信协议是指通信双方共同遵守的交换数据的格式和意义的一组规则。本系统的通信协议只需制订信息在线路中的传输规则,它涉及信息格式、顺序控制、流量控制、信息的成帧与拆帧、差错控制及传输过程中的管理等方面。

目前,采用的通信协议有两类:异步协议和同步协议。同步协议又有面向字符和面向比特以及面向字节计数三种。在本设计中主要介绍异步通信协议。

起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身由5-7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位。停止位和空闲位都规定为高电平(逻辑值1),这样就保证起始位开始处一定有一个下跳沿。

可看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议。传送时,数据的低位在前,高位在后。[22]

起始位实际上是作为联络信号附加进来的,当它变为低电平时,告诉收方传送开始。它的到来,表示下面接着是数据位来了,要准备接收。而停止位标志一个字符的结束,它的出现,表示一个字符传送完毕。这样就为通信双方提供了何时开始收发,何时结束的标志。传送开始前,发收双方把所采用的起止式格式(包括字符的数据位长度,停止位位数,有无校验位以及是奇校验还是偶校验等)和数据传输速率作统一规定。传送开始后,接收设备不断地检测传输线,看是否有起始位到来。当收到一系列的“1”(停止位或空闲位)之后,检测到一个下跳沿,说明起始位出现,起始位经确认后,就开始接收所规定的数据位和奇偶校验位以及停止位。经过处理将停止位去掉,把数据位拼装成一个并行字节,并且经校验后,无奇偶错才算正确的接收一个字符。一个字符接收完毕,接收设备又继续测试传输线,监视“0”电平的到来和下一个字符的开始,直到全部数据传送完毕。

异步通信可以采用正逻辑或负逻辑,正负逻辑的表示如表4-1所示。

4-1 正负逻辑的表示

 

逻辑0

逻辑1

正逻辑

低电平

高电平

负逻辑

高电平

低电平

 

 

异步通信的信息格式如表4-2所示。表中位数的本质含义是信号出现的时间,故可有分数位,如1.5。

4-2 异步通信的信息格式

位名

逻辑表示

 位数

起始位

逻辑0

1位

数据位

逻辑0或1

  5位、6位、7位、8位

校验位

逻辑0或1

1位或无

停止位

逻辑1

1位、1.5位或2位

空闲位

逻辑1

任意数量

 

 

接收端以“接收时钟”和“波特率因子”决定一位的时间长度。下面以波特率因子等于16(接收时钟每16个时钟周期,使接收移位寄存器移位一次)、正逻辑为例说明异步通信的接收过程:

① 开始通信时,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对“接收时钟”计数。

② 当计到8个时钟时,对输入信号进行检测,若仍为低电平,则确认这是“起始位”,而不是干扰信号。

③ 接收端检测到起始位后,隔16个接收时钟,对输入信号检测一次,把对应的值作为D0位数据。若为逻辑1,作为数据位1;若为逻辑0,作为数据位0。

④ 再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据。依次检测,直到全部数据位都输入。

⑤ 检测校验位(如果有的话)。

⑥ 接收到规定的数据位个数和校验位后,通信接口电路希望收到停止位(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置“帧错误”标志。若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中送数据输入寄存器。若校验错,在状态寄存器中置奇偶错标志。

⑦ 本帧信息全部接收完,把线路上出现的高电平作为空闲位。

⑧ 当信号再次变为低时,开始进入下一帧的检测。

发送端以“发送时钟”和“波特率因子”决定一位的时间长度,异步通信的发送过程如下:

① 当初始化后,或者没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量。

② 当需要发送时,发送端首先输出逻辑0,作为起始位。

③ 接着,发送端首先发送D0位,直到各数据位发送完。

④ 如果需要的话,发送端输出校验位。

⑤ 最后,发送端输出停止位(逻辑1)。

⑥ 如果没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量。

对于以上发送、接收过程应注意以下几点:

① 接收端总是在每个字符的头部(即起始位)进行一次重新定位,因此发送端可以在字符之间插入不等长的空闲位,不影响接收端的接收。

② 发送端的发送时钟和接收端的接收时钟,其频率允许有一定差异,当频率差异在一定范围内,不会引起接收端检测错位,能够正确接收。并且这种频率差异不会因多个字符的连续接收而造成误差累计(因为每个字符的开始(起始位处)接收方均重新定位)。只有当发送时钟和接收时钟频率差异太大,引起接收端采样错位,才造成接收错误。

③ 起始位、校验位、停止位、空闲位的信号,由“发送移位寄存器”自动插入。在接收方,“接收移位寄存器”接收到一帧完整信息(起始、数据、校验、停止)后,仅把数据的各位送至“数据输入寄存器”,即CPU从“数据输入寄存器”中读得的信息,只是有效数字,不包含起始位、校验位、停止位信息。

由上述工作过程可看到,异步通信是按字符传输的,每传输一个字符,就用起始位来通知收方,以此来重新核对收发双方同步。若接收设备和发送设备两者的时钟频率略有偏差,这也不会因偏差的累积而导致错位,加之字符之间的空闲位也为这种偏差提供一种缓冲,所以异步串行通信的可靠性高。但由于要在每个字符的前后加上起始位和停止位这样一些附加位,使得传输效率变低了,只有约80%。因此,起止协议一般用在数据速率较慢的场合(小于19.2 kbit/s)。在高速传送时,一般要采用同步协议。

 

4.2RS-232、 RS-485串行通信设计

一般 的MCS-51系列 单片 机只有 一个 串行接 口, 而w77e58有 两 个串行 接口, 每个 串口都 有自 己 的发送 和接 受缓冲 区。 其中串 口0用定时器0 作 波 特率发 生器,串口1用定 时器1作波 特率 发 生 器 。w77e54是增 强型51单片机 ,其内 部寄存 器定 义和MCS-51系列 单片 机有所 不同 ,下面 是 KEILC中 w77e58 单 片机的 寄存 器定义 头文 件。由于该系统采用的是一点对多点的双向数据传输,因此每家的表都有自己的地址码。上位机可以查询下位机,下位机也可以定时发送数据给上位机。本系统要实现的目的是一机(上位机)对多机(下位机)的通讯控制,其通讯软件主要分为两部分:上位机与下位机的远程通讯软件;单片机GSM/MODE

M的串行通讯软件。程序设计的关键是上、下位机间的远程通讯的准确性。在程序设计中,采用通讯协议(Protocol)的做法,由上位机发出读表指令与地址码,让各个下位机将记录的数据传过来,同时进行校验,以保证数据的正确性。每个下位机都编有不同的地址码,当上位机向所有的下位机发送一个地址码和抄表指令时,所有的下位机都接收到该地址码,并比较是否与其自身的地址码相同,如不相同则退出比较,不再接收其他命令。如相同则表示上位机查询的就是该下位机,同时收回应答信号,并准备接收命令,而上位机将收回的应答信号与发出的地址码相比较,不同则给出错误的信息,相同则可控制已叫通的下位机。这时已叫通的下位机继续接收上位机发送的抄表命令,并收集用户的数据,通过光纤网络发送给上位机,直到接收到上位机发来的执行完成命令。程序流程图见图4-2、图4-3。

 

                     4-2

                

                  4-3

 

/

使用串口实现数据通信,串口的工作方式有四种 ,其中方式0是作为同步移位一位 寄存器,可以通过外接移位寄存器芯片实现扩展I/O接口功能。方式1是8位数据异步通信接口,波特率可变。波特率定时器T1或者T2的溢出率经分频后得到。方式2是9位数据异步通信接口,波特率由主频fosc分频得到,当SMOD=1时,波特率为fosc/32,当SMOD=0时,波特率为fosc/64。方式3是9位数据异步通信接口 ,波 特率可 变。波特率由定时器T1或T2的溢出率经分频后得到。下面是本例中的双串口初始化和 相关操作程序。

4.3 系统通讯方式实现

该系统设计为使用高性能CAN总线技术,在控制主机(上位机)中使用由北京科日新控电子技术有限公司生产的KPCI-8110 光隔非智能CAN总线通讯卡,各电能表(下位机)中使用由PHILIPS公司生产的SJA1000独立控制器,然后把所有的电能表用一根屏蔽类的线连起来,接入控制主机的CAN总线通讯卡的DB9串口,从而达到控制主机对各电表的远程控制,而性能卓越的CAN总线技术也能保证不同类型的数据信号在总线上安全的进行传输。

CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置。

CAN具有十分优越的特点,使我们有理由选择它。这些特性包括:

  • 1)低成本
  • 2)极高的总线利用率
  • 3)很远的数据传输距离(长达10Km)
  • 4)高速的数据传输速率(高达1Mbit/s)
  • 5)可根据报文的ID决定接收或屏蔽该报文
  • 6)可靠的错误处理和检错机制
  • 7)发送的信息遭到破坏后,可自动重发
  • 8)节点在错误严重的情况下具有自动退出总线的功能
  • 9)报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息

一个由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如,当使用北京科日新控电子技术有限公司 KPCI8110作为CAN收发器时,同一网络中允许挂接110个节点。CAN 可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。

 

4.4 掉电数据保护功能的软件实现

不同公司的24c系列IIC EEPROM存储器的管脚定义和封装都是一样的,只需根据 实际需要选择不同容量的芯片。用单片机 2/O口模拟IIC EEPROM的硬件连接 非常 简单,只用用单片机的普通

2/O 口模拟IIC时钟的时序读写芯片既可,本例中我们使用单片机的P1.0口线连SCL,P1.1口线连接SDA来模拟时序 。 使用不带硬件总线驱动的单片机对IICEEPROM的读写操作的难点在于用软件模拟 IIC总线的时序,下面是本例中的IIC EEPROM 的读写驱动程序 ,此驱动程序支持 。(程序在附录中)

 

4.5数传终端的软件实现
  数传终端系统软件设计的核心部分是单片机与GPRS模块的通信,两者间需定义通信协议、规定帧的格式,通过AT命令实现GPRS网络的附着、PDP激活、Internet的接入及数据传输。数据采集器模块智能脉冲表(水表,电表及煤气表)产生脉冲信号,并把它转化为电信号送到采集器中,采集器负责对脉冲进行计数,同时与集中器进行通信.采集器原理框图如图2所示.其核心器件是AT89C52.AT89C52是一种带8K字节闪速可编程可擦除只读存储器(FlashROM)的低电压,高性能CMOS8位微控制器.脉冲表的信号送入8259A中断控制器后,经8259A内部逻辑判断后,若此信号不被屏蔽,并且比CPU正在执行的事务有更高的优先权,此时8259A向AT89C52的CPU提出中断申请,AT89C52在MOVX指令操作下产生中断响应信号,送给8259A的26脚,表明AT89C52可以响应该中断请求,接着就处理这一事务.在这一过程中,如果多个脉冲向AT89C52同时提出中断请求,AT89C52的CPU还要判断它们的优先级别。该模块的X5045中有E2PROM可编程存储器,信息可写入X5045中,供CPU读出,然后送到LCM103中去显示.LCM103是8段液晶显示器,它可以轮流显示各户,各表的耗量。在数据采集器中,8259A可以级连,它在处理信号时起到了很重要的作用。由于AT89C52不象8088本身不带响应信号,可以用与门和非门组合解决这个技术问题。

 4.5.1.AT指令的调试

利用AT指令控制M23模块建立无线信道进行数据传输的步骤如下:(1)AT$NOSLEEP=1:防止串口进入睡眠状态。利用M23进行TCP/IP数据连接前必须使串口永远打开,否则可能会造成数据丢失。(2)AT+CGDCONT=1,“IP”,“APN”:设置接入网关,中国移动的APN是CMNET。(3)AT%CGPCO=1,“PAP,,”,1:PAP验证,默认的用户名和密码。(4)AT$DESTINFO=“*.*.*.*”,1,主站的端口号:设置远端主站的IP地址,其中“*.*.*.*”指远端主站的固定的IP地址,“1”指支持TCP协议,若为“2”指支持UDP协议。(5)ATD*97# :拨号建立连接。当建立了TCP/IP的连接后,可以通过发送“+++”(后面不能有任何字符)命令从TCP状态切换到AT命令状态,TCP状态此时没有断开只是被暂时挂起,在AT命令状态可以使用“ATO”命令来返回到TCP状态,也可以在AT命令状态发送“ATH”彻底断开TCP连接。

4.5.2程序的设计

系统程序采用标准的C51进行编写,采用模块化设计思想,主要分为系统初始化模块、建立连接模块、数据传输模块、断开连接模块4部分。系统程序流程图

4-4

 

 

  (1)单片机的初始化。单片机初始化部分将W77E58串口设置为工作方式1,即1个起始位,8位数据位和1位停止位。定时器选用定时器1的工作模式2即8位自动重装定时器来作为串行口波特率发生器,波特率设为9600b/s,晶振为11.0592MHZ。采用串行口中断技术来实现数据或指令的接收和转发。初始化时先将串行口中断关闭,在与上位机建立连接后再打开。
  (2)建立连接。单片机使用串行口对M23模块发送AT命令建立连接,相邻AT命令间要有2~3s的延时,所以每发送完一条AT命令都要调用一个2~3s的延时子程序,然后通过串行中断接收子程序接收AT命令返回值来判断连接是否成功。
  (3)数据传输。在M23模块成功接入网络后,单片机只要将要发送的数据通过串口发给M23,M23就会把数据转发给相应的IP地址的PC机。
  (4)GPRS通信心跳信息。M23模块在接入网络后,在设定的周期内无数据通信时,由单片机控制M23模块向主站发送心跳信息,主站收到心跳信息后,回应应答信号。
  (5)重要数据的存储。程序中把一些重要的数据如主站的IP地址、端口号、SIM卡号等存入EEPROM中。在需要时从EEPROM中读出或向EEPROM重新写入数据进行设置。
  (6)断开连接。数据链路的释放可通过发送数据结束标志“+++”实现,但必须延时一定时间后再发送断开连接指令。

4.6用户和管理机构相互关系的调查分析

用户和管理机构的相互关系图

购电

 

 

退电

 

用户

到管理部门办理相关业务

管理机构

用户

信息的输入

 

管理部门自行管理

用户

信息的查询

 

相关报表的打印

 

系统设置

 

相关报表的打印

 

数据备份

 

4-5

用电用户:用户用电,购电,退电,查看用电明细,查看相关报表。管理部门:据用户的要求实行相关操作,自行管理系统。系统的功能模块描述如下:

< >数据录入模块:用于对电表、用户的添加、删除、修改,用电费率设定、透支额度设定。数据采集模块:用于从各电表采集用户的用电数据信息等功能。供电控制模块:用于执行对某门课程的试卷信息(如题号、类型、满分、题目总数)的查询等功能。缴费购电模块:用于执行计划配电、用户购电、退电等功能数据查询模块:用于执行用户信息、用户用电信息、缴费信息的查询。报表打印模块:用于预览打印用户用电总量报表、用户用电统计报表、用户缴费日统计报表、用户缴费月报表、住户用电余额分类报表。系统设定模块:用于执行系统的各项参数设定功能。      系统功能模块图如下图所示。

 

 

 

 

 

                                                                   

 

系统总控界面

数据录入模块

数据采集模块

供电控制模块

缴费购电模块

数据查询模块

报表打印模块

系统相关模块

 

4-6                                                5总结

 

本文主要运用一种基于8位单片机的智能电表抄表系统的开发过程,介绍了单片机系 统开发过程中常用的供电方式设计、掉电数据保护电路设计 、实时时钟功能设计和串行口通信方式设计,其中尤其是一些常用相关芯片的底层驱动程序的编写值得读者注 意。网络集中抄表系统作为一种以宽带网为通道的远程自动抄表系统,具有以下特点:

(1) 客观。实现集中抄表自动化,电能表数据通过宽带网直接传输至供电局集抄主站,并通过供电局局域网上送到其用电营业系统,及时输出电费单据,彻底杜绝了人为因素。

 (2) 实时性强。供电局抄表专工可随时点击查询任何一个用户(居民或企业)的用电情况,为进行电力稽查或开发远端控制系统提供可能。

(3) 快速、准确。与其它通讯方式的电能表集抄系统相比,网络集抄系统的抄收速度快,数据准确度高。经现场测试,网络集抄系统仅需一分钟左右的时间即可完成一次抄收300块电表的数据,而且抄收数据经比较完全正确。

 (4) 成本低、便于管理。采用电能表网络集抄系统,供电局只负责抄表主站与采集终端的管理与维护即可,而通信信道也即宽带网的运行管理完全可以交给ISP负责,因此供电局作为宽带网的用户能够最大化地得到专业管理带来的好处。

(5) 易于推广。实现电力网络集抄,所要求的资源不是太多。一般在大中城市,以及发达地区的县级电力局都可以应用。

(6) 意义重大。由于实现了远程自动抄表,能够提高企业工作效率,提升企业技术、管理水平和树立企业新形象。

 采用网络集中抄表系统是一件使供电局、网络运营商及广大市民三方都受益的事情,因此引起了有关各方的极大关注与浓厚兴趣。中国电力科学研究院通讯研究所顺应这一信息化发展的潮流,为满足市场的需要,研制开发了电能表网络集抄系统,现已在浙江省的宁波市、杭州市的部分居民小区投入运行。在当地供电局、网络运营商的积极配合下,目前该系统的运行状态良好。

但由于篇幅和本人能力的有限这个设计不能尽善尽美,还有很多地方需要改进。对我以后的学习、工作也将产生积极的作用。基本上完成了最初的设计要求,不足之处是用户界面的设计还不够美观,人性化不足,离真正的商业销售还有一定的距离,这些都有待在下一步的系统改进中做进一步完善。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考文献

[1] 赵丙镇。电力线高速通信技术的现状及发展。电力系统通信[J]。2003-1(12).20-24

[2] 丁毓山.电子式电能表与抄表系统[M].北京:中国水利水电出版社,2005.34-35

[3] 张威.GSM网络优化——原理与工程[M].北京:人民邮电出版社.2003.78-79

[4] 郭金发,张龙.短信与BREW开发技术及实践[M].西安:西安电子科技大学出版社,2005.89-90

[5] 颜廷勇,邵如平,林锦国,刘定球.基于LON总线技术的智能节点研究与开发[J],淮阴工学院学报,2002,5,52-55

[6] 高群,李大兴,郑强. USB-HOST技术在远程抄表系统中的应用[J]. 微计算机信息, 2007, 8-2: 277-278

[7] 张毅坤. 单片微型计算机原理及应用,西安电子科技大学出版社[J]  1998.112-113

[8] 余锡存 曹国华.单片机原理及接口技术[M].陕西:西安电子科技大学出版社,2000.7.245-247

[9] 雷丽文 等.微机原理与接口技术[M].北京:电子工业出版社,1997.2.56-57

[10]虞琦.Visual Basic程序设计[J].上海:上海交通大学出版社,1996.4.48-51 

[11]周航慈.单片机应用程序设计技术[J].第1版.北京:北京航空航天大学出版社,1991.6.245-264

[12]何立民.单片机应用系统设计[J].北京:北京航空航天大学出版社,1992.5.45-46

[13]李朝青.单片机原理及接口技术[J].北京:北京航空航天大学出版社,1998.8.20-23

[14]陈龙三. 8051单片机C语言控制与应用[J].北京:清华大学出版社,1999.9.56-58

[15]周航慈.单片机程序设计基础(修订版)[J].北京:北京航空航天大学出版社,2003.10.10-15

[16]马忠梅.单片机的C语言应用程序设计[J].北京:北京航空航天大学出版社,2003.11.56-58

[17]李朝青.PC机及单片机数据通信技术[J].北京:北京航空航天大学出版社,2000.3.55-88

[18]赵君. 现场总线技术进展[J]. 哈尔滨理工大学学学报, 2002.3. 57-61

[19]唐慧明.变电站远程图像监控系统设计[J].电力系统自动化,2007,17.1l-15

[20]张士文.低压电力线通信技术综述[J].华北电力技术,2008,1.27-29.

[21]John Wiley&Sons.GSM,GPRS and EDGE Performance[M].WILEY,2003:112-150.

[22]P.J.A.Gutierrez,J.Wigard,P.N.Andersen,H.C.Damgaard,P.Mogensen.Performance of Link Adaptation in GPRS Networks[J].IEEE,2000,2(492):34-89.

 

 

 

 

 

 

 

 

 

 

 

 

  附录

 

 

 

 

 

 

 

致谢

在本论文的写作过程中,我参考和引用了一些国内外学者的著作,在此我向辛苦工作的学者们表示深深的谢意。

 在本次毕业设计的过程中,我受到了指导老师胡峻峰老师的细心指导,老师严谨的指导态度与深厚的理论知识都让我收益非浅, 这对于我以后的工作和学习都有一种巨大的帮助,在此我特提出感谢。他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从课题的选择到项目的最终完成,李老师都始终给予我细心的指导和不懈的支持。我会继续努力!

   

 

  

 

 

 

 

 

 

 

 


免费下载 ×

下载APP,支持永久资源免费下载

下载APP 免费下载
温馨提示
请用电脑打开本网页,即可以免费获取你想要的了。
扫描加我微信 ×

演示

×
登录 ×


下载 ×
论文助手网
论文助手,最开放的学术期刊平台
							 
回复
来来来,吐槽点啥吧

作者联系方式

×

向作者索要->