基于STM32F103的网络温度报警器物联网全解_第1页
基于STM32F103的网络温度报警器物联网全解_第2页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、基于STM32F103的网络温度报警器设计作品名:基于STM32F103的网络温度报警器设计作者:陈华健贾从含时间:2015年6月17日目录:1引言12利用普通二极管PN结测试环境温度原理23器件的选择和芯片的介绍44.UC/0S系统移植65文件系统的移植与文件系统基本函数的功能166. Uip及socket实现方法2721. 引言近年来随着科技的飞速发展,嵌入式的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的嵌入式应用系统中,嵌入式往往作为一个核心部件来使用,仅嵌入式方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。本系统使用STM32F103实现了接收

2、由上位机通过TCP协议发出的温度报警阈值信号,并存于SD片卡中。单片机利用普通二极管的PN结测试环境温度,每30s采集一次,将采集到的温度信息补充上时间(时、分、秒、毫秒)标注存储在存储芯片中。并将报警时的温度值与当前时间的温度进行比较,当前温度大于阀值温度时,通过发光二极管或蜂鸣器报警。上位机通过TCP,向单片机发送Readnfo”命令后,单片机能将SD卡中存储的所有数据发到PC机的串口助手中;数据格式美观、易懂。本系统采用普通二极管PN节的温度特性来测量环境温度不失为一种低成本而又容易实现的环境温度测量方式。使用STM32自带的ADC模块进一步降低了成本和设计难度。采用大容量存储芯片可以长

3、时采集环境数据并且在采集到的温度补充上时间信息使数据更加可信,同时移植了文件系统方便文件在WINDOWS下的读取和处理。本系统采用了无线传输的方式配合可靠的电源设备或太阳能设备可以在室外持续的传输回温度信息或其他的气象数据(需配合适当的传感器),减少了人工成本,并且更加适应于野外大规模投放接点。92. 利用普通二极管PN结测试环境温度原理.温度是表示物体或环境冷热程度的一种物理量而温度传感器是一种能将温度变化转换成电量变化的元器件。由于二极管制造工艺的特殊性,我们可以利用二极管的伏安特性来测量环境的温度,它的伏安特性如下图0J).2O.4O_6(18.OL21.4-2-4r-8Jy/llA1-

4、9二极營的伏安礙喩麗子网I11众所周知,将PN结用外壳封装起来,并加上电极引线就构成了半导体二极管,即所谓的二极管。由P区引出的电极为阳极,由N区引出的电极为阴极,如下图所示符号罔4-3_概昔刊站与电踏图昭持号C蜡b)电塔咽雎赭号温度对二极管的性能有较大的影响,温度升高时,二极管的正向压降将减小,每增加1C,正向压降减小约2mV,因此可以使用这一特性来测量环境温度。由半导体理论可以得出,PN结所加端电压u与流过它的电流i的关系为:其中,Is为反向饱和电流,对于硅材料来说,Is约为10pA;q为电子的电量口=1.6*10的-9次方库伦;k是玻耳茨曼常数,k=1.38*10的-23次方J/K;T为

5、绝对温度,kT/q可以用UT来代替,常温下,即T=300K时,UT约为26mV。对于足够大的电压,二极管方程可以近似写成那么,二极管两端的电压可以推导出为:因此温度的公式为:3. 器件的选择和芯片的介绍本系统采用了ST公司和高性能微控制一一STM32F130ZET6该微控制器具有512KROM以及62KRAM足以满足该项目的需求。本系统使用到的模块有:ENC28J60模块,0.96'OLED模块,SD卡模块,以及2个无线模块和USB-TTL模块。为了满足这些模块的供电需求另外自己用洞洞板做了AMS1117的稳压模块,以及采用德州仪器公司的TPS7333稳压芯片制作了稳压模块为无线模块提

6、供稳定可靠的电源使数据的发送和接收更加稳定。AMS1117系列稳压芯片有可调版与多种固定电压版,设计用于提供1A输出电流且工作压差可低至1V在最大输出电流时,AMS1117器件的压差保证最大不超过1.3V,并随负载电流的减小而逐渐降低。本系统采用的是输出3.3v的固定电压版本。电路图如下:GNDTPS7333是由德州仪器公司研发生产的单通道线性稳压芯片具有单输出LDO、500mA、固定电压(3.3V)、集成SVS、低静态电流,性能十分稳定,输出电压纹波低。应用电路比较简单,电路如下:V|T0.1UFINRESETINSENSEINOUTENOUTGNDTPS73xxPWt391020ToSys

7、temReset250kfiVOtTPS73251TPS733Q.TPS7333,TPS7348,TPS7350(fixed-voltageoptions)工Capacitorselectionisnontrivial.Seeapplicationinformationsectionfordetails.Figure2.lypicalApplicationConfiguration4.UC/0S系统移植uC/OS是一个微型的实时操作系统,包括了一个操作系统最基本的一些特性,如任务调度、任务通信、内存管理、中断管理、定时管理等。而且这是一个代码完全开放的实时操作系统,简单明了的结构和严谨的代码风

8、格,非常适合初涉嵌入式操作系统的人士学习。很多人在学习STM32中,都想亲自移植一下uC/OS,而不是总是用别人已经移植好的。在我学习uC/OS的过程中,查找了很多资料,也看过很多关于如何移植uC/OS到STM32处理器上的教程,但都不尽人意,主要是因为是时间比较赶,无法静下心开好房学习,在一个月时间内完成STM32的学习以及UIP、文件系统的移植还是比较辛苦和困难的。1首先需要从官网上下载UC/0S的源码,并且选择STM32F103ZET6,由于官方没有公布KEIL版本的工程只有IAR版本,所以需要进行一定的修改才可用于KEIL中。UC/OS的文件结构如下图所示:YourApplicatio

9、nAPP.SSection5APP_VECT.CAPP-CFG.HINSLULES.HOS_CFG.HSection2ARMCortex-M3/TargetBoardFigure1-1,Relationshipbetweenmodules.2按照下图的文件结构搭建uC/OS工程文件结构白“白.自“S-白“STARTUP匸ODE園st日rtLip_5trn王USER園main.c園stm32fl0x_it.iFWlib匡5tm32fl0x_rci想stm32fl0x_g|cggstm32fl0x_us匡misc.c閣stm32f!0x_dr固stm32fl0x_ad匡5tm32fl0x_sp園s

10、tm32fl0x_flaCMSISSS"-、.s-m-.s-.s-.E-.s-.s-.s-園蟲園園蛊園園蟲os_cfg_app.cO5_core.cos_dbg.cos_flag.cos_int.cos_mem.cO5_msg.c05mutex,c$當|os_pend_mulim-:s-:l±l-:E-:s-:l±l-:s-:l±l-m-禽:-S-I:剳O5_prio.c:打os_q.c匡os_sern.c園os_stat.c匡os_task.c盘|os_tic:k.c圉os_tirne.c園os_tmr.c園os_var.cuCXPorts園os_cp

11、ui_a.asrT園os_cpu_c.c-、uCPort5“國O5_cpu_a.asrr由適os_cpu_c.c-、.uCXUB创適lib_ascii.c由“園lib_math.c由園lib_mem.c亩“園lib_str.c-、.uCCPU田園cpu_core.c國cpu_a.asm庄“園cpu_c.cuCCfg由“園os_app_hook-、.Readme“口readme.txt 把LED工程所在的文件夹先改名为:STM32+UCOS 在USER文件夹下新建includes.h头文件。 按照之前给的uC/OS-II文件结构图,我们在工程的根目录下建立BSP文件夹、APP文件夹和uCOS-I

12、I文件夹。BSP文件夹存放外设硬件驱动程序。APP文件夹存放应用软件任务uCOS-II文件夹uC/OS-II的相关代码 把USER文件夹下的led.h和led.c文件剪切到BSP文件夹里。在BSP文件夹里新建BSPc和BSPh文件。 在APP文件夹下建立app.h、app.c和app_cfg.h文件。拷贝uC/OS-II源代码附件那里的MicriumSoftwareEvalBoardsSTSTM32F103ZE-SKIAROS-Probe-LCDos_cfg.h到此目录。 把uC/OS-II源代码附件那里的MicriumSoftwareuCOS-II下的Source文件夹复制到工程里刚才新建的

13、uCOS-II文件夹里。把MicriumSoftwareuCOS-IIPortsarm-cortex-m3Generic'IAR下的文件复制到工程uCOS-II文件夹中新建的Ports文件夹里。复制后,选中全部文件,右键一一属性去掉只读属性确定。如下图添加includepath01W血e旺嫌/0NI/BSSOM-Jap#0Nwdsogap#raw血eutlnl旺嫌/0Nulx3J.nl/rsoM-Jap#墨叢旺嫌/oNl/BI/rsofap#疑旨旺題0NUJxocfiwsoM-Jap#0NUJOV1U.SOfap#KIME氷、rafinn社Ezfzs,«血eutlnlZW8I

14、S0二.640so忌迤£I*7soCJn0M區mMtni':':l8n6w_l500mndo-CJgtnoom3nos=l5oom£od兰lsoom営lsoomd岁_L5启邛qlMd#u匚!q_IMd”工山岁5_5着E3Mlllud(DPZ3U匚-m-'Q.EOCJdn-sIn-CIquJASo!onl!nlaJoQJd(Dd+古/CJ4心Mnhilu-l-ilmd4rft4h一4釣自1u>空IbrJLUQ占比-芯5u.o4do口岳q呂一駆一蕭<>溯d-CLIH呂口Pu-M5UA5sool5ra2LJCI匸vddnqQJd匸需匚p-

15、QJdm狗>#defineOS_TMR_EN0禁用定时器#defineOS_DEBUG_EN0禁用调试b.修改os_cpuh注释掉这三行voidOS_CPU_SysTickHandler(void);voidOS_CPU_SysTickInit(void);INT32UOS_CPU_SysTickClkFreq(void);c.修改os_cpu_CC把OS_CPU_SysTickHandler(),OS_CPU_SysTickInit()及如下图的文件注释掉#definedefine#define#definedefineO5_CPU_CT!3_NVIC_5T_CTF1OSCPUCMGJ

16、'IVICSTRELOADOs2cPu2cM3_NVIC_ST_CURRENTOSCPUCM3页Ic2pRIO_ST(*(volatile(*(volatile(*(volatileINT32UJOxEOOOEOlO)INT32U*)0xE000E014)INT32U*)OxEOOOEO18)INT32UOxEOOOEOlC)f*f(volatileIWTSU*jOxEOOOED23)110x000100000x00000004OxOOOOOOOZOxOODDDOOlOxFF#defineOS_CPU_CM3_NVIC_5T_CTRL_COUWTdefine饴JTJICSTCTRLCL

17、K_SRC# defineOscPU【CII:3nVTRL_INTEN# define#defineOS_CPUCH31'IVICPR10HINd修改os_cpu_a.asm由于编译器的原因要将下面的PUBIC改为EXPORT:PUBLICOS_CPU_SR_Save;FunctionsdeclaredinthisfilePUBLICOS_CPU_SR_RestorePUB匚CossorllHighRdyPUB匚COSQXSWPUB匚COSImQXSWPUBLICOSICPUIPendsvHand-ere覇埒osldbgc#d2ineOSCOMPPEROPTroot#d2ineOSCO

18、MPPEROPT、roof覇sfStartuplstln32floxlhd.s冈甘料%詢需酣油逮恿HSttCMSIS召sQrHUPsrm32floxhd.s斋甘DI些垦令s、併弟血isMOSICPUISysTickHand-ero刮startuplstm32floxlhd.s)<F>=l=>、PendSV召回Mffl前XpendsvHand-er、冈兵汨證CE耳血圧皆pendsvHand-erssBmBoscpupendsvHand_ers凹。菱JIflinc-udes.h#ifndefINCLUDESH#defineINCLUDESH#inc-ude=stm32flox.h

19、=12粘SK>P匸<s遐迪ftms屋、GLUS缶ds>D匚SO'AOUnbLL.E2SAS)6匸uco>p匸<s)(po>七u>p匸<spo>亠>ms悬口曙qlui*、o6匸UGOOIdoQ'LUl>粘直骰芳匸Ms遐迪ftm喪悬*、o七u>p匸Ms>乏CN卜只-H-營塢张鱗區*、O七UIEZSAS)(po>七UIds8po>1Z.Spnpu=pnpw#u.dsoa即®HsLUQrrDNI、七PUQ#檢国伺凶eqlu、1:.p=pnpu_#檢国嫌史圧旺、上.ddapnpw#檢国S氷

20、ffi坚映比mwlzdsE0pnpu_#:仪水檢国塢IIso、:Dn、>lf:=lsoon=pnpu_#氷史粘直骰芳匸SAS、上.§xo<l4CNmE0pnpu_#Bsp.h#ifndefBspH#defineBspHvoidsysTicklinit(void)jvoidBSPIInit(void)j#endif、BSPH菱JIflmain.c#inc-ude=inc-udes.h=staticOSSTKsQrHUPtasksHSTARTUPTASKSTKsNEb冷kintmain(void)亠BspInitoOSInitoOSTaskcreatecrasklLEDAVO

21、id*pststartuptaskstk-STARTUPTASKSTKSIZElLSTARTUPTASKPRIO)osstartoreturno至此,UC/OS的移植已经完成,运行多任务只需在APP.C里修改即可。限于篇幅,一下不再赘述,详情请看源码。235.文件系统的移植与文件系统基本函数的功能1)SDIO配置与SD卡实现:a.SDIO接线如下图所示:b.SDIO时钟设置:4.124.124.124.124.124.12PC1Openys-PD23V3O-PC12PCS氏PC9%PD2-PC12PC8PC910Kohm10KohmR1WV1O4K12345673DATA2CD/DATA3CM

22、DVDDCLKVSSDATAODATA1TFCardSDIO_CK时钟是通过PC12引脚连接到SD卡的是SDIO接口与SD卡用于同步的时钟。SDIO选配器挂载到AHB总线上,通过HCLK二分频输入到适配器得到SDIO_CK的时钟,这时SDIO_CK=HCLK/(2+CLKDIV)。其中CLKDIV是SDIO_CLK(寄存器)中的CLKDIV位。另外,SDIO_CK也可以由SDIOCLK通过设置bypass模式直接得到这时SDIO_CK=SDIOCLK二HCLK。可以通过以下函数进行时钟配置SDIO_Init(&SDIO_InitStructure);对SD卡的操作一般是大吞吐量的数据传

23、输,所以采用DMA来提高效率,SDIO采用的是DMA2中的通道4。在数据传输的时候SDIO可向DMA发出请求。c.SDIO协议驱动声明:由于原来没有了解过SD协议,又看到SDIO的驱动有2000多行,时间紧迫,感觉无从下手。故采用ST公司官方驱动。以下简要介绍所用到的函数的功能SDIO_SendCommand(&SDIO_CmdInitStructure);/配置和发送命令SDIO通过CMD接收到响应后,硬件去除头尾的信息,把commandindex保存到SDIO_RESPCMD寄存器,把argumentfield内容保存存储到SDIO_RESPx寄存器中。这两个值可以分别通过下面的库

24、函数得到。SDIO_GetCommandResponse();/卡返回接收到的命令SDIO_GetResponse(SDIO_RESP1);卡返回的argumentfield内容SD匚的多块写人时序图Fro<ncard1ohos-lCMD-DATcommandresponsedatablockcrcblackwriteoperation.dgilafroirtocardcitokre-spantBandbusyfromtomultipleblcickwritsoperationcommandresponsedatablockcrcbusy卡datastopatipnkslopoamman

25、dslopsdata丁也门旷Figure3-4;(Multiple)BlockWriteOperationd.SDIO_Init()函数:1) 用GPIO_Configuration()进行SDIO的端口底层配置2) 分别调用了SD_PowerON()和口SD_InitializeCards()函数,这两个函数共同实现了上面提到的卡检测、识别流程。3) 调用SDIO_Init(&SDIO_InitStructure)库函数配置SDIO的时钟,数据线宽度,硬件流(在读写数据的时候,开启硬件流是和很必要的,可以减少出错)4) 调用SD_GetCardInfo(&SDCardInfo

26、)获取sd卡的CSD寄存器中的内容,在main函数里输出到串口的数据就是这个时候从卡读取得到的。5) 调用SD_SelectDeselect()选定后面即将要操作的卡。6) 调用SD_EnableWideBusOperation(SDIO_BusWide_4b)开启4bit数据线模式如果SD_Init()函数能够执行完整个流程,并且返回值是SD_OK的话则说明初始化成功,就可以开始进行擦除、读写的操作了。下面进入SD_PowerON()函数,分析完这个函数大家就能了解SDIO如何接收、发送命令了。e.SDIOIint()中使用的函数:SD_PowerON函数:确保SD卡的工作电压和配置控制时钟

27、SD_InitializeCards:初始化所有的卡或者单个卡进入就绪状态2)FATFS文件系统的移植FATFS是面向小型嵌入式系统的一种通用的FAT文件系统。FATFS完全是由AISIC语言编写并且完全独立于底层的I/O介质。因此它可以很容易地不加修改地移植到其他的处理器当中,如8051、PIC、AVR、SH、Z80、H&ARM等。FATFS支持FAT12FAT16FAT32等格式,利用前面写好的SDIO驱动,把FATFS文件系统代码移植到工程之中,就可以利用文件系统的各种函数,对已格式化的SD卡进行读写文件了。首先从官网下载FATFS源码,然后解压到工程文件中,并添加到工程中jEC

28、tQX-!SDIO-DEMO-;startupQUSERmainxFtm32flOxuwrtlxsdnrd.cdiskjo.cff.c下面对FATFS的文件做说明:integer.h:是一些数值类型定义diskio.c:底层磁盘的操作函数,函数需要用户自己实现ff.c:独立于底层介质操作文件的函数,完全由ANSIC编写CC936.C:简体中文支持所需要添加的文件,包含了简体中文的GBK和转换函数。ffconf.h:这个头文件包含了对文件系统的各种配置如需要支持简体中文要把_CODE_PAGE的宏改成936并把上面的CC936.C文件加入到工程之中移植过程中要修改的文件1、将integer.h中

29、有关BOOL的那句注释掉/BOOLassigri_drives(intargc,char*argv;/*addbyfire*/2、在ff.c文件的开头重新定义一个布尔变量,取名为bool,与stm32f10x.h中的名字一样:ypedefenumFALSE=TRUE=!FALSE:-rjool;/*addbyfire*/#includeT,s:tm32f10x.hT,/*addbyfire*/同时在ff.c的第585行做如下修改:staticFRESULTdir_nextDZRPjf/*/BOOLstreachjjoolstreac:h(/*FR_OK:SucceededjrFR_NO_Poi

30、ntertodirectoryohject/*FALSE:Donotstreachta;/*addbyfire*/文件系统移植成功!卜面介绍文件系统中的几个底层函数:a. 文件系统初始化函数接口的实现DSTATUSdisknitialize(BYTEdrv/*Physicaldrivenmuber(0.)*/)SD_ErrorStatus;/*Supportsonlysingledrive*/if(drv)returnSTA_NOINIT;/*SDInit*/Status=SD_Init();if(Status!二SD_OK)returnSTA_NOINIT;elsereturnRES_OK;

31、这个函数调用了SDIO的SD_Init()函数,返回成功或失败的参数,当文件系统调用到这个函数的时候,实际上是调用了SD_Init()对SD卡进行初始化。b. 扇区读取函数的实现:DRESULTdisk_read(BYTEdrv,/*Physicaldrivenmuber(0.)*/BYTE*buff,/*Databuffertostorereaddata*/DWORDsector,/*Sectoraddress(LBA)*/BYTEcount/*Numberofsectorstoread(1.255)*/)if(count>1)SD_ReadMultiBlocks(buff,secto

32、r*BLOCK_SIZE,BLOCK_SIZE,count);/*CheckiftheTransferisfinished*/SD_WaitReadOperation();循环查询dma传输是否结束/*WaituntilendofDMAtransfer*/while(SD_GetStatus()!=SD_TRANSFER_OK);elseSD_ReadBlock(buff,sector*BLOCK_SIZE,BLOCK_SIZE);/*CheckiftheTransferisfinished*/SD_WaitReadOperation();循环查询dma传输是否结束/*Waituntilend

33、ofDMAtransfer*/while(SD_GetStatus()!=SD_TRANSFER_OK);returnRES_OK;此函数分为了2个部分,分为单块读取和多块读取数据,因为使用SD_ReadMultiBlocks比SD_ReadBlock(速度要快所以加入了一个判断函数来区分以增加系统的效率。由于文件系统都是以块(512字节)为单位读写的所以只要提供512字节或者512*N字节的SD卡驱动即可。c. 扇区写入函数的实现:DRESULTdisk_write(BYTEdrv,/*Physicaldrivenmuber(0.)*/constBYTE*buff,/*Datatobewri

34、tten*/DWORDsector,/*Sectoraddress(LBA)*/寸zOSIJJM三己亠联坡録地平ps丽OPS期她、bo缶ll-snvmiq's丄OSEES环OQ'S)壬M联祖1遁gp期枷、ouo甩do七M七pmq's>p一ISC匸s-Q4sueJ_一R4一>PQLD*、aluzis>do8LlJZIS>DOoa-Lot;sitnq(*181US)>PO_8七MQ'S)s-亠联坡録地平ps丽OPS期她、bo缶ll-snvmiq's丄OSEES环OQ'S)壬M联祖1遁PEP第二ouo电do七M七pmq&#

35、39;s>p一ISC匸s-Q4sueJ_一R4一>PQLD*、i?unooL1JZIS>DO8LlJZIS>DOoa-Lot;sitnq(*81us)s>po_oaQ_n乏七MQ'S)(t人lunoo)七>(SSCN:<I)七m2sot;s40QqlunN*、lunooLU1A8#endif/*READONLY*/*/*/*/*MiscellaneousFunctionsDRESULTdisk_ioctl(BYTEdrv,/*Physicaldrivenmuber(0.)*/BYTEctrl,/*Controlcode*/void*buff/*

36、Buffertosend/receivecontroldata*/)returnRES_OK;扇区写入函数与扇区读取函数十分相似也是根据写入扇区的数目是一个还是多个来分别调用不同的SD数据块写入函数。d.时间接口函数DWORDget_fattime(void)return0;这个函数在本系统中意义不大,所以并未添加实际功能。到这里FATFS的移植与文件系统的基本函数介绍已经完成。下面将介绍Uip及socket实现方法.346.Uip及socket实现方法ENC28J60模块与STM32F103ZET6连接PB13:ENC28J60-INTPA6-SPI1-MISO:ENC28J60-SOPA7

37、-SPI1-MOSI:ENC28J60-SIPA5-SPI1-SCK:ENC28J60-SCKPA4-SPI1-NSS:ENC28J60-CSPE1:ENC28J60-RSTENC28J60模块电路图:3V3Qj|iHt4PE44.67,8,9PA64.67.8,9PA74,5,67,8.9PA54g9PA44,7PE1IPE4*<PA4P朋*PA7OohmR21思&而i-vvvPE10TTR22心英miFR23常TPIZ+VCAiPVDDvssLEDACLKOUTLEDBINTVDDOSCINCOSC2SOOSC1SilVSSOSCSCKVSSPLLGSVDDIPLLRESET

38、VDDRXVSSRXVSSTXTPUN-TPOUT+TPHN+TPOUTRBIASVDDTXU13EING2&J6012S'互7282726252423I?T§11877更R尹也"LEDAR两押jKohmLEDBO3V3zzOSC2OSC1-HD3V3l,TPOur+R32TPOUT-R33_O3V3册戶ohmAAArC2701)1uFR242K4ohmi01uF20pFD18ENC28J60简介ENC28J60是带有行业标准串行外设接口(SerialPeripheralInterface,SPI)的独立以太网控制器。它可作为任何配备有SPI的控制器的以太网

39、接口。ENC28J60符合IEEE802.3的全部规范,采用了一系列包过滤机制以对传入数据包进行限制。它还提供了一个内部DMA模块,以实现快速数据吞吐和硬件支持的IP校验和计算。与主控制器的通信通过两个中断引脚和SPI实现,数据传输速率高达10Mb/s。两个专用的引脚用于连接LED,进行网络活动状态指示。ENC28J60由七个主要功能模块组成:1. SPI接口一一充当主控制器和ENC28J60之间通信通道。2. 控制寄存一一用于控制和监视ENC28J60。3. 双端口RAM缓冲一用于接收和发送数据包。4. 判优一一当DMA、发送和接收模块发出请求时对RAM缓冲器的访问进行控制。5. 总线接口一

温馨提示

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

评论

0/150

提交评论