无线传感监控网络嵌入式设计研究
2013-12-16周怡
周怡
【摘 要】无线传感器网络是计算机科学领域的重要组成部分,在生活、工业等领域的应用范围也逐渐扩大。本文结合笔者多年的实践经验,重点探讨了无线传感监控网络嵌入式设计的研究工作,实现了系统从信息采集到告警的整个过程,为类似的设计工作提供借鉴意义。
【关键词】无线传感器网络;嵌入式;监控中心;模块设计
随着我国社会经济建设步伐的加快,人们的物质生活水平得到不断的提高,许多现代人们对于医疗等服务性行业的实时性、灵活性、智能化及人性化的要求越来越高,这无疑加快了医疗等服务行业内部系统的升级及改造。无线传感器网络是计算机科学领域非常活动的一个研究分支,在民用和军事方面有着广泛的应用,目前也受到业界人士的高度关注。无线传感器网络具有低功耗、低成本、分布式和自组织等特点,其综合了传感器技术、嵌入式技术、现代网络、无线通信及分布式信息处理技术,可以不受时间、地点和环境的限制,以最快的速度获取大量详尽而可靠的信息,有效降低了工作人员的工作量、提高了工作效率。本文通过探讨无线传感监控网络嵌入式设计的研究工作,提出一些个人见解,希望可以进一步拓宽无线传感器网络的应用范围。
1.系统分析
基于无线传感网监控系统是以UP-CUPS2410硬件平台为基础,以Linux操作系统为核心,通过ARM9平台同无线传感器网络的结合完成个人生理特征数据的采集、传输和处理,最终达到远距离无线智能监控的实现,使医疗监控系统实现实时性、人性化、智能化。系统是基于Arm9开发平台的一项综合技术,结合Liunx嵌入式操作系统,利用程序对所接收的数据进行处理与分析。用户端采集好信息后,可以利用无线传感器传到中央监控系统;中央监控系统能正确接收信息,并做处理(比较,保存)。
2.软件设计与实现
本监控系统的核心功能都采用应用软件实现,该系统所涉及的应用软件模块如图1所示:
图1 系统软件的逻辑框图
其中,各种驱动程序包括USB串口驱动、触摸屏驱动、鼠标驱动、文件驱动等负责和具体的硬件交互,为上层提供硬件抽象层;Linux内核负责任务调度、中断处理等操作系统核心功能,为应用程序提供API调用接口。这两层主要都在Linux操作系统中实现,其中USB串口驱动并没有在UP-CUPS2410标准发布版中提供,在实现的时候重新编译了USB串口驱动并集成到Linux内核中。数据采集模块、数据存储模块、告警模块以及用户GUI都是应用层程序,是系统实现的核心,其中数据存储模块将采集来的数据存入日志文档中,后期可将数据存入数据库中,下面将重点介绍USB串口驱动模块、数据采集模块、告警模块、用户界面模块的软件设计。
2.1 USB串口驱动模块设计
无线传感器网络的Sink节点只提供USB接口,而UP-CUPS2410开发箱Linux标准版中并没有提供此驱动,因此需要对内核重新配置和编译。
2.1.1 内核配置
进入Linux内核所在目录,然后执行make menuconfig,进入内核编译菜单,在内核配置菜单中选择FTDIUSB接口,驱动采用集成进内核的方法,这样就可以在插入USB接口的时候可以自动加载其驱动。
2.1.2 内核编译
在内核配置修改完成后,就可以进行内核的编译,分别执行make clean;make dep;make zImage三个命令,最终生成zImage内核文件。
将重新生成的内核文件烧写进开发板,参考步骤如下:
(1)并用串口线连接pc和2410-CL,打开超级终端,先按住pc机“Back Space”键,然后启动2410-CL,进入vivi>状态下,设置开发板IP,其命令为:ifconfigip192.168.1.115。
(2)设置tftp服务器的IP(启动tftp服务器的主机),其命令为:ifconfig server192.168.1.85。
(3)保存IP设置:其命令为:ifconfig save。
(4)Windows平台下tftp服务的配置:双击“D:\bootloader”目录下的tftpd32.exe文件,对Windows下的tftp服务进行配置。
(5)在vivi状态下,输入烧写内核的命令为:tftp flash kernel zImage。
(6)烧写根文件系统,在vivi状态下,输入烧写根文件的命令为:ftp flash root root.cramfs。
2.2 数据采集模块
信息采集模块采集的温度、脉搏等信号,利用无线传感器网络最终到达Sink节点,监护中心终端模块同Sink节点以USB接口连接,但在系统内部USB接口会映射为串口,因此数据采集模块就可以直接访问对应的串口而取得所采集的数据。本设计使用多线程来完成串口的收发处理,传感器每隔三秒会通过串口发送一次数据。所涉及到的线程函数主要有:
线程创建函数:int pthread_create(pthread_t*thread_id,__const pthread_attr_t*__attr,void*(*__start_routine)(void*),void*__restrict__arg)
线程退出函数:voidpthread_exit(void*__retval)
等待指定的线程结束:int pthread_join(pthread_t__th,void**__thread_return)
2.3 告警模块
当监测到有超标数据时,即可以在监护终端的界面上进行实时报警显示,也可及时地触发GPRS功能的短信业务,将出现的报警信息实时地发送到提前指定的手机上。下面分别介绍界面告警和短信告警的实现。
2.3.1告警界面设计
告警模块从数据采集模块实时得到任意节点采集的体征数据,当某些数据数值超过设定门限时,告警模块在用户界面上进行告警提示。论文设计实现了体温的告警,即当某节点的体温超过37.5度时,系统会记录该时刻温度数值,并在界面上报警。这一模块是采用QT界面构架,用C++及QT结合编程,warning()函数实现,在MyForm1.h中定义有关告警的参数如下:
typedefstruct{
inttowarn;
intwarncounter;
charwarnmsg[128];
}str_warn;
采用QT编程,告警界面用的是QlistBox类,用到的头文件有
2.3.2 短信告警
使用GPRS的短信业务,在各个节点出现超过所设门限值时,自动触发GPRS的功能,将出现的报警信息实时地发送到提前指定的手机上,让监护人第一时间得到病人信息。可以更方便地做到监护。此处调用gprs_read()函数调用GPRS模块,用gprs_init()初始化GPRS各个参数,调用gprs_msg()函数发送短信。
2.4 用户界面模块
用户界面是用户同系统的接口,是用户使用系统的重要手段。本系统采用Qt2.3.2版本实现用户界面。其中需要用到QT本身的类,本次用的类有Qlist-ViewItem,QlistBox,Qtime,Qdate,QmessageBox,Qinput-Dialog,QgridLayout,QlineEdit,QpushButton,class QV-BoxLayout,QHBoxLayout,Qframe,QLCDNumber,Qlabel,QlistBoxIte,QlistView,QlistViewItem,QPushButton,Qtab-Widget,Qwidget。
用到相关QT的头文件有qmessagebox.h,qlistbox.h,qstring.h,qapplication.h,qlistview.h,qlcdnumber.h,qdatetime.h,qinputdialog.h,qpushbutton.h,qlabel.h,qvariant.h,qdialog.h,qvariant.h,qwizard.h,qlineedit.h。
设计的槽位有slot_start(),slot_close(),slot_stop(),slot_set(),slot_tele(),showTime(),stopDate(),loginclick(),exitClick()。
具体的界面主要包括登录界面、数据查看界面、告警界面等。用户如果想使用系统,则必须是合法用户,因此系统在运行时必须先输入账号和密码,系统验证用户的合法性,如果用户账号和密码正确则允许登录,否则将不能使用本系统。
3. 结束语
通过探讨无线传感监控网络嵌入式设计的研究工作可知,该系统设计从系统上来说是比较完整的,实现了信息收集到告警的全过程,并凸显出系统安全性高、成本低、智能化程度高等特点。相信随着科学技术的进一步发展,无线传感监控网络的设计可以得到不断的完善,这对拓宽系统的应用范围具有重要影响。
参考文献:
[1] 蔡雪佳;李旭;邓枫.基于无线传感网的嵌入式远程监控系统研究[J].现代电子技术.2011年第16期
[2] 李栋;秦宁宁;徐保国.基于无线传感器网络的嵌入式温室监控系统[J].仪表技术与传感器.2009年第05期