为您找到与嵌入式图形数据库论文相关的共200个结果:
现代计算机出现后,在计算机学科中形成了两大学科分支,即通用计算机学科与嵌入式计算机学科。通用计算机学科与嵌入式计算机学科有不同的技术发展方向与技术内涵。由于嵌入式计算机学科与对象学科、微电子学科紧密相关,而嵌入式计算机学科与原有计算机学科内容有较大差异,不能用通用计算机的概念来诠释嵌入式系统,因此、嵌入式计算机要加强与微电子学科、电子学科、对象学科的沟通,共同承担起嵌入式系统新学科的建设任务。
今天读文网小编要与大家分享的是:浅析嵌入式系统支柱学科的交叉与融合相关论文。具体内容如下,欢迎参考阅读:
【摘要】嵌入式系统的概念源于微型计算机的嵌入式应用。早期的嵌入式系统探索过工控机、单板机、微机单片化的专用计算机的形式,随后走上了独立的发展道路。嵌入式系统不是专用计算机系统。嵌入式系统尚未形成独立的学科体系,它的支柱学科是微电子学科、计算机学科、电子技术学科与对象学科。四个支柱学科形成了平台模式下的交叉与融合。剔除嵌入式系统的“专用计算机”观念,有利于嵌入式系统的健康发展。
【关键词】嵌入式系统;学科体系;平台模式;对象学科
【论文正文】
(一)嵌入式系统的产生
嵌入式系统诞生于微型机时代,经过微型计算机的嵌入式专用化的短暂探索后,便进入到嵌入式系统独立的微控制器发展时代。直接在嵌入式处理器与外围集成电路技术基础上发展的带处理器内核的单片机,即微控制器的智能化电子系统。即便有处理器内核,也是嵌入式处理器而非通用微处理器。
(二)专用计算机探索的失败之路
无论是工控机,还是单板机,都无法彻底地满足嵌入式系统的微小体积、极低价位、高可靠性的要求。人们便直接将微型计算机体系结构进行简化,集成到一个半导体芯片中,做成单片微型计算机。Motolora公司的6801系列就是由6800系列微型机简化后集成的单片微型计算机。单片微型计算机彻底解决了嵌入式系统的极小体积、极低价位,但在高可靠性及对象可控性方面没有本质上的改进。
(三)嵌入式系统的独立发展道路
嵌入式系统的微控制器(MCU)发展道路,是一条摆脱“专用计算机”羁绊,独立发展的道路。这是一条由IntelMCS51单片机、iDCX51实时多任务操作系统开辟的单片机独立发展的道路。MCS51是一个在微电子学、集成电路基础上,按照嵌入式应用要求,原创的嵌入式处理器。MCS51原创的体系结构、控制型的指令系统与布尔空间、外部总线方式、特殊功能寄存器(SFR)的管理模式,奠定了嵌入式系统的硬件结构基础;iDCX51是专门与MCS51单片机配置,满足嵌入式应用要求原创的实时多任务操作系统。
目前,嵌入式系统尚未形成独立的学科体系。从“嵌入式系统”的诞生、独立的单片机发展道路、微控制器技术发展的内涵、嵌入式系统的多种解决方案来看,“嵌入式系统”是四个支柱学科的交叉与融合,并以平台模式进行学科定位与分工。
(一)四个支柱学科的关系
嵌入式系统的四个支柱学科是微电子学科、计算机学科、电子技术学科、对象学科。微电子学科是嵌入式系统发展的基础,对象学科是嵌入式系统应用的归宿学科,计算机学科与电子技术学科是嵌入式系统技术发展的重要保证。
(二)领衔的微电子学科
微电子学科与半导体集成电路的领衔作用,在于它为嵌入式系统的应用提供了集成电路基础。电子技术学科、计算机学科的许多重要成果,最终都会体现在集成电路中,从早期的数字电路集成,到如今的模混合、软/硬件结合、以IP为基础的知识与知识行为集成。
(三)为平台服务的计算机学科
现代计算机出现后,在计算机学科中形成了两大学科分支,即通用计算机学科与嵌入式计算机学科。通用计算机学科与嵌入式计算机学科有不同的技术发展方向与技术内涵。由于嵌入式计算机学科与对象学科、微电子学科紧密相关,而嵌入式计算机学科与原有计算机学科内容有较大差异,不能用通用计算机的概念来诠释嵌入式系统,因此、嵌入式计算机要加强与微电子学科、电子学科、对象学科的沟通,共同承担起嵌入式系统新学科的建设任务。在嵌入式系统中,计算机学科要承担起嵌入式系统应用平台的构建任务,它包括嵌入式系统的集成开发环境、计算机工程方法、编程语言、程序设计方法等内容。
(四)广泛服务的电子技术学科
在嵌入式系统中,电子技术学科提供了最广泛的技术服务。电子技术将微电子领域的集成电路设计,迅速从电路集成、功能集成、技术集成发展到知识集成;为计算机学科提供嵌入式系统的硬件设计技术支持;在对象学科中,广大的应用工程师在嵌入式软硬件平台上实现最广泛的应用。
(五)对象学科的最终出路
对象学科是嵌入式系统的最终用户学科。对象学科几乎囊括了所有的科技领域,形成了嵌入式系统一个无限大的应用领域。对于对象学科来说,嵌入式系统只是一个智能化的工具,对象学科要在嵌入式系统上构建本领域的一个嵌入式应用系统。嵌入式应用系统的技术基础是本学科的基础理论与应用环境、应用要求。同时,在应用中要不断给微电子、集成电路设计、嵌入式计算机学科提出技术要求,以便不断提升嵌入式系统平台的技术水平。
(一)平台模式的由来
平台模式是知识经济时代的一种基本的产业、科技模式,是人类知识分离性规律、集成性规律发展到高级阶段上的必然现象。它将一体化的产业、科技模式变革为知识平台媒介下的平台模式。只要对比上世纪60年代收音机产业与90年代的VCD/DVD产业,就会发现一体化产业模式与平台产业模式的本质差异。
(二)嵌入式系统的平台模式
按照知识的分离性发展规律,知识创新者不从事知识应用,知识应用者不需要了解创新知识原理;按照集成性发展规律要求,知识创新者应该将创新知识成果集成到工具之中,转化为知识平台,知识应用者应该在知识平台基础上实现创新知识应用。对象学科领域是嵌入式系统的最终用户,对象学科领域的电子技术应用工程师应该在一个现成的嵌入式系统平台上实现嵌入式应用系统设计。微电子学科、嵌入式计算机学科、电子技术学科(非对象学科领域中的应用工程师)不是嵌入式系统最终用户,这些学科的重要任务是将创新科技成果转化成形形色色的知识平台。[论*文*网]
(三)平台模式下的学科定位与分工
嵌入式系统中四个支柱学科的定位,除了学科知识结构的定位外,还要体现出在知识平台模式中的定位。这种平台模式的定位,是一种3+1的定位。即微电子学科、计算机学科、电子技术学科为嵌入式应用构筑各种类型的应用平台,不介入嵌入式系统的具体应用;对象学科一定要在嵌入式系统应用平台基础上,实现嵌入式系统在本学科领域中的产品化应用,不必介入嵌入式系统的平台构建。
嵌入式系统是一个无限大的空间,不论是嵌入式系统平台构建还是嵌入式系统平台应用,都有无限广阔的发展空间,关键是把握好自己的“定位”与“分工”,了解学科的“交叉”与“融合”。
浏览量:3
下载量:0
时间:
今天读文网小编要与大家分享的是:嵌入式图形用户界面在S3C44B0X上的移植相关论文。具体内容如下,欢迎参考阅读:
关键词: μC/GUI 实时操作系统 接口 S3C44B0X 移植
论文正文:
嵌入式图形用户界面在S3C44B0X上的移植
如今随着信息化、智能化、网络化的迅速发展,嵌入式系统已被广泛应用在消费电子、工业应用、军事国防、网络设备等领域。μC/GUI作为一个通用的嵌入式应用的图形模块,它在嵌入式系统中的作用也显得的越来越重要。 μC/GUI是一个源代码开放的图形系统,它提供了丰富的资源,包括二维绘图库、多字体及可扩充字符集、Unicode、位图显示、多级RGB及灰度调整、动画优化显示、具有Windows风格的对话框和预定义控件(按钮、编辑框、列表框等),以及对键盘、鼠标、触摸屏等输入设备和双LCD输出的支持,目前在具有图形界面的嵌入式产品中得到越来越广泛地应用。
μC/GUI是一个通用的嵌入式应用的图形模块,它是美国Micrium公司开发的一种高效的、与处理器和LCD控制器独立的通用GUI,可以适用各种CPU和LCD,在单任务和多任务操作系统中,它都可以工作得很好。它具有驱动接口层和应用层,全部代码采用ANSI _C编写,提供源代码,可以方便的移植到各种平台下。
2.1 μC/GUI特点
(1) 支持任何8位、16位和32位的CPU,只要求CPU具有相应的ANSI_C编译器即可。
(2) 所有硬件接口定义都使用可配置的宏。
(3) 字符、位图可显示与LCD的任意点,并不限制与字节长度的整数倍数地址。
(4) 所有程序在长度和速度方面都进行了优化,结构清晰。
(5) 对于慢速的LCD控制器,可以使用缓冲存储器减少访问时间,提高显示速度。
因为μC/GUI具有这些优点,它越来越受到更多嵌入式设计者的青睐。
2.2 μC/OS-II介绍
在嵌入式系统的开发过程中,选择操作系统与选择开发平台一样的重要。虽然不是一个完整的实时操作系统,只是一个实时内核,但与其它操作系统比起来它具有很多优点因而得到了广泛的应用。首先它是一种结构简单、源代码公开的操作系统,适合所有的开发者使用;它具有可移植性,它的绝大部分源码都是用移植性很强的 ANSI _C编写,与微处理器硬件相关的部分采用汇编语言编写,很容易被移植到各种微处理器上;它还具有可固化和可裁剪等特点,对于嵌入式设计者来讲的,只要拥有固化手段(C编译、连接、下载和固化),就可以很方便将其嵌入到产品中去。设计者还可以根据系统应用程序的需要对μC/OS-II进行相应的裁剪来减少产品中的μC/OS-II所需的存储器空间,这可以通过条件编译来实现。
2.3 μC/GUI接口
μC/GUI 是运行于操作系统之上的程序,它既需要与操作系统的协调,又需要与各种输入输出设备的协调,来实现用户层与应用程序层的联结,即通过输入设备接收用户请求、通过输出设备反映微处理器的响应。因此在这一过程中GUI至少要与3个对象打交道:输入设备、输出设备和操作系统。因此μC/GUI接口主要包括2 个,与操作系统的接口和与输入输出设备的接口,这也正是在移植μC/GUI的过程中所要解决的关键问题。
对于操作系统,GUI作为操作系统的一个显示任务接受操作系统的调度,μC/GUI提供了与操作系统的接口支持。与操作系统的接口主要解决系统实时性的要求。对于用户输入,μC/GUI提供了键盘、鼠标以及触摸屏等支持,对于输出设备GUI反映微处理器的响应给用户是通过LCD输出图像来完成的,对于不同型号和显示原理的LCD要编制相应的驱动程序。
3.1 S3C44B0X 微处理器和开发平台简介
这里硬件开发平台的微处理器选择三星公司的S3C44B0X,实时操作系统选择移植性较强的μC/OS-II。
S3C44B0X 微处理器是三星公司专为手持设备和一般应用提供的一款高性价比的微处理器解决方案,它采用ARM 7TDM I核,工作在66MHz,为减少外围件, 该芯片集成了8KB的Cache、LCD控制器、5通道PWM定时器和一个内部定时器、71个I/O口、8个外部中断源、实时时钟等[3]。
移植的目标平台的液晶模块使用320×240分辨率, 通过总线的形式连接在S3C44B0X的Bank3上, 并在系统的内存区开辟了一块内存作为液晶显示的后台缓存。
要成功将μC/GUI移植到该平台上一般要解决以下几方面的问题。
3.2 μC/GUI与操作系统的接口相关部分的修改
μC/GUI 在与μC/OS-II结合应用时通常被分为几个小的显示任务,由于每个显示任务都共用一个GUI_Context上下文变量,在操作系统进行任务切换时一个GUI任务对上下文的操作可能被另外一个GUI任务打断,此时新的GUI任务对上下文的操作是在被中断任务的上下文基础上进行的,这样前一个任务的信息会被后一个任务所使用,有些基本信息作为公用信息需要被共用,而有些信息在处理过程中是不能被打断的。这就存在资源互斥的问题。
μC/GUI在设计时是通过上锁和解锁来解决此问题。其过程是通过在关键区域入口设置GUI_X_Lock()以获得专一访问权,用完后在出口处设置GUI_X_ Unlock()让出资源,达到多个GUI任务对同一数据在关键区域内访问的互斥。
在μC/GUI移植到μC/OS-II的过程中,则需要利用操作系统实现资源互斥的系统调用对上述宏进行替换,这涉及到3个任务调度函数的重新定义:
void GUI_X_InitOS (void);
/*任务初始化*/
void GUI_X_Lock (void);
/*任务锁定*/
void GUI_X_Unlock (void);
/*任务解锁*/
此外μC/GUI还用到μC/OS-II中的延时调用,通过在GUI_X_Delay()中调用μC/OS-II的OSTimeDly()实现延时和任务切换。这涉及到2个系统时间接口函数的定义:
int GUI_X_GetTime (void);
/*取系统时间*/
void GUI_X_Delay (int ms);
/*延时函数*/
3.3 μC/GUI与输入输出设备驱动接口模块设计
本文以LCD驱动接口模块设计为例介绍在μC/GUI移植过程中LCD驱动程序的编写,以最终实现图形显示。
驱动程序主要是LCD初始化,这个函数完成对44B0X LCD控制器的配置、显存的映射等。这里还是以320×240彩色LCD为例介绍一下初始化程序的编写。具体如下:
void LCD_Init(void)
{int i;LCD_DisplayOpen(FALSE);
/* 关LCD显示 */
for(i=0; i<320*240; i++)
/* 初始化显存 */
*(pLCDBuffer256+i) = 0x0;
rPDATD = 0xff;;
/* PDATD[7 :0]: 此处初始化为0xff */
rPCOND = 0xaaaa;
/* PCOND[15:0]: 配置为功能端 */
rPUPD = 0x00;
/* PUPD [7 :0]: 允许相应位的上拉电阻(0=允许, 1=禁止) */
rLCDCON1 = (0)|(DISMODE<<5)|(WDLY<<8)|(WLH<<10)|(CLKVAL<<12);
/* disable,8B_SNGL_SCAN,WDLY=16clk,WLH=16clk, CLKVAL=10*/
rLCDCON2 = (LINEVAL)|(HOZVAL<<10)|(LINEBLANK<<21);
/* 彩色模式, LCDBANK=0xc000000, LCDBASEU=0x0 */
rLCDSADDR1= (MODESEL<<27) | (((U32)pLCDBuffer256>>22)<<21) |
M5D((U32)pLCDBuffer256>>1);
rLCDSADDR2= M5D(((U32)pLCDBuffer256+(LCDWIDTH*LCDHEIGHT))>>1) |
(MVAL<<21);
rLCDSADDR3= PAGEWIDTH | (OFFSIZE<<9);
rREDLUT = 0xfdb97531;
/* 设置红绿蓝三色的颜色值*/
rGREENLUT = 0xfdb97531;
rBLUELUT = 0xfb73;
rDITHMODE = 0x0;
rDP1_2 = 0xa5a5;
rDP4_7 = 0xba5da65;
rDP3_5 = 0xa5a5f;
rDP2_3 = 0xd6b;
rDP5_7 = 0xeb7b5ed;
rDP3_4 = 0x7dbe;
rDP4_5 = 0x7ebdf;
rDP6_7 = 0x7fdfbfe;
/* enable,8B_SNGL_SCAN,WDLY=16clk,WLH=16clk, CLKVAL=10*/
rLCDCON1 = (1)|(DISMODE<<5)|(WDLY<<8)|(WLH<<10)|(CLKVAL<<12);
Delay(5000);
LCD_BkLight(TRUE);
/* 开背光 */
LCD_DisplayOpen(TRUE);
/* 打开LCD显示 */}
完成如上LCD驱动以后, 再设置相应的中断服务子程序(IS), μC/GU I就可以稳定地运行在μC/OS-II和目标平台之上了。
3.4 μC/GUI配置文件参数的修改
主要是LCDConf.h配置文件的修改,如果LCD选用320×240彩色,就要作如下修改LCDConf.h的内容:
/*LCDConf.h*/
#ifndef LCDCONF_H
#define LCDCONF_H
#define LCD_XSIZE (320)
/* LCD水平分辨率 */
#define LCD_YSIZE (240)
/* LCD竖直分辨率 */
#define LCD_BITSPERPIXEL (8)
#endif
另外,还涉及到LCD寄存器常量的设置等这里不一一详述。
到这里μc/GUI的移植基本完成。本文只介绍了μc/GUI结合LCD在基于S3C44B0X的μC/OS-II上的移植。如果涉及到输入设备键盘、鼠标以及触摸屏的移植还要编写相应的驱动程序和其相关参数的修改。
本文详细介绍了嵌入式图形用户界面在基于μC/OS-II目标平台上的移植过程,实际表明在具有图形界面的嵌入式系统的开发中,采用基于μC/OS-II的图形系统μc/GUI,移植简便、使用方便灵活,目前基于 μC/OS-II的μc/GUI系统已成功移植到了系统效率测试仪上,系统的电能参数(电流、电压、功率)可以实时采集和实时波形显示;参数设置以菜单、编辑框的形式实现,界面的切换以窗口的形式实现。充分利用了μc/GUI强大的图形功能,使人机界面更加丰富、友好。实践表明系统具有良好的实时性和稳定性。
浏览量:3
下载量:0
时间:
仿真器是指以某一系统复现另一系统的功能。与计算机模拟系统(Computer Simulation)的区别在于,仿真器致力于模仿系统的外在表现、行为,而不是模拟系统的抽象模型。以下是读文网小编今天为大家精心准备的:关于仿真器的嵌入式测试平台相关软件比较相关论文。内容仅供阅读与参考!
关于仿真器的嵌入式测试平台相关软件比较全文如下:
常见的有在线仿真器和逻辑分析仪。在线仿真器可以完全仿真目标芯片的行为,准确度高,运行速度快,但工艺设计复杂,价格昂贵。逻辑分析仪通过监控和采样总线数据执行测试,完备性受限于采样频率,而提高采样频率则会大幅提高成本。基于硬件的测试工具通常用于计算机硬件的设计和测试,很少用于嵌入式软件的测试。
包括插桩和软件仿真两种典型方法。插桩向被测程序的特定位置插入探针,据此获得程序的运行信息。优点是实现简单,缺点是改变了被测程序,无法得到被测程序的精确执行轨迹和执行时间。软件仿真通过构建目标机的虚拟仿真环境,在宿主机上加载待测程序执行测试(目标机指嵌入式软件的运行环境,宿主机指嵌入式软件的开发环境,下同)。优点是可获得待测程序的精确执行轨迹,缺点是速度较慢。
综合了纯硬件和纯软件形式的特点,代表工具是 CodeTEST。测试环境接近于真实环境,准确性较高。缺点是硬件依赖性强,灵活性及可移植性差,成本昂贵。
理论上讲,嵌入式软件测试应在目标机进行,毕竟软件最终运行在目标机上。但嵌入式系统多采用软硬件协同开发,在软件开发过程中,目标机环境很有限,甚至不可用,无法满足软件测试的需要。此外,由于目标机的专用性,目标机下的测试工具比宿主机下的同类工具往往昂贵得多。考虑到上述因素,应将尽可能多的测试工作放在宿主机进行。但由于体系结构的差异,目标机软件一般不能在宿主机直接运行,这就需要建立目标机的仿真环境,即通过软件仿真进行测试。
软件仿真是一种经济灵活的测试策略,可在没有目标机硬件的情况下测试,准确性高,可以获取精确的运行时间,能灵活控制程序的运行状态。采用软件仿真测试也可以避免将程序烧录到目标机 ROM 造成的测试困难,降低开发成本。
3.1 当前嵌入式测试工具的不足
不少嵌入式测试工具采用软件仿真测试。传统仿真工具的测试流程是:编译获得被测程序的可执行程序,加载到仿真器运行,获得测试结果。这些工具对集成测试和系统测试支持较好,对单元测试的支持不佳,看一个具体例子。
通过例 1 可得到以下结论:单元测试时很多模块尚未编写完毕,若采用传统的嵌入式软件测试方法,需要编写大量的桩函数,工作量大。
测试者需熟悉嵌入式软件的开发语言,这样才能编写桩函数。软件开发者通常会参与单元测试,这类人员可满足要求。但为提高软件质量,一般需安排专门的测试人员测试。嵌入式开发通常采用汇编等底层语言,种类繁多且较难学习,对测试者要求较高。修改桩函数和外部变量后,需重新编译生成可执行程序,重新加载到仿真器测试。每做一点修改,均需重复上述步骤,测试过程繁琐。测试的针对性不强,只能加载整个可执行程序测试,无法针对特定的关注单元测试。
以航天某院为例,尽管购置了CodeTEST、Logiscope等昂贵的测试工具,但上述测试问题仍非常突出,其它工具也普遍存在类似的局限性。
本文介绍了一种新的嵌入式软件测试方法,可以弥补上述不足。其特色和创新体现在三方面:
1) 通过自行构建链接器,而不采用缺省的链接器完成链接,生成“内存映像”(此处的“内存映像”与可执行程序类似,但并不完全一致,本文采用该术语以区分二者),可在程序代码不完备的情况下执行测试,能更好地支持单元测试。
2) 构建软件仿真器,加载内存映像测试。除具备传统仿真测试的优点外,还增加了交互式脚
本处理能力,运行过程中可直接修改桩函数和变量,无需频繁地编译、加载,测试更加便捷。普通测试人员可以通过高级脚本语言编写测试用例,无需精通嵌入式平台的专用开发语言。
3) 能对指定的关注单元进行测试,支持设定源代码断点,支持设定仿真的起止范围,测试更有针对性,测试效率较高。
2 基于仿真器的嵌入式测试平台
1) 编译被测程序生成目标文件(x86 平台的.obj 文件就属于典型的目标文件)和链接描述文件(link description file,后文简称 LDF 文件)。
2)利用自行构建的链接器分析目标文件和库文件,提取符号表、数据段、代码段、可重定位段、行号信息等,按照 LDF 文件的说明进行链接,生成内存映像、总符号表和行号信息表。
3) 将内存映像加载到仿真器测试。测试过程中,可以修改内存变量、寄存器值、桩函数等。结合测试用例注入,可实现单元测试和动态测试。
3.2 链接器构造
链接器根据 LDF 文件的说明,提取并拼装目标文件中的各个段,得到内存映像、符号表和行号信息表(图 3)。其中,内存映像和可执行程序功能类似;符号表定义了各个符号(包括函数、变量、标号等)的名称、地址、文件、作用域等信息;行号信息定义了源文件中行号与内存映像中地址的映射关系。关于行号信息的更多介绍,请参考2.3节。
目标文件中的未定义符号在链接时会以UNDEF 标记,只分析本文件无法解析,需要进一步分析其它文件。如果在所有文件中都没有找到该符号,该符号就无法解析,使用标准的链接器无法链接,不能生成可执行程序进行仿真测试。
SimAD 自行设计了链接器,可以有效控制链接过程。对于未定义符号,自动分配特殊的内存地址,使得这些符号可以通过“解析”,进而构造可被仿真器执行的内存映像。这是实现本文测试方法的关键所在。这样的设计思路有以下优点:1) 单元测试时很多模块不完备,可避免使用嵌入式开发语言编写大量桩函数。即使存在未定义符号,也可以正常链接,提升了测试效率。
仿真器执行时可以检测到未定义符号,并检查是否定义了桩函数或者进行了变量赋值。这样,就把桩函数和外部变量的绑定由编译期调整到了运行期。这带来了两个好处:可通过脚本语言设计桩函数,进行变量赋值,避免了学习嵌入式开发语言的代价。 可实现交互式的桩函数声明和变量赋值,避免了传统的“修改桩函数和外部变量→编译→加载运行”的繁琐测试流程。
3.3 仿真器实现
仿真器完成对目标机的模拟,其基本特征是行为等价,注重对目标机行为功能的仿真,对内部结构的仿真要求不高。重点关注:真实性、全面性、运行速度、通用性和可扩展性等指标。
SimAD 仿真器实现了以下模拟:①译码:包括运算指令译码,移位指令译码,地址寄存器译码,通用寄存器译码等;②运算模拟:包括加法器模拟、乘法器模拟及移位器模拟;③控制流处理:包括中断、循环、跳转、调用等;④ 地址产生模拟; 内存访问模拟; ⑤ 模拟:包括外部内存方式和串口 DMA 方式;定时器模拟。
在实现功能模拟的同时,仿真器还提供了测试接口和外部交互接口,包括内存映像的加载接口、内存和寄存器的查看/修改接口、桩函数的设定/修改接口、数据的输入/
输出接口等。
对单元测试的良好支持是 SimAD 仿真器的特色之一。单元测试中不可避免地会用到桩函数,仿真器提供了 setstub 桩函数设置接口。设置桩函数后,仿真器查询其内存地址,连同函数名一并保存到桩函数表中。在运行过程中,仿真器检查调用的函数名是否存在于桩函数表中,若存在则不执行内存映像中的函数代码,而转去执行测试脚本中设定的桩函数。为便于理解上述过程,看一下例2。.......
本文方法已在 SimAD 测试工具中实现。该工具目前支持 AD21060 和 AD21020两类芯片,可实现静态分析和动态测试。已实现的功能包括:集成测试环境(图 6)、链接器、仿真器、测试脚本解释执行、测试报表生成等。
图6 SimAD 集成测试环境对测试脚本的良好支持是 SimAD 的特色。
支持新建和保存测试脚本,双击运行测试脚本(图5 中的右侧窗口),批量执行测试脚本,从而提高了回归测试[10]的执行效率。SimAD 还提供了控制台交互窗口,支持在仿真过程中输入交互式的测试命令,即时控制测试过程。
图7 交互式执行测试命令SimAD 还支持其它测试功能,如语句覆盖率报表、控制流着色、函数调用图生成等,这些措施对提高测试效果也有裨益。
在嵌入式软件测试领域,国内外使用较多的测试工具是 CodeTEST和 Logiscope。它们与SimAD 的比较见表。
3 种工具中 CodeTEST 功能最强。动态内存分析和性能分析是其主要特点,采用软硬件结合形式实现,准确度较高,缺点是价格昂贵。使用CodeTEST 必须具备目标机硬件,必须生成执行程序,对单元测试的支持不佳。
Logiscope 主要用于软件的质量分析和测试,其突出特点是对软件全生命周期的支持。采用插装方式测试,对执行速度和运行结果会造成一定影响,无法获得精确的执行时间和运行轨迹。
SimAD 通过软件仿真测试,不依赖目标机硬件,自行构造的链接器可处理未定义符号,可通过高级语言脚本编写测试用例和桩函数,对单元测试的支持较好。.....
目前的嵌入式软件测试工具对单元测试的支持不佳,本文对此进行了研究和探索,提出了相应的解决思路,相关方法已在 SimAD 测试工具中实现,并在航天某院的项目测试中得到实际应用,得到了该院的高度评价。与成熟的嵌入式软件测试工具相比,SimAD仍有很多地方需要完善。
未来的主要工作包括:完善仿真器和测试框架的接口,方便第三方仿真器接入,以支持更多的嵌入式平台软件测试;针对 COFF、PE 等常用目标文件开发链接器,使之能分析链接多种平台的目标文件;增加自动生成测试脚本功能,目前纯手工编写脚本,使用不太方便;增强覆盖率分析。目前只支持语句覆盖,需进一步支持判定覆盖、条件覆盖等。
[1] 国家安全生产监督管理总局.“7 23”甬温线特别重大铁路交通事故调查报告[EB/OL]. 北京: 国家安全生产监督管理总局网站, 2011 .
[2] 薛伟. 利用在线仿真器(ICE)设计微机故障自动诊断系统[J]. 小型微型计算机系统, 1988, 9(6): 40-44
[3] 师奕兵, 王厚军. 高速逻辑分析仪产品化设计的关键技术[J].仪器仪表学报, 2002, 23(5): 38-40
[4] 李跃飞, 郭君红, 白成刚, 等. 飞行控制软件测试中的插桩技术[J]. 北京航空航天大学学报, 2009, 35(5): 580-583
[5] 周庆, 刘斌, 余正伟, 等. 综合模块化航电软件仿真测试环境
研究[J]. 航空学报, 2012, 33(4): 722-733
[6] Rihar Marjan. www.51lunwen.com/software/ Software Simulator as an Effective Tool for TestingControl Algorithms [J]. Simulation, 1994, 63(1): 6-14
浏览量:3
下载量:0
时间:
嵌入式系统开发就是对于除了电脑之外的所有电子设备上操作系统的开发,开发对象有手机,掌上电脑,机电系统等。以下是读文网小编今天为大家精心准备的:Linu_嵌入式系统开发平台选型探讨修改论文。内容仅供参考,欢迎阅读!
Linu_嵌入式系统开发平台选型探讨全文如下:
摘要:使用进行嵌入式产品开发有一个很大的优势,就是开发资源丰富,且成本低廉;但是,技术路线复杂多样,专业人才相对匮乏是Linu_嵌入式系统开发面临的一个难题。本文从实际应用的角度,探讨和研究Linu_嵌入式系统开发中的平台选型问题,以期望对各位Linu_开发研究者有些许裨益。
关键词:嵌入式系统 Linu_开发平台 选型
按照电气工程师协会的一个定义:嵌入式系统是用来控制或监视机器、装置或工厂等的大规模系统的设备。具体说来,它是电脑软件和硬件的综合体;是以应用为中心,以计算机技术为基础,软硬件可裁减,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。一般来说,嵌入式系统不能使用通用型计算机,而且运行的是固化的软件,终端用户很难或者不可能改变固件。而Linu_也早已成为IT界家喻户晓的一个名字。概括说来,将Linu_应用于嵌入式系统的开发有如下一些优点:
① Linu_自身具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,并且可以跨越在嵌入式系统开发中仿真工具(ICE)的障碍。
② 内核的完全开放,使得可以自己设计和开发出真正的硬实时系统;对于软实时系统,在Linu_中也容易得到实现。
③ 强大的网络支持,使得可以利用Linu_的网络协议栈将其开发成为嵌入式的TCP/IP网络协议栈。
按照嵌入式系统的工程设计方法,嵌入式系统的设计可以分成三个阶段:分析、设计和实现。分析阶段是确定要解决的问题及需要完成的目标,也常常被称为“需求阶段”;设计阶段主要是解决如何在给定的约束条件下完成用户的要求;实现阶段主要是解决如何在所选择的硬件和软件的基础上进行整个软、硬件系统的协调实现。在分析阶段结束后,通常开发者面临的一个棘手的问题就是硬件平台和软件平台的选择,因为它的好坏直接影响着实现阶段的任务完成。
通常硬件和软件的选择包括:处理器、硬件部件、操作系统、编程语言、软件开发工具、硬件调试工具、软件组件等。
在上述选择中,通常,处理器是最重要的,同时操作系统和编程语言也是非常关键的。处理器的选择往往同时会限制操作系统的选择,操作系统的选择又会限制开发工具的选择。
3.1 处理器的选择
嵌入式系统的核心部件是各种类型的嵌入式处理器。据不完全统计,目前全世界嵌入式处理器的品种总量已经超过1000多种,流行体系结构有30几个系列。但与全球PC市场不同的是,没有一种微处理器和微处理器公司可以主导嵌入式系统,仅以32位的CPU而言,就有100种以上嵌入式微处理器。由于嵌入式系统设计的差异性极大,因此选择是多样化的。
调查上市的CPU供应商,有些公司如Motorola、Intel、AMD很有名气,而有一些小的公司,如QED(Santa Clara.CA)虽然名气很小,但也生产很优秀的微处理器。另外,有一些公司,如ARM、MIPS等,只设计但并不生产CPU,他们把生产权授予世界各地的半导体制造商。ARM是近年来在嵌入式系统有影响力的微处理器制造商,ARM的设计非常适用于小的电源供电系统。Apple在Newton手持计算机中使用ARM,另外有几款数字无线电话也在使用ARM。
设计者在选择处理器时要考虑的主要因素有:
① 处理性能。一个处理器的性能取决于多个方面的因素,如时钟频率,内部寄存器的大小,指令是否对等处理所有的寄存器等。对于许多需用处理器的嵌入式系统设计来说,目标不是在于挑选速度最快的处理器,而是在于选取能够完成作业的处理器和I/O子系统。如果是面向高性能的应用设计,那么建议考虑某些新的处理器,其价格相对低廉,如IBM和Motorola Power PC。
② 技术指标。当前,许多嵌入式处理器都集成了外围设备的功能,减少了芯片的数量,降低了整个系统的开发费用。开发人员首先考虑的是,系统所要求的一些硬件能否无需过多的胶合逻辑(GL,Glue Logic)就可以连接到处理器上。其次是考虑该处理器的一些支持芯片,如DMA控制器,内存管理器,中断控制器,串行设备、时钟等的配套。
③ 功耗。嵌入式微处理器最大并且增长最快的市场是手持设备、电子记事本、PDA、手机、GPS导航器、智能家电等消费类电子产品。这些产品中选购的微处理器,典型的特点是要求高性能、低功耗。许多CPU生产厂家已经进入了这个领域。今天,用户可以买到一颗嵌入式的微处理器,其速度像笔记本中的Pentium一样快;而它仅使用普通电池供电即可,并且价格很便宜。如果用于工业控制,则对这方面的考虑较弱。
④ 软件支持工具。仅有一个处理器,没有较好的软件开发工具的支持也是不行的,因此选择合适的软件开发工具对系统的实现会起到很好的作用。
⑤ 是否内置调试工具。处理器如果内置调试工具可以大大缩小调试周期,降低调试的难度。
⑥ 供应商是否提供评估板。许多处理器供应商可以提供评估板来验证理论是否正确,决策是否得当。
3.2 硬件部件选择的其它因素
① 生产规模。打算做1套?多套?还是规模生产?如果生产规模比较大,可以自己设计和制备硬件,这样可以降低成本。反之,最好从第三方购买主板和I/O板卡。
② 开发的市场目标。如果想使产品尽快发售,以获得竞争力,此时要尽可能买成熟的硬件;反之,可以自己设计硬件,降低成本。
③ 软件对硬件的依赖性。软件是否可以在硬件没有到位的时候并行设计或先行开发。
④ 只要可能,尽量选择使用普通的硬件。在 CPU 及架构的选择上,一个原则是:只要有可替代的方案,尽量不要选择 Linu_ 尚不支持的硬件平台。
图1所示的嵌入式软件的开发流程,主要涉及到代码编程、交叉编译、交叉连接、下载到目标板和调试等几个步骤,因此软件平台的选择也涉及到以下几个方面。
4.1 操作系统的选择
(1)操作系统选择应考虑的因素
硬件方案确定之后,操作系统的选择就相对轻松了。硬件的不同,会影响操作系统的选择。低端无MMU(Memory Management Unit,存储器管理单元)的CPU,要使用uClinu_ 操作系统;而相对高端的硬件,则可以用普通的嵌入式 Linu_ 操作系统。uClinu_ 和普通的 Linu_ 有各自的优势和缺点。可用于嵌入式系统软件开发的操作系统很多,但关键是如何选择一个适合开发项目的操作系统。经过多年的开发实践,笔者认为应该从以下几点进行考虑:
① 操作系统提供的开发工具。有些实时操作系统(RTOS)只支持该系统供应商的开发工具,因此,还必须向操作系统供应商获取编译器、调试器等;而有些操作系统使用广泛,且有第三方工具可用,因此,选择的余地比较大。
② 操作系统向硬件接口移植的难度。操作系统到硬件的移植是一个重要的问题,是关系到整个系统能否按期完工的一个关键因素。因此,要选择那些可移植性程度高的操作系统,避免操作系统难以向硬件移植而带来的种种困难,加速系统的开发进度。
③ 操作系统的内存要求。均衡考虑是否需要额外花钱去购买RAM或EEPROM来迎合操作系统对内存的较大要求。
④ 开发人员是否熟悉此操作系统及其提供的API。
⑤ 操作系统是否提供硬件的驱动程序,如网卡等。
⑥ 操作系统的可剪裁性。有些操作系统具有较强的可剪裁性,如嵌入式Linu_、Tornado/V_Works等等。
⑦ 操作系统的实时性能。
(2)几类嵌入式Linu_系统的比较
嵌入式Linu_系统方面的产品主要分为三类:
第一类是专门为Linu_的嵌入式应用而做的。如何让Linu_更小、更容易嵌入到体积要求和功能、性能要求更高的硬件中去,是他们的产品开发方向,如MontaVista的MontaVista Linu_等。第二类是专门为Linu_的实时特性设计的产品。将Linu_开发成实时系统尤其是硬实时系统,应用于一些关键的控制场合(不仅仅是信息电器)。如,Fsmlabs公司开发出来的RT-Linu_产品已经用在工业控制的很多方面;葡萄牙的Coimbra大学已经利用RT-Linu_实现了化工生产控制厂里用来控制反应和程序控制的系统。第三类的产品是将实时性和嵌入式方案结合起来的方案。很多公司都这么做,并且提供集成化的开发方案,如Lineo、TimeSys等等。
因此选择操作系统时,要根据自己的嵌入式要求和实时性要求,选择适合自己的嵌入式Linu_;同时,和选择硬件的原则一样,如果可能,尽量选择使用普通的嵌入式 Linu_ 系统。
4.2 编程语言的选择
编程语言的选择主要考虑以下因素:
① 通用性。不同种类的微处理器都有自己专用的汇编语言。这就为系统开发者设置了一个巨大的障碍,使得系统编程更加困难,软件重用无法实现。而高级语言一般和具体机器的硬件结构联系较少,多数微处理器都有良好的支持,通用性较好。
② 可移植性程度。汇编语言和具体的微处理器密切相关,为某个微处理器设计的程序不能直接移植到另一个不同种类的微处理器上使用,移植性差;而高级语言对所有微处理器都是通用的,程序可以在不同的微处理器上运行,可移植性较好。
③ 执行效率。一般来说,越是高级的语言,其编译器和开销就越大,应用程序也就越大、越慢;但单纯依靠低级语言,如汇编语言来进行应用程序的开发,带来的问题是编程复杂、开发周期长。因此,存在一个开发时间和运行性能间的权衡问题。
④ 可维护性。低级语言如汇编语言,可维护性不高。高级语言程序往往是模块化设计,各个模块之间的接口是固定的。当系统出现问题时,可以很快地将问题定位到某个模块内,并尽快得到解决。另外,模块化设计也便于系统功能的扩充和升级。
几种开发语言的比较:
在嵌入式系统开发过程中使用的语言种类很多,比较广泛应用的高级语言有:Ada、C/C++、Modula-2和Java等。Ada语言定义严格,易读易懂,有较丰富的库程序支持,目前在国防、航空、航天等相关领域应用比较广泛,未来仍将在这些领域占有重要地位。C语言具有广泛的库程序支持,目前在嵌入式系统中是应用最广泛的编程语言,在将来很长一段时间内仍将在嵌入式系统应用领域占重要地位。C++是一种面向对象的编程语言,目前在嵌入式系统设计中也得到了广泛的应用,如GNU C++。Visual C++,是一种集成开发环境,支持可视化编程,广泛应用于GUI程序开发。但C与C++相比,C++的目标代码往往比较庞大和复杂,在嵌入式系统应用中应充分考虑这一因素。Modula-2定义清晰,支持丰富,具有较好的模块化结构,在教学科研方面有较广泛的应用。虽然该语言的开发应用一直比较平缓,但近两年在欧洲有所复苏。Java语言相对年轻,但有很强的跨平台特性,目前发展势头较为强劲。Java语言的“一次编程,到处可用”的特性,使得它在很多领域备受欢迎。随着网络技术和嵌入式技术的不断发展,Java及嵌入式Java的应用也将越来越广泛,但是Java消耗硬件资源较大。
4.3 集成开发环境考虑的因素
集成开发环境IDE(Integrated Development Environment)应考虑以下因素:
① 系统调试器的功能。系统调试特别是远程调试是一个重要的功能。
② 支持库函数。许多开发系统提供大量使用的库函数和模板代码,如大家比较熟悉的C++编译器就带有标准的模板库。它提供了一套用于定义各种有用的集装、存储、搜寻、排序对象。与选择硬件和操作系统的原则一样:除非必要,尽量采用标准的 glibc。
③ 编译器开发商是否持续升级编译器。
④ 连接程序是否支持所有的文件格式和符号格式。
4.4 硬件调试工具的选择
好的软件调试程序可以有效地发现大多数的错误,但是如果再选择一个好的硬件调试就会达到事半功倍的效果。常用的硬件调试工具有以下几种:
① 实时在线仿真器(ICE,In-Circuit Emulator)。用户从仿真插头向ICE看,ICE应是一个可被控制的MCU。ICE是通过一根短电缆连接到目标系统上的。该电缆的一端有一个插件,插到处理器的插座上,而处理器则插到这个插件上。ICE支持常规的调试操作,如单步运行、断点、反汇编、内存检查、源程序级的调试等等。
② 逻辑分析仪。逻辑分析仪最常用于硬件调试,但也可用于软件调试。它是一种无源器件,主要用于监视系统总线的事件.
③ ROM仿真器。ROM仿真器用于插入目标上的ROM插座中的器件,用于仿真ROM芯片。可以将程序下载到ROM仿真器中,然后调试目标上的程序,就好像程序烧结在PROM中一样,从而避免了每次修改程序后直接烧结的麻烦。
④ 在线调试OCD或在线仿真(on-chip emulator)
特别的硅基材料以及定制和CPU引脚的串行连接,在这种特殊的CPU芯片上使用OCD (On-Chip Debugging),才能发挥出OCD的特点。用低端适配器就可以把OCD端口和主工作站以及前端调试软件连接起来。从OCD的基本形式看来,它的特点和单一的ROM监测器是一致的,但是不像后者那样,需要专门的程序以及额外的通信端口。
4.5 软件组件的选择
有些软件组件是免费的,有些软件组件是授权的。授权软件组件的费用一般都很高,但大都经过严格的测试,可靠性高,调试时间短。现在也有一些免费的自由软件组件,它们的性能、可靠性也很好。因此开发人员在选择的时候要加以权衡,确定哪种方案更好。
国外的开发已经如火如荼,国内的开发也不甘示弱。Linu_在嵌入式系统中具有强大的生命力和利用价值,很多公司和大学都不同程度地表现出对这个方面的兴趣。有理由相信,嵌入式Linu_的发展将带领我们进入嵌入式系统的新时代!
浏览量:2
下载量:0
时间:
多媒体数据库是数据库技术与多媒体技术结合的产物。多媒体数据库不是对现有的数据进行界面上的包装,而是从多媒体数据与信息本身的特性出发,考虑将其引入到数据库中之后而带来的有关问题。以下是读文网小编今天为大家精心准备的:论多媒体数据库的关键技术问题相关论文。内容仅供参考,欢迎阅读!
论多媒体数据库的关键技术问题全文如下:
[摘 要]多媒体数据库技术是计算机技术的重要组成部分,它能够同时获取、处理、编辑、存储和展示文字、声音、影像、图形等不同媒体,同时它具有多样性、集成性和交互性等特点。只有解决好多媒体的关键性技术问题,才能得到广泛应用,促进它更快发展。
[关键词]多媒体数据库;数据模型;面向对象;分布式数据库
多媒体数据模型主要采用文件系统管理方式、扩充关系数据库的方式和面向对象数据库的方式。
1.1文件系统管理方式
多媒体资料是以文件的形式在计算机上存储的,所以用各种操作系统的文件管理功能就可以实现存储管理。Windows的文件管理器或资源管理器不仅能实现文件的存储管理,而且还能实现有些图文资料的修改,演播一些影像资料。为了方便用户浏览多媒体资料,出现很多的图形、图象浏览工具软件。有些在Windows95下的浏览软件还和资源管理器结合起来,如ACDSee工具软件不仅可浏览BMP、GIF、JPEG、PCX、Photo-CD、PNG、TGA、TIFF and WMF 格式的图像,而且还具备资源管理器的查询、删除、复制等功能。如多功能影像处理及管理软件ImagePals,是在Windows 上影像工具软件,ImagePals提供了电子相簿(Album)、影像编辑(Image Editor)和屏幕捕捉(Screen Capture)等功能,此外还具有视窗及CD浏览器等。电子相薄(Album)是一个很具特色的应用程序,能对文件进行迅速、可视性的管理。文件系统方式存储简单,当多媒体资料较少时,浏览查询还能接受,但演播的资料格式受到限制,最主要的是当多媒体资料的数量和种类相当多时,查询和演播就不方便了。
1.2扩充关系数据库的方式
数据库的出现是为了解决文件管理数据的不足,同样,为了解决管理多媒体数据,人们很容易地会想到使用数据库。传统的关系数据模型建立在严格的关系代数的基础上的,解决了数据管理的许多问题,目前基于关系模型的数据库管理系统仍然是主流技术。但是平坦化的数据类型不适于表达复杂的多媒体信息,文本、声音、图像这些非格式化的数据是关系模型无法处理的;简单化的关系也会破坏媒体实体的复杂联系,丰富的语义性超过了关系模型的表示能力。出于保护原有投资和市场的考虑,全球几家大的数据库公司都已将原有的关系数据库产品加以扩充,使之在一定程度上能支持多媒体的应用。用关系数据库存储多媒体资料的方法一般是:
1.2.1用专用字段存放全部多媒体文件;
1.2.2多媒体资料分段存放在不同字段中,播放时再重新构建;
1.2.3文件系统与数据库相结合,多媒体资料以文件系统存放,用关系数据库存放媒体类型、应用程序名、媒体属性、关键词等。
1.3面向对象数据库的方式
关系数据库在事物管理方面获得了巨大的成功,它主要是处理格式化的数据及文本信息。由于多媒体信息是非格式化的数据,多媒体数据具有对象复杂、存储分散和时空同步等特点,所以尽管关系数据库非常简单有效,但用其管理多媒体资料仍不太尽如人意。而面向对象数据库是指对象的集合、对象的行为、状态和联系是以面向数据模型来定义的。面向对象的概念是新一代数据库应用所需的强有力的数据模型的良好基础。面向对象的方法最适合于描述复杂对象,通过引入封装、继承、对象、类等概念,可以有效地描述各种对象及其内部结构和联系。
多媒体资料可以自然地用面向对象方法所描述,面向对象数据库的复杂对象管理能力正好对处理非格式多媒体数据有益;根据对象的标识符的导航存取能力有利于对相关信息的快速存取;封装和面向对象编程概念又为高效软件的开发提供了支持。面向对象数据库方法是将面向对象程序设计语言与数据库技术有机地结合起来,是开发的多媒体数据库系统的主要方向。
为高效管理多媒体数据,基于关系数据库的应用系统逐渐演变到多媒体数据库管理系统用面向对象的概念扩充关系数据库。用面向对象的高级语言扩展基本关系类型,使其支持复杂对象,并对关系模型提供的操作加以扩充,利用关系数据库的优势管理多媒体资料。
由于多媒体信息,如声音、图像目前国际上的压缩标准有:
JPEG(Joint Photographic Experts Group),是由国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的。适合于连续色调、多级灰度、彩色或单色静止图像的国际标准。
MPEG(Moving Picture Experts Group),是ISO/IEC委员会的第11172号标准草案,包括MPEG视频、MPEG音频和MPEG系统三部分。MPEG要考虑到音频和视频的同步,联合压缩后产生一个电视质量的视频和音频、压缩形式的位速为1.5Mbps的单一流。
P×64,是CCITT的H.261号建议,P为可变参数,取值范围是1~30。该标准的目标是可视电话和电视会议,它可以覆盖整个ISDN(综合业务数字网)信道。当P=1或2时,只支持每秒帧数较少的视频电话,P>6时可支持电视会议。
P×64标准和MPEG标准的数据压缩技术有许多共同之处,但P×64标准是为适应各种通道容量的传输,而MPEG标准是用狭窄的频带实现高质量的图像画面和高保真的声音传送。
如何有效地按照多媒体数据的特性去存取多媒体数据呢?利用常规关系数据库管理系统来管理多媒体数据已经不能适应了,基于内容的多媒体信息检索研究应运而生。它支持其他多媒体信息技术,如超媒体技术、虚拟现实技术、多媒体通信网络技术等。多媒体内容的处理分为三大部分:内容获取、内容描述和内容操纵。也可将其看成是内容处理的三个步骤,即先对原始媒体进行处理,提取内容,然后用标准形式对它们进行描述,以支持各种内容的操纵。
内容获取(Populating) 通过对各种内容的分析和处理而获得媒体内容的过程。多媒体数据具有时空特性,内容的一个重要成分是空间和时间结构。内容的结构化(Structuring)就是分割(Segmenting)出图像对象、视频的时间结构、运动对象,以及这些对象之间的关系。特征抽取(Extraction)就是提取显著的区分特征和人的视觉(Visual)、听觉(Auditory)方面的感知特征来表示媒体和媒体对象的性质。
----内容描述(Description) 描述在以上过程中获取的内容。目前,MPEG-7专家组正在制定多媒体内容描述标准。该标准主要采用描述子(Descriptor) 和描述模式(Scheme) 来分别描述媒体的特性及其关系。
----内容操纵(Manipulating) 针对内容的用户操作和应用。有许多这方面的名词和术语。查询(Query)是面向用户的术语,多用于数据库操作。检索 (Retrieval) 是在索引(Index)支持下的快速信息获取方式。搜索(Search)常用于Internet的搜索引擎,含有搜寻的意思,又有在大规模信息库中搜寻信息的含义。
摘要(Summarization, Excerpt)对多媒体中的时基媒体(如视频和音频)是一种特殊的操作。我们熟知文献摘要的含义,在内容技术支持下,也可以对视频和音频媒体进行摘要,获得一目了然的全局视图和概要。同样,用户可以通过浏览(Browsing) 操作,线性或非线性地存取结构化的内容。另外,基于内容的技术不仅仅用在多媒体信息的检索和搜索方面,检索仅仅是信息存取的一个方面。过滤(Filtering)就是与检索相反的一种信息存取方式。用过滤技术可以实现个人化的信息服务。
分布式数据库系统是在集中式数据库系统的基础上发展起来的,是数据库技术与计算机网络技术的产物。分布式数据库系统是具有管理分布数据库功能的计算机系统。一个分布式数据库是由分布于计算机网络上的多个逻辑相关的数据库组成的集合,网络中的每个结(一般在系统中的每一台计算机称为结点node)具有独立处理的能力(称为本地自治),可执行局部应用,同时,每个结点通过网络通讯系统也能执行全局应用。所谓局部应用即仅对本结点的数据库执行某些应用。所谓全局应用(或分布应用)是指对两个以上结点的数据库执行某些应用。支持全局应用的系统才能称为分布式数据库系统。对用户来说,一个分布式数据库系统逻辑上看如同集中式数据库系统一样,用户可在任何一个场地执行全局应用。分布式数据库具有如下特点:
4.1本地自治(Local Autonomy);
4.2不依靠一个中心站点;
4.3能连续操作;它也是数据库技术的一个发展方向。
多媒体数据库技术随着计算机技术的发展显得越来越重要,应用领域会更加广阔,现在通信技术也得到突飞猛进的发展,以它为基础的多媒体数据库技术将改变我们未来的生活。
浏览量:2
下载量:0
时间:
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。以下是读文网小编今天为大家精心准备的:ASP技术访问WEB数据库相关论文。内容仅供参考,欢迎阅读!
目前在WINDOWS环境下有多种访问WEB数据库的技术,主要有:
1.公共网关接口CGI(Common Gateway Interface)
CGI是较早实现的技术。适用于多种服务器平台,如UNIX、WINDOWS等,但CGI的开发成本高、维护困难、功能有限、不具备事务处理功能、占用服务器资源较多。
2. INTERNET数据库连接器IDC(Internet Database Connector)
IDC集成在ISAPI(Internet Server API)中,充分利用了DLL技术,易扩充,但编程较CGI更为复杂,只适用于小型数据库系统。
3. 先进数据库连接器ADC(Advance Database Connector)
ADC提供了ActiveX Control来访问数据库,它的主要特点是数据查询由用户端浏览器执行,因而需将服务器端数据库中的部分记录下载到用户端,系统开销较大、响应慢,只适用于特别频繁的数据库查询操作。
4. JAVA/JDBC语言编程
JAVA语言是一种面向对象、易移植、多线程控制的语言,可通过JDBC去连接数据库。用JAVA/JDBC编写的软件可移植性强,适用于多种操作系统,但其执行效率和执行速度还不理想,目前无法建立高效、高速的应用。
5. 动态服务器页面ASP(Active Server Page)
ASP是微软公司最新推出的WEB应用开发技术,着重于处理动态网页和WEB数据库的开发,编程灵活、简洁,具有较高的性能,是目前访问WEB数据库的最佳选择。
1.ASP访问数据库的原理
ASP是服务器端的脚本执行环境,可用来产生和执行动态的高性能的WEB服务器程序。
当用户使用浏览器请求ASP主页时,WEB服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言(JScript 或VBScript),通过ODBC连接数据库,由数据库访问组件ADO(ActiveX Data Objects)完成数据库操作,最后ASP生成包含有数据查询结果的HTML主页返回用户端显示。
由于ASP在服务器端运行,运行结果以HTML主页形式返回用户浏览器,因而ASP源程序不会泄密,增加了系统的安全保密性。此外,ASP是面向对象的脚本环境,用户可自行增加ActiveX组件来扩充其功能,拓展应用范围。
2.ASP页面的结构:
ASP的程序代码简单、通用,文件名由.asp结尾,ASP文件通常由四部分构成:
1) 标准的HTML标记:所有的HTML标记均可使用。
2) ASP语法命令:位于<% %> 标签内的ASP代码。
3) 服务器端的include语句:可用#include语句调入其它ASP代码,增强了编程的灵活性。
4) 脚本语言:ASP自带JScript和VBScript两种脚本语言,增加了ASP的编程功能,用户也可安装其它脚本语言,如Perl、Rexx等。
3.ASP的运行环境
目前ASP可运行在三种环境下。
1) WINDOWS NT server 4.0运行IIS 3.0(Internet Information Server)以上。
2) WINDOWS NT workstation 4.0运行Peer Web Server 3.0以上。
3) WINDOWS 95/98运行PWS(Personal Web Server)。
其中以NT server上的IIS功能最强,提供了对ASP的全面支持,是创建高速、稳定的ASP主页的最佳选择。
4.ASP的内建对象
ASP提供了六个内建对象,供用户直接调用:
1) Application对象:负责管理所有会话信息,可用来在指定的应用程序的所有用户之间共享信息。
2) Session对象:存贮特定用户的会话信息,只被该用户访问,当用户在不同WEB页面跳转时,Session中的变量在用户整个会话过程中一直保存。Session对象需cookie支持。
3) Request对象:从用户端取得信息传递给服务器,是ASP读取用户输入的主要方法。
4) Response对象:服务器将输出内容发送到用户端。
5) Server对象:提供对服务器有关方法和属性的访问。
6) Object Context对象:IIS 4.0新增的对象,用来进行事务处理。此项功能需得到MTS(Microsoft Transcation Server)管理的支持。
5. ASP的主要内置组件:
1) Ad Rotator组件:用来按指定计划在同一页上自动轮换显示广告,用于WWW上日益重要的广告服务。
2) Browser Capabilities组件:确定访问WEB站点的用户浏览器的功能数据,包括类型、性能、版本等。
3) Database Access组件:提供ADO (ActiveX Data Objects)来访问支持ODBC的数据库。
4) File Access组件:提供对服务器端文件的读写功能。
5) Content Linking组件:生成WEB页内容列表,并将各页顺序连接,用于制作导航条。
此外,还可安装Myinfo、Counters、Content Rotator、Page Count等组件,用户也可自行编制Actiive组件,以提高系统的实用性。
6. Database Access组件ADO
WWW上很重要的应用是访问WEB数据库,用ASP访问WEB数据库时,必须使用ADO组件,ADO是ASP内置的ActiveX服务器组件(ActiveX Server Component),通过在WEB服务器上设置ODBC和OLEDB可连接多种数据库:如SYBASE、ORACLE、INFORMIX、SQL SERVER、ACCESS、VFP等,是对目前微软所支持的数据库进行操作的最有效和最简单直接的方法。
ADO组件主要提供了以下七个对象和四个集合来访问数据库。
1) Connection对象:建立与后台数据库的连接。
2) Command对象:执行SQL指令,访问数据库。
3) Parameters对象和Parameters集合:为Command对象提供数据和参数。
4) RecordSet对象:存放访问数据库后的数据信息,是最经常使用的对象。
5) Field对象和Field集合:提供对RecordSet中当前记录的各个字段进行访问的功能。
6) Property对象和Properties集合:提供有关信息,供Connection、Command、RecordSet、Field对象使用。
7) Error对象和Errors集合:提供访问数据库时的错误信息。
在ASP中,使用ADO组件访问后台数据库,可通过以下步骤进行:
1. 定义数据源
在WEB服务器上打开“控制面板”,选中“ODBC”,在“系统DSN”下选“添加”,选定你希望的数据库种类、名称、位置等。本文定义“SQL SERVER”,数据源为“HT”,数据库名称为“HTDATA”,脚本语言采用Jscript。
2,使用ADO组件查询WEB数据库
1) 调用Server.CreateObject方法取得“ADODB.Connection”的实例,再使用Open方法打开数据库:
conn = Server.CreateObject(“ADODB.Connection”)
conn.Open(“HT”)
2) 指定要执行的SQL命令
连接数据库后,可对数据库操作,如查询,修改,删除等,这些都是通过SQL指令来完成的,如要在数据表signaltab中查询代码中含有“X”的记录
sqlStr = “select * from signaltab where code like ‘%X%’”
rs = conn.Execute(sqlStr)
3) 使用RecordSet属性和方法,并显示结果
为了更精确地跟踪数据,要用RecordSet组件创建包含数据的游标,游标就是储存在内存中的数据。
rs = Server.CreateObject(“ADODB.RecordSet”)
rs.Open(sqlStr,conn,1,A)
注:A=1读取
A=3 新增、修改、删除
在RecordSet组件中,常用的属性和方法有:
rs.Fields.Count: RecordSet对象的字段数。
rs(i).Name: 第i个字段的名称,i为0至rs.Fields.Count-1
rs(i): 第i个字段的数据,i为0至rs.Fields.Count-1
rs("字段名"): 指定字段的数据。
rs.Record.Count:游标中的数据记录总数。
rs.EOF: 是否最后一条记录。
rs.MoveFirst: 指向第一条记录。
rs.MoveLast: 指向最后一条记录。
rs.MovePrev: 指向上一条记录。
rs.MoveNext: 指向下一条记录。
rs.GetRows: 将数据放入数组中。
rs.Properties.Count:ADO的ResultSet或Connection的属性个数。
rs.Properties(item).Name:ADO的ResultSet或Connection的名称。
rs.Properties: ADO的ResultSet或Connection的值。
rs.close(): 关闭连接。
4) 关闭数据库
conn.close()
下面这段示例程序是访问SQL SERVER数据库的 signaltab表,表中有三个字段:code(代码字段,字符型,3位),class(分类字段,字符型,10位),memo(备注字段,字符型,20位)。程序中数据源DSN:HT、用户名:client、口令:passwd。
屏幕输入页面input.asp
<% @ language=javascript %>
ONCLICK="window.history.back()">
数据库处理程序shotquery.asp
浏览量:1
下载量:0
时间:
Web数据库就是将数据库技术与Web技术融合在一起,使数据库系统成为Web的重要有机组成部分,从而实现数据库与网络技术的无缝结合。这一结合不仅把Web与数据库的所有优势集合在了一起,而且充分利用了大量已有数据库的信息资源。以下是读文网小编今天为大家精心准备的:电子商务网站平台3p设计技术与网络数据库相关论文。内容仅供参考,欢迎阅读!
摘要:本文分别利用ASP,PHP,JSP这三个动态网站技术,使用跨Windows和Linux平台的同一个数据库MySql,采用统一的三种格式的表单界面,借用三种连接数据库的方法,在三种不同特点的WEB服务器环境下,给出了电子商务网站设计中的主要的前台和后台程序。 关键词:电子商务网站,网络数据库,ASP,PHP,JSP,服务器
1. 引言:
目前动态网站设计技术主要有:利用Perl/C++/Delphi等开发的CGI,两种有名的API-ISAPI/NSAPI,还有ColdFusion,以及最近几年流行起来的3p技术-ASP,PHP,JSP(据Internet上有关网站统计约有近百种); ASP-Ative Server Page,由微软公司开发 ,是一个WEB服务器端的开发环境,主要采用脚本语言VBScript(或Javascript/perl等)作为自己的开发语言,可用ODBC或直接驱动法访问Window平台的数据库。PHP-Person Server Page ,是由Rasmus个人创立的一种跨平台的服务器端的嵌入式脚本语言. 它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,.是一种很有个性的网站开发语言,它支持目前绝大多数数据库。JSP-Java Server Page , 是Sun公司推出的新一代站点开发语言,Sun 公司除Java 应用程序 和 Java Applet 之外,又创立了JSP,其可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序开发,特别是有许多访问数据库的方法。在电子商务平台设计中,主要需要解决"网站结构的设计","注册界面","交易界面","后台数据库",以及"配套模块"诸如购物/用户/论坛/反馈/搜索/会话等设计;考虑篇幅,本文只给出统一的前台界面及后台数据库的3p设计方法;可以说ASP,PHP,JSP与网络数据库的操作是电子商务网站平台设计的坚强基石。
2 .1构建ASP的运行环境:NT5.0Server,IIS5.0 ,ASP3.0 。 安装Windows2000Server(NT5.0Server)时选择IIS5.0有关选项。安装完后ASP3.0便内嵌于IIS5.0中。测试ASP:启动浏览器,在地址栏处输入http://127.0.0.1:80/default.asp,若浏览到IIS服务器的ASP欢迎页面,说明安装成功
2.2构建PHP4的运行环境:NT5.0Server, Apache1.3.12 php4.0 安装支持PHP的web服务器Apache1.3.12,将Apache服务器压缩文件解压缩,根据提示进行整个安装过程,自己选择安装到目录d:apache下。安装PHP4,将PHP4压缩文件解压缩到d:php4即可,同时将其中的php.ini-dist文件拷贝到winnt目录中,将文件更名为php.ini,打开该文件将其中extension_dir 设置为:d:/php4,并加载扩展模块:将文件中含有;extention=*.dll的各项前面的";"号去掉即可;修改设置Aphache服务器,用文本编辑器编辑目录d:aphache目录下的子目录conf下名为httpd.conf的文本文件,首先将"#ServerName *"这一行下加入"ServerName http://127.0.0.1/" ,其次将"Port 80"改为"Port 81(或其他与IIS5.0不冲突的端口)",再其次设置更改Apache虚拟目录,将"Documentroot "d:/Apache/htdocs""改为Documentroot "d:/trade"(该目录即是电子商务网站目录,可用任意方法建立目录trade),最后加入支持php4的如下语句:ScriptAlias /php4/ "d:/php4/" AddType application/x-httpd-php .php AddType application/x-httpd-php .phtml Action application/x-httpd-php4 "/php4/php.exe";测试php:完成上述步骤后,在d:trade目录下,用如何文本编辑器,生成扩展名为.php(或phtml)的文件test.php,在文件中输入如下php代码,存盘后,启动Apache,接着你在浏览器中输入:http://127.0.0.1:81/test.php,若看到php的版本和扩展模块等信息,说明环境安装设置成功。
2.3构建JSP的运行环境:NT5.0Server,Resin1.13, jdk1.3 安装Java编译器jdk1.3:运行jdk1_3-win.exe,按照提示完成安装即可,将其安装在d:java1.3目录,也可安装在其他目录。 设置系统环境参数:控制面板/系统/环境页中选择path 参数加入d:jdk1.3bin;增加新的环境参数classpath=d:jdk1.3libtools.jar;d:jdk1.3libdt.jar;,然后重新启动计算机即可安装支持JSP的web服务器Resin1.1.3,将RESIN-1.1.3.zip释放为d:Resin1.1.3 即可。配置服务器端口,打开d:/resin1.1.3/conf/目录下的resin.conf文件在8080标签处将端口设置为82(在我的NT5.0上装有三个服务器,这样三个服务器的端口分别为IIS :80;Apache:81;Resin:82其实也可设置为其他互不冲突的端口号). 测试JSP:启动Resin服务器,启动浏览器,在地址栏处输入http://127.0.0.1:82/,若浏览到Resin服务器的JSP欢迎页面,说明安装成功
3生成三种格式的动态表单页面
为了通用,这里采用可能用到的表单对象为例,至于下面设计具体数据表用到的字段,只要转成给出的表单域相应对象即可.
3.1用ASP动态生成与数据库进行数据交流的操作表单: form.asp: 生成表单域头: 生成普通文本: 生成密码文本: 生成滚动文本: 生成单选: 生成复选: 生成列表框: 生成提交按钮 生成重填按钮 生成表单域尾
3.2用PHP动态生成与数据库进行数据交流的操作表单: form.php 生成表单域头:"?> 生成普通文本:"?> 生成密码文本:"?> 生成滚动文本:"?> 生成单选:"?> 生成复选:"?> 生成列表框:网络数据库Asp技术Php技术Jsp技术网站设计 "?> 生成提交按钮 "?> 生成重填按钮"?> 生成表单域尾"?>
3.3用JSP动态生成与数据库进行数据交流的操作表单 form.jsp 生成表单域头: 生成普通文本: 生成密码文本: 生成滚动文本: 生成单选: 生成复选: 生成列表框: 生成提交按钮 生成重填按钮 生成表单域尾
4.1启动MySql数据库服务器(MySql的安装及ODBC驱动程序的安装与设置请参阅相关书籍) 可在NT5.0下用启动服务法/NET命令法/命令窗口键入MySqld-shareware法,启动MySql数据库服务器,启动数据库服务器后,在d:mysqlbin>提示符下键入mysql-h 127.0.0.1 -u root 即可出现mysql>提示符,从这开始即可进行对MySql数据库的各种操作。若要退出可键入quit/exit,若要关闭数据库服务器,可在d:mysqlbin>提示符下键mysqladmin -u root shutdown 4.2建立MySql数据库 在MySql数据库的提示符mysql>键入Create database tradedb ;(或go)
4.2.建立MySql数据库表 这里以商务网站中常用的几种数据表为例,主要用到的数据表和生成数据表的SQL代码如下:(这里的数据表字段只要分别对应上述表单域对象即可实际操作,数据表统一用tablename表示) 客户登录管理数据表 CREATE TABLE users ( ID int not null auto_increment, UserName varchar(30) not null, Password varchar(20) not null ) 客户信息数据表 CREATE TABLE usermessage ( UserName varchar(30) not null, Email varchar(80) not null, Address varchar(120) not null , Fax varchar(40) null, Phone varchar(40) not null, Cerreycard varchar(50) not null ) 客户定购商品数据表 CREATE TABLE catalog ( ProductId int not null , Name varchar(64) not null, Price float(6,2) not null, Description text null )
5.1设计处理表单数据的ASP程序 form_cl.asp 建立与数据库的连接:这里采用直接驱动法 Set conn = Server.CreateObject("ADODB.Connection"); conn.open "driver={MySQL};server=localhost;uid=user;pwd=xxxxxx;database=tradedb" 获取表单提交的数据: data1=request("ptwbk");data2=request("mmwbk");data3=request("gdwbk") data4=request("dxk");data5=request("fxk");data6=request("lbk") 用SQL语句对数据库进行操作 查询数据记录: sql="select * from tablename" ;set rs=conn.execute(sql) " 增加数据记录: sql="insert into tablename(ptwbk,mmwbk,gdwbk,dxk,fxk,lbk) values('data1','data2','data3','data4','data5', 'data5')"; set rs=conn.execute(sql) 更改某条数据记录: sql="update tablename set data1="request(ptwbk)", where ID="num"; set rs=conn.execute(sql) 删除某条数据记录: sql="delete from tablename where ID="num";set rs=conn.execute(sql) 将SQL语句处理的数据结果输出 Response.Write "
" Response.Write " " For i=0 to rs.Fields.Count-1 Response.WRITE " " & rs.Fields(i).Name & " " Next Response.Write "
" While Not rs.EOF Response.Write " " For i=0 to rs.Fields.Count-1 Response.WRITE " " & rs.Fields(i).Value & " " Next Response.Write "
" rs.MoveNext Wend Response.Write "
" 关闭数据库: rs.close;conn.Close
5.2设计处理表单数据的PHP程序 form_cl.php 建立与数据库的连接:这里采用PHP的MySql函数法(也可用ODBC函数法) $conn=odbc_connect("localhost","user","xxxxxx"); 选择数据库: mysql_select_db("tradedb","$conn"); 获去表单提交的数据: $data1=$ptwbk; $data2=$mmwbk; $data3=$gdwbk; $data4=$dxk; $data5=$fxk; $data6=$lbk; 用SQL语句对数据库进行操作 查询数据记录: $sql="select * from tablename" ;$result=odbc_do($conn,$sql); 增加数据记录: $sql="insert into tablename(ptwbk,mmwbk,gdwbk,dxk,fxk,lbk) values('$data1','$data2','$data3','$data4','$data5','$data6')";$result=odbc_do($conn,$sql); 更改某条数据记录: $sql="update tablename set $data1=ptwbk where ID=num" $result=odbc_do($conn,$sql); 删除某条数据记录:$sql="delete from tablename where ID=num";$result=odbc_do($conn,$sql); 将SQL语句处理的数据结果输出 odbc_result_all($result,"border=1"); 关闭数据库: odbc_close($conn);
5.3设计处理表单数据的JSP程序 form_cl.jsp 建立与数据库的连接:这里采用JDBC-ODBC桥生成JavaBean法 创建一个JavaBean命名为conndb.java,并保存在d:/resin1.1.3/doc/web-inf/classes/trade目录下,代码如下:(限于篇幅这里没按标准书写,而采用不换行写法,其他类同) package trade; import java.sql.*; public class conndb { String url="jdbc:inetdae:localhost";String login="user"; String password = "xxxxxx"; String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";String sConnStr = "jdbc:odbc:Dsnmysql"; Connection conn = null; ResultSet rs = null; public conndb() {try {Class.forName(sDBDriver); Connection conn = DriverManager.getConnection(url,login,password);} catch(java.lang.ClassNotFoundException e) {System.err.println("conndb(): " + e.getMessage());}} Public/ResultSet/executeQuery(String/sql)/{rs=null;try{conn=DriverManager.getConnection(sConnStr); Statement stmt = conn.createStatement();rs = stmt.executeQuery(sql); } catch(SQLException ex) {System.err.println("aq.executeQuery: " + ex.getMessage());} return rs; }} 然后用javac编译conndb.java生成与其同目录的conndb.class文件,在form_cl.jsp文件中加入如下标签即可建立与数据库的连接 获去表单提交的数据: String data1=request.getParameter("ptwbk"); String data2=request.getParameter("mmwbk ") String data3=request.getParameter("gdwbk ") String data4=request.getParameter("dxk ") String data5=request.getParameter("fxk ") String data5=request.getParameter("lbk ") 语句对数据库进行操作 查询数据记录: String sql="select * from tablename"; connbean.executeQuery(sql); 增加数据记录: String sql="insert into tablename values('" + data1 + "','" +data2 +"','" +data3 + "','" + data4+ "'+"','" + data5+"','" + data6+'")";connbean.executeQuery(sql); 更改某条数据记录: String sql="update tablename set data1='" + ptwbk + "',data2='" + mmvbk + "',data3='" +gdwbk + "' where ID='" + num + "'" ;connbean.executeQuery(sql) 删除某条数据记录: String sql="delete from tablename where ID='" +num+ "'" ; connbean.executeQuery(sql); 将SQL语句处理的数据结果输出 ResultSet rs = connbean.executeQuery(sql); While (rs.next()) {out.print("
"+rs.getString("ptwbk")+"
");out.print("
"+ rs.getString("mmvbk") + "
");out.print("
" + rs.getString("gdwbk") + "
"); out.print("
" + rs.getString("dxk") + "
");out.print("
" + rs.getString("fxk") + "
");out.print("
" + rs.getString("lbk") + "
");} 关闭数据库: rs.close();
6.1主要特性: 可见下表 设计技术 运行平台 服务器 开发程序 扩展组件 ASP Windows系列 IIS Vbscript/Jscript/Perl ActiveX PHP Unix系列, Novell,Windows Apache等许多服务器 php Function JSP Unix系列, Novell,Windows Resin等许多服务器 Java JavaBean
6.2连接数据库的方法: 通过上述操作可看出,本文采用了三种操作MySql数据库的方法,Asp采用直接驱动法,Php采用MySql函数法,Jsp采用JDBC-ODBC/JavaBean法
6.3网站结构设计 考虑篇幅,本文只给出了Widows平台上,电子商务网站设计中的主要环节的代码设计,对于Linux平台、网站结构、各个功能模块设计等论题,作者已经有两篇这方面的论文在核心刊物上待发表,这里不便公开.
6.4可操作的主要数据库 上述三种动态技术操作数据库的方法,可操作Windows平台上的Access/MsSql/Foxpro/Informix/Oracle等数据库,对Php和Jsp可操作Linux平台上的数据库Postgres/Sybase/Oracle等.
6.5平台与代码通用性 上述设计方法采用的是通用代码方式,对PHP和JSP大部分代码即可运行于Windows,又可运行于Linux;考虑MySql的许多方便的特点,本文以此为例,做了一些有益的工作 参考文献: 1汪晓平.ASP网络开发技术.人民邮电出版社,2000.1 2 Leon Atkinson.PHP核心编程.清华大学出版社,2000.4 3石振国.多媒体通信网页的Java设计技术.
浏览量:3
下载量:0
时间:
毕业设计论文是毕业设计工作的总结和提高,应有一定的实际应用价值,能反映出作者所具有的专业基础知识和分析解决问题的能力。 以下是读文网小编今天为大家精心准备的关于计算机的毕业论文范文:嵌入式移动数据库研究,内容仅供参考,欢迎阅读!
摘要:嵌入式技术已在人们生活中得到广泛应用;移动计算更是给人们的生活带来了极大的方便。有移动计算技术推动发展的新的数据库技术让人耳目一新。嵌入式移动数据库技术因此产生。主要论述了嵌入式移动数据库的特点及应用,嵌入式移动数据库管理系统(EMDB)的功能需求及特点,嵌入式移动数据库的系统结构。
关键字: 嵌入式 移动计算 嵌入式移动数据库 EMDB 系统结构
随着移动计算技术的发展,移动数据库逐步走向应用,在嵌入式操作系统中加入移动数据库,也越来越显示出其重要性。
1.1 嵌入式系统
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。
1.2 移动计算
移动计算是一种新型的技术,它使得计算机或其它信息设备,在没有与固定的物理连接设备相连的情况下,能够传输数据。移动计算的作用在于,将有用、准确、及时的信息与中央信息系统相互作用,分担中央信息系统的计算压力, 使有用、准确、及时的信息能提供给在任何时间、任何地点需要它的任何用户。移动计算环境比传统的计算环境更为复杂和灵活。 典型的移动计算环境有[1]:
(1) 智能计算设备+ 无线网络。通过无线网络,智能计算设备可以随时进入MCE 主网络;
(2) 智能计算设备+ 调制解调器+ 电话网络。在不同地点, 将调制解调器和附近的电话相连接, 通过电话网进入MCE 主网络;
(3) 移动用户+ 传统工作站+ 传统有线网络。移动用户在不同场地使用静态计算机获得MCE 的服务。
1.3 嵌入式移动数据库
数据库技术一直在随着计算的发展而不断进步。凡是有数据的地方,就要用到数据库来协助管理数据。移动计算也是对数据的处理,离开对数据的管理、处理,计算机就毫无意义。移动计算同时又强调其移动性,传统的PC机要做到移动,同时在苛刻的环境下作到良好的运作也是不可能的。此时,嵌入式很好的满足了移动计算对移动客户端计算的要求。三者从这一点上结合就产生了当今数据库的一个新的发展空间:嵌入式数据库技术。移动数据库是指支持移动计算环境的分布式数据库。由于移动数据库系统通常应用在诸如掌上电脑、PDA、车载设备、移动电话等嵌入式设备中,因此,它又被称为嵌入式移动数据库系统。
2.1 嵌入式移动数据库特点
嵌入式移动数据库在实际应用中必须解决好数据的一致性(复制性)、高效的事务处理、数据的安全性等问题。
(1)数据的一致性
移动数据库的一个显著特点是,移动终端之间以及与服务器之间的连接是一种弱连接。即低带宽、长延迟、不稳定和经常性的断开。为了支持用户在弱环境下对数据库的操作,现在普遍采用乐观复制方法(Optimistic replication 或 Lazy replication)允许用户对本地缓存上的数据副本进行操作。待网络重新连接后再与数据库服务器或其它终端交换数据修改信息,并通过冲突检测和协调来恢复数据的一致性。
(2)高效的事务处理
移动事务处理要解决在移动环境中频繁的、可预见的、拆连情况下的事务处理。为了保证活动事务的顺利完成,必须设计和实现新的事务管理策略和算法,方法如下:
根据网络连接情况来确定事务处理的优先级,网络连接速度高的事务请求优先处理。
根据操作时间来确定事务是否迁移,即长时间的事务操作将全部迁移到服务器上执行,无需保证网络的一直畅通。
根据数据量的大小来确定事务是上载执行还是下载数据副本执行后上载。
事务处理过程中,网络断接处理时采用服务器发现机制还是采用客户端声明机制。
事务移动(如:位置相关查询)过程中的用户位置属性的实时更新。
完善的日志记录策略。
(3)数据的安全性
许多应用领域的嵌入式设备是系统中数据管理或处理的关键设备,因此嵌入式设备上的数据库系统对存取权限的控制比较严格。同时,许多嵌入式设备具有较高的移动性、便携性和非固定的工作环境,也带来潜在的不安全因素。同时某些数据的个人隐私性又很高,因此在防止碰撞、磁场干扰、遗失、盗窃等对个人数据安全的威胁上需要提供充分的安全性保证。保证数据安全的主要措施如下:
对移动终端进行认证,防止非法终端的欺骗性接入。
对无线通信进行加密,防止数据信息泄漏。
对下载的数据副本加密存储,以防移动终端物理丢失后的数据泄密[2]。
2.2 嵌入式移动数据库应用
目前,嵌入式移动数据库有两种应用,可划分为水平应用和垂直应用。所谓水平应用,是指应用方案能够用于多种不同行业,只需要极少的定制工作;而垂直应用则针对特定行业的应用,数据处理具有独特性。与水平应用相比,垂直型应用具有明显的行业特殊性,不同领域的应用之间差别较大,结果表示和服务器数据库的管理也有很大不同。主要涉及保险、银行业、航班信息、政府部门等具体的行业领域。如图所示[3]:
图 1 嵌入式移动数据库的应用分类
3.1 嵌入式移动数据库管理系统的功能需求
移动计算环境中的数据库管理系统,是一种动态分布式数据库管理系统。由于嵌入式移动数据库管理系统运行在移动计算的环境之下,应用于嵌入式操作系统之上,所以它有自己的功能需求:
(1)微小内核结构
考虑到嵌入式设备的资源有限,嵌入式移动DBMS应采用微型化技术实现,可在满足应用的前提下,紧缩其系统结构以满足嵌入式应用的需求。
(2)对标准SQL的支持
嵌入式移动DBMS应能提供对标准SQL的支持。支持SQL92 标准的子集,支持数据查询(连接查询、子查询、排序、分组等)、插入、更新、删除多种标准的SQL 语句,以充分满足嵌入式应用开发的需求。
(3)事务管理功能
嵌入式移动DBMS应具有事务处理能力,可自动维护事务的完整性、原子性等特性;支持实体完整性和引用完整性。
(4)完善的数据同步机制
数据同步是嵌入式数据库最重要的特点。通过数据复制,可以将嵌入式数据库或主数据库的变化情况应用到对方,以保证数据的一致性。
(5)支持多种连接协议。
嵌入式移动DBMS应支持多种通信连接协议。可以通过串行通信、T C P /IP、红外传输、蓝牙等多种连接方式,实现与嵌入式设备和数据库服务器的连接。
(6)完备的嵌入式数据库的管理功能
嵌入式移动DBMS应具有自动恢复功能,可进行嵌入式数据库管理,并能够提供数据的备份和恢复,保证用户数据安全可靠。支持多种嵌入式操作系统嵌入式移动DBMS 应能支持Windows CE、Palm OS 等多种目前流行的嵌入式操作系统,这样才能使嵌入式移动数据库管理系统不受移动终端的限制。
3.2 嵌入式移动数据库管理系统的特点
基于以上分析不难得出嵌入式移动数据库的管理系统应具有如下特点:
(1)提供多种数据同步方式。具有上载同步、下载同步和完全同步三种同步方式。
(2)具有完善的冲突检测机制,和灵活的冲突解决方案,具有冲突日志记录功能。企业级应用中冲突是不可避免的,不同的数据库系统认为冲突发生的位置是不一样的。解决冲突的规则可以是系统预定义的也可以是用户自定义的。
(3)支持快速同步。系统同步时,只传递变化的数据,即增量上下载,节省了大量的同步时间。
(4)支持表的水平分割和垂直分割复制,最大限度地降低了嵌入式数据库的大小。
(5)支持异构数据源连接同步。可以用支持ODBC 的异构数据源,作为主数据库和嵌入式设备上的数据库,以进行数据同步。
(6)具有主动同步的功能。允许用户对系统提供的同步事件自定义过程实现,并提供最大灵活度的同步过程。
图2 数据管理模式
嵌入式数据库的应用分为个人应用和企业级应用。在个人应用中,与外界较少交换数据,而且不必考虑多个数据库的数据一致性。在企业级应用中,嵌入式数据库要与企业级数据库交换数据,构成分布式数据库系统,支持复杂的业务活动。
在数据库三级应用模式中,EMDB系统一般采用EMDB+同步/复制服务器+企业级DB,如我们见到的IBM提供的嵌入式设备和移动企业级应用解决方案就是由3部分组成:DB2 Everyplace 嵌入式数据库、DB2 Everyplace Sync Server和Universal Database企业级数据库。在此模式中,EMDBS由移动设备中的EMDBMS和固定节点上的同步/复制服务器这两部分构成。这种方案的指导思想是将DBMS的功能分解,简化移动设备中的功能,进而减少对移动设备资源的需求[4]。
(1) 数据库服务器DBSVR (Database Server)
可以是大型数据库系统, 如: Oracle, Sybase, DB2,SQL Server, 一般为固定结点。每个DBSVR 上维护本地数据库的一个完整的副本, 服务器之间由可靠的高速互联网连接在一起, 构成一个传统意义上的分布数据库系统。
图3 典型嵌入式移动数据库的系统结构
(2)移动支持结点MSS (Mobile Support Station )
进行分布式事务处理, 控制EMDB和DBSVR之间的数据交换并支持一个无线单元(cell),具有无线联网能力和同步功能,MSS也位于高速网络中。服务器可以与MSS为同一台机器。
(3)位置服务器LS(Location Server)
(4)可信部分
由固定网络以及网络上的固定主机组成, 固定主机分为两类: 一类是不带无线通讯的主机, 如DSSVR 和LS; 另一类是带有无线通讯接口MSS。
(5)移动客户机MC (Mobile Client)
MC的处理能力与存储能力相对于服务器来说非常有限, 且具有移动性(即可以出现在任意一个无线单元中) , 在它上面保存一部分数据库副本, 并通过EMDB对本地数据进行管理,可以通过无线链路与一个MSS通信,通过MSS上的ODBC 接口, EMDB可以与DBSVR进行数据交换。从而与整个固定网络连通, 也可以接受由MSS 发送的广播信息。它会经常与服务器断接(指MC无法与任意一个联机通信) 即使在与服务器保持连接时, 由于MC 所处的网络环境多变,MC与服务器之间的网络带宽相差很大,且可靠性较低,网络延迟较大。
(6)本地数据库Rep(Replication) 数据库副本
(7)EMDB
嵌入式移动数据库, 工作方式为: 每当MC发出一个查询请求Q1时,它首先查询本地数据库(移动子集上),若满足查询条件要求则直接返回给MC, 否则就向VS提交查询请求, 由VS代替MC完成查询并将结果返回给MC(前提是两者处于连接状态)。若MC 处于断接状态, 则也只能在MC上执行本地查询。若在断接期间更新了MC上的数据, 则该数据将在VS再次连接时, 进行数据重集成, 通过一致性维护算法来保证一致性。主要EMDB的应用模式都是立足于嵌入式设备作客户端, 在嵌入式设备上运行一个精巧的EMDB,在通过同步或复制技术与企业级数据库连接。这种应用模式在支持嵌入式设备的同时, 还支持移动设备,甚至无线移动设备, 构成基于移动环境的应用[5]。
现在,世界已经进入了后PC机时代。信息电器如个人数字助理、web可视电话、移动电话的GPS或W-CDMA产品、TV机顶盒、电视会议机、数码相机等嵌入式设备已经在人们生活中广泛应用。相信随着科技的发展,嵌入式移动数据库技术也必将给人们的生活带来更大的方便和改变。
[1] 冯玉才李东等.一种移动数据库管理系统的体系结构,计算机研究与发展[J],2001年
[2] 黄军政.蔡瀛捷.移动计算推动数据库移动,中国计算机用户[J],2004年9月第36期
[3] 周克江.嵌入式移动数据库及其应用问题研究,湖南第一师范学报[J],2004年9月第4卷第3期
[4] 王彤.王良.嵌入式移动数据库的综述及评价,计算机工程[J],2001年12月第12期
[5] 朱英.嵌入式移动数据库及其相关问题,桂林电子工业学院学报[J],2003年6月第3期
浏览量:2
下载量:0
时间:
在毕业设计期间,尽可能多的阅读文献资料是很重要的,一方面是为毕业设计做理论准备,另一方面是学习论文的写作方法。一篇优秀的论文对启发我们的思维,掌握论文的写作规范很有帮助。 以下是读文网小编今天为大家精心准备的关于计算机的论文范文:嵌入式移动数据库应用研究,内容仅供参考,欢迎阅读!
摘要:随着移动计算技术的发展,移动数据库逐步走向应用,在嵌入式操作系统中移动数据库更显示出其优越性。本文分析移动数据库的特点、体系结构;介绍移动数据库系统中的一些关键性技术,并指出了移动数据库应用方向。
关键词:嵌入式系统;移动数据库;移动计算;事务处理
数据库技术一直随着计算的发展而不断进步,随着移动计算时代的到来,嵌入式操作系统对移动数据库系统的需求为数据库技术开辟了新的发展空间。随着智能移动终端的普及,嵌入式移动数据库技术目前已经从研究领域逐步走向广泛的应用领域。
在数据库系统的研究历史中,传统的分布计算与分布式数据库的研究是基于有线网络和固定主机的。这些都采用了一些默认的隐含假设,例如固定网络连接、对等通信代价、主机节点固定不变等。但进入20世纪90年代以来,随着移动通信技术和网络技术迅速发展,加之移动计算机和移动通信设备的大量普及,许多计算节点可以在移动过程中与网络建立连接,使得上述假设条件不成立。移动计算环境具有移动性、低带宽、频繁断接性、网络通信的非对称性、电源电力的有限性等特点,使得传统分布式数据库中的方法和技术不能直接应用于移动数据库。
从数据库技术的发展过程来看,计算环境和数据库技术基本保持着一种同步发展的态势,互相影响、互相促进。移动计算的概念是对“任何时间、任何地点的立即通讯”的扩展。在分布式计算的基础上,计算环境进一步扩展为包含各种移动设备、具有无线通信能力的服务网络,构成了一个新的计算环境,即移动计算环境。相应地,数据库系统先后出现了集中式数据库系统、分布式数据库系统、B/A/S多层结构的数据库系统、嵌入式数据库和移动数据库。当然,这些系统也可以共存在同一个计算环境中。
一般说来,嵌入式移动数据库可以从系统的体系结构方面来定义:嵌入式移动数据库系统是支持移动计算或某种特定计算模式的数据库管理系统,数据库系统与操作系统、具体应用集成在一起,运行在各种智能型嵌入设备或移动设备上。其中,嵌入在移动设备上的数据库系统由于涉及数据库技术、分布式计算技术,以及移动通讯技术等多个学科领域,目前已经成为一个十分活跃的研究和应用领域——嵌入式移动数据库或简称为移动数据库(EMDBS)。
2.1体系结构
在传统的分布式计算系统中,各个计算节点之间是通过固定网络连接并保持网络的持续连接性的,而移动计算系统改变了这种假设条件。移动计算系统是固定节点和移动节点构成的分布计算系统。
移动计算的网络环境具有鲜明的特点:移动性、断接性、带宽多样性、可伸缩性、弱可靠性、网络通信的非对称性、电源能力的局限性等。移动环境中的分布式数据库就是移动数据库。它是传统分布式数据库系统的扩展,可以看作客户与固定服务器节点动态连接的分布式系统。移动数据库系统的体系结构如图1所示。
其中,移动客户机MC(Mobile Client)包括便携式电脑、PDA等;MSS(Mobile Support Station)支持移动计算的固定节点,具有无线通信接口;FH(Fixed Host)没有无线通信接口,安装有数据库和数据库管理系统。
2.2主要特点
移动数据库的计算环境是传统分布式数据库的扩展,它可以看作客户端与固定服务器节点动态连接的分布式系统。因此移动计算环境中的数据库管理系统是一种动态分布式数据库管理系统。由于移动数据库在移动计算的环境下应用在嵌入型操作系统之上,所以它具有:微小内核结构、对标准SQL的支持、事务管理功能、完善的数据同步机制、支持多种连接协议、完备的数据库管理功能和支持多种嵌入型操作系统的特点和功能需求。
在移动数据库中还需要考虑诸多传统计算环境下不需要考虑的问题,如对断接操作的支持、对位置相关查询的支持、对查询优化的特殊考虑以及对提高有限资源的利用率和对系统效率的考虑等等。为了有效地解决上述问题,诸如复制与缓存技术、移动事务处理、数据广播技术、移动查询处理与查询优化、位置相关的数据处理及查询技术、移动信息发布技术等技术仍在不断的发展和完善,它们会进一步促进移动数据库技术的发展。
移动数据库涉及的理论和技术含盖了当今通信、计算机和嵌入式系统的最新成果,其中在移动环境下如何进行数据管理是实现移动数据库的关键。根据目前国际有关机构研究的研究表明这些关键技术主要集中在以下几个方面。
3.1数据复制与缓存
复制是在多个移动节点上维护数据的备份,包括服务器之间的复制和移动计算机上保存数据库的复制。一般前者称为复制后者称为缓存。复制的主要目的是提高分布式数据库系统的可用性、可靠性和访问性能。首要的问题是如何维护多个复制节点上数据状态的一致性。按照维护复制一致性的方式来划分,现有的复制协议可以分为严格一致协议和弱一致协议两种。严格一致协议要求任何时刻所有数据库的复制都是一致的;而弱一致协议允许各个复制之间存在暂时的不一致,但这种不一致总能够保持在一定的界限之内,而且总是能够趋于一致(收敛性)。目前,针对移动计算特点开展数据复制/缓存技术的研究最具代表性的是:J. Gray的两级复制机制、CODA系统以及缓存失效报告广播技术等,另外,SYBASE公司的移动数据库产品SQL ANYWHERE和SQL REMOTE也采用该技术来支持移动计算环境。
3.2数据广播
通俗地讲,数据广播是指在移动计算环境中,利用客户机与服务器通信的不对称性,以周期性广播的形式向客户机发送数据。其最大的优点是,广播开销不依赖移动用户数量的变化而变化,借助数据广播,可以在一定程度上解决移动数据库系统的断接问题。数据广播的研究可分为服务器和客户机两个方面:服务器主要考虑如何组织广播数据,即数据广播的调度;移动节点主要考虑如何利用本地缓存进一步减少查询广播数据的时间。在国内,长沙国防科技大学的周兴铭院士对数据广播进行了深入研究,提出了数据广播的多盘调度算法。衡量数据广播调度算法好坏的参数是访问时间和调谐时间。
3.3位置相关查询优化
在移动数据库中,存在着与位置相关信息的查询及更新。查询通常是与位置相关的,即使是同一个问题,在不同的地方,所得查询结果是不同的,如“最近的超市在哪里?”。移动查询优化技术是指在传统分布式数据库查询优化技术的基础上,利用多种方法,消除带宽多样性、断接等因素造成的影响,使查询引擎能够根据当前可用网络条件采取恰当的优化策略;同时,针对移动计算机有限电源能力,合理地组织本地数据库管理、远程数据库访问等耗电能较多的操作,达到节能目的,延长关键数据的可用时间。
采用基于分割的地址更新策略时,由位置服务器维护的移动用户对象包含以下数据成员和方法:
分割集合——记录MSS的分割情况,例如{Cell1,Cell2},{Cell3,Cell4,Cell5};
LOC——记录移动用户最近报告的地址(无线单元的ID),例如Cell1 ;
ERR——移动用户当前所在的分割,例如,若LOC= Cell1 ,则ERR={Cell1,Cell2};
loc()——一个方法,用于返回该用户的实际地址,即上面介绍的地址查询过程。
在移动查询的应用中,有各种各样涉及地址的查询,例如“请寻找一家校园附近的超市”,“查找X, Y, Z,这三人都在同一条公路上,且Y在X与Z之间”,等等。一般地,可以把这一类地址相关查询表示为:
SELECT x1 ,x2 ,…, xn
FROM Users
WHERE (x1.loc=l1 ∧…∧ xn.loc=ln ) ∧ C(l1,…,ln ) ∧ W(x1 ,…, xn )
其中C(l1, …, ln )是关于地址l1, …, ln 的n元约束条件,而 W(x1, …, xn ) 是关于对象x1 ,x2 , …, xn 非地址属性的n元约束条件,Users 是所有移动用户的集合。
关于计算机的论文:嵌入式移动数据库应用研究
3.4移动事务处理
事务处理是数据库管理系统的一个基本功能,主要用于维护数据的一致性,支持多用户的并发访问,使用户可以可靠地查询和更新数据库。一般来说,用户对数据库系统的访问都是通过事务来完成的。在传统的数据库系统中,一个事务由一系列读写操作组成。事务处理必须满足四个准则,即原子性、一致性、隔离性和永久性(简称ACID)。移动计算环境的特点,使传统数据库系统中的事务处理技术不能满足移动事务处理的要求。
通常,将移动客户机发出的事务叫移动事务,它属于分布事务。移动事务处理具有以下特点:
1) 移动性。这不仅指移动事务执行期间,发出事务的移动客户机是移动的,而且事务本身也在相应地移动。
2) 长事务。由于无线网络通信的低带宽、高延迟以及移动客户机的频繁断接性,都可能使移动事务成为长事务。
3) 易错性。由于移动客户机不如固定结点可靠,而且无线网络通信也不如固定网络稳定,因此,与一般事务相比,移动事务更容易出错。
4) 异构性。由于客户机的移动性,移动事务可能要访问分布的异构数据库系统。
总之,移动事务不同于传统事务,传统的ACID模型已不能很好地描述移动事务,需要为移动事务寻找更好的模型。维护数据的一致性和解决过区切换(handoff)问题是移动事务管理的重要任务。
移动数据库技术的许多特性都与信息时代的不断进步的需求相吻合, 有着广阔的发展空间。
4.1嵌入式移动数据库在物流领域有着广阔的应用前景
物流的信息化在未来的物流发展中将发挥日益重要的作用,因为及时准确的信息有利于协调生产、销售、运输、存储等业务的展开,有利于降低库存,节约在途资金等。在运输方面,利用移动计算机与GPS/GIS车辆信息系统相连,使得整个运输车队的运行受到中央调度系统的控制。在存储环节,带有嵌入式移动数据库的手持计算机输入的信息通过无线通信网络写入中央数据库,大大提高了工作效率和信息的时效性,有利于物流优化控制。在配送环节,输入手持计算机的数据通过无线网络传入中央数据库。因此,在投递的同时,用户即可查询物品投递的情况。
4.2嵌入式移动数据库为移动银行铺平了道路
在我国,移动用户是最具消费潜力的群体,因此针对移动用户开发的移动银行业务将具有很大的市场潜力,而且能够推动移动电子商务的发展。移动银行可以使客户在异地对自己的帐务进行实时查询、交易,方便、省时,降低成本,同时安全可靠,机动灵活。客户可以在任何时间,任何地点进行交易,节约了去银行的时间。出差或旅游在外仍可享受银行服务。
4.3嵌入式移动数据库非常有助于提高实地调查/工作的效率
煤气、水电等公用事业检查员查验数据就是一个很好的应用实例,目前一般的检查员仍然是将检验的数据记录在纸上。如果利用移动计算机记录和传输数据,遇到纠纷时还可以实时地查询历史记录,这将使得我国的公用事业单位的收费工作大大地改善。
除了上述主要应用之外,移动数据库技术还在零售业、制造业、金融业、医疗卫生等领域展现了广阔的应用前景。随着移动计算、移动数据库和无线数据通信等相关技术迅猛发展,移动数据库将成为信息社会的重要支柱。
本文给出嵌入式移动数据库的定义,描述了嵌入式移动数据库的体系结构并简单分析它的特点,然后详细分析了嵌入式移动数据库的关键技术,最后展望了嵌入式移动数据应用前景。嵌入式移动数据的相关技术研究不断取得进步,这为嵌入式移动数据的成熟应用打下了坚实的基础。
1 李东,曹忠升,冯玉才,等. 移动数据库技术研究综述[J]. 计算机应用研究,2000(10): 4~7
2 Madria S K,Mohania M,et al. Mobile data and transaction management. Information Science 141 (2002) 279~309
3 Antonio Si, Hong va Leng. Query optimization for broadcast database. Data & Knowledge Engineering 29 (1999) 351~380
4 王珊,丁治明,张孝. 移动数据库及应用[J]. 计算机应用, 2000,20(9)
浏览量:2
下载量:0
时间:
实时系统的正确性不仅依赖系统计算的逻辑结果,还依赖于产生这个结果的时间。实时系统能够在指定或者确定的时间内完成系统功能和外部或内部、同步或异步时间做出响应的系统。因此实时系统应该在事先先定义的时间范围内识别和处理离散事件的能力;系统能够处理和储存控制系统所需要的大量数据。以下是读文网小编今天为大家精心准备的计算机专业毕业论文范文:嵌入式实时系统开发的正确选择,内容仅供参考,欢迎阅读!
随着嵌入式实时系统复杂度的提高,设计工程师在定义和分析系统初始要求时必须认真考虑软硬件的协同关系。通常设计工程师还必须权衡系统的灵活性、速度、成本、计划和可用工具之间的关系。本文打算描述嵌入式系统和实时系统的关键特性,并探讨在选择或开发硬件和软件组件的基础上开发高效嵌入式系统的解决方案,同时详细说明嵌入式系统和实时系统开发所特有的关键工艺技术。
嵌入式系统通常是一个包含微处理器的特殊计算机系统,是一个较大系统或设备的组成部分,它在很大程度上决定了设备的功能特性。许多具备数字接口的设备如微波设备、录像机(VCR)和汽车等都会用到嵌入式系统。有些嵌入式系统需要使用操作系统,有些则用单个程序实现整个逻辑,但所有嵌入式系统提供的功能都要比通用计算系统更专业些。嵌入式系统功能包括:
1. 监视环境-从输入传感器读取数据,然后处理数据并显示结果。
2. 控制环境-产生并向激励器发送命令。
3. 转换信息-转换并处理收集到的数据。
虽然通过传感器和激励器完成与外部世界的交互是嵌入式系统的重要特点,但这些嵌入式系统还提供适合它们所在设备的特殊功能。嵌入式系统一般用来执行控制程序、有限状态机和信号处理算法。这些系统还必须检测内部计算环境和周围电磁系统中发生的故障并对此做出响应。
嵌入式系统的设计挑战是使嵌入式系统的独特性能与设备的特殊约束条件相一致。以下是一些嵌入式系统的重要特性:
1. 特殊应用系统-嵌入式系统不同于通用处理器,它针对特殊应用进行了优化。
2. 反应性系统-反应性计算的意思是系统(主要是软件部分)根据传感器信息对环境作出响应,并利用激励器控制环境,同时系统速度能与环境速度同步。
3. 分布式-嵌入式系统的一般特征是多个通信进程在多个通过通信链路链接的CPU或ASIC上运行。
4. 异类性-不同的嵌入式系统一般具有不同的结构,以便在处理严格设计约束的嵌入式系统时能够提供更好的设计便利性。
5. 苛刻环境-许多嵌入式系统并不工作在受控的环境中,因此它们必须能够经受过热、振动、冲击、电源波动和其它恶劣的物理环境条件的考验。
6. 系统安全性和可靠性-由于嵌入式系统复杂度和运算量的不断增长,需要更多地考虑系统安全因素。
7. 小型化、重量轻-为了达到便携目的,许多嵌入式系统的重量必须设计得很轻。
8. 成本敏感性-不同的嵌入式系统对成本的敏感性有很大的不同。
实时系统要求在外部环境指定的时间间隔内对来自环境的激励信号作出响应(包括物理时间的过渡)。从输入时间到输出时间的延迟必须足够小,以满足可以接受的时间值。通常实时系统需要对环境作出连续及时的响应。
计算的正确性不仅依赖于结果,而且取决于输出发生的时间。一个实时系统必须满足有限响应时间约束条件,否则会产生严重的后果。如果后果是性能的劣化而不是故障,那么这种系统可以看作是一个软实时系统。如果后果是系统发生故障,那么这种系统就是一种硬实时系统。
实时系统有反应式和嵌入式两种类型。反应式实时系统会与环境发生连续的互作用,而嵌入式实时系统主要用于控制大型系统中安装的特殊硬件。
许多系统设计工程师都会经历硬件/软件协同设计的过程(图1),此过程中硬件与软件将同时进行开发。理解硬件与软件功能相互之间的关系及界限有助于确保设计要求得到完整正确的理解和实现。
早在设计要求的定义与分析阶段,系统开发人员就必须与设计工程师协同分配硬件或/和软件方面的要求。这种分配的依据是早期系统仿真、原型设计和行为建模结果、工程师自己的经验以及上文提及的各种因素权衡结果(图2)。一旦分配结束,就可以立即着手具体的设计和实现。实时系统开发中软硬件的并行设计会使用到各种分析技术,包括:
1. 硬件与软件仿真;
2. 硬件/软件协同仿真;
3. 可调度的建模技术,如速率恒定分析;
4. 原型设计和渐进式开发。
可以在各种抽象层次使用的仿真技术主要用于开展早期的性能评估。低层仿真可以用来为总线宽度和数据流程建模,这对性能评估是非常有用的。高层仿真可以满足功能的交互,并促成硬件/软件权衡研究及有效性设计。利用仿真可以将一个复杂的系统向下抽象成基础组件和行为。仿真还助于解决功能性问题(数据与算法)、行为(进程排序)或性能问题(资源利用、吞吐量和时序)。
在作执行任何类型的处理器评估时,首先要详细理解用户的功能和非功能性要求。功能性要求通常比较容易获得,而非功能性要求较难定量测量。但对于实时系统来说,定义响应时间这样的要求是非常重要的。实时要求可以有以下几种:
1. 激励-激励(S-S):到系统去的两个激励之间的实时关系;
2. 激励-响应(S-R):一个激励与来自系统的一个后序响应之间的实时关系;
3. 响应-激励(R-S):一个响应与到系统去的一个后序激励之间的实时关系;
4. 响应-响应(R-R):来自系统的两个响应之间的实时关系。
S-R和R-R关系定义了对指定系统的时序要求。这种情况下所实现的功能必须足够快(或足够慢)才能满足时序要求。S-S和R-S约束暗示系统必须能够从环境(可能是一个用户或另外一个系统)中检测出特定时序约束的破坏。这些约束与功能的快慢没有关系,相反它们能够检测出某些遭到破坏的时序约束并采取必要的措施。
因此要从最初系统要求设计时就很好地理解这一点,因为S-R和R-R约束可以引导设计工程师进行代码优化,而S-S和R-S约束需要用额外的软件来检测和响应时序冲突。
嵌入式实时系统比较适合用于系统优化。由于这些系统主要用来解决范围相对较窄的问题,因此硬件和软件能够得到最佳优化,并很好地应用于单一设备。这样做的目的是要在软硬件最佳折衷状态下开展系统设计。影响这一阶段设计的主要因素是处理器的选择、软硬件的分割和总体系统集成。
在为嵌入式实时系统选择处理器时需要考虑以下几个方面:
1. 性能:处理器必须有足够的性能执行任务和支持产品生命周期。
2. 实现:根据具体应用情况,处理器可能需要被高度集成。在DSP应用中可以有好几种选择,专用集成电路(ASIC)就是其中的一种。这些器件可以被用作DSP协处理器,但对于许多通用信号处理来说显得不够灵活。另外可以选择精简指令集计算机(RISC)处理器。这些处理器的时钟速度特别快,但可扩展性不是很强,而且会发生其它实时(可预测性)问题。现场可编程阵列(FPGA)是一种快速器件,能够快速高效地完成某些DSP功能,但与DSP相比开发难度比较大,因为在DSP中一个简单的程序就能完成相同的功能。如果是主信号处理应用,则最好采用性能强大功耗也较大的通用处理器。如果需要快速升级信号处理应用,采用DSP等可编程器件比定制的硬件方案要更好些。
3. 工具支持:支持软件创建、调试、系统集成、代码调整和优化工具对整体项目成功与否非常关键。
4. 操作系统支持:嵌入式系统应用需要使用有帮助的抽象来减少其复杂性。针对处理器系列产品作过优化的商用操作系统(OS)能够缩短设备开发周期和上市时间。
5. 过去的经验:拥有处理器或处理器系列产品的开发经验可以减少可观的学习新处理器、工具和技术的时间。
6. 仿真支持:循环精确仿真对某些类型的应用来说非常重要,特别是数字信号处理应用中许多功能正确性验证都是采用仿真技术完成的。嵌入式系统的软硬件协同设计模型也促使处理器仿真器成为开发流程中一个非常有用的工具。
7. 应用支持:应用支持有多种方式,从通过热线或网站取得的应用专家支持,到预打包的软件和应用框架,甚至完好的测试平台。一些DSP处理器能够提供外围器件的驱动器、板级支持包和其它“启动帮助组件”。有了这些软件组件后,应用开发师就无需再编写器件驱动器等“无附加值”的软件,相反,他们可以把精力放在具有附加值的功能开发上,使他们的产品能独树一帜。
8. 成本:嵌入式应用对成本特别敏感,而产品成本的稍许差别都可能导致市场的失败。
9. 功耗:市场上有许多依靠电池工作的便携嵌入式实时系统,此时电池寿命将成为系统的重要参数。这种情况下应该考虑使用针对便携式应用优化的低功耗器件。
10. 传统代码:如果选中的处理器需要设计人员编写与现存代码的接口,将会导致整个设计流程的严重滞后。因此需要选择一款代码兼容的器件来避免或减少这一步骤造成的影响。
11. 算法复杂性:某些处理器能够非常高效地处理某类算法,因此最好选择能够与应用最佳匹配的处理器。例如,具有许多控制代码的有限状态机应用应该映射为类似ARM处理器的RISC器件。编码、解码和回波抵消等信号处理应用应该映射为数字信号处理器,或具有信号处理加速器的某种器件。
12. 上市时间:项目的完成时间会加快处理器的选择过程,这一过程与先前讲述的几个关键事项密切相关,如OS的可用性、其它软件组件以及便携性问题。
是自己设计还是购买成品呢?如果有可能不重新设计,价格也比较合理的话,购买要比自己开发更有利。由于嵌入式系统预算的缩减、实时操作系统(RTOS)和TCP/IP堆栈等商用技术的改进、嵌入式系统要求的扩展,采用商业性现成(COTS)技术正变得越来越普遍。采用COTS技术能够缩短开发周期中编码、调试、单元测试和代码检查阶段的时间。
然而,作出购买而非设计的决定会改变一个组织的基础开发流程。一个组织希望实现的新业务有:供应商调研和评估、产品评估以及实时的供应商交流与关系建立。产品开发的其它活动不会取消,但会作出一些改变。这些变化包括更关注如何将系统硬件与软件更好地组合在一起,而不再把重点放在模块自己内部的运作上。另外必须更侧重于兼容性、可配置性和可集成性等结构上的问题。
必须很好的理解和高效地管理由于决定采用“购买”而非“设计创建”方式所导致的结果。首先,自然是对供应商提出产品要求、产品可靠性、计划和产品文档等依赖请求。这种情况下产品要求中的灵活性会打些折扣。购买商用产品意味着接受现有的产品要求,但这种要求也许不能完美地匹配自身产品的要求,这就需要设计人员把这种缺点与COTS技术提供的成本与上市时间优势作一个理智的权衡。
因此重要的是最终用户与技术人员必须参与COTS供应商的选择,考虑的重点要放在业务需求上而非技术本身。性价比分析所要考虑的因素应包括易学性、易用性、供应商名声和长期稳定性、许可方式和培训。所有与性能有关的声明必须尽可能采用内部或外部基准或演示来到得有效性认证。为了避免可能出现的偏差,评估标准应该在收到供应商建议前就制定好。选择供应商的主要工作包括研究和理解技术标准和相当的文件、采用类似建议请求(RFP)的标准模式征求供应商的建议、对供应商建议进行评估和排序、选择供应商并签署合同。
除了评估技术外,还应对供应商本身进行评审。要充分了解供应商开业时间的长短、供应商的背景和名声、供应商的其它用户对它的评价和意见、供应商人力资源的投入和对你的计划或项目的支持情况,以及供应商对你业务和要求的理解程度,甚至对未来项目的承诺。以前软件团队认为软件开发方案遵循类似于创建架构的特定模式。提供符合一般模式的抽象方法能够使软件团队定制符合他们特殊要求的方案,同时遵循被前人证明是高效和正确的模式。
嵌入式系统供应商已经认识到需要通过提供软件组件和类似于设计模式的框架来加快软件开发进程。在DSP领域,供应商向DSP设计工程师提供包括参考框架(RF)在内的上百个以DSP为核心的软件组件用于产品和系统开发。设计完好的参考框架能够在设备开发的早期阶段让设计人员快速入门。RF内含方便易用并且适合多种应用的源代码。由此可以取消许多早期的低层设计决策,使开发人员能有更多的时间用在真正显示产品特色的代码开发上。设计人员可以选择能够最大程度满足他们系统需要的专业RF,然后集成适配的算法(可以是其它供应商出售的DSP COTS算法,或供应商自己的算法)生成适合各种终端设备的特殊应用,如宽带、语音、视频图像、生物测量和无线设施。这些RF提供百分之百的C语言源码,并且没有版税要求。RF源代码可以从www.ti.com/downloadrfnow网站下载。
许多嵌入式实时系统必须满足一系列性能目标。一般来讲,性能是一个软件系统或组件对时间要求满足程度的一种指示。这里的时间指标可以用响应时间和吞吐量来衡量,该时间值是指响应某种要求所需的时间,而吞吐量用以指示系统在特定时间间隔内能够处理的请求数量。可扩展性是嵌入式实时系统的另外一个重要指标,可以用它来衡量系统要求提高时系统能够继续满足响应时间或吞吐量要求的能力。
如果在整个开发生命周期内得不到正确的性能管理,那么即使选择了正确的处理器和软件也是徒劳的。性能故障的后果是非常严重的,它可能损伤与客户的关系,造成收入下降,甚至导致整个项目失败。因此在整个生命周期内需要随时关注性能问题。性能管理可以被动或主动完成。被动方式需要采用一个较大的处理器解决性能问题,它只在系统完成构架、设计和实现后处理性能问题,在解决问题前一直处于等待状态,直到实际需要测量的事件发生。主动方式是指整个生命周期内一直在跟踪和交流性能问题,同时开发用以识别性能劣化的进程,并在性能处理中培养团队成员。
显然开发嵌入式实时系统是一个相当复杂的过程,本文旨在启发设计人员在分析初始要求时如何权衡硬件与软件之间的关系,要时刻在系统灵活性、速度、成本、计划和可用工具之间作出权衡,并充分考虑各个供应商提供长期可靠支持的可能性。
浏览量:2
下载量:0
时间:
嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。简单的说就是系统的应用软件与系统的硬件一体化,类似与BIOS的工作方式。具有软件代码小,高度自动化,响应速度快等特点。特别适合于要求实时的和多任务的体系。以下是读文网小编今天为大家精心准备的:基于μC/OS的嵌入式系统应用开发研究相关论文,内容仅供参考,欢迎阅读!
摘要:本文介绍了嵌入式系统的概念,分析了μC/OS的内核结构,并详细介绍了在具有ARM体系结构的S3C44B0微处理器上进行μC/OS操作系统的移植和应用程序及驱动程序的开发。
关键词:嵌入式系统 μc/os 微处理器
嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,目前嵌入式系统已经渗透到日常生活的各个方面,其在工业、服务业、消费电子等领域的应用范围都不断扩大,嵌入式计算机系统的正式定义为:以应用为中心,以计算机技术为基础,软件硬件可裁减,符合应用系统对功能、可靠性、成本、体积、功耗的严格要求的专用计算机系统。嵌入式系统的主要特征有:系统内核小;专用性强;系统精简;嵌入式软件要求高实时性的操作系统软件;软件要求高质量和高可靠性;嵌入式系统开发需要专门的开发工具和环境。
嵌入式系统由硬件和软件两大部分组成,在本开发应用中,选择ARM7TDMI内核结构的samsung公司的s3c44b0作为微处理器芯片,该芯片具有主频高、运算速度快,超低功耗、价格低廉、结构简单等特点,在该内核基础上扩展了一系列完整的通用外围器件,主要有:片内8KB高速缓存、带有1个专用DMA通道的LCD控制器、2个通用DMA通道、1个多主机I2C总线控制器、5个PWM定时器及1个内部定时器、71个通用I/O口、8个外部中断源、8个10位ADC等资源,主频为66MHZ,系统支持大小端模式,共256MB的地址空间,支持8/16/32位数据总线编程。
开发平台外配与用户交互接口有RS-232串口电路、外扩flash、sdram,USB控制电路、以太网电路、键盘,JTAG接口电路部分。
实时嵌入式操作系统的种类繁多,大体上可以分为两种:商用型和免费型,前者系统功能稳定、可靠,并有完善的技术支持和售后服务,建立应用开发较为容易,但价格昂贵,代表性的有美国WindRiver公司的VxWorks操作系统、Microsoft公司的WinCE操作系统;免费型可以节约成本,且源码公开,便于开发,代表性的有嵌入式Linux系统、μC/OS系统。
由于μC/OS结构简单,编程工具绝大部分是C语言编程,可以在大多数界面友好的编译器中编译生成目标代码,如Borland C、Keil等工具,且其内核最小可以到几十K,可以在多种体系结构的微处理器上移植,用户的工作较小,源代码开放,便于学习。μC/OS-II的几大组成部分有:
核心部分(OSCore.c) 是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。
任务处理部分(OSTask.c)完成任务的操作;包括任务的建立、删除、挂起、恢复等等。
时钟部分(OSTime.c)主要完成任务延时等操作。
任务同步和通信部分 为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;μC/OS-II的软件体系结构如图1所示。从图1中可以看到,如果要使用μC/OS-II, 必须为其编写OS_CPU.H、OS_CPU_C.C、OS_CPU_A.ASM三个文件。
μC/OS-II的全部源代码量大约是6000-7000行,一共有15个文件。将 μC/OS-II 移植到ARM处理器上,需要完成的工作也非常简单,只需要修改三个和ARM体系结构相关的文件,代码量大约是500行。以下分别介绍这三个文件的移植工作:
OS_CPU.H 文件 数据类型定义,这部分的修改是与所用的编译器相关的,不同的编译器会使用不同的字节长度来表示同一数据类型,这里采用的编译器为集成可视化开发环境ARM SDT 2.5,相关的数据类型的定义如下:
#define BYTE INT8S /* Define data types for backward compatibility */
#define UBYTE INT8U /* .to uC/OS V1.xx. Not actually needed for . */
#define WORD INT16S /* ... uC/OS-II. */
#define UWORD INT16U
#define LONG INT32S
#define ULONG INT32U
堆栈单位因为处理器现场的寄存器在任务切换时都将会保存在当前运行任务的堆栈中,所以OS_STK 数据类型应该是和处理器的寄存器长度一致的。
typedef unsigned int OS_STK; /* Each stack entry is 16-bit wide */
堆栈增长方向该设置由编译器选项决定,在本开发中设定堆栈由高地址向低地址增长。
#define OS_STK_GROWTH 1 https://define the stack to grow from high to low
2、OS_CPU_C.C 文件
任务堆栈初始化 这里涉及到任务初始化时的一个堆栈设计,也就是在堆栈增长方向上如何定义每个需要保存的寄存器位置,在ARM体系结构下,任务堆栈空间由高至低依次将保存着pc、lr、r12、r11、r10、… r1、r0、CPSR、SPSR。
void *OSTaskStkInit (void (*task)(void *pd), void *pdata, void *ptos, INT16U opt)
{
unsigned int *stk ;
opt = opt; /* 'opt' is not used, prevent warning */
stk = (unsigned int *)ptos; /* Load stack pointer */
*--stk = (unsigned int) task; / * lr */
……; /* r12—r0 */
*--stk = ARM_MODE_SYS; /* system mode */
*--stk = ARM_MODE_SYS; /* system mode */
return ((void *)stk);
}
当前任务堆栈初始化完成后,OSTaskStkInit 返回新的堆栈指针stk,在 OSTaskCreate()执行时将会调用 OSTaskStkInit 的初始化过程,然后通过OSTCBInit()函数调用将返回的sp指针保存到该任务的TCB块中。
OSStartHighRdy() 该函数是在主程序OSStart( )多任务启动后执行,负责从最高优先级任务的TCB控制块中获得该任务的堆栈指针sp,通过sp依次将cpu现场恢复,这时系统就将控制权交给用户创建的该任务进程,仅执行一次,此后多任务优先级调度由下面函数执行。
OSCtxSw() 任务级的上下文切换,它是当任务因为被阻塞而主动请求cpu调度时被执行,由于此时的任务切换都是在非异常模式下进行的,它的工作是先将当前任务的cpu现场保存到该任务堆栈中,然后获得最高优先级任务的堆栈指针,从该堆栈中恢复此任务的cpu现场,使之继续执行。
OSIntCtxSw() 中断级的任务切换,它是在时钟中断ISR(中断服务例程)中发现有高优先级任务等待的时钟信号到来,则在中断退出后直接调度就绪的高优先级任务执行。
OSTickISR() 时钟中断处理函数,它的主要任务是负责处理时钟中断,调用系统实现的OSTimeTick函数,如果有等待时钟信号的高优先级任务,则需要在中断级别上调度其执行。其他相关的两个函数是OSIntEnter()和OSIntExit(),都需要在ISR中执行。
移植完以上程序后,用户就可以结合自己的项目要求来编写自己的应用程序了,用户可以添加如打印、空等待等任务,以下给出了一个例程,通过调用OSTaskCreate ( )函数注册了三个任务,由系统根据最优调度原理进行调度。
void main (void)
{
Initialize(); /* Processor specific initialization */
OSInit();
bufferSemaphore = OSSemCreate(BUFFER_LENGTH - 1);
terminalSemaphore = OSSemCreate(1);
OSTaskCreate(Task1, (void*)string1, (void*)&stacks[0][TASK_STK_SIZE - 1], 0);
OSTaskCreate(Task2, (void*)string2, (void*)&stacks[1][TASK_STK_SIZE - 1], 1);
OSTaskCreate(Task3, (void*)string3, (void*)&stacks[2][TASK_STK_SIZE - 1], 2);
OSStart(); /* Start..... */
}
由于UC/OS提供的仅仅是一个任务调度的内核,通过以上移植,要想得到一个相对完整、实时的嵌入式多任务操作系统,还必须进行相当多的扩展工作。主要有:建立文件系统、通过开发如LCD液晶显示、USB通信、键盘、串口等驱动程序从而提供应用程序调用的API函数,还有创建图形用户接口(GUI)函数等,下面主要介绍一下串口驱动程序的开发。
void Uart_Init(int mclk,int baud) { }
该函数主要是初始化串口,设置波特率,其中mclk是系统主时钟频率,band参数传递串口通信波特率。
void Uart_Select(int ch) { }
该函数进行串口选择,ch 传递串口号。
char Uart_Getch(void) { }
该函数从串口读取字符,存放在一数组内。
void Uart_GetString(char *string) { }
该函数读取要发送的字符串,并一个一个字符地从串口发送。
void Uart_SendByte(int data) { }
该函数通过串口发送数据,data是需要发送的字符。
void Uart_SendString(char *pt) { }
该函数通过串口发送字符串,pt是字符串首地址的指针。
通过以上接口函数,系统向用户提供了屏蔽底层硬件的API函数,用户可以通过调用以上函数,方便地对串口进行操作。
目前市场上基于μc/os嵌入式操作系统的产品比较多,应用领域包括工业控制、信息家电、网络设备等方面,而且基于μc/os的应用正潮起云涌,蓬勃发展。随着后PC时代的来临,嵌入式系统理论与应用研究日新月异,μc/os正是我们手中开发嵌入式系统的利器,较好的掌握这门技术可以将理论与实际应用相结合,更好地服务于我们的日常生活和生产中。
1、邵贝贝译.μC/ OS -Ⅱ源码公开的实时嵌入式操作系统[M] . 北京:中国电力出版社, 2001.
2、王田苗 嵌入式系统设计与实例开发 清华大学出版社2003年10月
3、邹思轶 嵌入式Linux设计与应用 清华大学出版社2002年1月
浏览量:2
下载量:0
时间:
JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他编程语言,只要调用约定受支持就可以了。使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的。以下是读文网小编今天为大家精心准备的:浅谈JNI技术在嵌入式软件开发中的应用相关论文,内容仅供参考,欢迎阅读!
嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式软件的基本体系结构包括嵌入式实时操作系统RTOS(RealTime operating Systerrl)、嵌入式设备驱动程序、嵌入式应用程序编程接口(中间件)和嵌入式应用程序。
现阶段,计算机应用的普及、互联网技术的实用以及纳米微电子技术的突破,正有力推动着21世纪的工业生产、商业活动、科学实验和家庭生活等领域自动化和信息化进程。全过程自动化产品制造、大范围电子商务活动、高度协同科学实验以及现代化家居生活,为嵌入式产品造就了崭新而巨大的商机。除了沟通信息高速公路的交换机、路由器和调制解调器,构建计算机集成制造系统(CIMS)所需的数据传输系统DCS(Data Communication System)和机器人以及规模较大的家用汽车电子系统,最有产量效益和时代特征的嵌入式产品应数因特网上的信息家电(information appliances),如网络可视电话、网络游戏机、电子商务、商务通(PDA)、移动电话以及多媒体产品(如电视机顶盒、DVD播放机、电子阅读机)。
众所周知,“一次编程,到处使用”的Java软件概念原本就是针对网上嵌入式小设备提出的,几经周折,目前SUN公司已推出了J2ME(Java 2 P1atform Micro Edition)针对信息家电的Java版本,其技术日趋成熟,开始投入使用。SUN公司Java虚拟机(JVM)技术的有序开放,使得Java软件真正实现跨平台运行,即Java应用小程序能够在带有JVM的任何硬软件系统上执行。加上Java语言本身所具有的安全性、可靠性和可移植性等特点,对实现瘦身上网的信息家电等网络设备十分有利,同时对嵌入式设备特别是上网设备软件编程技术产生了很大的影响。
Java程序也有其本身的缺陷,那就是其效率问题。由于Java是一种介于解释型和编译型之间的语言,其对内存的管理是通过JVM虚拟机来实现的,同样的程序,如果用编译型语言C来实现,其运行速度一般要比Java快得多。因此,提高Java的性能就显得十分重要。
迄今为止,人们为提高Java的运行速度而做出的许多努力,主要集中在程序设计的方法和模式选择方面。但是由于算法和设计模式的优化是通用的,对Java 有效的优化算法和设计模式,对其他编译语言也基本适用,因此不能从根本上改变Java程序与编译型语言在执行效率方面的差异。
另外,JIT(Just In Time,及时编译)技术也是一个比较好的思想。它的基本原理是,首先,通过Java编译器把Java源代码编译成与平台无关的二进制字节码。然后,在 Java程序真正执行之前,系统通过JIT编译器把Java的字节码编译为本地化机器码。最后,系统执行本地化机器码,不用对字节码进行解释。这样做的优点是,大大提高了Java程序的性能,缩短了加载程序的时间;同时,由于编译的结果并不在程序运行期间保存,因此也节约了存储空间。缺点是,由于JIT编译器对所有的代码都想优化,因此同样也占用了很多时间。
动态优化技术即提前编译为机器码的技术(dynamicopttmization,ahead of time technology)是提高Java性能的另一个尝试。动态优化技术充分利用了Java源码编译、字节码编译、动态编译和静态编译的技术。其输入是 Java的源码或字节码。而输出是经过高度优化的可执行代码和动态库(WindoW中是.dil文件,UNIX中是共享库.a.so文件)。其优点是能大大提高程序的性能,缺点是破坏了Java的可移植性,也对Java的安全带来了一定的隐患。
实际上,有一种通常被忽视的技术可以在很大程度上解决这个难题,那就是JNI(Java Native Interface,Java本地化方法)。图l是JNI技术实现的一般步骤。
(1)编写Java类代码
其中,需要JNI实现的方法应当用native关键字声明。在该类中,用System.1oadLibrary()方法加载需要的动态链接库。关键代码如下:
https://Compute.java
public class Compute{
public native double comp (double params);
static{
https://调用动态链接库
System.loadLibrary(“mathlib”);
}
(2)编译成字节代码
在这个过程中,由于采用了native关键字声明,Java编译器会忽视没有代码体的JNI方法部分。
(3)生成相关JNI方法的头文件
这个过程的实现一般是通过利用jlavah-jni * class生成的,也可以手工生成该文件;但是由于Java虚拟机是根据一定的命名规范完成对JNI方法的调用,所以手工编写头文件需要特别小心。
上述文件产生的头文件部分代码如下:
https://Compute.h
;
extern“C”{
JNIEXPORT jdoubleJNICALL Java_Compute_comp(JNI-Env *, jobject, jdoubleArray);
;
JNI函数名称分为三部分:首先是Java关键字,供Java虚拟机识别;然后是调用者类名称(全限定的类名,其中用下划线代替名称分隔符);最后是对应的方法名称,各段名称之间用下划线分割。
JNI函数的参数也由三部分组成:首先是JNIEnv *,是一个指向JNI运行环境的指针;第二个参数随本地方法是静态还是非静态而有所不同一一非静态本地方法的第二个参数是对对象的引用,而静态本地方法的第二个参数是对其Java类的引用;其余的参数对应通常Java方法的参数,参数类型需要根据一定规则进行映射。
(4)编写相应方法的实现代码
在编码过程中,需要注意变量的长度问题,例如Java的整型变量长度为32位,而C语言为16位,所以要仔细核对变量类型映射表,防止在传值过程中出现问题。
(5)将JNI实现代码编译成动态链接库
编译过程是利用C/C++编译器实现的,当要使用生成的动态链接库时,调用者类中需要显式调用该链接库。
经过上述处理,基本上完成了一个包含本地化方法的Java类的开发。
下面通过一个实例来描述运用JNI技术在手机上操纵摄像头,捕捉视频并存储图片的过程。
(1)活动/状态图
图2为捕捉视频并存储图片的活动/状态图
根据图2的活动/状态,具体的对应步骤如下:
①发起该流程。
②发起流程后,建立文件用于存储图片。
③用指针获得分配的缓冲器,用于存储获得的帧。
④将指针压栈(序列化缓冲器)。由于手机的内存较小,为了防止内存泄漏,Symbian操作系统有一个Cleanup stack的要求,即在使用指针时,用PushL把指针压入栈中,使用完后再用Pop弹出栈.如果在中间调用导致崩溃的函数时果真出现了问题,那么 Clean up stack可以通过调用该指针的析构函数回收占用的空间。
⑤操纵摄像头,捕捉视频,并将图像流从摄像头端传到缓冲器。
⑥将摄像头内的图像流存入缓冲器内,并将缓冲器内的流转化为文件流,存为jpg格式的文件,将指向缓冲器的指针弹栈。
⑦在过程⑥中,如果使用完了序列化的缓冲器,则要重新序列化缓冲器,以备后面使用。
⑧当接收到停止视频捕捉的信号后,关闭文件。
⑨流程结束。
(2)运用JNI技术的视频捕捉
子功能捕捉视频的实现是由操纵摄像头、视频播放(解码器准备)以及建立摄像头和手机之间的连接会话三个活动组成的。其中操纵摄像头是通过调用底层设备的驱动来实现的,需要利用JNI来实现,完成的方法包括准备、建立、删除、销毁摄像头等。视频播放的一系列过程也是通过c++代码来实现的,除了准备、建立、删除、销毁解码器外,还有开始、暂停、停止解码等。建立摄像头和手机之间的连接类似建立客户端和服务器连接,视频流从摄像头传到手机界面是通过多媒体会话来完成的。多媒体
会话的建立、关闭、摧毁以及会话建立后的发送、取消、读取数据等也是JNI的应用范畴。
主张采用纯Java的人们通常反对本地化代码的使用,认为JNI技术会影响程序的可移植性和安全性。还有一些人认为,在Java程序执行的过程中调用c/c++程序只是对过去混合编程技术的简单扩展,其实际目的是为了充分利用大量原有的c程序库。
其实,不必拘泥于严格的平台独立性限制,因为采用JNI技术只是针对一些严重影响Java性能的代码段。该部分可能只占源程序的极少部分,所以几乎可以不考虑该部分代码在主流平台之间移植的工作量。同时,也不必过分担心类型匹配问题,完全可以控制代码不出现这种错误。此外,也不必担心安全控制问题,因为 Java安全模型已扩展为允许非系统类加载和调用本地方法,即如果在Java程序中直接调用c/c++语言产生的机器码,该部分代码的安全性就由Java 虚拟机控制。
浏览量:2
下载量:0
时间:
嵌入式 Linux是以Linux为基础的嵌入式作业系统,它被广泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及航空航天等领域中。嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。以下是读文网小编今天为大家精心准备的:改善嵌入式Linux实时性能的方法研究相关论文,内容仅供参考,欢迎阅读!
摘要:分析了Linux的实时性,针对其在实时应用中的技术障碍,在参考了与此相关研究基础上,从三方面提出了改善Linux实时性能的改进措施。为提高嵌入式应用响应时间精度,提出两种细化Linux时钟粒度方法;为增强系统内核对实时任务的响应能力,采用插入抢占点和修改内核法增强Linux内核的可抢占性;为保证硬实时任务的时限要求,把原Linux的单运行队列改为双运行队列,硬实时任务单独被放在一个队列中,并采用MLF调度算法代替原内核的FIFO调度算法。
关键词:Linux;实时性;调度策略;抢占
目前,无论是在日常生活,还是在工业控制,航空航天,军事等方面,嵌入式系统都有着非常广泛的应用。嵌入式系统目前主要有:Windows CE、VxWorks、QNX等,它们都具有较好的实时性、系统可靠性、任务处理随机性等优点,但是它们的价格普遍偏高。而嵌入式Linux以其非常低廉的价格,可以大大的降低成本,逐渐成为嵌入式操作系统的首选。但是,作为通用操作系统的Linux,由于其在实时应用领域的技术障碍,要应用在嵌入式领域,还必须对Linux内核作必要的改进。许多嵌入式设备都要求与外部环境有硬实时的交互能力,将最初按照分时系统目标设计的Linux 改造成能支持硬实时性的操作系统显得十分重要。幸运的是, Linux 及其相关项目的开放源码特征为深入研究其内核并加以改造提供了可行性, 可以修改Linux 内核中的各个模块以达到满足嵌入式应用的需求,提高软件方面的开发速度。目前,改善Linux内核的设计与实现,使其适用于实时领域吸引了许多研究和开发人员的注意力[1-4]。常用的实时性改造方法是采用双核方法,这种方法的弊端在于实时任务的开发是直接面向提供精确实时服务的小实时核心的,而不是功能强大的常规Linux核心。基于此,近年来修改核的方法越来越受到科研人员的重视,这种方法是基于已有Linux系统对于软件开发的支持,进行源代码级修改而使Linux变成一个真正的实时操作系统。本文分析了标准Linux在实时应用中的技术障碍,参考了修改核方法的思想,从内核时钟管理、内核的抢占性、内核调度算法三方面论述了改善标准Linux实时性能的方法。
2.1 Linux的实时性分析
Linux作为一个通用操作系统,主要考虑的是调度的公平性和吞吐量等指标。然而,在实时方面它还不能很好地满足实时系统方面的需要,其本身仅仅提供了一些实时处理的支持,这包括支持大部分POSIX标准中的实时功能,支持多任务、多线程,具有丰富的通信机制等;同时也提供了符合POSIX标准的调度策略,包括FIFO调度策略、时间片轮转调度策略和静态优先级抢占式调度策略。Linux区分实时进程和普通进程,并采用不同的调度策略。
为了同时支持实时和非实时两种进程,Linux的调度策略简单讲就是优先级加上时间片。当系统中有实时进程到来时,系统赋予它最高的优先级。体现在实时性上,Linux采用了两种简单的调度策略,即先来先服务调度(SCHED-FIFO)和时间片轮转调度(SCHED-RR)。具体是将所有处于运行状态的任务挂接在一个run-queue 队列中,并将任务分成实时和非实时任务,对不同的任务,在其任务控制块task-struct中用一个policy属性来确定其调度策略。对实时性要求较严的硬实时任务采用SCHED-FIFO调度,使之在一次调度后运行完毕。对普通非实时进程,Linux采用基于优先级的轮转策略。
2.2 Linux在实时应用中的技术障碍
尽管Linux本身提供了一些支持实时性的机制,然而,由于Linux系统是以高的吞吐量和公平性为追求目标,基本上没有考虑实时应用所要满足的时间约束,它只是提供了一些相对简单的任务调度策略。因此,实时性问题是将Linux应用于嵌入式系统开发的一大障碍,无法在硬实时系统中得到应用。Linux在实时应用中的技术障碍具体表现在:
(1)Linux系统时钟精度太过粗糙,时钟中断周期为10ms,使得其时间粒度过大,加大了任务响应延迟。
(2) Linux的内核是不可抢占的, 当一个任务通过系统调用进入内核态运行时,一个具有更高优先级的进程,只有等待处于核心态的系统调用返回后方能执行,这将导致优先级逆转。实时任务执行时间的不确定性,显然不能满足硬实时应用的要求。
(3) Linux采用对临界区操作时屏蔽中断的方式,在中断处理中是不允许进行任务调度的,从而抑制了系统及时响应外部操作的能力。
(4) 缺乏有效的实时任务调度机制和调度算法。
针对这些问题,利用Linux作为底层操作系统,必须增强其内核的实时性能,从而构建出一个具有实时处理能力的嵌入式系统,适应嵌入式领域应用的需要。
2.3 当前增强Linux内核实时性的主流技术
近年来,人们对于Linux内核实时性改造提出了一些方法和设想,它们采用了不同的思路和技术方案。归纳总结,支持Linux的硬实时性一般有两种策略[5]:一种是直接修改Linux内核,重新编写一个由优先级驱动的实时调度器(Real-time Scheduler),替换原有内核中的进程调度器sched.c,KURT是采用这一方案较为成功的实时Linux操作系统;另外一种是在Linux内核之外, 以可加载内核模块(Loadable Kernel Module)的形式添加实时内核,确保其高响应特性,实时内核接管来自硬件的所有中断,并依据是否是实时任务决定是否直接响应。新墨西哥科技大学的RT-Linux,就是基于这种策略而开发的。以上两种策略有其借鉴之处,但如果综合考虑任务响应、内核抢占性、实时调度策略等几个影响操作系统实时性能的重要方面,它们还不能很好的满足实时性问题。为了增强嵌入式Linux实时性能,下文将就内核时钟精度、内核的抢占性以及内核调度算法等相关问题重点研究相应的解决方法。
改善嵌入式Linux实时性能的方法研究论文
针对Linux在实时应用中的技术障碍,将Linux改造成为支持实时任务的嵌入式操作系统, 主要从下面三个方面进行着手。
3.1细化时钟粒度
精确的计时是实时调度器正确操作所必须的,调度器通常要求在一个特定的时刻进行任务切换,计时的错误将导致背离计划的调度,引起任务释放抖动。标准Linux系统时钟精度太过粗糙,时钟中断周期为10ms,不能满足特定嵌入式应用领域中对于响应时间精度的要求。因此,在实时Linux应用中,需要细化其时钟粒度,具体有两种方式可以解决时钟粒度问题:一是通过直接修改内核定时参数HZ的初值来细化时钟粒度,如将标准Linux中内核定时参数HZ改为10000, 则时钟粒度可以达到100us,这种方式虽然会增加一些系统开销,但在强周期性环境下,对定时器的设置只需初始化一次,在一定程度上保证了处理效率;二是通过对可编程中断定时器8254或先进的可编程中断控制器进行编程来改进Linux时钟机制,以提高其时钟的分辨率,使毫秒级的粗粒度定时器变成微秒级的细粒度定时器。
3.2 增强Linux内核的抢占性
标准Linux内核是不可抢占的,导致较大的延迟,增强内核的可抢占性能,可提高系统内核对实时任务的响应能力。目前,有两种方法修改Linux内核以提高实时任务抢占非实时任务的能力:一是在内核中增加抢占点的方法;二是直接将Linux内核改造成可抢占式内核。插入抢占点方法是在Linux内核中插入一些抢占点,当一个系统调用执行到抢占点时,如果有更高优先级的实时进程正在等待运行,那么正在执行系统调用的内核进程将会把CPU的控制权转交给等待运行的实时进程;如果没有更高优先级的实时进程等待,则当前进程将继续执行,此时系统增加的开销仅仅是检测一下调度标志。将Linux内核改造成可抢占式内核方法的基本思想是产生运行调度器的机会,缩短任务发生到调度函数运行的时间间隔。这种方法修改了Linux源代码中的自旋锁宏以避免竞争,并在其中引入一个称作抢占锁计数器(PLC)的新的计数信号允许内核代码抢占,当它为0时,允许抢占;当其为大于0的任何值时,禁止抢占。目前,针对这两种修改Linux内核的方法,已经有两种比较成熟的Linux内核补丁被研制出来:抢占式补丁和低时延补丁。其中,抢占式补丁是Monta Vista开发的,它修改了内核代码中的spinlock宏和中断返回代码,使得当前进程可被安全抢占,当自旋锁释放或者中断线程完成时,调度器就有机会执行调度;低时延补丁是由Ingo Malnor提出,该方法只是在执行时间长的代码块上抢占,不采用强制式抢占,因此,如何找到延时长的代码块是解决问题的关键。
3.3 改善Linux内核实时调度器的调度策略
将进入系统的所有任务按实时性分成三类:硬实时、软实时、非实时任务[6]。硬实时要求系统确保任务执行最坏情况下的执行时间,即必须满足实时事件的响应时间的截止期限,否则,将引发致命的错误;软实时是指统计意义上的实时,一般整体吞吐量大或整体响应速度快,但不能保证特定任务在指定时期内完成。针对不同的实时性任务,分别采用不同的调度方法进行处理。
为了严格保证硬实时任务的时限要求,改善的Linux内核实时调度器采用了优先级调度算法,目前最小松弛时间优先调度算法MLF(Minimum-Laxity-First Scheduling Algorithm)是动态优先级调度最常见的实时调度策略。它在系统中为每一个任务设定松弛时间(任务的松弛时间等于任务的截止期减去任务执行时间、当前时间)即: laxity= deadline―current_time―CPU_time_needed,系统优先执行具有最小松弛时间的任务。根据就绪队列的各任务的松弛时间来分配优先级,松弛时间最小的任务具有最高的优先级。为了提高Linux的实时性,我们设计了MLF调度器,并把它作为可加载模块加入Linux内核中,在实现中需对内核进行相应的修改。为了区分任务的类型,对基本Linux的task_struct属性进行改进,在其中增加SCHED_MLF调度策略,并按task_struct中的policy的取值来进行区分, 分别用SCHED_MLF,SCHED_RR,SCHED_OTHER来标识硬实时、软实时、非实时任务。将处于运行状态的三类任务放入两个队列,硬实时任务放入hard_real_queue队列, 采用MLF调度算法,软实时和非实时任务放入non_real_queue队列(空闲任务也在其中),沿用原内核的RR调度算法。这两个队列可以用一个run_queue[2]的指针数组来指向,如图1 所示。
图1 双对列任务运行
双队列任务运行过程与原内核的单运行队列执行流程的主要区别在:首先,各硬实时任务采用了MLF调度算法代替原内核的FIFO调度,提高了Linux系统的实时性能。其次,在判断是否有软中断需要处理之前需判断硬实时任务队列是否为空,如果不为空,即使存在中断的后半部分需要处理,也要先调度硬实时任务投入运行,在硬实时队列为空的条件下才去处理中断的后半部分(因为中断的后半部分没有硬实时任务紧急)。最后,如果没有硬实时任务存在,则说明只有run_queue [1]队列中有软实时或非实时任务存在,这时的处理方法和原内核对单运行队列的处理方法相同。这样改进后,可以明显提高硬实时任务的调度效率,而在没有硬实时任务时,系统性能没有变化。
嵌入式技术具有广阔的应用前景,渗透于社会生活的诸多领域,把Linux应用于嵌入式系统,把Linux自身固有的优越性融入嵌入式技术,是嵌入式技术发展的一个重要方向。然而,由于Linux在实时应用领域的技术障碍,要将其应用在嵌入式领域还必须修改Linux 内核中的各个模块以达到满足嵌入式实时应用的需求。本文在分析Linux实时性的同时,探讨了其本身提供的一些支持实时性的机制以及在实时应用中的技术障碍。而后,基于增强Linux内核实时性的主流技术,从细化时钟粒度、增强内核抢占性及实时调度策略三方面入手,提出了改善Linux实时性能的优化方法。
[1] 赵慧斌, 李小群, 孙玉芳. 改善Linux核心可抢占性方法的研究与实现. 计算机学报, 2004, 27(2): 244-251
[2] 蒋溢, 李琳皓, 陈龙. Linux系统实时性探讨. 重庆大学学报, 2005, 28(3): 61-64
[3] 董晓峰, 顾新. 关于Linux内核可抢占性的研究. 计算机工程, 2005, 31(1): 82-84
[4] 陈敏, 周兴社. 基于嵌入式Linux的实时优化方案. 计算机应用研究, 2005, 22(3): 235-237
[5] 齐俊生, 崔杜武, 黑新洪. 嵌入式Linux 硬实时性的研究与实现. 计算机应用, 2003, 23(6): 34-36
[6] 李凡, 卢杜阶, 邱鹏. 在嵌入式应用中增强Linux实时性的方法研究. 华中科技大学学报, 2005, 33(2):
浏览量:2
下载量:0
时间:
嵌入式技术执行专用功能并被内部计算机控制的设备或者系统。嵌入式系统不能使用通用型计算机,而且运行的是固化的软件,用术语表示就是固件(firmware),终端用户很难或者不可能改变固件。以下是读文网小编今天为大家精心准备的:2004年全国嵌入式技术研讨会观感相关论文,内容仅供参考,欢迎阅读!
摘要:嵌入式技术正在突飞猛进的发展,其带来的巨大的经济效益吸引了越来越多的企业和个人的关注。在2004年全国嵌入式技术研讨会中,各界学者交流了嵌入式领域技术的现状和发展趋势,并对未来的技术发展潮流作了预测,认为在下一个十年中起主导作用的将是以可编程逻辑和系统芯片为代表的可定制技术。此外,会议中还讨论了处理器、操作系统等其他嵌入式系统的关键技术和产品。
关键词:系统芯片 可编程逻辑 嵌入式处理器 嵌入式操作系统
本次嵌入式系统学术交流会主要设计了如下一些嵌入式的产品和技术领域,它们是单片机,嵌入式处理器,可编程逻辑,系统芯片,嵌入式操作系统,嵌入式软件以及相关的系统整合开发方法。从会议主办方的观点看,会议讨论的重点是系统芯片SOC。因此本文着重介绍在会议上得到的对于SOC的现状及将来的认识。
系统芯片SOC的提出已经经历了一段不短的酝酿期,市场和技术人员都认为现在乃至将来的5年,将是SOC迅速发展并且广泛应用的黄金时间。如手机芯片,数码相机芯片是当前SOC产品的代表例子。在这种芯片上实现了具体应用所需要的特殊功能,同时包含处理器、存储器和一些标准接口,使得电子系统布局更加紧凑,功能更加强大。
而我国同时也在强调IC设计能力的提升, 15家国家试点IC设计机构的启动,表明了国家对于IC设计的投入和观点。这些IC设计机构的工作重点也将着眼于SOC设计而决不会是一些简单的常用标准IC。微软亚洲研究院在聘用“深蓝之父”许峰雄之后,也开始了其IC设计的旅程。
随着可编程逻辑器件的迅速发展,使用可编程逻辑器件进行系统设计逐渐成为另一个趋势。现在我们常用的可编程器件来自Altera公司,Altera公司的可编程逻辑器件已经有Flex系列升级到低端Cyclone系列和高端的Statix系列,器件内所包含的逻辑单元已经达到数百万门,时钟频率接近200MHz。同时其应用软件也完全淘汰了MaxPlusⅡ而代替以QuatusⅡ+SOPC Builder。在嵌入式系统的发展中,硬件的发展引领着时代的进步,但是这种进步必须得到开发软件的支持才能叫更多的人(我们)直接的感受到技术进步带来好处。
为积极开发基于可编程逻辑期间的SOC产品,Altera设计开发了基于其可编程逻辑器件的处理器内核——NIOS系列,目前最新产品是NIOSⅡ,其处理能力接近150MPIS,除较高的处理能力外,Altera还希望在其可编程逻辑中同时实现多个NIOSⅡ,以实现并行处理提高运算能力。使用SOPC Builder可以方便的开发含有NIOS的可编程逻辑产品,并且提供了大量的标准外设接口,同时NIOS支持ANSI C标准,还提供了用户可重定义的指令系统。
Altera并不是销售量最大的可编程逻辑期间供应商,业界最大的可编程逻辑期间供应商是Xilinx,因为进入中国市场较晚,并且针对学生的市场开发规模较小,使得我们对他有一些陌生。目前Xilinx正在依托国防科大实施其大学计划。
Xilinx的可编程逻辑中也开发并投产了大量多种类的处理器,从高端的PowerPC到低端的8位处理器核应用尽有,处理能力从十几个MIPS到200个MIPS都可以找到。其中PowerPC采用硬核方式嵌入到可编程逻辑中,其高端的Vertex4中包含了两个硬核的PowerPC。其中档32位可编程逻辑处理器同NIOSⅡ处于同一档次,但由于投放市场较NIOS早半年左右,目前在性能和价格上均受到NIOSⅡ的强烈冲击。Xilinx的可编程逻辑产品线跨度更大,覆盖范围更广,逻辑资源已经达到500万门,其双PowerPC核的处理能力可达400MIPS,已经可以同Intel的Xscale媲美。
除了在可编程逻辑上实现的系统芯片外,其他一些厂商也把目标瞄准了SOC的市场,也带来了一些其它类型的可编程SOC产品,主要包括PSOC和CSOC。下面比较一下这三种器件的特点(包括SOPC)。
1.SOPC(System On a Programmable Chip)
提出SOPC概念的是Altera公司,目前Xilinx也在利用自己FPGA的优势,积极的发展自己的SOPC产品。SOPC结合了SOC和PLD、FPGA各自的优点,一般具备以下基本特征:
至少包含一个嵌入式处理器内核;
具有小容量片内高速RAM资源;
丰富的IP Core资源可供选择;
足够的片上可编程逻辑资源;
处理器调试接口和FPGA编程接口;
可能包含部分可编程模拟电路;
单芯片、低功耗、微封装。
SOPC是PLD和ASIC技术融合的结果,目前0.13微米的ASIC产品制造价格仍然相当昂贵,相反,集成了硬核或软核CPU、DSP、存储器、外围I/O及可编程逻辑的SOPC芯片在应用的灵活性和价格上有极大的优势。
2.PSOC(Programmable System On Chip)
PSOC是Cypress公司的产品,其特征在于将各种处理模拟信号的接口通过可编程元素连接起来。PSOC器件集成有一个快速微控制器(MCU)和SONOSTM(硅/氧化氮/氧化硅)工艺制造的闪速存储器及SRAM,以及具有模拟和数字系统功能的可编程阵列器件(即PSOC blocks),并实现了低成本和小型封装形式供货。PSOC包括多种用户模块,与CPLD的宏单元非常相似,这些用户模块也可由设计师随意配置。不过,需要牢记的是:与CPLD不同,PSOC还包括能够完全以模拟方式(无需使用数字电路或CPU等等)来处理信号的用户模块。
作为通用的器件,PSOC主要是针对嵌入式系统的应用,包括音频、无线、手持、数字通信、互联网、控制和消费类系统。Cypress 微系统公司将提供PSOC设计工具PSOCDesignerTM,它是支持PSOC器件的一种完整的开发系统开发系统,包括有一个C编译器和汇编程序、一个连接和调试工具、一个在线仿真器和器件编辑器(Device EditorTM)。
3.CSOC(Configurable System On Chip)
CSOC的设计初衷是为了回避SOPC在低出货量、高灵活性方面的优势,而将工作重点瞄准了高出货量的ASIC IC市场,因此CSOC的特点也是相似于ASIC的,在设计阶段比SOPC复杂、成本高,而一旦大批量生产,就可以体现出单件产品价格低,资源利用率高的优势。
从另一个角度看,目前的CSOC器件主要提供了51系列或者ARM7系列的硬核处理器,以及其它的逻辑模块,并且可以通过硬件描述语言编程的方式组织管理原有的ASIC资源,也可以实现自己的软核IP,其可编程资源并不比SOPC差。
并且,一旦生产厂商发现市场成熟,可以大量供货后,可以很轻松的将现有的CSOC设计,转换成完全的ASIC设计,以此来最大的降低器件的成本。
目前CSOC的市场还不是很活跃,国内的主要代理商为矽正电子有限公司。
一个值得思考的问题是,CSOC的技术特点并不是很符合牧村定律的观点。依照牧村定律,电子器件以10年为周期在可定制和专用化之间摆动,而从现在到2010年学者认为之可定制的10年,Altera和Xilinx也正在积极地为降低FPGA的每逻辑单元成本而努力,因此是否需要向CSOC投入较大精力仍是值得商榷的问题,也许作为技术研究还是比较合适的。
会议中还介绍了其他一些嵌入式产品,比如ARM、新型的单片机等。由于ARM的迅速兴起,已经严重挤压了单片机的市场,几乎成为32位通用嵌入式处理器的“标准”,各种规模背景的厂商都在开发基于ARM的产品,各式的ARM开发板也充斥着市场。而生产单片机的厂商则开始谋求新的发展。比如高可靠性,低功耗,采用Flash替代Ram等。以及一些专有领域的相对专用的单片机。利用Flash提供了另一种灵活性更高的在线可编程可配制的解决方案,这种技术已经得到了一些应用。本次展会单片机大厂FreeScale(原Motorola)没有出席,但可以确定的是FreeScale依然在进行高性能单片机的研发和制造。目前其针对中国市场正在大力宣传其单片机、DSP和传感器芯片。
在软件方便,包括操作系统和应用软件两大市场。VxWorks发布了6.0版本,而Linux系列也得到众多厂商定推广,但是感觉Linux行列中缺少重量级企业的支持。
开发工具方面除了各期间厂商推行的工具软件外,当提到Altium的Protel2004和Nexar。Protel2004延续了Protel的优良传统,其界面更美观,运行速度更快,也提供了更丰富的元件库支持。而Altium号称其Nexar将是划时代的FPGA设计工具。依个人观点,Nexar类似于VB,令用户不必学习复杂的硬件描述语言也可以开发FPGA产品。Nexar将通用IC模块化以IP的方式提供,使用Nexar的用户可以将这些IP以拖拽的方式加入工程,按照设计PCB的方法连接这些通用元件,形成工程,并有Nexar将这些内容编译综合下载到可编程逻辑器件中。在Nexar中也提供了基于可编程逻辑的处理器,不过目前仅限于低端的51等系列。通过Protel和Nexar的配合还可以实现在同一个IDE中进行软硬件的开发。
一些提供系统集成解决方案的厂商也参加了这次会议,包括研华,立功单片机,Emdoor等。他们代理的WindowsCE.Net和Xscale也得以在展会中露面。
对软件的开发过程管理,系统可靠性的保证,在本次研讨会中都有涉及。
纵观这次展会,32位处理器已经成为嵌入式系统的标准,更大的存储器,更快的处理能力,资源极其丰富的可编程逻辑,方便的开发工具都在刺激着这个令人热血沸腾的领域。如何紧跟时代潮流也许将会成为一个有点棘手的问题而呈现在我们面前。对于从可编程逻辑到操作系统再到应用软件到系统设计和开发管理的广阔研究方向,如何把握自己也十分值得思考。现在,时不我待!
浏览量:3
下载量:0
时间:
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。以下是读文网小编今天为大家精心准备的:浅谈交通运输信息平台数据库的实现相关论文。内容仅供参考,欢迎阅读!
虽然交通运输信息平台也充分利用了超文本、超链接、跨平台、远程访问及数据库查询等技术,但是由于信息在Web 服务器中一般以文字或图像的形式存储,查询速度缓慢,检索效率较低,而网络数据库却能对大批数据进行有序的、有规则的组织与管理,因此将Web 技术与数据库技术有机地结合在一起,将会大大提高交通运输信息平台的性能和效率。
Web 是一个分布的异质的计算环境,与这一环境相适应,其应用系统具有多层体系结构。Web 将网络服务器和数据库服务器直接集成为一个整体,使数据库系统和数据库技术成为Web 的一个重要有机组成部分,突破了数据库仅充当Web 体系后台角色的局限,实现数据库和Web 的有机无缝组合,从而为在Internet/Intranet 上进行信息管理乃至开展电子商务应用开辟了更为广阔的领域。
ASP 即ActiveServerPages,是微软推出的动态Web 设计技术,是一种用于WWW 服务的服务器端脚本环境。利用它可以很容易地把HTML 标记、文本、脚本命令及ActiveX 组件混合在一起构成ASP 页,以此来生成动态网页,创建交互式的Web站点,实现对Web 数据库的访问。
当用户使用浏览器请求ASP 主页时,Web 服务器响应,调用ASP 引擎来执行ASP 文件, 并解释其中的脚本语言(JavaScript 或VBScript),通过ODBC 连接数据库,由数据库访问组件ADO(ActiveXDataObjects) 完成数据库操作,最后ASP生成包含有数据查询结果的HTML 主页返回用户端显示。由于ASP 在服务器端运行,运行结果以HTML 主页形式返回用户浏览器,因而ASP 源程序不会泄密,增加了系统的安全保密性。此外,ASP 是面向对象的脚本环境,用户可自行增加ActiveX组件来扩充其功能,拓展应用范围。因此,基于Web 交通运输信息平台的数据库开发应该使用ASP 技术。
在ASP 脚本中通常可以通过两种方式访问数据库;传统的IDC(InternetDatabaseConnector) 方式和ADO(ActiveXDataObjects)方式。从概念上来讲,这两种访问方式对数据库的访问是由InternetInformationServer 来完成的[3]。WEB 浏览器用HTTP 协议向Internet 信息服务器(IIS)递交请求。Internet 信息服务器执行访问数据库的操作并以一个HTML 格式的文档作为回答。
3.1 Internet 数据库接口(IDC)方式
IDC 是一个传统的数据库查询工具用来定义和执行数据库查询的SQL 命令,并向浏览器返回一个指定数据格式的页面。使用IDC 访问数据库最大的特点是简单,几乎不需要编程就能实现对数据库的访问。
3.2 ActiveX 数据对象ADO
与IDC 不同,用ADO 访问数据库更类似于编写数据库应用程序ADO 把绝大部分的数据库操作封装在七个对象中,在ASP 页面中编程调用这些对象执行相应的数据库操作。ADO 是ASP 技术的核心之一它集中体现了ASP 技术丰富而灵活的数据库访问功能。ADO 建立了基于WEB 方式访问数据库的脚本编写模型,它不仅支持任何大型数据库的核心功能,而且支持许多数据库所专有的特性。ADO 使用本机数据源,通过ODBC 访问数据库。这些数据库可以是关系型数据库、文本型数据库、层次型数据库或者任何支持ODBC 的数据库。
ASP 访问数据库的两种方式各有特色。IDC 十分简单,使用.idc 文件和.htx 文件分别完成数据库的访问与输出任务,但是使用起来不灵活。ADO是ASP中推荐使用的方式,它功能强大,使用方便,是ASP 的核心技术之一。根据交通运输信息平台的设计原则,考虑到以后的扩展性、维护性,在ASP 中采用ADO方式进行数据库的连接。
在交通运输信息平台设计中必须考虑对平台用户的有效管理,是合法用户才可以进行登录和管理操作。要建立安全管理,关键就是要有效的防止未授权用户的侵入,同时又要保证授权用户(相关的管理员)一旦通过身份认证在以后的一定时间内进入系统不会再被进行麻烦的身份认证。对于那些授权的相关管理员,给他们授权的同时,也给他们分配一个相应的注册名和密码保存在系统数据库的表USERS 中。进行身份认证的时候就是通过让每一个用户输入用户的注册名和密码,与表USERS中的数据进行比较,如果该注册名和密码能同时在表中存在,说明他是合法用户,此时给该用户一个认证标记。在ASP 中,有两种技术可以实现用户身份认证:Cookie 技术和Session 对象。
4.1 Cookie 技术
Cookie 是在HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookies 是由WEB 服务器保存在用户浏览器上的小文本项目件,可以包含有关的用户信息(如身份认证号码,密码)。
跟Cookie 的创建和接收紧密相关的ASP 内置对想有两个:Response 对象和Request 对象。其中Response 对象负责Cookie的创建,Request 对象负责Cookie 的接收。Response 对象的Cookie 集合,用来设置Cookie 的值,如果指定的Cookie 不存在就创建它;如果存在,就设置新的值并且将旧值删除掉。
4.2 Session 对象
Session 对象是ASP 技术中实现用户会话管理的重要手段,也是在编写有关会话WEB 程序的常用工具。作为ASP 内置对象之一,它主要用来存储特定用户会话所需的信息。这样,当用户在应用程序的WEB 页面之间跳转时,存储在Session 对象中的变量间也不会丢失,而是在整个用户会话中一直存在下去,这非常有利于服务器对用户身份的鉴别。因此Session 经常用来保存用户的身份标记实现用户的身份认证和用户权限管理。
由于Session 是ASP 提供的内置对象,使用的时候不用创建对象的实例,省去了很多麻烦。使用Session 对象方法可以更加方便的实现用户身份标记的保持,因此在交通运输信息平台中使用Session 对象来完成。
【浅谈交通运输信息平台数据库的实现】相关
浏览量:3
下载量:0
时间:
在我国传统文化发展历程中,手绘图形在相当长的时期内都是人们进行艺术设计的主要方式。但随着信息化科学技术的迅猛发展,数字制图逐渐产生,并在当前的网络广告设计中得到了普遍的使用。不可否认,数字制图与传统手绘图形艺术相比具有很大的优势,但是传统手绘图形艺术的个性化、自然韵味及人性化等也是数字制图所不能及的。以下是读文网小编为大家精心准备的:网络广告设计中手绘图形艺术的价值探讨相关论文。内容仅供参考,欢迎阅读!
摘 要:网络广告是一种新型的广告表现形式,与传统的四大传播媒体相比,网络广告具有更加独特的优势。它的针对性强,支持分类搜索,并且能够更精准地把握产品的特性。随着市场竞争压力的加大,在网络广告的发展中,手绘图形艺术成为了一个重要的创意元素,带给了现代营销媒体不小的冲击。根据网络广告中手绘图形艺术所表现出的发展和潜力,笔者做出以下探究。
关键词:网络广告设计 手绘图形艺术 价值 融合
随着市场竞争力的加大,越来越多的商家选择在互联网的网站上打广告,利用浏览网页上的广告横幅、文本链接和多媒体画面等方法向网页浏览者发布信息。在互联网飞速发展的今天,网络广告逐渐比电视、报纸、杂志、广播这四项传统媒体拥有更加明显的优势。它的针对性强,支持分类搜索,并且能够精准地把握产品的特性。通过网络这个开方的平台,传播到互联网用户中。和网络广告智能化传播不同的是,手绘图形艺术沿袭着传统的绘画技艺,在网络广告设计中擦出了不一样的火花。
网络广告指的是设计师运用专业的广告横幅、文本链接、多媒体演示等各种方法,在互联网刊登或发布广告的一种高科技广告运作方式。网络广告中融入的手绘图形艺术有很多方面,包括写实、写意、抽象、概括等等。这些不同的手段赋予了手绘独特的艺术魅力。
1.1 手绘网络广告设计有助于设计师个人素质的提高
在过去的发展中,手绘艺术也一直是艺术设计的主要形式,但是随着网络制图技术的普及,数字制图这种全新的视觉表现手法得到迅速发展,改变了传统的手绘的格局,也为机械化设计注入了新的活力。
随着电子计算机制图技术的不断提高,设计师的素质也在逐步提升。但是追求效率难免忽视质量,手绘师的出现将“创意撞车”的概率大大减少。在平面设计中,手绘包含了很多种类。从绘画类型上,大致可以分为纯手工绘画和借助辅助软件作画。纯手工绘画也可以用马克笔、蜡笔、水彩笔徒手作画,而借助辅助软件绘画则可以用使用的软件区分,包括3DMAX、AI、VR、PS等绘图类软件。不论是哪一种,都能够创造出精彩的设计作品。每一个设计师都是特殊的个体,自身的艺术素养决定了绘画的风格和创意,锻炼了设计师的整合能力,提高了广告设计者的多方面水平。手绘图形艺术有赖于历史记忆的传承,促进了平面设计向多元化方向发展。在融合了科技、智能的网络广告设计中加入手绘图形艺术元素,会让消费者感到眼前一亮,会渴望抓住这种有力的视觉冲击,在潜移默化中提升消费者对产品的使用需求和好感,从而提升商品的知名度。
在网络广告中,应用手绘图形设计实质上是通过设计师将自己脑海中构思出的创意和设计加以整理,借助广告模式将其以画作的形式呈现出来。这类广告的初衷是科技与艺术的相互结合,它在随着社会和经济的发展而前进,从这个方面考虑,它也要求手绘设计师在自身素养上要不断加强。
首先,要求网络广告设计师要对商品设计有明确而深入的了解,其次设计师要具有独特的艺术眼光,能够在短时间内构思、设计出新颖的广告作品,第三,设计师还要具有高超的感受和领悟能力,能够了解观众的内心所想,这样做出的东西才能抓人眼球。除此以外,还要求广告设计师要具有高超的绘画技术水平,让手绘画面成功地传达出设计者的内心想法的,转变成一个合适的载体。
相比于枯燥的文字等广告创意,手绘图形的线条舒适、造型美观,能够更加直观展示出产品形象。因此,当广告设计师在构思广告设计师,要有选择性地强化产品核心,并用手绘图形传达产品的卖点,这也要求广告设计者需要有过硬的美术功底和专业的造型能力,恰到好处的契合人们的需求和爱好。 1.2 手绘网络广告设计能够具有更强的感染力
网络广告是彰显企业活力的重要手段,它能够在第一时间发放产品最新动向,方便快捷地调整企业商品的营销策略,能够将产品影响力大大提高。
首先,手绘艺术不同于其他的设计方法,它是由设计者亲自动手绘制,作品中包涵浓浓的人情味,有明显的辨别个性。通过手绘图形艺术的融入,能够打破常规的广告效果。其次,手绘图形艺术的价值除了独创性,更包含着一种设计师的情感表达,也能够说是内心一种个性的释放。在欧美很多设计发达的国家,很多广告设计师都喜欢拿一支笔一个本子,想到什么就画出什么,这样在整体广告创意中能够散发出一种随性、自然的味道,同时这种情况下绘制出的设计草图也更加灵趣生动,传达着一种回归自然的生命力。
1.3 手绘结合进来引领“独有”的创意潮流
这是一个崇尚个性、品味的社会。对产品受众来说,衡量是否掏腰包的因素是“喜欢”,更胜过了“需要”。融入手绘的元素,能符合更多的人特别是年轻人的爱好,从适用人群的年龄上来说也更加契合。
俗话说:世界上没有相同的两片树叶,手绘的魅力也正在于此。网络广告中,应用手绘设计可以很大程度上避免出现形象雷同的情况。随着网络技术的飞速发展,资源共享已经非常常见,设计者使用一张图片的频率大大增加,原创性因而愈加珍贵。因为手绘的图片必须是作者亲手绘制,是艺术家通过个人的生活经验和自主思维总结来的,这种发自内心的设计有其独有的个性,可以通过彩绘、涂鸦、写生等不同形式表达。在时尚的网络浪潮中,能够让某支广告在纷扰的网络信息潮中脱颖而出,就必须得让人一眼难忘。
当设计师在创作广告作品时,要仔细考虑自己创意里的内涵和美感能否传达商品的核心,不同的产品表现出来的侧重点是不一样的。
2.1 手绘图形艺术的色彩感觉
手绘图形艺术中颜色和形象时占用主要的地位,例如:家用电器要表现出高科技和智能化,所以颜色可以选用金、银等金属色系,图形可以选择流线型设计。例如以家电闻名的京东商城在做企业形象时多方考虑,最后选择了一只银白的金属小狗,取名为――小joy,在很多产品卡、优惠卡上都有经过处理的手绘小joy的形象,十分可爱。女性服装要表现出优雅,可以采用白描的方式表达。食品则要表现新鲜、美味,所以很多蔬果企业都选择以手绘动画的方式表现,在浏览网页的过程中点击出现,用不停跳动、颜色鲜艳的小标识吸引消费者点击浏览。
2.2 手绘图形艺术的形式表现
手绘图形艺术包涵的种类有很多,包括甲骨文、水溶彩铅、pop、水粉等等,一般来说,充满文化氛围的中国传统山水画在商业广告中运用比较多,这些水墨应用能够恰到好处地表现出产品中的文化内涵。例如,CCTV中央3套频道在做一支栏目工艺广告选择了水墨这种形式,大幕来开,一支粗粗的毛笔挥动了一下,看似随意的滴下一滴墨汁,然后氤氲开来的中国的山水、湖泊、怪石,将人带入了原汁原味的天然风光中。这也成为中央三套在网站上点击爆表的一个小视频。这种工艺广告就是运用了手绘的方式,将这种独有的手绘图形作为一种特别的元素呈现,显出它独有的亲和力和文化价值。
2.3 手绘图形艺术的商业营销价值
正如众多设计者所知的那样,创意是设计的生命和灵魂,手绘图形能够通过鲜明的视觉形象,传达企业、产品想要表现的优势。通过丰富的联想,来表达产品的思想脉络。无论是手绘草图,还是手绘效果图,都能够拥有不错的商业营销前景。而在网络广告上传播手绘产品的方法也有很多种,例如微信朋友圈、微博粉丝、贴吧吧友,尤其是微信里的一些公共账号,只要有网友动动手指,就可以起到事半功倍的效果。例如,我们常常在朋友圈里见到的一些话题“世界上最美的插画”“中国最美的素描村庄”,图片上下面都有企业文化、产品介绍的推荐入口,人们很容易因为想要看到更多的图片点击进入,这些网页通过美丽、生动的手绘图画,足可以在微信之间广泛传播,在第一时间就能准确、直观地建造起一座传承产品名誉度的桥梁。
(1)手绘图形艺术是网络广告设计彰显创意的最佳方案。在电脑没有普及的年代,艺术家们想要留住自己的艺术想法,只能依靠双手和画笔完成整个过程。手随心动,完成的效率也大大提高。虽然电脑的绘制效果十分惊人,但在很多细节设计中差强人意。一个有创意的设计必须要由脑“想”和手“画”不断交融,才能使设计方案不断完善。
(2)手绘图形艺术可以灵活运用于各项网络广告。手绘图形艺术和传统广告的传播方式相似,可以灵活运用于各项网络广告中,包括微信广告、网络弹窗、广告邮件、植入广告、视频广告、动画广告、自动扩展半页广告、手机顶部通知推送等等。在这些网络广告中,运用手绘的方式最直观的好处就是让人们有点击观看的欲望,从而形成潜在的消费群体,给企业或商家带来消费价值。
(3)手绘图形艺术能够增加企业的文化内涵。在无数商业广告中,能够第一时间脱颖而出的往往是具有创意、新颖的形式和风格。通过手绘图形表现的创意和新颖性在一定程度上挽救了现代商业广告的尴尬,增加了企业的文化内涵。以独特的视觉表达方式、说明性的图形语言和带有深刻形式美法则的的艺术表现,满足人们不通层次的审美需求。
手绘图形艺术的发展逐渐影响着人们的生活,网络广告作为新兴起的广告样式也同样拥有广阔的市场,两者的相互运用能够产生美学价值和商业价值,为商业广告设计开拓了一个新的领域,从而带来强大的视觉冲击,并结合网络广告的优势,让网络广告中的手绘价值向一体化、多元化方向发展。
相关文章:
浏览量:3
下载量:0
时间:
随着我国信息化时代的到来,计算机数据库系统得到了广泛的发展和应用,在各行各业的发展过程中,计算机数据库管理系统已经取得了很好的发展应用水平。下面是读文网小编为大家整理的计算机数据库毕业论文,供大家参考。
企业管理数据库的数据信息是由工业管理以及商业管理要求来决定的,收集职工详细信息,包括人员情况、职工薪水、职称晋级、产品指标以及销路规划等,及时了解员工的工作状况以及企业的经济数据,能够提高工作效率,使企业的日常运营方便快捷。当构建企业数据库的时候,比如企业的产品数据库,数据库包含的信息有产品的性能特征、厂家的具体情况等,因此检索字段可以设置为产品名称、厂家名称以及产品分类号等,有利于用户快速检索相关产品,当客户需要查找某种产品的时候,只需要输入主题字或者关键字,就可以获得该产品的产品情况。另外,由于员工的加入以及退出,会导致信息资料的变化,因此,在建立企业数据库的时候,应该严格按照数据库的构建流程,建立完善的数据库体系。对于人员流失比较频繁的部门,应该建立专门的数据库,保证数据库的完善,避免数据库的损坏。在日常工作中,还要不定期对数据库数据信息进行更新。
尽管数据库是严格按照流程进行构建的,但是数据库的漏洞也是难以避免的。比如前后工作之间的衔接以及校验,比如计算机文字的错误录入。因此,必须对数据库进行维护和管理。
1加强数据库管理人员的技能
维护计算机数据库,应该加强数据库管理人员的专业技能和综合素质,使它们能够熟练掌握计算机专业知识,熟练运用计算机相关软件。建立专门的数据库校验部门,分派专业管理人员对数据库进行分析和校验,检查数据库构建过程以及检索过程中出现的错误,并且及时进行核实,并且进行更正,保证数据库信息资源的准确性和完整性。
2加强数据库的更新与维护
当计算机数据库构建完毕以后,应该全面检查输入信息的准确性以及完整性,建立定期检查制度[4],保证计算机数据库的质量,提高数据库的利用效率。数据库的时效性影响着数据库的生命。因为科学技术发展十分迅速,数据信息不断更换,比如国家政策、法律法规等,随时都可能出现过时的现象,一旦旧的法律以及标准被重新制定或者修改和增补,那么就需要重新录入最新数据信息,代替作废的旧信息。因此,除了选择性能好的操作系统之外,还应该及时对系统进行升级,保证系统的稳定运行,还要对数据信息进行实时记录,及时进行更新,并添加到数据库中,有利于利用数据库的信息资源。对于大学图书馆数据库的维护,由于分类名目较多,图书资源繁杂,因此,应该根据学校的性质以及文献的专业设置,细化图书文献资源的分类工作,减少不必要的类别,并且添加新的文献资源。如果不能及时对数据库进行更新维护,那么就无法保证数据库的准确性以及全面性,从而对数据库的有效应用造成影响。对于企业产品数据库的维护,一般在一至两周年内对数据进行更新[5],因为产品可能停产或者改型,也可能研制出了新一代的产品,而且有些厂家可能已经倒闭,或者更换了厂址,或者改了新的厂名,产品信息的变化非常大,所以,必须及时对产品的相关数据信息进行更新,保证产品信息具有一定的时效性。只有及时更新数据库,才能保证数据库的活力与生命,才能满足信息时代人们对于数据信息的需求。
3重视用户的计算机教育
在计算机数据库的使用过程中,还要对数据库的使用者进行相关培训。只有对使用者普及计算机知识以及数据库的知识,才能使用户在使用过程中达到快捷方便的使用目的。另外,还应该编制用户使用手册,并且重点标注重要的注意事项,使使用者能够合理地运用数据库信息资源,避免造成数据库的破坏。
4营造方便快捷的网络环境
当数据库建成以后,必须配备一定数量的、性能好、运行稳定的计算机,还需要定期对计算机的设备硬件以及应用软件进行定期检测和维护,确保计算机数据库的正常使用。营造方便快捷的网络环境,有利于推动社会经济和文化教育,扩展数据库的应用领域,提高数据库的使用效率,充分发挥数据库的强大作用。
随着时代的进步以及科学技术的发展,计算机数据库成为学校以及企业必需的工具。数据库的构建和管理也是一项长期而复杂的工程,因此,在数据库的操作过程中,必须细致入微,衔接得当,创造出一个稳定、准确的操作环境,提高学习和工作的效率。
一、计算机网络数据库安全概述
对数据库进行安全保护,可以有效避免用户非法越权使用、窃取、更改甚至破坏数据。数据库安全包括以下几点。
1.逻辑完整性。保护数据库的整体结构,如对某个字段进行修改时,其他字段没有遭到破坏。
2.物理完整性。数据不会受到自然及物理问题的破坏,如电力和设备故障等问题。
3.元素安全性。数据库中存储的所有元素均正确。
4.访问控制。明确只有通过授权的用户才可以访问数据库,可以通过不同方式限制不同用户的访问。
5.可审计性。能够对数据库元素进行追踪存取与修改。
6.可用性。授权用户可以对数据库进行自由访问。
7.身份验证。审计追踪、访问数据库必须进行严格的身份验证。
二、计算机网络数据库存在的安全威胁
1.数据库的下载。多数用户在使用ASP编写连接文件中,大都用语句“(conn.asp):”对数据库进行保护。单从语句的连接上看是正确的,而且名称长度也很保险,下载者对数据库难以识别解除。但是如果通过暴库技术与相关工具,就可以快速定位具体数据库的各种情况,一般是用“%5c”命令,虽然不能百分百成功暴库,但是出现暴库的几率非常高。在获取地址后通过IE输入,再下载到本地,就能够获得用户名及密码。
2.注入SQL。互联网中,大多数是在设立防火墙后才布置WEB服务器,只开放80端口,非法者无法入侵其他端口,因此,80端口是他们入侵的目标,而常用方式是注入SQL。有少数程序编制者在编写程序的代码时,忽略了对用户输入的数据正确性的辨别,使得应用程序面临很多威胁。在客户端对代码进行传输,收集处理程序与服务器数据信息,得到所需资料,这种操作被称为注入SQL。注入SQL可以常规访问80端口,相当于普通Web页面进行访问,防火墙对注入SQL无法获取报警信息,如果管理员不能及时进行审核检查,几乎很难发现被入侵。
三、维护计算机网络数据库安全的应对措施
1.严格查堵URL端漏洞。在审核用户使用数据库的情况时,若发现用户端在URL提交参数时,存在exec,insert,delete,from,count,user,xp_cmdshell,add,asc(,char(,drop,able,mid"等用在注入SQL中的字符以及字符串,就必须立即禁止ASP的运行,而且会显示出如“出错提示”等报警信号,对于有接收的用户端在URL提交参数程序时用<!--#includefile=“../*****.asp”-->即可写入程序,该方法能够有效防止多数入侵者的入侵,同时还不会影响程序执行的速度;也可以在if语句中对注入SQL常用的字符、字符串进行设置,在特定的时间里拒绝IP访问,增强数据库安全,防止黑客非法入侵。
2.严格查堵form和cookies漏洞。有些袭击者通过form、cookies提交含有“or”、“=”等字符入侵,为防止入侵,应该在编写程序时添加特殊字符,确保程序安全执行。可通过paraname=Request.form()即paraname=Request.Cookies()获取用户名与密码,再加入代码,如果在用户参数paraname中发现空格、=、or等字符时,应该终止then后面的执行情况,不再运行ASP,以拦截入侵者入侵。
3.增强自身安全。暴库是因为IIS服务器具体显示各执行错误的情况并中断执行时,把错误信息发送给了用户。为防止暴库,应该调整IIS默认设置。通常的防范措施是把数据库后缀名由MDB变为ASP、ASA。虽然该方式可以防暴库,但随着计算机技术的发展,该方法已经无法满足最新防范的要求。后缀修改的ASP、ASA的数据库文件,黑客能够进行查找并确定具体存储位置,可以通过迅雷等下载获得。
4.数据库名的前面加“#”。现在大部分的管理员在数据库名的前面加#号,可以有效防止数据库被非法下载,这是因为IE不能下载带#号文件。但是网页不仅可以通过常规方式进行访问,还能够通过IE编码技术进行访问。IE里的不同字符都存在相应编码,编码符号“%23”可以取代#号,以此种方式进行处理后,数据库文件后缀加#号是无法被下载和使用。
5.加密用户密码。加密用户密码也是一项有效的应对措施,一般是采取MD5进行加密。MD5没有反向算法,因此很难解密,黑客们即使获得加密情况,但还是无法找出正确的原始密码。虽然可通过UPDATE方式以其他密码替代,但是这种操作难以实行。需要注意的是,信息数据进行MD5加密后很难解密,因此用户必须防止密码丢失、忘记。这种加密方法必须改变前用户的所有资料,用户要对资料进行重新设置,还要把数据库中经过MD5加密放入相关字段进行计算后才能再次存储。
四、结论
数据库的安全直接影响到整个计算机网络系统的安全,因此,应该采取全方位的保护措施,保证计算机网络系统的安全,为广大用户营造安全且稳定的网络运行环境,以防止计算机网络数据库被非法入侵和袭击。
浏览量:2
下载量:0
时间: