基于PIC单片机的智能小区监控系统的设计

发布者:考古专家最新更新时间:2012-03-10 来源: 微计算机信息 关键字:终端控制器  PIC单片机  串行通信 手机看文章 扫描二维码
随时随地手机看文章

1. 引言

    随着生活水平的不断提高,人们对居住环境的要求也大大提高,对信息服务和安全防范的要求尤为突出.如何利用计算机和通信技术在智能化小区家庭智能管理系统中,对住户家庭水表、电表、煤气表的自动计量以及火灾、煤气泄漏、入室盗窃等警情的实时监控已经成为信息产业的热点技术.利用CAN总线技术虽然有其开放式、数字化、多点通信等诸多优点,但将其用于智能住宅小区,却因其成本偏高,目前在我国还难以推广.为此,作者开发出一种设备简单,成本低廉,便于维护经济型智能小区家庭管理系统,能有效地实现三表自动采集计费,防盗、防灾、自动报警和远程监控等功能.利用单片机进行实时采集,并将采集的数据通过串行口传给PC机,PC机完成数据的运算、存储、和打印。硬件通过PIC16FXX单片机实现,软件由VC++6.0实现.

2. 系统结构

    系统是由一台PC机(上位机)和多台PIC单片机(下位机,作为终端控制器)构成分布式控制系统,PC机COM口带多个终端控制器,终端控制器地址设为 1-N。PC机采用巡查工作方式自动查询小区内所有终端控制器的报警状态,及时对各种报警信号做出响应,并通过有效手段(语音提示、电子地图标识等)向监控中心工作人员提供报警业主家庭有关地址、电话等详细信息,以便及时处理;同时通过抄表工作方式完成自动抄表以及报表输出等任务.终端控制器采集用户煤气表、电表、水表脉冲数据,实现3表自动计数;同时采集现场的防盗、防灾等信息,有意外事件发生时可自动启动报警器报警.PC机与终端控制器采用总线式网络结构相连,采用RS—485接口总线通信;RS485接口总线利用平衡发送和差分接收方式实现通信.,以半双工工作方式工作,最大传输距离可达 1200m,波特率在1200和38400b/s间可设置,RS485网络采用一对有补偿的双绞线。终端控制器采用PIC16FXX单片机,片中串行口加 MAX487转换器,选用在多点总线传输线中双向数据通信应用网络广泛使用的MAX487收发器,其特点是具有限斜率的驱动器,即驱动器发送数字信号,其沿边斜率是受限制的,这使电磁干扰(EMI)减至最小,并减少因电缆终端不匹配而产生的影响.接口接线简单,维护方便,保证了抄表的可靠性和监控的实时性.

 3. 终端控制器硬件设计

    每个家庭安装的终端控制器是以单片机PIC16FXX为核心的数据采集和处理装置,电路结构如图2所示.PIC16FXX单片机是由美国 Microchip公司推出的一种新型的CMOS工艺的8位单片机,具有别具特色的哈佛总线和RISC结构,以及PIC16FXX的程序存储器为电可擦除闪速存储器(flash),可修改程序,甚至可在线编程。PIC16F83和PIC16F84片内数据存储器除RAM外,还有64K字节的EPROM,可以当作一般的或非易失性数据存储器使用,简单方便,它还具有片内上电复位,延时电路,看门狗电路等。终端控制器就是由PIC16FXX单片机扩展了8路信号输入通道,通信接口电路,键盘,看门狗电路,LCD显示器和EEPROM 24C16等.[page]


 
    为了简化硬件结构,将三表设计成脉冲表,报警探头为脉冲输出,从而避免了在控制器主板上使用A/D转换接口.本系统对表脉冲安排4路输入通道,利用单片机 PIC16FXX的PORTA端口输入,表脉冲和报警脉冲信号分别通过斯密特触发器波形整形和74LS244缓冲器进入CPU,在一定的采样周期内,CPU轮流查询用户表和报警的输入端口状态,并进行数据分析处理,存到EEPROM 24C16相应的存储区,等待中央计算机的查询和抄写.再安排4路输入通道用于对设防、撤防、解警和求助操作的遥控处理.串行接口器件LCD液晶显示器可显示表数据和有关报警状态等信息,所采用的液晶显示模块,内置显示RAM和驱动控制器,通过4线与单片机相连. 8KB串行EEPROM 24C16,用以存储用户各表的数据信息、报警状态信息和采集监控终端地址以及有关初始化信息.每个用户的采集监控终端设置不同的地址,从而保证采集数据的正确无误.
    终端控制器工作过程如下:上电复位自检后,开始运行,指示灯闪烁表示程序开始正常工作,初始化LCD,脉冲表,密码,报警状态,键盘,串口。然后进入主程序循环,首先记录报警状态,脉冲表数据,然后将上述两种数据存入24C16中,查询键盘,通过串口响应PC机通信命令与PC机之间进行数据传输。

4. 系统通信

    通信的发起方总是主机开始,由PC机控制通讯的主动性,单片机在通讯过程中处于被动地位。由于各分机共享同一频率,为避免冲突,PC机通过巡查分机的工作方式查询各单片机是否有信息要上报给PC机。
为了保证PC机与多台单片机之间能够准确、可靠的通信,确定一个明确而合理的通讯协议是关键。包括对数据格式、通讯方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定。
为区分不同的分机,必须为每一个分机分配一个唯一的地址,此地址唯一区别各单片机。数据格式采用数据包的形式,一次传输一组数据,数据包格式如下所示:


 
    起始标志位:1个字节  数据长度:1个字节
    分机地址:1个字节  数据内容:n个字节
    和检验:2个字节   命令/数据:1个字节
    结束标志位:1个字节
    主机向单个单片机传数据时,首先,上位机顺次发送起始标志位,目的地址位,数据,生成检验位,结束标志位,上位机发送后每个下位机都产生中断把上位机数据包都接收下来,当接收到结束标志字符时,表示接受到一帧完整的数据包,然后对数据解包,把接收到的目的地和本机地址进行比较,如果不是则马上跳出中断服务程序,相同的话则表示要和本下位机进行通讯。主机发完信息后便等待该分机的接收应答。当接收数据包完成后,接受方也生成相应的检验和,如果接受方生成的检验和与接收到的检验和一致,则表明这次通讯成功,下位机根据接收到的内容给上位机发送相应的反馈信息。如果不一致,则表明此次通讯失败,下位机给上位机发送失败信息,要求上位机重新发送。
    由于系统采用上位机巡查下位机的工作方式,单片机在通信过程中处于被动地位,只能其被轮询到的时候才能给上位机发送数据,否则即使信息要上报主机时,也必须处于等待。上位机从第一分机依次查询下位机,给巡查到的下位机发送查询命令,询问该单片机是否有信息要上报给上位机。被轮询的单片机如果没有信息要上报给上位机的话就给上位机发送无上报要求的指令,上位机接受到此指令后便轮询下一地址的分机;若分机有数据需上报便回发一个有上报要求给主机,主机收到后便等待分机上报数据,有上报数据的分机组织好数据后上报给主机,然后等待主机的接收应答。主机收到分机上报的数据后进行检查,若正确接收发正确接收应答,否则发错误接收应答。当接收错误后,主机等待分机再次上报数据,分机收到接收错误应答后再次发送数据。
    信号传输中接受与发送都采用中断方式,多机通信从机中断服务程序如图3所示。


 
5.PC机通信程序设计

    上位机的软件是基于VC++6.0实现的,其中的重点和难点是进行实时的串行通讯。应用VC++编写串行通信程序,通常可归纳为如下四种方法:一是利用 Windows API通信函数;二是使用Microsoft提供的Microsoft Communications Control控件(简称MSComm);三是利用第三方编写的通信类(如MuMega Technologies公司提供的Cserial类);四是在VC++中用端口操作指令直接对串行端口编程,实现串行通信。本系统中采用的是 MSComm控件,它是通过串行端口发送和接收数据,为应用程序提供串行通信功能,使用非常方便。

6.小结

    本系统提出的通讯硬件和通讯协议已经在实际中使用,截止目前运行正常。这说明这种通讯方案在PC机和多台单片机的数据通讯中快速、准确、可靠的。
 

参考文献:
[1] 李朝青,PC机及单片机数据通讯技术[M],北京:北京航空航天大学出版社,2000
[2] 阳宪惠,现场总线技术及其应用[M],北京:清华大学出版社,1999
[3] 王仲文,精通串行口通讯[M],北京:电子工业出版社,1995

关键字:终端控制器  PIC单片机  串行通信 引用地址:基于PIC单片机的智能小区监控系统的设计

上一篇:基于PIC的MC-CDMA系统多级型多用户检测技术
下一篇:LCD显示器与PIC16F877单片机连接

推荐阅读最新更新时间:2024-03-16 12:55

自学PIC单片机必备工具
  P IC 单片机 是一种可编程的芯片,数字 电路 也有些芯片具有可编程的能力。      但是数字电路的编程太简单,因而其功能也很少,但PIC单片机具有很强的编程能力,是数字电路无法实现的目标。例如:笔者用一片PIC16F84制作的多波形电针治疗仪,能在20分钟内变换20种波形,即每分钟变换一次波形(消除人体对单波形刺激的适应性)。如果要用数字电路来实现,需要上10个芯片,这充分证明PIC单片机的可编程的能力十分强大。由于单片机自身不能编程,所以必须借助下述的硬件和软件两种开发工具对它编程之后,才能把PIC单片机变成有用的产品。这些设备价格便宜,功能可靠。      1.PC(个人电脑)和开发软件PC机一台,其配置如下:Mic
[单片机]
PIC单片机C语言程序设计(1)
  编者按:为了帮助具有PIC单片机汇编语言知识的技术人员或工程师,快速掌握利用C语言编写PIC单片机程序的方法,本刊特推出《PIC单片机C语言程序设计》系列连载文章。丈中给出的C语言程序实例,均是可执行的,读者可以放心引用。   一、汇编语言与C语言   早期的单片机程序多采用汇编语言编写。用汇编语言编程,直接、简捷,可有效地访问和控制各种硬件设备,如存储器、I/O口等,目标代码简短、占用内存少、执行速度快、语句效率高。然而,由于汇编语言是面向机器的语言,不同厂家或同厂家不同系列的单片机。其汇编语言指令系统往往互不相同,即通常所说的“不兼容”。这就出现了精通51单片机汇编语言的人不能直接编写PIC或其他单片机的汇编语言源程序
[单片机]
<font color='red'>PIC单片机</font>C语言程序设计(1)
利用PIC单片机的蓄电池充电智能管理器设计实例
为了在蓄电池充满电后能够自动断电,利用PIC单片机设计了蓄电池充电专用管理器。该管理器具有自我学习的功能,智能记忆蓄电池满充状态,能适应现有的各种蓄电池充电器,对蓄电池进行智能充电,最大限度地保护电池,延长使用寿命。在无人看管的情况下,蓄电池充满电后自动断电,有效避免火灾隐患和电器故障的发生,也能节约宝贵的电能。 现有的蓄电池充电器中有很多质量低劣的不合格产品,有的劣质充电器实际上就是一个没有安全保证的简易变压器,大部分充电器在蓄电池充满电后不进行智能断电而长期处于浮充状态,对电池的寿命会有一定的影响;现有的充电管理器普遍不具备自我学习功能,无法判断电池的充电状态,不能在蓄电池已充满电的情况下智能的切断电源。本文设计一种蓄电池充电
[电源管理]
利用<font color='red'>PIC单片机</font>的蓄电池充电智能管理器设计实例
利用RS485/RS232转换器实现PC机和单片机串行通信
1、RS485串行通信接口电路的总体设计 在电参数仪的设计中,数据采集由 单片机 AT89C52负责,上位PC机主要负责通信(包括与单片机之间的串行通信和数据的远程通信),以及数据处理等工作。在工作中,单片机需要定时向上位PC机传送大批量的采样数据。通常,主控PC机和由单片机构成的现场数据采集系统相距较远,近则几十米,远则上百米,并且数据传输通道环境比较恶劣,经常有大容量的电器(如电动机,电焊机等)启动或切断。为了保证下位机的数据能高速及时、安全地传送至上位PC 机,单片机和PC机之间采用RS485协议的串行通信方式较为合理。 实际应用中,由于大多数普通PC机只有常用的RS232串行通信口,而不具备RS485通信接口。因此
[单片机]
利用RS485/RS232转换器实现PC机和单片机<font color='red'>串行通信</font>
用单片机制作的遥控回应式报警装置
  本文介绍的遥控回应式报警装置,可在150米范围之内监控报警对象,适合于各种场合的防盗报警。对于一些无回应方式的报警系统,也可作为其功能缺项的补充。该装置采用编、解码器和PIC单片机处理收发的监控和报警信息,使监控准确、抗干扰性强,并减少了元器件的数量和整机功耗。 1 系统功能和特点   该遥控回应式报警装置的功能和特点如下:   ·通过遥控器按钮可测试与主机的通路状态,对主机设置即时回应、定时回应和遇警鸣笛等工作方式。   ·通过遥控器按钮观察三个通道报警状态的实时连续变化,可准确判断报警对象所处的环境状况。   ·功能扩展灵活。可通过软件编程和增加报警通路而方便地扩展为智能防盗系统。 2 硬件电路及原理   本
[单片机]
用单片机制作的遥控回应式报警装置
PIC单片机相比其他单片机有什么优势
本人从事单片机应用系统的开发已有多年,使用过多种型号的PIC单片机,深感PIC单片机使用起来确实很方便: 1、PIC单片机采用精简指令集,中档产品仅需35条指令,入门门槛低,而在使用过程中绝不会感到不方便。 2、PIC单片机的数据线和指令线各自独立,代码效率高,是传统51系列单片机的2-3倍,除几个跳转类指令外均为单周期指令,在计算延时时间时非常方便。 3、PIC单片机外围接口十分丰富,能满足绝大部分应用系统的需求;比如PIC16F877A包含8路ADC,1个CCP、PWM、USART、SSP、I2C/SPI,3个定时/计数器,1个硬件WDT等接口,8K FLASH程序存储器、256字节EEPROM,能满足较复杂测控系统的
[单片机]
<font color='red'>PIC单片机</font>相比其他单片机有什么优势
基于PIC单片机的电热剪控制电路图设计
简介:本文主要介绍了基于PIC单片机的电热剪控制电路图设计方法。 电热剪电路的系统构成如图1所示,其构成由传感器—滚珠开关、单片机定时检测及处理、工作状态指示、PWM信号产生与调整、电热模块驱动、电源共六个部分组成。 由图1可以看出,单片机通过传感器检测到电热剪操作者是否在操作电热剪的开关信息后,决定是否允许PWM信号产生电路工作,直接控制了电热模块的驱动电路对装配在剪刀刀片二侧的陶瓷加热片的功率提供。同时工作指示灯完成工作状态信息指示。 电热剪电路原理图分析:开关S1代表前述的滚珠开关,接入到U2 PIC10F206单片机的PIN6引脚。当由J1端接通系统工作电源时,单片机初始状态设置为由PIN1、2、3引脚输出高电平
[单片机]
基于<font color='red'>PIC单片机</font>的电热剪控制电路图设计
PIC单片机设计的SPWM控制技术
本文采用软硬件结合设计的方法,利用面积等效法,并且基于PIC单片机实现对试验逆变系统的SPWM控制。 目前SPWM的产生方法很多,汇总如下: 1)利用分立元件,采用模拟、数字混和电路生成SPWM波。此方法电路复杂,实现困难且不易改进; 2)由SPWM专用芯片SA828系列与微处理器直接连接生成SPWM波,SA828是由规则采样法产生SPWM波的,相对谐波较大且无法实现闭环控制; 3)利用CPLD(复杂可编程逻辑器件)设计,实现数字式SPWM发生器; 4)基于单片机实现SPWM,此方法控制电路简单可靠,利用软件产生SPWM波,减轻了对硬件的要求,且成本低,受外界干扰小。 在UPS等电力电子设备中,控制方法是核心技术。早期的控制方
[单片机]
<font color='red'>PIC单片机</font>设计的SPWM控制技术
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved