无人值守机房环境监控_第1页
无人值守机房环境监控_第2页
无人值守机房环境监控_第3页
无人值守机房环境监控_第4页
无人值守机房环境监控_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、无人值守机房环境监控基于SmartARM2300姓名 张展威专业 信息工程所属部门 嵌入式事业部指导工程师 刘伟云1项目背景目前许多机房,如电信部门、政府机关、学校等单位的机房,不得不采用24小时专人值班的方式,定时巡查机房环境设备,使得不仅管理人员工作繁重,而且往往当出现故障时也往往不能及时排除,对事故发生的时间及责任也无科学的管理,更缺乏对已发生的故障作全面的分析数据,使得问题不能得到完善的解决。尤其目前国内普遍缺乏机房环境设备的专业管理人员,这对机房的安全运行无疑又是一个不利因素。因此,针对机房监控的发展现状及应用需求,本毕业设计要求设计一套基于SmartARM2300的“机房无人值守环

2、境监控”系统。2概述本系统实现了机房环境数据的自动采集与存储、指标超标报警、门锁和风扇的自动控制等功能,并可以通过以太网将环境指标等数据发送到上位机进行实时显示,也可通过上位机对机房内的风扇、门锁、报警灯等进行手动开启。当环境参数超过用户设定的阀值时(如温度超过60C),监控系统就会发出声音报警并自动对其进行处理(如开启风扇);当用于防盗的红外传感器探测到有人进入指定区域时,就会发出光报警信号,而用于门锁自动控制的红外传感器检测到门外有人时,就会自动打开门锁。同时监控主机还将系统的各种参数或运行状态,如系统时间、SD卡状态、门锁状态、风扇状态、警笛和警灯状态等发送到上位机。3设计特色系统引入传

3、感器控制块(SCB)链表,通过对SCB链表的管理,实现了对传感器模块的动态管理,即采集环境指标的传感器模块可以根据实际的应用需要,动态接入监控系统或从系统中移除。系统可以管理多至255个传感器模块。4系统示意图5无人值守机房环境监控外围电路的选择与设计核心模块的设计与实现系统任务分配上位机设计完成情况设计总结6硬件电路的选择与设计分布式传感器通讯总线的选择温度传感器的选择红外传感器的选择系统输出控制电路的设计存储介质的选择返回7分布式传感器通讯总线的选择根据机房的建筑结构特征以及环境指标数据采集的应用特点可知,采集环境指标的传感器必须采用分布式安置,如果传感器模块与监控主机之间的通信采用并行总

4、线的话将使得通信线路变得复杂且成本较高,因此,采用串行通信总线将是本系统的最佳选择。LPC2300系列ARM具有4个符合16C550工业标准的异步串行口(UART03),并且LPC2300系列ARM的UART具有16字节的收发FIFO,接收FIFO的触发点可设置为1、4、8和14字节,所以其UART非常适合需要传输批量字节的应用场合。8分布式传感器通讯总线的选择但在工业控制等环境中,常会有电气噪声干扰传输线路,使用RS-232 通讯时经常因外界的电气干扰而导致信号传输错误;另外,RS-232 通讯的最大传输距离在不增加缓冲器的情况下只可以达到15 米。而RS-422/485标准与RS-232

5、标准不一样,数据信号采用差分传输方式(Differential Driver Mode),完全可以抑制来自传输线上的共模干扰。通过简单的协议转换电路,SmartARM2300工控平台的URAT接口便可实现RS-485通信。9RS-232 至RS-485的无源转换电路MAX485是通过两个引脚RE(2脚)和DE(3脚)来控制数据的输入和输出。当RE为低电平时,MAX485数据输入有效;当DE为高电平时,MAX485数据输出有效。在半双工使用中,通常可以将这两个脚直接相连。如图,总线空闲时,UAUB,总线处于传输“1”的状态,且Q1导通,MAX485处于接收状态;当发送数据“0”或“起始信号”时,

6、Q1截止,MAX485输出数据“0”有效(即:UA4) /* 每5秒遍历一次 */ GucDelaySec=0; /* 秒延时清零 */ sensorQuery(); /* 遍历所有在线SCB */ if(frameReceive(pReFrame)=1) /* 监听帧接收 */ commManage(pReFrame); /* 处理收到的一帧数据*/ OSTimeDly(1); /* 延时一个tick */ .TASK1主要完成RS-485总线的通信管理,包括读取传感器模块数据和处理接收帧。32SCB链表的遍历sensorQuery() SCB链表的遍历流程图33帧数据处理commManag

7、e(pReFrame)34传感器注册与注销流程35文件系统管理任务TASK2TASK2每隔10秒钟,就进行一次相关环境指标数据记录,完成对SD卡数据存储管理。TASK2流程如右图所示。36环境指标数据的存储格式采集时间2008-03-14 21:35:10001: 024.250002: 024.000003: 通信超时!2008-03-14 21:35:15001: 024.250002: 通信超时!003: 023.875004: 读取中. . . .传感器地址:具体数据或状态yyyy:表示四位年份mmdd:表示月份和日期hh:表示小时为加快数据查询和下载时的文件查找,本系统将传感器采集的

8、数据集中保存于yyyymmddhh.txt的文件中。数据记录格式如下:37环境指标数据的存储格式2008-03-14 21:35:10001: 024.250002: 024.000003: 通信超时!2008-03-14 21:35:20001: 024.250002: 通信超时!003: 023.875004: 读取中. . . .按10个节点,每10秒采集一次数据计算,1天最大数据量:124360010 (1014+19)B=1.31MB那么不删除任何记录的情况下,1GB的SD卡则可以存储781.4天的数据。为加快数据查询和下载时的文件查找,本系统将传感器采集的数据集中保存于yyyymm

9、ddhh.txt的文件中。数据记录格式如下:38系统输出控制任务TASK36由于系统输出控制任务不多,所以每路输出都采用一个单独的一个任务来完成。每一路的输出都采用了自动与手动相结合的控制方式,如门锁的开启控制由(GbDoorAuto | GbDoorManual)的逻辑运算结果决定,这样就可以在特殊情况下(如门必须保持恒开等),通过上位机进行强制开门操作。39系统输出控制任务示例void TASK4 (void *pdata) pdata = pdata; while (1) while(GbDoorARE=0)|(GbDoorMRE=0) /* 等待读允许 */ OSTimeDly(1);

10、 GbDoorAWE=0; /* 禁写 GbDoorAuto */ GbDoorMWE=0; /* 禁写 GbDoorManual */ GbDoor=(BOOLEAN)(GbDoorAuto|GbDoorManual); if(GbDoor=1) GpioSet(DOOR); /* 开启门锁 */ if(GuiDoorDlySec5) /* 开门控制信号保持5s */ GbDoorAuto=0; else GpioClr(DOOR); /* 关闭门锁 */ GbDoorAWE=1; /* 允许写 GbDoorAuto */ GbDoorMWE=1; /* 允许写 GbDoorManual*/

11、 OSTimeDly(OS_TICKS_PER_SEC / 4); 门锁输出控制40实时时钟刷新任务TASK7. while (1) while (GbRtcTimeWE = 0) /* 等待写使能 */ OSTimeDly (1); GbRtcTimeRE = 0; /* 禁止读使能 */ while (RTCRead(RTC0, &realTime, READ_TIME, NULL) != OPERATE_SUCCESS) OSTimeDly (1); /* 刷新realTime */ GbRtcTimeRE = 1; /* 允许读使能 */ OSTimeDly(OS_TICKS_PER_

12、SEC / 4);.41GPIO中断服务函数_inline void GPIO_ISR(void) if(IO_INT_STAT & 0 x01) /* 判断P0是否有中断挂起 */ if(IO0IntStatR&(112) IO0IntClr=IO0IntClr|(112); /* 清除P0.12中断标志 */ GuiLampDlySec=0; GbLampAuto=1; /* 检测到来人,发出光报警 */ if (IO0IntStatR&(113) IO0IntClr=IO0IntClr|(1 0) /* 读取到数据 */ j = (uint)(ul + 6); /* 前6Byte是“前导

13、”字符 */ for (i = 6; i j; i+) if (pucTcpSendBufi = 0 x0D) /* 将rn转换成 RN */ pucTcpSendBufi = R; else if (pucTcpSendBufi = 0 x0A) pucTcpSendBufi = N; pucTcpSendBufi+ = 0 x0D; pucTcpSendBufi = 0 x0A; send(ucLinkNo, (uint8 *)(&pucTcpSendBuf0), /* 向上位机返回数据 */ uiLineStrSizeof(uchar *)pucTcpSendBuf), 0); offs

14、et += ul; /* 更新偏移量 */ while (!(fp); /* 判断是否读到文件末尾 */ (fp); /* 关闭文件 */ 下位机将数据打包后再发送47下载文件时的加速实现/* String str为上位机接收到的一行字符串 */.str=str.substring(6).replaceAll(RN, rn); if(str.charAt(0)=N) str=str.substring(1); if(str.charAt(str.length()-1)=R) str=str.substring(0, (str.length()-2)+rn; .上位机对接收到的一行字符串进行解包

15、48实现的基本技术指标实现传感器对环境指标的分布式采集,监控主机可以同时管理多达255个传感器模块,温度采集采用LM75A数字温度传感器,精度达到0.125;实现红外探测。探测距离大于等于米,来人检测反应时间小于等于0.8秒;实现声光报警。检测到来人时在0.5秒内发出光报警。温度超标值可通过上位机进行设置和更改,当温度超标时可在5秒内作出反应,发出声音报警和开启风扇信号,不会出现误报的情况;实现了自动门锁控制;实现与用户中心的Java交互。通信协议使用TCP ,Java界面使用Java Applet编写,能实时显示温度,温度显示刷新频率不小于2次每分钟。环境指标超标时将用红色底纹提示。系统软件

16、结构清晰、代码优化。编写的下位机代码要求遵守公司代码规范。返回49实现的扩展技术指标现场控制板能通过存储介质SD卡将传感器采集回来的数据以yyyymmddhh.txt命名的文件进行保存,其中yyyymmdd表示具体的日期,hh表示记录的时间(小时),能连续保存连续15天以上的数据(以10个节点计);可以通过上位机进行查询和下载历史环境指标数据,被下载过的文件自动删除;系统整体性能稳定,连续运行不死机。50实现的其他技术指标系统实现了对传感器模块的动态管理,传感器模块可以通过发送“注册帧”接入监控系统,通过发送“注销帧”实现从监控系统中移除;可以通过上位机校准监控系统的实时时钟;上位机可以设置传感器的上下阀值,并切换传感器模块的工作状态;监控系统现场检测SD卡设备的状态;监控系统采用开放性设计,兼容将来的其他智能传感器。无论是数据采集型传感器还是输出开关量的传感器,只要传感器模块按照本系统定义的通信帧格式便可通过RS-485总线接入监控系统;系统可以管理多至255个传感器模块。51设计总结GPIO只能产生边沿中断,无电平中断;P0和P2的中断通道与外部中断3相同;使用GPIO中断时,GPIO须设为输入;GPIO中断服务函数(EINT3服务函数)结束时必须调用EINTISR(EINT3)以清除外部中断标志,否则在接有S

温馨提示

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

最新文档

评论

0/150

提交评论