植物人多通道唤醒系统评价软件设计说明书.docx
《植物人多通道唤醒系统评价软件设计说明书.docx》由会员分享,可在线阅读,更多相关《植物人多通道唤醒系统评价软件设计说明书.docx(11页珍藏版)》请在冰豆网上搜索。
![植物人多通道唤醒系统评价软件设计说明书.docx](https://file1.bdocx.com/fileroot1/2022-11/18/a272a50d-179a-46cf-8161-9ef0fe69b4c7/a272a50d-179a-46cf-8161-9ef0fe69b4c71.gif)
植物人多通道唤醒系统评价软件设计说明书
第1章系统软件设计的相关技术
作为虚拟仪器来说它的核心是软件。
设计一个系统,在确定了硬件平台之后,就可以通过改变软件设置来实现不同的仪器功能。
然而在设计、实现虚拟仪器的软件系统时,需要考虑众多因素,如硬件需求、计算机硬件、操作系统。
1.1程序模块化设计概述
数据采集系统的性能在很大的程度上取决于其他应用软件的研究与开发,搜一再明确了系统设计目标之后,应该采用好的程序开发方法,如结构化设计方法、模块化思想、多线程以及软件系统的评价标准等等。
1.1.1程序设计的模块化原则
模块化结构是所有设计良好软件系统的基本特点,任何一个大的程序系统,总是有若干功能相对独立的模块组成。
好的软件结构应体现自顶向下的控制方式,模块之间的控制表现为统帅和从属的关系[17]。
信息抽象与信息隐含式模块的基本特征。
模块实际上反映了数据与过程的抽象。
在模块化问题求解时,在最高抽象级可以采用面向问题的环境语言的抽象术语进行描述;而在较低抽象级,则可采用过程性术语。
模块化的概念加上逐步求精的办法,就把面向问题的术语和面向现实的术语两者结合起来。
模块独立性有两个定性的标准度量:
即内聚和耦合,如图4.1所示。
块间联系是指模块之间的联系,块间联系越小,模块独立性越高。
块内联系是指模块内部各部分之间的联系,一个模块的块内联系大,模块独立性提高。
好的模块结构,块间联系应尽可能小,块内联系应尽可能大。
图4.1模块化结构
1.1.2软件系统的模块化设计原则
为使研制出的软件具有良好的可靠性、易维护性、易扩充性及易装卸性,软件设计应遵循规范化的模块化设计原则[18]。
(1)自顶向下逐步求精的设计方法
软件设计往往在开始时不了解问题的全部细节,只能对问题做出全局性的决策,即设计表征解决问题一般策略的抽象算法。
对抽象算法做进一步求精,进入下一层抽象。
再求精过程的每一步,抽象概念都会被精细化。
(2)根据逻辑功能划分物理模块
①模块的分解:
消除重复的功能部分,使得模块的块内联系较高,块间联系较低;
②模模块的合并;
③模块的复制。
(3)模块的作用范围应处在模块的控制范围之内
模块的作用范围是指模块内判定影响的范围。
只要某模块中含有依赖于某种判定操作,则该模块就处于判定的作用范围之内。
(4)依据逻辑功能确定模块之间的调用关系
模块之间的调用与被调用,决定于模块各自的逻辑功能,因而对模块的扇入扇出并无加以限制的必要。
(5)模块接口应保持简明
降低模块接口的复杂性,是模块设计中必须考虑的问题。
保持模块接口的简明,一方面必须减少模块间的信息传递量,更重要的是使所传递的必要信息具有明确的逻辑含义。
(6)模块保持单入口性质
单入口模块,易于理解,同时降低错误的发生率。
模块的出口可以有多个,但是均有明确的逻辑含义。
(7)模块结构增加中间判断层次,提高可扩充性
1.1.3软件系统模块化在本设计中的应用
系统程序的主要功能为模块划分的标准,其他包括系统管理,数据实时采集,数据实时保存,历史数据查询等功能。
1.2数据库技术
数据库技术是信息系统的一个核心技术。
是一种计算机辅助管理数据的方法,它研究如何组织和存储数据,如何高效地获取和处理数据。
是通过研究数据库的结构、存储、设计、管理以及应用的基本理论和实现方法,并利用这些理论来实现对数据库中的数据进行处理、分析和理解的技术。
即:
数据库技术是研究、管理和应用数据库的一门软件科学。
1.2.1数据库技术概述
数据库设计及困难有重要。
确定合理的表结构、表之间的合理联系、恰当的数据约束和其他的结构化组成,是一项具有挑战性的工作,因此我们要理解数据库技术所涉及到以下几个最重要的概念:
(1)数据库是长期存储于计算机内、有组织的、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可谓一定范围内的各种用户共享。
数据库不仅要反映数据本身的内容,而且要反应数据之间的联系。
在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。
(2)数据模型是根据特征的抽象,描述的是数据的共性。
数据模型应满足三个方面的要求:
一是能比较真实的模拟现实世界;二是容易为人们所理解;三是便于在计算机上实现。
一种数据模型要很好地满足这三个方面的要求在目前很困难,在数据库系统中针对不同的使用对象和应用目的,采用逐步抽象的方法,在不同层次采用不同的数据模型,一般分为三层,即物理层、逻辑层和概念层。
(3)数据管理系统是操纵和管理数据库的软件系统,它由一般计算机程序构成,管理并控制数据资源的使用。
他是数据库系统的核心,主要是实现共享数据有效的组织、管理和存取,他的基本功能包括以下几个方面:
①数据定义功能:
对数据库的结构进行描述,包括外模式、模式、内模式的定义;数据库完整性的定义;完全保密定义,存储路径定义等。
②数据操纵功能:
DBMS还提供数据操纵语言,用户可以使用DML操纵数据,实现对数据的基本操作,如检索、插入、删除和修改等。
DML有两类:
一类是宿主型语言,一类是自立性语言。
③数据库的运行管理:
数据库在建立、运用和维护时有数据管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复,从而保证数据库系统的正常运行。
④数据组织、存储和管理功能:
DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据。
存储路径等。
⑤数据库的建立和维护功能:
它包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织、性能监视、分析功能等[18]。
1.2.2ADO与数据库的交互技术
ADO是独立于开发工具和开发语言的数据访问接口,它提供了程序开发人员、应用程序实时存取各种数据库的能力,可以轻松的完成反对各种数据库的查询,存取等操作。
ADO又被称为通用数据访问,其数据源包括数据库,电子邮件,文件,文本,图形等。
使用ADO不仅可以读取Access和SQLServer数据库,也可以读取其他与ODBC兼容的数据库。
1.2.3Access数据库
Access是由微软发布的关联式数据库管理系统。
它结合了MicrosoftJetDatabaseEngine和图形用户界面两项特点,是MicrosoftOffice的系统程式之一。
Access是一个功能强大、方便灵活的关系型数据库管理系统。
它具有完整的数据库管理应用程序开发工具,可以开发适合特定的数据库管理系统的Windows应用程序。
它不仅可以用于处理其自身建立的数据库文件,还可以处理其他一些数据库管理系统建立的数据库文件,例如dBase、Paradox等数据库管理系统的数据库文件,并支持开放式数据库互联性标准(ODBC)和结构化查询语言(SQL)[19,20]。
1.2.4LabSQL数据库访问技术
在采用LabVIEW编写测试测量应用程序的时候,很多情况下都不可避免的需要对数据进行存储或者查询。
但是当采用大量数据的时候,我们就要利用数据库进行管理、存储和查询。
而对于LabVIEW来讲,其本身不能够直接访问数据库,因此我们利用LabSQL来解决这个问题[21,22]。
LabSQL是一个免费的、多数据库、跨平台的LabVIEW数据库访问技术,由PremkeDevelopment公司的ChrisRoth和Travis开发。
LabSQL几乎可以访问Windows操作系统中任何类型的数据库,比如MicrosoftAccess、SQLSever、Oracle、FoxPro等。
本设计就是采用的Access数据库。
LabSQL利用MicrosoftADO和SQL语言来完成数据库访问,将复杂的底层ADO及SQL操作封装成的一系列的LabSQLVis功能函数,便于软件模块化的设计。
LabSQL的优点是操作简单,易于理解,不熟悉SQL语言的用户也可以很容易的在LabVIEW中实现数据库访问,而且LabSQL是一个完全面粉并且开源的数据库访问工具包[23,24]。
1.3多线程技术
为了实现多通道数据采集的功能,本设计的软件部分必须实现信号的采集、数据的分析处理、定时存储及实时显示的功能。
在用户看来,这些任务是同时进行着的。
实际上,信号采集、定时存储和主控模块放在不同的线程中,利用Windows操作系统的多线程机制,使得各个功能的模块能够有条不紊的运行。
1.3.1Windows的多线程机制
Windows是一个多任务操作的系统,每个运行的程序都对应着一个进程,而一个进程内又可以有很多个线程。
Windows系统把CPU的运行分成许多小的时间片,然后按各个进程和进程内线程的优先级进行分配,从而使多个程序能“同时”运行。
在统一进程内的不同线程都在自己的时间片内执行,避免了相互在时间上可能的冲突。
1.3.2LabVIEW与多线程
LabVIEW执行系统类似于Java虚拟机,把线程管理、线程间的通信等复杂的操作封装起来,因此用户可以不用学习多线程编程就可以编写多线程的程序。
在LabVIEW中,图形化编程为开发者开发多线程带来了巨大的好处,因为在数据流的编程环境中,大家可以很容易的“看到”多线程并行代码[25]。
多线程的优点:
(1)提高CPU的利用率
(2)更高的系统可靠性
(3)提高再多处理器计算机上的执行速度
1.3.3多线程技术在本设计中的应用
为了实现显示、存储等系统其它操作的并行执行,在程序创建了一个工作线程:
数据采集和存储。
在用户启动系统工作时,这两个工作线程被创建。
但不同的是,数据采集的工作线程是在循环往复地工作着,直到退出程序;而数据存储的线程则是在一定的时刻被唤醒,而更多的时候,存储模块是一直处于挂起的状态。
因为现实中信号的采集工作和数据存储工作是长时间运行着。
通过采用多线程技术,实现了实时性要求高的数据采集与程序其它功能在时间上的相互独立,避免他们在实践上可能产生的冲突,提高了数据采集的稳定性[26]。
循环之间的数据传递及线程间的数据传递,可以由局部变量、全局变量、共享变量和队列等方式实现。
循环之间的同步即线程之间的同步,这可以由同步技术来实现。
如果需要为两个循环设置不同的优先级,可以通过定时循环来实现。
第2章具体的多通道数据采集系统的实现
本设计采用了四通道数据采集,前面板分别由登录系统、参数设置系统、实时数据采集系统、历史数据查询4部分组成。
2.1登录系统
登录系统是程序员为了管理程序而设置,设置了用户名和密码,防止非设计或者工作人员的更改而导致程序不能成功运行。
图1.1为用户登录界面前面板,图1.2为用户登录程序框图。
图1.1用户登录界面
图1.2用户登录程序框图
2.2参数设置系统
本设计拟设计基于NIPCI-6221数据采集卡进行数据采集,由于该卡支持DAQmx驱动程序,所以本设计是直接使用DAQmx-DataAcquisition开发的,在这部分中,主要是采集参数的设置,其中包括物理通道的选择,采样模式、采样率、每通道采样数、输入方式的配置。
由于条件所限,为了保证程序在没有数据采集卡的情况下顺利运行,本设计也做了一个模拟信号输出程序。
图1.3为系统参数设置的前面板,图1.4为模拟信号输出地的程序框图,图1.5为实际采集信号输出的程序框图。
图1.3系统参数设置的前面板
图1.4模拟信号输出地的程序框图
图1.5实际采集信号输出的程序框图
2.3实时数据采集系统
实时数据采集系统由四个通道的采集数据实时显示和波形全景图两部分组成。
从上面开始分别为通道1,2,3,4,分别显示4个通道的数据。
左边为操作按钮。
图1.6为采集数据实时显示前面板,图1.7为全景波形实时显示前面板,图1.8为程序总框图