实用案例:嵌入式采煤工作面安全集中监控系统
处理中心 | 1 | 摄像头 | 截取图像 | 1 | |
云台 | 控制摄像头转动 | 1 | 电脑 | 存储/显示 | 1 |
电机 | 模拟通风机 | 1 | 报警器 | 发出警告信息 | 1 |
瓦斯传感器 | 检测瓦斯浓度 | 若干 | 水位传感器 | 检测水位高度 | 若干 |
压力传感器 | 检测压力变化 | 若干 | 粉尘传感器 | 检测粉尘浓度 | 若干 |
电源 | 提供电压 | 1 | 网线 | 传输信号 | 若干
|
3.3系统软件架构
系统的软件总体架构如图3.3所示:
如图3.3所示,根据工作平台的不同,我们可以将软件的设计从总体上分为两部分,第一部分主要是在下位机中嵌入了小型操作系统uC/OS-II的工作平台,第二部分是运行WindowXP操作系统上位机的工台中以在下位机平台上的系统开发为主。
在下位机工作平台上,与3.1中硬件系统总体结构相对应的,我们又可以将软件系统细分为四部分。这四部分分别为信号采集模块、信号处理模块、控制模块和网络数据传输模块。在信号采集模块主要完成的功能为信号的选通,即在约定的时间周期内依次处理各个传感器或图像采集器传递过来的数据;如3.1中所述,这里的信号处理模块也分为两部分:图像信号处理作为单独的一部分;瓦斯浓度信号、顶板压力信号、粉尘浓度信号和井下水位信号的处理方法类似,所以把它整体看作一部分;电机控制模块主要包括通风电机控制模块和摄像头的云台控制模块;在网络传输模块主要完成数据的上下传输,实现远程控制等功能。实现各个功能模块的程序通过uC/OS-II进行统一的调度。通过给底层硬件开发驱动程序,对上层软件屏蔽器件的差距,方便应用层各功能模块程序的实现,和通过操作系统提供的接口对最底层硬件的控制。
在上位机工作平台上,借用上位机的显示设备和海量的存储空间,可以在基于微软的操作系统平台WindowsXP上开发出许多优良的软件并实现对从下位机传来的数据的存储。为了更好便于监控中心人员的查看,可以通过图形界面程序的设计增强人机的交互性和可观性。同时除了数据显示、数据存储和传递控制参数以外,还可以通过程序设计,调用存储在数据库中的数据对其进行分析,进一步挖掘潜藏在数据中的信息,从其中总结规律,为以后的安全工作产生工作提供重要数据,进一步提高井下工作的安全性和对周边生态环境的保护。
在这里给出的仅是系统软件的整体结构框图,重要模块的程序实现流程将在3.4中阐述。
3.4 系统软件流程
根据3.3的分析,在软件的设计方面,主要分为下位机和上位机两个部分。嵌入式系统(下位机)与通用型计算机系统(上位机)相比具有很多不同点,首先嵌入式系统通常是面向特定用户群而进行设计的,通常具有低功耗、体积小、集成度高等特点,再次嵌入式系统的硬件和软件都必须高效率地设计,同时嵌入式系统本身一般不具备开发能力。因此嵌入式系统和通用计算机系统在软件设计和实现方面存在许多差异。下面我们将分别阐述在下位机和上位机上运行的各主要功能模块的设计流程,其中以下位机的讲解为主。
3.4.1 uC/OS-II 系统控制模块
在下位机上,为了充分利用系统的资源,嵌入了一个成熟、开源的嵌入式操作系统uC/OS-II 。在本次设计中,uC/OS-II 的主要功能如图3.4.1所示:
uC/OS-II是有美国嵌入式系统专家Jean.J.Labrosse编写的一款源代码开放的实时嵌入式系统。与其他嵌入式操作系统系统相比,除具有源代码开放的有点外,他的可移植性强、功能相对强大,而且其稳定性与可靠性很高,因此本次设计选用这一款操作系统。
系统上电以后先运行自检程序,如果系统的功能模块出现异常,则产生报警信号,为了避免因发出声音警报可能造成的恐慌,本次设计通过EVK1100自带的LED灯阵列来提示异常,工作人员可以通过LED灯阵列显示的不同信号快速的查询到问题的所在点,及时的排除问题。
待判断系统各功能模块运行正常以后启动uC/OS-II。uC/OS-II可以大致分成核心、任务管理、时间处理、任务同步与通信和CPU移植等五个部分。在本次设计中