基于USB接口的单片机与PC机通信-论文.doc_第1页
基于USB接口的单片机与PC机通信-论文.doc_第2页
基于USB接口的单片机与PC机通信-论文.doc_第3页
基于USB接口的单片机与PC机通信-论文.doc_第4页
基于USB接口的单片机与PC机通信-论文.doc_第5页
免费预览已结束,剩余18页可下载查看

下载本文档

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

文档简介

基于USB接口的单片机与PC机通信摘 要:安装USB设备不需要用户自己设置硬件与软件的选项,USB接口的传输速度要比计算机传统的串行口和并口快的多,所以USB设备已经广泛应用。由于协议的复杂性,在系统中实现USB主机功能的实例还不是很多。因此本文没有从复杂的USB总线协议入手,而是选择了南京沁恒公司出产的USB接口芯片CH375。其具有内置固件模式和可编程的2311外部固件模式,可以根据需要任意选择工作模式。关键词:单片机;CH375;USB;协议The Design of the communication between MCU and PC which is based on USB interfaceAbstract: USB device does not require users to install their own set of hardware and software options, and computer transmission speed faster than the traditional serial and parallel port , so USB devices have been widely used. Because of the complexity of the agreement, in the system of USB host function realization example is not a lot. Therefore this article does not starting with the complex USB agreement, but chose the USB interface chip CH375 which produced by Nanjing Qin Heng company, their model has a built-in firmware and firmware programmable of 2311 external model, we can choose the mode of operation with a need for arbitrary.Key words: Single Chip Microcontroller;CH375;USB;Agreement目 录1 前 言11.1 题目的来源与开发意义11.2 系统功能概述12 系统硬件设计22.1 方案论证22.2 系统硬件总体设计概述22.3 系统功能概述32.4 系统各模块的设计42.4.1 单片机控制系统42.4.2 USB接口模块63 系统软件设计113.1 系统软件总体设计思想113.2 各功能模块软件程序设计114 系统调试164.1 硬件电路调试164.2 各功能模块软件调试165 结论18参考文献19致 谢201 前 言1.1 题目的来源与开发意义USB的低功耗,可靠性,价位低等优点,在人们日常生活中应用越来越广泛,各种各样的USB产品应运而升1,并且随着技术的发展,USB的版本以发展到了3.0,传输速度也更快,更强,更稳定。而单片机以其良好的普及性,易用性,稳定的控制性不断的出现在我们生活中的各个角落,并且一发不可收拾2。电子应用中数据传输占了很大一部分。我把这几项当前技术融合在一起进行开发,实现可携带的支持计算机热插拔的单片机与PC机之间的数据传输。 1.2 系统功能概述单片机与计算机之间的通信功能实现,这里应用了由南京沁恒公司生产的CH375芯片作为单片机与计算机USB接口芯片3。使用10位的AD串行AD芯片TLC1549进行电压采集,使用电位器来模拟传感器。本次设计主要利用STC89C52RC单片机作为主要核心模块,利用C51语言行控制,以C语言作为整合的开发环境,可大大缩短软件设计时间。上位机采用的是VC+在Visual Studio 2010上编写的一个简单的控制台程序,USB驱动采用了沁恒公司的通用CH375驱动软件。通过键盘给上位机(PC)输入不同的命令可以控制下位机(单片机)的三个不同颜色的LED。同时单片机向PC发送采集到的电压值。这里支持计算机热插拔,挟带方便,设备占用空间小,低功耗是本设计的创新之处,而且相应的CH375接口模块成了印刷式电路板,为以后学习和开发计算机与单片机通过U口传输数据的同学提供了便捷的硬件环境。2 系统硬件设计2.1 方案论证方案一:有关USB控制芯片很多但主要有两个来源,一个是Cypress Semiconductor,另一个是ScanLogic。我们可以选择市面比较通用的Cypresss enCoRe控制器芯片CY4C63743,此芯片电路设计起来比较容易。但此芯片需要固件支持。En指令相对简单,可以使用汇编语言编译器来实现,但固件编程相对繁琐,而且CY4C63743结和了单片机与USB数据传输的功能相对开发需要了解内部的时续与中断控制,类似于嵌入了USB功能的单片机。方案二:用南京沁恒公司的CH375芯片,需要外接微控制器,电路稍微麻烦一点,但是我的设计只需要用到USB设备模式一块,而我们可以让CH375工作在内置固件下,我们减轻了单片机方面的固件编写负担,只需按要求让单片机将要发送的数据传给CH375即可,CH375自行与PC进行数据交换,这同样节省了对复杂协议的学习时间。而单片机更可以选择STC系列的51单片机,这种单片机可以通过串口在线编程,方便开发。由此可见方案二更有效。2.2 系统硬件总体设计概述 硬件设计相应的分两个模块,一方面是控制模块由宏晶生产的STC系列的51单片机为核心的单片机做控制;另一方面由CH375做为USB的通信接口芯片的接口模块。控制模块中主要用到了STC89C52单片机,其中的P0口与CH375的数据并口相连,所以P0口必须接10K的上拉电阻,在控制模块上有一个与通信接口模块相连的插座,共16个引脚其具体对应了控制模块与通信接口模块之间的GND,相应的复位引脚,还有与CH375并口模式相对应的控制,数据引脚A0,WR,RD,CS ,INT ,D0-D7。TLC1549与单片机通信是串行模式,所以只需占用单片机的三个IO口。使用LED来显示PC上的命令信息。 通信接口模块分两个部分一个是与PC机相连的CH375部分,一个是单片机控制部分。为了方便开发,单片机单独供电,而没有与USB模块共用PC上的USB电源。为了保护AD芯片,设计了AD输入保护。电路在防止干扰方面,在每个芯片的电源端添加了去耦电容。如图2.1为硬件实物图图2.1 硬件实物2.3 系统功能概述如图2.2为系统框图AD模块PC机(上位机端)USB接口通信模块单片机控制模块(下位机端)图2.2 系统框图该设计实现单片机端通过AD模块采集数据经USB接口模块发送到PC机的界面上显示,同时PC机端也可通过按键控制单片机端的LED亮灭,实现双向通信。具体工作流程:首先进行各个模块初始化,然后在PC机端发送一个数据包,长度为64,单片机端接收到这个数据包,根据数据包的内容来控制LED灯的暗灭,接着AD模块采集数据,这里的数据是电压值,可传送2.50到5.00伏的电压值,单片机端接收到AD模块采集的数据,再通过USB通信接口模块传输到电脑上显示出来。2.4 系统各模块的设计 2.4.1 单片机控制系统如图2.3为单片机控制模块图2.3 单片机控制模块STC89C52RC单片机作为硬件的核心处理器,它的工作电路分为三部分:晶振电路、复位电路、电源电路。晶振为CPU提供工作需要的高频率、高精确的时钟;复位电路在芯片在上电复位或者手动复位时引导程序从地址00H开始执行;而电源电路为芯片提供稳定且噪声低的直流电源。1 控制模块原理由图2.2的系统总框图可以看出,单片机直接控制CH375,向其发送数据或者读取数据。单片机与CH375采取系统总线接口,数据线为P0口,地址线为P0口(低位)和P2口(高位)。在电路中P0口连接CH375的8位并行数据接口,P2口只接了P2.0和P2.6,所以在发送地址的时候只有这两位有效,其他的地址线全部无效(这样接主要是为了简化电路)。通信前需要对USB初始化,具体过程如下:单片机通过上面的数据总线,先CMD_CHECK_EXIST这个测试命令,然后发送0x55再读取数据,若读取的数据是0x55则说明芯片正常工作,否则将对CH375进行多次重复发命令(80次),执行硬件复位。确定芯片正常工作后就对芯片设置USB工作模式,这里的02H表示启用的设备方式并且使用内置固件模式。设置模式成功后,单片机将在10到20us内读取到CMD_RET_SUCCESS信号以确定CH375已经就绪。最后,单片机进行外部中断0的初始化,以保证CH375收到数据后能向单片机发送中断信号。单片机的对CH375进行读写数据都是在外部中断0的中断服务程序里面执行的。进入中断后,首先关闭总中断,防止在中断重入。然后发送CMD_GET_STATUS命令来读取中断状态,然后分别对三种不同的中断状态进行处理。其中在USB_INT_EP2_OUT状态下先读取数据包,然后AD采集数据并发送数据包。最后重新开启外部中断0,退出中断服务,等待下一次中断。P0口作为与CH375交流数据,命令的通信并口,INT0作为中断服务程序中断接口其他端口如图接,也可以选择其他单片机端口。2 高速串行AD芯片TLC1549TLC1549是美国德州仪器公司(以下简称TI)的一款高速串行的10位AD芯片。它采用简单的S通信,只使占用单片机的三根IO口,如图2.4图2.4 AD模块从图2.4可以看出,TLC1549工作电路非常简单,而不像一般AD芯片需要接上配对的电阻、电容以及晶振才能保证稳定的工作,只需接上电源和一个103的去耦电容即能工作。在此基础上,本设计添加了AD输入保护电路。保护电路是由两个二极管构成,如图所示,在AD输入电压超出5V或者低于0V的时候,二极管导通,使电压调整到正常范围,这样就保护了AD输入,防止芯片因此损坏。 2.4.2 USB接口模块CH375与USB连接及自身管脚连接具体如图2.5所示。图2.5 USB接口模块图J2是一个USB接口,与电脑相连接,J1是一个双排针左边是通信的端口与单片机的P0口连接,通过这个排针可以和单片机的各个引脚相连。1 USB的简介USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。不过直到近期,它才得到广泛地应用。从1994年11月11日发表了USB V0.7版本以后,USB版本经历了多年的发展,到现在已经发展为2.0版本,成为目前电脑中的标准扩展接口。USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。USB接口支持设备的即插即用和热插拔功能。 USB接口可用于连接多达127种外设,如鼠标、调制解调器和键盘等。USB自从1996年推出后,已成功替代串口和并口,并成为当今个人电脑和大量智能设备的必配的接口之一。 USB2.0有高速、全速和低速三种工作速度,高速是480Mbit/s,全速是12Mbit/s,低速是1.5Mbit/s。其中全速和低速是为兼容USB1.1而设计的,因此选购USB产品时不能只听商家宣传USB2.0,还要搞清楚是高速、全速还是低速设备。USB总线是一种单向总线,主控制器在PC机上,USB设备不能主动与PC机通信。2 CH375芯片简介CH375 是一个USB总线的通用接口芯片,支持USB-HOST主机和DEVICE/SLAVE从机两种工作模式。本设计使用的是从机模式与PC进修双向通行。USB-DEVICE/SLAVE设备方式。在本地端,CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上。CH375 的USB 设备方式与CH372 芯片完全兼容,CH375 包含了CH372 的全部功能。CH375的USB 主机方式支持常用的USB 全速设备,外部单片机可以通过CH375 按照相应的USB 协议与USB 设备通讯。CH375 还内置了处理Mass-Storage 海量存储设备的专用通讯协议的固件,外部单片机可以直接以扇区为基本单位读写常用的USB 存储设备(包括USB 硬盘/USB 闪存盘/U 盘)。CH375硬件连接大致框如图2.6图2.6 系统总体框图 CH375芯片特点:1.低速和全速USB-HOST 主机接口,兼容USB V2.0,外围元器件只需要晶体和电容。2.低速和全速USB 设备接口,完全兼容CH372 芯片,支持动态切换主机与设备方式。3.主机端点输入和输出缓冲区各64 字节,支持12Mbps 全速USB 设备和1.5Mbps 低速设备。4.支持USB 设备的控制传输、批量传输、中断传输。5.自动检测USB 设备的连接和断开,提供设备连接和断开的事件通知。6.内置控制传输的协议处理器,简化常用的控制传输。7.内置固件处理海量存储设备的专用通讯协议,支持Bulk-Only传输协议和SCSI、UFI、RBC 或等效命令集的USB 存储设备(包括USB 硬盘/USB 闪存盘/U 盘/USB 读卡器)。8.通过U 盘文件级子程序库实现单片机读写USB 存储设备中的文件。9.并行接口包含8 位数据总线,4 线控制:读选通、写选通、片选输入、中断输出。10.串行接口包含串行输入、串行输出、中断输出,支持通讯波特率动态调整。引脚如图2.7 图2.7 引脚图引脚含义如表2.2 表2.2 引脚含义表 引脚号引脚名称类型引脚说明28VCC电源正电源输入端,需要外接0.1uF 电源退耦电容12-23GND电源公共接地端,需要连接USB 总线的地线9V3电源在3.3V 电源电压时连接VCC 输入外部电源,在5V 电源电压时外接容量为0.01uF 退耦电容13XI输入晶体振荡的输入端,需要外接晶体及振荡电容14XO输出晶体振荡的反相输出端,需要外接晶体及振荡电容10UD+双向三态USB 总线的D+数据线,内置可控的上拉电阻11UD-双向三态USB 总线的D-数据线2215D7D0双向三态8位双向数据总线,内置上拉电阻4RD#输入读选通输入,低电平有效,内置上拉电3WR#输入写选通输入,低电平有效,内置上拉电阻27CS#输入片选控制输入,低电平有效,内置上拉电阻1INT#输出在复位完成后为中断请求输出,低电平有效8A0输入地址线输入,区分命令口与数据口,内置上拉电阻,当A0=1 时可以写命令,当A0=0 时可以读写数据24ACT#输出在内置固件的USB 设备方式下是USB 设备配置完成状态输出,低电平有效。对于CH375A 芯片,在USB 主机方式下是USB 设备连接状态输出,低电平有效5TXD输出仅用于USB 主机方式,设备方式只支持并口,在复位期间为输入引脚,内置上拉电阻,如果在复位期间输入低电平那么使能并口,否则使能串口,复位完成后为串行数据输出6RXD输入串行数据输入,内置上拉电阻2RSTI输入外部复位输入,高电平有效,内置下拉电阻25RST输出电源上电复位和外部复位输出,高电平有效26RST#输出电源上电复位和外部复位输出,低电平有效7NC.空脚空脚,必须悬空命令命令是CH375与单片机进行联络的核心,芯片内部的USB通行协议都要通过命令来实现,所以了解了CH375的命令就如同在8051中的C51语言,所以这部分很重要。代码命令名称输入数据输出数据命令用途06HRESET_ALL(等40mS)执行硬件复位06HCHECK_EXIST任意数按位取反测试工作状态15HSET_USB_MODE模式代码(等20uS)操作状态设置USB 工作模式22HGET_STATUS中断状态获取中断状态并取消请求02HSET_BAUDRATE分频系数(等1mS)操作状态设置串口通讯波特率分频常数28HRD_USB_DATA数据长度从当前USB 中断的端点缓冲区读取数据块数据流2BHWR_USB_DATA7数据长度向USB 主机端点的输出缓冲区写入数据块数据流各命令意义如表2.3表2.3 命令含义表中断原因如表2.4表2.4 中断状态表中断状态字节名称中断状态分析说明位7位4位3位2位1位0(保留位)当前事务当前端点总是000000=OUT 事务00=端点010=IN 事务01=端点111=SETUP 事务10=端点211=USB 总线复位表2.5是中断状态的分析说明。在内置固件模式的USB设备方式下,单片机只需要处理表中标注为灰色的中断状态,CH372 内部自动处理了其它中断状态。表2.5 中断状态表中断状态值状态名称中断原因分析说明01HUSB_INT_EP1_OUT辅助端点/端点1 接收到数据,OUT 成功09HUSB_INT_EP1_IN中断端点/端点1 发送完数据,IN 成功02HUSB_INT_EP2_OUT批量端点/端点2 接收到数据,OUT 成功0AHUSB_INT_EP2_IN批量端点/端点2 发送完数据,IN 成功05HUSB_INT_USB_SUSPENDUSB 总线挂起事件(如果已CHK_SUSPEND)06HUSB_INT_WAKE_UP从睡眠中被唤醒事件(如果已ENTER_SLEEP)功能说明CH375 芯片可以工作于USB-HOST 主机方式或者USB 设备方式。CH375 的USB 设备方式与CH372 芯片完全兼容, CH375的USB 主机方式支持并行接口和串行接口,本设计使用的是并行接口。在USB主机方式下,CH375支持各种常用的USB全速设备,外部单片机需要编写固件程序按照相应的USB协议与USB 设备通讯。但是对于USB 存储设备,CH375 内置了相关协议,通常情况下,外部单片机不需要编写固件程序,就可以直接通讯。CH375工作在并口,设备模式下(毕业设计相应的主要应用就是这类模式,就稍详细介绍这部分,而串口模式只工作在主机模式下不详细介绍了)硬件连接CH375芯片占用两个地址位,当A0 引脚为高电平时选择命令端口,可以写入新的命令,或者读出中断标志;当A0 引脚为低电平时选择数据端口,可以读写数据。下表为并口I/O 操作的真值表(表中X 代表不关心此位,Z 代表CH372 三态禁止)。表2.6 并口I/O 操作的真值表CS#WR#RD#A0D7-D0对CH372 芯片的实际操作1XXXX/Z未选中CH372,不进行任何操作011XX/Z虽然选中但无操作,不进行任何操作001/X1输入向CH372 的命令端口写入命令码001/X0输入向CH372 的数据端口写入数据0100输出从CH372 的数据端口读出数据0101输出从CH372B 的命令端口读取中断标志,位7 等效于INT#引脚3 上位机功能介绍 设置发送的第一个字节为0X21为约定命令,若接收方收到的不是0X21,则为错误数据,从新请求发送。在通信的过程中,采取了半双工的通信模式。上位机、下位机轮流发送64个字节的数据。在本设计的实际使用中,只使用了3到5个字节,其他的字节都为无效信息。在上位机上实现了显示下位机采集的数据信息,同时,上位机发送控制信息,下位机使用了LED来模拟控制。上位机界面如图2.8图2.8 上位机软件界面3 系统软件设计3.1 系统软件总体设计思想本系统软件设计分两部分,下位机部分和上位机部分。下位机部分应用的是C51语言。上位机界面图形编辑用的是VC+。单片机负责通过CH375上传数据,PC通过VC+程序调用USB驱动程序,查询动态链接库的数据信息,上传的数据存储在动态链接库中。这样最终的上传数据经VC+显示在PC上。3.2 各功能模块软件程序设计下位机模块软件程序设计 AD采集数据的流程图3.1开 始使能AD芯片等待芯片转换完成SPI读取10位数据停止AD转换采集30次进行滤波处理计算出实际电压值向CH375缓存发送电压值是否完成数据接收?CH375向PC发送数据包YN图3.1 AD采集数据的流程图具体程序如下: /*/unsigned int AD_Change(void)/ TLC549驱动程序unsigned int i,temp = 0;AD_In = 0;_nop_();_nop_();CS = 0;_nop_();_nop_();_nop_();_nop_();if (AD_Out = 1) temp += 1;for (i = 0; i 10; i+)AD_In = 1;_nop_();_nop_();AD_In = 0;_nop_();_nop_();if(i != 9)temp = temp 1;if(AD_Out = 1) temp += 1;CS = 1;return temp;CH375发送数据部分流程如图3.2图3.2 CH375发送数据流程图中断程序如下:/*/void mCh375Interrupt() interrupt 0 using 1 / CH375中断服务程序,使用寄存器组1unsigned char InterruptStatus;unsigned char i, length;unsigned char xdata buffer64; / 64字节的缓冲区 存放数据EA = 0; CH375_WR_CMD_PORT(CMD_GET_STATUS); / 获取中断状态并取消中断请求InterruptStatus = CH375_RD_DAT_PORT(); / 读取中断状态 switch (InterruptStatus) / 分析中断状态处理 case USB_INT_EP2_OUT: / 批量端点下传成功 CH375_WR_CMD_PORT(CMD_RD_USB_DATA); / 从当前USB中断的端点缓冲区读 取数据块 并释放缓冲区 length = CH375_RD_DAT_PORT(); / 首先读取后续数据长度 for (i = 0; i length; i+) bufferi = CH375_RD_DAT_PORT();/ 读取 接收数据包 /向USB端点2或者主机端点的发送缓冲区写 入数据块 CH375_WR_CMD_PORT(CMD_WR_USB_DATA7);/ 向USB端点2的发送缓冲区写入 数据块CH375_WR_DAT_PORT(length); / 首先写入后续数据长度,回传刚接收到的 数据长度 LED_1 = buffer1;LED_2 = buffer2;LED_3 = buffer3;temp = AD_Filter();volt = temp / 2; / / volt+; /volt = 456;CH375_WR_DAT_PORT(volt / 100 % 10 + 48); CH375_WR_DAT_PORT(volt / 10 % 10 + 48); CH375_WR_DAT_PORT(volt / 1 % 10 + 48); for (i = 0; i length - 3; i+) / 发送一块数据 64个字节CH375_WR_DAT_PORT(6 + 48); break; case USB_INT_EP2_IN: / 批量数据发送成功 CH375_WR_CMD_PORT(CMD_UNLOCK_USB); / 释放当前USB缓冲区 break;default: / 其它中断,未用到,解锁后退出即可 CH375_WR_CMD_PORT(CMD_UNLOCK_USB); / 释放当前USB缓冲区 break; EA = 1; 上位机模块软件程序设计 CH375在计算机端提供了应用层接口,应用层接口是由CH372动态链接库DLL 提供的面向功能应用的API,所有API 在调用后都有操作状态返回10,但不一定有应答数据。CH375动态链接库提供的API 包括:设备管理API、数据传输API、中断处理API。上位机中接受数据显示具体代码如下:/*/if ( CH375WriteData( 0, mBuffer, &mTotal ) ) / 发送,发送成功mLength = 64;if ( mTestCount = 0 ) Sleep( 200 ); / 考虑到之前单片机准备上传的数据可能未被计算机取走,导致首 次回传有可能直接读到之前的数据而不是本次数据的取反,所以 首次回传先等待单片机准备好取反数据if ( CH375ReadData( 0, mReadBuf, &mLength ) ) / 接收成功printf(Cnt=%4ld, Len=%2ld, Data: 电压值:%c.%c%c Vxd, mTestCount, mTotal, mReadBuf0, mReadBuf1, mReadBuf2);4 系统调试4.1 硬件电路调试这里不仅有CH375硬件有关的调试情况,还有在设计PCB板中的规则参考,比如抗干扰的方法。我们没用到主机模式,大部分调试都是面对该电路的USB设备模式的PCB设计要求。所有平行信号线之间要尽量留有较大的间隔9,以减少串扰。如果有两条相距较近的信号线,最好在两线之间走一条接地线,这样可以起到屏蔽作用。设计信号传输线时要避免急拐弯,以防传输线特性阻抗的突变而产生反射,要尽量设计成具有一定尺寸的均匀的圆弧线。对于双面板(或六层板中走四层线)电路板两面的线要互相垂直,以防止互相感应产主串扰。注意在使用伟福仿真器进行测试时,仿真器电源要与其他电源同时上电,否则CH375将出现工作不正常。如果我们选择MAX810进行复位控制的话,MAX810应选3V多上电复位型号。因为USB 信号属于模拟信号,所在CH372、CH375、CH341等USB 芯片内部包含数字电路和一些模拟电路,另外,USB 芯片中还包含时钟振荡及PLL 倍频电路,以上3 种电路的公共地端在芯片内部已经连接在一起并连接到芯片外部的GND 引脚10。如果USB 芯片有时工作不正常、或者USB 数据传输随机性的失败、或者抗干扰能力差,那么就应该考虑USB 芯片是否稳定工作。4.2 各功能模块软件调试制作设计时,采取步步为营的方式来完成功能。首先,要确定最基本的单片机最小系统工作,在最初,可以先写一个LED闪烁来确定其是否正常工作。单片机模块完成后,将其与USB模块连接,尝试建立连接,由于操作过程比较复杂,最初是在网上找到的参考代码,参考代码必须十分简单,才能更容易调试。调试时,上位机采用BUS HOUND,这是一款强大的软件,通过这个软件,可以监测到PC上每个驱动的数据而不影响其工作,同时还能调用驱动发送数据和命令,是调试USB通信的好助手。图4.1是BUS HOUND的基本界面 图4.1 BUS HO

温馨提示

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

评论

0/150

提交评论