欢迎来到学术参考网
当前位置:发表论文

片区照明管理网络化系统全文

发布时间:2015-10-09 09:29

第1章 前  言 1
1.1 课题的提出 1
1.2 照明片区网络化的目的意义 1
1.3 照明片区网络化的国内外现状 1
1.4 高等学校用电管理状况 2
1.5 本设计主要完成的工作 2
第2章 片区照明控制总体方案设计 4
2.1 网络和智能照明控制系统规划 4
2.2 照明智能控制器完成的功能 5
2.3 栋层单片机完成的功能 5
2.4 上位PC机完成的功能 5
2.5 两级通信网络的实现 5
2.6 小结 6
第3章 片区照明网络化硬件的设计与实现 7
3.1 方案选择 7
3.2 器件的选定 7
3.3 房间层节点的硬件总体构成 7
3.3.1 信息采集部分 8
3.3.2 执行部分 8
3.3.3 通信部分 8
3.4 栋层节点的硬件总体构成 8
3.5 人机交互部分 9
3.5.1 键盘模块 9
3.5.2 LCD显示模块 10
3.5.3 房间层信息的存储 10
3.6 层间信息的传送方式 11
3.7  PC机与单片机的串口通讯硬件设计 11
3.7.1 系统硬件设计 11
3.7.2 电平转换 12
3.8 单片机串行通信接口的扩展 13
3.8.1 串行通信接口原理 14
3.8.2 通讯接口的扩展方法 14
第4章 照明片区网络化软件功能的设计与实现 17
4.1 房间层信息的采集 17
4.1.1 重发机制的实现 17
4.1.2 单个房间层节点的状态规定 17
4.1.3 栋层对房间层地址的读写 18
4.1.4 栋层对房间层信息的读写 18
4.2 PC机串行通信设计 18
4.2.1 PC机串行通信的原理 18
4.2.2 通信机制及结构 19
4.3 AT89S52单片机串行通信 19
4.3.1 串行口工作方式 19
4.3.2 方式1的应用介绍 20
4.4 PC机与单片机间的通讯 20
4.4.1  基于VB6.0的PC机通信程序设计 21
4.4.2  MSComm控件介绍 21
4.4.3  上位PC机通讯程序设计 22
4.4.4  AT89S52单片机通信程序设计 24
第5章 系统调试 27
5.1 调试过程 27
5.2 调试结果 29
结  论 30
致  谢 31
参考文献 32
 
第1章 前  言
1.1 课题的提出
随着电力能源需求缺口越来越大,照明浪费成为一个十分突出的问题,所以实现照明灯具控制的自动化和智能化,做到依照自然光的强度以及室内人员的数目决定开灯的数目,就成为节约电力资源的一个很好途径。而多个智能节点间的协调必然要求以一个网络的形式实现[1]。随着计算机技术的发展,实现照明的网络化和照明的远程控制成为可能。
1.2 照明片区网络化的目的意义
从2006年6月起,全国电力需求快速增长,一些地区陆续拉闸限电,在去年夏季高峰时期,全国先后有21个省份出现拉闸限电现象。去年许多省市高温不退,空调使用和企业生产导致不少地区用电负荷成倍增长。许多城市对路灯、景观灯也采取了关闭限时等措施,以保证正常的生产生活的用电。我国存在着严重的电力浪费问题,无用的照明浪费在其中占有了很大的比重,单以我校的教室照明举例来说,灯光的开关安装在教室门旁,学生进入教室习惯性的将教室灯全部的开启,而且在离开时也没有人走灯灭的习惯,管理人员到一定的时间才对教室里的灯具进行管理,这样既浪费电力资源,也不利于管理。如果对片区中每个房间都安装一个照明控制器,由其独立的对本房间内的灯具开关做出控制,做到本房间智能控制器相对于一定人数开启最少的灯具,这是可以解决一部分电力资源浪费问题,但这样并不能最大限度上减小总体的电力资源浪费。为了实现电力资源浪费的最小化,必须使得各个房间照明控制器协调工作。而照明控制器的协调工作肯定是建立在网络上的,通过网络的协调管理,做到每个房间开启最少的灯具,片区内有最少数量的房间开灯。
1.3 照明片区网络化的国内外现状
专家预言,在不久的将来,智能照明将取代普通照明,成为照明行业的新锐主流产品。照明产品,将要进入到“遥控时代”。业内人士分析,智能照明进入快速成长期,需要几年时间,大概到2008年左右,智能照明的市场容量将突破100亿元大关。今年2月份,在奥运科技前景论坛上,智能照明被提上议程,国家建设部要求2010年在全国大中城市中,60%的住宅实现智能化。上海市有关部门决定,今年夏季用电高峰时,市中心主要景观道路上的路灯要安装节能的智能照明系统。种种迹象表明,智能照明市场前景将更加乐观。远程控制成了遥控时代的重要标志。据悉,虽然智能照明技术具有相当的复杂性,但国内技术水平达到实用水平的企业为数不多。国外从事智能照明的专业公司,如美国的路创、澳大利亚的邦奇以及索恩、ABB等公司也在很早以前就完成了技术上的突破[2]。据悉,国际知名的半导体制造商ST半导体正准备推出灯光控制专用的、结合无线射频功能的控制芯片采用无线网络技术的智能灯光控制系统产品最近也相继出现在消费者面前。德国迈戈公司推出的MCO智能情景照明控制系统近日进入我国市场。其产品的智能化特点主要表现在以下几方面:实现了根据场景对组合灯光进行调节和控制的功能;实现了个性化设计:可以设定“看电视”、“会客”、“晚餐”、“离家”等灯光情景[3],开关方式可选择电脑、遥控器、轻触式按键开关、红外线自动感应开关等方式对照明情景进行一对一、一对多、多对一的灵活控制:具有系统灯具的无级亮度调节和自动延时功能,停电状态的记忆功能和开关状态的锁定功能,使系统使用更加安全可靠。
1.4 高等学校用电管理状况
目前,高校照明用电的管理基本是处于一种粗放式的管理状态。其管理一般是无专人管理,由学生自行控制开启,再有值日人员在中午、下午和晚自习后关闭开关,根据作息时间开启和关闭整个教学楼的照明电源。是有专人负责,即按照天气情况分楼分层送电。对教学楼照明管理的要求是在充分保证教室的照度的前提下,尽可能地节约电能,但是这些都不同程度上存在着缺欠,造成电能的浪费。第一种模式的特点是可以灵活地满足楼层和超想的照度要求,不限和控制简单,是常用的一种方式,但也是最为浪费电。人眼在强光下对弱光不敏感,在自然光照大于灯具光照的情况下,难以察觉到灯光,灯白天长明等而造成更大的浪费。据不完全统计,百分之八十的教学楼存在着白天光照良好的情况下,教室灯依然点亮,一个教室的长明灯看起来耗能不大,但从整个学校来说,却是惊人,以西南科技大学为例,电能浪费量就十分严重,由此可见高校教学楼照明的管理改革势在必行,也为我们提出了紧迫的课题。
1.5 本设计主要完成的工作
本设计中主要完成了以下几项工作:
1、栋层单片机接收各个照明控制器所采集的房间光强信息和 人员信息传送给上位PC机,接收上位PC机根据前述获得的信息所做出的决策并传送给相应的照明智能控制器。
2、实现了单片机通信串口的扩展。
3、完成了单片机与PC机接口电路的设计,并且实现了单片机与PC机之间串行通讯,通过VB6.0编写出PC机上可视化的通讯界面。
第2章 片区照明控制总体方案设计
本章主要对网络化照明进行研究,得出一个网络化智能照明控制系统的总体设计方案。后面的整个设计将围绕这个方案进行。
2.1 网络和智能照明控制系统规划
本设计中建立了一个与小区照明相适应的网络模型来管理各个房间的智能控制器。关于该网络模型建立的详细叙述如下:
整个智能照明控制网络规划的设想是能够适应一个相对集中的建筑群中,多个建筑体需要集散照明控制的情况。系统网络规划示意如图2-1所示。照明控制系统是由一个上位PC机、下位单片机以及照明智能控制器组成的三层两级网络。在最底端,照明智能控制器负责照明现场的状态检测与控制输出,进行信息的采集与开关灯的工作,具体面向的可以是一个房间,一个相对独立的区域或其它需要较多关联控制的场合。在最顶端,上位PC机负责整个系统的功能协调与状态监测。一方面,上位PC机收集下位单片机的状态信息,执行必要的本地集中控制,另一方面也可能在需要时通过网络接口连接到局域网,按要求提供定期数据报告以及接收控制数据更新和遥控遥测命令。在上位PC机和照明智能控制器之间是单片机控制系统。栋层单片机主要对房间层的照明智能控制器进行控制。
 
图2-1 网络分层结构
2.2 照明智能控制器完成的功能
照明智能控制器与灯光控制有着最为直接的联系,其应当做到向上层即栋层传送本房间内的光强信息及人员数目信息,接收上一层传来的命令,执行开关灯的操作。
2.3 栋层单片机完成的功能
栋层单片机作为三层分层结构中的中间层,应当完成接收房间层照明智能控制器的信息并做出决策;将由房间层传来的信息进行汇总处理传送给上位PC机;接收上位PC机传来的命令,解析该命令后与自身作出的决策作比较向房间层发出命令,之所以要做出比较后发出命令是因为栋层可以由人工控制强行开启或关闭某间房间的灯具;在整个系统中,管理人员的权限是凌驾于系统之上的。最终发出命令的过程与房间层相类似,若上层无命令传入且无人工介入,则栋层将按照自身作出的决策发出命令。栋层还要完成房间层节点的增删工作和人工开关某个房间灯具的工作。
2.4 上位PC机完成的功能
在图2-1中可以看到,上位PC机位于整个网络的最顶层,其将完成接收栋层传来的信息,将其保存并加以分析,发出相应的命令以协调各栋层节点的工作;完成栋层节点的增删工作;人工对栋层节点的开关。本设计中将小区层的位置向前推进了,使得小区层的PC机与下位单片机的远程无线通信变成近距离串行通信。
上一层较之于下一层有更高的优先级,只有在上一层无命令时,最终的决策才由本层作出。而且同一层内的各个节点是不需要通信的,只需要对其下层的节点进行通信或对其上层的节点进行通信。所以上层节点可以采用轮询的方式对其下层进行通信。
2.5 两级通信网络的实现
为了达到各层之间信息的相互传递,就需要建立层与层之间的通信机制,根据本设计的要求,整个设计软件采用结构化模块化的设计方法,易于维护和扩展。根据本设计的软硬件需要完成的系统功能,系统软硬件大致可以分为三个功能模块:上位PC机模块,下位AT89S52单片机模块,数据通信模块。上位PC机模块主要完成与操作人员的交互功能,包括参数设定、数据显示及监控等功能。AT89S52单片机模块作为数据采集及控制模块,其功能包括系统初始化、采集数据、数据的处理及分析和给出控制命令。三个模块的关系是:上位PC机模块是指挥中心,决定整个系统程序的结构和流程;AT89S52单片机模块按轮询方式对各个照明控制器进行访问,并自动对照明进行控制;数据通信模块可以实现PC机与AT89S52单片机之间数据的传输。
2.6 小结
本章中建立了一个三层两级网络模型,对层与层通信方式进行了规划,完成了对灯光控制网络化的总体构架。以后的设计将在此构架内完成。

第3章 片区照明网络化硬件的设计与实现
本设计的硬件由三大部分组成,即栋层单片机对下位照明智能控制器信息的收发电路,人机交互界面即LCD显示电路和键盘部分,栋层单片机与上位PC机间的通信电路。下面对本设计的方案及硬件电路的设计进行说明。
3.1 方案选择
由于本设计包含了一个三层两级网络,所以涉及到的主要问题就是房间层与栋层之间的通信,小区层与栋层间的通信,还有中间层也就是栋层硬件的设计问题。在本设计中,栋层单片机与房间层照明智能控制器之间的通信在上届论文中已经完成,所以在本文中主要对中间层,也就是栋层硬件设计进行研究。重点介绍上位PC机与栋层单片机间的通信,上位PC机与栋层单片机采用异步串行通信。
3.2 器件的选定
单片机:根据该层节点所要实现功能的要求同时兼顾成本,微处理器选择了ATMEL公司的AT89S52,之所以选择它是因为:第一,它是通用器件,外围器件容易选定。第二,它是CMOS器件,有利于节能。第三,IO口多,满足多路信息采集及控制的要求且利于扩展,为以后扩展功能提供了可能。第四,具有ISP下载功能,下载线可以方便的自制,节约了开发成本。第五,内置8K FLASH ROM ,无须扩展,有利于减小节点的体积。
显示:栋层节点要显示字符信息,此时若采用七段LED则不能实现,所以采用的LCD显示模块。
键盘:采用4*4行列式键盘,可以满足本设计的要求。
AT24C01:在本设计中作为单片机扩展的存储单元使用。
3.3 房间层节点的硬件总体构成
为了实现房间层的功能,房间层节点应当由信息采集,功能执行和通信三个模块组成,房间层工作的原理是由信息采集模块采集房间中的光强和人数信息,单片机读入该信息,作出相应的开关灯决策,若有栋层网络控制节点的存在,则通过单片机自身串口连接通信模块向上层传输相应的数据,并等待上层节点的命令,得到命令后由执行模块完成开关等的操作,若没有收到上层节点的命令,则执行模块执行由微处理器作出的决策开关相应的灯具。
有关于信息采集模块和执行模块的详细设计叙述请参见《照明智能控制器的设计》[4],本文中只涉及与网络化相关的部分,其他部分只作简要 叙述。
3.3.1 信息采集部分
信息采集包括两方面信息的收集:(1)室内光强信息;(2)室内人数信息。光强信息是利用光敏电阻与设定的阈值作比较,当光强大于该阈值时,光强信息状态为0,光强小于该阈值时,光强信息为1。
室内人数信息是利用热释电传感器在室内进行分区主动扫描,得到每个教室分区内是否有人的信息,各分区中有人则该区采集的信息为1,无人则为0。
3.3.2 执行部分
执行模块是由房间层的照明智能控制器完成开关灯的操作。
3.3.3 通信部分
AT89S52同通信模块ZF02的连接是利用单片机的异步串行口同ZF02的TTL电平的URAT口。通过无线射频通信进行数据的收发。
3.4 栋层节点的硬件总体构成
栋层节点主要可以分为两个部分:(1)PC机作为上位机,分析作为下位机的单片机传来的信息,并通过一定的算法来得出协调各房间层节点工作的命令,发给下位机,而且以图标的直观形式体现出各房间的人员数目信息及光强信息;(2)单片机作为下位机,负责与各房间层节点进行无线通信,接收上位PC机传送的命令发给房间
 
图3-1 栋层节点硬件构成图
层节点,接收房间层节点传来的信息给上位PC机,通过键盘添加或删除房间层节点,通过LED显示当前本节点的工作状态及增删节点情况,利用AT24C01保存各个房间层节点的状态信息。详见图3-1。
在栋层网络控制节点与众多房间层节点通信时,每个房间层节点应具有本栋层网络控制节点下的唯一的地址,该地址应当可以由人工进行指定。若直接利用单片机的I/O口读取信号的高低电平来确定本级的地址,这将占用过多的资源,假定地址为8位,这将占用单片机的8个I/O端口,若减少地址位数,又会造成该网络内容纳节点数目过少。为解决上述的两个问题,设计中采用了并行输入串行输出的移位寄存器74HC165N,通过它与AT89S52的连接,将八位的地址转换为串行。这样就为单片机节省了不少资源,硬件连线见图3-2。
 
图 3-2 单片机I/O口的扩展
3.5 人机交互部分
人机交互部分完成显示当前的栋层节点工作状态,显示通信故障,其主要由键盘和LCD显示两部分完成。
3.5.1 键盘模块
该部分键盘采用4*4行列式键盘实现,其在房间层节点遍历的过程中检测是否有键按下,以行扫描法实现键盘的识别,用软件延时的方式去抖动。按键定义除了0-9共十个键外,还有增加键、删除键、确认键及取消键,留有2个键未定义留作扩展用。键盘部分硬件原理图见3-3。
 
图3-3 键盘硬件原理图
3.5.2 LCD显示模块
在本设计中显示的信息包括数字和字符信息,所以需要使用一个LCD显示模块。下图是LCD显示模块与AT89S52的引脚图见图3-4。
 
图3-4  LCD与单片机的连接图
3.5.3 房间层信息的存储
因为AT24C01能够在线进行擦写,而且断电后信息不会丢失,所以在本设计中用AT24C01与单片机相连存储房间层的信息。本设计中利用栋层节点的键盘和LCD显示来实现房间层节点的增删,实际上是将通过键盘得到的房间层节点的地址,利用AT24C01的读写程序来改变该地址节点状态信息。在AT89S52上对AT24C01进行读写可以确定房间的位置,同时可以达到对房间层节点增删的目的。
AT24C01的接口是符合I2C协议的,而AT89S52没有I2C接口,可以用普通I/O口进行模拟,其硬件连线见图3-5。
 
图3-5 AT24C01硬件连线图
3.6 层间信息的传送方式
各层间信息的传送都是遵循一定的通信协议,本设计中房间层与栋层间信息的传送采用的是无线传输的方式,遵从射频无线通讯协议,房间层和栋层单片机与无线射频通讯模块的连接则采用的是串行通信。上位PC机与栋层单片机之间的通信采用异步串行通信方式。
串行通信是由一位数据传输线传送数据的位信号,另加几条通信联络控制线组成。串行通信的实现遵循串行通信协议。该通信协议对数据传送方式的规定,包括数据格式定义和数据位定义等,通信双方必须遵从统一的通信协议。串行通信协议包括同步协议和异步协议两种,由于本系统采用异步通信方式将信息传送给ZF02,ZF02以无线的方式将其发出,另一块ZF02接收到该信息后,以异步串行得方式传给栋层单片机。最后由栋层单片机再传送给上位PC机。
3.7  PC机与单片机的串口通讯硬件设计
3.7.1 系统硬件设计
本系统的硬件由三大部分组成,即上位PC机子系统、下位AT89S52单片机子系统和串行通信接口[5]。系统框图如图3-6 所示。
 
图3-6 系统硬件构成框图
对于控制系统而言,实时性是系统的一个重要性能指标,如不能很好满足,滞后时间太长,显示的信息就会失去价值。由于主机所显示的信息是通过与单片机的通信而采集获得,所以采用PC机作为上位机[7] 。本系统中,PC机的主要任务是:
1、通过与下位机的通信,将用户设定的照明控制命令发送给下位机。AT89S52单片机据此进行数据采集与控制。
2、通过与下位机的通信,读入房间层采集的数据,据此判断照明控制器是否处于正常运行状态;用图形、字符等方式实时显示各种参数的信息,实现对房间照明的实时控制。
PC机的性能要求:性能好,速度快,软件资源丰富,通信实现方便,支持VB操作系统,图形界面,菜单对话。
3.7.2 电平转换
用于存储信息的采集器,对信息量的大小有严格的要求,由于采集器的存储量有限和进一步处理与显示的需要,信息需要传入微机内。采集器与微机通过微机的串口实现通信。 利用AT89S52 单片机的串行口与PC 机的串行口COM1 或COM2 进行串行通信,将单片机采集的数据传送到PC 机中,由PC 机的高级语言或数据库语言对数据进行整理及统计等复杂处理。PC 机串行口给出的信号是一个RS232 信号,它是一个基于3~7V 正电压、3~7V 负电压的脉冲链。这一信号必须转化为一个0~5V 的脉冲链,以便处理器读取。中间转换电路采用MAX232 芯片来实现[8]。图3-7是PC机与单片机的通讯示意图。
 
图3-7  PC机与单片机的通信接口电路框图
    EIA RS232C是目前最常用的串行接口标准, 用于计算机与计算机之间,计算机与外设之间的数据通信。该标准的目的是定义数据终端设备(DTE) 之间的电气特性。 RS232C 提供了单片机与单片机、单片机与PC 机之间串行数据通信的标准接口。通信距离可达15m。但RS232C 规定的逻辑电平与单片机的逻辑电平是不一致的。因此在应用中必须把微处理器的信号电平( TTL 电平) 转换为RS232C 电平, 或者对二者进行逆转换。我们在这里选用专用电平 转换芯片MAX232来实现的。下面是单片机串口连接电路,使用MAX232作为串口连接芯片[9]。
本设计采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。硬件连线如图3-8所示:
 
图3-8 单片机与PC机接口电路设计
3.8 单片机串行通信接口的扩展
单片机的串行通信接口与外设通信很方便,虽然大多数单片机都具有硬件SCI(Serial Communications Interface),但也有一些产品没有SCI,对于这些产品的用户来说这是一个缺憾。而且,一般八位单片机只有一个SCI,但在很多实际应用,需要更多的串行通信接口[10]。例如在基于Modem的远程控制系统中,单片机与PC机通信的同时,还需要与Modem芯片进行通信;而在多机系统中,单片机需要与其他主机通信,另外也需要与本机控制台通信。所以利用单片机自身的资源进行串行通信接口的扩展很有意义[11]。
串行通信接口的扩展技术主要有两种:分时共用,I/O口模拟。前者利用MCU自身的硬件SCI,通过控制逻辑分时共享使用同一串行通信接口,后者在不增加硬件的条件下,充分利用MCU自身的资源利用I/O口模拟串行通信接口。
3.8.1 串行通信接口原理
单片机的SCI是一个通用异步接收器/发送器UART(Universal Asynchronous Receiver /Transmiter)类型的异步通信接口,通过串行通信协议(如RS-232协议)同主机系统通信[12]。
在一般应用中,MCU简单地把数据写入数据寄存器即可实现一个字符的串行发送,SCI系统完成发送数据的所有细节工作,包括附加起始位和停止位以符合串行格式。SCI的接收器自动探测一个字节的起始位,并通过采样接收数据。接收串行数据并变换成并行数据的所有工作均由SCI完成,不需要MCU的干预。接收到数据后,MCU简单地从数据接收寄存器读取数据即可。
SCI使用标准不归零(NRZ)格式(一个起始位,8个或9个数据位和一个停止位),最常用的格式数据位是8位的。
NRZ数据格式的基本特点如下:
高电平为逻辑1,低电平为逻辑0;
发送/接收数据空闲时TXD、RXD线为高电平;
发送/接收数据串的第一位是起始位(逻辑0);
数据的最低位LSB首先被发送/接收;
数据串的最后一位(第10位或第11位)是停止位(逻辑1)。
3.8.2 通讯接口的扩展方法
目前比较通用的串口扩展方案有两种,一是用硬件实现,使用多串口单片机或专用串口扩展芯片,可供选择的串口扩展芯片有TI等公司开发的16C554系列串口扩展芯片,该系列芯片实现的功能是通过并行口扩展串行口,功能比较强大、通讯速度高,但控制复杂,同时价格较高,主要的应用场合是PC机串口扩展产品。在仅使用单片机控制且不需要太高波特率通讯的系统中,使用16C554系列芯片不仅成本高而且还造成了资源的浪费。而多串口单片机也同样存在价格高的缺点。另一种串口扩展方案就是用软件实现,软件模拟串口存在的缺点有:一是采样次数低,一般只能做到2次/BIT,这样数据的正确性就难以保证;二是不能实现高波特率通讯,软件模拟串口一般不能实现高于4800 bps的波特率[13]。成都国腾微电子有限公司推出的GM8123/25系列串口扩展芯片全硬件实现串口扩展[14],保证了芯片工作的稳定性,设计的最高波特率完全能满足一般系统需求,同时占用系统资源少,使用方法简单,通讯格式可设置,与标准串口通讯格式兼容,利用该系列芯片实现串口扩展是性价比较高的串口扩展方案。栋层下位单片机既要与房间层单片机进行通讯,又要与上位PC机进行通讯。由于本设计栋层下位单片机只有一个通讯接口,所以单片机的串行通讯接口需要扩展,本设计中采用单片机与GM8125相连实现了单片机通讯串口的扩展。如图3-9所示:
 
图3-9  单片机通讯串口的扩展
利用GM8123/25进行串口扩展,有以下优点:
1、控制简单。该芯片利用软件设置工作方式,最大限度地减少控制线,不需要占用太多主机的系统资源,同时又保证使用的简便性。
2、应用灵活。该芯片具备两种工作模式、多种工作波特率、10位或11位数据帧长可选,用户可根据自己的系统需求灵活选择。
3、通用性强。该芯片设计时充分考虑各种用户的需求,保证了芯片的通用性,与标准串口通讯格式完全兼容,同时提供多种可选设置,适用于大多数串口通讯系统。
4、工作波特率高。该芯片子串口在单通道模式下波特率支持20Mbps,多通道模式下支持38400bps,此波特率完全能满足一般的串口通讯的需求。
5、性能稳定。硬件实现串口比软件实现串口更能保证串行通讯的稳定性,同时每bit采样16次,保证了数据的正确性。
6、波特率误差小。输出波特率误差小于0.2%,输入波特率误差要求小于2.8%。
该芯片不足之处在于:不满足超低功耗应用要求;多通道模式下,所有子串口工作波特率只能设置成统一值,不适用于各从机工作波特率不一致、又要求同时工作的系统。
第4章 照明片区网络化软件功能的设计与实现
本设计软件部分包括两大模块,即栋层单片机对房间层智能控制器信息的收发,PC机对单片机的实时监控程序,对这部分软件的要求是:人机界面友好,易学易用。在本系统中,软件由VB、AT89S52单片机C语言程序编写。其中VB程序用Visual Basic6.0开发而成,与单片机的通信,主要完成参数设定,数据显示等功能。AT89S52单片机C程序借助硬件电路的支持,根据PC机传来的设定参数进行自动的数据采集与输出控制,并向PC机传送采集数据,供VB程序分析处理。AT89S52单片机C程序和VB程序之间交换数据的桥梁是各自的串行通信程序,所以通信程序的编写是本设计程序的核心。由于栋层与房间层之间的通信部分在上届毕业设计中已经完成,这里只作简要叙述[15]。
4.1 房间层信息的采集
房间层信息的采集是通过栋层单片机对房间层照明智能控制器的访问实现的。栋层与房间层之间的通讯是采用轮询方式,同每一个房间层节点通信时先建立连接,传输数据,然后再释放连接。所以相应的房间层节点在通信时需要明确自身所处的连接状态。在栋层网络控制节点与众多房间层节点通信时,每个房间层节点应具有本栋层网络控制节点下的唯一的地址,该地址应当可以由人工进行指定。利用I/O口读取信号的高低电平来确定本级的地址。系统掉电后重启时仍然需要保留该 地址信息,则必须在系统中加入一个AT24C01存储器。
4.1.1 重发机制的实现
在数据的传输过程中容易受到外界干扰,为防止通讯错误,主要采用如下方法:
1、启动错误定时器,扫描错误数据传输中的错误,如果有错误则重新启动通信;
2、对接收的数据进行校验,若超过通讯设定时间要求或者接收数据误码时重发。
以上两种方法的应用大大提高了通讯可靠性,减小了误码率。
4.1.2 单个房间层节点的状态规定
单个房间节点主要有是否连接,是否出现错误,和是否有控制命令,是否接收数据四个状态,所以每个房间层节点用4位来表示其状态。
4.1.3 栋层对房间层地址的读写
在对房间层节点读写时,是以地址号为顺序进行的。对于从节点地址节点状态进行判断后,只对当前在线且没有通信故障的节点进行通信,其实现过程是对各从节点的状态信息进行判断,符合条件的进行通信,不符合条件的则跳过。AT24C01每次进行读写时是以字节为单位的,偶数号房间层节点的状态信息存储在高4位,奇数号的则存于低4位。由AT24C01存储空间与房间层节点的对应关系可知,读和写第N个房间的状态信息时,在AT24C01中的地址定位方式是一样的,所不同的在于写状态时要操作的是四个状态为中的某一位。
4.1.4 栋层对房间层信息的读写
栋层单片机与房间层单片机之间通讯的约定:
1、主机向从机发送地址信号,主机向从机发送数据信息。
2、主机处于监听状态下,因此只能收到主机发布的地址。
3、从机收到地址后,进行识别,是否主机呼叫本站,如果是,解除监听,同时把本站的地址发回,作为应答。只有这样,从机才能收到主机发来的数据。
4、主机收到应答,开始发布数据和命令。
5、从机正式接收数据。
4.2 PC机串行通信设计
PC机自带串行通讯接口,可以通过串口与单片机进行数据的传送,达到对单片机进行控制的目的。
4.2.1 PC机串行通信的原理
上位PC机上的RS-232C与AT89S52单片机的通信接口相接,进行集中监视与管理。PC与下位机采用异步串行通信方式,经RS-232C进行数据传输。上位PC机采用中断接收方式、AT89S52采用定时查询发送方式,AT89S52单片机定时向上位PC机发送数据,数据以帧为单位。上位机与AT89S52按应答方式通信时,上位机主动,AT89S52被动,上位机向AT89S52发出一组称作命令块的二进制数据,AT89S52对命令进行操作后,将结果返回给上位机,这组数据称作响应块。命令块与响应块以帧为单位进行传送,按传送字节个数不同,分为单帧传送和多帧传送两种。
4.2.2 通信机制及结构
串行通信有如下三种方式:
1、单工通信:它只允许一个方向传输数据。
2、半双工通信:它允许两个方向传输数据,但不能同时传输。
3、全双工通信:它允许两个方向同时进行数据传输。
4.3 AT89S52单片机串行通信
AT89S52单片机的串行口具有三种异步工作方式和一种同步工作方式。当串行口工作在异步工作方式时,可完成全双工操作,即能同时收发。
串行口的控制是通过地址为0011H的串行口控制/状态寄存器进行的。串行口的数据由串行口缓冲器SBUF(rx),SBUF(tx)负责收发,两者的地址均为0007H。虽然两个寄存器共用一个地址,但它们在物理上是独立的。CPU将预发送的数据写入SBUF (rx),然后从SBUF(tx)送往TXD引脚,从RXD引脚接收的数据送往SBUF(rx)保存。SBUF(rx)为双缓冲器结构,第一个接收到的字节被读走之前,就可以开始接收第二个字节。
4.3.1 串行口工作方式
AT89S52单片机的串行接口有4种工作方式,即方式0、方式1、方式2和方式3。这里仅介绍一种异步串行通信方式,即设计采用的方式1。
方式1是标准的异步通信方式。数据格式为:1位起始位(低电平0), 8位数据位(D0-D7 ),即先低位后高位,1位停止位(高电平1),共计10位为一帧。发送时,每帧数据(10位)按照上述顺序从TXD端移出,接收时每帧数据(10位)也遵循以上顺序从DXD端引入。数据格式如图4-1所示。
 
图 4-1 串行口方式1数据格式
1、方式1的发送过程
用软件清除T1后,CPU执行任何一条以SBUF为目标寄存器的传送指令,就
启动发送过程,数据由TXD引脚输出,此时的发送移位脉冲是由定时器/计数器T1送来的溢出信号经过16或32分频而得到的。一帧信号发送完时,将置位发送中断标志T1=1,向CPU申请中断,完成一次发送过程。
2、方式1的接收过程
用软件清除R1后,当允许接收位REN被置为1时,接收器以选定波特率的16倍速率来采样RXD引脚上的电平,即在一个数据位期间有16个检测脉冲,并在第7、8、9个脉冲期间采样接收信号,然后用“三中取二”的原则确定检测值,以抑制干扰,并且采样是在每个数据位的中间,避免了信号边沿的波形失真造成的采样错误。当检测到有从“1”到“0”的负跳变时,则启动接收过程,在接收脉冲的控制下,接收完一帧信息。当最后一次移位脉冲产生时能满足下列两个条件:R1=0;接收到的停止位为1或SM=2,则停止位送入RB8,8位数据进入SBUF,并置接收中断标志R1=1,向CPU发出中断请求,完成一次接收数据。
4.3.2 方式1的应用介绍
方式1是标准的全双工异步通讯方式,可以与标准的RS-232C接口连接,通常用来与CRT、打印机等外围设备进行数据通讯,也作为上下位机之间的数据通讯。
方式1的特点如下:
用方式1通讯时,帧的发送是通过TXD引脚,帧的接收是通过RXD引脚,发送和接收是由串行口内的移位时钟进行控制,波特率由用户设置。
当波特率发生器被初始化后,发送器的移位时钟开始工作:而接收器移位时钟是在收到起始位“1”到“0”跳变时被置位的。可见,虽然两种移位时钟使用相同的频率,但它们之间不是同步的。
在方式1下工作时,串行口控制/状态寄存器SP_CON/SP_STAT中的M1和M2二位应写入01,即按接收方式1工作、允许接收位REN的设置方法如下:置“1”时,清除RI标志为开始接收状态; 清“0”时,为发送状态。
因为方式1无第九位数据,所以TB8位和RB8位不使用。利用方式1进行串行数据传送时,可采用查询法和中断法实现。
4.4 PC机与单片机间的通讯
下位单片机和上位PC机之间的数据传输以串行通信的方式进行,在C语言程序和VB程序中都有各自的通信模块。串口通信程序的设计主要是初始化异步通信串口,使上位机通信口设置的通信参数与下位机设置的 通信参数一致。通信程序的编写,主要包含以下几个部分:
1、设置双方的硬件握手协议;
2、设置端口号、波特率、数据位、停止位、奇偶校验位;
3、打开串行端口。
根据系统上位机和下位机数据通信的功能和特点,双方的通信约定设计如下:
1、波特率为2400,数据格式为8个数据位,一个起始位,一个停止位;
2、传送方式为PC机采用查询方式发送、中断方式接收,AT89S52采用中断方式接收、查询方式发送;
3、为了提高通信可靠性和抗干扰能力,上位机和下位机在建立通信联系时,先交换握手信号,进行通信测试,若下位机自检出错,则在应答PC机命令时上传错误代码。若通信所接收的数据不符合约定的字节数或数据范围,或通信间隔时间超过限定时间则此次通信数据作废。若连续多次通信数据出错,则报告系统数据通信出错。
4.4.1 基于VB6.0的PC机通信程序设计
VB作为一种可视化程序设计语言,功能强大,使用方便,编写的图形显示界面生动丰富。利用其提供的通信控件MSComm,实现PC机与AT89S52单片机之间的通信也十分方便。图4-2是VB通讯程序流程图。
4.4.2 MSComm控件介绍
MSComm是VB6.0带有的专门管理串行通信的控件,此控件通过串行端口传输和接收数据,为应用程序提供串行通信功能[16]。利用此控件,可以制作规范的协议。MSComm控件可提供下列两种处理通信的方式:
1、中断方式
中断方式是处理串行端交互作用的一种非常有效的方法。在许多情况下,当事件发生时需要得到通知,这时,可以利用MSComm控件的OnComm事件捕获并处理这些通信事件。
2、查询方式  
在程序的每个关键功能之后,可以通过检查CommEvent属性的值来查询事件和错误。MSComm控件的属性InBufferCount()和OutBufferCaunt()均用于串口的查询方式。
MSComm控件有很多重要的属性,首先必须熟悉表4-1中的几个属性。

表4-1 MSComm控件的主要属性
属性 描述
Commfort 设置并返回通信端口号
Settings 以字符串的形式设置并返回波特率,奇偶校验,数据位,停止位
PortOpen 设置并返回通信端口的状态,也可以打开和关闭端口
Input 从接收缓冲区返回和删除字符
Output 向传输缓冲区写一个字符串
InputMode 值为0,以文本形式取回数据;值为1,以二进制形式取回数据
Rthreshold 当接收字符后,若Rthreshold属性为0(缺省值)则不产生OnComm事件:为1,接收缓冲区收每到一个字符都会使MSComm控件产生OnComm事件
Sthreshold 属性为0(缺省值),数据传输事件不会产生OnComm事件:若设置
Sthreshold属性为1,当传输缓冲区完全空时,MSComm控件产
生OnComm事件
4.4.3 上位PC机通讯程序设计
在VB6.0开发环境下,选择Microsoft Communication Control Version6.0控件插入程序,系统会自动生成通信控件。具体作法是:选菜单Project/ Component,将会有一子菜单,选中Controls项,在其中找到Microsoft Comm Control6.0,选中它便可插入,在工具条中就会看到新增的通信控件。在软件设计时可以如其它普通控件一样使用。在工程文件中添加 MSComm控件,程序中对串口的各种操作都可通过MSComm控件来实现[17][18]。AT89S52单片机通过中断方式采集和传送数据。接收模块从外部接收串行数据,并将所接收的数据放到寄存器中,以便处理器读取。接收过程同样由下位单片机控制,接收模块必须对数据位的溢出出错,奇偶校验出错,帧出错等进行校验,并根据校验的结果设置状态寄存器相应的状态位。接收的关键是要保证通信双方同步,由于没有时钟线,所以双方必须以一个固定的频率、同步地收发数据,才能保证数据传送的正确性。发送模块需要实现的功能是把从处理器接收到的数据,按规定的格式加上起始位,奇偶校验位和停止位后串行输出。发送模块由一个PC机来控制。当数据缓冲区满时,向单片机发出中断申请,若单片机响应并与PC机握手许可,便可发送数据。
 
图4-2  VB通讯程序流程图
因此,在PC机通信程序编制上,采用查询的通信方式。如前所述,对本次通信任务,可通过SetCommEvent()函数设置串口要响应的事件[19]。本设计把PC机串口每接收一帧数据设置为串口要响应的事件,通过它去激活OnComm(),在OnComm()消息处理函数中可加入处理代码,判断是否为所需要数据,并做出相应的处理,如显示、存储等。在附录2中给出事件驱动方式接收AT89S52单片机发送数据的程序源代码。
PC机串口各参数的设置,如波特率、校验及数据格式等,必须与AT89S52串口完全保持一致,否则两者之间的通信无法正常进行[20]。设置PC机串口参数的初始化程序如下:
    t=1; 选择COM1串行口
    gs= "2400, e, 8, 1”; 波特率2400,偶校验,8位
                                   数据位,1位停止位
    en=0; 将读取接收缓冲区的全部内容
    ode=1; 以二进制方式发送
    en=True; 打开端口
    MSComml.0utbufferCount=0; 清空发送缓冲区   
PC机进入VB编制的监控系统主界面后,PC机先发送握手信号给AT89S52单片机,AT89S52单片机通过中断方式接收PC机发送过来的握手信号,回送同一信号给PC机,并在PC机屏幕上显示出来。如果通讯正常,两次信号相同,说明上位机与下位机通信正确。然后用户才能发送设定参数。PC机通讯界面设计如图4-3所示:
              
图4-3 串口通讯接收界面
4.4.4 AT89S52单片机通信程序设计
在通信过程中,当AT89S52单片机与上位机PC握手联络成功时,AT89S52单片机以中断方式接收PC机发送来的设定参数,进行定时的数据采集,然后将采集的数据进行处理以中断方式发送给PC机。下位单片机和上位PC机之间的数据传输以串行通信的方式进行。PC机进入VB编制的监控系统主界面后,PC机先发送握手信号给AT89S52单片机,AT89S52单片机通过中断方式接收PC机发送过来的握手信号,回送同一信号给PC机,并在PC机屏幕上显示出来。为了提高通信可靠性和抗干扰能力,上位机和下位机在建立通信联系时,先交换握手信号,进行通信测试,若下位机自检出错,则在应答PC机命令时上传错误代码。PC机与AT89S52单片机通信握手程序框图如图4-4所示, 图4-5是PC机发送数据的子程序流程图。
  
图4-4 PC机通信模块程序流程图              图4-5 PC机发送子程序流程图
上位PC机与栋层单片机之间的程序采用了模块化的设计思想,单片机首先与PC机建立连接,然后采用中断 的方式将数据发送给上位PC机,PC机再根据下位单片机传来的信息作出相应的决策,如果PC机与单片机通信正确,则PC机读串行口,开始接收数据,如果通信发生错误,则退出程序。PC机接收下位单片机程序流程序如图4-6所示,图4-7是AT89S52串口中断接收程序流程图,图4-8是AT89S52握手子程序流程图。
 
图4-6 接收AT89S52采集数据流程序框图
     
图4-7 AT89S52串口中断接收程序流程图           图4-8 AT89S52握手子程序流程
第5章 系统调试
5.1 调试过程
硬件电路的调试过程:
1、电路的设计:设计好原理图,计算出各器件的理论值。
2、电路的焊接:器件合理分布好后,开始焊接,使用万用表检测是否有虚焊的地方,导线尽量不要太长。
3、电路调试:为了验证电路是否正确和测试PC机与栋层单片机的通讯功能,实验中用一个AT89S52单片机,一台计算机。PC机通过串口连接单片机进行监听,看PC机与单片机是否能正常通信。图5-1是上位PC机VB通信串口的参数设置界面。
 
图5-1 PC机串口通信参数设置界面
图5-2是PC机接收数据的过程:
 
图5-2  PC机接收数据
图5-3是PC机通信串口的关闭情况:
 
图5-3  串口关闭的情况
 软件部分的调试过程:
在本设计中,软件的调试过程采用的是先模块化,再进行组合的方式。主要用VB6.0对PC机控制界面程序进行编译,用Keil C51 编译器对单片机程序进行编译。
 
图5-4  Keil C51编译器
5.2 调试结果
从调试过程可以说明PC机与单片机之间的串行通信已经实现,但在数据的接收过程出现了问题,无法正常实现数据的接收。导致这一问题的原因可能有以下几点:
1、单片机通信接口电路干扰过大,导致主从机间无法进行正常通信。
2、单片机的程序全部采用模块化实现,这就导致在最后的调试中需要多层调用,过多层数的调用,这样会导致堆栈的溢出,程序无法正常执行。
调试结果说明:由于本设计中的上位PC机的部分程序功能还未实现,到目前为止实现了PC机与单片机的通信,系统的整体调试还未能实现。

结  论
本文在照明智能控制器的基础上,综合运用了单片机与计算机控制的新技术和新方法。本文完成了以下设计:
1、整个系统软件采用模块化、开放式的结构设计,各功能模块相互独立又可以相互访问,提高了可靠性和可扩展性。上位PC机用VB6.0语言编程,程序简单、清晰,操作界面友好,下位机用单片机C语言编程。
2、选用AT89S52单片机作为控制系统的控制核心。AT89S52单片机运算速度快,内含256个RAM单元,可满足软件编程中数据和外部输入数据的暂存,数据交换无需外加RAM芯片,简化了硬件电路,提高了系统工作的可靠性。充分利用了片内资源,系统抗干扰能力强,结构简洁。
3、完成了通信串口的扩展和PC机与单片机串行通信的设计, 实现了房间层和栋层间的通信。
4、利用面向对象的语言VB开发了上位机软件,构建了控制管理系统。
由于受时间和实验条件的限制,本系统没有实现计算机的远程控制,系统的联机调试还没有成功。
本设计还需要进一步完善如下工作:
1、照明管理系统与智能控制器进行联机调试运行。
2、丰富上位机的管理功能,进一步完善上位机对照明的数据采集,实时管理。
3、进一步完善上位机控制策略,从PC机与单片机的一对一的通讯改进成PC机与单片机的一对多通讯,从有线式串口通讯改进为无线通讯。
4、在实现照明控制的基础上,实现防盗报警功能。报警功能可以采用上位机对时间的检测实现,以实验室为例,只要在晚上11:00以后房间层的热释电传感器检测到人的存在就自动报警。 


致  谢
本论文是在生物医学实验室完成的,本论文之所以能够顺利完成,是与导师韩雪梅的悉心指导和严格要求分不开的。由于本人单片机技术与通讯理论基础薄弱,所以,从论文一开始,导师就时常督促和帮助我,努力提高理论水平和基础知识,并提出了建设性、宝贵的指导,确保了我的论文得以完成。导师严谨治学的态度和平易近人的作风,令我感动和钦佩,所以,在此我首先向我的导师表示深深的感谢和诚挚的祝福,祝福老师工作顺利、身体健康、合家欢乐。同时感谢多年教育和帮助我的所有生物医学工程专业的老师。还要感谢我们专业的许多同学,他们在大学四年给了我许多的支持和帮助,给我带来了无数的快乐。最后我要感谢我的家人,在我读书期间给予的关心和支持。

参考文献
[1] 肖辉.电气照明技术—照明电气设计[M]. 北京,机械工业出版社,2004:124-127.
. applications construction, 2001: 12-13.
[3] FCCPERP. Lighting research program[J]. Computer Networks, 2000.3: 14-16.
[4] 杨清翼.智能照明控制器的设计[D].绵阳:西南科技大学本科毕业设计论文,2006.
[5] 殷志华,郑海,杨浩.单片机与PC机串口通信的实现[J].中国数据通信,2006,5(1):20-25.
[6] 王志宏.单片机与PC机的串口通讯[J].现代电子技术,2005,5:4-11.
[7] 刘焕平. MCS51单片机与RS-232C串行口连接[J].石家庄职业技术学院学报,2005,8(2):15-30.
[8] 朱立忠,冯丹. PC机与MCS51单片机通信接口电路的设计[J].沈阳工业学院学报,2005,(5):20-45.
[9] 杨会成,卓芝强.单片机与PC机串行数据通信的工程实践[J].微型机与应用,2005,(05):6-12.
. Computer Networks, 2006, 3: 379-399.
[11] 李振起,马君,唐兵. PC机与51系列单片机的远距离串口通信[J].煤矿机械,2003,7(07) :12-42.
[12] 陈寿元.单片机多机串行通信的改进方案[J].单片机与嵌入式系统应用,2005,(5):79-83.
[13] 官波,容太平. AT89C51的扩展串口与PC机间的通讯[J].国外电子元器件,2004, (03):12-20.
[14] 成都国腾微电子有限公司. GM8125通用异步串口扩展芯片数据手册.成都国腾微电子有限公司,2006.1.
[15] 于永会. 照明片区网络化系统设计[D].绵阳:西南科技大学本科毕业设计论文,2006.
[16] 丁建军,陈定方.基于VB6.0的PC机与单片机间的串口通信[J].机械与电子,2004,12(5):7-12.
[17] 闫通海,周到.利用MSComm控件实现PC机与单片机串口通讯的研究[J].应用科技,2006,(5):12-16.
. UCLA Technical Reports, 2003,2: 25-40.
[19] 金卫民.VB下利用串口进行数据通讯的研究[J].计算机工程与设计,2006,5 (12):20-45.
. 2003,5.
 

上一篇:cosplay表演在动画服饰的应用价值分析

下一篇:论五六十年代欧美影视服装对我国的启示