《嵌入式应用系统设计》课程论文-基于ARM的音频接口设计_第1页
《嵌入式应用系统设计》课程论文-基于ARM的音频接口设计_第2页
《嵌入式应用系统设计》课程论文-基于ARM的音频接口设计_第3页
《嵌入式应用系统设计》课程论文-基于ARM的音频接口设计_第4页
《嵌入式应用系统设计》课程论文-基于ARM的音频接口设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、学号 成绩 嵌入式应用系统设计课程论文 题目 基于ARM的音频接口设计 作 者 HZW 班 级 电信1BF 院 别 信息与通信工程 专 业 电子信息工程 完成时间 2011年12月15日 目 录1. 概述1.1嵌入式系统的技术背景.11.2潜入式系统的应用.12. 系统的硬件设计2.1系统设计方案.22.2S3C2410的IIS模块.32.3音频芯片UD1314.53. 系统的软件设计3.1软件的整体设计.63.2WAV文件格式.103.3初始化UDA1314模块.123.4录音模块.153.5放音模块.171 概述1.1 嵌入式系统的技术背景 嵌入式系统即指以应用为核心、以计算机技术为基础、

2、软硬件可裁减, 适应应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。目前嵌入式系统己经广泛应用于工业控制、Internet网络、移动通讯设备、成像和安全产品等各种领域。ARM微处理器在各方面的优异表现使得自己己成为微处理器的主流芯片。ARM920T是目前使用最广泛的位嵌入式川处理器, 属于低端处理器核。1.2系统的应用 1 信息家电:这将称为嵌入式系统最大的应用领域,冰箱、空调等的网络化、智能化将引领人们的生活步入一个崭新的空间。即使你不在家里,也可以通过电话线、网络进行远程控制。在这些设备中,嵌入式系统将大有用武之地。 2 交通管理:在车辆导航、流量控制、信息监测与汽车服务

3、方面,嵌入式系统技术已经获得了广泛的应用,内嵌GPS模块,GSM模块的移动定位终端已经在各种运输行业获得了成功的使用。目前GPS设备已经从尖端产品进入了普通百姓的家庭,只需要几千元,就可以随时随地找到你的位置。 3 工业控制:基于嵌入式芯片的工业自动化设备将获得长足的发展,目前已经有大量的8、16、32 位嵌入式微控制器在应用中,网络化是提高生产效率和产品质量、减少人力资源主要途径,如工业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统。就传统的工业控制产品而言,低端型采用的往往是8位单片机。但是随着技术的发展,32位、64位的处理器逐渐成为工业控制设备的核心,在未来几年内必

4、将获得长足的发展。 4 家庭智能管理系统:水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌有的专用控制芯片将代替传统的人工检查,并实现更高,更准确和更安全的性能。目前在服务领域,如远程点菜器等已经体现了嵌入式系统的优势。 5 POS网络及电子商务:公共交通无接触智能卡(Contactless Smartcard, CSC)发行系统,公共电话卡发行系统,自动售货机,各种智能ATM终端将全面走入人们的生活,到时手持一卡就可以行遍天下。 6 环境工程与自然:水文资料实时监测,防洪体系及水土质量监测、堤坝安全,地震监测网,实时气象信息网,水源和空气污染监测。在很多环境恶劣,地况复杂的地区,嵌入

5、式系统将实现无人监测。 7 机器人:嵌入式芯片的发展将使机器人在微型化,高智能方面优势更加明显,同时会大幅度降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。 这些应用中,可以着重于在控制方面的应用。就远程家电控制而言,除了开发出支持TCP/IP的嵌入式系统之外,家电产品控制协议也需要制订和统一,这需要家电生产厂家来做。同样的道理,所有基于网络的远程控制器件都需要与嵌入式系统之间实现接口,然后再由嵌入式系统来控制并通过网络实现控制。所以,开发和探讨嵌入式系统有着十分重要的意义。2 系统的硬件设计2.1系统设计方案 由于IIS总线只处理音频数据,而其他的信号如编码、控制等信号单独传送。

6、为了使必需的引脚数最小并且保持连线简单,IIS总线由3条信号线组成:时分复用的数据通道线、字段选择线和时钟信号线。本系统由系统主控制器提供时钟信号,控制数字音频数据在各个IC之间的流向。此时,发送器在外部时钟信号的控制下产生数据,处于从模式。本设计硬件连接图比较简单,如图1所示。图中的处理器采用了AT91RM9200处理器,其内置IIS音频总线,内置的IIS接口能读取IIS总线上的数据,并由UDA1341TS芯片外扩,通过总线和系统连接,需要处理器提供系统时钟和3根控制线。微处理器 AT91RM9200扬声器语音处理芯片UDA1341TS麦克风图1 硬件设计简图AT91RM9200的IIS控制

7、器由5个引脚与外部的音频编解码器相连。这些引脚分别是:系统时钟;位速率时钟(可使用内部或外部时钟源);字段选择;串行声音输入;串行声音输出。本设计中,UDA1341TS使用的是L3接口 ,该接口用来控制音频信号的音量大小以及低音等。L3接口有3个信号:L3MODE,L3CLK,L3DATA,将字节写入 L3总线寄存器。IIS总线控制器通过软件控制AT91RM9200的通用I/O引脚(笔者选用的是PA0、PA1、PA2三个通用I/O口)来支持L3接口。下图是本嵌入式音频系统的硬件电路连接图,见图2。音频输入SYSCLK BINL2BCK VINR2WSDATAOVOUTRDATAI VOUTLL

8、3MODEL3CLOCKL3DATATCLK3TD0TK0RD0PA0PA1PA2音频输出图2.硬件电路连接图2.2 S3C2410的IIS模块n S3C2410的IIS总线简介IIS总线是近年出现的一种面向多媒体计算机的音频总线,该总线专责于音频设备之间的数据传输,为数字立体声提供一个序列连接至标准编码解码器。S3C2410的IIS总线接口可以用实现对外部8/16位立体声音频数字信号编码解码电路的接口功能。它支持IIS总线数据格式和MSB-justified数据格式。IIS总线接口为FIFO操作提供DMA传输模式,代替中断模式,它可以同时传送或接收数据。IIS模块特性: 兼容IIS,MSB-

9、justified格式数据 每通道8/16位数据 每通道16,32,48fs(采样频率)串行时钟 可编程的分频器提供给主设备时钟和编解码时钟 供给发送和接收用的32字节(2X16)的FIFO正常(Normal)传输模式和DMA传输模式下面为IIS模块框图:n 传输模式传输模式分为正常(Normal)传输模式和DMA传输模式1).正常模式IIS控制寄存器中有一个FIFO准备好标志位(ready flag bits)用于FIFO发送和接收。当FIFO准备好发送数据,如果发送FIFO中不为空,FIFO准备好标志将被设置为1。如果发送FIFO为空,FIFO准备好标志被置0,当接收FIFO满,接收FIF

10、O准备好标志被设置为0,这些标志可以决定CPU读写FIFO的时间。串行数据就通过这种方式被发送或接收的。2).DMA传说模式在这个模式中,IIS的发送和接收FIFO操作都由DMA控制器完成,在发送和接收模式中有FIFO准备好标志来自动产生DMA服务请求。n 音频串行接口格式1).IIS总线格式IIS总线具有4根信号线,包括串行数据输入(IISDI),串行数据输出(IISDO),左/右声道选择(IISLRCK)和串行数据时钟(IISCLK);产生IISLRCK和IISCLK的是主设备。 串行数据总是以偶数个数据(为奇数时填充)且高位在先(MSB)发送。高位在先是因为发送器和接收器可能具有不同的字

11、长,发送器没有必要了解接收器能够处理多少为数据,接收器也不需了解多少位的数据正在被发送。 被发送器发出的串行数据可以依据始终信号的下降沿或者上升沿来同步。但是,串行数据必须在上升沿处锁入接收器。左右声道选择线决定被传输的通道。IISLRCK可以在下降沿或者上升沿处改变。它不要求是均匀的。在从设备端,这个信号在上升沿处被锁定。IISLRCK信号线改变到MSB发送之间有一个时钟周期的时间。2).Msb-Justified格式MSB-Justified格式与IIS格式有相同的信号线,唯一的不同是,IISLRCK信号线改变后,MSB立即发送,期间没有一个时钟周期的时间。n IIS采集频率和主设备时钟I

12、IS主设备时钟频率可以通过采样频率来选择,如下表一所示。因为IIS主设备时钟频率是由IIS分频器产生的(主设备时钟频率=PCLK/预分频器值),因此必须选择合适的预分频值和CODECLK的采样频率类型(256或者384fs),才能获得合适的IISLRCK频率(IISLRCK频率=主设备时钟频率/CODECLK)。串行位采样频率类型(16/32/48fs)可以通过配置信道的串行位数和CODECLK采样频率类型来完成(串行位时钟频率类型=CODECLK的采样类型/串行数据位数),如下表2所示。表一 CODEC clock(CODECLK=256 或者384fs)表二 可用的serial bit c

13、lock frequency(IISCLK=16 or 32 or 48fs)2.3 音频芯片UDA1341 UDA1341TS是Philips公司的音频CODEC。UDA134TS片内集成了立体声ADC、DAC,可以实现模拟信号和数字信号的相互转换,其模拟输入通道可用可编程增益放大器(PGA)和数字自动增益控制(AGC)对模拟信号进行处理。同时该芯片提供了DSP,可以处理数字音频信号。 UDA134TS提供2组音频信号输入线,1组音频信号输出线,1组IIS总线接口信号线L3总线。音频输入和输出线各有左右两个声道。IIS总线接口信号线包括位时钟输入BCK,字选择输入WS,数据输入DATAI,数

14、据输出DATAO和音频系统时钟SYSCLK信号线。IIS总线只处理音频数据UDA134TS内置的L3总线相当于混音频控制接口,可使微处理器对UDA134TS中得数字音频处理参数和系统控制参数进行配置,如输入/输出音频信号的音量存在很大差别;对UDA134TS的所有功能控制和状态均通过L3总线实现。该接口包含了3个信号线,分别是串行数据线L3DATA、接口模式选择线L3MODE和串行时钟线L3CLOCK。L3接口操作有两种模式:地址模式和数据传输模式。L3MODE为低电平时操作为地址模式,高电平时操作为数据传输模式。3 系统的软件设计3.1 软件整体设计 嵌入式 Linux是一种完全开放且免费的

15、操作系统,其支持多种硬件体系结构,运行稳定 ,拥有完善的开发工具,为开发人员提供了优良的开发环境5。在嵌入式 Linux系统中,设备驱动程序提供了应用程序和实际设备之间的一个软件层(接口),为应用程序屏蔽了硬件细节。本设计中,音频设备驱动程序主要通过对硬件的控制实现音频流的传输,同时向上层提供标准的音频接口。整个音频驱动程序包括设备初始化、打开设备、数字音频处理(DSP)驱动、混频器(MIXER)驱动和释放设备等部分。本文由于篇幅的限制,仅介绍设备初始化及打开设备的实现。设备初始化是整个音频驱动程序的开始部分,主要完成对UDA1341TS音量、采样频率、L3接口等的初始化,并且注册设备。通过函

16、数audio_init(void)完成以下具体功能: AT91RM9200控制端口(PA0、PA1、PA2)的初始化;为UDA1341TS分配 DMA通道;初始化UDA1341TS芯片;注册音频audio设备和混频器设备。3.2 WAV文件格式WAV声音格式文件是Windows环境下的一种常用音频文件格式,它遵循着一种称为资源互换文件格式(Resources lnterchange File Format)的结构,简称RIFF。RIFF可以看作是一种树状结构,其基本构成单位为chunk,犹如树状结构中的节点,每个chunk由辨别码、数据大小及数据所组成。WAV为WAVEFORM的缩写。RIFF

17、格式辨别码为WAVE。整个文件由两个chunk所组成:辨别码fmt及data。 在“fmt”的chunk下包含了一个PCMWAVEFORMAT数据结构,在“fmt” chunk之后是原始声音的采样数据,这些数据是可以直接送到IIS总线的数字音频信号。典型的WAV文件结构:它包含8字节RIFF头、4字节数据类型“WAVE”、fmt chunk(共0x18字节)和 data chunk。因此,WAV文件中从下式中的sizeoff开始的四个字节表示声音数据的大小,dataoff开始的位置为具体的声音数据。sizeoff = 0x8+0x4+0x18+0x4=0x28dataoff = 0x8+0x4

18、+0x18+0x8=0x2C3.3 初始化UDA1341模块1.初始化UDA1314模块流程图如下:开始端口初始化地址选择AD和DA增益控制选择模式录音2.1314初始化程序代码如下:static void Init1341(char mode)U16 FsIdx;/Port Initialize/-/ PORT B GROUP/Ports : GPB4 GPB3 GPB2 /Signal : L3CLOCK L3DATA L3MODE/Setting: OUTPUT OUTPUT OUTPUT / 9:8 7:6 5:4/Binary : 01 , 01 01 /- rGPBDAT = rG

19、PBDAT & (L3M|L3C|L3D) |(L3M|L3C); /Start condition : L3M=H, L3C=HrGPBUP = rGPBUP & (0x72) |(0x72); /The pull up function is disabled GPB4:2 1 1100 rGPBCON = rGPBCON & (0x3f4) |(0x15lpData, lpRecCurBlk-dwBufferLength/2);static void _irq RecDMADone(void)if(RecStatus.DevReq&0xff)=0x12) ClearPending(BIT

20、_DMA1); /Clear pending bitif(RecStatus.DevReq&0xff)=0x21)ClearPending(BIT_DMA2); lpRecCurBlk-dwBytesRecorded = lpRecCurBlk-dwBufferLength; if(lpRecCurBlk-lpNext)lpRecCurBlk = lpRecCurBlk-lpNext; else lpRecCurBlk = lpRecFstBlk; SetRecDma();MMRESULT waveInOpen(LPHWAVEIN phwi,UINT uDeviceID,LPWAVEFORMA

21、TEX pwfx,DWORD dwCallback,DWORD dwCallbackInstance,DWORD fdwOpen)U8 i;U8 err = 0;if(pwfx-wFormatTag!=WAVE_FORMAT_PCM)/only support PCMerr = 1;if(pwfx-nChannels!=2)/must be steroerr = 2;if(pwfx-wBitsPerSample%8)/8 or 16 bitserr = 3;for(i=0; inSamplesPerSec=CodecParai.Freq)break;if(i=7)err = 4;if(pwfx

22、-nChannels*pwfx-wBitsPerSample)/8!=pwfx-nBlockAlign)err = 5;if(pwfx-nAvgBytesPerSec!=pwfx-nSamplesPerSec*pwfx-nBlockAlign)err = 6;if(err)/printf(check err = %dn, err);return WAVERR_BADFORMAT;/check format parametersif(RecStatus.Status!=DEVICE_FREE)return MMSYSERR_BADDEVICEID;RecStatus.DevReq = Reque

23、stDMA(REC_DMA_ATTR, REC_DMA_MODE);if(RecStatus.DevReq=REQUEST_DMA_FAIL)return MMSYSERR_BADDEVICEID;RecStatus.handle =*phwi; RecStatus.wFormatTag = pwfx-wFormatTag;RecStatus.nChannels = pwfx-nChannels;RecStatus.wBitsPerSample = pwfx-wBitsPerSample;RecStatus.FsIdx = i;RecStatus.CallBack = (CallBackPro

24、c)dwCallback;RecStatus.CallBackInst = dwCallbackInstance;RecStatus.Status = DEVICE_REC;save_MPLLCON = rMPLLCON;/save MPLLCON value/rMPLLCON = CodecParaRecStatus.FsIdx.MPLL;/SetSysFclk(CodecParaRecStatus.FsIdx.MPLL);ChgSysClock(CodecParaRecStatus.FsIdx.MPLL);rCLKCON |= 0x20000;/enable IIS clockIIS_Po

25、rtSetting();if(RecStatus.DevReq&0xff)=0x12)pISR_DMA1 = (U32)RecDMADone;EnableIrq(BIT_DMA1);if(RecStatus.DevReq&0xff)=0x21) pISR_DMA2 = (U32)RecDMADone;EnableIrq(BIT_DMA2);RecTotBlks = 0;Init1341(RECORD);return MMSYSERR_NOERROR;MMRESULT waveInClose(HWAVEOUT hwi)if(RecStatus.handle!=hwi)|(RecStatus.St

26、atus!=DEVICE_REC)return MMSYSERR_INVALHANDLE;rIISCON = 0x0;/IIS Interface stop rIISFCON = 0x0; /For FIFO flush rCLKCON&= 0x20000;/disable IIS colock /rMPLLCON = save_MPLLCON;/restore MPLLCON value/SetSysFclk(save_MPLLCON);ChgSysClock(save_MPLLCON); RecStatus.Status = DEVICE_FREE; ReleaseDMA(RecStatu

27、s.DevReq);if(RecStatus.DevReq&0xff)=0x12)DisableIrq(BIT_DMA1);if(RecStatus.DevReq&0xff)=0x21)DisableIrq(BIT_DMA2);return MMSYSERR_NOERROR;MMRESULT waveInStart(HWAVEIN hwi)if(RecStatus.handle!=hwi)|(RecStatus.Status!=DEVICE_REC)return MMSYSERR_INVALHANDLE;if(!RecTotBlks)return MMSYSERR_NOMEM;SetRecDm

28、a();rIISPSR = CodecParaRecStatus.FsIdx.PreScaler;rIISCON = (05)+(14)+(13)+(02)+(11);/Tx DMA disable,Rx DMA enable,Tx idle,Rx not idle,prescaler enable,stoprIISMOD = (08)+(16)+(05)+(14)3)+(CodecParaRecStatus.FsIdx.ofs2)+(10);/Master mode8,Rx mode7:6,Low for Left Channel5,IIS format4,16/8bit 3,256/384

29、fs 2,IISCLK 32fs1:0 rIISFCON = (114)+(1 start piling. rIISCON |= 0x1; /start IIS return MMSYSERR_NOERROR;MMRESULT waveInStop(HWAVEIN hwi)if(RecStatus.handle!=hwi)|(RecStatus.Status!=DEVICE_REC)return MMSYSERR_INVALHANDLE;rIISCON = 0x0;/IIS Interface stop rIISFCON = 0x0; /For FIFO flush StopDMA(RecSt

30、atus.DevReq); return MMSYSERR_NOERROR;MMRESULT waveInPrepareHeader(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh)if(RecStatus.handle!=hwi)|(RecStatus.Status!=DEVICE_REC)return MMSYSERR_INVALHANDLE;pwh-lpNext = 0;pwh-dwBytesRecorded = 0;pwh-dwUser = 0;pwh-dwFlags = 0;return MMSYSERR_NOERROR;MMRESULT waveInUn

31、prepareHeader(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh)if(RecStatus.handle!=hwi)|(RecStatus.Status!=DEVICE_REC)return MMSYSERR_INVALHANDLE;return MMSYSERR_NOERROR;MMRESULT waveInAddBuffer(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh)if(RecStatus.handle!=hwi)|(RecStatus.Status!=DEVICE_REC)return MMSYSERR_INVAL

32、HANDLE;if(!RecTotBlks)lpRecFstBlk = pwh;lpRecCurBlk = lpRecFstBlk;elselpRecLstBlk-lpNext = pwh;lpRecLstBlk = pwh;pwh-lpNext = 0;RecTotBlks+;return MMSYSERR_NOERROR;MMRESULT waveInReset(HWAVEOUT hwi)return MMSYSERR_NOERROR;3.5 放音模块1.放音模块程序流程图如下:图 放音模块程序流程图2.放音模块程序代码: MMRESULT waveOutOpen(LPHWAVEOUT p

33、hwo,UINT uDeviceID,LPWAVEFORMATEX pwfx,DWORD dwCallback,DWORD dwCallbackInstance,DWORD fdwOpen)U8 i;U8 err = 0;if(pwfx-wFormatTag!=WAVE_FORMAT_PCM)/only support PCMerr = 1;if(pwfx-nChannels!=2)/must be steroerr = 1;if(pwfx-wBitsPerSample%8)/8 or 16 bitserr = 1;for(i=0; inSamplesPerSec=CodecParai.Fre

34、q)break;if(i=7)err = 1;if(pwfx-nChannels*pwfx-wBitsPerSample)/8!=pwfx-nBlockAlign)err = 1;if(pwfx-nAvgBytesPerSec!=pwfx-nSamplesPerSec*pwfx-nBlockAlign)err = 1;if(err)return WAVERR_BADFORMAT;/check format parametersif(PlayStatus.Status!=DEVICE_FREE)return MMSYSERR_BADDEVICEID;PlayStatus.DevReq = Req

35、uestDMA(PLAY_DMA_ATTR, PLAY_DMA_MODE);if(PlayStatus.DevReq=REQUEST_DMA_FAIL)return MMSYSERR_BADDEVICEID;PlayStatus.handle =*phwo; PlayStatus.wFormatTag = pwfx-wFormatTag;PlayStatus.nChannels = pwfx-nChannels;PlayStatus.wBitsPerSample = pwfx-wBitsPerSample;PlayStatus.FsIdx = i;PlayStatus.CallBack = (

36、CallBackProc)dwCallback;PlayStatus.CallBackInst = dwCallbackInstance;PlayStatus.Status = DEVICE_PLAY;save_MPLLCON = rMPLLCON;/save MPLLCON value/rMPLLCON = CodecParaPlayStatus.FsIdx.MPLL;/SetSysFclk(CodecParaPlayStatus.FsIdx.MPLL);ChgSysClock(CodecParaRecStatus.FsIdx.MPLL);rCLKCON |= 0x20000;/enable

37、 IIS clock/ChangeClockDivider(1,1); /1:2:4/ChangeMPllValue(0x96,0x5,0x1); /FCLK=135.MHz (PCLK=33.MHz) /Uart_Init(,); IIS_PortSetting(); pISR_DMA2 = (U32)PlayDMA2Done; EnableIrq(BIT_DMA2);PlayTotBlks = 0;Init1341(PLAY);waveOutSetVolume(PlayStatus.handle, PlayVolume);return MMSYSERR_NOERROR;MMRESULT w

38、aveOutClose(HWAVEOUT hwo)if(PlayStatus.handle!=hwo)|(PlayStatus.Status!=DEVICE_PLAY)return MMSYSERR_INVALHANDLE;rIISCON = 0x0;/IIS Interface stop rIISFCON = 0x0; /For FIFO flush rCLKCON&= 0x20000;/disable IIS colock /rMPLLCON = save_MPLLCON;/restore MPLLCON value/SetSysFclk(save_MPLLCON);ChgSysClock

39、(save_MPLLCON); PlayStatus.Status = DEVICE_FREE; ReleaseDMA(PlayStatus.DevReq);DisableIrq(BIT_DMA2);return MMSYSERR_NOERROR;MMRESULT waveOutPrepareHeader(HWAVEOUT hwo,LPWAVEHDR pwh, UINT cbwh)if(PlayStatus.handle!=hwo)|(PlayStatus.Status!=DEVICE_PLAY)return MMSYSERR_INVALHANDLE;pwh-lpNext = 0;pwh-dw

40、BytesRecorded = 0;pwh-dwUser = 0;pwh-dwFlags = 0;return MMSYSERR_NOERROR;MMRESULT waveOutUnprepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh)if(PlayStatus.handle!=hwo)|(PlayStatus.Status!=DEVICE_PLAY)return MMSYSERR_INVALHANDLE;return MMSYSERR_NOERROR;MMRESULT waveOutWrite(HWAVEOUT hwo,LPWAVEHDR pwh, UINT cbwh)if(PlayStatus.handle!=hwo)|(PlayStatus.Status!=DEVICE_PLAY)return MMSYSERR_INVALHANDLE;if(!PlayTotBlks)lpPlayFstBlk = pwh;lpPlayCurBlk = lpPlayFstBlk;StartPlay();elselpPlayLstBlk-lpNext = pwh;lpPlayLstBlk = pwh;pwh-lpNext = 0;PlayTotBlks+;return MMSYSERR_NOERRO

温馨提示

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

评论

0/150

提交评论