电表自动抄表系统设计_第1页
电表自动抄表系统设计_第2页
电表自动抄表系统设计_第3页
电表自动抄表系统设计_第4页
电表自动抄表系统设计_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、图书分类号:密 级:摘要随着电子与计算机技术的发展,实现各种用户仪表的自动抄录即将成为现实。本文针对单位、小区的家庭和户电表和单位办公用电电表,结合普通电表的工作原理和实际工作环境,设计了一种实用的电表自动抄录系统。该系统具有成本低廉、工作性能稳定可靠、系统安装方便等特点。本文对基于ZigBee的电表无线抄表系统的硬件和软件进行了设计,重点对该系统的前端数据采集、数据通信方式、计算机软件等方面的设计进行了介绍,并对系统的通用性和可靠性进行了简要的分析。设计内容具体包括PROTEL原理图设计、C语言源程序设计、上位机源程序设计. 在此次设计过程中主要是先进行要求分析然后提出整体设计方案,然后根据

2、设计方案设计电路图,做出硬件电路,最后进行系统软件设计,其中软件设计用KEIL作为开发环境进行调试,上位机设计用VB作为开发环境作为开发环境。关键词:自动抄表系统;ZigBee;采集终端;C51Abstract With the development of electron and computer,automatic meter reading system(AMRS) will be put into reality.This article aims ta kilowatt_hour meter for house or for office.banded the working pr

3、inciple and the real working conditions of mechanical kilowatt_hour meter,I designed an automatic kilowatt_hour meter reading system.The strong point of this system is:low cost,stable working and easy to install. The article gives an all-around design of this system. It expatiates on designs of data

4、 collection,data communication mode and computer software.It introduces the generality and the reliability of this system in brief.KEYWORDS:Automatic Meter-Reading System ZigBee Terminal C51目录1 绪论11.1 概述11.2 本课题的现实意义11.3国内外自动抄表现状11.4 本章小结22 ZigBee技术简介32.1 ZigBee简介32.2 ZigBee协议栈架构42.2.1 ZigBee协议栈结构42

5、.2.2 ZigBee网络中的设备52.3 本章小结63 系统硬件实现73.1系统概述73.2 硬件介绍83.2.1 MCS51单片机83.2.3 SPI(高速同步串行口)133.3硬件设计143.3.1 功能分析143.3.2 原理图设计153.3本章小结174 软件设计184.1 软件设计平台184.2前端采集184.3主控程序设计194.4系统初始化程序设计214.5无线收发程序设计244.6 上位机程序设计264.6.1 VB的MSCOMM控件简介264.6.2 VB编程所用MSCOMM控件的主要属性和方法:264.6.3 通信程序的主要代码及作用274.7本章小结29结论30致谢31

6、参考文献32附录331 绪论1.1 概述目前,我国对用电量的查抄方式正由传统的人工操作向网络化、智能化发展,经历了人工手抄、IC卡预付费、过程自动抄表各个阶段。其中,自动抄表按通信介质的不同可分为有线和无线两种方式。IC卡预付费采用先付费后使用的方式,对管理部门较为有利,同时不需要现场抄表,部分解决了人工抄表带来的问题,但实际操作过程中扔存在一些缺陷:IC卡直接与用户接触,易造成人为破坏;不能完全解决窃电及表具损坏、故障问题;不能实时获得用户的用电信息1。有线自动抄表系统利用电话线网络、电力线网络、RS485总线网,实现实时抄表、实时监测,可检测出设备损坏、非法使用等。但是也存在一些问题:布线

7、复杂,施工周期长;工程安装及维护成本高;系统难以扩展长级和与其他网络兼容性差等2。无线自动抄表系统采用无线通信技术和计算机网络技术等自动获取、处理户用电信息。其具备有线抄表的优点,另外还能降低组网成本和网络维护难度,提高抄表的准确性和实时性,使管理部门能及时准确地获得用户数据。随着无线通信技术的不断发展,市场上出现了许多面向抄表系统的无线解决方案。目前比较流行的几种是:基于点对点无线数传模块、基于GPRS/CDMA数字蜂窝网络、基于无线局域网技术或者是其中几种方式的组合。12 本课题的现实意义近年来出现了一种新的低成本无线组网技术ZigBee技术,它是一种近距离、低功耗、低成本、低速率的无线局

8、域网通讯技术。目前很多国际知名IC制造商推出阵支持ZigBee协议的RF芯片,价格可以控制在50元以下。这些RF芯片的平均工作电流仅有10多毫安,它的功耗还不于8位单片机。利用ZigBee技术组建的无线网络所表现出来的低成本、低功耗的特点使它在自动抄表系统的市场上有着强大的竞争力,成为未来无线自动抄表系统的发展方向3。1.3国内外自动抄表现状远程电力抄表系统在国内外现阶段的研究现状而言,主要是从采集和传输两个方面为重点进行的4。目前,电力系统自动抄表方式主要有:485总线、无线、红外、普通电力载波、扩频电力载波、零相超窄带(TURTLE)、超窄带极低频(UNB)及工频过零调制(PFC)跨变压器

9、台区方式等。其中,使用电力线本身作为传输介质的方式由于不用重复线路投资,不产生新的使用费等特点,成为研究的重点。在国外,载波通信技术在上个世纪30年代就起步了,60年代传到我国,80年代我国已经可以自主生产高压载波机。但低压载波信道,由于技术上存在难以逾越的障碍,一直属于通信禁区。近年随着电子技术与通信技术发展,国内外大批资金的注入,科研工作取得重大突破,这就为低压电力载波通信技术的成熟创造了条件。在国外,远程电力抄表系统的研究比国内要早十几年,应用也很广泛,目前已经在向利用电力线载波通信实现家庭自动化的方向上发展了。在电力线载波通讯方面,已经研究提出了统一的由国际电工委员会采纳作为IEC62

10、056国际标准的电能表通信协议DLMS/COSEM(Device anguageMessage Specification/Companion Specification forEnergy Metering)。这就使远程电力抄表系统的发展更加规范和具有互操作特性,使远程电力抄表系统展更加迅速和有了统一的方向。在国内,远程电力抄表系统的研究,目前处于理论转化为实际应用的关键时期,同时也在积极开展讨论制定我国的低压载波抄表系统国家标准的工作。远程集抄系统在我国已经发展了十几年,即使包括电能表、水表、煤气表,总装终端也就不超过200万台,这相对我国接近3亿台的市场,太微不足道了!远程抄表系统的发展

11、已有十多年了,但实际应用状况却不如人意,许多已安装自动抄表系统的楼盘由于计量不准确,最后不得不又返回到人工抄表的老路上来,虽然产生这种现象的因素是多方面的,但仔细分析,根据现在表具的生产原理出现这种情况是必然的6。1.4 本章小结在本章中,主要介绍了基于ZIGBEE的电表自动抄表系统的设计的背景以及国内外研究的现状,看到了该课题潜在的价值、意义和巨大的市场。2 ZigBee技术简介2.1 ZigBee简介ZigBee是一种低速无线个域网技术,它适用于那些数据通信量不大,数据传输速率要求相对较低,节点分布范围较小,但对数据的安全性和可靠性又有一定要求,而且成本和功耗非常苛刻的场合11。无线通信需

12、要占用一定的频段,在我国频段是一种政府管理的资源,多数频段的使用必须得到政府的许可。ZigBee联盟选用了无须许可即能使用的“免注册”工业、科学、医疗(ISM)频段,使用户能够自由地使用ZigBee设备。我国使用的ZigBee设备全都工作在2.4GHz频段。在本频段里共分配了16个信道,每个信道的宽度为6MHz,数据传输速率最高可达250kb/s。免注册的ISM频段使ZigBee设备的使用更加方便、灵活,而较多的信道提高了ZigBee设备的可用性和灵活性,即使在同一区域内存在多个不同的ZigBee网络也不会出现相互干扰的问题12。相对于其他的网络技术,ZigBee网络协议较为简单,可以在运算和

13、储存能力都非常有限的MCU上运行,非常适用于那些对成本要求苛刻的场合。目前很多厂商已经推出了基于51内核MCU的单芯片ZigBee解决方案,这对于一些需要布置大量无线传感器网络节点及家庭智能家具等领域尤为重要。因为无线通信是共享信道的,所以优秀的无线通信技术必须很好地解决网络使用信道时的冲突问题,即媒体访问控制层采用IEEE802.15.4协议,使用带时隙或不带时隙的载波检测多址访问与冲突避免机制的数据传输方法,并与确认和数据检验等安全措施相结合,有效地保证了数据的安全传输。为了提高系统的灵活性并支持在资源相对匮乏的MCU上运行,ZigBee设备支持3种安全模式,其最低的安全模式实际上无任何安

14、全措施,以达到占用最少资源的目的,而最高的安全模式采用高级加密标准(AES)对称密码和公开密钥。低功耗是ZigBee设备最重要的特点之一。为此,ZigBee协议引入了几种降低功耗的方法。其中最主要的方式是采用间接数据传输,即数据的传输的由功能简单、可用电池供电的从节点发起的,而不是由主节点轮询。这样就可实现在不需要数据传输的大部分时间,从节点可以关闭收发设备,工作在休眠状态,从而最大限度地降低功耗13。ZigBee设备既可以组建支持星形结构网络,也可组建军对等拓扑的网络网络;既可以是单跳数据传输也可以是通过路由器实现多跳的数据传输。ZigBee设备可以使用64位的IEEE标准地址,也可以使用指

15、配的16位短地址。在一个单独的ZigBee网络中,最多可以容纳65535个设备。2.2 ZigBee协议栈架构 2.2.1 ZigBee协议栈结构ZigBee协议采用IEEE802.15.4无线标准,分为物理层(PHY)、介质介入控制层(MAC)、网络层(NWK)和应用层(APL),其中IEEE只制定了底层的物理层和介质介入控制层标准,网络层和应用层标准由ZigBee联盟制定。在应用层结构中又包含应用支持子层(APS)、ZigBee设备对象(ZDO)以及制造商制定的应用对象。ZigBee协议结构如图2-1所示。图2-1 ZIGBEE协议栈结构 ZigBee的物理层通过定义使物理通信信道与MAC

16、层衔接,提供该层的数据库并对其进行管理。主要功能包括激活和休眠射频收发设备,对信道能量进行检测、对数据包的接收情况即链路质量批示、空闲信道评估和数据收发等。其数据格式如表所示,表中的PSDU可携带MAC层帧信息。同时,物理层将通信频率娄为2.4GHZ(全球通用频段)和868/915M(欧洲/美国频段)两种。后者主要为了规避与其它2.4GHZ通信设备的互扰,但都使用ISM免费频段,采用DSSS直接序列扩频。DSSS扩频是通过伪噪声对用信号的相位进行OQPSK(偏移四相相移刍控)调制,I/Q信号间相位偏移度为/90度,将调制后的信号再与载波相乘实现混频,使射频信号频谱扩展到伪噪声频谱相同的带宽,从

17、而将信号传输所需的能量降到最低限度。在ZigBee的2.4GHZ频段共定义了间隔为5MHZ的16个信道。 MAC层:MAC层处于网络层与物理层之间。作为两者间的接口,MAC层通过两个接入点(SAP)分别访问MAC层内的公共部分子层和管理实体,并向上层提供数据服务和管理功能。其数据格式由包含帧控制、序列号和地址域的帧头和帧载荷(长度可变)、帧尾校验组成。其结构如表所示。MAC层主要实现通信信道的建立、保持、撤消,负责信道的链接与控制,对帧数据的传送质量进行确认并提供校验功能、请求重发功能、时隙和广播管理。在MAC层与物理层之间的无线信道接入过程中,最显著的特点是在信道接入方式上采用CSMACA的

18、免冲突载波检测多址技术。在IEEE802.15.4CSMA/CA规范中,网络协调器会给网络中所有可感应节点发出信标,若设备有数据需传送,则会向网络协调器发送传送请求,由于在某段时间内只能有一个设备与雷射器进行通信,因此所有需要通信的节点就采用CSMA/CA竞争机制获得信道使用权。所有数据待传节点持续监测目前的无线传输媒体是否为空闲状态,若空闲,这些设备会产生一个随机倒退延迟时间,错开这些设备因同时发送数据而造成碰撞的可能。若产生碰撞,则稍后一段时间自动重传。IEEE802.15.4规定,经过4次后退延时后信道仍然忙,则退出此次发送以节省电能消耗。 网络层:网络层由数据实体(NLDE)和管理实体

19、(NLME)组成,通过各自上层接口为应用层提供服务。管理实体利用与数据实体间的接口,实现对网络信息库(NIB)的管理,并完成网络管理任务。网络层功能主要包括网络的建立、路由选择、设备发现和寻址、网络层协议数据数据单元(NPDU)形成以及通信过程的安全性。利用Request、Indication、Confirm原语支持对等实体间网络层数据单元(NPDU)的传输,实现相应的服务功能。 应用层:应用层包括应用支持子层(APS)、ZigBee设备对象(ZDO,包括ZDO管理平台)和厂商定义的应用对象组成。应用支持子层(APS)为网络层(NWK)和应用层(APL)之间提供接口,使ZDO和厂商定义的应用对

20、象都可以使用一组服务来实现,其功能为建立维护设备绑定表、进行绑定设备间的信息传送、确定应用层数据的帧格式和类型,并为ZDO提供数据服务。ZDO作为对原语的应用,实现设备与服务发现、网络与绑定管理、安全性、节点管理功能。厂商定义的应用对象则应由所提供的具体应用描述来实现7。 2.2.2 ZigBee网络中的设备ZigBee是以一个个独立工作的无线节点为依托,这些节点称为设备,通过无线通信组成网络。它们在网络中的功能并非完全相同。网络中的设备按照功能的不同可能分为两类:具有完整功能的全功能设备和只具有部分功能的精简功能设备。FFD实现了ZigBee协议栈的全集,而RFD根据特定的应用需求只实现了Z

21、igBee完整协议栈中的一部分。其中RFD的功能非常简单,可以用最低端的MCU实现,在ZigBee网络里只能作为不需要发送大量数据的终端设备,往往同一时间只册他某一个特定的FFD进行通信。FFD可以和RFD设备通信,也可以和其他的FFD设备通信。 ZigBee联盟根据设备在网络中承担的任务不同把它们分成三种类型:ZigBee协调器、ZigBee路由器和ZigBee终端设备。其中ZigBee协调器是ZigBee网络的控制中枢,负责整个ZigBee网络的路由建立和存储。一个ZigBee网络中有且只有一个协调器,协调器必须是FFD。ZigBee路由器也是FFD,它通过发送信标的方式提供同步服务,当网

22、络中的协调器退出会发生故障时,路由器可以担当起协调器的角色。ZigBee网络中除协调器和路由器之外的其他设备都是ZigBee终端设备,它们可以是FFD也可以是RFD。2.3 本章小结在本章中,主要介绍了ZIGBEE技术的特点、ZIGBEE的协议栈架构以及存在于ZIGBEE网络中的设备。有了这些知识作为基础,才能进行该课题的下一步研究工作,这是后面的研究工作能够顺利完成的重要保证。3 系统硬件实现 基于ZIGBEE的电表无线抄表系统的设计是为了适应市场的需要和发展的趋势而研究和设计的。而为了实现设计的需要,我们花费了大量的时间来搜集相关的资料。在本章,主要介绍了基于ZIGBEE的电表无线抄表系统

23、主要用的芯片MCS51、CC1100的相关知识以及硬件的具体实现。3.1系统概述本次设计的基于ZIGBEE的电表无线抄表系统主要由用户电表、ZIGBEE发送节点、ZIGBEE接收节点、上位机组成。系统的工作原理是利用低压电力线或者RS-232总线将电表数据由采集器传输到ZIGBEE发送节点,然后发送节点将信号定时或实时地传送到ZIGBEE接收节点,最后通过串口线将数据传送至上位机显示出来。其中,着重设计了无线收发模块以及接收模块与管理计算机之间的通信14。系统结构如图3-1所示。电表电表电表电表ZIGBEE发送模块ZIGBEE发送模块ZIGBEE发送模块ZIGBEE接收模块ZIGBEE发送模块

24、管理计算机图3-1无线抄表系统基本结构图3.2 硬件介绍 基于ZIGBEE的电表无线抄表系统的硬件实现主要和MCS51芯片、CC1100芯片有密切的关系。这里对他们做一些简要的介绍。3.2.1 MCS51单片机3.2.1.1 MCS-51单片机的CPU组成MCS51的CPU由运算器和控制器组成。运算器以完成二进制的算术/逻辑运算部件ALU为核心,再加上暂存器TMP、累加器ACC、寄存器B、程序状态标志寄存器PSW及布尔处理器。累加器ACC是一个八位寄存器,它是CPU中工作最频繁的寄存器。在进行算术、逻辑运算时,累加器ACC往往在运算前暂存一个操作数(如被加数),而运算后又保存其结果(如代数和)

25、。寄存器B主要用于乘法和除法操作。标志寄存器PSW也是一个八位寄存器,用来存放运算结果的一些特征,如有无进位、借位等。 (1)进位标志CY(PSW7)。它表示了运算是否有进位(或借位)。如果操作结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0。 (2)辅助进位标志AC。又称半进位标志,它指两个八位数运算低四位是否有半进位,即低四位相加(或减)是否进位(或借位),如有AC为1,否则为0。 (3)溢出标志位OV。MCS51反映带符号数的运算结果是否有溢出,有溢出时,此位为1,否则为0。 (4)奇偶标志P。反映累加器ACC内容的奇偶性,如果ACC中的运算结果有偶数个1(如110011

26、00B,其中有4个1),则P为0,否则,P=1。 控制器是CPU的神经中枢,它包括定时控制逻辑电路、指令寄存器、译码器、地址指针DPTR及程序计数器PC、堆栈指针SP等。这里程序计数器PC是由16位寄存器构成的计数器。要单片机执行一个程序,就必须把该程序按顺序预先装入存储器ROM的某个区域。单片机动作时应按顺序一条条取出指令来加以执行。因此,必须有一个电路能找出指令所在的单元地址,该电路就是程序计数器PC。当单片机开始执行程序时,给PC装入第一条指令所在地址,它每取出一条指令(如为多字节指令,则每取出一个指令字节),PC的内容就自动加1,以指向下一条指令的地址,使指令能顺序执行。只有当程序遇到

27、转移指令、子程序调用指令,或遇到中断时(后面将介绍),PC才转到所需要的地方去。8051 CPU指定的地址,从ROM相应单元中取出指令字节放在指令寄存器中寄存,然后,指令寄存器中的指令代码被译码器译成各种形式的控制信号,这些信号与单片机时钟振荡器产生的时钟脉冲在定时与控制电路中相结合,形成按一定时间节拍变化的电平和时钟,即所谓控制信息,在CPU内部协调寄存器之间的数据传输、运算等操作。3.2.1.2 MCS-51单片机的存储器 存储器是单片机的又一个重要组成部分,每个存储单元对应一个地址,如256个单元共有256个地址,用两位16进制数表示,即存储器的地址(00HFFH)。存储器中每个存储单元

28、可存放一个八位二进制信息,通常用两位16进制数来表示,这就是存储器的内容。存储器的存储单元地址和存储单元的内容是不同的两个概念,不能混淆。 (1)程序存储器程序是控制计算机动作的一系列命令,单片机只认识由“0”和“1”代码构成的机器指令。如用助记符编写的命令MOV A,20H,换成机器认识的代码74H、20H:(写成二进制就是01110100B和00100000B)。在单片机处理问题之前必须事先将编好的程序、表格、常数汇编成机器代码后存入单片机的存储器中,该存储器称为程序存储器。程序存储器可以放在片内或片外,亦可片内片外同时设置。由于PC程序计数器为16位,使得程序存储器可用16位二进制地址,

29、因此,内外存储器的地址最大可从0000H到FFFFH。8051内部有4k字节的ROM,就占用了由0000H0FFFH的最低4k个字节,这时片外扩充的程序存储器地址编号应由1000H开始,如果将8051当做8031使用,不利用片内4kROM,全用片外存储器,则地址编号仍可由0000H开始。不过,这时应使8051的第31脚(即EA脚)保持低电平。当EA为高电平时,用户在0000H至0FFFH范围内使用内部ROM,大于0FFFH后,单片机CPU自动访问外部程序存储器。 (2)数据存储器单片机的数据存储器由读写存储器RAM组成。其最大容量可扩展到64k,用于存储实时输入的数据。8051内部有256个单

30、元的内部数据存储器,其中00H7FH为内部随机存储器RAM,80HFFH为专用寄存器区。实际使用时应首先充分利用内部存储器,从使用角度讲,搞清内部数据存储器的结构和地址分配是十分重要的。因为将来在学习指令系统和程序设计时会经常用到它们。8051内部数据存储器地址由00H至FFH共有256个字节的地址空间,该空间被分为两部分,其中内部数据RAM的地址为00H7FH(即0127)。而用做特殊功能寄存器的地址为80HFFH。在此256个字节中,还开辟有一个所谓“位地址”区,该区域内不但可按字节寻址,还可按“位(bit)”寻址。对于那些需要进行位操作的数据,可以存放到这个区域。从00H到1FH安排了四

31、组工作寄存器,每组占用8个RAM字节,记为R0R7。究竟选用那一组寄存器,由程序状态字PSW中的RS1和RS0来选用。在这两位上放入不同的二进制数,即可选用不同的寄存器组。 (3)特殊功能寄存器特殊功能寄存器(SFR)的地址范围为80HFFH。在MCS51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。其中5个是双字节寄存器,它们共占用了26个字节。特殊功能寄存器反映了8051的状态,实际上是8051的状态字及控制字寄存器。用于CPU PSW便是典型一例。这些特殊功能寄存器大体上分为两类,一类与芯片的引脚有关,另一类作片内功能的控制用。与芯片引脚有关的特殊功

32、能寄存器是P0P3,它们实际上是4个八位锁存器(每个I/O口一个),每个锁存器附加有相应的输出驱动器和输入缓冲器就构成了一个并行口。MCS51共有P0P3四个这样的并行口,可提供32根I/O线,每根线都是双向的,并且大都有第二功能。其余用于芯片控制的寄存器中。3.2.1.3 MCS-51单片机的指令系统 在MCS51单片机的指令系统里,共有7种寻址方式,现介绍如下: (1)立即寻址:操作数就写在指令中,和操作码一起放在程序存贮器中。把“”号放在立即数前面,以表示该寻址方式为立即寻址,如mov A,20H。 (2)寄存器寻址:操作数放在寄存器中,在指令中直接以寄存器的名来表示操作数地址。如MOV

33、 A,R0就属于寄存器寻址,即R0寄存器的内容送到累加器A中。(3)直接寻址:操作数放在单片机的内部RAM某单元中,在指令中直接写出该单元的地址。如前例的ADD A,70H中的70H。 (4)寄存器间接寻址:操作数放在RAM某个单元中,该单元的地址又放在寄存器R0或R1中。 如果RAM的地址大于256,则该地址存放在16位寄存器DPTR(数据指针)中,此时在寄存器名前加符号来表示这种间接寻址。如MOV A, R0。 (5)变址寻址:指定的变址寄存器的内容与指令中给出的偏移量相加,所得的结果作为操作数的地址。如MOVC A,A+DPTR (6)相对寻址:由程序计数器中的基地址与指令中提供的偏移量

34、相加,得到的为操作数的地址。如SJMP rel (7)位寻址:操作数是二进制中的某一位,其位地址出现在指令中。如SETB bit MCS51的指令系统按功能分有:数据传送类、转移指令、算术运算类、逻辑运算类、和十进制指令及一些伪指令。 3.2.2 CC1100芯片3.2.2.1 芯片概述CC1100 是原Chipcon公司推出的一种低成本、真正单片的超高频无线收发器, 为低功耗无线应用而设计。整个应用电路的无线频率主要设定在315MHz、433MHz、868MHz 和915MHz 四个ISM (工业、科学和医学) 频段上, 可以容易地设计300MHz348MHz、400MHz 464MHz 和

35、800MHz 928MHz 的其它频率上。芯片低电压(217V 316V ) 供电并且功耗较低(接收数据时为1516mA、214kb s、433MHz)、灵敏度高(112kbs 下为110dBm ) , 可编程控制的数据传输率最高可达500kb s。CC1100 适用于电子消费产品、住宅、建筑的自动控制、无线警报和安全系统等诸多无线应用领域10。CC1100芯片的一种典型硬件应用电路如图4-1所示。图4-1 CC1100芯片的硬件应用电路3.2.2.2芯片结构及特点CC1100 采用QL P- 20 封装, 芯片尺寸为4mm 4mm , 各个引脚的具体名称和功能见表1。CC1100 的内部结构

36、图见图1。该芯片可通过程序把CC1100 配置为射频接收方式或射频发射方式。当把其配置为接收方式时, 射频输入信号先通过低噪声放大器(LNA ) 进行放大, 然后通过混频器把输入信号转换为中频信号,在送给解调器之前, 中频信号被ADC 转换为数字信号, 解调之后,再进行前向纠错和数据包处理, 然后再把收到的数据存入接收F IFO 中。CC1100 在发射方式下的工作原理与在接收方式下的相似, 数据经过调制之后被送到频率合成器, 然后再经过一个90o 的相移装置直接发送给信号放大器(PA )。CC1100 具有包处理机制、发送接收F IFO、WOR模式(W ake on Radio) 等诸多特点

37、。在CC1100 之前的无线收发芯片都是采用同步方式将数据按位发送出去, 这种方式在发送与接收数据时处理起来比较麻烦,接收时还要判断前导字与同步字。而CC1100 把这些繁琐的工作承担下来, 当需要发射数据时, 只需将发射的数据按照一定的格式通过SP I 口写入到发射F IFO , 然后把CC1100 配置成发射状态, 数据就会按照要求发射出去; 当需要接收数据时, 首先将CC1100配置成接状态, 一旦收到符合要求的数据, CC1100就会把收到的数据存入接收F IFO , 同时引脚GDO 0 或GDO 2 会有一个脉冲出现, 这个脉冲可以用来通知MCU 有一个数据包已被CC1100 收到,

38、 MCU 就可以通过SP I 口将CC1100 收到的数据取出来9。芯片管脚功能见表4-1。表4-1 引脚序号引脚名功能1SCLK配置接口,时钟输入2SO(GDO1)配置接口,数据输出3GDO2FIFO状态信号4DVDD数字电源5DCOUPL数字电源6GDO0FIFO状态信号7CSn片选信号8XOSC_Q1晶振脚1,或外部时钟输入9、11、14、15AVDD模拟电源10XOSC_Q2晶振脚212RF_P接收时对LNA的正RF输入信号发送时从LNA输出的正RF信号13RF_N接收时对LNA的负RF输入信号发送时从LNA输出的负RF信号16GND模拟地17RBIAS参考电流的外部偏阻器18DGUA

39、RD为数字噪声隔离的数字电源19GND数字地20SI配置接口,数字输入3.2.3 SPI(高速同步串行口)单片机与CC1100之间的通信是通过SPI口进行的,SPI口是高速同步串行口,是一种标准的四线同步双向串行总线,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如AT91RM9200. SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外

40、围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(用于单向传输时,也就是半双工方式)。也是所有基于SPI的设备共

41、有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。 (1)SDO 主设备数据输出,从设备数据输入 (2)SDI 主设备数据输入,从设备数据输出 (3)SCLK 时钟信号,由主设备产生 (4)CS 从设备使能信号,由主设备控制 其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。 接下来就负责通讯的3根线了。通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCK时钟线存在的原因,由SCK提供时钟脉冲,SD

42、I,SDO则基于此脉冲完成数据传输。数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。3.3硬件设计3.3.1 功能分析单片机对发射模块和接收模块的控制,首先都要对单片机的接口进行初始化(SPI总线接口技术是一种高速、高效率的串行接口技术,主要用于扩展外设和进行数据交换,然后要对射频模块初始化,在这部分的初始化中要上电复位芯片和对它的片内寄存器进行配置。发射端发射一组数据中首先要通过口对,缓冲区设置单次发送的数据个数,然后写入要发送的数据包,

43、数据自动加前导码和校验,接着进入发送模式发送数据包,等待本次发送结束,最后冲洗缓冲区,本次发送完毕。接收端接收一组数据中首先进入接收模式,等待接收信息完成,然后接收到的数据包被分解,读出所有接收到的数据并存储,最后清洗缓冲区,本次接收完毕。CC1100具有包处理机制、发送、接收FIFO、WOR模式Wake on Radio)等诸多特点。在CC1100之前的无线收发芯片都是采用同步方式将数据按位发送出去,这种方式在发送与接收数据时处理起来比较麻烦,接收时还要判断前导字与同步字。而CC1100把这些繁琐的工作承担下来,当需要发射数据时,只需将发射的数据按照一定的格式通过SPI口写入到发射FIFO,

44、然后把CC1100配置成发射状态,数据就会按照要求发射出去;当需要接收数据时,首先将1100配置成接收状态,一旦收到符合要求的数据,CC1100就会把收到的数据存入接收FIFO,同时引脚GDO0或GDO2会有一个脉冲出现,这个脉冲可以用来通知MCU有一个数据包已被CC1100收到,MCU就可以通过SPI口将CC1100收到的数据取出来。3.3.2 原理图设计本系统主要由单片机最小系统、LCD显示模块、CC1100收发模块、键盘输入模块组成,发送模块如图4-2所示,接收模块如图4-3所示。图4-2 发送模块原理图图4-3 接收模块原理图3.3本章小结 在本章中,主要介绍了基于ZIGBEE的电表自

45、动抄表系统的一些硬件环境和实现,为设计的顺利完成奠定了基础,特别是对MCS51和CC1100两个芯片作了简要的说明,对硬件的实现也作了简要的说明,这些都有利于我们深入的理解设计的要点和需要注意的方面。同时也为后面的程序设计准备了非常好的前提条件。 总之,通过这一章的研究和学习,为软件设计打下了一个坚实的基础,也为程序设计打下了一个好的开头,这是该课题设计所必不可少的环节。4 软件设计4.1 软件设计平台本次课题的软件开发平台使用的是KeilSoftware公司推出的uVision3,它是一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。

46、除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,uVision3还提供了一个配置向导功能,加速了启动代码和配置文件的生成。此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。uVision3提供逻辑分析器,可监控基于MCUI/O引脚和外设状态变化下的程序变量。uVision3提供对多种最新的8051类微处理器的支持,包括AnalogDevices的ADuC83x和ADuC84x,以及Infineon的XC866等4.2前端采集本课题的前端采集部分在本设计中是通过按键模拟输入实现的,通过按键输入一定的数值给发送模块处理后发送,具体代码如下:void keyscan

47、()unsigned char n;P2=0xfe;n=P2;n&=0xf0;if(n!=0xf0) delay1ms(50); P2=0xfe;n=P2;n&=0xf0;if(n!=0xf0) switch(n) case(0xe0): x+; if(x=10) x=1; break; case(0xd0): y+; if(y=10) y=1;break; case(0xb0): z+; if(z=10) z=1;break; P2=0xfd;n=P2;n&=0xf0;if(n!=0xf0) delay1ms(50); P2=0xfd;n=P2;n&=0xf0;if(n!=0xf0) swi

48、tch(n) case(0xe0):s+; if(s=10) s=1;break; case(0xd0):t+; if(t=10) t=1;break; 4.3主控程序设计主控程序的设计流程如图5-1所示。在程序的开始,先定义程序与硬件对应的接口,对CC1100芯片、LCD进行的相应的初始化,然后进入while循环,对采集到的数据或者从发送模块发送的数据进行相应的处理以及其它相关的操作。具体代码如下:LCD_init(); LCD_clear(); CpuInit();POWER_UP_RESET_CC1100();halRfWriteRfSettings();halSpiWriteBurst

49、Reg(CC1100_PATABLE, PaTabel, 8);/发射功率设置 StartUART();/设置波特率while(1) leng=6; if(halRfReceivePacket(RxBuf,&leng) /判断是否接收到数据 gotoxy(1,0); LCD_dat(RxBuf0); LCD_dat(RxBuf1); LCD_dat(RxBuf2);LCD_dat(.);LCD_dat(RxBuf3);LCD_dat(RxBuf4); R_S_Byte(RxBuf0); R_S_Byte(RxBuf1); R_S_Byte(RxBuf2); R_S_Byte(RxBuf3);

50、R_S_Byte(RxBuf4);图5-1 主控程序流程图4.4系统初始化程序设计RF1100模块在工作之前先要进行相关的配置,如SPI时序、状态寄存器、命令滤波、配置寄存器等的配置,具体代码如下:typedef struct S_RF_SETTINGSuchar FSCTRL2; uchar FSCTRL1; / Frequency synthesizer control. uchar FSCTRL0; / Frequency synthesizer control. uchar FREQ2; / Frequency control word, high INT8U. uchar FREQ1

51、; / Frequency control word, middle INT8U. uchar FREQ0; / Frequency control word, low INT8U. uchar MDMCFG4; / Modem configuration. uchar MDMCFG3; / Modem configuration. uchar MDMCFG2; / Modem configuration. uchar MDMCFG1; / Modem configuration. uchar MDMCFG0; / Modem configuration. uchar CHANNR; / Ch

52、annel number. uchar DEVIATN; / Modem deviation setting (when FSK modulation is enabled). uchar FREND1; / Front end RX configuration. uchar FREND0; / Front end RX configuration. uchar MCSM0; / Main Radio Control State Machine configuration. uchar FOCCFG; / Frequency Offset Compensation Configuration.

53、 uchar BSCFG; / Bit synchronization Configuration. uchar AGCCTRL2; / AGC control.uchar AGCCTRL1; / AGC control. uchar AGCCTRL0; / AGC control. uchar FSCAL3; / Frequency synthesizer calibration. uchar FSCAL2; / Frequency synthesizer calibration.uchar FSCAL1; / Frequency synthesizer calibration. uchar

54、 FSCAL0; / Frequency synthesizer calibration. uchar FSTEST; / Frequency synthesizer calibration control uchar TEST2; / Various test settings. uchar TEST1; / Various test settings. uchar TEST0; / Various test settings. uchar IOCFG2; / GDO2 output pin configuration uchar IOCFG0; / GDO0 output pin configuration uchar PKTCTRL1; / Packet automation control. uchar PKTCTRL0; / Packet automation control. uchar ADDR; / Device address. uchar PKTLEN; / Packet length. RF_SETTINGS;const RF_SETTINGS rfSettings

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论