• / 67
  • 下载费用:8 金币  

1.5_嵌入式系统设计过程

关 键 词:
嵌入式系统设计
资源描述:
1.3 嵌入式系统设计过程 本节,主要介绍嵌入式系统设计的 一般过程和嵌入式系统设计的主要步骤 。 嵌入式系统与通用计算机的差别: Ø人机交互界面 Ø有限的功能 Ø时间关键性和稳定性 嵌入式软件开发的特点 Ø需要交叉开发环境 宿主机、目标机、交叉软件开发工具 Ø引入任务设计方法 DARTS(Design and Analysis of Real -Time System) Ø需要固化程序 开发环境和运行环境不同 Ø软件开发难度大 我们将采用自顶向下的方法, 从对系统最抽象的描述开始, 一步一步地推进到细节内容。 如图如图1-31-3所示,所示, 首先从系统需求开始。 然后是规格说明,在这一步对想要的进行更加细致地描 述,但是规格说明只对系统如何工作(工作过程)进行了 描述,这些描述并不涉及它的组成。 系统内部的详细构造要在开发系统的体系结构时才能展 现出来,这一阶段以大的构件为单位给出了系统的结构 。 一旦知道了需要的构件,就可以设计这些构件,包括软 件模块和任何所需要的专用硬件模块。在这些构件的基 础上,可以构造出所需要的完整的系统。 如图1-3所示,首先从系统需求开始 。然后是规格说明,在这一步对想要的进行更 加细致地描述,但是规格说明只对系统如何工 作进行了描述,这些描述并不涉及它的组成。 系统内部的详细构造要在开发系统的 体系结构时才能展现出来,这一阶段以大的构 件为单位给出了系统的结构。 一旦知道了需要的构件,就可以设计 这些构件,包括软件模块和任何所需要的专用 硬件模块。在这些构件的基础上,可以构造出 所需要的完整的系统。 1.系统需求分析 确定设计任务和设计目标,并提炼出设计规格 说明书,作为正式设计指导和验收的标准。系统的 需求一般分功能性需求和非功能性需求两方面。功 能性需求是系统的基本功能,如输入输出信号,操 作方式等;非功能性需求包括系统性能,成本,功 耗,体积,重量等因素。 制订规格说明文档:包括需求规格说明书和初 级的用户手册等。 需求评审。 2.体系结构设计 描述系统如何实现所述的功能和非功能需求, 包括对硬件,软件和执行装置的功能划分.以及系统 的软件,硬件选型等。一个好的体系结构是设计成 功与否的关键。 3.硬件/软件设计 基于体系结构,对系统的软件,硬件进 行详细设计。为了缩短产品开发周期,设计 往往并行的。应该说嵌入式系统设计的工作 大部分都集中在软件设计上,采用采用面向 对象技术,软件组件技术,模块化设计是现 代软件工程经常采用的方法。 4.生成代码阶段 代码编程、交叉编译和链接、交叉调试 Ø5.系统集成 把系统的软件,硬件和执行装置集 成在一起,进行调试,发现并改进单元设计 过程中的错误。 5.系统测试 对设计好的系统进行测试,看其是否满足 规格说明书中给定的功能要求。 针对系统的不同的复杂程度,目前有一些 常用的系统设计方法,如瀑布设计方法,自顶 向下设计的方法,自下向上的设计方法,螺旋 设计方法,逐步细化设计方法和并行设计方法 等,根据设计对象复杂程度的不同,可以灵活 的选择不同的系统设计方法。 1.3.1 需求分析 显然,在设计一个系统之前,必须清 楚在设计什么。在设计的最初阶段,截取这些 信息,以此来设计系统的体系结构和构件。这 一阶段的任务通常通过两种过程来实现: 首先,从客户那里收集系统的非形式 描述(这叫做需求);然后,对需求进行提炼 ,得到系统的规格说明,这些规格说明里包含 了进行系统体系结构设计所需要的足够信息。 1. 需求与规格说明 区分需求和规格说明是必要的,因为在客户关于 所需系统的描述和体系结构系统设计师所需的信息之 间存在极大的距离。 嵌入式系统的客户通常不是嵌入式系统的设计人 员,甚至也不是最终产品的设计人员,他们对嵌入式 系统的理解是建立在他们想象的与系统之间的交互的 基础上的,对系统可能有一些不切实际的期望,或者 是使用他们自己的话而不是专业术语来表达其需求。 将客户的描述转化为系统设计者的描述的结构化 方法就是从客户的需求中获取一组一致性的需求,然 后从中整理成正式的规格说明。 通常,需求包括功能部分和非功能部 分。当然,我们必须从中获取系统的基本功能 ,但是,只有功能的描述是不够的。非功能需 求包括: (1) 性能 系统的处理速度通常是该系统的实用 性和最终成本的主要决定因素。正如我们已经 注意到的,性能是软件性能度量(如执行一个用 户级函数的大致时间和必须完成的一个特定操 作的硬时限)的组合。 (2) 价格 产品最终的成本或者销售价格也是一 个主要的考虑因素。产品的成本包含两个主要 部分:生产成本,包括购买构件以及组装它们 的花费;不可再生的工程成本(NRE), 包括人 力成本以及设计系统的其他花费。 (3) 系统的尺寸和重量 最终产品的物理特性会因为使用的领 域不同而大不相同。一台控制装配线的工业控 制系统通常装配在一个标准尺寸的柜子里,它 对重量没有什么约束,但是手持设备对系统的 尺寸和重量就有很严格的限制。 (4) 功耗 对于那些靠电池来供电的系统以 及其他一些电器来说,电源是十分重要的 ,电源问题在需求阶段以电池寿命的方式 提出。因为顾客通常不能够以瓦为单位描 述允许的功率。 2. 确认需求、需求评审 确认这一系列的需求不仅需要理解什么是 用户需要的,而且需要理解他们是如何表达这些需求 的。精炼系统需求的好方法,至少是精精炼用户界面 部分的方法是建立一个模型。这个模型可以使用已存 数据来模拟功能,并且可以在个人电脑或工作站上运 行。它应该让用户了解系统是如何使用的,以及用户 如何和它进行交互。 通常,设备的非功能模型可以让用户了解 系统的特性,比如系统的尺寸和重量。 需求评审的内容包括正确性、无歧义性、 安全性、一致性、可修改性等。 3. 简单的需求表格 对一个大系统进行需求分析是一项 复杂而费时的工作,但是,取得相对少量的 格式清晰、简单的信息是理解系统需求的一 个好的开始。 表1-2展示了一个需求表格的样本 ,这个表格在某项工程的开始时填写。在考 虑系统基本特征时可以将这个表格作为检查 表。 表格内容包括: (1) 名称 这一项十分简单,但却十分有用。给 该项工程取一个名字不仅在和别人讨论这个工 程时更加方便,也可以使设计的目的更加明确 。 (2) 目的 这一项可以是简单的一到两行的关于 系统将要满足的需求的描述,如果你不能用一 两句话来描述你所设计的系统的主要特性的话 ,说明你还不是十分了解它。 (3) 输入和输出 这两项内容比较复杂,对系统的输入 和输出包含了大量细节: ① 数据类型:模拟电信号?数字数据?机 械输入? ② 数据特性:周期性到达的数据,比如数 字音频信号?或者是用户的输入?每个数据元素 多少位? ③ 输入/输出设备的类型:按键?模/数 转换器?视频显示器? (4) 功能 这一项是关于系统所做的工 作的更加详细的描述。从输入到输出 进行分析是提出功能的一种好方法: 当系统接收到输入时,它执行哪些动 作?用户通过界面输入的数据如何对 该功能产生影响?不同功能之间是如 何相互作用的? (5) 性能 许多嵌入式系统都要花费一 定的时间来控制物理设备,或是处理 从外界输入的数据。 在大部分情况下,这些计算 必须在一定的时间内处理完,对性能 的要求必须尽早地明确,因为这些要 求在执行过程中得认真加以考虑,以 便随时检查我们的系统是否达到了这 些要求。 (6) 生产成本 这中间主要包含了硬件构件的花 费。如果你不能确定将要花费在硬件构件 上的费用的确切数目,那么你起码得对最 终产品的价格有一个粗略的了解。 因为价格最终影响了系统的体系 结构:一台将要以10美元出售的设备的内 部结构和一台打算以100美元出售的机器 的内部结构肯定是不同的。 (7) 功耗 对系统的功耗你可能只有一个粗略的 了解。但是,没有关于这方面的信息是不行的 。通常,决定系统是靠电池供电还是通过墙上 的插座供电是系统设计过程中的一个重大决定 。靠电池供电的系统必须认真地对功耗问题进 行考虑。 (8) 物理尺寸和重量 对系统的物理尺寸和重量有一定的了 解有助于对系统体系结构的设计。一台台式机 在对构件的选择上比那些佩带式录音机要宽松 得多。 对一个大系统进行更加深入的需 求分析可以使用与表1-2类似的表格作为 更长的需求文档的总结。 在介绍完关于这个表格的章节之 后,更长的需求文档包括上面提到的每一 项的细节。 例如,前面用一句话描述的每个 单个的特征可能在规格说明中被详细描述 为一节。 4. 需求的内部一致性 在写完需求分析以后,你应该 对它们的内部一致性进行检查: 是否忘记了给某个功能指定输 入或输出? 是否考虑了系统运行的所有方 式? 是否把一些不切实际的要求放到了 一个电池供电、低成本的机器中了? 为了练习如何获得系统需求,示例1.1 创建了GPS移动地图系统的需求。 示例1.1 GPS移动地图的需求分 析,移动地图是一种手持设备,该设备为 用户显示他当前所处位置周围的地形的一 张地图;地图的内容随着用户以及该设备 所处的位置的改变而改变。 移动地图从GPS上得到其位置信 息,GPS是一个卫星导航系统。 移动地图的显示如图1-4所示。 针对GPS移动地图我们有什 么需求?下面是一些最初的清单: Ø功能性 本系统主要针对高速公路上开车的用户 或类似用户,而不是需要使用更专用的数据库和功能 的航海或航空人员。系统应展示可在标准地形图数据 库中得到的主要道路和其他陆地标志。 Ø用户界面 屏幕至少应该有400×600像素分辨率 。该设备的控制按钮不应多于三个。按下按钮时菜单 系统应在屏幕上弹出,允许用户系统控制做出选择。 Ø性能 地图应该平滑滚动。加电后,显示在1秒钟 内出现,系统应可以核查其位置并在15秒内显示当前 地图。 (4)成本 单个设备售价(零售价)不高于500 美元。 (5)设备物理尺寸和重量应非常适于放在手 掌中。 (6)功耗 四节AA电池至少可以连续运行8 小时。 注意:上述许多需求并不是按工程单位规 定的,例如,物理尺寸是相对于手而不是用厘 米标出的。虽然这些需求必须最终转换成可以 被设计者使用的某种东西,但是保持某种顾客 想要的记录将有助于解决设计期间后期出现的 有关规格说明的问题。 基于上述讨论,让我们为移动地图 系统编写一份需求表格,如表1-3: 名称CPS移动动地图图 目的为驾驶为驾驶 者提供的用户级户级 移动动地图图 输输入一个电电源按钮钮,两个控制按钮钮 输输出逆光LCD,显显示400×600像素分辨率 功能使用5种接收器的GPS系统统;三种用户户 可选选的分辨率总总是显显示当前的经纬经纬 度 性能0.25s内即可更新一次屏幕 生产产成本100美元 功耗100mW 物理尺寸和重量不大于2×16m2,12盎司(约约340g) 表1-3加上了设计人员所要使 用的某些用工程术语表述的需求。 例如,它提供了设备的实际尺 寸。 生产成本与销售价格有关, 通过使用简单的经验法则可以得到: 销售价4~5倍于所售商品的成本(所有 构件的成本之和)。 1.3.2 规格说明 规格说明更精确一些,它起 到客户和生产者之间的合同的作用。 正因为如此,规格说明必须 小心编写,以便精确地反映客户的需 求并且作为设计时必须明确遵循的要 求。 规格说明应该足够明晰,以便别人可以验 证它是否符合系统需求并且完全满足客户的期 望。它亦不能有歧义,设计者应知道什么是他 们需要构造的。 设计者可能碰到各种不同类型的由于不明 确的规格说明而导致的问题。 如果在某个特定的状况下的某些特性的行 为在规格说明中不明确,那么设计者可能实现 错误的功能。 如果规格说明的全局特征是错的或者是不 完整的,那么由该规格说明建造的整个系统体 系结构可能就不符合实现的要求。 GPS系统的规格说明包括下列构件 : Ø从GPS卫星接收到的数据。 Ø地图数据。 Ø用户界面。 Ø必须执行的满足客户需求的操作。 Ø保持系统运行所需的后备动作,如操 纵GPS接收机。 1.3.3 体系结构设计 规格说明不讲系统如何做,而只是 讲系统做什么。 描述系统如何实现那些功能是体系 结构的目的。 体系结构是系统整体结构的一个计 划,而后用于设计搭建整个体系结构的构件 。 体系结构的创建是许多设计者认为 的设计的第一阶段。 为了理解体系结构描述是什么,让我们来看 一下示例1.1的移动地图样例的体系结构。 图1-5以框图形式展示了样例系统体系结构, 这些框图展示了它的主要操作和其间的数据流. 框图仍很抽象,还没有规定运行在CPU上 的软件执行什么操作,专用硬件完成什么等等. 不过,为描述如何实现在规格说明中规定的功能 框图还要做许多事情。 例如,可以清楚地看到需要搜索地形图数据 库、绘制显示的结果。我们已经选择分离那些功 能以便可能并行地完成这些工作,比如从搜索数 据库分离出绘制功能可以有助于更平滑地更新屏 幕。 只有在设计了一个并未偏向于太多实现细 节的初始体系结构之后,才可能把系统框图细分成两 部分框图:一部分针对硬件,另一部分针对软件。这 两部分细化过的框图如图1-6所示。 硬件框图清楚地展示了有一个CPU,周围 有存储器和I/O设备。尤其是,我们已选择使用两种存 储器:一种是针对像素显示的帧缓冲器,另一种是 CPU使用的通用程序/数据存储器。 软件框图基本上与系统框图一致,但是增 加了一个计时器,控制何时读取用户界面上的按钮, 并在屏幕上绘制数据。为了得到一个真正完整的体系 结构描述,我们需要更多细节,比如软件框图中的单 元在硬件框图的什么地方执行,何时操作准时执行等 。 体系结构描述必须同时满足功能上和 非功能上的需求。不仅所需求的功能要体 现,而且必须符合成本、速度、功率和其 他非功能上的约束。 先从系统体系结构开始,逐步把这一 结构细化为硬件和软件体系结构是确保系 统符合所有规格说明的一种好方法. 首先集中考虑系统框图中的功能元素 。 然后在建造硬件和软件体系结构时考 虑非功能约束。 如何知道硬件和软件体系结构实际上符合 速度、成本等方面的限制呢? Ø必须有某种方式估算框图中的构件,如移 动地图系统中的搜索和绘制功能的特性。 Ø精确估算源于经验,既有一般的设计经验 也有类似系统的特定经验。 Ø不过,有时建造一个简化的模型有助于做 出更精确的估算。在体系结构建造阶段所有非 功能约束的合理估算是至关重要的,因为基于 有问题的数据的决策在设计的最后阶段会显现 出来,表明我们的设计实际上不符合规格说明 。 1.3.4 设计硬件构件和软件构件 体系结构描述告诉我们需要什么样的构件。构件 设计使得构件与体系结构和规格说明一致。 构件通常既包括硬件——现场可编程门阵列 (FPGA) ﹑ ﹑电路板等等,还包括软件模块。 一些构件是现成的,例如CPU在任何情况下都是 一个标准构件,同样的还有存储器芯片和很多其他构 件。在移动地图中,GPS接收器虽然是预先设计的标 准构件。利用标准软件模块,访问标准地形数据库。 这些数据库的数据不仅使用预定义的格式,而且被高 度地压缩以节省存储空间。在这些访问函数中使用标 准软件不仅节约设计时间,也较快地实现像数据解压 缩这样的专用函数。 但是,我们必须自己设计一些构件, 即使使用标准集成电路,也必须设计连接它们 的印刷线路板。 同时,很有可能要做大量定制编程。 当然,建立嵌入式软件模块时,你必须用你的专 业技能确保系统实时性良好并且在允许的范围 内不占用更多的存储空间。 移动地图软件例子中的电能消耗特别 重要,你可能要非常小心地读写存储器以减小 功耗,例如,由于存储器访问是主要的功耗来 源,存储器事务必须精心安排以避免多次读取 同样的数据。 软件系统设计 包括系统设计、任务设计和任务的详 细设计。系统设计将系统划分为多个并发执行 的任务,各个任务允许并发执行,通过相互通 信建立联系。 DARTS 在嵌入式软件中引用DARTS的设计方法。 设计步骤如下: (1)数据流分析 确定主要的功能 (2)划分任务 把可并行、相对独立的功能单元抽象成一个系 统任务。 划分任务的依据:I/O依赖性、时间关键性、计 算量大的任务、功能内聚、时间内聚。 (3) 定义任务间的接口 任务通信模块和任务同步模块 一种嵌入式系统设计仿真环境 Ø实时软件系统在运行时的实时性能是一个很重 要的问题,是实时软件质量的一个重要方面。 Ø软件系统中任务的划分、模块的划分、任务优 先级的设置、算法设计以及各模块计算时间的长短 、任务间的通信机制等等都将影响系统最终的实时 性能。 Ø“嵌入式系统设计仿真环境”旨在实时软件设计 的早期阶段帮助应用开发人员分析其早期软件模型 的执行流程和实时性能,发现设计中不合理的地方 ,以便及早做修改。 构造可视视化应应用 实时实时 系统软统软 件结结 构 系统实时统实时 性 能评评价模块块 调调用时间时间 数 据库库 分 析 系统统的 结结 事件— 果 时间图时间图 显显 示 事件数 输输 据列表 出 数据流向图图 。 嵌入式系统设计仿真环境嵌入式系统设计仿真环境 该设计仿真环境是一个多窗口界面、多 文档类型的Windows应用程序, 用户可以通过系统 结构图、任务结构图、和中断结构图来描述应用系 统。 Ø系统结构图 在“系统结构图”中,要描述出实时应用程 序的任务组成及任务之间的相互关系,以及中断和 任务间的相互关系。 当用户点击键盘时,键盘中断1发生,在键盘 中断的处理程序中,发信号通知“处理键盘输入任务” 有字符 键入,然后“处理键盘输入任务”从键盘缓冲区中取出字符, 把它存入一个信箱中,并以信号的方式通知“控制屏幕显示任 务”,然后后者从信箱中取出字符,经处理后送入屏幕处理的 I/0,在屏幕上显示出来。同时,时钟中断2每秒发生,发出 “秒发生信号”给“控制屏幕显示任务”,由它把表示当前时间的 变量加一后, 经处理后送入屏幕处理的I/0,在屏幕上显示当 前的时间 。 任务结构图 图中的图中的sendsend表示把消息表示把消息 BufferBuffer发送到发送到MailMail的信箱,的信箱, 而而runningrunning表示顺序执行了表示顺序执行了 200200个微秒的时间块。个微秒的时间块。 任务结构视图任务结构视图 操作系操作系统调统调 用用时间时间 列表列表 结果列表视图结果列表视图 以以“ “事件事件————时间图时间图 ” ”的方式的方式显显示的示的结果列表视图结果列表视图 生成代码阶段 Ø代码编程 Ø交叉编译和链接:将嵌入式操作系统的 内 核包和嵌入式应用的软件包链接成 一个 映像文件 Ø交叉调试: 调试器运行于宿主机的OS上,而被 调试程序运行于目标机的嵌入式操作系统上 。调试器和被调试程序运行可以通信。(监控 器方式) 交叉调试的特点: Ø调试器和被调试程序运行在不同的机器 上 Ø调试器通过某种通信方式和目标机建立 联系 Ø在目标机上的调试代理 Ø可以通过在宿主机上的仿真机来仿真目 标机。 1.3.5 系统集成 只有建立构件后才能将它们合并得到一个 能运转的系统,当然这个阶段不仅仅是把所有 的东西插在一起。在系统集成中通常可以发现 错误,而好的计划能帮助我们快速找到这些错 误。 按阶段架构系统并且正确运行选好的测试 ,经常能更容易地找到这些错误。如果每次只 对一部分模块排错,很可能更容易发现和识别 简单的错误。只有在早期修正这些简单的错误 ,才能发现那些只有在系统高负荷时才能确定 的、比较复杂或是含混的错误。 我们必须确保在体系结构和各构件 设计阶段尽可能容易地按阶段组装系统 和相对独立地测试系统功能。 因为嵌入式系统使用的调试工具比 在桌面系统中可找到的工具有限得多, 因此,要在系统集成时发现问题,需要 详细地观察系统以准确确定错误。 1.3.6 系统测试 对设计好的系统进行测试,看其是否满足 规格说明书中给定的功能要求。 针对系统的复杂程度不同,目前有一些常 用的系统设计方法,如瀑布设计方法、自顶向 下的设计方法、自下向上的设计方法、螺旋设 计方法、逐步细化设计方法和并行设计方法等 ,根据设计对象复杂程度的不同,可以灵活地 选择不同的系统设计方法。 1.4 本章小结 本章主要介绍了嵌入式系统 的概念、嵌入式系统的特点及分类 、嵌入式系统的主要应用领域、主 流嵌入式微处理器、主流嵌入式实 时操作系统以及嵌入式系统设计方 法,希望读者能够通过对本章的阅 读,对以上知识作到初步掌握,为 学习以后章节知识打好基础。 嵌入式系统统的一般设计设计 方法 通常在单单片机系统统中的开发发和应应用中,是按照如图图1-7所示 的流程进进行的。 可见见,在嵌入式系统统的开发发的过过程中,因为对应为对应 每一个处处 理器的硬件平台都是通用的,固定的,成熟的。所以,再开发发 过过程中减少了硬件系统错误统错误 的引入机会;同时时,因为为嵌入式操 作系统统屏蔽掉了底层层硬件的很多复杂杂信息,使得开发发者通过过操 作系统统提供的API函数可以完成大部分工作,大大地简简化了开 发过发过 程,提高了系统统的稳稳定性。 综综上所述,嵌入式系统统的开发发可以说说是把开发发者从反复进进 行硬件平台设计过设计过 程中解放出来,从而可以把主要的精力放在 编编写特定的应应用程序上。这这个过过程更类类似于系统统机(如PC机) 上的某个操作系统统下开发发程序。 练 习 题 1.嵌入式系统的定义。 2.嵌入式系统有哪些特点? 3.嵌入式系统是如何分类的? 4.简述嵌入式处理器、嵌入式实时操作 系统的种类和特点。 5.如何选择嵌入式处理器和嵌入式操作 系统? 6.简述嵌入式系统的设计过程。 图 1-3 设计过程的主要抽象层次 需求分析 规格说明 体系结构设计 硬件设计 系统集成 系统测试 产品 软件设计 执行装置设计 返回 名称 目的 输输入 输输出 功能 性能 生产产成本 功耗 物理尺寸和重量 表1-2需求表格样本 返回 图 1-4 GPS移动地图 纬度:4013 经度:3219 1-78 苏 格 兰 路 用户所在 位置经纬 度 用户当 前位置 返回 基于上述讨论,让我们为移动地图 系统编写一份需求表格,如表1-3: 名称CPS移动动地图图 目的为驾驶为驾驶 者提供的用户级户级 移动动地图图 输输入一个电电源按钮钮,两个控制按钮钮 输输出逆光LCD,显显示400×600像素分辨率 功能使用5种接收器的GPS系统统;三种用户户 可选选的分辨率总总是显显示当前的经纬经纬 度 性能0.25s内即可更新一次屏幕 生产产成本100美元 功耗100mW 物理尺寸和重量不大于2×16m2,12盎司(约约340g) 返回 GPS接受信号 数据库 显示器 搜索引擎转换器 用户界面 图1-5 移动地图框图 返回 显示器 Zhen 缓冲器 CPU GPS信号接收器 I/O面板 存储器 硬件 数据库搜索 转换器 位置用户界面 时钟 像 素 软件 返回 图1-6移动地图的硬件和软件系统 用户需求 开发结束整个系统测试 按照设计的硬件平台编写软件 软件测试通过 选择处理器设计硬件平台 否 是 遇到硬件问题 修改硬件平台 否 是 单片机系统的开发流程 用户需求 开发结束整个系统测试 选择合适的嵌入式操作系统 在操作系统上开发应用程序 应用程序测试通过 选择嵌入式处理器 及硬件平台 否 是 嵌入式系统开发流程 返回
展开阅读全文
  麦档网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:1.5_嵌入式系统设计过程
链接地址:https://www.maidoc.com/p-15698417.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2018-2020 maidoc.com版权所有  文库上传用户QQ群:3303921 

麦档网为“文档C2C模式”,即用户上传的文档所得金币直接给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的金币归上传人(含作者)所有。
备案号:蜀ICP备17040478号-3  
川公网安备:51019002001290号 

本站提供办公文档学习资料考试资料文档下载


收起
展开