PPM脉冲位置调制解调器_第1页
PPM脉冲位置调制解调器_第2页
PPM脉冲位置调制解调器_第3页
PPM脉冲位置调制解调器_第4页
PPM脉冲位置调制解调器_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、曲靖师范学院本科生毕业论文论文题目:基于CPLD的PPM脉位调制系统 作 者:*学 院:*学 号: *专 业:*指导教师:* 完成日期:*曲靖师范学院教务处摘要伴随着光通信技术的快速发展,脉冲位置调制(PPM)技术也得以不断完善。PPM信号具有发送功率低的特点。辐射功率在节约能源提高能量利用效率的同时,还能提高发射光源的使用寿命。本文从工程应用出发,根据PPM的基本原理和数学模型,从脉冲位置调制的基本原理出发,基于CPLD对PPM调制解调系统进行设计,并用VHDL语言完成了时序仿真。整个设计过程的主要内容是使用VHDL语言编程在CPLD上实现一个PPM基带系统,该系统能实现PPM信号产生、PP

2、M信号解调等功能。主要使用Quartus-II工具软件编写VHDL程序实现该PPM基带系统,并下载程序,在可编程逻辑器件实验板上进行测试。关键词: 脉冲位置调制(PPM) CPLD VHDL 仿真AbstractAlong with the rapid development of optical communication technology, pulse position modulation ( PPM ) technology has also improved. PPM signal is characteristiced with its low transmission and

3、 radiation power, which can help saving energy and improving energy utilization efficiency at the same time.This paper starting with engineering applications, according to the basic principle of PPM and its mathematical models, we can design the PPM modulation and demodulation system based on CPLD ,

4、 using VHDL language to complete the timing simulation. The whole design process of the main content is the use of VHDL language programming in CPLD on the realization of a PPM baseband system, which can realize the modulation and demodulation of PPM signal. Using Quartus-II to write VHDL procedures

5、 to realize the PPM baseband system . After downloading the VHDL procedures, we can have tests in a programmable logic device.Key words: pulse position modulation ( PPM ) CPLD VHDL simulation目录1、引言51.1 光通信技术的迅猛发展51.2 PPM脉位调制技术的优点51.3 PPM调制系统的研究思路52、基本工具介绍52.1 CPLD简介52.1.1 CPLD的特点62.1.2 CPLD的基本结构62.2

6、 Quartus-简介72.2.1 Quartus-II的特点72.2.2 Quartus-II的设计步骤72.3 VHDL语言简介83、PPM(脉位调制)系统设计方案与讨论93.1.1 调制系统的几种设计方案103.1.2几种调制方案的对比与选择103.2 解调系统的设计方案及讨论113.2.1 解调系统的几种设计方案113.2.2几种解调方案的对比与选择124、PPM(脉位调制)系统的设计124.1 PPM系统调制器134.1.1 PPM调制原理134.1.2PPM调制器的VHDL设计顶层电路图134.1.3 PPM调制器各模块的程序设计及仿真结果144.2 PPM系统解调器184.2.1

7、 PPM解调原理184.2.2PPM信号解调器的VHDL设计顶层电路图184.2.3PPM信号解调器端模块程序设计及仿真结果195、设计的不足及心得体会20参考文献20致谢211、引言1.1 光通信技术的迅猛发展随着信息时代的进步,通信技术也得以迅猛的发展。其中光通信技术(大气激光通信、无线红外通信以及新兴的紫外光通信技术)是现代通信技术研究的一个热点。而光通信中的紫外光通信技术工作在紫外光“日盲区”,所以利用该波段的紫外光进行通信具有干扰噪声极小的特点,而且紫外光通信具有低窃听率、低位辨率、全方位、高抗干扰能力等优点。1.2 PPM脉位调制技术的优点光通信系统的调制方式有很多种,脉冲位置调制

8、(PPM)是一种正交调制方式,相比于传统的开关键控(OOK)调制,它具有更高的光功率利用率和频带利用率,能够有效得节约信道资源,并能进提高通信系统的抗干扰能力。此外,对信号进行脉冲位置调制(PPM)具有发送功率低的特点,小辐射功率能提高发射光源的使用寿命,并且能够有效的节约能源。PPM的优点在于:它仅需根据数据符号控制脉冲位置,不需要进行脉冲幅度和极性的控制,便于以较低的复杂度实现调制与解调。因此PPM信号调制在光通信、超宽带移动通信等现代通信前沿技术领域中得以广泛应用。PPM信号的调制和接收对通信系统的性能起很大作用。1.3 PPM调制系统的研究思路 PPM信号的产生需要多个模块的协调合作,

9、首先需要对信码的串并转换然后与经过分频后的时钟信号进行比较,然后通过一个D触发器对比较器输出的信号进行整形即可得到窄脉冲PPM信号。而上述的串并转换模块、分频模块、比较器以及D触发器均可由CPLD实现。利用Quartus-II软件的设计功能,通过VHDL语言将对应的模块电路编写入CPLD中,各模块之间再通过一定的逻辑加以连接即可实现PPM信号的调制系统。2、基本工具介绍2.1 CPLD简介CPLD(Complex Programmable Logic Device)是复杂可编程逻辑性器件,因其具备诸多优点受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。经过多年的发展,许多公司都开发出多种可

10、编程逻辑器件。其中,典型的是Altera公司的CPLD器件系列。其实物图如图1所示。2.1.1 CPLD的特点图1为CPLD实物图。CPLD是从PAL(可编程阵列逻辑)和GAL(通用阵列逻辑)发展而来的器件,但与PAL和GAL相比,CPLD具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用中小规模通用数字集成电路的场合均可应用 图1 CPLD实物图 CPLD器件。CPLD器件已成为

11、电子产品不可缺少的组成部分,它的设计和应用成为电子工程师必备的一种技能。2.1.2 CPLD的基本结构CPLD主要又可编程I/O单元、基本逻辑单元、布线池和其他辅助功能模块构成。可编程I/O单元。CPLD的I/O单元被设计为可编程模式,即通过软件的灵活配置,可适应不同的电气标准与I/O物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小。基本逻辑单元。CPLD中基本逻辑单元是宏单元。所谓宏单元就是由一些与、或阵列加上触发器构成,其中“与或”阵列完成组合逻辑功能,触发器用以完成时序逻辑。与CPLD基本逻辑单元相关的另外一个重要概念是乘积项。所谓乘积项就是宏单元中与阵列的输出,其

12、数量标志了CPLD容量。乘积项阵列实际上就是一个“与或”阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻辑;在“与”阵列后一般还有一个“或”阵列,用以完成最小逻辑表达式中的“或”关系。布线池、布线矩阵。CPLD 中的布线资源相对简单,一半采用集中式布线池结构。布线池的本质就是一个开关矩阵,通过大节点可以完成不同宏单元的输入与输出项之间的连接。由于CPLD期间内部互联资源比较缺乏,所以在某些情况下期间布线时会遇到一定的困难,被称为Pin to Pin延时,用Tpd表示。Tpd延时反映了CPLD 期间可以是ixiande最高频率,也清晰的表明了CPLD期间的速度等级。其他辅助功能模块

13、。例如,JTAG编程模块,一些全时钟、全局使能、全局复位/置位单元等。2.2 Quartus-简介Quartus-II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。2.2.1 Quartus-II的特点Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易

14、学易用等特点。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 2.2.2 Quartus-II的设计步骤修改设计仿真与定时分析编程

15、在线测试设计输入编译基于Quartus-II进行CPLD设计开发包括以下步骤:设计输入、编译、仿真、编程与验证。其流程图如图2所示。设计输入:包括原图输入、VHDL文本输入、EDIF输入以及波形输入等几种方式。编译:先根据设计要求设定编译方式和编译策略,如器件的选择、逻辑综合方式的选择等。然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合、器件适配,并产生报告文件、延时信息文件及编程文 件,供分析、仿真和编程使用。 图2 Quartus-II设计开发流程 仿真:仿真包括功能仿真、时序仿真和定时分析,用以验证设计项目的逻辑功能和时序关系是否正确。编程与验证:用得到的编程文件通过编程电缆配置

16、PLD,加入实际激励,进行在线测试。在测试过程中,如果出现错误,则需要重新回到设计输入阶段,改正错误或调整电路后重复上述过程。2.3 VHDL语言简介VHDL的全名为Very-High-Speed Integrated Circuit Hardware Description Language,译为汉语为超高速集成电路硬件描述语言,它是一种用于电路设计的高级语言。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电

17、路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。一个基本的VHDL设计实体的结构模型如图3所示。配置(Configuration)实体(Entity)结构体(Architecture)进程(Process)或其他并行结构库(Library)、程序包(Package)图3 VHDL程序结构与其他硬件描述语言相比,VHDL具有以下特点: 功能强大、设计灵活VHDL具有功能强大的语言结构,

18、可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。 支持广泛、易于修改由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。强大系统硬件描述能力VHDL具有多层

19、次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。独立于器件的设计、与工艺无关设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。很强的移植能力VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述

20、的移植成为可能。易于共享和复用VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。3、PPM(脉位调制)系统设计方案与讨论要想做出脉冲位置调制(PPM)系统的设计方案,首相我们要对PPM信号的特点及基本原理有一个基础的认识。PPM信号可以描述为:如图4所示,将一段时间分成M等份,每等份称为一个时隙,在一帧的时间内的某个时隙发出一个脉冲。这一帧时间就是一个PPM信号,它包括M个时隙和一个保护时间。设一帧传输时间

21、为T 秒,那么PPM信号的码元长度就为T秒,于是我们可以得出PPM信号信息传递速率为1/T 比特/秒。图4 PPM信号每帧信号的结构图3.1 调制系统的设计方案及讨论 根据PPM信号的特点和原理,我们可以初步得到以下几种调制方案:3.1.1 调制系统的几种设计方案方案一:单片机外部中断检测法当有外部信号输入时,用单片机的外部中断去捕捉这个信号,通过逐个分析所接收到的各码元的高低电平决定输出引脚的输出信号。具体实施方法如下。在某一时刻,当外部中断捕捉到的信号码元为 “0”时,输出引脚输出为“1000”;而当外部中断接收到的信号码元为“1”时,单片机输出引脚输出为“0010”。需要注意的一点是,单

22、片机输出码元序列“1000”或“0010”的时间总长度要等于输入时单个码元的长度。方案二:加法器计数输出法脉冲位置调制系统的调制信号本质上是脉冲出现在一个码元持续时间内的相对位置不同。其实,PPM调制实际上就是一个计数输出脉冲的过程。在某一特定的时刻,外部输入信号的高电平或低电平用以决定加法器计数的个数(以下简称设定值),当计数器计数到设定值时,计数器的输出引脚会输出一定时长的脉冲。方案三:CPLD 综合设计法CPLD综合设计法,是在充分利用可编程逻辑器件的编程灵活性、集成度高等特点,通过变成在CPLD 内部构建出串/并变换模块、二进制分频器、比较器和窄脉冲形成器等模块,在对各模块进行有机的结

23、合即可实现PPM信号的产生。3.1.2几种调制方案的对比与选择 方案一通过单片机外部中断进行对输入信号加以检测,本方案具有物理电路简单,容易操作等优点。但单片机运行速度太慢,当连续的二进制码元进入单片机检测引脚时,单片机的中断设备可能会因反应速度不够灵敏而导致对输入信号的误判。此外,利用单片机外部中断检测输入信号时,保证输入二进制码元的时间长度已知,才能较为精确地检测出各码元的点评高低,否则容易造成大幅度的误判。由上可知,点偏激外部中断检测法会导致脉冲位置调制信号高误码率,因此在本设计中不采用此方案。方案二通过加法器的计数实现脉冲位置的变化。但本方案设计的难点在于如何有效的利用连续不断的二进制

24、数列来控制加法器的计数设定值。因为加法器与单片机均面临着处理速度有限的问题,因此会很容易造成码元的误判及跳跃性判决导致加法器输出信号存在较大的误码率。综合以上两种方案的不足,我们考虑到运用集成度高,处理速度快的可编程逻辑器件。方案三通过编程够造出了串/并变换模块、二进制分频器、比较器和窄脉冲形成器等模块,将各模块有机的结合在一起后,不仅具有运行速度快的特点,信号的输出也会非常稳定,因此我们在本次设计中选用方案三。3.2 解调系统的设计方案及讨论3.2.1 解调系统的几种设计方案下图是二进制PPM信号的时间结构图,每个码元长度都被均分为了四等份,而二进制码“0”或“1”均由某一份时间内的脉冲来表

25、示。其中“0”所对应的脉冲出现在每个码元长度内第一等份的时间内,而“1”所对应的脉冲出现在每个码元长度内的第三等份的时间内。 图5 二进制PPM信号时间结构图方案一:码元分割法因为PPM信号的特点是,脉冲在每个码元时间长度内出现的位置不同来表示不同的码元。码元分割法的思路是首先将每个码元所在的时间段划分出来,然后从每个码元时间开始进行计时直至检测到高电平的位置。然后根据计时时间长度的不同来反应出不同的脉冲位置。方案二:抽样检测法 抽样检测法的思路是在每个码元时间长度的第一等份的时间内进行抽样检测,如果检测到的电平为高,则对应的二进制码为“0”,如检测到的电平为低,则对应的二进制码为“1” 。方

26、案三:最长/最短脉冲位置检测法 由图5可以看出连续的两个二进制码元,如连续的“1”与“1”码元中两个脉冲之间的距离为4个等份的时间长度。而当码元由“1”跳变为“0”时,两个脉冲之间的距离为1个等份的时间长度(成为最短脉冲位置)。相应的,当码元由“0”跳变为“1”时,两个脉冲之间的距离为5个等份的时间长度(成为最长脉冲位置)。因此,对于PPM信号,我们只需检测出最长与最短脉冲位置,既可得知电平的跳变情况,进而恢复出原信号。3.2.2几种解调方案的对比与选择 方案一通过对PPM信号的每个码元加以分割,然后检测脉冲所在的位置来恢复原信号。但本方案中码元的精确分割不易于实现,而且这种行为需要处理器极高

27、的反应速度,成分较高。 方案二的抽样检测法原理相对简单,但本方案的实现难点在与检测信号的产生。在本人目前的能力范围内,无法实现,因此放弃此方案。 方案三此方案实现起来相对于方案二相对复杂,但利用CPLD具有极强的编程灵活性可实现时间长度的检测电路,物理结构简单,且CPLD处理速度快,误码率低,因此本设计中我们选用方案三。4、PPM(脉位调制)系统的设计PPM调制与解调系统的主要功能如下:对输入的数字信号进行调制得到窄脉冲PPM信号以便在信道上传输;接收端对接收到的PPM信号进行解调还原出数字信号。PPM调制实际上就是一个计数输出脉冲的过程。时隙分频器的分频比由脉宽控制信号控制,帧分频器对时隙信

28、号计数,当计数值与调制数据相比较,当二者相等时就输出脉冲,当计数值与调制的进制数相等时就输出帧信号。输出的PPM脉冲信号和帧信号经过输出模块输出给解调器。同时时隙信号也输出给解调器。 PPM解调器计数其对时隙信号计数,当出现PPM脉冲时就输出计数值,帧信号的作用是对计数器清零。解调后的数据经过输出模块输出。产生PPM(Pulse Position Modulation)脉冲位置调制的方法很多,其中一种简单的PPM调制与解调如图6所示。图中的PPM调制部分是由串/并变换、二进制分频器、比较器和窄脉冲形成器构成;PPM解调部分是由整形电路、时钟提取电路和脉冲位置检测电路和译码器构成。时钟信码串/并

29、变换器比较器二进制分频器脉冲位置调制窄脉冲形成器整形电路时钟提取译码器PPM信号产生信码 图6PPM调制系统模型框图4.1 PPM系统调制器4.1.1 PPM调制原理图6所示的串/并变换器相当于一个二进制加法器,设输入信号为a,当a为1时,经过加法器变为10,当a为0时,经过加法器变为00.图6中的二进制分频器是4分频器,输出高低2位二进制信号。比较器用于比较分频器输出的高位与加法器的高位,以及分频器的低位与加法器的低位,当它们相同时则输出为“1”,否则输出“0”。由于分频器的2位输出对应四种状态(00、01、10、11),每种状态是依次输出的,这也就说明不同的状态对应不同的时间位置,而串/并

30、变换器只输出两种状态(00、10),这与分频器输出的四种状态中的两种状态相同,在比较器中只有在分频器输出(00、10)这两种状态时才输出为“1”,其他情况下则输出“0”,又由于在分频器的一个分频周期内,分频器只输出四个不同2位码,那么在一个分频周期内,比较器只输出一个“1”脉冲。该脉冲的起始位置根据信码的电平不同而变化。这样就可得到随信码的电平不同输出脉冲起始位置不同的输出信息。脉冲形成器是通过一个D触发器对比较器的输出信号进行整形即进行一个时钟周期的延迟并反相后再与比较器的输出信号相与,这样就得到了窄脉冲PPM信号。4.1.2 PPM调制器的VHDL设计顶层电路图利用Quartus-II软件

31、设计的PPM调制器的VHDL顶层电路图如图7所示。 图7 PPM调制器的VHDL设计顶层电路图下面以信码序列“”为例,将调制过程以图示方式加以说明:如图8所示,分频器依次输出00、01、10、11四个电平,而加法器(串/并转换器)则陆续输出00、10两个电平,且加法器输出的一个电平持续时间是分频器输出一个电平持续时间的4倍。而当分频器输出的高低位分别与加法器输出的高低位相同时,则脉冲形成器输出一个高电平,这时得到的即为PPM信号。然后将PPM经过一个D触发器,对已产生的PPM信号进行整形,避免出现冒险现象(毛刺)。图8 PPM信号产生的图示说明4.1.3 PPM调制器各模块的程序设计及仿真结果

32、1.加法器(串/并变换)的程序设计-jiafaqi; function:serial to parallellibrary ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity jiafaqi_1 is port(a:in std_logic; out1,out2:out std_logic); end entity jiafaqi_1; architecture arch of jiafaqi_1 is begin out1=(a or a)and(a nand a); out2=not(a na

33、nd a); end arch;2.分频器的程序设计-fenpinqi; function:二进制分频,两位输出library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity fenpin is port(clk:in std_logic; outp0,outp1:out std_logic); end entity fenpin; architecture arch of fenpin is begin process(clk) variable sum:std_logic_vector(2

34、 downto 0);beginif rising_edge(clk) thensum:=sum+1;outp0=sum(0);outp1=sum(1);if sum=4 thensum:=000;end if;end if; end process; end arch;3.比较器的程序设计-bijiaoqi_1; function:将比较器和分频器的输出信号号的高低对应位进行比较library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity bijiaoqi_1 is port(a1,a2,

35、b1,b2:in std_logic; m:out std_logic); end entity bijiaoqi_1; architecture arch of bijiaoqi_1 is signal zdf1,zdf2: std_logic; beginprocess(a1,a2,b1,b2)beginzdf1 =a1 xor b1; zdf2 =a2 xor b2; if zdf1=0 and zdf2=0then m=not zdf1; else mbj,b=e,o=out4); m2:djhnand port map(a=g,o=e); m3:djhlatch port map(d

36、=bj,q1=g,ena=clk4);end arch; library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity djhand is port(a,b:in std_logic; o:out std_logic); end entity djhand; architecture arch of djhand is begin o=a and b;end arch; library ieee; use ieee.std_logic_1164.all; use ieee.std_logic

37、_unsigned.all; entity djhnand is port(a:in std_logic; o:out std_logic); end entity djhnand; architecture arch of djhnand is begin o=not a;end arch; library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity djhlatch is port(d,ena:in std_logic; q1:out std_logic); end entity djhlatch; architecture arch o

温馨提示

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

最新文档

评论

0/150

提交评论