搜索
您的当前位置:首页正文

基于can总线火灾报警系统设计

来源:赴品旅游


本科生课程设计(论文) 课程设计(论文)任务及评语

院(系):电气工程学院 教研室:自动化 学 号 课程设计(论文)题目 学生姓名 专业班级 基于CAN总线火灾报警智能节点设计 课题完成的功能、设计任务及要求、技术参数 实现功能 本系统在单片机中实现CAN总线的接口,通过CAN总线,实现两个智能节点之间的数据通讯。系统主要由四部分组成:总线结构、微控制器、独立CAN通信控制器和CAN总线收发器。微处理器负责CAN通信控制器的初始化,并实现数据的发送和接收等通信任务。CAN软件的设计包括三大部分:CAN节点初始化、报文发送和报文接收。 1、 设计火灾报警智能节点,通过温度和一氧化碳传感器检测火情信号,经过输入通道传递给单片机; 2、 单片机子系统作为CAN总线的一个智能节点,该智能节点可以与总线上的其他智能设备通信。 设计任务及要求 1、分析设计要求,明确性能指标,选择传感器、单片机型号,确定设计方案; 2、设计单片机最小系统(晶振、电源、复位等); 3、设计实现系统功能的单片机外围电路,包括驱动电路、键盘、显示; 4、设计CAN总线电路(包括控制器、驱动器、接口电路); 5、软件设计(编写主程序、接收、发送程序及相应的流程图) 6、要求认真独立完成所规定的全部内容;所设计的内容要求正确、合理。 7、撰写、打印设计说明书一份;设计说明书应在4000字以上。 技术参数 1、总线参数:CAN节点的晶振频率为12MHz,,总线的速度为20kb/s,最大的传输距离为3300m;2、火情参数:温度100度,烟雾浓度60%。 1、布置任务,熟悉课设题目,查找及收集相关书籍、资料。(1天) 2、确定控制方案、选型。(2天) 3、CAN节点及硬件设计。(3天) 4、程序实现及流程图。(2天) 5、撰写设计说明书。(1天) 6、验收及答辩。(1天) 平时: 论文质量: 答辩: 总成绩: 指导教师签字: 年 月 日 课程设计(论文)任务进度计划指导教师评语及成绩

注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算

I

本科生课程设计(论文) 摘 要

为快捷有效的预测火灾的发生,减少人们生命和财产损失;解决“传统火灾报警器只对单一物理或化学信号进行探测而容易使报警系统出现误报或漏报”等问题从而设计了本系统。

本系统采用主从式结构,具有反应迅速、工作稳定、安全等特点。主节点与从节点的单片机都采用AT89C52芯片来控制。为了实现主节点对从节点的实时监测,在主节点和从节点处都设计有CAN通信电路模块,由控制器SJAl040和收发器82C200组成CAN通信接口。从节点的外围电路由烟雾传感器SS-168、光电传感器ST-178、温度传感器DS18B20和声光报警装置组成。单片机巡回检测温度、红外辐射、烟雾等传感器,当温度采集、红外检测、烟雾检测模块中任意两项检测到异常时系统发出声光报警,直到任意一项异常排除时系统才自动停止声光报警。

本系统在每个从节点跟主节点处都设有声光报警装置,它方便工作人员能快速的找到哪一个从节点所在位置有火灾发生,同时也提醒了在场的人员此处有火灾发生,从而能让工作人员快速的到达火灾现场跟现场人员快速灭火,提高了本系执行度。

关键词:传感器,火灾报警系统,CAN总线

II

本科生课程设计(论文) 目 录

第1章 绪论 ........................................... 错误!未定义书签。

1.1 PLC的历史和发展 .................................... 错误!未定义书签。

1.2 PLC的特点与应用 .................................... 错误!未定义书签。 1.3 PLC的工作原理 ...................................... 错误!未定义书签。

第2章 系统的总体设计 ............................... 错误!未定义书签。

2.1 总体结构框图 ....................................... 错误!未定义书签。

第3章 系统硬件设计 ........................................ 错误!未定义书签。

3.1 CPU型号的选择 ...................................... 错误!未定义书签。 3.2 模块的选择 ......................................... 错误!未定义书签。 3.3 硬件电路设计 ....................................... 错误!未定义书签。 3.4 系统I/O分配 ....................................... 错误!未定义书签。 3.5 外部接线图 ......................................... 错误!未定义书签。

第4章 系统软件设计 .................................... 错误!未定义书签。 第5章 程序调试 ..................................................................................... 错误!未定义书签。 第6章 MCGS组态 ................................................................................... 错误!未定义书签。

6.1 绘制组态界面 ....................................... 错误!未定义书签。 6.2 组态参数设置 ....................................... 错误!未定义书签。 6.3 脚本程序 ........................................... 错误!未定义书签。

第7章 总结 ............................................... 错误!未定义书签。 参考文献 ................................................... 错误!未定义书签。 附录 ............................................................ 错误!未定义书签。

III

本科生课程设计(论文) 第一章 绪论

1.1 课题的研究背景

火灾是目前最常见、最普遍的威胁公共场所安全和建设和谐社会的重要灾害之一。但是“火”被人类控制与利用也是人类迈进文明社会的一个重要标志,所以说“火”,它既能给人们带来了文明的进步,光明和温暖,但是当其一旦失去控制,就会为人类带来毁灭性地灾难。使用“火”的过程中,人们总是在不断地总结发生火灾的规律,尽可能地尽最大可能减少火灾对人身财产造成的伤害或损失。在100年前,那时的科技还不发达,我们伟大的先祖发挥他们的聪明与才智总结出“防为上,救次之,戒为下”的经验来防治火灾。随着科技不断的发张与进步,人们居住的场所越来越集中,而在现如今人们的财富日益增加,诱使发生火灾的机会也越来越多,比如违规的使用电器等。现代建筑发生火灾危险性越来越强,一旦发生某地起火,如果不能及时的扑灭就会照成一系列的连锁反应,火会越燃越大有的甚至燃烧了整条街。这样的报道时常会出现在电视、杂志上,让人们苦不堪言。因此,消防设施已经成为每一个场所的必需设施,突显其对现代人们社会活动的重要性。

1.2 国内外火灾自动报警技术的现状

从第一个感温探测器面世,至今已有一百多年了。其低灵敏性和不兼容性,早已难以满足时下客户的要求。第二次世界大战后,光电和离子感烟探测器进入市场。这些新型灵敏度高的探测器在发展初期,已能够探测早期火警,难怪它们能以革命性姿态进军世界消防保安行业。众所周知,火警时任何事都是分秒必争的。为此,生产商,甚至一些顾客,擅自调高探测器灵敏度,大大减低自动火灾报警系统可靠性,以至这些系统的“主要产品”被加上“误报”帽子,引起了很多连带问题。对现代消防技术的发展来说,这绝对是急需改善的。长期以来,大幅度地改善火灾探测器的可靠性,是客户的迫切要求和迅速扑来火警所不可或缺的。也是世界各国科学家努力研究的方向。随着科技的不断发展,更新的传感器、微型电子装置、数据处理及通讯设备等都正积极地寻找在火灾探测方面的新的突破。目前国内外专业界对其分类方法还存在一些差异,从探测器利用的原理可以分为四代:

第一代 四线制式开关量探测器,这种探测器历史悠久,目前依然有一定的市场;

1

本科生课程设计(论文) 第二代 带地址编码的开关量探测器,这种探测器作为四线制探测器技术的延伸,是属于一种过渡性产品;

第三代 集中智能模拟探测器,采用探测器-主机的对话方式及自动编址等技术,为目前最为流行的产品;

第四代 无线智能模拟探测器和空气采样分析探测器。目前这两种探测器已在少数工程应用之中,价格偏高,但安装方便,报警安全可靠,为未来应用的发展趋势。

1.3 论文的课题背景及主要内容

根据资料分析,现如今在学校的寝室里,学生贵重物品被盗、由于学生过失而引起着火等事故时有发生,这些都是一直以来困扰着学生、学工以及学校保卫处的“大问题”。传统的防范措施存在很大的弊端,比如当事故发生时,防护铁门、铁栏杆就会成为主人逃生的最大障碍。而采用智能防火防盗报警系统,便能很好地解决此类问题了。但是市场上防火防盗系统价格对大学生来讲过高,本系统便是针对大学宿舍,从低成本的角度来设计制作的。

学生宿舍报警系统是以火灾为监控对象,研究总线协议,采用can总线实现网络报警。采集20路火警、盗警信息。接警中心要有报警信息点指示。宿舍中采用热释电传感器对人体进行检测,烟雾传感器实现烟火检测,主机通过CAN总线对从机实时监控,当有异常出现时,宿舍和监控室的报警装置会同时响起,只有本宿舍成员在本宿舍成员在本宿舍通过按键才可解除报警状态。

2

本科生课程设计(论文)

第二章 CAN总线规范

2.1 CAN总线简介

CAN中文名为控制器局域网,它是一种实时控制的串行通信网络或者有效支持分布式控制的控制器。CAN总线最初是由德国博世公司开发的,在20世纪80年代初为解决现代汽车中众多的控制和数据交换之间的测试设备而开发的一种串行数据通信协议,它是的通信介质可以是双绞线、同轴电缆、光导纤维,通信速率高达1Mbps的一种多主总线控制器。CAN总线通信接口中集成了CAN协议的物理层,数据链路层功能,可完成对通信数据的成帧处理,包含位填充,数据块编码,循环冗余校验,优先级判别等项工作。

现在,CAN总线通信被誉为自动化领域的计算机局域网。它出现在分布式控制系统主从节点之间,为实现实时并可靠的数据通信提供了强有力的技术支持。CAN总线的高性能和高可靠性也同时得到各业界的认可,它被广泛应用于工业自动化,船舶,医疗设备,工业设备等场所。同时CAN总线的现场控制也是当今自动化技术领域的热点话题之一。

由于CAN为越来越多地被不同的领域采用和推广,致使要求各种应用领域通信报文实现标准化。为此,1991年9月Philips Semiconductors制订并发布了CAN技术规范(Version 2.O)。该技术规范包括A和B两部分。Version 2.O的A部分给出了曾在CAN技术规范版本1.2中定义的CAN报文格式,而Version 2.O的B部分则给出了标准的和扩展的两种报文格式。此后,1993年11月ISO正式颁布了道路交通运载工具、数字信息交换、高速通信控制器三者之间的CAN控制的国际标准(IS011898),为控制器局部网标准化、规范化推广与发张奠定了基础。

CAN的一些基本概念:

(1)报文:报文就是在总线上所传送的信息,该信息以不同的报文传送,但报文长度要受帧结构的限制。当总线空闲时,任何连接的单元均可开始发送一个新报文。

(2)帧传送:在总线上传输的报文以帧结构进行传输。报文传送有4种不同类型的帧来表示跟控制,它们分别为数据帧、远程帧、出错帧和超载帧。

(3)裁仲:用于处理总线访问冲突。依据其报文标识符与RTR位来确定。 (4)标识符:一个报文的内容由其标识符ID命名,ID并不指出报文的目的,但描述了数据的含义,以便网络中的所有节点有可能借助报文滤波来决定该数据是否使它们激活。

3

本科生课程设计(论文) (5)技术规范:CAN技术规范(Version2.0)包括2.0A和2.0B。2.0A的报文标识符为11位,2.0B有标准和扩展两种报文格式,前者的标识符19位,后者29位。

(6)远程数据请求:通过发送一个远程帧,需要数据的节点可以请求另一个节点发送一个相应的数据帧,该数据帧和对应的远程帧以相同的标识符命名。

(7)显性隐性:CAN总线数值为两种互补的逻辑数值“显性”和“隐性”。其中显性表示逻辑“0”,而隐性表示逻辑“1”。当显性和隐性位同时发送时,总线数值将为显性。

2.2 产生与发展

控制器局部网(CAN-CONTROLLER AREA NETWORK)是BOSCH公司为现代汽车应用领先推出的一种多主机局部网,由于其高性能、高可靠性、实时性等优点现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。控制器局部网将在中国迅速普及推广。

随着计算机硬件、软件技术及集成电路技术的迅速发展,工业控制系统已成为计算机技术应用领域中最具活力的一个分支,并取得了巨大进步。由于对系统可靠性和灵活性的高要求,工业控制系统的发展主要表现为:控制面向多元化,系统面向分散化,即负载分散、功能分散、危险分散和地域分散。

分散式工业控制系统就是为适应这种需要而发展起来的。这类系统是以微型机为核心,将5C技术--COMPUTER(计算机技术)、CONTROL(自动控制技术)、COMMUNICATION(通信技术)、CRT(显示技术)和 CHANGE(转换技术)紧密结合的产物[2]。它在适应范围、可扩展性、可维护性以及抗故障能力等方面,较之分散型仪表控制系统和集中型计算机控制系统都具有明显的优越性。

典型的分散式控制系统由现场设备、接口与计算设备以及通信设备组成。现场总线(FIELDBUS)能同时满足过程控制和制造业自动化的需要,因而现场总线已成为工业数据总线领域中最为活跃的一个领域。现场总线的研究与应用已成为工业数据总线领域的热点。

尽管目前对现场总线的研究尚未能提出一个完善的标准,但现场总线的高性能价格必将吸引众多工业控制系统采用。同时,正由于现场总线的标准尚未统一,也使得现场总线的应用得以不拘一格地发挥,并将为现场总线的完善提供更加丰富的依据。控制器局部网 CAN(CONTROLLER AERANETWORK)正是在这种背景下应运而生的。

由于CAN为愈来愈多不同领域采用和推广,导致要求各种应用领域通信报文的标准化。为此,1991年9月PHILIPS SEMICONDUCTORS制订并发布了CAN技术

4

本科生课程设计(论文) 规范(VERSION 2.0)。该技术规范包括A和B两部分。2.0A给出了曾在CAN技术规范版本1.2中定义的CAN报文格式,能提供11位地址;而2.0B给出了标准的和扩展的两种报文格式,提供29位地址。此后,1993年11月ISO正式颁布了道路交通运载工具--数字信息交换--高速通信控制器局部网(CAN)国际标准(ISO11898),为控制器局部网标准化、规范化推广铺平了道路。

2.3 CAN总线优势

CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。较之目前许多RS-485基于R线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性:

1.网络各节点之间的数据通信实时性强

首先,CAN控制器工作于多种方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据[3],且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。而利用RS-485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差;

2.缩短了开发周期

CAN总线通过CAN收发器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会在出现在RS-485网络中的现象,即当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于“死锁”状态。而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些是仅有电气协议的RS-485所无法比拟的。

3.已形成国际标准的现场总线

另外,与其它现场总线比较而言,CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线。这些也是目前 CAN总线应用于众多领域,具有强劲的市场竞争力的重要原因。

4.最有前途的现场总线之一

CAN 即控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相

5

本科生课程设计(论文) 比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。由于其良好的性能及独特的设计,CAN总线越来越受到人们的重视。它在汽车领域上的应用是最广泛的,世界上一些著名的汽车制造厂商,如BENZ(奔驰)、BMW(宝马)、PORSCHE(保时捷)、ROLLS-ROYCE(劳斯莱斯)和JAGUAR(美洲豹)等都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。同时,由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。其典型的应用协议有:SAE J1939/ISO11783、CANOpen、CANaerospace、DeviceNet、NMEA 2000等。

6

本科生课程设计(论文)

第三章 CAN智能节点的电路设计

本论文采用的CAN通信主要由微控制芯片AT89C52、CAN控制器SJAl040、CAN总线驱动器82C200、光电耦合器6N17组成。其原理是CAN数据通过82C200传输到SJAl040经AT89S52处理后再传送出去。CAN电源采用高性能的AC/DC变换器,能起到稳定电压和隔离防干扰的作用。下面我们来介绍上述各元器件在本论文中的应用。本文主节点的CAN通信结构框图及其流程图如下图2.1所示。

微控制器AT89C52CAN控制器SJA1040光隔6N137CAN总线收发器82C200CANHCANL

图2.1 CAN通信结构框图

由上图我们可以看出,主节点的CAN总线电路由由单片机AT89C52、CAN控制器SJA1040、CAN总线驱动器82C200、光电耦合器6N137组成(屏蔽电路中的高频信号),CAN数据通过82C200传输到SJA1040,经单片机89C52处理之后再传送出去。下面我们来详细介绍主节点的用到的每一个芯片的用法。

3.1 AT89C52微控制器电路

本论文的主节点采用AT89C52芯片作为微控制器,主要是应为AT89C52内部附有ISP模块。ISP(In-System Programming)是指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件。已经编程的器件也可以用ISP方式擦除或者再编程。

主节点所用的微控制器的最小系统电路图如下图2.3所示。AT89C52所用“晶振”频率在4MHz到24MHz之间,本论文在此的晶振频率由CAN总线提供,在它的两旁可用30±10pF的电容。又由于AT89S52单片机的复位为高电平复位,故让其工作状态下RST脚与地电位相等为低电平,让其复位不能起到作用,而当按下S2按键时,电容C3放电,使RST脚为高电平,从而让AT89S52单片机复位,松开时,电源给C3充电,从而让RST脚渐渐地变成低电平,从而让其脱

7

本科生课程设计(论文) 离复位状态。

图2.3 微控制器最小系统

如图2.3所示为最小系统图,下面简绍各个引脚的元器件的链接:P1.1用于控制发光二极管,用来做灯光报警用。P1.2接温度传感器DS18B20的数据脚,用于读入温度。P1.3接红外辐射的检测口,用来检测现场的是否有烟雾跟火源产生的强红外线。P1.4接烟雾传感器的检测口,用来检测现场的烟雾浓度。P1.5作为声光报警器的控制口,用来提醒该楼宇的工作管理人员或者现场活动的居民。20脚接地,40脚接电源。18、19脚接CAN总线主节点的输出总线,用来进行主从节点之间的通讯。31脚接电源端。

3.2 CAN总控制器

本系统CAN总线收发器采用PHILIPS公司生产的TJA1040芯片。TJA1040是控制器局域网CAN协议控制器和物理总线之间的接口,它主要应用在客车的高速应用速度可达1Mb/S。TJA1040为总线提供差动的发送功能为CAN控制器提供差动的接收功能完全符合ISO 11898标准,它还有优秀的EMC性能,在不上电状态下有理想的无源性能。

SJAl040主要负责把并行的数据转换成CAN的格式进行发送与接收。它本身自带发送与接收缓冲装置,而且它还具有较强的错误报警和双重滤波处理功能。SJAl040的硬件框图如图2.4所示。

8

本科生课程设计(论文) CAN总线SJA1040主控制器接口管理逻辑发送缓冲CAN核心模块接收FIFO验收滤波收发器

图2.4 SJA1040的硬件框图

可以看出,SJAl040的管理主要是由IML的逻辑接口、消息缓冲区位流处理器BSP、位时序处理逻辑BTL、接收过滤器ASP、内部振荡器及复位电路、错误管理逻辑EML等组成。CPU的命令由IML来接收,控制寄存器被定向到主可以提供警报和其所处的状态信息。IML在其CPU的控制下,将数据写入到发送消息缓冲区,发送缓冲区和位时序处理逻辑输出到CAN总线,经CAN总线处理的数据由位流处理器跟位时序处理逻辑器始终监视CAN总线,如果检测到一个有效的头时,“平安隐性控制级别”的转换过程开始收到的第一个处理器比特流处理ASP BSP P滤波器刀接收信息。只有当收到的信息识别码匹配ASP测试时,收到的消息才被写入RXFIFO或者RXB。RXFIFO中高达64字节的数据可以被缓存,数据可以被CPU读取,调制器的错误管制可被EML调制,并接收BSP错误报告,促使BSP和IML错误统计。

3.3 CAN通讯收发器

本系统采用PHILIPS公司生产的PCA82C200独立控制器,它具有完成高性能通信协议所要求的全部必要特性,通过简单连接即可完成CAN总线协议的物理层和数据链路层的所有功能。并且它与ISOll898的标准完美的兼容,其速率高达可达1Mbps,并且它能够采用斜率控制大大的降低了射频的干扰,最主要的是其在未上电节点时不会干扰总线,从而增大通信距离,并且很大程度的增强了系统瞬间的抗干扰性能,从而增加其抗干扰的能力并增强了对总线的保护。PCA82C200芯片是一种I/O设备基于内存编址的微控制器。该芯片的独立操作系统就如同是RAM一样的片内寄存器修正而实现的。但其也有缺点,那就是它仅仅支持标准的信息帧格式。PCA82C200的地址区包含信息缓冲区控制段控制段。在其初始化载入的时候可以被编程用来配置系统的通信参数。同时这个段也

9

本科生课程设计(论文) 能用来通过微控制器来控制系统上的CAN总线上的通信。

图2.6 主节点硬件电路全图

10

本科生课程设计(论文) 图2.7 主节点主图分解图1

图2.8 主节点主图分解图2

3.4 温度传感器模块

DS18B20温度传感器是DALLAS公司生产的单线数字温度传感器。其温度分辨率可达0.0625℃,被测温度的数值采用16位数字符号的扩展串行输出。它正常运行时可以采用外置电源也可以应用寄生电源,电压范围为3.0V~5.5V。它的CPU仅需要有一个端口线就能够与诸多DS18B20进行控制,所以它占用微处理器的端口极少,很方便电路的设计与实物的安装调试,简化了分布式温度传感应用,更重要的是它大大提高了系统的抗干扰性。由于上述的优点,所以它能在现场环境相当恶劣的情况下进行精确的测量。因此,它广泛的应用在对环境的温度控制、设备使用过程中的温度控制、以及各类测量温度的电子产品中。本论文设计采用了数据总线来对其进行供电,电压为5V。又应为DS18B20温度传感器的测量范围很广,可以测试-55℃到+125℃之间的温度,其中它在-10℃到+85℃的精度可以控制在±0.5℃之内。

DSl8B20可编程的分辨率为9~12位,温度转换为12位,最大值为750毫秒。应用范围包括恒温控制、工业系统、消费电子产品温度计以及任何热敏感系统。DSl8820温度传感器的电路设计如图3.1所示。本系统设置在温度大于或等于80℃时为异常(单片机P1.2口检到异常),接线如图3.1所示。

11

本科生课程设计(论文)

图3.1 DS18B20电路设计图

3.5 烟雾,红外检测模块

图3.2 烟雾,红外检测模块接线图

如图3.2所示,当没有检测到火光时,光电传感器1脚(检测口)电压约为0.5V;当光电传感器检测到火光时,1脚(检测口)电压约为4.2V。烟雾传感器没有检测到烟雾时,YW脚(检测口)电压约为0.2V,当检测到烟雾时,YW脚(检测口)电压约为3V。烟雾传感器供电电压为9V,因此烟雾检测模块要单独供电。而系统其它模块的供电电压为5V,因此要把烟雾传感器的电源负极与系统的地相连接,这样才达到了设计要求。

系统通电瞬间,单片机P1口不管有无外接电路都为高电平。为防止单片机误判断,设计单片机检测到低电平时为异常。利用光电和烟雾传感器的电压变化特性,再根据单限比较器的电压传输特性,就能有效的达到单片机检测目的并构成一个简单的电路。根据光电传感器和烟雾传感器的电压变化特性,为了让单片机

12

本科生课程设计(论文) 检测到低电平是为异常,因此规定LM339的5脚(同相输入端)和7脚(同相输入端)接入参考电压。根据烟雾、光电传感器的电压变化特性可分别确定它们参考电压为2V和3V。由上述可知,LM339的5脚和7脚电压分别为固定值2V和3V,从而计算出该模块相应电阻阻值如图3.2所示。

LM339的4脚(反相输入端)和6脚(反相输入端)分别接烟雾传感器检测口和光电传感器检测口,根据单限比较器电压传输特性可知,当烟雾传感器没有检测到烟雾时(4脚电压为0.2V小于5脚参考电压)根据LM339引脚图可知,2脚输出高电平;反之,当烟雾传感器检测到烟雾时(4脚电压为3V大于5脚参考电压)LM339的2脚输出为低电平。当光电传感器没有检测到火光时(6脚电压为0.5V小于7脚参考电压)根据LM339引脚图可知,1脚输出高电平;反之,当光电传感器检测到烟雾时(6脚电压为4.2V大于7脚参考电压)根据LM339引脚图可知,引脚1输出为低电平。

如图3.2所示,LM339的1脚和2脚分别接单片机的P1.3口和P1.4口。LM339的1脚和2脚高低电平变化可由单片机来判断,确认单片机检测到低电时为异常。又由LM339的原理我们可以知道,在使用时输出端到正电源之间必须要接一只上拉电阻,其选择范围为选3-15K,为满足本设计的要求选择了3.9K阻值作为其上拉电阻,如图3.2所示。

3.7 烟雾传感器

烟雾探测器就是一种测量现场烟雾的浓度是否超过阀值而判断是否发生火灾的检测装置,也可以说他就是一种将现场的烟雾浓度转换为具有一定对应关系的输出信号装置,它内部结构采用离子式烟雾传感器,它具有技术先进,工作稳定可靠的特点,因此被大量的运用到在各式各样的消防报警系统中,跟传统的运用气敏式电阻来测量的火灾报警器相比,无论是性能、精确度还是使用寿命都有了较强的提升。

离子式烟雾探测器的工作原理是:等效于利用两个电离室串联,构成等效于电阻串联的偏置电路;其中一个是基本不与外界相通的内电离室,另一个是跟外界连在一起的检测电离室,两个电离室中都放有一片为镅24l(AM241)的放射源,它们之间不断放出α粒子,使两室之间的气体被部分电离。一旦遇到有烟雾进入外电离室时,由于烟雾颗粒吸附一部分离子,使外室的α离子放射出来的电流减小,其效果相当于它的内部电阻阻值变大,分压电阻的电位增高。一旦烟雾的浓度超过限定的检测的值时,电位就会增高到能触发开关电路而启动报警。

该离子式烟雾探测器型号SS-168,供电电压为9V,输出触发报警电路的高电平大约为3V,因此将该触发信号接至比较器LM339的4脚作为比较器反相输入端,LM339的同相输入端5脚接参考电压为2V,当无触发信号时比较器LM339输

13

本科生课程设计(论文) 出端2脚输出高平(5V),当有触发报警信号时,比较器2脚的输出低电平(0V),从而与单片机AT89S51的管脚电压相匹配,LM339输出端2脚低电平视为异常,SS-168与单片机接法如图3.2所示。

3.8 声光报警模块

图3.5 声光报警模块

因为本系统是应用在办公室、机房等小单位的防火场所,所以采用发光二极管电路极蜂鸣电路作为报警电路。如图3-4蜂鸣器驱动电路,图中为Q1为低频小功率PNP型三极管9012,用驱动压电式交流蜂鸣器(2K)U3。三极管基极直接与单片机p1.5连接。这就构成了蜂鸣器的驱电路,工作原理:要让蜂鸣器响,必须给交变信号,为了给蜂鸣器施加交变电压,由于单片机没有专用蜂鸣器驱动器,为了让单片机产生交变驱动信号。在编程时,为让蜂鸣器产生频率稳定的声音,所以要让单片机产生频率稳,最好办法就是在单片机定时器产生驱动脉冲,设置定时器中断周期为0.25ms,中断频率为4K,只要每次进入中断后让P1.5电平取反即可以产生2KHz驱动脉冲,由于单片机驱动能力弱不足以直接驱动蜂鸣器,所以用9012放大电流电压,驱动电平低平有效。

一般发光二极管电压在1.7-3.6V之间,电流通常是5-20mA,所以5V电压不适合发光二极管直接使用,一般要串联一个电阻才可以,因此发光二极管串接一个电阻具有限流保护作用。但如果串接电阻过大,导致电流过小,发光二极管无法点亮,因此发光二极管串接一个560Ω的电阻。其接线如图3.5所示。

当温度采集模块,红外、烟雾检测模块三项电路模块中任意两种检测电路发生异常时,经过单片机AT89S52控制器的分析处理后发出声光警报信号,蜂鸣器立即蜂鸣同时发光二极管点亮。当三项检测电路中小于两项发生异常时,蜂鸣器立即停止蜂鸣同时发光二极管熄灭。当把手动控制模块中控制按键按下时,系统立即发出声光报警,直到按下复位按键时声光报警才停止。

14

本科生课程设计(论文) 点描述了温度传感器DS18B20,烟雾传感器SS-168和光电红外传感器ST178的用法跟在本设计中的运用。本系统具有电路简单,功能强大,检测快速等特点。其电路连接如下图3.6所示:

图3.6 从节点设计的总电路图

15

本科生课程设计(论文)

图3.7 从节点总图分解图(从节点设计总图的下半部分)

16

本科生课程设计(论文) 第4章 火灾系统的软件设计

本章工作主要围绕基于CAN总线的楼宇火灾报警系统的软件设计展开。首先我们结合第一章节中的第三小节中所描述的系统整体设计所要完成的功能,确定各部分模块功能,设计系统整体软件开发流程图。重点完成基于CAN总线的楼宇火灾报警系统的整体软件设计,即主节点与从节点的所有软件设计,同时针对各个部分要实现的功能做出具体的分析与简绍,最后设计出各个功能模块的软件程序。

4.1 系统整体软件设计

本论文的整体软件设计主要结合各硬件电路图完成,主节点对各从节点的进行实时监测,并对负责处理从各从节点对现场所采集到的数据进行传送,同时主节点也控制声光报警器是否工作等。为了确保本系统能够正常长久的运行,同时也为了断电后下次能正常的工作,所以在给本系统上电时,必须对本系统的主节点与从节点初始化。为了保证本系统在正常的情况下能够及时准确的能够往从节点接收传来的现场采集信号传送到主节点。要定时从主节点发送信号,根据从节点的ID号,验证它是否工作正常。如果主节点在一段时间没有接收到从节点的ID号,就说明该从节点出现了错误,提醒工作人员尽快排除故障。在每个节点的正常工作条件下,每个从节点将采集现场环境数据信息被发送到主节点,主节点确定从节点的数据信号是否超过了传感器阈值,如果不超过阈值的,则返回到继续监测从节点的信息,如果有一个从节点的数据信息超过阈值时,则发出火灾报警。综上所述,系统软件设计的主要工作是从主从节点的信号传输来进行开展。其硬件的整体设计框图如下4.1所示。

烟雾(SS-168)、红外传感器(ST178)电路温度传感器DS18B20单片机CAN总线收发器PCA82C200光隔6N137CAN控制器SJA1040声光报警器声光报警器单片机

图4.1 硬件整体设计框图

17

本科生课程设计(论文) 4.2 主节点软件设计

结合上所所设计出的硬件电路图,为保证各个模块的正常工作,主节点的整体软件设计流程图如下图4.2所示。

开始初始化主节点单片机否从节点接收到的信息是否有异常是启动声光报警器报警

图4.2 主节点整体软件流程图

从上图我们可以得到,当启动主节点是应对其进行初始化,以免别的因素而影响本系统的运行。让后让主节点来处理并分析从各个从节点传上来的现场信息。如果判断出某一个从节点出现异常情况时,就触发光电报警系统报警来提醒该楼宇的管理人员或者现场工作人员。

4.2. CAN控制器的初始化

SJA1040的初始化有3种方式:一是上电复位,二是硬件复位,三是软件复位,即通过向CAN控制器SJA1000模式寄存器写0x01,让其进入复位模式,然后分别对SJA1040的时钟分频寄存器、错误报警限额寄存器、中断使能寄存器、接收代码和接收屏蔽寄存器、总线时序寄存器和输出控制寄存器设置,最后向模式寄存器写0x08,进入正常工作模式。在对它进行复位的时候,因为其内部的寄存

18

本科生课程设计(论文) 器仅能在此期间进行写访问,所以在对这些寄存器初始化之前,必须保证系统已经进入复位状态。SJA1040的初始化流程图如下图4.3所示。

开始设置BTR0、BTR1进入复位状态设置OCR返回当前工作模式使SJA1040为增强CAN模式结束

图4.3 SJA1040初始化流程图

4.2.2 信号发送模块

SJA1040根据CAN总线的协议能够自动完成报文的发送。发送时我们唯一要做的就是将要发的信息或者数据按特定的格式组成为一帧报文,从AT89C52中发送到SJAl040的缓冲区中,然后通过发送请求令符来启动SJAl040发送用以完成任务。有一点很重要,那就是报文在发送到SJAl040的发送缓冲区之前,得做下判断,检测它是否发送完成,如果没有发送成功,则其本身的错误寄存器会自动加1,并重新进行发送。SJAl040子程序报文发送流程图如下图4.4。

19

本科生课程设计(论文) 开始请求置位发送发送信息否判断是否发送完?是结束

图4.4 SJA1040子程序发送流程图

发送信息识别码发送数据字节4.2.3 信号接收模块

启动中断无验证主节点目标是否是本从节点是是否有外部中断依次读出接收FIFO中内存有发现接受中断释放接收缓冲器否进入中断主程序打开SJA1040接受中断关闭SJA1040接受中断

图4.5 SJA1040接收流程图

结束

20

本科生课程设计(论文) 如上图4.5为CAN总线接收子程序的流程图;应为在我设计的这个系统中,从节点的报文什么时候发送到此处是不知道的,所以如上所示,在此处采用了中断接收的方法,可以大大的减少系统寻址的时间。如果CAN总线的信号接收模块还担任着接收报文的情况时,那么其接收子程序就会自动的负责该处主节点的报文接收,但是在接收时,我们必须得从SJAl040的接收缓冲模块中读出数据,组成一帧报文这样才能通过这种中断方式来接收报文。如果在中断使能寄存器IER操作可以接收中断使能,那么当接收FIFO中有数据的,它会产生一个中断,以此来达到启动接收程序的目的。

4.3 从节点软件设计

结合上所所设计出的硬件电路图,为保证各个模块的正常工作,从节点的整体软件设计流程图如下图4.7所示。

读温度子程序DS18B20初始化CAN总线初始化温度是否大于或等于80 是否否烟光传感器是否检测到异常烟光传感器是否检测到异常是否烟光传感器是否检测到异常是是声光报警

图4.7 从节点总体软件流程图

在其处在正常的工作状态时,从节点会将自己的ID号码发送到主节点上,并将检测到的温度、烟雾、红外等信号发送到主节点上。当发生异常状态时,就触发灯光报警装置,同时也将检测到的异常数据上传到主节点。如果没有异常发生,

21

本科生课程设计(论文) 则一直保持从节点到主节点之间发送相关信息。

4.4温度传感器的软件设计

本系统采用DALLAS公司生产的DSl8B20温度传感器。此传感器为单总线传感器,在使用时得先对其进行初始化,然后读取温度经所在的单片机将其传送到CAN总线,经处理判断其数值是否超出阀值,如果是就启动声光报警,并经过CAN总线反馈回其所在的单片机让其也执行声光报警装置,若没有超过阀值则继续读取其温度值。从而达到所需的要求。其程序流程图如图4.8所示。

读取温度命令初始化温度传感器开始否通过从节点处单片机传到主节点是执行声光报警是否超过阀值是执行声光报警是结束

图4.8 温度传感器工作流程图

22

本科生课程设计(论文)

第5章 总结

23

本科生课程设计(论文) 参考文献

[1] 章欢.基于CAN总线的火灾报警系统的设计与实现[D].武汉:武汉大学,2008.

[2] 周凤余,鲁守银,李贻斌等.CAN总线系统智能节点设计与实现[J].微计算机信息.1999

[5] 高强,董力川,朱宁.嵌入式CAN总线控制系统设计[J].自动化技术与应用.2002.

[6] 欧伟明,何静,凌云,刘剑.单片机原理与应用系统设计[J].电子工业出版社.2009.(7):20~38.

[7] 范维澄,王清安等.火灾学简明教程[M].合肥:中国科学技术大学出版社.1995.

[8] 陈涛,袁宏永等.火灾探测技术研究的展望[J].火灾科学.2001,10(2):108~112.

[10] 顾洪军等.工业企业网与现场总线技术及应用[M].北京:人民邮电出版社.2002.

[11] 李丽敏,玄子玉,张玲玉.单片机控制的火灾报警控制器[J].自动化技术与应用,2008,(03).

[12] DALLAS公司.DS18B20数据手册[Z].

[13] 余国卫,谭延军.基于AT89S52单片机的火灾自动报警系统[J].微处理机,2006,(05)

[15] 姜久超.单片机在火灾自动报警控制器中的应用[J].河北工程技术高等专科学校学报,1995,(Z2)

[16] 陈倬.单片机在火灾报警控制系统中的应用[J].科技资讯,2009,(22) [17] 胡向东.传感器与检测技术[M].机械工业出版社,2009.2.

[18] 楼然苗,李光飞.单片机课程设计指导[M].北京航空航天大学出版社,2007,7.55-64.

24

本科生课程设计(论文) 附 录

(1)主节点代码

//主节点单片机程序 #include #include\"WG.h\" //#include\"DS18B20'h\" #include\"SJA1040gai.h\" #define key P2^2

sbit beep = P1^5; //蜂鸣器 char table1[]=\"Message is sending\"; char table2[]=\"Sengding succeded\"; char table3[]=\"Receiveing succeded\"; //定义BUF数据结构 /*struct BASICCAN_BUFstruct {

unsigned char FrameID_H;//标识符高八位(信息功能2加节点号6) unsigned char FrameLENTH;//数据长度码

unsigned char FrameKIND;//RTR位(1为远程帧,0为数据帧) unsigned char FrameID_L3;//低3位(信息格式) unsigned char FrameData;//数据 }

BASICCAN_FRAME,receive_BUF,send_BUF;*/ /*char temp_buffer[2]; /*char temp_buffer[3]; void read_temp() {

init_ds18B20();

temp_buffer[0]=read_byte(); }

//温度缓冲 //烟光缓冲

temp_buffer[1]=read_byte(); }

25

本科生课程设计(论文) } */ void send() {

uchar Data,sdat; uchar i,j; if(!key) } }

void main() {

init_ds SS-167@st-178; temp_buffer[0]=read_byte(); temp_buffer[1]=read_byte();

}

}

} / void send() {

uchar Data,sdat; uchar i,j; if(!key) } }

void main() {

init_SJA1040NO1(); //void read_temp(); //display_temp(); while(1) { send(); receive(); }

26

本科生课程设计(论文) }

(2)从节点代码

//从节点单片机程序 #include #include #define uint unsigned int #define uchar unsigned char #define WENDU 40

sbit deng = P1^1; //发光二极管 sbit DQ = P1^2; //温度传送数据IO口 sbit guang = P1^3; //光电传感器检测口 sbit yanwu = P1^4; //烟雾传感器检测口 sbit beep = P1^5; //蜂鸣器

/***********ds18b20子程序*************************/ /***********ds18b20延迟子函数(晶振12MHz )*******/ void delay_18B20(unsigned int i) {

while(i--); }

/**********ds18b20初始化函数**********************/ void Init_DS18B20(void) { 败 }

27

unsigned char x=0;

DQ = 1; //DQ复位 delay_18B20(8); //稍做延时

DQ = 0; //单片机将DQ拉低 delay_18B20(80); //精确延时 大于 480us DQ = 1; //拉高总线 delay_18B20(14);

x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失 delay_18B20(20);

本科生课程设计(论文) /**************读取ds18b20当前温度************/ void ReadTemp(void) { }

/*延时子程序*/ void mdelay(uint delay) {

uint i;

{for(i=0;i<20;i++) //1ms延时.

{;}

}

for(;delay>0;delay--) } main() {

Init_DS18B20( ) ; //DS18B20初始化 {

while(1)

unsigned char a=0; unsigned char b=0; unsigned char t=0; Init_DS18B20();

WriteOneChar(0xCC); // 跳过读序号列号的操作 WriteOneChar(0x44); // 启动温度转换

delay_18B20(100); // this message is wery important Init_DS18B20();

WriteOneChar(0xCC); //跳过读序号列号的操作

WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就delay_18B20(100);

a=ReadOneChar(); //读取温度值低位 b=ReadOneChar();

//读取温度值高位

temp_value=b<<4; //左移四位,扩大16倍,变为一个字节的高四位 temp_value+=(a&0xf0)>>4;//取温度值的地位的高四位,右移四位后与温度的

是温度

高四位相加得到温度值

28

本科生课程设计(论文) if(((temp_value>=WENDU)&&(yanwu==0))||((temp_value>=WENDU)&&(guang==0))||((guang==0)&&(yanwu==0))||((temp_value>=WENDU)&&(yanwu==0)&&(guang==0)))||( anjian==0) { biaozhi=1; }

else biaozhi=0; } }

void main() {

init_SJA1040NO1(); //void read_temp(); //display_temp(); while(1) { send(); receive(); } }

29

因篇幅问题不能全部显示,请点此查看更多更全内容

Top