毕业设计(论文)-远程心电监护系统是基于ARM9--开发平台.doc_第1页
毕业设计(论文)-远程心电监护系统是基于ARM9--开发平台.doc_第2页
毕业设计(论文)-远程心电监护系统是基于ARM9--开发平台.doc_第3页
毕业设计(论文)-远程心电监护系统是基于ARM9--开发平台.doc_第4页
毕业设计(论文)-远程心电监护系统是基于ARM9--开发平台.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基 于ARM9 的远程心电监护系统研究与设计 摘 要 心脏疾病成为危害人类健康和生命的主要疾病之一,目前心电监护系统为心脏病人 诊断和治疗提供了一个有效的手段,尽管已设计出各种心电监护设备,但是由于设备昂贵,系统扩展性和软件系统可裁 剪性较差,心电波形辩认的专业性强,监护实际上依然只够少量人在医院环境下进行。 针对这种情况,本文以嵌入式系统为基础,设计出一种基于ARM9 的远程心电监护系统, 该心电系统具有Web 服务器功能。 本课程设计的远程心电监护系统是基于ARM9 开发平台进行设计,采用高性能的 3C2440。首先在MINI2440 硬件基础上完成心电信号采集电路的设计。主要包括缓冲处理电路、前级放大电路、高低通滤波电路、隔离电路、主放大电路等。然后根据所设 计的硬件的特点和系统需要 通过一定的实验证明,本课题所设计的系统能够较好的实现心电信号的采集、波形 显示、处理等功能。同时在动态网页上可对病人信息查询、心电波形显示、分析及心电数据下载等,为产品进一步研究和开发奠定了基础。 关键词:心电监护,嵌入式系统,第1章 绪 论11.1课题研究的意义11.2课题研究的目的1第2章 心电监护系统硬件设计22.1 心电信号的特点22.2 MINI2440 开发平台介绍42.3 心电信号采集放大电路52.3.1 缓冲处理52.3.2 前置放大和滤波62.3.3 隔离72.3.4 主放大电路8第3 章 嵌入式Linux操作系统的裁剪和移植93.1 BootLoader 实现93.1.1 BootLoader 概述93.1.2 BootLoader 启动过程103.4 Linux 设备驱动的开发103.4.1 Linux 设备驱动的概述103.4.2 A/D 设备驱动设计11第4章 心电采集界面设计134.1 心电采集与显示14第5 章 嵌入式Web 服务器的设计155.1 嵌入式Web 服务器概述155.2 嵌入式Web 服务器的移植16参考文献17 第1章 绪 论 1.1课题研究的意义 心脏疾病成为危害人类健康的主要疾病之一,据统计全世界死亡人数中有三分之一死于该疾病,近年来我国心血管病的死亡率占人口总死亡率44%1。心血管疾病死亡率 高于欧美国家及日本 。因此对心脏疾病的防治和诊断是非常重要。 目前心电监护仪为心脏病人诊断和治疗提供了一个有效的手段。它是把心脏产生的 微弱电流(mv 级)接收,放大并记录出心电图的装置。它可向医护人员提供病人心电信号 的重要信息,利用这些信息,临床医生能更好地分析患者的病情,从而采取适当的治疗措施,获得最佳的治疗效果,因此心监护仪的作用越来越受到重视。 1.2课题研究的目的 尽管已设计出各种心电监护设备,但是大多数的心电监护系统仍然存在不足之处 。心电设备昂贵,只有少量的家庭购买;心电波形辩认的专业性强,自动分析的能力低,操作性不高,监护实际上依然只够少量人在医院环境下进行;各种接口为专业医疗设备设计;虽然远程医疗也应用于心电监护设计中,基于Internet 网络的远程心电监护系统大多数采用的是客户机/服务器(C/S)的模式,一般由客户机采集心电数据,然后通过网络传输给大型中心服务器,服务器上安装服务器软件,同时,在客户机上安装相应的客户端应用软件,这样才能使客户端得到相应的服务。成本高、系统结构复杂、开放性低。针对这些不足,本文设计了一种基于ARM9 的远程心电监护系统,该心电监护系统 在ARM9 开发平台上进行,采用高性能的S3C2440 微处理器,引用了嵌入式Linux 技 术,在心电监护界面上除了对心电波形进行显示,另外还对心率进行了分析,以适用于 更多的人群。同时该心电监护系统中具备WEB 服务器功能,采用了浏览器/服务器(B/S ) 的模式,用户在任何地方通过浏览器能够访问该心电监护系统,在动态网页上能够对病 人的信息进行查询、心电波形的分析以及心电数据的下载,实现了远程医疗。 第2章 心电监护系统硬件设计 嵌入式微处理器和嵌入式操作系统为核心的嵌入式技术是最近一个新的技术发展 方向。以ARM 公司的32 位IP 核为基础的ARM 嵌入式微处理器,因其高性能、低功 耗、低成本、小体积以及完整的产业链支持,成为嵌入式系统设计的理想选择。本文选用的是广州友善之臂科技有限公司提供的MINI2440 开发板,在它的基础上进行研制开发心电系统,MINI2440 采用 Samsung S3C2440 微处理器,系统硬件设计总体框图如 图2.1 所示。 MINI2440开发平台 心电信号采集放大电极 图2.1 系统硬件总体结构 2.1 心电信号的特点 心脏在周期性活动中,伴随着规律的周期性变化的心电生理活动。心脏的心电生理 活动可以看作一组电偶,这组电偶的大小、方向在每次心动周期中呈现有规律性的变化,电偶的电流流经人体的各个部位,在人体表面任何一点产生一个相应变化的电位。将测量电极放置在人体表面的一定部位记录出来的心脏电变化曲线,就是目前临床上常规记录的心电图(ECG)19。心电图是心脏兴奋的发生传播及恢复过程的客观指标,它可记录心脏节律和频率以及电压的高低,用于诊断各种心律失常、心肌病变、心肌梗塞及心肌缺血等,是心血管病最常用的检查手段。典型的心电波形如图2.2 所示。 图2.2 典型的心电波形 (1)P 波:P 波由心房除极所产生,是每一波组中的第一波,它反映了左、右心房的 除极过程。前半部分代表右房,后半部分代表左房。 (2) P-R 间期:从p 波的起点至QRS 波群的起点,代表心房开始除极至心室开始除 极的时间。 (3)QRS 波:典型的QRS 波群包括三个紧密相连的波,第一个向下的波称为Q 波, 继Q 波后的一个高尖的直立波称为R 波,R 波后向下的波称为S 波。因其紧密相连,且反映了心室电激动过程,故统称为QRS 波群。这个波群反映了左、右两心室的除极过程。 (4) ST 段:自QRS 波群的终点至T 波起点间的线段,代表心室缓慢复极过程。 (5)Q-T 间期:从QRS 波群的起点至T 波终点,代表心室除极和复极全过程所需的 时间。 (6)T 波:T 波位于S-T 段之后,它是心室复极所产生的。 (7)U 波:位于T 波之后,反映心肌激动后电位与时间的变化。人体的心电信号主要有以下几个特点: (1)微弱性 其幅值一般为1mV4mV。 (2)低频性 频率范围一般为0.05Hz-100HZ,能量主要集中在17Hz 附近。 (3)高阻抗性 心电的信号源是人体,人体的内阻较大,因此心电信号的阻抗一般为数十欧到数百 千欧。 (4)不稳定性和随机性 人体受外界的影响较大,而且内部器官的相互影响,因此造成了心电信号的不稳定性和随机性。心电信号除存在上述特点外,在检测心电的信号的同时存在着很大的干扰。主要有 50Hz 的工频干扰,电极移动引起基线漂移(一般小于1Hz),肌肉收缩和兴奋所引起的肌 电干扰(几百Hz 以上)等,所以心电放大电路必须根据以上的特点进行设计,才能得到 放大、无干扰的心电信号。 2.2 MINI2440 开发平台介绍 MINI2440 采用高性能的ARM9 微处理器以其优化的片上性能,在视频会议、楼宇的对讲系统、网络监控、GPS 定位/导航仪、医疗电子设备、多媒体终端产品等应用领 域有广泛应用,其主要的硬件配置如下 : (1) CPU 处理器 三星S3C2440(ARM920T core with MMC, 最高主频可达532MHz)。 (2)SDRAM 64M SDRAM,32 位数据线,SDRAM 时钟频率高达100MHz。 (3)FLASH 存储 64Mbyte Nand Flash ,2M Nor Flash,已经安装了BIOS。 (4)液晶屏支持(LCD Support) 集成4线电阻式触摸屏接口,可以直接连接四线电阻触摸屏;支持黑白、4 级灰度、级灰度、256 色、4096 色STN液晶屏,尺寸从3.5 寸到12.1寸,屏幕分辨率 可以达到1024x768 象素;支持黑白、4级灰度、16级灰度、256色、64K 色、真彩 色TFT 液晶屏,尺寸从3.5寸 到12.1寸,屏幕分辨率可以达到1024x768 象素;引 出一个12V 电源接口,可以为大尺寸TFT 液晶的12V CCFL 背光模块(Inverting) 供电。 (5) USB 端口(USB Port) 1 个主USB 接口,1 个从USB 接口。 (6) 音频 1 路立体声音频输出接口(标准3.5mm 接口),1 路麦克风接口。 (7) 网络 1 个100M 以太网RJ-45 口(采用DM9000 网卡)。 (8) SD/MMC 卡 1 个SD/MMC 卡存储接口。 (9) 摄像头 引出CPU 内部全部摄像头信号引脚。 (10) 串口 3 个串行口, COM0 为RS232 DB9 接口(亦引出TTL 接口),COM2 和COM3 为2.0mm 间距。 (11) 扩展接口 1 个34pin 2.0mmGPIO 接口,1 个40pin 2.0mm 系统总线接口。 (12) 实时时钟 板载实时时钟,带有备份锂电池。 (13) Jtag 接口 标准JTAG 接口(2.0mm 间距)。 2.3 心电信号采集放大电路 心电信号采集放大电路由缓冲处理,前置放大和滤波,隔离技术、主放大等组成。 2.3.1 缓冲处理 心电电极信号首先进入缓冲级,缓冲放大电路可以获得高共模抑制比。同时为了 保护人体的安全问题,在缓冲放大电路中,采用220V 的供电心电仪器中限制通过人体 的电流一般不能超过10 毫安,因此在如图2.3 所示的缓冲放大电路图中我们设置R1 的阻值为22 千欧 。 图2.3 缓冲放大电路图 2.3.2 前置放大和滤波 心电信号电压幅值一般为1mV4mV22-23,A D 转换输入信号范围是正负5 伏, 所以放大倍数大约为1000 左右。电路采用两级放大,来自人体的心电信号源阻抗高,要求放大电路的输入阻抗也必须足够高才能不衰减电极的有用信号。50Hz 交流共模干 扰信号必须在前置放大电路中加以抑制,放大倍数定为16。另外,常见的心电信号的 频率范围为0.05Hz100HZ 之间,由C12 和R6 组成高通滤波器,抑制低于0.05Hz 信号的干扰,可得截止频率见公式(2.1)。 f=1/2R6C12=1/23.1415310610-6=0.05HZ 设计由C26 和R9 组成的低通滤波器,抑制高于100Hz 信号的干扰,可得截止频 率见公式(2.2)。 f=1/2R9C26=100HZ 图 2.4 前置放大电路图 2.3.3 隔离 为了心电前置放大电路不受电源电压的影响,采用电源隔离技术,使得人体与电源 电压相隔离,电源隔离电路如图2.5 所示,采用了DC/DC 电源模块,输入为+5V 电压,输出为12 V 和5V 电压,其中隔离电压达到1500V,保证人身安全 。 图2.5 电源隔离 在前置放大电路的隔离中还包含心电信号隔离,在心电信号后续的数字化的A/D 转 换需要隔离前置级的共地回路(浮地),在电气上将前置级与后续电路隔离。放大隔离 级电路的引入还能有效地消除地线中串入的共模干扰信号,提高共模抑制比,因此采用 光电隔离放大电路,电路结构图如图2.6 所示。 图2.6 光电隔离 2.3.4 主放大电路 在前置放大电路心电信号已放大16 倍,而心电信号放大需要千倍数左右,心电信 号需要进一步放大,采用反相放大电路,如图3-6 所示,A=R85/R81,放大倍数为63, 图2.7 所示。 图2.7 主放大电路 经放大后得到的摸拟信号经过电压偏移后需转换为数字信号才能进一步的分析 和处理,本系统S3C2440 自带一个10 位CMOS 的具有8 通道摸拟输入的模数转换器, 在2.5MHz 的A/D 转换时钟下,最大的转化速率可达到500KSPS,支持片上采样和保持功能及掉电模式。 第3 章 嵌入式Linux操作系统的裁剪和移植 在各种嵌入式操作系统中,Linux以其结构清晰、源代码公开、功能强大、又易于 移植得到广泛的使用。本系统使用的Linux 内核采用2.6 版本的内核, Linux2.6 内核在 性能、模块支持、可用性、可测量性等方面有大幅度的提高。一个完整的嵌入式Linux 系统主要包括BootLoader(引导程序)、内核和根文件系统三个方面,要搭建适合自己需 要的嵌入式Linux 系统是一个复杂的过程,除了对Linux 内核和目标平台有一定的了解 之外,移植技术和经验是非常关键的。 3.1 BootLoader 实现 3.1.1 BootLoader 概述 BootLoader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我 们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合 适的状态,以便为最终调用操作系统内核准备好正确的环境。不同的 CPU 体系结构一 般都有不同的 BootLoader,有些 BootLoader 也支持多种体系结构的 CPU 。除了依赖 于 CPU 的体系结构外,BootLoader 实际上也依赖于具体硬件的其它配置。这也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种 CPU而构建的,要想让运行在 一块板子上的 Boot Loader 程序也能运行在另一块板子上,通常也都需要修改 BootLoader 的源程序 。大多数 Boot Loader 都包含两种不同的操作模式:启动加载模式和下载模式。 启动加载(Bootloading)模式:这种模式也称为 自主 (Autonomous )模式。也即 Boot Loader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个 过程并没有用户的介入。这种模式是 Boot Loader的正常工作模式。 下载(Downloading )模式:在这种模式下,目标机上的 Boot Loader 将通过串口 连接或网络连接等通信手段从主机下载文件,将它们直接放在内存运行或是烧入flash 类固态存储设备中。Boot Loader的这种模式通常在第一次安装内核与根文件系统时被 使用;此外,以后的系统更新也会使用 Boot Loader的这种工作模式。工作于这种模式 下的 Boot Loader 通常都会向它的终端用户提供一个简单的命令行接口。 3.1.2 BootLoader 启动过程 从操作系统的角度看,BootLoader 的总目标就是正确地调用内核来执行。大多数 Boot Loader 都分为 stage1 和 stage2 两大部分。依赖于 CPU体系结构的代码,比如 设备初始化代码等,一般都放在 stage1中,通常都用汇编语言来实现,以达到短小精 悍的目的。而 stage2则通常用C 语言来实现,这样可以实现复杂的功能,而且代码会 具有更好的可读性和可移植性。 9 3.4 Linux 设备驱动的开发 3.4.1 Linux 设备驱动的概述 设备驱动程序是Linux 内核的重要组成部分,在嵌入式linux 系统中,由于内核的保护机制,用户一般不能直接访问硬件,而是通过调用驱动程序来实现对硬件的控制。 Linux 抽象了对硬件的处理,所有的硬件设备都可以像普通文件一样来看待:它们 可以使用和操作文件相同的、标准的系统调用接口来完成打开、关闭、读写和I/O 控制 操作,而驱动程序的主要任务也就是要实现这些系统调用函数。Linux 系统中的所有硬 件设备都使用一个特殊的设备文件来表示,例如,系统中的第一个IDE 硬盘使用/dev/hda 表示。每个设备文件对应有两个设备号:一个是主设备号,标识该设备的种类,也标识 了该设备所使用的驱动程序;另一个是次设备号,标识使用同一设备驱动程序的不同硬件设备。 在Linux 中,将各种设备大致分成3 种基本类型:字符设备、块设备及网络设备。 字符设备采用字符流方式访问的设备,如字符终端、串口,一般只能按顺序访问,但也 可以前后移动访问指针。对应的字符设备驱动的接口是标准的文件系统调用接口。块设 基于ARM9 的远程心电监护系统研究与设计 备是采用数据块方式访问的设备,如磁盘等。块设备的存取是通过缓冲方式来进行的,并且可以进行随机访问,即不管块位于设备中何处都可以对其进行读写。对应的块设备 除了和字符设备驱动一样的文件系统调用接口之外,还提供了专门的面向块设备的接 口,但这个接口对用户来说是不可见的。由于块设备通常都提供文件系统支持,因此常 用的设备访问方式都是通过文件来进行。网络设备是采用数据包传输方式访问的设备。和前两者不同,由于不是面向流的设备,因此将网络设备映射为文件系统中的设备文件 就比较Linux 采用的方法是给它们分配一个惟一的名字。同时,内核与网络设备驱动间 的通信安全不同于字符设备以及块设备驱动程序之间的通信,而是采用了一套和数据包传输相关的函数。 Linux 内核内部通过file 结构识别设备,通过file_operations 数据结构提供文件系统 的入口点函数,file_operations 定义在于文件中 。该结构的每一个成员的 名字都对应着一个系统调用。在用户进程利用系统调用设备文件进行诸如read/write 操 作时,系统调用通过设备文件的主设备号找到相应的设备的驱动程序,然后读取这个数 据结构相应的函数指针,接着把控制权交给该函数。从某种角度来说,编写设备驱动程 序就是为具体硬件的file_operations 结构编写各个函数。 3.4.2 A/D 设备驱动设计 本开发平台中提供了液晶显示器、网卡、串口、USB 等的驱动,但没有AD 设备驱 动,其主要开发步骤如下35-37: (1)AD 初始化模块 AD 初始化模块主要功能是向内核注册设备和申请中断。 int _init s3c2440_adc_init(void) A初始化函通过register_chrdev_region(devno, 1, s3c2440adc)向内核注册一个字符驱动设备,其中devno 为注册的设备号,1 为设备个数。 另外我们可以由alloc_chrdev_region(&devno, 0, 1, s3c2440adc )函数动态分配一个设备号: 卸载设备用unregister_chrdev_region(devno, 1)函数表示。 同时在注册驱动时,通过以下函数向系统申请中断: equest_irq(IRQ_ADC, adcdone_int_handler, SA_INTERRUPT, DEVICE_NAME, NULL),其中adcdone_int_handler 为中断处理函数。 (2)定义file_operations 回调函数 static struct file_operations s3c2440adc_fops = owner: THIS_MODULE, open: s3c2440adc_open, read: s3c2440adc_read ,write: s3c2440adc_write, release: s3c2440adc_release, ; (3)编写 file_operations 中定义的调用函数,可以对设备进行打开和读写操作。 static int s3c2440adc_open(struct inode *inode, struct file *filp) static ssize_t s3c2440adc_read(struct file *filp, char *buffer, size_t count, loff_t *ppos) static ssize_t s3c2440adc_write(struct file *file, const char *buffer, size_t count, loff_t * ppos) static int s3c2440adc_release(struct inode *inode, struct file *filp) s3c2440adc_read( )函数实现将ADC 的数据转换并读取,操作系统内核和驱动程序 在内核空间中运行,而用户程序在用户空间中运行,因此存在着内核空间与用户空间的 数据交换,copy_to_user函数实现将内核空间的数据拷贝到用户空间中。同理在 3c2440adc_wirte()函数中调用copy_from_user 实现将用户空间的数据拷贝到内核空间。 (4)中断处理模块 S3c2440 转换后,将产生一个中断信号,中断调用函数如下: wake_up(&s3c2440adc_dev.wait); 第4章 心电采集界面设计 MiniGUI 中有三种窗口类型:主窗口、对话框和控件窗口,心电采集界面是采用对 话框进行设计,对话框编程是一种快速构建用户界面的技术,通常,我们编写简单的图 形用户界面时,可以通过调用CreateWindow 函数直接创建所有需要的子窗口,即控件。 但在图形用户界面比较复杂的情况下,每建立一个控件就调用一次CreateWindow 函数, 并传递许多复杂参数的方法很不可取。主要原因之一,就是程序代码和用来建立控件的 数据混在一起,不利于维护 。为此MiniGUI提供了一种基于模板的机制,利用 CTRLDATA 和DLGTEMPLATE 两个结构体来表示,结构体CTRLDATA 用来定义控件, DLGTEMPLATE 用来定义对话框本身 。利用这两个结构体模板,用户可以根据需要 在程序中定义自己的对话框和控件。对话框定义如下: static DLGTEMPLATE DlgInitProgress = WS_BORDER | WS_CAPTION, WS_EX_NONE, 0, 0, 240, 320, 欢迎使用心电信号采集系统, 0, 0, 10, NULL, 0 ; 心电采集界面主要有心电数据采集与显示、存储、分析等功能,采用多线程编程, 为采集、显示、存储、分析各建立一个专门的线程。采用多线程进行数据采集可以有效 地加快程序的反应速度、增加执行的效率。 在MiniGUI 中,使用消息驱动作为应用程序的创建构架。在消息驱动的应用程序中, 计算机外设发生的事件,例如键盘键的敲击、鼠标键的按击等,都由支持系统收集,将其以事先的约定格式翻译为特定的消息。应用程序一般包含有自己的消息队列,系统将消息发 送到应用程序的消息队列中。应用程序可以建立一个循环,在这个循环中读取消息并处理 基于ARM9 的远程心电监护系统研究与设计 消息,直到特定的消息传来为止。这样的循环称为消息循环。一般消息由代表消息的一个 整型数和消息的附加参数组成。本系统界面通过鼠标键的按击,翻译成特定的消息,若 收到的是控件消息,则判断ID,根据应用程序进行相应的消息处理。 4.1 心电采集与显示 心电数据采集采用定时器进行采集和显示,定时器使用 SetTimer 函数创建 ,创 建时需要指定定时器标识号以及定时时间,当定时时间到达时,定时器将会产生 MSG_TIMER 消息,本系统的心电采集频率为200Hz。 从A/D 寄存器读取三通道的数据存入数组中,并将数组中的数据在液晶显示器上绘 出。在MiniGUI 中实时绘图采用GDI,GUI 系统的一个重要组成部分就是 GDI,即图 形设备接口(Graphics Device Interface)。通过 GDI,GUI 程序就可以在计算机屏幕上, 或者其他的显示设备上进行图形输出,包括基本绘图和文本输出。所有绘图相关的函数 均需要有一个设备上下文,为了提高绘图效率,在这里建立私有设备上下文,所建立的 设备上下文在整个窗口生存期内有效,从而免除了获取和释放的过程。利用 hdc=GetPrivateClientDC (hDlg)可获得私有设备上下文。然后调用MoveTo(HDC hdc,int x,int y)和LineTo(HDC hdc,int x,int y)对数组中的数据进行画线,由于采集到的心电数据小,因此在对其进行画线之前根据显示区域对所有数据进行适当放大,这样可以使心电波形在液晶显示器上直观显示。采集显示流程如图4.2 所示需的资源文件在/usr/local/llib 中。 /proc:系统核心和执行程序所需的一些信息存放于此,这些信息是由系统在内存中 产生的,不需要硬盘空间。 制作yaffs 根文件系统主要步骤如下: (1)下载yaffs 根文件系统制作工具mkyaffsimage.tgz,并解压到/usr/sbin 中 #tar xvzf mkyaffsimage.tgz c /usr/sbin。 这样将mkyaffsimage 安装到可执行文件系统/usr/sbin 中。 (2) 可以从网上下载根文件系统,这里我们为了以后工作方面,选用了开发板自带 的文件系统,文件名为root_default.tgz,解压到工作目录/opt 中 #tar xvzf root.tgz c /opt 第5 章 嵌入式Web 服务器的设计 5.1 嵌入式Web 服务器概述 嵌入式Web 服务器(EWS,Embedded Web Server)是指将Web 服务器引入到现场测 试和控制设计中,在相应的硬件平台和软件系统下,使传统的测试和控制设备转变为具备了以TCP/IP 为底层通信协议、Web 技术为核心的基于互联网的网络测试和控制设备 。嵌入式Web 服务器与传统的服务器比较,它的体积小、功耗低、任务响应 速度快,适应应用环境较强。 本设计所研究的嵌入式Web 服务器采用Browser/Server的方式来工作,本质上, Browser/Server 也是一种Client/Server 结构,它是一种由传统的二层Client/S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论