收藏 分销(赏)

嵌入式系统原理嵌入式系统开发技术.pptx

上传人:胜**** 文档编号:886849 上传时间:2024-04-02 格式:PPTX 页数:142 大小:519.51KB
下载 相关 举报
嵌入式系统原理嵌入式系统开发技术.pptx_第1页
第1页 / 共142页
嵌入式系统原理嵌入式系统开发技术.pptx_第2页
第2页 / 共142页
嵌入式系统原理嵌入式系统开发技术.pptx_第3页
第3页 / 共142页
嵌入式系统原理嵌入式系统开发技术.pptx_第4页
第4页 / 共142页
嵌入式系统原理嵌入式系统开发技术.pptx_第5页
第5页 / 共142页
点击查看更多>>
资源描述

1、2024/3/29 周五华中科技大学计算机学院1第第2 2章章 嵌入式系统开发技术嵌入式系统开发技术 嵌入式系统的设计开发与一般计算机系统硬软件设嵌入式系统的设计开发与一般计算机系统硬软件设计方法有很大不同计方法有很大不同.知识面同时覆盖硬件知识面同时覆盖硬件,软件软件,应用对应用对象的特性象的特性(如机械方面如机械方面,电机传动方面等电机传动方面等).本章讨论下本章讨论下面问题面问题:1.嵌入式系统的结构分析嵌入式系统的结构分析2.嵌入式系统的设计方法嵌入式系统的设计方法3.嵌入式系统开发技术嵌入式系统开发技术4.嵌入式系统的调试技术嵌入式系统的调试技术5.嵌入式系统的开发技术的发展趋势及其

2、挑战嵌入式系统的开发技术的发展趋势及其挑战2024/3/29 周五华中科技大学计算机学院22.1 2.1 嵌入式系统的结构分析嵌入式系统的结构分析n一个嵌入式系统一般都由嵌入式计算机系统和执行一个嵌入式系统一般都由嵌入式计算机系统和执行装置装置(被控对象被控对象)组成组成.见见P16 图图2-1n而嵌入式计算机系统一般包括而嵌入式计算机系统一般包括:硬件层硬件层,中间层中间层,(系统系统)软件层软件层,应用软件层应用软件层(功能层功能层)n执行装置也称为被控对象执行装置也称为被控对象,它接受系统发出的控制命它接受系统发出的控制命令令,执行规定的操作或任务执行规定的操作或任务.如手机中的微型电机

3、如手机中的微型电机,机机床等设备中的伺服电机床等设备中的伺服电机,冶炼中的热电耦冶炼中的热电耦,石油化工石油化工企业用的流量计企业用的流量计,铁路信号连锁控制器等铁路信号连锁控制器等.n本章分别介绍嵌入式计算机系统中的本章分别介绍嵌入式计算机系统中的1.硬件层硬件层;2.中间层中间层;3.系统软件层系统软件层;以及以及4.应用软件层应用软件层2024/3/29 周五华中科技大学计算机学院3图2-1 嵌入式系统的组成结构玻璃配料:参考资料GLASS BATCHING.doc2024/3/29 周五华中科技大学计算机学院42.1.1 2.1.1 硬件层硬件层n硬件层主要由嵌入式微处理器硬件层主要由

4、嵌入式微处理器,存储器存储器SDRAM、ROM、Flash等等,电源电路、时钟电路、复位电路、存储器控制电路电源电路、时钟电路、复位电路、存储器控制电路组成组成嵌入式基本系统嵌入式基本系统.n根据需要选定通用设备接口和根据需要选定通用设备接口和I/O接口接口(A/D、D/A、开关、开关、键盘按钮、传感器、键盘按钮、传感器、LED/LCD等等)等组成等组成.形成完整的嵌入式形成完整的嵌入式系统系统.n专用集成电路芯片专用集成电路芯片(ASIC,Application Specific Integrated Circuit),如打印机控制器如打印机控制器,硬盘控制器等硬盘控制器等.n可编程阵列芯片

5、可编程阵列芯片(FPGA和和CPLD)FPGA(Field Programmable Gate Array),即现场可编程),即现场可编程门阵列门阵列 2024/3/29 周五华中科技大学计算机学院52.1.1 2.1.1 硬件层硬件层-可编程芯片可编程芯片(FPGA)(FPGA)nFPGA(FieldProgrammable Gate Array),即现场可编,即现场可编程门阵列程门阵列.nFPGA以硬件描述语言(以硬件描述语言(Verilog 或或 VHDL)所完成的电路)所完成的电路设计,设计,可以经过简单的综合与布局,快速的烧录至可以经过简单的综合与布局,快速的烧录至 FPGA 上上进

6、行测试,是现代进行测试,是现代 IC 设计验证的技术主流。设计验证的技术主流。nFPGA中的可编辑元件可以被用来实现一些基本的逻辑门电中的可编辑元件可以被用来实现一些基本的逻辑门电路(比如路(比如AND、OR、XOR、NOT)或者更复杂一些的组合)或者更复杂一些的组合功能比如解码器或数学方程式。功能比如解码器或数学方程式。n在大多数的在大多数的FPGA里面,这些可编辑的元件里也包含记忆元里面,这些可编辑的元件里也包含记忆元件例如触发器(件例如触发器(flipflop)或者其他更加完整的记忆块。)或者其他更加完整的记忆块。进一步阅读资料进一步阅读资料:参考资料参考资料CPLD、FPGA、及、及I

7、P核参考文献核参考文献FPGA介绍介绍.doc2024/3/29 周五华中科技大学计算机学院62.1.1 2.1.1 硬件层硬件层-可编程芯片可编程芯片(CPLD)(CPLD)nCPLD(Complex Programmable Logic Device)复杂可编复杂可编程逻辑器件,属于规模大,结构复杂的大规模集成电路范围。程逻辑器件,属于规模大,结构复杂的大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。路。nCPLD的基本设计方法是借助集成开发软件平台,用原理图、的基本设计方法是借助集成开发软件平台,用原理图、硬

8、件描述语言等方法,生成相应的目标文件,通过下载电缆硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统在系统”编程)将代码传送到目标芯片中,实现设计的编程)将代码传送到目标芯片中,实现设计的数字系统数字系统.nCPLD主要是由可编程逻辑宏单元主要是由可编程逻辑宏单元(MC,Macro Cell)围绕中围绕中心的可编程互连矩阵单元组成。心的可编程互连矩阵单元组成。n其中其中MC结构较复杂,并具有复杂的结构较复杂,并具有复杂的I/O单元互连结构,可由单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。用户根据需要生成特定的电路结构,完成一定的功能。n由于由于CPLD内部采用

9、固定长度的金属线进行各逻辑块的互连,内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。结构时序不完全预测的缺点。n进一步阅读进一步阅读:参考资料参考资料CPLD、FPGA、及、及IP核参考文献核参考文献CPLD介绍介绍.doc2024/3/29 周五华中科技大学计算机学院72.1.2 2.1.2 中间层中间层n硬件层与软件层之间为中间层,也称为硬件抽象层(硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包()

10、或板级支持包(Board Support Package,BSP)。)。n中间层将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬中间层将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关件无关,上层软件开发人员无需关心底层硬件的具体情况,根据,上层软件开发人员无需关心底层硬件的具体情况,根据BSP 层层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入输入/输出操作和硬件设备的配置功能。输出操作和硬件设备的配置功能。BSP具有以下两个特点。具有以下两个特点。n硬件相关性:因为硬件相关性:因为

11、嵌入式实时系统嵌入式实时系统的硬件环境具有应用相关性,而作为上的硬件环境具有应用相关性,而作为上层软层软 件与硬件平台之间的接口件与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具需要为操作系统提供操作和控制具体硬件的方法。体硬件的方法。n操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。的操作系统具有特定的硬件接口形式。nBSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。

12、分与硬件联系紧密的软件模块。n设计一个完整的设计一个完整的BSP需要完成两部分工作:嵌入式系统的需要完成两部分工作:嵌入式系统的硬件初始化硬件初始化以及以及BSP功能,设计功能,设计硬件相关的设备驱动硬件相关的设备驱动。2024/3/29 周五华中科技大学计算机学院82.1.2 2.1.2 中间层中间层-嵌入式系统硬件初始化嵌入式系统硬件初始化 系统初始化可以分为系统初始化可以分为3个主要环节,依次为:个主要环节,依次为:片级初始化、板片级初始化、板级初始化和系统级初始化级初始化和系统级初始化。n片级初始化片级初始化:完成嵌入式微处理器的初始化,包括设置嵌入式微处完成嵌入式微处理器的初始化,包

13、括设置嵌入式微处理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。嵌入式微处理器的局部总线模式等。片级初始化把嵌入式微处理器片级初始化把嵌入式微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。这是一个从上电时的默认状态逐步设置成系统所要求的工作状态。这是一个纯硬件的初始化过程。纯硬件的初始化过程。(如如F28XXDSP,内核先上电,外围后上电,内核先上电,外围后上电)n板级初始化板级初始化:完成嵌入式微处理器以外的完成嵌入式微处理器以外的其他硬件设备的初始化其他硬件设备的初始化。另外,还需

14、设置某些软件的数据结构和参数,为随后的系统级初始另外,还需设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。这是一个同时包含软硬化和应用程序的运行建立硬件和软件环境。这是一个同时包含软硬件两部分在内的初始化过程。件两部分在内的初始化过程。n系统初始化系统初始化:该初始化过程以软件初始化为主,主要进行操作系统该初始化过程以软件初始化为主,主要进行操作系统的初始化的初始化。BSP将对嵌入式微处理器的将对嵌入式微处理器的控制权转交给嵌入式操作系控制权转交给嵌入式操作系统统,由操作系统完成余下的初始化操作,包含加载和初始化与硬件,由操作系统完成余下的初始化操作,包含

15、加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,如网络系统、文件系统等。最后,操作系统创建应用程序件模块,如网络系统、文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口。环境,并将控制权交给应用程序的入口。2024/3/29 周五华中科技大学计算机学院92.1.2 2.1.2 中间层中间层-硬件相关的设备驱动程序硬件相关的设备驱动程序 nBSPBSP的另一个主要功能是的另一个主要功能是硬件相关的设备驱动硬件相关的设备驱动。硬。硬件相关的设备驱动程序的初始化通常是一个从高件相关的设

16、备驱动程序的初始化通常是一个从高到低的过程。到低的过程。n尽管尽管BSPBSP中包含硬件相关的设备驱动程序,但是这中包含硬件相关的设备驱动程序,但是这些设备驱动程序通常不直接由些设备驱动程序通常不直接由BSPBSP使用,而是在系使用,而是在系统初始化过程中由统初始化过程中由BSPBSP将它们与操作系统中通用的将它们与操作系统中通用的设备驱动程序关联起来设备驱动程序关联起来,并在随后的应用中由通,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。用的设备驱动程序调用,实现对硬件设备的操作。n与硬件相关的驱动程序是与硬件相关的驱动程序是BSPBSP设计与开发中另一个设计与开发中另一个

17、非常关键的环节。非常关键的环节。n 参考资料参考资料BSPBSP嵌入式系统中嵌入式系统中BSPBSP的作用及其相关的作用及其相关联环节的分析联环节的分析.pdf.pdf2024/3/29 周五华中科技大学计算机学院102.1.3 2.1.3 系统软件层系统软件层n系统软件层由系统软件层由实时多任务操作系统实时多任务操作系统(Real-time Operation Real-time Operation SystemSystem,RTOSRTOS)、文件系统、图形用户接口()、文件系统、图形用户接口(Graphic User Graphic User InterfaceInterface,GUI

18、GUI)、网络系统及通用组件模块组成。)、网络系统及通用组件模块组成。RTOSRTOS是嵌入是嵌入式应用软件的基础和开发平台。式应用软件的基础和开发平台。nRTOSRTOS负责嵌人系统的全部软、硬件资源的分配、调度工作,控制负责嵌人系统的全部软、硬件资源的分配、调度工作,控制协调并发活动;它必须体现其所在系统的特征,能够通过装卸某协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。些模块来达到系统所要求的功能。nRTOSRTOS在系统实时高效性、硬件的相关依赖性、软件固态化以及应在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的

19、特点。用的专用性等方面具有较为突出的特点。n RTOSRTOS是相对于一般操作系统而言的,它除具备了一般操作系统最是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等外,基本的功能,如任务调度、同步机制、中断处理、文件功能等外,还有以下特点:还有以下特点:(1)(1)可装卸性。开放性、可伸缩性的体系结构。可装卸性。开放性、可伸缩性的体系结构。(2)(2)强实时性。强实时性。(3)(3)统一的接口。提供各种设备驱动接日统一的接口。提供各种设备驱动接日.(4).(4)操作方便、简单、提操作方便、简单、提供友好的图形供友好的图形GUIGUI,(5

20、)(5)提供强大的网络功能,提供强大的网络功能,(6)(6)强稳定性,弱交强稳定性,弱交互性。互性。(7)(7)固化代码。嵌入式操作系统和应用软件被固化在嵌入式固化代码。嵌入式操作系统和应用软件被固化在嵌入式系统计算机的系统计算机的ROMROM中。中。(8)(8)良好的移植性良好的移植性.2024/3/29 周五华中科技大学计算机学院112.1.4 2.1.4 应用软件层应用软件层n应用软件层也成为功能层应用软件层也成为功能层.主要由基于主要由基于RTOS开发的应用程序组成开发的应用程序组成,完成对被控对象的控制完成对被控对象的控制功能功能.n该层为方便用户操作该层为方便用户操作,往往需要提供

21、一个友好往往需要提供一个友好的人机界面的人机界面.n对复杂系统对复杂系统,要对系统进行需求分析要对系统进行需求分析,确定系统确定系统的功能的功能.然后将其映射到整个系统的硬件然后将其映射到整个系统的硬件,软件软件和执行装置的设计过程中和执行装置的设计过程中.该过程称为系统的该过程称为系统的功能实现功能实现.2024/3/29 周五华中科技大学计算机学院122.2 2.2 嵌入式系统的设计方法嵌入式系统的设计方法 本节介绍如下三个方面的内容本节介绍如下三个方面的内容:1.嵌入式系统的设计流程嵌入式系统的设计流程2.嵌入式系统的一般设计方法嵌入式系统的一般设计方法3.嵌入式系统的软、硬件协同设计技

22、术嵌入式系统的软、硬件协同设计技术2024/3/29 周五华中科技大学计算机学院132.2.1 2.2.1 嵌入式系统的设计流程嵌入式系统的设计流程n如图如图2.2所示,嵌入式系统设计一般由所示,嵌入式系统设计一般由5个阶段构成:个阶段构成:n需求分析需求分析;n体系结构设计体系结构设计;n硬件,软件设计硬件,软件设计;n系统集成系统集成;n系统测试。系统测试。n各个阶段之间往往要求不断的反复和修改,直至完各个阶段之间往往要求不断的反复和修改,直至完成最终设计目标。成最终设计目标。2024/3/29 周五华中科技大学计算机学院14图图2.2 嵌入式系统的设计流程嵌入式系统的设计流程2024/3

23、/29 周五华中科技大学计算机学院151 1系统需求分析系统需求分析确定设计任务和设计目标,并提炼出设计规格说明书。系统确定设计任务和设计目标,并提炼出设计规格说明书。系统的需求一般分功能性需求和非功能性需求两方面。功能性需求是的需求一般分功能性需求和非功能性需求两方面。功能性需求是系统的基本功能,如输入输出信号、操作方式等;非功能需求包系统的基本功能,如输入输出信号、操作方式等;非功能需求包括系统性能、成本、功耗、体积、重量、等因素。括系统性能、成本、功耗、体积、重量、等因素。2 2体系结构设计体系结构设计对硬件、软件和执行装置的功能划分以及系统的软件、硬件选型对硬件、软件和执行装置的功能划

24、分以及系统的软件、硬件选型等。一个好的体系结构是设计成功与否的关键。等。一个好的体系结构是设计成功与否的关键。3 3硬件,软件设计硬件,软件设计基于体系结构,对系统的软件、硬件进行详细设计。为了缩短产基于体系结构,对系统的软件、硬件进行详细设计。为了缩短产品开发周期,设计往往是并行的。应该说,嵌入式系统设计的工品开发周期,设计往往是并行的。应该说,嵌入式系统设计的工作大部分都集中在软件设计上,采用面向对象技术、软件组件技作大部分都集中在软件设计上,采用面向对象技术、软件组件技术、模块化设计是现代软件工程经常采用的方法。术、模块化设计是现代软件工程经常采用的方法。4 4系统集成系统集成把系统的软

25、件、硬件和执行装置集成在一起,进行调试,发现并把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进单元设计过程中的错误。改进单元设计过程中的错误。5 5系统测试系统测试对设计好的系统进行测试,看其是否满足规格说明书中给定的功对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求。针对系统的不同的复杂程度,目前有一些常用的系统设能要求。针对系统的不同的复杂程度,目前有一些常用的系统设计方法,如自顶向下的设计方法、自下向上的设计方法、逐步细计方法,如自顶向下的设计方法、自下向上的设计方法、逐步细化设计方法和并行设计方法等。化设计方法和并行设计方法等。2024/3/29 周五华中科技

26、大学计算机学院162.2.2 2.2.2 嵌入式系统的一般设计方法嵌入式系统的一般设计方法通常在单片机系统的开发和应用中,按照下面图通常在单片机系统的开发和应用中,按照下面图2.3所示的流程进行。所示的流程进行。图图2-3单片机系统的开发流程单片机系统的开发流程 用户需求选择处理器设计硬件平台设计硬件平台按照设计的硬件平台编写软件遇到硬件问题?是修改硬件平台软件测试是否通过?整个系统测试开发结束否是否2024/3/29 周五华中科技大学计算机学院172.2.2 2.2.2 嵌入式系统的一般设计方法嵌入式系统的一般设计方法在嵌入式系统的应用开发中,开发过程将改变为如图在嵌入式系统的应用开发中,开

27、发过程将改变为如图2.42.4所示的过程。所示的过程。用户需求选择选择嵌入式处理器及硬件平台选择合适的嵌入式操作系统应用程序测试通过?整个系统测试开发结束是在操作系统上开发应用程序否图图2-4 嵌入式系统的开发流程嵌入式系统的开发流程2024/3/29 周五华中科技大学计算机学院182.2.2 2.2.2 嵌入式系统的一般设计方法嵌入式系统的一般设计方法n在应用嵌入式系统开发的过程中,因为对应于每一在应用嵌入式系统开发的过程中,因为对应于每一个处理器的硬件平台都是通用的、固定的、成熟的。个处理器的硬件平台都是通用的、固定的、成熟的。所以,在开发过程中减少了硬件系统错误的引入机所以,在开发过程中

28、减少了硬件系统错误的引入机会;同时,因为嵌入式操作系统屏蔽掉了底层硬件会;同时,因为嵌入式操作系统屏蔽掉了底层硬件的很多复杂信息,使得开发者通过操作系统提供的的很多复杂信息,使得开发者通过操作系统提供的API函数可以完成大部分工作,大大地简化了开发过函数可以完成大部分工作,大大地简化了开发过程,提高了系统的稳定性。程,提高了系统的稳定性。n综上所述,嵌入式系统的开发可以说是把开发者从综上所述,嵌入式系统的开发可以说是把开发者从反复进行硬件平台的设计过程中解放出来,从而可反复进行硬件平台的设计过程中解放出来,从而可以把主要的精力放在编写特定的应用程序上。这个以把主要的精力放在编写特定的应用程序上

29、。这个过程更类似于在系统机过程更类似于在系统机(如如PC机机)上的某个操作系统上的某个操作系统下开发应用程序。下开发应用程序。(硬件平台的设计过程更加具有挑硬件平台的设计过程更加具有挑战性!战性!)2024/3/29 周五华中科技大学计算机学院192.2.3 2.2.3 嵌入式系统的软、硬件协嵌入式系统的软、硬件协同设计技术同设计技术n传统的嵌入式系统设计方法如图传统的嵌入式系统设计方法如图2-5所示所示.n硬件和软件分为两个独立的部分,由硬件硬件和软件分为两个独立的部分,由硬件工程师和软件工程师按照拟定的设计流程工程师和软件工程师按照拟定的设计流程分别完成。分别完成。n这种设计方法只能改善硬

30、件软件各自的这种设计方法只能改善硬件软件各自的性能,而有限的设计空间不可能对系统做性能,而有限的设计空间不可能对系统做出较好的性能综合优化。出较好的性能综合优化。2024/3/29 周五华中科技大学计算机学院20需求分析、总体设计嵌入式硬件开发嵌入式软件开发嵌入式系统集成、测试、验证图图2-5 嵌入式系统的一般设计方法嵌入式系统的一般设计方法2024/3/29 周五华中科技大学计算机学院212.2.3 2.2.3 嵌入式系统的软、硬件协同设嵌入式系统的软、硬件协同设计技术计技术n从理论上来说,每一个应用系统,都存在一个适合于该系统从理论上来说,每一个应用系统,都存在一个适合于该系统的硬件、软件

31、功能的最佳组合。如何从应用系统需求出发,的硬件、软件功能的最佳组合。如何从应用系统需求出发,依据一定的指导原则和分配算法对硬件软件功能进行分析依据一定的指导原则和分配算法对硬件软件功能进行分析及合理的划分,从而使系统的整体性能、运行时间、能量耗及合理的划分,从而使系统的整体性能、运行时间、能量耗损、存储能量达到最佳状态,已成为硬件软件协同设计的损、存储能量达到最佳状态,已成为硬件软件协同设计的重要研究内容之一。重要研究内容之一。n应用系统的多样性和复杂性,使硬件软件的功能划分、资应用系统的多样性和复杂性,使硬件软件的功能划分、资源调度与分配、系统优化、系统综合、模拟仿真存在许多需源调度与分配、

32、系统优化、系统综合、模拟仿真存在许多需要研究解决的问题,因而使国际上协同设计领域的研究日益要研究解决的问题,因而使国际上协同设计领域的研究日益活跃。活跃。n系统协同设计与传统设计相比有两个显著的特点:系统协同设计与传统设计相比有两个显著的特点:(1)(1)描述硬件和软件使用统一的表示形式;描述硬件和软件使用统一的表示形式;(2)(2)硬件,软件划分可以选择多种方案,直到满足要求。硬件,软件划分可以选择多种方案,直到满足要求。2024/3/29 周五华中科技大学计算机学院222.2.3 2.2.3 嵌入式系统的软、硬件协嵌入式系统的软、硬件协同设计技术同设计技术n传统的嵌入式系统开发采用的是软件

33、开发与硬件开发分离的方式,传统的嵌入式系统开发采用的是软件开发与硬件开发分离的方式,其过程可描述如下:其过程可描述如下:(1)(1)需求分析:需求分析:(2)(2)软硬件分别设计、开发、调试、测试:软硬件分别设计、开发、调试、测试:(3)(3)系统集成:软硬件集成;系统集成:软硬件集成;(4)(4)集成测试:集成测试:(5)(5)若系统正确,则结束,否则继续进行;若系统正确,则结束,否则继续进行;(6)(6)若出现错误,需要对软、硬件分别验证和修改:若出现错误,需要对软、硬件分别验证和修改:(7)(7)返回返回(3)(3),继续进行集成测试。,继续进行集成测试。n虽然在系统设计的初始阶段考虑了

34、软硬件的接口问题,但由于软硬虽然在系统设计的初始阶段考虑了软硬件的接口问题,但由于软硬件分别开发,各自部分的修改和缺陷很容易导致系统集成出现错误。件分别开发,各自部分的修改和缺陷很容易导致系统集成出现错误。由于设计方法的限制,这些错误不但难于定位,而且更重要的是,由于设计方法的限制,这些错误不但难于定位,而且更重要的是,对它们的修改往往会涉及整个软件结构或硬件配置的改动。对它们的修改往往会涉及整个软件结构或硬件配置的改动。2024/3/29 周五华中科技大学计算机学院232.2.3 2.2.3 软、硬件协同设计技术软、硬件协同设计技术n软硬件协同设计方法。一个典型的硬件软件协同设计过程如图软硬

35、件协同设计方法。一个典型的硬件软件协同设计过程如图2-62-6所示。所示。n首先,应用独立于任何硬件和软件的功能性规格方法对系统进行首先,应用独立于任何硬件和软件的功能性规格方法对系统进行描述,采用的方法包括:有限状态机描述,采用的方法包括:有限状态机(FSM)(FSM)、统一化的规格语言、统一化的规格语言(CSP(CSP、VHDL)VHDL)或其他基于图形的表示工具,其作用是对硬件软件或其他基于图形的表示工具,其作用是对硬件软件统一表示,便于功能的划分和综合;(统一表示,便于功能的划分和综合;(VHDL VHDL 使用最多!使用最多!)n然后,在此基础上对硬件软件进行划分,即对硬件,软件的功

36、然后,在此基础上对硬件软件进行划分,即对硬件,软件的功能模块进行分配。但是,这种功能分配不是随意的,而是从系统能模块进行分配。但是,这种功能分配不是随意的,而是从系统功能要求和限制条件出发,依据算法进行的。功能要求和限制条件出发,依据算法进行的。n完成硬件软件功能划分之后,需要对划分结果做出评估。方法完成硬件软件功能划分之后,需要对划分结果做出评估。方法之一是性能评估,另一种方法是对硬件、软件综合之后的系统依之一是性能评估,另一种方法是对硬件、软件综合之后的系统依据指令级评价参数做出评估。如果评估结果不满足要求,说明划据指令级评价参数做出评估。如果评估结果不满足要求,说明划分方案选择不合理,需

37、要重新划分硬件软件模块,以上过程重分方案选择不合理,需要重新划分硬件软件模块,以上过程重复直到系统获得一个满意的硬件复直到系统获得一个满意的硬件/软件实现为止。软件实现为止。2024/3/29 周五华中科技大学计算机学院24系统描述软硬件划分接口综合设计验证设计实现硬件综合软件综合图图2-6 嵌入式系统的软硬件协同设计嵌入式系统的软硬件协同设计2024/3/29 周五华中科技大学计算机学院252.2.3 2.2.3 嵌入式系统的软、硬件协嵌入式系统的软、硬件协同设计技术同设计技术n软硬件协同设计过程可归纳为:软硬件协同设计过程可归纳为:(1)(1)需求分析;需求分析;(2)(2)软硬件协同设计

38、;软硬件协同设计;(3)(3)软硬件实现;软硬件实现;(4)(4)软硬件协同测试和验证。软硬件协同测试和验证。n这种方法的特点是在协同设计这种方法的特点是在协同设计(co-design)(co-design)、协同测试、协同测试(co-test)(co-test)和协同验证和协同验证(Co-verification)(Co-verification)上,充分考虑上,充分考虑了软硬件的关系,并在设计的每个层次上给以测试验证,了软硬件的关系,并在设计的每个层次上给以测试验证,使得尽早发现和解决问题,避免灾难性错误的出现。使得尽早发现和解决问题,避免灾难性错误的出现。进一步阅读进一步阅读:参考资料参

39、考资料 嵌入式系统的开发技术与设计方法嵌入式系统的开发技术与设计方法参考文献参考文献 嵌入式系统的设计流程和一般设计方法嵌入式系统的设计流程和一般设计方法.doc.doc2024/3/29 周五华中科技大学计算机学院262.3 2.3 嵌入式系统开发技术嵌入式系统开发技术嵌入式系统开发技术方面主要介绍如下嵌入式系统开发技术方面主要介绍如下4个方个方面的内容面的内容:1.需求分析需求分析2.详细设计详细设计3.系统实现系统实现4.系统测试系统测试2024/3/29 周五华中科技大学计算机学院272.3.1 2.3.1 需求分析需求分析需求分析是在项目开始时了解项目的情况,解决用需求分析是在项目开

40、始时了解项目的情况,解决用户需要做什么、需要完成什么功能和任务等问题,户需要做什么、需要完成什么功能和任务等问题,这一阶段主要包括:这一阶段主要包括:1.1.分析用户的需求、分析用户的需求、2.2.初步确定硬件和软件、初步确定硬件和软件、3.3.检查需求分析的结果、检查需求分析的结果、4.4.确定项目的约束条件、确定项目的约束条件、5.5.概要设计等几个方面。概要设计等几个方面。2024/3/29 周五华中科技大学计算机学院281 1、分析需求分析需求n1)分析需求)分析需求n通过与客户交流,了解用户的需求、用户意图等,通过与客户交流,了解用户的需求、用户意图等,明确客户到底需要开发什么样的产

41、品,包括产品的明确客户到底需要开发什么样的产品,包括产品的功能需求和非功能需求。功能需求和非功能需求。n通常,描述产品需求的文档是由嵌入式系统分析师通常,描述产品需求的文档是由嵌入式系统分析师从用户的视角来写的,由一系列的用户需求组成,从用户的视角来写的,由一系列的用户需求组成,以文字、图表等方式描述客户需求。以文字、图表等方式描述客户需求。n再从客户的需求中获取一组一致性的需求,并整理再从客户的需求中获取一组一致性的需求,并整理成正式的规格说明书。成正式的规格说明书。2024/3/29 周五华中科技大学计算机学院292 2)确认需求)确认需求 一般来说,客户对产品的需求主要包括功能、性能一般

42、来说,客户对产品的需求主要包括功能、性能、价格、价格、尺寸和重量、功耗等。尺寸和重量、功耗等。性能:主要指系统的性能,最重要的就是系统的性能:主要指系统的性能,最重要的就是系统的处理速度,系统的处理速度通常是该系统的实用性处理速度,系统的处理速度通常是该系统的实用性和最终成本的主要决定因素和最终成本的主要决定因素(不一定!井下仪表,不一定!井下仪表,无线传感器网络等能耗最重要!无线传感器网络等能耗最重要!)。价格:产品最终的成本或者销售价格也是一个主价格:产品最终的成本或者销售价格也是一个主要的考虑因素。产品的成本包含生产成本和不可再要的考虑因素。产品的成本包含生产成本和不可再生生工程成本(比

43、如人力成本和设计系统的其他花费工程成本(比如人力成本和设计系统的其他花费)(民用系统(民用系统价格非常重要,国防系统性能第一!价格非常重要,国防系统性能第一!)。2024/3/29 周五华中科技大学计算机学院30系统的尺寸和重量:最终产品的物理特性会因为系统的尺寸和重量:最终产品的物理特性会因为使用的领域不同而大不相同。使用的领域不同而大不相同。手持设备对系统的尺寸和重量就有很严格的限制。手持设备对系统的尺寸和重量就有很严格的限制。国防上星、上机、上舰装备对尺寸、载荷有严格要国防上星、上机、上舰装备对尺寸、载荷有严格要求求。功耗:比如那些靠电池来供电的系统以及其他一功耗:比如那些靠电池来供电的

44、系统以及其他一些电器来说,功耗是十分重要的。如些电器来说,功耗是十分重要的。如:油井的井下油井的井下仪器仪表。在一些非电池供电的场合,如工业防爆仪器仪表。在一些非电池供电的场合,如工业防爆现场(矿井、化工等),对电源也有严格的要求,现场(矿井、化工等),对电源也有严格的要求,以保证应用环境的安全。以保证应用环境的安全。电源问题在需求阶段可以以电池寿命的方式(通常电源问题在需求阶段可以以电池寿命的方式(通常mAhmAh,毫安小时)提出,也可以以系统的供电电流,毫安小时)提出,也可以以系统的供电电流要求数值提出。要求数值提出。2024/3/29 周五华中科技大学计算机学院31n3 3)罗列需求)罗

45、列需求 下面列举的是一些能让设计者的思维细致化的问题,下面列举的是一些能让设计者的思维细致化的问题,当然,并不是列出的每个问题都适合所有的嵌入式当然,并不是列出的每个问题都适合所有的嵌入式系统项目。系统项目。(1 1)系统)系统任务任务是什么?是什么?(2 2)系统)系统输入输入是什么是什么?(3 3)系统)系统输出输出是什么是什么?(4 4)用户)用户接口接口如何,如何交互如何,如何交互?(5 5)系统的)系统的重量和体积重量和体积如何,尺寸如何如何,尺寸如何?(6 6)系统需连接哪些或哪类)系统需连接哪些或哪类外设外设?(7 7)系统是否需要)系统是否需要其他软件其他软件?(8 8)系统处

46、理的)系统处理的数据类型数据类型?(9 9)系统与其他系统的)系统与其他系统的通信方式通信方式?2024/3/29 周五华中科技大学计算机学院32(1010)系统是)系统是单机单机系统还是系统还是网络网络系统系统?(1111)系统的)系统的响应时间响应时间是多少是多少?(1212)系统的)系统的安全安全措施措施?(1313)系统的)系统的运行环境运行环境?(1414)系统)系统存储器类型存储器类型、容量容量?(1515)系统的可拆装性、可靠性和牢固性)系统的可拆装性、可靠性和牢固性?(1616)系统的)系统的供电模式供电模式?(1717)系统故障处理方式、方法以及用户如何处理故)系统故障处理方

47、式、方法以及用户如何处理故 障障?(1818)是否需要任何手动或机械代用装置)是否需要任何手动或机械代用装置?(1919)系统是否将具有远程诊断或更正问题的功能)系统是否将具有远程诊断或更正问题的功能?(2020)其他问题。)其他问题。2024/3/29 周五华中科技大学计算机学院334 4)需求表格)需求表格如表如表2 21 1所示为一个需求表格的样本,这个表格在工所示为一个需求表格的样本,这个表格在工程开始时填写。在考虑系统基本特征时可以将这个表程开始时填写。在考虑系统基本特征时可以将这个表格作为检查表。格作为检查表。表表2-1 2-1 需求样本需求样本名称名称目的目的输入输入输出输出功能

48、功能生产成本生产成本功耗功耗性能性能物理尺寸和质量物理尺寸和质量5 5)需求的内部一致性)需求的内部一致性写完需求以后,应该对它们的内部一致性进行检查。写完需求以后,应该对它们的内部一致性进行检查。2024/3/29 周五华中科技大学计算机学院342 2、确定软硬件确定软硬件系统分析阶段需要考虑的一些项目如下。系统分析阶段需要考虑的一些项目如下。处理器处理器:首先选择处理器的速度(暂时可以不选:首先选择处理器的速度(暂时可以不选择处理器的型号,处理器的速度一般以择处理器的型号,处理器的速度一般以MIPSMIPS为度为度量标准)量标准)总线吞吐量总线吞吐量:总线的吞吐量在大量的数据传输:总线的吞

49、吐量在大量的数据传输应用(如多媒体应用)中非常重要。应用(如多媒体应用)中非常重要。操作系统操作系统:选择将使用的操作系统是另一个关:选择将使用的操作系统是另一个关键的决定。也许,做出这个决定可能为时过早,键的决定。也许,做出这个决定可能为时过早,但可定下设计所需的操作系统的类型。但可定下设计所需的操作系统的类型。2024/3/29 周五华中科技大学计算机学院35 编程语言编程语言:选择系统开发语言,这一过程比较简:选择系统开发语言,这一过程比较简单,目前在嵌入式系统开发中,使用比较多的语言单,目前在嵌入式系统开发中,使用比较多的语言是是C C语言,或语言,或C C语言与汇编语言的混合;其次是

50、语言与汇编语言的混合;其次是JavaJava、嵌式入、嵌式入C C等。等。编译器编译器选择:关于选择编译器方面,目前的选择选择:关于选择编译器方面,目前的选择比较多,一般分成商用和免费两种。目前的商用编比较多,一般分成商用和免费两种。目前的商用编译器一般以集成开发环境工具包的方式提供,其优译器一般以集成开发环境工具包的方式提供,其优点是代码优化比较好、效率高,缺点是价格贵;免点是代码优化比较好、效率高,缺点是价格贵;免费的工具使用最多的是费的工具使用最多的是GNUGNU系列工具,如系列工具,如GCCGCC编译器、编译器、GDBGDB调试器,免费工具已经被移植到了许多常用的调试器,免费工具已经被

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服