飞思卡尔8位单片机MC9S0815程序CAN通信接口程序

上传人:仙*** 文档编号:157119588 上传时间:2022-09-28 格式:DOC 页数:9 大小:162.50KB
收藏 版权申诉 举报 下载
飞思卡尔8位单片机MC9S0815程序CAN通信接口程序_第1页
第1页 / 共9页
飞思卡尔8位单片机MC9S0815程序CAN通信接口程序_第2页
第2页 / 共9页
飞思卡尔8位单片机MC9S0815程序CAN通信接口程序_第3页
第3页 / 共9页
资源描述:

《飞思卡尔8位单片机MC9S0815程序CAN通信接口程序》由会员分享,可在线阅读,更多相关《飞思卡尔8位单片机MC9S0815程序CAN通信接口程序(9页珍藏版)》请在装配图网上搜索。

1、15.4.2 控制寄存器(1)MSCAN08模式控制寄存器0 (Module Control Register 0,CMCR0)模式控制寄存器0(CMCR0)定义了MSCAN08模块的同步状态等有关工作方式。地址:$0500数据位D7 D6 D5 D4 D3 D2 D1 D0读 0 0 0 SYNCH TLNKEN SLPAK SLPRQ SFTRES写- - - - TLNKEN - SLPRQ SFTRES复位0 0 0 0 0 0 0 1SYNCH Synchronized Status:同步状态。SYNCH =1,MSCAN08与CAN总线同步;SYNCH =0,MSCAN08与CAN

2、总线不同步。TLNKEN Timer Enable:时钟使能。TLNKEN =1,MSCAN08时钟信号输出连接到片上时钟输入;TLNKEN =0,MSCAN08不连接到时钟输入。SLPAK Sleep Mode Acknowledge:睡眠模式确认。SLPAK标志位指示MSCAN08是否处于睡眠模式,SLPAK =1,表示MSCAN08处于内部睡眠模式;SLPAK =0,不在内部睡眠模式。SFTRES Soft Reset:软复位。SFTRES =1,MSCAN08处于软复位状态;SFTRES =0,MCAN08处于正常运行状态。当SFTRES被置为1时,MSCAN08立即进入软复位状态。此

3、时,MSCAN08所有正在进行的收发操作都被中止,且不再与CAN总线保持同步。只有在软复位状态下,才能对寄存器MCR1、BTR0、BTR1、IDAC、IDAR0-IDAR3、IDMR0-IDMR3进行写操作。当该位清0时,MSCAN08将在11个隐性位后与总线保持同步。(2)MSCAN08模式控制寄存器1 (Module Control Register 1,CMCR1) 模式控制寄存器1定义了MSCAN08模块的时钟源、唤醒模式及工作方式。地址:$0501数据位D7 D6 D5 D4 D3 D2 D1 D0读0 0 0 0 0 LOOPB WUPM CLKSRC写- - - - - LOOP

4、B WUPM CLKSRC复位0 0 0 0 0 0 0 0LOOPB Loop Back Self-Test Mode:回环自测模式位。LOOPB =1,激活回环自测模式;LOOPB =0,正常运行模式。当处于回环自测模式时,CANRX引脚被忽略,CANTX引脚输出隐性值,MSCAN08将自己发送的报文当成是从远程节点上发送过来的报文进行接收,并产生发送和接收中断。通过自测模式可以在不接任何外外围器件的基础上,测试MSCAN08工作是否正常。WUPM Wakeup Mode:唤醒模式位。该位定义是否启用内部低通滤波以避免被错误唤醒。WUPM=1,只有当总线上显性电平至少保持了twup时间后M

5、SCAN08才被唤醒;WUPM=0,总线上任何隐性变为显性的下降沿,MSCAN08被唤醒。CLKSRC Clock Source:时钟源选择位。CLKSRC=1,MSCAN08时钟源采用锁相环输出;CLKSRC=0,MSCAN08时钟源直接采用外部晶振的2分频(CGMXCLK/2)。注:MCR1只能在软复位状态下才能被写入。(3)MSCAN08总线定时寄存器0 (Bus Timing Register 0,CBTR0)总线定时寄存器0和总线定时寄存器1共同决定了CAN总线通信波特率。其中,总线定时寄存器0定义了MSCAN08的同步跳转宽度和预分频因子。地址:$0502数据位D7 D6 D5 D

6、4 D3 D2 D1 D0读/写SJW1 SJW0 BRP5 BRP4 BRP3 BRP2 BRP1 BRP0复位0 0 0 0 0 0 0 0SJW1-0 Synchronization Jump Width:同步跳转宽度。同步跳转宽度定义了一个位周期可以被一次重新同步缩短或延长的时间份额Tq(见下面对BPR5-BPR0的说明)的最大数目,以便在数据发送时与总线同步。SWJ1-0取值与同步跳转宽度对应关系见表15-5。表15-5 同步跳转宽度SJW1SJW2同步跳转宽度00001001121000310104表15-6 波特率预置器BPR5BPR4BPR3BPR2BPR1BPR0预分频因子0

7、0000010000012:11111164BPR5-BPR0 Band Rate Prescaler:波特率预置器。BPR5-BPR决定了用于生成各位(bit)延时的时间份额(Time Quanta-Tq)的大小,其中Tq=fMSCANCLK/预分频因子。BPR5-BPR0与预分频因子的对应关系见表15-6。注:BTR0只能在软复位状态下才能被写入。(4)MSCAN08总线定时寄存器1(Bus Timing Register 1,CBTR1)总线定时寄存器1(BTR1)定义位周期的长度、采样点的位置和每个位时间内采样次数。地址:$0503数据位D7 D6 D5 D4 D3 D2 D1 D0读

8、/写 SAMP TSEG22 TSEG21 TSEG20 TSEG13 TSEG12 TSEG11 TSEG10 复位 0 0 0 0 0 0 0 0SAMP Sampling:采样次数。=1,每位采样3次;=0,每位采样1次。表15-7 时间段1定义TSEG13TSEG12TSEG11TSEG10时间段1000010001200103:111116表15-8 时间段2定义TSEG22TSEG21TSEG20时间段2000100120103:1118TSEG22-TSEG20 Time Segment:时间段。时间段决定了每一位所需的时间份额Tq数目和采样点的位置。时间段由时间段1(TSEG1

9、)和时间段2(TSEG2)组成,定义分别如表15-7和15-8所示。注:在CAN标准中,时间段1的取值范围为5-16,时间段2的取值范围为2-8,用户设置的位时间必须确保与CAN标准兼容。CAN通信位周期总体结构如图15-14所示。同步段1 (Tq)时间段1时间段2416 (Tq)28 (Tq)采样点(单采样或三次采样)1位时间=825(Tq)NRZ信号图15-14 CAN通信位周期总体结构图例如:在MSCAN08时钟频率fMSCAN08=4M,BTR0和BTR1寄存器取如下值时,SJW1-0=00,BPR5-BPR0=000001,SAMP=0,TSEG22-TSEG20=010,TSEG1

10、3-TSEG10=0101则:预分频因子PreScale=2,时间份额Tq= fMSCAN08/PreScale = 2M 同步跳转宽度=1(Tq),时间段1=6(Tq),TSEG2=3(Tq) 位时间=1+6+3=10(Tq),通信波特率=2M/10=200(kbps)(5)MSCAN08接收标志寄存器(Receiver Flag Register,CRFLR)接收标志寄存器反映了MSCAN08接收报文时的有关状态。地址:$0504数据位D7 D6 D5 D4 D3 D2 D1 D0读/写WUPIF RWRNIF WRNIF RERRIF TERRIF BOFFIF OVRIF RXF复位0

11、 0 0 0 0 0 0 0WUPIF Wakeup Interrupt Flag:唤醒中断标志位。当MSCAN08处于睡眠模式时,检测到总线上有数据,将置WUPIF标志位。WUPIF =1,MSCAN08已检测到总线活动并请求唤醒;WUPIF =0,没有产生唤醒中断。RWRNIF Receiver Warning Interrupt Flag:接收器警告中断标志位。当接收错误计数器超过96,且其他任何错误中断标志或总线关闭中断标志都未置位时,MSCAN08将进入警告状态时,并置RWRNIF标志位。RWRNIF =1,MSCAN08已进入接收警告状态;RWRNIF =0,未进入接收警告状态。T

12、WRNIF Transmitter Warning Interrupt Flag:发送器警告中断标志位。当发送错误计数器超过96,且其他任何错误中断标志或总线关闭中断标志都未置位时,MSCAN08将进入警告状态时,并置TWRNIF标志位。TWRNIF=1,MSCAN08已进入发送警告状态;TWRNIF=0,未进入发送警告状态。RERRIF Receiver Error Passive Interrupt Flag:接收器错误被动中断标志位。当接收错误计数器超过127,且总线关闭中断标志未置位时,MSCAN08将进入接收器被动错误状态,并置RERRIF标志位。RERRIF =1,MSCAN08已

13、进入接收器被动错误状态;RERRIF =0,未进入接收器被动错误状态。TERRIF Receiver Error Passive Interrupt Flag:接收器错误被动中断标志位。当接收错误计数器超过127,且总线关闭中断标志未置位时,MSCAN08将进入接收器被动错误状态,并置TERRIF标志位。TERRIF =1,MSCAN08已进入接收器被动错误状态;TERRIF =0,未进入接收器被动错误状态。BOFFIF Bus-Off Interrupt Flag:总线关闭中断标志位。当发送错误计数器超过255时,MSCAN08将进入总线关闭状态,并置BOFFIF标志位。总线关闭后,至少要等

14、128个11位连续的隐性位后才能清除该标志位。BOFFIF =1,MSCAN08已进入总线关闭状态;BOFFIF =0,未进入总线关闭状态。OVRIF Overrun Interrupt Flag:过载中断标志位。当数据过载时,置OVRIF标志位。OVRIF =1,MSCAN08已检测到数据过载;OVRIF =0,未检测到数据过载。RXF Receive Buffer Full:接收缓冲区满标志位。当一个新的报文已到达前台接收缓冲区时,置RXF标志位。在CPU将接收缓冲区中的报文读走后应清RXF标志,在RXF被置位时,后台接收缓冲区不能将数据传到前台接收缓冲区。RXF=1,接收缓冲区满;RXF

15、=0,接收缓冲区空。(6)MSCAN08接收中断使能寄存器(Receiver Interrupt Enable Register,CRIER)地址:$0505数据位D7 D6 D5 D4 D3 D2 D1 D0读/写WUPIE RWRNIE TWRNIE RERRIE TERRIE BOFFIE OVRIE RXFIE复位0 0 0 0 0 0 0 0WUPIE Wakeup Interrupt Enable:唤醒中断使能位。WUPIE =1,允许产生唤醒中断,反之不允许。RWRNIE Receiver Warning Interrupt Enable:接收器警告中断使能位。RWRNIE=1,

16、允许产生接收警告中断,反之不允许。TWRNIE Transmitter Warning Interrupt Enable:发送器警告中断使能位。TWRNIE=1,允许产生发送警告中断,反之不允许。RERRIE Receiver Error Passive Interrupt Enable:接收器错误被动中断使能位。RERRIE =1,允许产生接收器错误被动中断,反之不允许。TERRIE Transmitter Error Passive Interrupt Enable:接收器错误被动中断使能位。TERRIE =1,允许产生发送器被动错误中断,反之不允许。BOFFIE Bus-Off Inte

17、rrupt Enable:总线关闭中断使能位。BOFFIE =1,允许产生总线关闭中断,反之不允许。OVRIE Overrun Interrupt Enable:过载中断使能位。OVRIE =1,允许产生过载中断,反之不允许。RXFIE Receive Full Interrupt Enable:接收满中断使能位。RXFIE=1,允许产生接收满中断,反之不允许。(7)MSCAN08发送标志寄存器(Transmitter Flag Register,CTFLR)地址:$0506数据位D7 D6 D5 D4 D3 D2 D1 D0读 0 ABTAK2 ABTAK1 ABTAK0 0 TXE2 TX

18、E1 TXE0CLKSRC写- - - - - TXE2 TXE1 TXE0TXE2 TXE1 TXE0复位0 0 0 0 0 1 1 1ABTAK2-ABTAK0 Abort Acknowledge:中止确认标志。当CPU请求中止发送报文时,应用软件通过读中止确认标志位以确定报文是否被成功中止发送。任何时候发送缓冲区空标志TXEn被清0时,相应的中止确信标志位ABTAKn被隐性地清成0。ABTAKn=1,报文被中止;ABTAKn=0,报文未被中止,也即被发送出去。TXE2-TXE0 Transmitter Empty:发送缓冲区空标志。当报文装入发送缓冲区n时,CPU清TXEn为0;当MSC

19、AN08成功将报文发送出去时,置TXEn为1。清TXEn的同时,也将清ABTAKn为0;而置TXEn时,相应的ABTRQn将清0(见MSCAN08发送控制寄存器)。TXEn=1,缓冲区n为空,反之为满(装有待发送的报文)。(8)MSCAN08发送控制存器(Transmitter Control Register,CTCR)地址:$0507数据位D7 D6 D5 D4 D3 D2 D1 D0读0 ABTRQ2 ABTRQ1 ABTRQ0 0 TXEIE2 TXEIE1 TXEIE0CLKSRC 写 - ABTRQ2 ABTRQ1 ABTRQ0 - TXEIE2 TXEIE1 TXEIE0复位0

20、0 0 0 0 1 1 1ABTRQ2-ABTRQ0 Abort Request:中止请求。CPU通过置ABTRQn为1以中止发送缓冲区n中报文的发送。当报文被中止发送时,相应发送缓冲区空标志和中止确认标志被置成1。CPU不能复位ABTRQ标志,发送缓冲区空标志被置成1时,隐性地将相应中止请求位清成0。ABTRQn=1,有中止请求,反之没有。注:软件不能在清发送缓冲区空标志的同时又置相应的中止请求位。TXEIE2-TXEIE0 Transmitter Empty Interrupt Enable:发送缓冲区空中断使能。TXEIEn=1,缓冲区n空时,将产生缓冲区n空中断,反之不产生中断。(9)

21、MSCAN08标识符验收控制寄存器(Identifier Acceptance Control Register,CIDACR)标识符验收控制寄存器定义了验收模式及验收命中状态指示。地址:$0508数据位D7 D6 D5 D4 D3 D2 D1 D0读 0 0 IDAM1 IDAM0 0 0 IDHIT1 IDHIT0CLKSRC写- - IDAM1 IDAM0 - - - -TXE2 TXE1 TXE0复位0 0 0 0 0 0 0 0IDAM1-IDAM0 Identifier Acceptance Mode:标识符验收模式标志。CPU通过设置验收模式标志来定义标识符验收滤波模式。表15-

22、9给出了不同的验收模式的设置。在“关闭滤波器”模式下,将不能接收报文。IDHIT1-IDHIT0 Identifier Acceptance Hit Indicator:标识符命中指示器。MSCAN08通过设置这些标志位来指示验收命中的情况。表15-10给出了不同的命中模式指示。表15-9 标识符验收模式设置IDAM1IDAM0同步跳转宽度0000单32位验收滤波器0011双16位验收滤波器10004个8位验收滤波器1010关闭滤波器表15-10 标识符命中模式指示IDHIT1IDHIT0同步跳转宽度0000滤波器0命中0011滤波器1命中1000滤波器2命中1010滤波器3命中(10)MSC

23、AN08接收错误计数器(Receiver Error Counter,CRXERR)地址:$050E数据位D7 D6 D5 D4 D3 D2 D1 D0读RXERR7 RXERR6 RXERR5 RXERR4 RXERR3 RXERR2 RXERR1 RXERR0写- - - - - - - -复位0 0 0 0 0 0 0 0接收错误计数寄存器反映了MSCAN08接收报文出错的次数。(11)MSCAN08发送错误计数器(Transmit Error Counter,CTER)地址:$050F数据位D7 D6 D5 D4 D3 D2 D1 D0读 TXERR7 TXERR6 TXERR5 TX

24、ERR4 TXERR3 TXERR2 TXERR1 TXERR0写 - - - - - - - -复位 0 0 0 0 0 0 0 0发送错误计数寄存器反映了MSCAN08发送报文出错的次数。注:所有计数寄存器只能在睡眠模式或软复位模式下才可读。(12)MSCAN08标识符验收寄存器(Identifier Acceptance Register,CIDAR)在验收寄存器的作用下,只有当接收的报文中的标识符与标识符验收寄存器中预定义的位值相等时,CAN控制器才会通知CPU去读取接收的报文;否则,当前报文将会被下一个报文覆盖。对于扩展帧,需占用四个验收寄存器和四个屏蔽寄存器;对于标准帧,则各只占前

25、两个。CIDAR0地址:$0510数据位D7 D6 D5 D4 D3 D2 D1 D0读/写 AC7 AC6 AC5 AC4 AC3 AC2 AC1 AC0复位 不 影 响CIDAR1地址:$0511数据位D7 D6 D5 D4 D3 D2 D1 D0读/写 AC7 AC6 AC5 AC4 AC3 AC2 AC1 AC0复位 不 影 响CIDAR2地址:$0512数据位D7 D6 D5 D4 D3 D2 D1 D0读/写 AC7 AC6 AC5 AC4 AC3 AC2 AC1 AC0复位 不 影 响CIDAR3地址:$0513数据位D7 D6 D5 D4 D3 D2 D1 D0读/写 AC7

26、AC6 AC5 AC4 AC3 AC2 AC1 AC0复位 不 影 响AC7-AC0 Acceptance Code Bits:验收代码位。接收报文缓冲区中的标识符寄存器中的内容与验收代码中相应位进行比较,比较的结果再与屏蔽寄存器中相应位进行掩码运算。(13)MSCAN08标识符屏蔽寄存器(Identifier Mask Register,CIDMR0-3)标识符屏蔽寄存器指定了标识符验收寄存器中哪些位起过滤作用,哪些位不起作用。对于11位标识符的标准帧,必须将屏蔽寄存器1的低3位定义成无关(dont care)。CIDMR0地址:$0514数据位D7 D6 D5 D4 D3 D2 D1 D0

27、读/写 AM7 AM6 AM5 AM4 AM3 AM2 AM1 AM0复位 不 影 响CIDMR1地址:$0515数据位D7 D6 D5 D4 D3 D2 D1 D0读/写 AM7 AM6 AM5 AM4 AM3 AM2 AM1 AM0复位 不 影 响CIDMR2地址:$0516数据位D7 D6 D5 D4 D3 D2 D1 D0读/写 AM7 AM6 AM5 AM4 AM3 AM2 AM1 AM0复位 不 影 响CIDMR3地址:$0517数据位D7 D6 D5 D4 D3 D2 D1 D0读/写 AM7 AM6 AM5 AM4 AM3 AM2 AM1 AM0复位 不 影 响AM7-AM0

28、Acceptance Mask Bits:验收屏蔽位。验收屏蔽位用于指定验收代码寄存器中有关位是有效。当某验收屏蔽位被清成0时,表明与该位对应的标识符寄存器必须和验收代码寄存器中相应位相同才认为是匹配的。只有当所有位均匹配,报文才会被接收。当某验收屏蔽位被置成1时,验收代码寄存器中的内容则不影响报文的接收。AMn =1,忽略验收代码寄存器中相应位;AMn=0,验收代码寄存器与标识符寄存器中相应位必须匹配。15.4.3 CAN接口初始化与CAN报文收发编程的基本方法(1)MSCAN08初始化 (2)发送一帧数据(3)接收一帧数据 15.5 MSCAN08编程实例本节以MC68HC908GZ60(

29、以下简称GZ60)为例,讲述MSCAN08的使用方法。首先给出了GZ60的最小系统硬件连接图,在此基础上,实现了用08C语言编制的规范CAN通信子程序,包括MSCAN08初始化、接收一帧CAN协议报和发送一帧CAN协议报文子程序。(1)GZ60的最小系统(2)CAN结点的软件CAN结点接入CAN网络后,CAN结点需要进行软件初始化,然后就可以向CAN网络发送数据帧或接收其它CAN结点发送过来的数据帧。下面给出这些过程的源码,读者可以做一些实验,我们实验室已经有这方面的成功的应用实例,如果读者有需要可以和我们实验室联系。 初始化子程序初始化子程序08C语言例/-/程序名:void CANInit

30、(unsigned char time1,unsigned char time0)/功能:CAN初始化/入口:无/出口:无/说明:在4M CAN总线频率下将总线速率设为200kbps,/ 节点标识符设为0/-/void CANInit(void) CMCR0|=(1SFTRES); /模式控制寄存器的软复位标志为1 CMCR1&=(1CLKSRC); /MSCAN08时钟源选择外部晶振(二分频);即若外部晶振为4M时,fmscan=2M /CMCR1|=(1LOOPB); /自测方式 CBTR0=CBTR0V; /将位速率设置成200kbps CBTR1=CBTR1V; CIDAC=CIDAC

31、V; /1次验收滤波器模式 CIDAR0=CIDAR0V; /给接收代码寄存器0-1赋值 CIDAR1=CIDAR1V; CIDMR0=CIDMR0V; /给接收屏蔽寄存器0-1赋值 CIDMR1=CIDMR1V; CMCR0&=(1SFTRES); /正常模式 发送1个CAN数据报文子程序发送1个CAN数据报文子程序08C语言例/-/程序名:unsigned char CANsnd1DFrm(unsigned int rid, / unsigned char * databuf,unsigned char len)/功能:CAN发送1帧(数据长度=8)处理子程序/入口:unsigned in

32、t rid-报文标识符,/ unsigned char * databuf-报文数据区首址/ unsigned char len-报文数据长度/出口:unsigned char CANsnd1DFrm - 发送成功与否标志,/ =0,没有空闲发送缓冲区,发送不成功;=1,发送成功/说明:在发送数据之前,先查询是否有空闲发送缓冲区/ 若无,则不能发送,返回0。/-/unsigned char CANsnd1DFrm(unsigned int rid,unsigned char * databuf, unsigned char len) unsigned char j; unsigned char

33、 * addr; unsigned char bufbit=0; bufbit=GetSndBuf();/查找空闲的发送缓冲区 if (bufbit=0xff) /若返回0xff,则没有空闲的发送缓冲区 return 0; /没有空闲的发送缓冲区,发送不成功,返回0 j=(bufbit8); /11位报文标识符高8位 addr1=(unsigned char)rid); /低3位 addr1 &=(1RTR); /RTR=0,数据帧 addr1 &=(1IDE); /IDE位=0 for(j=0;jlen;j+) addrj+4=databufj; /数据赋值 addr12=len; /数据长

34、度 /-/ CTFLG = (1bufbit); /发送缓冲区相应TXE位写1,通知MSCAN08发送数据 return (1); /数据成功写入空闲缓冲区,返回1 接收一个CAN报文子程序接收一个CAN报文子程序08C语言例/-/程序名:unsigned char CANrcv1Frm(unsigned char * CANRcvbuf)/功能:CAN接收1帧子程序/入口:无/出口:unsigned char CANrcv1Frm-函数名,表示接收帧的情况,/ =0xff,未收到帧;=1,收到数据帧;=2,收到远程帧/ unsigned char * CANRcvbuf-若收到报文,为16字

35、节报文的首地址/说明: /-/unsigned char CANrcv1Frm(unsigned char * CANRcvbuf) unsigned char tt; unsigned char * addr; unsigned char ss=0; if (CRFLG&(1RXF)=0) return 0xff; /未收到数据,返回0xff addr=(unsigned char *)&RCVBUF; /RXF=1,表示收到数据,取数据处理 for(tt=0;tt16;tt+) CANRcvbuftt=addrtt; /将CAN接收缓冲区中的数据取到临时缓冲区 CRFLG=0xff; /清所有接收标志 /-判断是标准帧还是扩展帧-/ tt=(CANRcvbuf1&(1IDE); /取标识符中IDE标志 if (tt =0) /标准帧 tt=(CANRcvbuf1&(1RTR); /取标识符中RTR标志 ss=(tt=0)?DataFrm:RemoteFrm); /判断是数据帧还是远程帧 else ss=0xff; /不处理扩展帧 /tt=(CANRcvbuf3&(1ERTR); /取标识符中RTR标志 /ss=(tt=0)?DataFrm:RemoteFrm); /判断是数据帧还是远程帧 return ss; /返回数据帧标志(1)或远程帧(2)标志

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!