基于ARM的音频接口设计_第1页
基于ARM的音频接口设计_第2页
基于ARM的音频接口设计_第3页
基于ARM的音频接口设计_第4页
基于ARM的音频接口设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

学号成绩嵌入式应用系统设计课程论文题目基于ARM的音频接口设计作者HZW班级电信1BF院别信息与通信工程专业电子信息工程完成时间2011年12月15日目录1概述11嵌入式系统的技术背景112潜入式系统的应用12系统的硬件设计21系统设计方案222S3C2410的IIS模块323音频芯片UD131453系统的软件设计31软件的整体设计632WAV文件格式1033初始化UDA1314模块1234录音模块1535放音模块171概述11嵌入式系统的技术背景嵌入式系统即指以应用为核心、以计算机技术为基础、软硬件可裁减,适应应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。目前嵌入式系统己经广泛应用于工业控制、INTERNET网络、移动通讯设备、成像和安全产品等各种领域。ARM微处理器在各方面的优异表现使得自己己成为微处理器的主流芯片。ARM920T是目前使用最广泛的位嵌入式川处理器,属于低端处理器核。12系统的应用1信息家电这将称为嵌入式系统最大的应用领域,冰箱、空调等的网络化、智能化将引领人们的生活步入一个崭新的空间。即使你不在家里,也可以通过电话线、网络进行远程控制。在这些设备中,嵌入式系统将大有用武之地。2交通管理在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术已经获得了广泛的应用,内嵌GPS模块,GSM模块的移动定位终端已经在各种运输行业获得了成功的使用。目前GPS设备已经从尖端产品进入了普通百姓的家庭,只需要几千元,就可以随时随地找到你的位置。3工业控制基于嵌入式芯片的工业自动化设备将获得长足的发展,目前已经有大量的8、16、32位嵌入式微控制器在应用中,网络化是提高生产效率和产品质量、减少人力资源主要途径,如工业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统。就传统的工业控制产品而言,低端型采用的往往是8位单片机。但是随着技术的发展,32位、64位的处理器逐渐成为工业控制设备的核心,在未来几年内必将获得长足的发展。4家庭智能管理系统水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌有的专用控制芯片将代替传统的人工检查,并实现更高,更准确和更安全的性能。目前在服务领域,如远程点菜器等已经体现了嵌入式系统的优势。5POS网络及电子商务公共交通无接触智能卡CONTACTLESSSMARTCARD,CSC发行系统,公共电话卡发行系统,自动售货机,各种智能ATM终端将全面走入人们的生活,到时手持一卡就可以行遍天下。6环境工程与自然水文资料实时监测,防洪体系及水土质量监测、堤坝安全,地震监测网,实时气象信息网,水源和空气污染监测。在很多环境恶劣,地况复杂的地区,嵌入式系统将实现无人监测。7机器人嵌入式芯片的发展将使机器人在微型化,高智能方面优势更加明显,同时会大幅度降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。这些应用中,可以着重于在控制方面的应用。就远程家电控制而言,除了开发出支持TCP/IP的嵌入式系统之外,家电产品控制协议也需要制订和统一,这需要家电生产厂家来做。同样的道理,所有基于网络的远程控制器件都需要与嵌入式系统之间实现接口,然后再由嵌入式系统来控制并通过网络实现控制。所以,开发和探讨嵌入式系统有着十分重要的意义。2系统的硬件设计21系统设计方案由于IIS总线只处理音频数据,而其他的信号如编码、控制等信号单独传送。为了使必需的引脚数最小并且保持连线简单,IIS总线由3条信号线组成时分复用的数据通道线、字段选择线和时钟信号线。本系统由系统主控制器提供时钟信号,控制数字音频数据在各个IC之间的流向。此时,发送器在外部时钟信号的控制下产生数据,处于从模式。本设计硬件连接图比较简单,如图1所示。图中的处理器采用了AT91RM9200处理器,其内置IIS音频总线,内置的IIS接口能读取IIS总线上的数据,并由UDA1341TS芯片外扩,通过总线和系统连接,需要处理器提供系统时钟和3根控制线。图1硬件设计简图AT91RM9200的IIS控制器由5个引脚与外部的音频编解码器相连。这些引脚分别是系统时钟位速率时钟可使用内部或外部时钟源字段选择串行声音输入串行声音输出。本设计中,UDA1341TS使用的是L3接口,该接口用来控制音频信号的音量大小以及低音等。L3接口有3个信号L3MODE,L3CLK,L3DATA,将字节写入L3总线寄存器。IIS总线控制器通过软件控制AT91RM9200的通用I/O引脚笔者选用的是PA0、PA1、PA2三个通用I/O口来支持L3接口。下图是本嵌入式音频系统的硬件电路连接图,见图2。图2硬件电路连接图扬声器麦克风语音处理芯片UDA1341TS微处理器AT91RM9200TCLK3TD0TK0RD0PA0PA1PA2SYSCLKBINL2BCKVINR2WSDATAOVOUTRDATAIVOUTLL3MODEL3CLOCKL3DATA音频输入音频输出22S3C2410的IIS模块S3C2410的IIS总线简介IIS总线是近年出现的一种面向多媒体计算机的音频总线,该总线专责于音频设备之间的数据传输,为数字立体声提供一个序列连接至标准编码解码器。S3C2410的IIS总线接口可以用实现对外部8/16位立体声音频数字信号编码解码电路的接口功能。它支持IIS总线数据格式和MSBJUSTIFIED数据格式。IIS总线接口为FIFO操作提供DMA传输模式,代替中断模式,它可以同时传送或接收数据。IIS模块特性兼容IIS,MSBJUSTIFIED格式数据每通道8/16位数据每通道16,32,48FS(采样频率)串行时钟可编程的分频器提供给主设备时钟和编解码时钟供给发送和接收用的32字节(2X16)的FIFO正常(NORMAL)传输模式和DMA传输模式下面为IIS模块框图传输模式传输模式分为正常(NORMAL传输模式和DMA传输模式1正常模式IIS控制寄存器中有一个FIFO准备好标志位(READYFLAGBITS用于FIFO发送和接收。当FIFO准备好发送数据,如果发送FIFO中不为空,FIFO准备好标志将被设置为1。如果发送FIFO为空,FIFO准备好标志被置0,当接收FIFO满,接收FIFO准备好标志被设置为0,这些标志可以决定CPU读写FIFO的时间。串行数据就通过这种方式被发送或接收的。2DMA传说模式在这个模式中,IIS的发送和接收FIFO操作都由DMA控制器完成,在发送和接收模式中有FIFO准备好标志来自动产生DMA服务请求。音频串行接口格式1IIS总线格式IIS总线具有4根信号线,包括串行数据输入(IISDI),串行数据输出(IISDO),左/右声道选择(IISLRCK)和串行数据时钟(IISCLK);产生IISLRCK和IISCLK的是主设备。串行数据总是以偶数个数据(为奇数时填充)且高位在先(MSB)发送。高位在先是因为发送器和接收器可能具有不同的字长,发送器没有必要了解接收器能够处理多少为数据,接收器也不需了解多少位的数据正在被发送。被发送器发出的串行数据可以依据始终信号的下降沿或者上升沿来同步。但是,串行数据必须在上升沿处锁入接收器。左右声道选择线决定被传输的通道。IISLRCK可以在下降沿或者上升沿处改变。它不要求是均匀的。在从设备端,这个信号在上升沿处被锁定。IISLRCK信号线改变到MSB发送之间有一个时钟周期的时间。2MSBJUSTIFIED格式MSBJUSTIFIED格式与IIS格式有相同的信号线,唯一的不同是,IISLRCK信号线改变后,MSB立即发送,期间没有一个时钟周期的时间。IIS采集频率和主设备时钟IIS主设备时钟频率可以通过采样频率来选择,如下表一所示。因为IIS主设备时钟频率是由IIS分频器产生的(主设备时钟频率PCLK/预分频器值),因此必须选择合适的预分频值和CODECLK的采样频率类型(256或者384FS,才能获得合适的IISLRCK频率(IISLRCK频率主设备时钟频率/CODECLK)。串行位采样频率类型(16/32/48FS可以通过配置信道的串行位数和CODECLK采样频率类型来完成(串行位时钟频率类型CODECLK的采样类型/串行数据位数),如下表2所示。表一CODECCLOCKCODECLK256或者384FS表二可用的SERIALBITCLOCKFREQUENCY(IISCLK16OR32OR48FS)23音频芯片UDA1341UDA1341TS是PHILIPS公司的音频CODEC。UDA134TS片内集成了立体声ADC、DAC,可以实现模拟信号和数字信号的相互转换,其模拟输入通道可用可编程增益放大器(PGA)和数字自动增益控制(AGC)对模拟信号进行处理。同时该芯片提供了DSP,可以处理数字音频信号。UDA134TS提供2组音频信号输入线,1组音频信号输出线,1组IIS总线接口信号线L3总线。音频输入和输出线各有左右两个声道。IIS总线接口信号线包括位时钟输入BCK,字选择输入WS,数据输入DATAI,数据输出DATAO和音频系统时钟SYSCLK信号线。IIS总线只处理音频数据UDA134TS内置的L3总线相当于混音频控制接口,可使微处理器对UDA134TS中得数字音频处理参数和系统控制参数进行配置,如输入/输出音频信号的音量存在很大差别;对UDA134TS的所有功能控制和状态均通过L3总线实现。该接口包含了3个信号线,分别是串行数据线L3DATA、接口模式选择线L3MODE和串行时钟线L3CLOCK。L3接口操作有两种模式地址模式和数据传输模式。L3MODE为低电平时操作为地址模式,高电平时操作为数据传输模式。3系统的软件设计31软件整体设计嵌入式LINUX是一种完全开放且免费的操作系统,其支持多种硬件体系结构,运行稳定,拥有完善的开发工具,为开发人员提供了优良的开发环境5。在嵌入式LINUX系统中,设备驱动程序提供了应用程序和实际设备之间的一个软件层接口,为应用程序屏蔽了硬件细节。本设计中,音频设备驱动程序主要通过对硬件的控制实现音频流的传输,同时向上层提供标准的音频接口。整个音频驱动程序包括设备初始化、打开设备、数字音频处理DSP驱动、混频器MIXER驱动和释放设备等部分。本文由于篇幅的限制,仅介绍设备初始化及打开设备的实现。设备初始化是整个音频驱动程序的开始部分,主要完成对UDA1341TS音量、采样频率、L3接口等的初始化,并且注册设备。通过函数AUDIO_INITVOID完成以下具体功能AT91RM9200控制端口PA0、PA1、PA2的初始化为UDA1341TS分配DMA通道初始化UDA1341TS芯片注册音频AUDIO设备和混频器设备。32WAV文件格式WAV声音格式文件是WINDOWS环境下的一种常用音频文件格式,它遵循着一种称为“资源互换文件格式“RESOURCESLNTERCHANGEFILEFORMAT的结构,简称RIFF。RIFF可以看作是一种树状结构,其基本构成单位为CHUNK,犹如树状结构中的节点,每个CHUNK由“辨别码“、“数据大小“及“数据“所组成。WAV为WAVEFORM的缩写。“RIFF“格式辨别码为“WAVE“。整个文件由两个CHUNK所组成辨别码“FMT“及“DATA“。在“FMT”的CHUNK下包含了一个PCMWAVEFORMAT数据结构,在“FMT”CHUNK之后是原始声音的采样数据,这些数据是可以直接送到IIS总线的数字音频信号。典型的WAV文件结构它包含8字节RIFF头、4字节数据类型“WAVE”、“FMT“CHUNK(共0X18字节)和“DATA“CHUNK。因此,WAV文件中从下式中的SIZEOFF开始的四个字节表示声音数据的大小,DATAOFF开始的位置为具体的声音数据。SIZEOFF0X80X40X180X40X28DATAOFF0X80X40X180X80X2C33初始化UDA1341模块1初始化UDA1314模块流程图如下RIFHEADRDATTYPEFMTCHUNKDATCHUNK开始端口初始化地址选择AD和DA增益控制录音选择模式21314初始化程序代码如下STATICVOIDINIT1341CHARMODEU16FSIDX/PORTINITIALIZE/PORTBGROUP/PORTSGPB4GPB3GPB2/SIGNALL3CLOCKL3DATAL3MODE/SETTINGOUTPUTOUTPUTOUTPUT/987654/BINARY01,0101/RGPBDATRGPBDAT/STARTCONDITIONL3MH,L3CHRGPBUPRGPBUPSTATICVOID_IRQRECDMADONEVOIDIFRECSTATUSDEVREQ/CLEARPENDINGBITIFRECSTATUSDEVREQLPRECCURBLKDWBYTESRECORDEDLPRECCURBLKDWBUFFERLENGTHIFLPRECCURBLKLPNEXTLPRECCURBLKLPRECCURBLKLPNEXTELSELPRECCURBLKLPRECFSTBLKSETRECDMAMMRESULTWAVEINOPENLPHWAVEINPHWI,UINTUDEVICEID,LPWAVEFORMATEXPWFX,DWORDDWCALLBACK,DWORDDWCALLBACKINSTANCE,DWORDFDWOPENU8IU8ERR0IFPWFXWFORMATTAGWAVE_FORMAT_PCM/ONLYSUPPORTPCMERR1IFPWFXNCHANNELS2/MUSTBESTEROERR2IFPWFXWBITSPERSAMPLE8/8OR16BITSERR3FORI0INSAMPLESPERSECCODECPARAIFREQBREAKIFI7ERR4IFPWFXNCHANNELSPWFXWBITSPERSAMPLE/8PWFXNBLOCKALIGNERR5IFPWFXNAVGBYTESPERSECPWFXNSAMPLESPERSECPWFXNBLOCKALIGNERR6IFERR/PRINTF“CHECKERRDN“,ERRRETURNWAVERR_BADFORMAT/CHECKFORMATPARAMETERSIFRECSTATUSSTATUSDEVICE_FREERETURNMMSYSERR_BADDEVICEIDRECSTATUSDEVREQREQUESTDMAREC_DMA_ATTR,REC_DMA_MODEIFRECSTATUSDEVREQREQUEST_DMA_FAILRETURNMMSYSERR_BADDEVICEIDRECSTATUSHANDLEPHWIRECSTATUSWFORMATTAGPWFXWFORMATTAGRECSTATUSNCHANNELSPWFXNCHANNELSRECSTATUSWBITSPERSAMPLEPWFXWBITSPERSAMPLERECSTATUSFSIDXIRECSTATUSCALLBACKCALLBACKPROCDWCALLBACKRECSTATUSCALLBACKINSTDWCALLBACKINSTANCERECSTATUSSTATUSDEVICE_RECSAVE_MPLLCONRMPLLCON/SAVEMPLLCONVALUE/RMPLLCONCODECPARARECSTATUSFSIDXMPLL/SETSYSFCLKCODECPARARECSTATUSFSIDXMPLLCHGSYSCLOCKCODECPARARECSTATUSFSIDXMPLLRCLKCON|0X20000/ENABLEIISCLOCKIIS_PORTSETTINGIFRECSTATUSDEVREQENABLEIRQBIT_DMA1IFRECSTATUSDEVREQENABLEIRQBIT_DMA2RECTOTBLKS0INIT1341RECORDRETURNMMSYSERR_NOERRORMMRESULTWAVEINCLOSEHWAVEOUTHWIIFRECSTATUSHANDLEHWI|RECSTATUSSTATUSDEVICE_RECRETURNMMSYSERR_INVALHANDLERIISCON0X0/IISINTERFACESTOPRIISFCON0X0/FORFIFOFLUSHRCLKCON/DISABLEIISCOLOCK/RMPLLCONSAVE_MPLLCON/RESTOREMPLLCONVALUE/SETSYSFCLKSAVE_MPLLCONCHGSYSCLOCKSAVE_MPLLCONRECSTATUSSTATUSDEVICE_FREERELEASEDMARECSTATUSDEVREQIFRECSTATUSDEVREQIFRECSTATUSDEVREQRETURNMMSYSERR_NOERRORMMRESULTWAVEINSTARTHWAVEINHWIIFRECSTATUSHANDLEHWI|RECSTATUSSTATUSDEVICE_RECRETURNMMSYSERR_INVALHANDLEIFRECTOTBLKSRETURNMMSYSERR_NOMEMSETRECDMARIISPSRCODECPARARECSTATUSFSIDXPRESCALERRIISCON04STARTPILINGRIISCON|0X1/STARTIISRETURNMMSYSERR_NOERRORMMRESULTWAVEINSTOPHWAVEINHWIIFRECSTATUSHANDLEHWI|RECSTATUSSTATUSDEVICE_RECRETURNMMSYSERR_INVALHANDLERIISCON0X0/IISINTERFACESTOPRIISFCON0X0/FORFIFOFLUSHSTOPDMARECSTATUSDEVREQRETURNMMSYSERR_NOERRORMMRESULTWAVEINPREPAREHEADERHWAVEINHWI,LPWAVEHDRPWH,UINTCBWHIFRECSTATUSHANDLEHWI|RECSTATUSSTATUSDEVICE_RECRETURNMMSYSERR_INVALHANDLEPWHLPNEXT0PWHDWBYTESRECORDED0PWHDWUSER0PWHDWFLAGS0RETURNMMSYSERR_NOERRORMMRESULTWAVEINUNPREPAREHEADERHWAVEINHWI,LPWAVEHDRPWH,UINTCBWHIFRECSTATUSHANDLEHWI|RECSTATUSSTATUSDEVICE_RECRETURNMMSYSERR_INVALHANDLERETURNMMSYSERR_NOERRORMMRESULTWAVEINADDBUFFERHWAVEINHWI,LPWAVEHDRPWH,UINTCBWHIFRECSTATUSHANDLEHWI|RECSTATUSSTATUSDEVICE_RECRETURNMMSYSERR_INVALHANDLEIFRECTOTBLKSLPRECFSTBLKPWHLPRECCURBLKLPRECFSTBLKELSELPRECLSTBLKLPNEXTPWHLPRECLSTBLKPWHPWHLPNEXT0RECTOTBLKSRETURNMMSYSERR_NOERRORMMRESULTWAVEINRESETHWAVEOUTHWIRETURNMMSYSERR_NOERROR35放音模块1放音模块程序流程图如下图放音模块程序流程图2放音模块程序代码MMRESULTWAVEOUTOPENLPHWAVEOUTPHWO,UINTUDEVICEID,LPWAVEFORMATEXPWFX,DWORDDWCALLBACK,DWORDDWCALLBACKINSTANCE,DWORDFDWOPENU8IU8ERR0IFPWFXWFORMATTAGWAVE_FORMAT_PCM/ONLYSUPPORTPCMERR1IFPWFXNCHANNELS2/MUSTBESTEROERR1IFPWFXWBITSPERSAMPLE8/8OR16BITSERR1FORI0INSAMPLESPERSECCODECPARAIFREQBREAKIFI7ERR1IFPWFXNCHANNELSPWFXWBITSPERSAMPLE/8PWFXNBLOCKALIGNERR1IFPWFXNAVGBYTESPERSECPWFXNSAMPLESPERSECPWFXNBLOCKALIGNERR1IFERRRETURNWAVERR_BADFORMAT/CHECKFORMATPARAMETERSIFPLAYSTATUSSTATUSDEVICE_FREERETURNMMSYSERR_BADDEVICEIDPLAYSTATUSDEVREQREQUESTDMAPLAY_DMA_ATTR,PLAY_DMA_MODEIFPLAYSTATUSDEVREQREQUEST_DMA_FAILRETURNMMSYSERR_BADDEVICEIDPLAYSTATUSHANDLEPHWOPLAYSTATUSWFORMATTAGPWFXWFORMATTAGPLAYSTATUSNCHANNELSPWFXNCHANNELSPLAYSTATUSWBITSPERSAMPLEPWFXWBITSPERSAMPLEPLAYSTATUSFSIDXIPLAYSTATUSCALLBACKCALLBACKPROCDWCALLBACKPLAYSTATUSCALLBACKINSTDWCALLBACKINSTANCEPLAYSTATUSSTATUSDEVICE_PLAYSAVE_MPLLCONRMPLLCON/SAVEMPLLCONVALUE/RMPLLCONCODECPARAPLAYSTATUSFSIDXMPLL/SETSYSFCLKCODECPARAPLAYSTATUSFSIDXMPLLCHGSYSCLOCKCODECPARARECSTATUSFSIDXMPLLRCLKCON|0X20000/ENABLEIISCLOCK/CHANGECLOCKDIVIDER1,1/124/CHANGEMPLLVALUE0X96,0X5,0X1/FCLK135428571MHZPCLK33857142MHZ/UART_INIT33857142,115200IIS_PORTSETTINGPISR_DMA2U32PLAYDMA2DONEENABLEIRQBIT_DMA2PLAYTOTBLKS0INIT1341PLAYWAVEOUTSETVOLUMEPLAYSTATUSHANDLE,PLAYVOLUMERETURNMMSYSERR_NOERRORMMRESULTWAVEOUTCLOSEHWAVEOUTHWOIFPLAYSTATUSHANDLEHWO|PLAYSTATUSSTATUSDEVICE_PLAYRETURNMMSYSERR_INVALHANDLERIISCON0X0/IISINTERFACESTOPRIISFCON0X0/FORFIFOFLUSHRCLKCON/DISABLEIISCOLOCK/RMPLLCONSAVE_MPLLCON/RESTOREMPLLCONVALUE/SETSYSFCLKSAVE_MPLLCONCHGSYSCLOCKSAVE_MPLLCONPLAYSTATUSSTATUSDEVICE_FREERELEASEDMAPLAYSTATUSDEVREQDISABLEIRQBIT_DMA2RETURNMMSYSERR_NOERRORMMRESULTWAVEOUTPREPAREHEADERHWAVEOUTHWO,LPWAVEHDRPWH,UINTCBWHIFPLAYSTATUSHANDLEHWO|PLAYSTATUSSTATUSDEVICE_PLAYRETURNMMSYSERR_INVALHANDLEPWHLPNEXT0PWHDWBYTESRECORDED0PWHDWUSER0PWHDWFLAGS0RETURNMMSYSERR_NOERRORMMRESULTWAVEOUTUNPREPAREHEADERHWAVEOUTHWO,LPWAVEHDRPWH,UINTCBWHIFPLAYSTATUSHANDLEHWO|PLAYSTATUSSTATUSDEVICE_PLAYRETURNMMSYSERR_INVALHANDLERETURNMMSYSERR_NOERRORMMRESULTWAVEOUTWRITEHWAVEOUTHWO,LPWAVEHDRPWH,UINTCBWHIFPLAYSTATUSHANDLEHWO|PLAYSTATUSSTATUSDEVICE_PLAYRETURNMMSYSERR_INVALHANDLEIFPLAYTOTBLKSLPPLAYFSTBLKPWHLPPLAYCURBLKLPPLAYFSTBLKSTARTPLAYELSELPPLAYLSTBLKLPNEXTPWHLPPLAYLSTBLKPWHPWHLPNEXT0PLAYTOTBLKSRETURNMMSYSERR_NOERRORMMRESULTWAVEOUTSETVOLUMEHWAVEOUTHWO,DWORDDWVOLUMEIFPLAYSTATUSHANDLEHWO|PLAYSTATUSSTATUSDEVICE_PLAYRETURNMMSYSERR_INVALHANDLEPLAYVOLUMEDWVOLUMEADJVOLUMEPLAYVOLUMERETURNMMSYSERR_NOERRORMMRESULTWAVEOUTGETVOLUMEHWAVEOUTHWO,LPDWORDPDWVOLUMEIFPLAYSTATUSHANDLEHWO|PLAYSTATUSSTATUSDEVICE_PLAYRETURNMMSYSERR_INVALHANDLEPDWVOLUMEPLAYVOLUMERETURNMMSYSERR_NOERRORMMRESULTWAVEOUTPAUSEHWAVEOUTHWOIFPLAYSTATUSH

温馨提示

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

评论

0/150

提交评论