专业组_先进控制类_西安电子科技大学_ 基于MSP430和Zigbee技术的煤矿综合监控系统设计与实现_图文.doc
论文格式 *********************************************************** 注意此为封面格式 *********************************************************** 2011-2012德州仪器C2000及MCU创新设计大赛 项目报告 题目基于MSP430和Zigbee技术的煤矿综合监控系统设计与实现 学校西安电子科技大学 指导教师谢楷 组别专业组 应用类别先进控制类 平台 MSP430 参赛队成员名单含每人的邮箱地址,用于建立人才库 马建云研究生在读西安电子科技大学 刘鑫研究生在读西安电子科技大学 马亚男研究生在读西安电子科技大学 视频文件观看地址若未拍摄,请注明 http// 邮寄地址和收件人联系方式快递发送,请不要使用邮政信箱地址 联系人 马建云 E-Mail 邮编 710071 手机号 158******** 备用联系电话 153******** 刘鑫 详细地址 陕西省西安市太白南路2号西安电子科技大学 ******************************************************************** 注意此为正文起始格式 正文和附录中均不得大段复制源代码和原理图,只允许能充分体现创新方法或关键设计的少量源代码示例和原理图,滥用源代码和原理图的,评委有权扣分。 正文附录不得超过20页 ********************************************************************* 题目基于MSP430和Zigbee技术的煤矿综合监控系统设计与实现 摘要中英文 设计了一种基于Zigbee无线传感器网络和Web Server的煤矿生产综合监控系统,具有井下环境参数监测,人员定位,实时短消息通信和设备远程控制等功能。 A new coal-mine monitoring system based on zigbee wireless sensor network and web server is designed, it has many functions such as security monitoring for underground coal- mine environment, minewoker positioning, real-time short message and audio communication and remote control. 引言 煤矿生产安全一直是国家和人民群众关注的焦点,针对井下煤矿生产所面临的易腐蚀,易爆,电磁环境恶劣,灾后人员搜救困难等情况,采取新的技术手段来提高煤矿安全生产监控,提高灾后救援效率具有非常重要的意义。Zigbee作为新兴的无线通信网络技术,具有高容量,高延展性,高可靠性等优点,非常适合应用于复杂地理环境下的监控领域。因此,开发设计了一套基于Zigbee网状网结构的井下综合监控系统。本系统可以实时监测井下各个节点处的传感器数据和整个网络中人员分布的位置信息;对设备进行远程控制,如关闭电源,打开排气阀门等;在发生紧急情况时,工作人员可以通过临近节点上的报警装置向监控中 心发送报警信号;整个网络中的各个节点在接入嵌入式平台时可以和监控中心实现实时短消息通信。而且在突发情况中,节点设备遭到破坏时,可以利用Zigbee 网络的自组织特性,通过人工布置节点实现迅速组网,重新恢复整个系统的功能。 系统方案 本系统主要由Zigbee无线传感 器网络,基于ARM-WINCE平台的 嵌入式网关,本地上位机监控终端和 远程Internet监控终端四部分组成。 无线传感器网络由网络协调器, 定位参考节点具有网络路由和终端 功能,待定位的移动盲节点组成。 系统工作时,协调器上电负责网络初 始化和建网,定位参考节点和移动盲 节点上电后自动搜寻并加入网络,这 样就完成了Zigbee网络的构建。图1系统总体框图 其中待定位的移动盲节点可以和ARM-WINCE平台通过串口相连接构成手持移动终端,实时显示用户当前的位置和环境参数信息。 嵌入式网关由Zigbee网络协调器与ARM-WINCE平台通过串口相连接构成,是本地监控中心、远程Internet监控中心与Zigbee无线传感器网络进行数据传输的枢纽。系统工作时,它将接收到子节点数据进行校正、融合后,一方面通过Lan接口与远程监控中心进行通信;另一方面通过串口与本地监控中心进行通信。 本地上位机软件采用Qt开发,选择相应平台的编译工具可以快速移植到Linux, Wince等嵌入式操作系统平台上,可以实时监控到整个的网络的环境参数和人员分布信息。 远程客户端通过登录网页的形式访问移植有web server的嵌入式网关从而 实现井下环境的远程监控功能。用户可以根据实际情况选择本地监控模式或基于Internet的远程监控模式。 1.系统硬件设计 系统硬件电路主要由五部分组成,包括无线射频模块,MSP430F149控制器模块,传感器模块,电源管理模块, ARM-WINCE平台。所有Zigbee网络节点设备都具有无线射频模块,传感器模块,电源管理模块和MSP430F149控制器模块;手持移动终端具有所有硬件模块。也可以根据需要由以上模块组成具有特定功能的Zigbee设备,这样可以提高整个Zigbee网络的灵活性和适应性。 图2 手持移动终端硬件结构 1.1无线射频模块 无线射频模块采用TI-CHIPCON公司的CC2430/1协调器和定位参考节点采用CC2430,待定位的移动盲节点采用CC2431芯片。CC2431比CC2430只多了一个基于RSSI的硬件定位引擎。可以根据接收信号强度与已知参考节点位置准确计算出自己的位置坐标,从而实现定位功能。CC2430/1内部集成了增强型8051和RF收发模块,因此只需要很少的外围元器件的配合就能完成数据的收发。 图3 CC2430应用电路 1.2 MSP430控制器模块 德州仪器TI的超低功率16位RISC混合信号处理器的MSP430产品系列为电池供电测量应用提供了最终解决方案。作为混合信号和数字技术的领导者,TI 创新生产的 MSP430,使系统设计人员能够在保持独一无二的低功率的同时同步连接至模拟信号、传感器和数字组件。MSP430系列单片机的一些先进特性包括 1超低功率架构延长了电池的使用寿命。 2高性能模拟器件精确测量的理想选择。 3先进的16位RISC CPU使得新的应用仅需一段代码即可实现。 4系统内可编程闪存允许更改代码、更新字段和记录数据。 我们使用的MSP430F149型单片机是MSP430X1XX系列中集成了丰富的外设资源,性价比很高的一款单片机。而MSP430F149内部更是集成了12-Bit模数转换器,内部温度传感器,16位定时器A和定时器B,串行异步通信端口UART0和UART1软件可选择UART/SPI模式,硬件乘法器,多达48位的通用IO端口,60KB的FLASH 程序空间和2KB的数据空间等诸多外设。控制器模块原理图如下所示 图4 MSP430F149控制器模块原理图 1.3电源管理模块 本系统电路设计了2种电源供电方式,5V直流电源供电和3V电池供电。通过LMlll7-3.3把5V的直流电转化为3.3V。此外还有3V电池电源输入口。考虑到本系统中定位参考节点安装位置的固定性和待定位盲节点设备的移动性,使用时根据各个设备的特点和实际使用时的现场环境,可以通过SW-SPDT拨刀开关在两种供电方式之间进行切换。对于待定位的移动盲节点设备如安装在矿帽上和携带在身上的节点设备,考虑到其移动性,主要采用电池供电。而对于系统中安装位置固定的参考节点设备,在工作时不需要移动,可以选择直流电供电并同时给电池充电,以减少更换电池带来的操作不便,当发生意外情况如矿难事故,直流供电线路遭到破坏时,可以转换为电池供电,从而保证系统的正常运行。整个系统的供电方式都采用低电压,小电流供电方式,对于在矿井应用中,保证设备本身的本安防爆性能非常重要。在线仿真器也可以给节点设备供电。 1.4传感器模块 MSP430F149的AD转换器使其非常适合于做传感器控制芯片使用。目前本系统已经实现了DS18B20温度传感器模块,MQ-2甲烷传感器模块,其他传感器接口已经留出,方便以后进行扩展。 1.4.1 DS18B20温度传感器模块 DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75 ms 和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入 DS18B20的信息仅需要一根口线单线接口读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。 1.4.2 MQ-2气体传感器模块 本系统采用MQ-2电阻式烟雾传感器,设计了一种技术水平较好的烟雾报警器。这种传感器具有灵敏度高、响应快、抗干扰能力强等优点,而且价格低廉,使用寿命长,是一种结构简单、性能稳定、使用方便、智能化的烟雾报警器。 MQ-2在较宽的浓度范围内对可燃气体液化气、丙烷、氢气,甲烷等有良好的较高灵敏度,近年来,在医疗、空气净化、家用燃气和热水等方面,得到了广泛应用。 MQ-2传感器对应不同的气体及其不同的浓度都有一个相对应的电阻值,传感器的电导率随空气中可燃气体浓度的增加而增大,当气体浓度超过设定的气体浓度时,就会输出一个低电平,通过单片机接收进行相应处理。由于MQ-2气体传感器需要采用5.5V电源供电,而本系统中只存在3.3V或3V电压,因此,本系统采用PT1301将3.3V转为5.5V。 1.5 RS232串口模块 MAX3232是一款3.0V5.5V供电、低功率的RS232收发器,支持高达1Mbps 的通信速率,仅需要四个0.1uF的电容作为外部元件即能工作。MSP430F149片内集成了两个UART端口,这里我们将两个UART0端口都使用了,MCU通过UTXD0P3.4向Zigbee无线模块发送数据,通过URXD0P3.5接收来自Zigbee 无线模块的数据。MCU通过UTXD1P3.6向PC上位机发送数据,通过URXD1P3.7接收来PC机上位机的数据。在TX线上有一个绿色LED,RX线上有一个红色LED。当MCU通过MAX3232与PC机通信时,两个LED会根据通信线上电平的变化而闪烁发光,指示通信的进行。 2.系统软件设计 本系统的软件设计主要包括三部分,基于TI开放源代码的Zigbee协议栈 Z-Stack的开发,本地上位机监控软件和远程Internet监控终端开发。 2.1 Z-Stack开发 在Zigbee无线传感器网络中,根据不同的网络节点设备在网络中所承担的功能,基于Z-Stack的开发主要包括协调器节点程序和执行各种功能的终端节点程序开发。在Z-Stack中协调器主要完成无线传感器网络的构建和配置,在网络建好后只负责井下传感器网络和井上监控软件之间的数据转发。终端节点主要完成定位和数据采集等功能的实现。 2.1.1定位实现 根据不同节点在Zigbee无线定位网络中所承当的功能,Zigbee无线定位网络的节点设备可分为Zigbee协调器Location Dongle,参考节点Reference Nodes和待定位的移动盲节点Blind Nodes。 2.1.1.1 协调器定位设计 Zigbee无线定位网络的协调器与PC机通过RS232串口相连接,它在系统中有着至关重要的作用,它不但负责建立和管理网络,包括节点加入和退出网络的处理,对网络各种信息的管理;而且是Zigbee网络与PC机之间进行数据转发的枢纽,一方面将上位机监控软件发送的各个参考节点和盲节点的配置数据包,命令数据包转发给相应的节点;另一方面将接收的各个节点的各种数据包转发给上位机监控软件。当协调器设备上电组建一个Zigbee网络时,主要包括信道扫描和网络初始化两个过程,协调器工作流程如图4.1所示 图5 协调器建网和子节点入网流程 2.1.1.2参考节点定位设计 参考节点是Zigbee无线定位系统中已知坐标的静态节点,可以担当Zigbee 网络的路由器,它的任务主要是给待定位的移动盲节点提供包含自身位置X,Y 坐标和RSSI 值的信息包。一个定位区域通常具有3-8个参考节点,参考节点工作流程如图4.2所示 图6 参考节点工作流程 图7 查看参看节点配置 2.1.1.3盲节点定位设计 Zigbee 盲节点是Zigbee 定位系统中的移动节点,可以担当Zigbee 网络的路由器,本系统待采用基于RSSI接受信号强度的定位方法,已知发射节点的发射信号强度,接收节点根据收到的信号强度计算出信号的传播损耗,然后利用理论和经验模型将传播损耗转化为距离。待定位的移动盲节点收集到临近参考节点一跳范围内发送的RSSI 值和其X,Y 坐标值后,将其输入到芯片内的定位引擎,再利用三边测量的方法计算出待定位移动盲节点的位置信息。盲节点的配置和定位工作流程与定位参考节点类似。 1、 CC2431定位引擎 CC2431的硬件定位引擎与软件定位方法相比具有定位速度快,精度高,不占 用处理器时间,该定位引擎的主要特点如下定位参考节点3-16个;定位分辨率0.25m ;定位耗时50us ;定位误差2-5m ;定位范围64m*64m 。 2、 三边测量法 三边测量的方法如图4.5所示已知三个参考节点的坐标分别为AA X ,A Y ,BB X ,B Y ,CC X ,C Y ,以及它们到移动盲节点D 的距离分别为A d ,B d ,C d ,计算节点D 的坐标X ,Y ,节点D 在分别以A d ,B d ,C d 为半径的 圆的交点处。那么存在下列方程组⎪⎪ ⎩ ⎪⎪⎨⎧------C C C B B A A A d Y Y X X d Y Y X X d Y Y X X 222 2B 22 由上式可得DX,Y的坐标为 ⎥⎥⎦ ⎤ ⎢⎢⎣⎡------⎥⎦ ⎤⎢⎣⎡----⎥⎦⎤⎢⎣⎡-2222222222221 B A 2 222X b C C B C B A C C A C A C B C C A C d d Y Y X X d d Y Y X X Y Y X X Y Y X X Y 2.1.2节点传感器程序设计 图9节点传感器数据采集流程 网络终端节点在上电加入网络后会周期性触发传感器数据采集事件,考虑到系统的低功耗,在传感器数据采集完成时,节点会进入可唤醒的低功耗模式。因 此,本系统对终端节点的传感器数据采集设计了周期采集和睡眠两种工作模式。在周期采集模式中,网络中的终端节点按照系统设定的时间间隔对传感器数据进行采集和上传,当采集和发送完成以后,终端节点将转入睡眠模式。在睡眠模式中,若终端节点侦听到无线数据,则对接收到的数据进行解析、处理。若终端节点未侦听到无线数据.则判断睡眠定时器是否溢出,若睡眠定时器未溢出,则继续睡眠侦听;反之,定时器溢出则触发一次传感器数据采集事件。本系统目前可接入八路传感器模块,在上位机监控软件中可以对这八路传感器临界报警值进行设置,当超过报警值时,软件会给监控人员相应的提示,并向相应的节点发送拉响警报和点亮报警指示灯的控制命令,提醒工作人员及时解决安全隐患,防患于未然。而且,在传感器数据采集处理中我们还加入了预判断模式,当采集到的传感器数据还没有超出安全范围,但变化剧烈,超过了正常的数据变化率范围,这就预示着环境状况在持续恶化,此时,上位机会做出预报警指示,提醒监控人员提前做好预防措施,防范于未然。 2.2上位机软件设计 根据所设计的应用程序,可以开发相应的上位机监控软件来对整个系统进行可视化的管理和监控。考虑到在本系统中,需要将上位机软件略加修改后移植到主要由ARM-WINCE构成的手持移动终端上,以实现与上位机相似的功能。为了避免同一代码应用于不同平台时的重复开发,本系统采用跨平台的C工具包Qt 作为上位机开发工具。Qt采用“一次编写,多处编译”的方式,允许程序开发人员使用应用程序的单一源码来构建可以运行在不同平台下的应用程序的不同版本。 根据模块化的软件设计思想,本地上位机监控软件主要包括8大功能窗口。如图4.7所示。上位机监控软件可以实时监控到整个的网络的环境参数和人员分布信息,可以与井下各种设备进行通信和对其进行远程控制。如对特定目标设备发送文字短消息,打开目标设备的报警装置和关闭电源等。可以对于井下人员进行管理。其中串口模块和QSql数据库支持是实现整个系统功能的关键。 图10 上位机监控软件系统框图 图11数据包检测状态转移流程 2.2.1 串口模块 上位机监控软件主要通过串口完成与Zigbee 网络之间的信息交互。上位机通过串口模块发送各种符合协议的通信数据包,接收检测到的Zigbee 网络数据包并按照系统设计的串口通信协议进行解析。基于Qt 的上位机监控软件的串口通信模块是基于第三方类Qextserialport 类来实现的,该类包含了基本的串口设备操作,如打开串口,读串口,写串口,关闭串口,设置串口的波特率,数据位,校验位,停止位,硬件控制流等。该模块还可以实现数据的文件操作如导入文件,保存文件,写入文件和数据显示格式选择等功能。 在串口通信中,考虑到Zigbee 网络中数据帧的多样性和接收的不定时性,这样就需要建立一个循环检测机制对串口信号进行检测,确认接收一个完整的数据帧后再向上位机其他功能模块转发,串口通信协议主要包括2 字节的帧首标志、1字节的长度域、n 字节的数据信息。当上位机软件接收到Zigbee 协调器转发的数据时,串口通信模块首先进行帧首检测,当2字节帧首标志全部正确后读取长度域,然后读取相应长度的信息。数据包检测状态转移流程如图4.8所示。 2.2.2 QSql 数据库模块 本系统采用SQLITE 数据库建立井下人员信息数据库。它能够支持Windows/Linux/Unix 等主流的操作系统,同时能够跟很多程序语言相结合。而 且SQLite 支持跨平台,操作简单,能够使用很多语言直接创建数据库。SQLITE 数据库是一款轻型的数据库,占用资源非常的低。适合构建中小型数据库,特别是应用于嵌入式设备。 Qt中使用了自己的机制来避免使用SQL语句,它为我们提供了更简单的数据库操作和数据显示模型。其中QSqlQuery类是Qt与数据库之间的接口类,本系统通过建立QSqlQuery对象,通过QSqlQueryModel类中的各个数据库接口函数来操作创建SQLITE数据库,实现人员信息的添加,删除,修改,查询等操作。 2.3 Zigbee远程访问接口的实现 在嵌入式Intemet时代,随着信息技术,网络技术和嵌入式系统的迅速发展,许多以单片机应用系统为中心的小型嵌入式设备,接入互联网已是大势所趋。据网络专家预测,下一代网络设备中嵌入式设备将大大增加,将来在互联网上传输的信息中,70左右将来自嵌入式系统。将Web服务器技术引入到嵌入式系统,可利用已有的Intenet网络通过www浏览器实现远程监测、远程控制、自动报警、传送数据等功能。 嵌入式Web服务器系统可利用现有的网络,不再需要专门通信网络。随着其网络传输速度越来越快,可满足各种数据传送的实时性要求,不仅可以传输数据信号,还可以传输声音和图像。由于嵌入式Web服务器体积更小,价格更低,操作和维护方便,因此其适用范围广泛,可应用于工业自动化,智能大厦,智能仪器,信息家电等领域,成为后PC时代研究的热点。 本章在三星S3C2440硬件平台下,选用微软的Windows CE操作系统,来构建具有远程访问接口的嵌入式网关。该网关能对外提供Web服务,无论何地的用户,只要能连接到Intemet网络,就能够访问到此网关,进一步实现对Zigbee 网络的访问。开发主要由Web服务端和Browser客户端两部分代码来实现。 2.3.1 浏览器客户端 1 表单简介 Web表单提供了一种与用户交互的方法。他们提供一种打包技术,以收集用户的输入,触发网络服务器行为,获取用户响应,其功能相当于Windows对话框, 任何时候只要基于Web的应用程序需要从用户收集数据时,都可以使用它们。表单在基本的HTML中定义。 2 信息交互页面设计与实现 为了给用户提供丰富的功能和良好的交互界面,采用模块化的设计原则,信息交互页面由多个HTML文件、JS文件、CSS文件、XML文件组成。其中以HTML 文件为基础,嵌入JavaScript脚本语言文件,增强网页的动态特性,嵌入CSS 层叠样式表文件,增强HTML的展示效果,利用XML文件存储交互数据,方便历史信息查询。结构如图4.1所示 2.3.2 Web服务器端 1 设计思想 在ISAPI开发之前,表单处理通常通过使用CGI程序或脚本来实现。在CGI 模型中.用户发出的Web请求由CGI程序处理,而CGI程序的标准输入、标准输出会与Web Server相连接从而实现与浏览器的交互。如果多个用户同时提交相届的表单,就要对每个请求启动程序的单独拷贝。在ISAPI模型中,通过DLL 处理请求,由ISAPI扩展DLL处理表单请求。处理第一次表单请求时,服务器将扩展装入内存。扩展将驻留在内存中,直到服务器关闭为止。当请求准备用扩展处理时,网络服务器调用DLL,传送给它与用户请求相应的数据。如果一个扩展的多个请求同时到达,服务器就产生一个新的线程,调用扩展DLL的同一拷贝。这种模型显然优于CGI模型。由于扩展装入后仍驻留,服务器就不必装入程序拷贝来为每请求服务。扩展的每个请求将会使服务器产生线程.而不是进程。这是一个更廉价的操作。 针对WinCE下的HTTP服务器与Windows下的IIS结构不一样,ISAPl应用程序的开发包括一下几个步骤 1连接至Web服务器 2发送HTTP请求 3服务端接受请求并调用ISA 4解释请求 5ISA处理并返回响应主体 6服务器关闭连接,浏览器解析响应 2 数据采集模块 嵌入式Web Server采用串口和Zigbee网络的协调器通信。本文选用基本的API函数编写串口程序。WinCE的API函数与WindowsAPI类似,但在具体使用时有略有不同。 2.4 嵌入式软件设计 待定位的移动盲节点设备与ARM-WINCE平台通过串口相连接借构成了本系统的手持终端。在手持移动终端上可以实现显示持有者的实时移动轨迹和当前节点处的传感器信息,可以实现与上位机的实时短消息文字通信。由于Qt跨平台的优势,将QT上位机软件略加修改,在QTVS2005环境中进行编译就以移植到ARM-WINCE平台上。这样可以避免同一代码应用不同平台时的重复编码问题,大大提高了系统的开发效率。其中手持移动终端的串口模块是实现其功能的关键。 Qt没有应用于ARM-WINCE平台的第三方串口类,因此将Qt软件移植到ARM-WINCE平台时,其串口模块需要调用WINCE系统的API来编写。 3.系统创新 1、一网多用。在同一井下监控网络中实现了井下环境监测,人员定位,文字短消息通信,设备远程控制和基于Internet的远程监控等功能。 2、低功耗。在系统设计中充分考虑和应用MSP430F149单片机和CC2430射频芯片低功耗的特点。 3、本安防爆。充分考虑系统的本安防爆性。 4. 评测与结论 整个系统在设计完成后,将其应用到实验室环境来检测系统的各项性能。在 同一楼层 60m 的范围内,安装了 8 个 Zigbee 子节点设备,分布于走廊的不 5m 同位置,其中 3 个路由节点,以 ‘之’字形均匀放置于过道。嵌入式网关设备一 方面通过串口与本地监控中心进行通信, 另一方面通过 Lan 接口接入实验室局域 网。经测试,在实验范围内,系统可以搜索到各个节点设备,并在网络中能准确 的传输控制指令和传感器信息。 表 1 测量位置和实际位置关系 测量位置 位置 1 位置 2 位置 3 位置 4 实际位置m 20.00,0.00 20.00,5.00 40.00,0.00 40.00,5.00 测量位置m 18.75,0.75 21.50,5.25 43.25,1.25 42.75,4.00 相对误差 (距离 d 6.25 7.35 8.12 7.08 x 2 y 2 ,相对误差 g x D x y D y x 2 y 2 ) 在定位测试中,取 A(距离发送端 1 米的 RSSI 测量值)45,N信号传播 系数16,定位周期为 200ms,相邻节点间距为 20m,在定位范围内任取 4 个位 置作为测量点, 测量位置和实际位置坐标, 以及测量结果的相对误差如表 1 所示。 由测量结果可以看出,系统最大误差2-3m,定位分辨率0.25,符合矿井定位 要求。 经实验室环境模拟测试, 本系统各个功能模块性能良好,很好的实现了环境 监测、人员定位、实时短消息和语音通信,设备的远程控制等功能,达到了预期 的设计目标。本系统对医药、化工等行业的安全生产监控具有一定的参考价值。 附录 图 1 Zigbee 协调器 图 2 Zigbee 移动终端 图 3 Zigbee 子节点