收藏 分享(赏)

专业组_仪器仪表类_云南大学_智能井下预警及求救系统.doc

上传人:gnk289057 文档编号:6518186 上传时间:2019-04-14 格式:DOC 页数:22 大小:755.50KB
下载 相关 举报
专业组_仪器仪表类_云南大学_智能井下预警及求救系统.doc_第1页
第1页 / 共22页
专业组_仪器仪表类_云南大学_智能井下预警及求救系统.doc_第2页
第2页 / 共22页
专业组_仪器仪表类_云南大学_智能井下预警及求救系统.doc_第3页
第3页 / 共22页
专业组_仪器仪表类_云南大学_智能井下预警及求救系统.doc_第4页
第4页 / 共22页
专业组_仪器仪表类_云南大学_智能井下预警及求救系统.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、- 1 -2011-2012 德州仪器 C2000 及 MCU 创新设计大赛项目报告题 目: 智能井下预警及求救系统 学校: 云南大学 指导教师: 王威廉 组别: 专业组 应用类别: 仪器仪表类 平台: Cortex-M3 (LM3S9B92) 参赛队成员名单(含每人的邮箱地址,用于建立人才库):唐荣斌:魏静文:张 娜:视频文件观看地址(若未拍摄,请注明): http:/ A304唐荣斌 手机 15025127810- 2 -题 目: 智能井下预警及求救系统 .- 1 -摘要 .- 1 -关键字 Cortex-M3、ZigBee、井下环境监测 - 1 -1. 引言 .- 2 -立题背景及目的

2、.- 2 -目前完成的主要工作 .- 2 -2. 系统方案 .- 3 -系统方案概述 .- 3 -系统方案框图 .- 4 -系统示意图 .- 5 -3. 系统硬件设计 .- 5 -MCU 主控芯片的选择 .- 5 -地下有线通信方式的选择 .- 5 -地下无线通信方式的选择 .- 6 -SPI 总线转 CAN 总线模块 - 6 -传感器及报警电路 .- 7 -气体浓度检测电路 .- 7 -温度测试电路 .- 8 -光照强度测试电路 .- 8 -报警电路 .- 8 -4. 系统软件设计 .- 9 -MCU 主控机程序设计 .- 9 -PC 端监控程序设计 .- 10 -帧结构规范 .- 12 -

3、均值滤波器设计 .- 13 -ZigBee 系统事件 - 14 -系统按键事件的处理 .- 16 -固定工人 ID 号方法 .- 16 -MCU 主控机上的 Shell 外壳 .- 17 -5. 系统创新 .- 17 -本系统创新之处包含以下几个方面 .- 17 -6. 评测与结论 .- 18 -系统测试方法和达到的指标 .- 18 -参考文献 .- 18 -附录 .- 19 - 1 -题 目: 智能井下预警及求救系统 摘要本文从我国矿难事故频发的背景出发,提出了以 Cortex-M3 为开发平台的、基于 ZigBee 和 CAN 总线技术的智能井下预警及求救系统。该系统可以实时监测和记录井下

4、工人所在位置的各种环境参数值,在瓦斯浓度超过设定值时向工人及井上监控中心发出警报信号。同时,当发生突发事故时工人可以发出报警信号,告知附近的工人和井上监测人员,此外,监测人员可根据本系统标识并定位该工人。关键字 Cortex-M3、ZigBee、CAN 总线、井下环境监测AbstractThis article is set out against the background of the high frequency of Chinas mining accidents, smart underground warning and help system is proposed accor

5、ding to the Cortex-M3 development platform based on ZigBee and CAN bus. The system can monitor and record the various environment factors in workers location in real-time, and it can send an alarm signal to workers and ground monitoring center when mashgas concentration exceeds the set value. Meanwh

6、ile, workers can send alarm signal to inform monitors on the ground and nearby workers when an unexpected accident occurs, in addition, monitors can identify and locate the workers based on the system.Keywords: Cortex-M3, ZigBee, Can bus, Environmental monitoring underground- 2 -1. 引言立题背景及目的近几年,国内矿难

7、事故频发。每一起事故的发生都是那么的触目惊心。煤矿安全事故问题存在很久了,已经造成太多人员的伤亡,根据国家安全生产监督管理总局的统计, 2010 年,全国发生煤矿安全事故 1403 起,死亡 2433 人。2011 年,全国发生煤矿安全事故 1201 起,死亡 1973 人。我国矿难的死亡人数占全球矿难死亡人数的 80%左右。据以上数据,可以较清楚的看到一直以来频发的矿难是困扰我国安全生产的重大问题。对于作为大学生的我们,应该加强这方面的科技研究。煤矿安全事故中,瓦斯爆炸占了很大的一部分。瓦斯突出问题在我国至今没有得到根本解决,往往是出了事故,处理完了就完了,并没有真正分析事故原因,防止类似事

8、故重复发生。为了工人的生命安全,降低死亡率,我们针对瓦斯爆炸做了具体的分析,找出瓦斯爆炸的原因,分析这些原因,从而得到具体的方案。“瓦斯”是一种有毒的混合气体,主要含有甲烷和一氧化碳两种气体,常产生在矿井之中,如遇明火,即可燃烧,发生“瓦斯”爆炸。瓦斯爆炸产生的高温高压,促使爆源附近的气体以极大的速度向外冲击,造成人员伤亡,破坏巷道和器材设施,扬起大量煤尘并使之参与爆炸,产生更大的破坏力。另外,爆炸后生成大量的有害气体,造成人员中毒,直接威胁着矿工的生命安全。通过对矿井下环境的监测,可以预测到瓦斯爆炸,进而让工人提早退出矿井,对矿井中的瓦斯气体进行疏通,从而避免惨剧的发生。另外,我们发现当矿难

9、发生时,搜救人员很难确定遇难工人的位置,他们要花很长的时间确认工人的位置,然后再进行搜救。当矿难发生时,对于工人及其家属,时间就是金钱,可能就是这几分钟确定位置的时间,对工人却是生死关头,因此,我们要求系统具有能够大致确定井下工人位置的功能。除了发生事故时,在平时的日常生产工作中工人可能会遇到某些突发情况(如摔伤) ,如果工人能够在遇到突发情况向地上检测中心发出求救信号,并且能够通知在周围工作的工人前来救助,那么这些突发情况就能尽快的解决。因此我们在这个系统中还增加了智能求助的功能。目前完成的主要工作我们在基本完成整个系统过程中主要的工作包括以下几个方面:1) 在比赛的初期,我们查阅了大量的相

10、关资料,确定了我们的研究的主题和方向;2) 明确方向后组员之间进行分工,然后各自学习相关的理论知识,比如,矿难产生的原因、嵌入式系统研发、各种应用软件、计算机语言等等。3) 参加各种有关 Cortex-M3、ZigBee 、无线传感器网络学术的讲座,同时,向老师、同学沟通和请教;4) 利用 TI 公司的 Z-Stack 协议栈、各种 ZigBee 书籍, 熟悉 ZigBee 开发平台及其应用。5) 通过分析瓦斯爆炸的原因及井下的环境,选择甲烷、一氧化碳、烟雾、温度、- 3 -光照五个环境参数,并确定系统方案。在此基础上设计系统电路、制作电路板,并与 ZigBee 节点相连构成无线传感器节点。6

11、) 对传感器节点进行编程,使之具有数据采集、处理、发送及预警求助功能。7) 利用 C 语言将 ZigBee 操作系统扩展到自己工程中,然后结合 Z-Stack 协议栈编写自己的工程,包括任务初始化、事件定义、接口配置、信号采集、节点绑定与通信等,使 ZigBee 协调器作为一个转发器完成数据帧转发功能;8) 熟悉 TI 公司的 LM3S9B92 芯片以及 Stellaris 驱动库的使用,编写 MCU 主控机程序,使之能够与 CAN 总线和转发器通信,并能够通过串口或者以太网与 PC 机进行通信。9) 开发 PC 机端的监控程序 ,使之具有监控和预警功能。10) 对整套系统进行综合测试,完成文

12、档、拍摄视频和照片,已达到预期目的。整个系统已全部调通,正在做进一步完善,可以演示。2. 系统方案 系统方案概述本系统是一个集预警求助于一身的智能型系统,主要用于检测井下作业人员所在点的环境情况(甲烷、一氧化碳、烟雾、温度、光照等五个环境参数),并能够实时的将各测量值发送到地上监控中心的电脑上进行显示和记录,当出现有测量值超过预设值时能够发出报警信号通知作业人员提高警惕,同时报警信号也会在地上监控中心的电脑上发出以方便地面上尽快做出紧急预案部署。不幸发生事故之后只要在井下有线通信线(CAN 总线)不中断的情况下能够和地面上进行简单的通信并大致的定位底下人员的所在位置,为营救方案提供参考。该系统

13、以预防为主,防治结合,从而减少矿难的发生率,在矿难发生的情况下减少死亡率。我们为每个在井下作业的工人配备一个无线传感器节点,传感器的供电是通过工人所带的电瓶进行供电,在工人所经过的路线上会沿路放置一些转发器(即 ZigBee 协调器),特别是拐角的地方。工人在移动的过程中身上携带的传感器节点能够自动和不同的转发器进行通信,把监测到的数据发送出去。转发器和工人所携带的无线传感器节点都有唯一的一个 ID 号(一个工人对应进一个节点 ID 号),发送到电脑上的数据帧包中除了包含所测量得到的环境参数外,还有传感器节点的 ID 和转发器的 ID。由于转发器的位置是固定的,而 Zigbee 无线通信的距离

14、是有一定范围的,因此,地面监控中心收到数据之后除了知道环境状况之外,还能够知道无线传感器节点(工人)目前所处的大致位置,这也为发生矿难之后的营救工作提供了一定的参考依据。井下作业人员随身携带的无线传感器节点与距离它最近的固定的转发器之间能够组成一个临时的传感器网络,传感器节点周期性的将需要进行测量的各个环境参数模拟量通过 A/D 转换变成数字量,并判断是否超过了所设置的上限或下限,如果超过了就通过蜂鸣器进行报警以通知工人提高警惕。同时,传感器节点会将它所得到的测量值和它自身的 ID 组成一个无线数据帧通过 Zigbee方式发送到距离它最近的转发器上,转发器收到传感器节点发来的数据帧之后- 4

15、-会在数据帧前面加上转发器的 ID 组成一个新的适合在 CAN 总线上进行传送的数据帧发送到 CAN 总线上。和 CAN 总线相连的 MCU 主控机收到 CAN 总线上传来的数据帧之后将该数据帧转换成能够通过串口或者以太网方式传送的串口帧或者以太帧向地上监控中心的监控电脑发送。监控中心的电脑收到从 MCU发送来的数据帧之后(串口或者以太网方式)将更新监控界面上对应传感器节点(工人)上的对应的测量值,当环境参数值超过极限值时,监测中心的电脑也会发出报警声。监测中心的电脑将记录任意时刻收到的数据,为发生事故之后对事故原因分析提供依据。另外,当意外事故发生时(如工人摔伤),工人可以按下其携带的传感器

16、节点上的求救按钮,此时传感器节点和监测中心都会发出报警信号。传感器节点发出报警声时,四周的工人将过来援助;监测中心发出报警声时,可以根据转发器和传感器的 ID 号来确定其位置和身份。系统方案框图图 1 系统方案框图- 5 -系统示意图图 2 系统示意图3. 系统硬件设计MCU 主控芯片的选择选择 LM3S9B92 作为主控芯片主要基于以下几个方面的综合考虑:LM3S9B92 支持 CAN2.0 协议,通信速率最高可达 1Mbps,支持 32 个拥有独立标识的消息对象,完全能够满足 CAN 总线上数据的收发;支持串口通信,方便与 PC 机近距离通信和维护;支持以太网,方便与 PC 机远距离通信和

17、维护;可以使用 Stellaris 驱动库可以加快程序的开发速度。地下有线通信方式的选择控制器局域网(CAN)为一种串行通信协议,能够有效的支持具有很高安全等级的分布实时控制。CAN 的应用范围很广,从高速的网络到低价位的多路接线都可以使用 CAN。尤其是在汽车电子行业里,CAN 总线被普遍使用,如使用CAN 连接发动机控制单元、传感器、防刹车系统等等,其传输速率可达1Mbps。在本系统中,地下有线信道我们之所以选择 CAN 总线主要是基于以下几个方面的综合考虑:CAN 总线通信线相对便宜,并且其铺设容易,可以随着采矿的不断深入而- 6 -逐渐往前铺设 CAN 总线通信距离远,在 5Kbps

18、的传输速率情况下可以长达 10Km,通过中继和转发的方式能够再扩大其通信范围。从而可以提高该系统的使用范围,从小型矿井到大中型矿井均能适用。CAN 总线使用差分电压通信,抗干扰性能强,特别适合井下这种环境恶劣的条件下使用。在 CAN 总线上添加或者删除节点十分方便,方便 Zigbee 转发器的添加和删除。标准的 CAN 总线使用 11 位作为节点标识,能够支持 2048 个节点,而扩展格式时使用 29 位作为节点标识,大大的增加了能够支持节点数目。地下无线通信方式的选择ZigBee 是一种新兴的短距离、低速率、低功耗无线网络技术,它是一种介于无线标记技术和蓝牙之间的技术提案。ZigBee 此前

19、被称作“HomeRF Lite”或“FireFly”无线技术,主要用于近距离无线连接。它有自己的无线电标准,在数千个微小的传感器之间相互协调实现通信。这些传感器只需要很低的功耗,以接力的方式通过无线电波将数据从一个传感器传到另一个传感器,因此它们的通信效率非常高。最后,这些数据就可以进入计算机用于分析或者被另外一种无线技术如 WiMax 收集。 ZigBee 的目标市场主要有 PC 外设(鼠标、键盘、游戏操控杆)、消费类电子设备 (TV、VCR 、CD、VCD、 DVD 等设备上的遥控装置)、家庭内智能控制(照明、煤气计量控制及报警等) 、玩具( 电子宠物)、医护(监视器和传感器)、工控(监视

20、器、传感器和自动控制设备 )等非常广阔的领域。井下作业人员不可能一直呆在一个地方,他可能从一个网络进入下一个网络,此时,ZigBee 的自组织功能能够自动断开已建的网络切换到新的网络,从而便于工人从一个转发器网络切换到另一个转发器网络。此外 ZigBee 节点的主控芯片为 CC2530,可完成 A/D 采样而无需增加其它的 A/D 采样芯片,这可以缩小传感器节点的大小。ZigBee 的低功耗可以大大延长传感器节点电源的使用时间。SPI 总线转 CAN 总线模块由于 Zigbee 转发器模块没有 CAN 接口不能够直接挂到 CAN 总线上,因此需要在 Zigbee 转发器模块与 CAN 总线之间

21、添加一个转换模块,目前市面上的CAN 接口芯片比较多,我们选择 MCP2515 和 TJA1050 相结合的方案。MCP2515 是一款独立 CAN 控制器,可简化需要与 CAN 总线连接的应用,其内部包含了 CAN 协议引擎、验收滤波器寄存器、验收屏蔽寄存器、发送和接收缓冲,可以以 SPI 的通信方式与 Zigbee 转发器模块进行通信。TJA1050 是控制器区域网络(CAN)协议控制器和物理总线之间的接口芯片,它能够将 MCP2515 提供的逻辑电平转换为 CAN 总线专用的差分电平。- 7 -传感器及报警电路在本系统中,井下作业人员携带的传感器网络节点包括了环境参数采集的电路和报警电路

22、。由于瓦斯的主要成分包括甲烷( )、一氧化碳( ),有必4CHCO要对这二种气体的浓度进行检测,一旦这二种参数到达预定值,报警系统就会给出警告。另外,为了对井下环境更为了解,我们对烟雾浓度、光照强度、温度三个参数也进行的采集,监测中心的电脑可以随时显示任意工人所处环境的这五个参数。如表 1 所示,为传感器的网络信息。其中,参数类型包含了所要采集的五类环境参数;器件类型是各个参数类型所采用的传感器器件;传输数据类型是在整个系统中传递数据时,用它来代表参数类型,比如传输数据类型为 3,则代表此时传输的是一氧化碳浓度的数据。ZigBee 节点对应引脚为井下作业人员携带的 ZigBee 终端节点与环境

23、参数采集电路连接时所使用的引脚。表 1 传感器网络信息参 数 类 型 器 件 类 型 传输数据类型 ZigBee 节点对应引脚温 度 LM35 1 P0_2光 照 光 敏 电 阻 2 P0_3一 氧 化 碳 MQ-7 3 P0_4甲 烷 MQ-5 4 P0_5烟 雾 MQ-2 5 P0_7气体浓度检测电路如图 3 所示为甲烷、一氧化碳、烟雾传感器的基本测试电路,这三个环境参数采集电路的原理基本相同。传感器需要施加 2 个电压:加热器电压(V H)和测试电压(Vc ) 。其中 VH 用于为传感器提供特定的工作温度,Vc 则是用于测定与传感器串联的负载电阻(R L)上的电压(V out)。这种传感

24、器具有轻微的极性,Vc 需用直流电源。在本系统中,Vc 取 3.3v 电压,V H 取值 5v。为了更好利用传感器的性能,需要选择恰当的 RL 值。经计算对于不同的传感器,其 RL 值是不同的,如表 2 所示。- 8 -图 3 部分传感器原理图表 2 RL 的取值器件类型 RLMQ-2 12KMQ-5 22KMQ-7 7.5K温度测试电路温度环境参数采集的电路采用的核心部件是 LM35,LM35 是集成电路温度传感器系列产品之一,它具有很高的工作精度和较宽的线性工作范围,该器件输出电压与摄氏温度线性成比例。LM35 无需外部校准或微调,可以提供1/4的常用的室温精度。本系统中,LM35 的供电

25、电压是 5V。光照强度测试电路光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器。入射光强,电阻减小,入射光弱,电阻增大。本系统中,光敏电阻是用于光电转换,将光的变化转换为电的变化,如图 4 所示。其中,Vcc取值为 3.3V,R L 为 12K 。图 4 光照强度测试电路报警电路为了在瓦斯浓度过高时使工人有所警觉,在井下作业人员携带的传感器网VoutGND+RLVcc- 9 -络节点中增加了报警电路,如图 5 所示。在该报警电路中,Bell 是蜂鸣器, Vcc 为 5V,R 0 是 12K,Q 是三极管 8050。当传感器网络中的环境参数超过了极限值,V in可通过

26、程序被置为高电平,此时,蜂鸣器将发出声响,即有预警作用。图 5 报警电路4. 系统软件设计MCU 主控机程序设计通过对 MCU 主控机需求的分析,可大致得到 MCU 需要完成的任务主要有以下几个:接收 CAN 总线上的数据帧,并把其转换成在串口或者以太网上传输的数据帧格式;根据传输设置,将数据通过串口或者以太网的方式传输到 PC 机上;接收通过串口或者以太网上从 PC 发出的测量请求,并将其转换成适合在CAN 总线上传输的数据帧;Shell 部分负责接收从串口或者以太网传来的调试命令的解释和执行,并返回执行结果。基于以上任务不是很多,可以通过任务轮流调度和中断的方式来解决。于是在初级阶段就取消

27、了操作系统在 MCU 主控机上的使用,随着后阶段系统任务量的增加会考虑向 MCU 主控机移植一个嵌入式操作系统。CAN 总线和串口的收发采用了中断的方式,其中 LM3S9B92 的 CAN 总线数据帧可以配置成 0 到 8 个长度,足以完成发送帧和接收帧的配置,而串口部分由于每次只能发送一个字节,因此采用了一个起始帧作为帧起始标志,从而为上位机提取数据帧提供了依据。从串口或者以太网中接收从监控中心发来数据时需要在接收的时候每次收到帧起始标志时便开始接收,之后收到的数据先发到接收缓冲区并计数,当接收的数据字节数为一个帧长时就把缓冲区中的数据R0+ Q-VccVin- 10 -当作一个请求帧进行处

28、理。CAN 总线通信和串口通信程序的开发使用了 TI 公司的 Stellaris 驱动库,这极大的缩短了开发周期。而以太网部分使用了 Keil 的 RL 库(Real-Time Library)中的 TCPnet,我们使用将 MCU 主控机与远程 PC 机之间建立稳定的 TCP 连接,收发数据都是通过嵌套字(socket)完成,从而保证传输的实时性和可靠性。由于TCP 底层会根据数据帧的大小和发送速度对数据帧进行重组,为了让 PC 机接收端能够区分数据帧的起始,因此和串口发送方式一样需在数据帧前面添加一个帧起始标志。CAN 传来的数据速率不稳定,如果直接对每个 CAN 传来的数据帧进行发送,那

29、么 TCP 数据帧常会出现丢帧的情况,为了有效的解决这一问题,我们采用了根据 CAN 传来的帧速来确定每个 TCP 帧中应该包含的数据帧个数,即 CAN 总线上的帧速越快则是每个 TCP 帧就包含越多的数据帧。通过这一方法巧妙的解决了 TCP 传输时出现的丢帧情况。该算法的伪代码如下:void Send(DataFrame)先将DataFrame存放到缓冲区,此时缓冲区中数据的长度为L;修改缓冲区指针指向为下一次数据帧的存放做好准备;根据当前CAN总线上发来的帧速FrameRate确定TCP帧的长度Len;if(L = Len)通过TCP连接将数据发送出去;修改缓冲区指针的指向,让它指向缓冲区

30、的开头;PC 端监控程序设计通过对 PC 机需求的分析,可大致得到 PC 需要完成的任务主要有以下几个方面:根据监控人员需要通过串口或者以太网方式连接到 MCU 主控机;允许监控人员根据实际情况添加或删除工人节点。并为各个工人节点设置允许的测量值,这主要是考虑到不同的工人其工作范围不同,因此需要进行测量的值也就有可能不同;监控人员可以设置各个工人节点的各测量值的上限和下限,当测量值超过其上限或者下限时通过报警通知监控人员;在收到工人的求救信号之后通过报警通知监控人员;记录所有接收到的测量值,方便以后查看研究分析;后阶段可能会根据需要增加绘制各测量值的波形图谱功能以方便研究分析;为了方便监控人员

31、的操作,需提供配置文档的保存和加载功能。基于以上分析,我们的 PC 机软件选择了在.NET2.0 平台下进行,开发工具为 Microsoft Visual Studio 2010,使用 C#语言进行编程,软件的操作方式采用了Windows 平台下惯用的菜单驱动方式。- 11 -从串口或者以太网传来的数据中得到数据帧的思路和 MCU 中接收控制中心电脑发出的请求帧的方法类似。但由于从串口或者以太网传输来的数据帧不稳定,有时帧速很高,如果每来一帧就立即更新显示的话 CPU 的占用率会很高,严重的时候电脑直接卡住,为了解决这一问题,我们采用了双缓冲的办法,我们定义了两个存放数据帧的缓冲器,所有传来的

32、数据不直接更新显示,而是先放到接收缓冲器,然后使用一个定时器周期的从接收缓冲器中读取数据帧并更新显示,为了不影响定时器更新显示的时候对数据帧的接收,我们在更新数据的时候用另一个缓冲器作为接收缓冲器,而把的那个接收缓冲器作为更新缓冲器,通过接收缓冲器和更新缓冲器的交替变换完成数据的接收和显示。该算法的伪代码描述如下:PC端双缓冲接收伪代码:缓冲器A BufferA缓冲器B BufferBvoid FrameArrive(DataArrive)if(BufferA正在用作接收缓冲器)Buffer = BufferA;elseBuffer = BufferB;Buffer.Add(DataArriv

33、e)- 12 -定时器更新显示伪代码:void RefreshNode()if(BufferA正在用作接收缓冲器)Buffer = BufferB;elseBuffer = BufferA;对于Buffer中的每个待更新数据data将data更新到对应节点的对应测量上,并刷新节点显示清空Buffer;将Buffer作为接收缓冲器;帧结构规范由于数据帧在传送过程中经历了三种不同的信道传输方式:无线的 ZigBee方式、有线的 CAN 总线方式、有线的串口或者以太网方式。在不同的信道中数据帧的格式的格式是不完全相同的,因此需要对在不同信道中传递的数据帧进行格式的规定,初步规定如图 6 数据帧结构规

34、范所示。图 7 所示是对数据类型的规定。图 6 数据帧结构规范- 13 -图 7 数据类型规定均值滤波器设计由于传感器在测量周围相关环境值的时候会受到周围的一些突发因素的影响,比如工人突然的对传感器呼气,也有可能因为器件自身的一些缺陷而导致测量到的数据中会有一些噪点,如果直接使用这些数据,可能会导致系统误报警,为了避免这种情况出现,有必要对收到的数据进行一下滤波,考虑到效果和实现上的难易程度,目前我们采用的是一维的均值滤波的方法。考虑到硬件实现滤波器的调试和修改不容易,因此我们采用软件的方式来实现滤波。每次 AD 转换之后先把得到是值传给滤波函数进行滤波之后得到一个滤波后的数据,之后的一系列的

35、处理都是针对滤波后的数据进行。通过Matlab 仿真,图 8 展示了数据通过滤波器之后的效果:0 50 100 150 200 250 300 350220240260280300320340360380400 值值值值值值值值值值值值值图 8 滤波效果从图中可以看出通过滤波器之后数据变得比较平滑,大部分噪点都被滤去。- 14 -滤波器的实现代码如下:typedef unsigned long t_Value; /值类型#define FILTER_LEN 10 /滤波器长度#define VALUE_COUNT 5 /需要的值个数t_Value filter_bufVALUE_COUNTFI

36、LTER_LEN; /滤波器缓存int filter_indexVALUE_COUNT ;t_Value filter(int id, t_Value val)int i;t_Value sum = 0;i = filter_indexid % FILTER_LEN;filter_bufidi = val;if(filter_indexid FILTER_LEN)filter_indexid = filter_indexid + 1;for(i = 0; i filter_indexid; +i)sum += filter_bufidi;return sum / i;elsefilter_in

37、dexid = (filter_indexid + 1) % FILTER_LEN + FILTER_LEN;for(i = 0; i FILTER_LEN; +i)sum += filter_bufidi;return sum / i;ZigBee 系统事件在 ZigBee 系统事件中,分时启动了 6 个事件,每隔 2 秒钟启动一次,分别用来报告温度、光照强度、一氧化碳浓度、甲烷浓度、烟雾浓度和报警信号事件,程序中定义的事件类型如表 3 所示:表 3 事件类型定义事件编号 事件类型0x0002 温度0x0004 光照强度0x0010 一氧化碳0x0020 甲烷0x0040 烟雾0x0080

38、报警信号- 15 -数据采集过程中,我们规定,用相应的数值表示相应的数据类型,如表 4所示。程序中定义数据类型如下:表 4 数据类型定义数据类型 对应类型值求救信号 0x00温度 0x01光照强度 0x02一氧化碳 0x03甲烷 0x04烟雾 0x05传感器网络节点采集到数据并将数据组成帧进行发送,发送前,必须对数据进行了相应处理,数据帧中规定了数据的格式,从起始帧到结束帧依次规定为:工人 ID 号(占 12 位, 2 字节表示) 、数据的类型(表示发送的数据是何种数据,占 8 位,1 字节表示) 、数据值的大小(占 16 位,最高位表示数据的正负,接下来 7 位表示数值的整数部分,低 7 位

39、表示数值的小数部分) ,具体见图 6 数据帧结构规范。为了方便对数据采集处理,定义了一个 t_Measure 类型的变量,如下:t_Measure measuresVALUE_COUNT=/最小 最大 下限 上限(xx.xx%) 值1000, 2800, 0, 4000, 0 , /MQ2700, 2500, 0, 4000, 0 , /MQ51000, 2800, 0, 4000, 0 , /MQ70, 1500, 0, 4000, 0 , /温度0, 3300, 0, 7000, 0 , /光照;其中 t_Measure 是一个结构体类型的变量,定义如下:typedef structt_V

40、alue min;t_Value max;t_Value minlimit;t_Value maxlimit;t_Value value;t_Measure; /测量值类型measures 是一个结构体数组,包含了要测量的数据的最大最小值(根据实际多次测量的数据进行整合出来的) ,即测量数据参数的上限和下限(即如果是气体,则表示所占百分比浓度;如果是温度,则表示摄氏度;如果是光照,则表示光照强度) ,它可以用来测量数据类型的当前值。通过 A/D 采样、量化、编码将模拟的数据转换为数字数据,在采集完数据后,我们还要将得到的数据进行相应转换,经软件编程计算,将这些数字数据转换为相应的浓度(0100

41、.00%)或者温度(0100.00) ,当前值大于或小于数据参数对应的上限或者下限时,工人携带的节点上的报警器就会发出报警声。在本系统中 ZigBee 网络结构是星形的,所有的转发器通过 CAN 总线将数据- 16 -传输到 Cortex-M3 上。在后期阶段,我们可以将 ZigBee 网络结构扩展为树型,数据就可以沿树型传送给 Cortex-M3,即可再开辟一条无线路径进行数据传输。系统按键事件的处理按键事件中,添加了求救信号的处理。当工人按下按键时,工人携带的传感器会发送一个数据,标记对应的数据类型为 0,并停止对数据的采集,然后启动求救(报警)的事件,报警装置开始报警,以通知周围工人。同

42、时监测中心的电脑接收到相应的求救信息后,也会发出求救的报警声音,通知监视人员进行相应的处理。固定工人 ID 号方法在本系统中,为了能够达到求救的功能,在第一时间内确定受伤工人的位置,转发器和工人所携带的无线传感器网络节点的 ID 号都必须是唯一的。由于每个井下作业人员均会携带一个无线传感器节点,因此,可以用工人所携带的无线传感器网络节点的 ID 号来标识工人的身份。我们可以采用固定每个节点的 IEEE 地址的方式来固定每个工人的 ID,即在网络中不使用全球唯一 64位 IEEE 地址,而是通过修改每个节点的 IEEE 地址来区分每个工人。修改节点IEEE 地址方法如下:打开 SmartRF F

43、lash Programmer 软件,将调试器连上 PC,将看到如图 9 所示界面:图 9 修改 IEEE 地址在图 9 中的红线框中的“Location”中选择“Secondary” ,在 IEEE 的输入框- 17 -中输入 00 00 00 00 00 00 0x xx,再点击按钮“Write IEEE”,并选中“Retain IEEE address when reprogramming”,点击“Perform action”下载到节点中,这样,就可以将节点的 IEEE 地址修改为自定义的形式。我们定义的工人 ID 号是 12 位的数据,所以只需要将 IEEE 的输入框的后 3 位改为

44、工人 ID,我们就以用修改后的 IEEE 地址来标识工人的 ID 号。MCU 主控机上的 Shell 外壳Shell 是在调试过程中因为感到传统的调试方式不是很方便而添加进去的一个功能,它能够在不中断程序运行的情况下完成一些简单调试功能,比如查看MCU 主控机的网络连接状况、CAN 总线上的数据帧速率、传输出错情况等等。同样,为了方便,Shell 允许使用串口或者以太网的方式登陆。在以后的改进方案中可能会去掉 shell 功能,而选择为 MCU 主控机加上一个触摸显示屏的方式完成调试。5. 系统创新本系统创新之处包含以下几个方面1)矿井下使用有线通信(CAN 总线)和无线通信(ZigBee)两

45、种方式相结合,克服了单纯的有线通信时可移动性能差以及单纯的无线通信时通信距离受限并容易产生多径干扰的缺点,同时使用有线和无线相结合的方式保证了在发生坍塌事故时只要 CAN 总线未被完全压断并且工人周围有可用的转发器时依然能够和地上监控中心取得联系。2)很好的应用了 ZigBee 能够自组织网网络的优点,方便了工人在行走过程中从一个网络漫游到另一个网络。3)使用了基于 ZigBee 无线通信进行粗略定位,节省了通过其他定位方式所需的成本。4)传感器个数可以根据需要进行增删,CAN 总线的使用方便随着采矿的深入而可以逐渐的铺设转发器。5)通过串口和以太网两种方式将数据传送到监控中心,极大的方便了监

46、控中心建在距离矿井出口近处或者远处的需求。6)除了常规的实时的监控环境值外还提出来紧急求救功能,在工人遇到意外事故(比如摔伤或者发现异常情况)时可以通过蜂鸣器发出求救信号,通知在附件的工人前来救助,并且该求助信号还会发送到地面监控中心告知监控人员井下有工人出现发生意外事故。7)上位机监控程序报警时除了发出报警声音外还能在显示画面上改变出现异常的传感器节点的颜色,便于监控人员迅速定位到出现异常的传感器节点。8)在调试过程中提出并使用了 Shell 方式,极大的方便了系统的调试。9)该系统可扩展性强:A可在传感器节点上添加其它类型的传感器,完善其测量环境参数的能力;可增加传感器节点上按钮的功能,使

47、之能和监控中心进行简单的- 18 -通信,比如当井下材料不足的时候工人可以按下预先设置好的某个按钮告知监控中心。B可继续完善程序扩展上位机功能,比如加入数据分析功能对井下数据进行分析预测。 C可继续扩展 Cortex-M3 的功能,比如使之能把数据传到互联网和手机上以便让正在井下作业的工人的亲人能够随时的监测到其所在的环境状况,并且可以在不幸发生事故时第一时间得知。D可以继续挖掘 ZigBee 无线通信的潜力,比如使转发器之间能够相互通信,这样在它们之间的 CAN 总线受损的时候系统依然可以使用无线的方式继续和监控中心进行通信。6. 评测与结论系统测试方法和达到的指标为了测试系统,我们需要模拟

48、出矿井下的环境,但一氧化碳、甲烷等气体不易获取,因此我们决定使用打火机气体(主要成分是丁烷(CH3CH2CH2CH3))来代替可燃气体进行测试,丁烷和甲烷一样都属于有机可燃气体,而我们所使用的传感器对可燃气体都比较敏感,因此代替测试的方案是可行的。而环境温度值的改变我们可以使用烙铁或者打火机对温度传感器进行一定的加热来达到这个效果,光照强度的改变也可以通过用手遮光或者开关窗帘的方式来达到。通过对整个系统的测试我们得到初步的结论,该系统能够在环境参数超过事先设定好的上限值时工人随身携带的传感器节点发出报警声(蜂鸣器长鸣) ,同时 PC 机的监控程序也能够发出报警声,监控界面上的超出预设值的节点能够闪烁。当工人按下求救按钮时,传感器节点能够发出求救声(蜂鸣器间歇性鸣响) ,同时 PC 机上的监控程序也能够收到求助信号发出报警声并显示出求救的节点。通过测试,整个系统已经达到初步预定的目标。由于该系统主要用于井下环境的监测,而井下环境不同于地面上环境,任何设备的设计缺陷都有可能酿成灾难,因此在设计该系统之初我们便了解了本质安全的相关规定,尽管该系统最终和本质安全之间还有一定的距离,但这也正是我们后阶段所需努力的方向。参考文献1 马忠梅、徐琰、叶青林. ARM Cortex 微控制器教程M. 北京. 北京航空航天大学出版社. 2010 年 1 月2 李文仲、段朝玉 . ZigBee2007

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报