嵌入式课程方案报告web嵌入式远程监控系统_第1页
嵌入式课程方案报告web嵌入式远程监控系统_第2页
嵌入式课程方案报告web嵌入式远程监控系统_第3页
嵌入式课程方案报告web嵌入式远程监控系统_第4页
嵌入式课程方案报告web嵌入式远程监控系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

个人资料整理 仅限学习使用基于web的嵌入式远程监控系统学生:刘仁指导老师:蔡 硕摘要:随针对当前国内国外嵌入式服务器技术研究和发展情况的分析,本报告提出了将 WEB服务器、嵌入式系统以及当前的一些嵌入式实验板板载功能进行融合的设计思想。设计了结合WEB服务器技术的嵌入式监控系统。该系统具有浏览交互式网页,对嵌入式平台进行监视和控制等功能。通过本套嵌入式 WEB服务器系统,用户可以通过 HTTP协议方便的访问相应的嵌入式平台进行有效监视的同时还可以进行实时的有效控制。该系统对硬件要求极低、响应速度快、安全性好、可扩展性强等优点,具有较高的实际应用价值。该系统在智能家居、嵌入式组网等方面的应用将有较广阔的发展前途。关键词:ARM嵌入式系统;嵌入式 web监控;boa服务器;CGI编程;Linux操作系统关键词:自动化、奏乐器、VHDL、数字电路Abstract:Accordingtotheanalysisoftheresearchesaboutthestatusofthembeddedserveroftheworld.WeriseadesignofaembeddedinternetcontrolsystembasedontheWebservicewhichintegratesthewebserver,embeddedtechnologyandthefunctionsontheembeddedexperimentBoard.Thissystemhasthefunctionofbrowsingthewebpages,monitoringtheembeddedBoardandsoon.WiththisembeddedWEBserver,theuserscanwatchtheembeddedsystemconvenientlyaccordingtheHTTPprotocol.Atthesametimetheuserscanalsomonitortheystem.Thissystemhavealotoflongtageslikealowrequestofthehardware,limitedtimeofresponseandastablestatus.Wewillseethatthiskindofsystemusedintheapplicationofintelligentfamilyelectronics,embeddednetingandsoonwouldhaveagooddevelopment.Keywords:ARMEmbeddedSystem。EmbeddedWebServerSystem。BoaServer。CGIPrograming。LinuxOperatingSystem个人资料整理 仅限学习使用1引言嵌入式系统课程设计是本专业在学习完 C语言、LINUX操作系统、嵌入式系统原理与接口设计、嵌入式操作系统原理之后的专业课程设计,属于专业课内容。通过课程设计建立嵌入式系统主体环节,嵌入式系统的最小结构和系统应用设计基本技能,培养分析和解决一些简单的实际问题的能力,为今后毕业设计奠定基础。随着嵌入式技术的发展和高速宽带网络的普及 ,利用网络实现远程监控已为人们广泛接受 ,嵌入式网络监控技术正是在此条件下逐步发展成熟起来的。用户使用Web浏览器,通过以太网远程访问内置Web服务器的监控摄像机,不但可以实现对现场的远程视频监控,而且可以向监控现场发送指令。在整个系统的实现过程中,嵌入式Web服务器起着十分重要的作用。本课题就是基于该项技术,最终编程实现通过网络控制下位机嵌入式控制器的电机启动和停止。1.1研究目的和意义1、通过嵌入式课程设计,熟练掌握 C语言的编程方法。基于 WEB的远程监控的实现,CGI的编写和使用,将理论联系到实践中去,提高我们的动脑和动手的能力。2、通过基于WEB的嵌入式远程监控系统的设计,掌握S3C2410实验箱,直流电机的工作原理,BOA服务器的使用,CGI的使用和简单程序的编写及调试方法,最终提高我们的动手实践能力。3、本课题的研究目的是用

BOA

服务器、CGI、IE

浏览器设计一个通过

IE浏览器监控电机的系统,能够通过两个简单的按键对电机进行启动和停止的控制,并能够在

IE浏览器上看到电机的当前状态。4、由于基于WEB的嵌入式远程监控系统将成为今后远程监控技术发展的主流方向,所以需要设计出简单实用,让人们更满意的产品。个人资料整理 仅限学习使用1.2本设计任务和主要内容1.基本要求本课题主要设计和研究基于 WEB的嵌入式远程监控系统,要求在保证可靠运行的前提下,电路设计尽量简洁紧凑,以减小成本、提高系统的效率和安全性。2.应解决的问题1)设计系统网络方案2)分析网络程序结构和应用程序的使用方法3)编程实现嵌入式系统服务器功能4)编程实现嵌入式系统联网功能5)编程实现通过网络控制下位机嵌入式控制器的电机启动和停止3.扩展功能演奏时可以通过按键选择是手动演奏还是自动演奏,手动演奏是通过按键进行简易乐曲的演奏。总体方案设计2.1整体方案设计系统总体设计是基于嵌入式系统和 WEB服务器结合的思想开发的,其网络拓扑结构如图2.1所示个人资料整理 仅限学习使用图2.1系统网络拓扑图针对本次课程设计提出的系统设计如图2.2所示图2.2系统方案框图2.2硬件系统设计2.3.1核心处理器的选择核心处理芯片需要完成处理和支持整个系统的功能需求,通过运行 BOA服务器要实施的接收来自各个客户端的请求和信息,并根据获得的请求和信息进行相应的后台处理以及信息的反馈。为完成上述功能,实现服务器正常运行,对处理芯片进行选型,对比现有处理芯片的优缺点,选择ARM9S3C2410X芯片作为设计开发嵌入式服务器系统的核心处理芯片。S3C2410X微处理器是一款由 Samsung公司为手持设备设计的低功耗、高集成度的基于ARM920T核的微处理器,为了降低系统总成本和减少外围器件,这款芯片还集成了以下部件:16KB指令Cache、16KB数据Cache、MMU、外部存储器控制器、LCD控制器、NANDFLASH控制器、4个DMA通道、3个UART通道、1个IIC总线控制器、1个IIS总线控制器、4个PWM定时器、1个内部定时器、通用IO口、实时时钟、8通道10位ADC和触摸屏个人资料整理 仅限学习使用接口、USB主、USB从、SD/MMC卡接口等。2.3软件环境选择2.3.1操作系统的选择当选定了硬件系统后,为了配合硬件达到系统的最优控制要求,对市面上常用的嵌入式系统进行分析比较。(1>价格比较:Linux是完全免费的操作系统,只需遵循 GPL声明,不需支付任何费用;WinCE是微软的商用嵌入式操作系统,使用它需要支付 WinCE及其开发环境的费用,开发出来的每套产品也需交纳一定费用。 uc/os—II系统,可以免费用于学习或科研,但开发商使用产品或销售都是收费的。(2>开放性比较:Linux是源代码完全开放的操作系统,可以自由下载,并且在遵循 GPL声明的前提下可以自由地修改、移植,为系统的开发和调试带来极大的便利; winCE是部分源码开放的商用操作系统,如果要修改其中的代码,需获得微软公司的授权; uc/os—II也是开放的实时操作系统。(3>文件系统的比较:Linux支持绝大部分文件系统,只需选择相应的文件系统即可;WinCE仅支持Windows系列的FAT16、有限文件系统;uc/os—II本身没有包括文件系统,需购买或移植。Linux与ARM处理器从以上可以看出,Linux系统在诸多方面都存在优势,而且本身的ARM处理器与Linux也有着紧密的联系。因此采用Linux操作系统。2.3.2服务器的选择典型的嵌入式Web服务器有Boa和thttpd两种,它们和Apache等高性能的Web服务器主要的区别在于它们一般是单进程服务器,只有在完成一个用户请求后才能响应另一个用户的请求,而无法并发响应,但这在嵌入式设备的应用场合里已经足够了。 Boa是一个非常小巧的Web服务器,可执行代码只有约 60KB。它是一个单任务 Web服务器,只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但 Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全,在其站点公布的性能测验中, Boa的性能要好于Apache服务器。经过上述的对比和判断,选择 Boa作为系统的嵌入式服务器。综合以上的讨论以及选择,根据系统的实际需求,最终确定了采用 S3C2410X为核心处理器,Linux为嵌入式操作系统,boa为服务器以及相应的 http浏览器的系统设计方案。硬件设计3.1系统硬件平台介绍我们所介绍的硬件平台是基于 ARM体系结构,由北京博创兴业科技有限公司开发的 UP-个人资料整理 仅限学习使用NetARM2410-S实验仪器。UP-NetARM2410-S的CPU为ARM920T内核的三星S3c2410芯片,由于有MMU<内存管理单元)可以运行标准的ARM-LINUX内核。通过这个平台,我们可以实现嵌入式LINUX中的针对无MMU的开发过程。3.2s3c2410芯片介绍图3.1芯片结构图3.3ARM处理器的外围设备3.3.1电源电路设备提供12v的电源,经LM1085-3.3V和AS1117-1.8V分别得到3.3V和1.8V的工作电压。开发板上的芯片多数使用了3.3V电压,而1.8V是供给S3C2410内核使用的。5V电压供给LCD、电机、总线等电路使用。图3.2电源电路个人资料整理 仅限学习使用3.3.2硬件复位电路硬件复位电路由IMP811T构成,实现对电源电压的监控和手动复位操作。2410-S主板复位电路设置专用逻辑:IMP811T的复位电平可以使CPUJTAG<nTRST和板级系统<nRESET)全部复位;来自仿真器的ICE_nSRST信号只能使板级复位;来自仿真器的ICE_nTRST可以使JTAG<nTRST)复位,通过跳线选择是否使板级nRESET复位。nRESET反相后得到RESET信号。硬件复位电路如图3.3所示图3.3硬件复位软件设计4.1设计思想基于web的嵌入式监控系统设计主要的功能有简单的网页浏览,实现简单应用功能 <客户个人资料整理 仅限学习使用端与服务器的交互)以及服务器端的控制功能。因此软件的设计分为三个部分: boa服务器的搭建、应用程序设计和驱动程序的加载。4.2BOA服务器的简介与搭建4.2.1嵌入式Web服务器Boa的特点Boa是一款单任务的 HTTP服务器,与其他传统的Web服务器不同的是当有连接请求到来时,它并不为每个连接单独创建进程,也不通过复制自身进程来处理多链接,而是通过建立HTTP请求列表来处理多路HTTP连接请求,同时它只为CGI程序创建新的进程,这样就在最大程度上节省了系统资源,这对嵌入式系统来说至关重要。同时它还具有自动生成目录、自动解压文件等功能,因此Boa具有很高的HTTP请求处理速度和效率,在嵌入式系统中具有很高的应用价值。4.2.2Boa的功能实现嵌入式Web服务器Boa和普通Web服务器一样,能够完成接收客户端请求、分析请求、响应请求、向客户端返回请求结果等任务。它的工作过程主要包括:(a>完成Web服务器的初始化工作,如创建环境变量、创建TCP套接字、绑定端口、开始侦听、进入循环结构,以及等待接收客户浏览器的连接请求;(b>当有客户端连接请求时,Web服务器负责接收客户端请求 ,并保存相关请求信息;(c>在接收到客户端的连接请求之后 ,分析客户端请求,解读出请求的方法、URL目标、可选的查询信息及表单信息 ,同时根据请求做出相应的处理;(d>Web服务器完成相应处理后,向客户端浏览器发送响应信息 ,关闭与客户机的TCP连接。嵌入式Web服务器Boa根据请求方法的不同,做出不同的响应。如果请求方法为HEAD,则直接向浏览器返回响应首部;如果请求方法为 GET,则在返回响应首部的同时,将客户端请求的URL目标文件从服务器上读出,并且发送给客户端浏览器;如果请求方法为POST,则将客户发送过来的表单信息传送给相应的CGI程序,作为CGI的参数来执行CGI程序,并将执行结果发送给客户端浏览器。Boa的功能实现也是通过建立连接、绑定端口、进行侦听、请求处理等来实现的。4.2.3BOA的搭建与移植<1)准备源代码、解压软件包,安装源代码到 boa网站下载boa-0.94.13.tar.gz源代码,或者使用光盘的 boa-0.94.13.tar.gz软件包。$tarxzvfboa-0.94-13.tar.gz<2)进入src目录,编译源代码。解压后src目录下有Makefile.in文件,但没有Makefile文件,为了编译源代码,需要先生成Makefile文件,在src目录下运行configure命令$./configure生成的Makefile文件是针对X86平台的,为了生成能够在 ARM上运行的boa,需要修改Makefile文件。将Makefile的31~32行内容:个人资料整理 仅限学习使用=gccCPP=gcc–E应用<在交叉编译时使用):然后输入make命令进行编译,在 src目录下就会生成 boa文件。$make然后将该文件添加到文件系统中,重新下载文件系统。如果不幸出现

―ickyLinuxkernelbug!

的错‖误,请将

src下boa.c的第

226行注释掉,重新编译下载即可。<3)安装

boa服务器主要是配置boa服务器。boa启动时需要一个配置文件boa.conf,该文件的缺省目录由src/defines.h文件的SERVER_ROOT定义,或者在启动boa的时候通过参数―-c‖指定。其中指定的默认目录是:/etc/boa/<4)登录boa服务器在PC机浏览器地址栏输入目标系统的IP地址<1),访问存在于目标系统中的网页。4.3应用程序设计4.3.1程序设计依赖关系通过对系统的分析以及对服务器的了解,系统确定了以下的软件开发系统方案,如图 4.1所示图4.1软件依赖关系4.3.2应用程序流程图乘法功能个人资料整理 仅限学习使用图4.2乘法功能实现流程图程序段电机程序的流程图个人资料整理 仅限学习使用图4.3电机部分流程图4.4驱动程序设计驱动部分主要有两部分组成:电机驱动和网卡驱动,其中以电机驱动为主。由于在本套系统设计中,不可能每次开机都要由操作人员将驱动加入内核,这样既不方便又费时费力,所以系统采用将驱动编译进内核的模式。4.4.1电机驱动电机驱动程序流程1、开启设备时,配置 IO口为定时器工作方式2、配置定时器的各控制寄存器3、在s3c2410_dcm_ioctl中提供调速功能接口4、应用程序dcm_main.c中调用5、实现直流电机速度的调整4.4.2驱动加载过程以电机驱动为例:编译直流电机 cd/arm2410s/kernel-2410smakemenuconfig进入MainMenu/Characterdevices菜单,选择DCMOTOR模块加载:编译内核模块:makedepmakemakemodules直流电机模块的编译结果为: /arm2410s/kernel-2410s/drivers/char/s3c2410-dc-motor.o个人资料整理 仅限学习使用2、加载模块在超级终端中,通过加载 NFS运行编译结果:mount–tnfs21:/arm2410s/hostInsmod/host/kernel-2410s/drivers/char/s3c2410-dc-motor.o系统整体调试与分析系统的调试分了 x86和arm架构下的调试,其中以进阶方式进行开发测试,根据实现难度分为三步:第一步先实现简单的网页浏览,然后通过乘法操作的简单设计来实现人机交互最后通过电机控制的设计完成整个服务器监控系统的设计。5.1linux平台下的调试5.1.1简单网页浏览的调试与分析结果:网页正常显示分析:遇到的问题主要集中在 BOA服务器的搭建上,经过仔细学习参考资料成功解决了问题。5.1.2基于web的乘法操作的调试与分析结果:网页可以正常显示但在调试的开始阶段遇到了程序不能正常运行的问题,但经过同一起努力在两天后解决了问题。分析:存在的问题主要是服务器调用结构不理解导致的 cgi程序无法正常调用,结果显示为乱码等问题,在正确理解了服务器、 cgi-c编程的原理后,使网页能够正确运作。5.1.3电机控制的调试与分析由于牵涉到硬件设备的调试所以在 X86环境下只进行了程序的编写和编译,而没有实际的进行调试。个人资料整理 仅限学习使用5.2嵌入式平台下的调试5.2.1客户端与服务器交互的调试与分析由于/etc目录只允许读不允许写,但我们搭建的 BOA服务器的运行要求在/etc目录下有mime.types(用来指明不同文件的扩展名对应的 MIME类型>并且还要在/etc/boa/下有相应的配置文件BOA.conf,则需要我们重新生成根文件系统等,将我们需要的文件填到相应的位置,然后再重新生成镜像文件并烧写文件系统。将编写好的html程序(名称改为index.html,因为这是输入地址后默认的访问文件>放到目录var/www下。需要的c语言程序用arm-linux-gcc编译生成相应的cgi程序,到目录/var/www/cgi-bin下。启动boa服务器,在根目录下输入ifconfig命令可以查找到服务器的ip地址,在客户端的地址栏输入该地址,就可以访问到相应的网页,通过该网页用户可以监控电机。5.2.2电机控制的调试与分析Linux下的直流电机程序包括模块驱动程序和应用程序两部分。 Module驱动程序实现了以下方法:staticstructfile_operationss3c2410_dcm_fops={owner:THIS_MODULE,open:s3c2410_dcm_open,ioctl:s3c2410_dcm_ioctl,release:s3c2410_dcm_release,}。开启设备时,配置 IO口为定时器工作方式:({GPBCON&=~0xf。GPBCON|=0xa。}配置定时器的各控制寄存器:({TCFG0&=~(0x00ff0000>。TCFG0|=(DCM_TCFG0>。TCFG1&=~(0xf>。TCNTB0=DCM_TCNTB0。/*lessthan10ms*/TCMPB0=DCM_TCNTB0/2。个人资料整理 仅限学习使用TCON&=~(0xf>。TCON|=(0x2>。TCON&=~(0xf>。TCON|=(0x19>。}>在s3c2410_dcm_ioctl中提供调速功能接口:caseDCM_IOCTRL_SETPWM:returndcm_setpwm((int>arg>。应用程序dcm_main.c中调用:ioctl(dcm_fd,DCM_IOCTRL_SETPWM,(setpwm*factor>>。实现直流电机速度的调整。a.编译直流电机模块cd/arm2410s/kernel-2410smakemenuconfig进入MainMenu/Characterdevices菜单,选择DCMOTOR为模块加载:b.编译内核模块:makedepmakemakemodules直流电机模块的编译结果为:/arm2410s/kernel-2410s/drivers/char/s3c2410-dc-motor.o编译应用程序cd/arm2410s/exp/basic/10_dcmotor/make生成dcm_maind.挂载驱动模块insmod/host/kernel-2410s/drivers/char/s3c2410-dc-motor.oe.运行程序mount–tnfs192.168.0.xxx:/arm2410s/hostinsmod/host/kernel-2410s/drivers/char/s3c2410-dc-motor.ocd/host/exp/basic/10_dcmotor/./dcm_main程序运行结果:直流电机转动 1秒,停转1秒。由于是根据原有变速程序稍做改动完成的程序,所以遇到的问题不是很多,经过几次尝试就得到了期望的结果。个人资料整理 仅限学习使用5.3调试结果分析5.3.1调试结果1、静态网页图5.1静态网页、乘法网页图5.2乘法网页3、电机控制网页个人资料整理 仅限学习使用图5.3电机控制网页图5.4返回结果5.3.2结果分析经过x86下的调试和基于 ARM的下载与调试后,系统能够实现静态网页浏览,简单人机交互以及电机控制的功能,系统工作稳定,响应速度快,组网方便快捷,如果与 DNS服务器或者

WINS

服务器相结合即可实现用主机名就能登录相应平台的功能。设计总结经过三个周的学习与努力,经过系统分析、方案论证、 硬件和软件设计、 调试等阶段完成了基于web的嵌入式远程监控系统的设计制作。在这三个周的课程设计中,我得到了老师和同学很大的帮助,有时候觉得进行不下去了,老师或同学一句话就能让我茅塞顿开。即使听不懂,他们也会耐心的讲解。在系统的设计制作过程中,确实遇到了各种各样的问题,如调试思路正确但是没有能够进行找到合适的方法进行进一步的实验,设计中对于程序的编写以及目录结构的认知上存在偏个人资料整理 仅限学习使用差,其主要原因还是基础功不扎实,把握系统的能力不足,这为我们以后的学习和工作提了一个醒。在问题的解决过程中,也提高了组员的动手动脑能力,学到了许多在书本上学不到的知识。在具体的设计当中解决了诸如 boa服务器的搭建,C程序的修改及CGI编程的理解,程序的调试和系统的整体认识等问题,小组成员收获很大。致谢在这次课程设计中,学校和学院给予了大力的支持,提供了与设计有关的环境,方便了课程设计的顺利进行。在这其中我确实学到了很多知识,在此仅代表个人衷心的感谢学校和学院的大力支持。本论文是在指导老师蔡烁的悉心指导和严格要求下完成的。在整个课程设计过程中,蔡烁老师时时督促和引导,并在设计过程中进行了方向指导,在总体方向不出错的基础上,施展自己的所学,发挥个人的所长。他不仅在学习上和生活上给予了我们多方面的指导和无微不至的关怀,而且他渊博的学识、严谨的治学态度、孜孜不倦的工作作风和宽以待人的处事风格使我终身受益,并且还从中学会了分析问题和解决问题的方法此外,在本次设计过程中,还得到了其他老师和的热情关心和帮助,值此论文完成之际,谨向老师表示崇高的敬意和最诚挚的谢意。个人资料整理 仅限学习使用参考文献郑灵翔编著《嵌入式LINUX系统设计》北京航空航天大学2008年孙纪坤、张小全编著《嵌入式LINUX系统开发技术详解-基于ARM》人民邮电出版社2007.9、王进德编著《嵌入式LINUX程序设计与应用案例》中国电力出版社2007.5[4]郑慕德编著《嵌入式微型计算机系统实例教程 -ARM与LINUX》科学出版社2006.7刘淼编著《嵌入式系统接口设计与LINUX驱动程序开发》北京航空航天大学出版社,2006.5魏洪兴等编著《嵌入式系统设计与实例开发II-基于ARM9微处理器与LINUX操作系统》清华大学出版社2005.12[7]魏洪兴等编著《嵌入式系统设计与实例开发实验教材 II-基于ARM9微处理器与LINUX操作系统》清华大学出版社 2005.12金敏等编著《嵌入式组成、原理与设计编程》人民邮电出版社2007.6附录1主要程序清单乘法网页的HTML表单:<html><head><title>测试</title></head><body><h1align="center"> 。测试</h1><FORMACTION="/cgi-bin/mul1.cgi"><P>请在下面填入乘数和被乘数,按下确定后可以看到结果 <INPUTNAME="m"SIZE="5"><INPUTNAME="n"SIZE="5"><BR><INPUTTYPE="SUBMIT"VALUE=" 确定"></FORM><palign="center"></p>个人资料整理 仅限学习使用</body></html>乘法程序清单:#include<stdio.h>#include<stdlib.h>intmain(void>{char*data。longm,n。printf("%s%c%c","Content-Type:text/html。charset=gb2312\n\n",13,10>。printf("<TITLE>乘法结果</TITLE>">。printf("<H3>乘法结果</H3>">。data=getenv("QUERY_STRING">。if(data==NULL>printf("<P>错误!数据没有被输入或者数据传输有问题 ">。elseif(sscanf(data,"m=%ld&n=%ld",&m,&n>!=2>printf("<P>错误!输入数据非法。表单中输入的必须是数字。 ">。elseprintf("<P>%ld和%ld的成绩是:%ld。",m,n,m*n>。return0。}电机网页的HTML表单:<html><head><title>监控电机</title></head><body><formname="form1"action="/cgi-bin/dianji.cgi"method="POST"><tablealign="center"><tr><tdalign="center"colspan="2"></td></tr><tr><tdalign="right">输入start启动电机,输入stop停止电机</td><td><inputtype="text"name="Username"></td></tr><tr><tdalign="right"><inputtype="submit"value="确定"></td><tdalign="right"><inputtype="reset"value="取消"></td></tr></table>个人资料整理 仅限学习使用</form></body></html>电机程序清单:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<fcntl.h>#include<sys/ioctl.h>#defineDCM_IOCTRL_SETPWM#defineDCM_TCNTB0#defineERRORprintf("error">staticintdcm_fd=-1。char*DCM_DEV="/dev/dcm/0raw"。char*getcgidata(FILE*fp,char*requestmethod>。intmain(>{char*input。char*req_method。charname

温馨提示

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

最新文档

评论

0/150

提交评论