户消息的方式与显示子窗口进行通信,即当三个线程处理完一件事后,会发送消息通知显示子窗口,然后子窗口根据具体的不同消息来想对其进行响应。对于采样线程有一个全局标志位GatherFlag,该线程具体是否做实质性工作取决于该标志位,当用户执行终端设备进行采集时,对应标志位置位,进而采集线程执行,进行具体采集工作,当用户选择停止时会停止采集,采集线程每采完一场会向显示子窗口(后面将介绍)发送采集消息,以便子窗口更新心电数据以及显示;对于Socket通信线程,一旦建立后,便实时等待服务器端发来的数据包,收到数据包后对其进行解析,解析完命令后会向显示子窗口发送消息,子窗口的响应函数会根据命令字来响应服务器的具体操作;对于RTC时钟线程,它配合内核提供的时间处理函数,实时记录时间变化,并定时发送消息到子窗口,使子窗口实时更新时间,同时心电数据的保存记录也要以时间为依据。对于输入模块,供用户对终端的控制,当用户触摸显示界面按钮或者按下按键时都会向显示子窗口发送消息,并传递按键识别参数,显示子窗口过程函数根据具体的消息携带参数来识别用户具体操作。对于显示模块主要用来实现心电波形显示以及各个控件的显示、时间显示、病人信息显示等。
四、 嵌入式Web 服务器的设计
4.1 嵌入式Web 服务器概述
嵌入式Web 服务器(EWS,Embedded Web Server)是指将Web 服务器引入到现场测试和控制设计中,在相应的硬件平台和软件系统下,使传统的测试和控制设备转变为具备了以TCP/IP 为底层通信协议、Web 技术为核心的基于互联网的网络测试和控制[44]设备 。嵌入式Web 服务器与传统的服务器比较,它的体积小、功耗低、任务响应速度快,适应应用环境较强。本文所研究的嵌入式 Web 服务器采用 Browser/Server的方式来工作,本质上, Browser/Server 也是一种Client/Server 结构,它是一种由传统的二层Client/Server 结构发展而来的三层Client/Server 结构,在Web 上应用的特例。客户端要有一个浏览器程序,而服务器则需要有一个 Web服务器,可通过网页来进行相应的设置和操作。嵌入式 Web服务器监听客户端的服务请示,根据客户请求的类型来提供相应的服务,并返回相应的处理结果。 由于嵌入式设备资源一般都有限,并且也不需要能同时处理很多用户的请求,因此不会使用Linux 下最常用的如Apache 等服务器,而需要使用一些专门为嵌入式设备设计的Web 服务器,这些Web 服务器在存储空间和运行时所占有的内存空间上都会非常适合于嵌入式应用场合。典型的嵌入式Web 服务器有httpd 、Boa 和thttpd, ,在这里我们选用Boa 作为嵌入式服务器。Boa 是一个非常小巧的Web 服务器,可执行代码只有约60KB 。它是一个单任务Web 服务器,只能依次完成用户的请求,而不会fork 出新的进程来处理并发连续请求。Boa 支持CGI,能够为CGI 程序fork 出一个进程来执行。Boa 的设计目标是速度和安全,在其站点的性能测试中,Boa 的性能要好于Apache 服务器 。
4.2 嵌入式Web 服务器的移植
BOA 服务器的移植过程如下: (1)下载Boa 源码
从 http://www.boa.org/上下载源码 boa-0.94.13.tar.gz ,并解压: # tar xzf
boa-0.94.13.tar.gz
(2)生成Makefile 文件 # cd /boa-0.94.13/src # ./configure (3)修改Makefile 文件
# cd /boa-0.94.13找到CC=gcc,将其改为
CC=/usr/local/arm/3.3.2/bin/arm-linux-gcc
找到CPP=gcc –E,将其改为
CPP=/usr/local/arm/3.3.2/bin/arm-linux-gcc –E ,并保存退出。 (4)编译 # make
# /usr/local/arm/3.3.2/bin/arm-linux-strip boa (5)修改boa.conf :
①Group 的修改:
将Group nogroup 改为Group 0
②scriptAlias 的修改:
将scriptAlias /cgi-bin/ 改为/usr/lib/cgi-bin/ 将scriptAlias /cgi-bin/ 改为 /var/www/cgi-bin/ ③ServerName 的设置:
将#ServerName http://www.your.org.here/ 改为 ServerName http://www.your.org.here/
另外还需要创建日志文件所在的目录/var/log/boa ,创建 HTML文档主目录 /var/www,创建CGI 脚本所在目录/var/www/cgi-bin/ ,将mime.types 文件复制到/etc目录。另外可以根据自己需要,对boa.conf 进行修改,但必须保证其它的辅助文件和设置必须和boa.conf 里的配置相符,否则boa 就不能正常工作。最后将boa-0.94.13 下的 boa 可执行文件拷贝到bin 下面。
(6)测试
写一个简单的HelloWorld 程序,程序代码如下: #include
Void main() {
Printf(“Content-type:text/html\\n\\n”); Printf(“\\n”);
Printf(“
Printf(“
将该程序进行交叉骗译,运行如下: # arm-linux-gcc –o helloworld.cgi helloworld.c
4.3 动态心电监护网页设计
目前Web 技术中生成动态Web 页面的方法有CGI、ASP 、JSP 等,在嵌入式WEB 服务器中,由于资源限制问题,一般采用CGI 。CGI(Common Gate Intergace)是外部应用扩展程序与WWW 服务器交互的一个标准接口 。其主要的功能实现在WWW 环境下,藉由客户端提供给Web 服务器的各种讯息,由Web 服务器启动所指定的CGI 程序来完成诸如对数据库的访问、存储信息等特定工作,最后将处理后的结果反馈给客户,从而完成客户端与服务间进行的信息交流,即通常说的“交互式主页”。 CGI 可以使用多种编程语言,如Perl 、C++、C、shell 脚本语言,本系统采用C 语言编写,用C 语言编写的CGI 程序执行速度较快,安全性较高,比较适合嵌入式系统。 动态心电监护网页主要完成的功能是病人信息的查询、心电波形的显示和分析以及心电数据下载。首先由网页制作工具 FrontPage 制成网页,生成 HTML 模板,然后由CGI 生成动态功能。CGI 程序的工作一般就是接收表单数据,进行数据处理,最后根据处理结果生成新的页面返回浏览器。
在病人信息查询中,用户只需要在主页上输入需要查询的姓名,点击查询按钮则可以在界面的左侧显示病人的信息。首先建立了病人信息的文本文件,里面记录了病人的姓名、编号、性别、年龄、血型、体重等信息。当用户输入姓名时,
相当于用户提交一个HTML Form,在CGI 程序设计中,使用getenv ()函数通过环境变量QUERY_STRING向CGI 程序传递Form 中的数据,也就是用户输入的姓名。环境变量是Web 服务器传递数据给CGI 的手段,根据用户输入的查询条件“姓名”,打开病人信息文本文件,查询到该病人的信息列表,通过“Content-type :text/html\\n\\n ”头信息将输出信息告诉 Web服务器,并且通过使用printf()将需要输出的病人信息传送给 Web 服务器。这样所需要查询的病人的信息列表则在网页的左边显示出来。 如果需要显示该病人心电波形,则点击“显示波形”按钮即可。本系统中把采集到的心电数据存储在 Web服务器中,当点击“显示波形”按钮时,根据用户输入的查询条件,找到其对应的心电波形数据文件,打开心电数据文件,将数据读入数组中,该数组中存储的是5 秒的心电数据,利用GD 库提供的函数来显示波形。GD 是一个以C 语言源码形式提供的跨平台免费绘图软件包,在CGI 工程文件中加入gdlib.lib,在该程序 头文件部分包括gdlib.h,就可以调用GDLib 中的图形函数进行绘图了。在这里使用GD函数库中的int ImageLine(int im, int x1, int y1, int x2, int y2, int col) 函数对数组中进行画实线。同上面MiniGUI 程序开发的采集系统的界面一样,点击“心率”和“分析结果”,可以在网页输出该病人的心率,以及对该心电波形的分析结果。 网页上同时提供心电数据下载功能,CGI在响应头信息中加入内容描述为attachment,根据用户输入的“姓名”,找到其对应的文件,使用fopen( )函数打开文件, fread( )函数读取文件内容,fwrite( )函数打印到标准输出。
五、总结
本文根据大多数的心电监护系统存在不足,引进嵌入式系统技术、嵌入式Linux 技术设计了基于ARM9 的远程心电监护系统,所做的工作主要归纳如下:
(1)心电监护系统的硬件设计。该系统的硬件设计是在MINI2440 上进行的,根据心电信号的特点,设计了缓冲处理电路、前级放大电路、高低通滤波电路、隔离电路、主放大电路等,完成心电信号采集电路的设计。
(2)对Linux 的内核进行研究,根据所设计的硬件点和系统的需要,设计了BootLoader启动代码,对内核进行裁剪,构造了可读可写的YAFFS 文件系统。同时根据Linux 驱动模型完成了对驱动的实现。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库心电监护系统的设计(3)在线全文阅读。
相关推荐: