1、北京航空航天大学 清华大学出版社2 依依审定的教材大纲编写。审定的教材大纲编写。 主编人:高金源主编人:高金源 夏洁夏洁 出版发行:清华大学出版社出版发行:清华大学出版社北京航空航天大学 清华大学出版社38.1 嵌入式系统嵌入式系统8.1.1 概述概述8.1.2 软硬件协同设计技术软硬件协同设计技术8.1.3 实时操作系统实时操作系统 8.1.4 嵌入式系统的开发嵌入式系统的开发8.1.5 嵌入式控制系统设计实例嵌入式控制系统设计实例8.2 可编程控制器(可编程控制器(PLC)8.2.1 PLC概述概述 8.2.2 PLC结构和工作原理结构和工作原理8.2.3 PLC常用编程语言常用编程语言8
2、.2.4 PLC应用实例应用实例8.2.5 PLC网络系统网络系统北京航空航天大学 清华大学出版社4北京航空航天大学 清华大学出版社51. 嵌入式系统定义和分类嵌入式系统定义和分类电气工程师协会(电气工程师协会(IEEE)定义)定义 :“嵌入式系统是控制、监视或辅助设备、机嵌入式系统是控制、监视或辅助设备、机器甚至工厂操作的装置。器甚至工厂操作的装置。”一般定义:一般定义:“以应用为中心、以计算机技术为基础、以应用为中心、以计算机技术为基础、软软件硬件可裁剪件硬件可裁剪、适应应用系统对功能、可靠、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的性、成本、体积、功耗严格要求的专用专用计算计
3、算机系统。机系统。”北京航空航天大学 清华大学出版社6小型系统内核;小型系统内核;专用性较强;专用性较强;系统精简,以减少控制系统成本,利于实现系统系统精简,以减少控制系统成本,利于实现系统安全;安全;采用高实时性的操作系统,且软件要固化存储;采用高实时性的操作系统,且软件要固化存储;使用多任务的操作系统,使软件开发标准化;使用多任务的操作系统,使软件开发标准化;嵌入式系统开发需要专门的工具和环境。嵌入式系统开发需要专门的工具和环境。 北京航空航天大学 清华大学出版社7 硬件方面:硬件方面: 芯片级嵌入(含程序或算法的处理器)芯片级嵌入(含程序或算法的处理器) 模块级嵌入(系统中的某个核心模块
4、)模块级嵌入(系统中的某个核心模块) 系统级嵌入系统级嵌入 软件方面(根据实时性要求):软件方面(根据实时性要求): 非实时系统(例如非实时系统(例如PDA等)等) 实时系统实时系统 硬实时系统硬实时系统若系统在指定的时间内未能实现某个确定的任若系统在指定的时间内未能实现某个确定的任务,就会引起系统崩溃或导致致命错误(如导弹飞行姿态控制务,就会引起系统崩溃或导致致命错误(如导弹飞行姿态控制系统)。系统)。 软实时系统软实时系统在该类系统中虽然响应时间同样重要,但是超在该类系统中虽然响应时间同样重要,但是超时却不会导致致命错误,这也意味着偶尔超过时间限制是可以时却不会导致致命错误,这也意味着偶尔
5、超过时间限制是可以容忍的(如消费类产品)容忍的(如消费类产品) 。 北京航空航天大学 清华大学出版社8(1) 嵌入式微控制器嵌入式微控制器(Mico Controller Unit, MCU) 典型代表是单片机。单片机芯片内部集成典型代表是单片机。单片机芯片内部集成ROM、RAM、总线、总线、定时器定时器/计时器、计时器、I/O、串行口、串行口、A/D、D/A等各种必要的功能等各种必要的功能和外设,在工作温度、抗电磁干扰、可靠性等方面一般都做了各和外设,在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强,且体积小、功耗成本低,比较适合控制。种增强,且体积小、功耗成本低,比较适合控制。 (2
6、) 嵌入式微处理器嵌入式微处理器(Embedded Micro Processor Unit, EMPU) 基础是通用计算机中的基础是通用计算机中的CPU。只保留与嵌入式应用密切相关的功。只保留与嵌入式应用密切相关的功能硬件,去掉其他冗余的功能部分。目前的主要类型有能硬件,去掉其他冗余的功能部分。目前的主要类型有ARM 、 PowerPC系列等。系列等。 (3) 数字信号处理器数字信号处理器(Digital Signal Processor, DSP) 专用于信号处理方面的处理器,其可进行向量运算、指针线性寻专用于信号处理方面的处理器,其可进行向量运算、指针线性寻址等运算量很大的数据处理,具有
7、很高编译效率和指令执行速度址等运算量很大的数据处理,具有很高编译效率和指令执行速度(4)嵌入式片上系统嵌入式片上系统(System On Chip, SOC) 在一个硅片上实现一个复杂的系统,其最大的特点是实现了软硬在一个硅片上实现一个复杂的系统,其最大的特点是实现了软硬件的无缝结合,直接在处理器内嵌入操作系统的代码模块。件的无缝结合,直接在处理器内嵌入操作系统的代码模块。 北京航空航天大学 清华大学出版社9 硬件设计工具硬件设计工具 系统级设计方面采用的硬件设计工具有系统级设计方面采用的硬件设计工具有Cadence的的SPW和和System View。 模拟电路系统采用的仿真工具有模拟电路系
8、统采用的仿真工具有Pspice和和EWB。 印刷电路设计方面的设计工具有印刷电路设计方面的设计工具有Protel、PADs 的的Power PCB & Tool Kit和和Mentor的的Expedition & Tool Kit。 可编程逻辑器件设计工具还有可编程逻辑器件设计工具还有Mentor FPGA Advantage & ModelSim、Xilinx Foundation ISE & Tool Kit以及各种综合和仿真工具等等。以及各种综合和仿真工具等等。北京航空航天大学 清华大学出版社10 软件开发平台软件开发平台 高级语言编译器(高级语言编译器(Compiler Tools)。
9、)。 实时在线仿真系统实时在线仿真系统ICE(In Circuit Emulator)。)。 源程序模拟器(源程序模拟器(Simulator)。)。 实时多任务操作系统(实时多任务操作系统(Real Time multi-tasking Operation System,RTOS)。)。 商用型商用型RTOS的功能稳定可靠,具有比较完善的技术支持和售的功能稳定可靠,具有比较完善的技术支持和售后服务,但价格昂贵而且都针对特定的硬件平台。如后服务,但价格昂贵而且都针对特定的硬件平台。如WindRiver公司的公司的VxWorks、Palm Computing掌上电掌上电脑公司的脑公司的Palm O
10、S等。等。 免费的免费的RTOS主要有主要有Linux和和C/OS等。尽管这些资源带有等。尽管这些资源带有源码,但理解、消化并运用在某应用系统上也是一项艰苦的工源码,但理解、消化并运用在某应用系统上也是一项艰苦的工作,相应的调试工具是没有免费的。作,相应的调试工具是没有免费的。北京航空航天大学 清华大学出版社11北京航空航天大学 清华大学出版社12 芯片方面芯片方面 是可编程片上系统。是可编程片上系统。 宏观方面宏观方面 使嵌入式系统更经济、小型、可靠、快速、智能化、使嵌入式系统更经济、小型、可靠、快速、智能化、网络化。网络化。 经济性经济性 很便宜,让更多的人能买得起。很便宜,让更多的人能买
11、得起。 小型化(笔记本、小型化(笔记本、PDA) 人们携带方便。人们携带方便。 可靠性(汽车可靠性(汽车VCD跳动问题)跳动问题) 能够在一般环境条件下或者是苛刻的环境条件下运行。能够在一般环境条件下或者是苛刻的环境条件下运行。 高速度(飞机刹车系统)高速度(飞机刹车系统)能够迅速地完成数据计算或数据传输。能够迅速地完成数据计算或数据传输。 智能性(知识推理、模糊查询、识别、感知运动)智能性(知识推理、模糊查询、识别、感知运动) 使人们用起来更习惯,对人们更有使价值。使人们用起来更习惯,对人们更有使价值。北京航空航天大学 清华大学出版社131硬件体系结构硬件体系结构图图8-2 嵌入式系统硬件体
12、系结构的功能部件嵌入式系统硬件体系结构的功能部件北京航空航天大学 清华大学出版社14设计过程的基本特征是:系统在一开始就被划分为软件和硬件两设计过程的基本特征是:系统在一开始就被划分为软件和硬件两大部分,软件和硬件是独立地进行开发设计,通常采用的是大部分,软件和硬件是独立地进行开发设计,通常采用的是“硬硬件先行件先行”的设计方法。的设计方法。 问题:问题:(1)软硬件之间的交互受到很大限软硬件之间的交互受到很大限制,造成系统集成相对滞后,因此制,造成系统集成相对滞后,因此传统嵌入式系统设计的结果往往是传统嵌入式系统设计的结果往往是设计质量差设计质量差、设计修改难设计修改难,同时,同时研研制周期
13、不能制周期不能得到得到有效保障有效保障。(2) 随着设计复杂程度的提高,随着设计复杂程度的提高,软硬件设计中的一些错误将会使开软硬件设计中的一些错误将会使开发过程付出昂贵的代价。发过程付出昂贵的代价。(3)“硬件先行硬件先行”的做法常常需要的做法常常需要由软件来补偿由于硬件选择的不适由软件来补偿由于硬件选择的不适合造成系统的缺陷,从而增加软件合造成系统的缺陷,从而增加软件的代价。的代价。 图图8-3 传统的嵌入式系统的设计方法传统的嵌入式系统的设计方法北京航空航天大学 清华大学出版社15(1) 软硬件协同设计定义:软硬件协同设计定义:在硬件和软件设计中,通过并发和交互设计来满足系统级的目标要求
14、。在硬件和软件设计中,通过并发和交互设计来满足系统级的目标要求。(2) 软硬件协同设计基本需求:软硬件协同设计基本需求: 采用统一的软硬件描述方式采用统一的软硬件描述方式软硬件支持统一的设计和分析工软硬件支持统一的设计和分析工具或技术,允许在一个集成环境中仿真及评估系统的软硬件设计,具或技术,允许在一个集成环境中仿真及评估系统的软硬件设计,支持系统任务在软件和硬件设计之间的相互移植;支持系统任务在软件和硬件设计之间的相互移植; 采用交互式软硬件划分技术采用交互式软硬件划分技术允许进行多个不同的软硬件划分允许进行多个不同的软硬件划分设计仿真和比较,划分应用可以最大满足设计标准设计仿真和比较,划分
15、应用可以最大满足设计标准(功能和性能(功能和性能目标)目标)要求;要求; 具有完整的软硬件模型基础具有完整的软硬件模型基础可可以支持设计过程中各阶段的评估,以支持设计过程中各阶段的评估,支持逐步开发以及对硬件和软件的支持逐步开发以及对硬件和软件的综合;综合; 验证方法必须正确,以确保系统设验证方法必须正确,以确保系统设计达到目标要求。计达到目标要求。优势:协同设计要优势:协同设计要贯穿整个设计周期贯穿整个设计周期,且且使设计修改容易,研制周期可以得到有使设计修改容易,研制周期可以得到有效保障效保障;软硬件交互设计变得简单。;软硬件交互设计变得简单。图图8-4 嵌入式系统的软硬件协同设计流程嵌入
16、式系统的软硬件协同设计流程北京航空航天大学 清华大学出版社16 描述描述将系统行为的功能进行明确、提取并列表;将系统行为的功能进行明确、提取并列表; 划分划分即对硬件即对硬件/软件的功能进行分配;软件的功能进行分配; 评估评估进行性能评估或对综合后系统依据指令级评价进行性能评估或对综合后系统依据指令级评价参数做出评估,若不满足要求,则需要回到;参数做出评估,若不满足要求,则需要回到; 验证验证是为保证系统可以按照设计要求正常工作,而是为保证系统可以按照设计要求正常工作,而达到合理置信度的过程。根据应用领域的不同可能采取不达到合理置信度的过程。根据应用领域的不同可能采取不同的验证方法,但都必须经
17、过性能与功能的协同仿真。同的验证方法,但都必须经过性能与功能的协同仿真。 实现实现通过综合后的硬件的物理实现和通过编译后的通过综合后的硬件的物理实现和通过编译后的软件执行。软件执行。北京航空航天大学 清华大学出版社171实时操作系统定义及特点实时操作系统定义及特点 实时操作系统实时操作系统RTOS是指能支持实时控制系统工作的操作系统,是指能支持实时控制系统工作的操作系统,它可以在固定的时间内对一个或多个由外设发出的信号做出适当它可以在固定的时间内对一个或多个由外设发出的信号做出适当的反应。的反应。 实时操作系统的主要特征:规模小、中断被屏蔽的时间很短、中实时操作系统的主要特征:规模小、中断被屏
18、蔽的时间很短、中断处理时间短且任务切换很快。断处理时间短且任务切换很快。 常见的实时操作系统常见的实时操作系统 商用的商用的RTOS:VxWorks、pSOS、Palm OS等;等; 免费的免费的RTOS:Linux和和C/OS等等 嵌入式实时操作系统的精华在于向开发人员提供一个实时多任务嵌入式实时操作系统的精华在于向开发人员提供一个实时多任务内核。开发人员将具体一项应用工作分解成若干个独立的任务,内核。开发人员将具体一项应用工作分解成若干个独立的任务,将各任务要做的事、任务间的关系向实时多任务内核交代清楚,将各任务要做的事、任务间的关系向实时多任务内核交代清楚,让实时多任务内核去管理这些任务
19、,开发过程就完成了。让实时多任务内核去管理这些任务,开发过程就完成了。 嵌入式实时操作系统没有文件管理,一般不需要内存管理,它具嵌入式实时操作系统没有文件管理,一般不需要内存管理,它具有的是实时操作系统中最重要的内容,即多任务实时调度和任务有的是实时操作系统中最重要的内容,即多任务实时调度和任务的定时、同步操作,具有很短的任务切换时间和实时响应速度。的定时、同步操作,具有很短的任务切换时间和实时响应速度。北京航空航天大学 清华大学出版社18 VxWorks操作系统是美国操作系统是美国WindRiver公司于公司于1983年设计开发的一种嵌入式年设计开发的一种嵌入式RTOS,具有高,具有高性能的
20、内核以及友好的用户开发环境,在嵌性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域牢牢占据着一席之地。入式实时操作系统领域牢牢占据着一席之地。 VxWorksVxWorks所具有的显著特点是:所具有的显著特点是: 可靠性、实时性和可裁减性。可靠性、实时性和可裁减性。 它支持多种处理器,如它支持多种处理器,如x86x86、i960i960、Sun Sun SparcSparc、Motorola MC68xxxMotorola MC68xxx、MIPS MIPS 、POWER POWER PCPC等等。等等。3-2北京航空航天大学 清华大学出版社19 pSOS原属原属ISI公司的产品,但公
21、司的产品,但ISI已经被已经被WinRiver公司兼并,现在公司兼并,现在pSOS属于属于WindRiver公司的产品。公司的产品。 该系统是一个模块化、高性能的实时操作系该系统是一个模块化、高性能的实时操作系统。统。 开发者可以利用它来实现从简单的单个独立开发者可以利用它来实现从简单的单个独立设备到复杂的、网络化的多处理器系统功能。设备到复杂的、网络化的多处理器系统功能。3-2北京航空航天大学 清华大学出版社20 Palm OS是著名的网络设备制造商是著名的网络设备制造商3COM旗旗下的下的Palm Computing掌上电脑公司的产品。掌上电脑公司的产品。 Palm OSPalm OS在在
22、PDAPDA市场上占有很大的市场份额。市场上占有很大的市场份额。获得了获得了IBMIBM、OracleOracle、NokiaNokia和和SonySony等国际知等国际知名公司的支持,同时有很多的软件开发者为名公司的支持,同时有很多的软件开发者为其开发软件应用程序,还有相当多的硬件开其开发软件应用程序,还有相当多的硬件开发人员为其开发外围扩展设备,例如发人员为其开发外围扩展设备,例如GPSGPS系系统、数码摄像头、录音系统等。统、数码摄像头、录音系统等。 3-2北京航空航天大学 清华大学出版社21 任务任务(或称(或称“线程线程”)及其)及其任务工作状态任务工作状态 指拥有所有指拥有所有CP
23、U资源的程序分段,资源的程序分段,线程线程为调度的基本单位为调度的基本单位 每个任务都是整个应用的某一部分,每个任务被赋予一定每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,的优先级, 有它自己的一套有它自己的一套CPU寄存器和自己的栈空间。寄存器和自己的栈空间。图图8-5 实时系统中的任务状态实时系统中的任务状态北京航空航天大学 清华大学出版社22 实时内核负责管理各个任务,为每个任务分配实时内核负责管理各个任务,为每个任务分配CPU时间,时间,并负责任务间的通信。提供的基本服务是任务切换。并负责任务间的通信。提供的基本服务是任务切换。(non-preemptive)(preem
24、ptive)内核可以剥夺正在运行着的任务的内核可以剥夺正在运行着的任务的CPU使用使用权,并将该使用权交给进入就绪态的优先级权,并将该使用权交给进入就绪态的优先级更高的任务。更高的任务。 实时内核实时内核可剥夺型(占先式)可剥夺型(占先式)不可剥夺型(非占先式)不可剥夺型(非占先式)内核运用某种算法决定让哪个任务运行后,就内核运用某种算法决定让哪个任务运行后,就将将CPU控制权完全交给这个任务,直到该任务控制权完全交给这个任务,直到该任务主动将主动将CPU控制权还回来。控制权还回来。 北京航空航天大学 清华大学出版社23 任务按照其重要性被赋予优先级。任务按照其重要性被赋予优先级。 静态优先级
25、静态优先级应用程序执行过程中诸任务优先级不变。应用程序执行过程中诸任务优先级不变。在这种系统中,诸任务以及它们的时间约束在这种系统中,诸任务以及它们的时间约束在程序编译时是已知的。在程序编译时是已知的。 动态优先级动态优先级应用程序执行过程中,任务的优先级是可变应用程序执行过程中,任务的优先级是可变的。的。北京航空航天大学 清华大学出版社24 为内核的主要职责之一,它决定该轮到哪个任务运为内核的主要职责之一,它决定该轮到哪个任务运行了。行了。 调度是基于优先级的。调度是基于优先级的。 CPU总是让处在就绪态的总是让处在就绪态的优先级最高的任务先运行。优先级最高的任务先运行。 调度的基本方式有:
26、可剥夺型和不可剥夺型调度的基本方式有:可剥夺型和不可剥夺型 基本调度算法基本调度算法先来先服务先来先服务 最短周期优先最短周期优先优先级法优先级法 轮转法轮转法多级队列法多级队列法 多级反馈队列多级反馈队列 多数实时内核是基于优先级调度的多种方法多数实时内核是基于优先级调度的多种方法的复合。的复合。北京航空航天大学 清华大学出版社25 互斥(互斥(Mutex)机制)机制 信号量(信号量(Semaphore)机制)机制 代码临界区(代码临界区(Critical Section)临界资源临界资源指处理时不可分割的代码。指处理时不可分割的代码。 任务间通信任务间通信(Inter task com)
27、可预测性(可预测性(Predictability) 北京航空航天大学 清华大学出版社26 实时系统是实时系统是面向具体应用面向具体应用,对外来事件在限定时间内能做,对外来事件在限定时间内能做出反应的系统。限定时间的范围很广,可从出反应的系统。限定时间的范围很广,可从微秒级(微秒级(如信如信号处理)到号处理)到分级分级(如联机查询系统)。(如联机查询系统)。 实时系统中主要用三个指标来衡量其实时性:实时系统中主要用三个指标来衡量其实时性: 系统响应时间系统响应时间(System response Time):从系):从系统发出处理要求,到系统给出应答信号的过程所用的时统发出处理要求,到系统给出应
28、答信号的过程所用的时间。间。 任务切换时间任务切换时间(Context-switching time):指任):指任务之间切换所使用的时间。务之间切换所使用的时间。 中断延迟中断延迟(Interrupt latency):指从计算机接收):指从计算机接收到中断信号到操作系统做出响应,并完成切换转入中断到中断信号到操作系统做出响应,并完成切换转入中断服务程序的过程所用时间。服务程序的过程所用时间。北京航空航天大学 清华大学出版社27 嵌入式系统本身不具备自主开发能力,在设计完成后,需嵌入式系统本身不具备自主开发能力,在设计完成后,需要一套专门的开发工具和开发环境才能进行开发。要一套专门的开发工具
29、和开发环境才能进行开发。 这些工具和环境一般是基于通用计算机上的软硬件设备以这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。及各种逻辑分析仪、混合信号示波器等。 如果开发机就是运行机,则称为本地编译。如果开发机就是运行机,则称为本地编译。 “宿主机宿主机/目标机目标机”方式:方式: 利用宿主机丰富的资源和良好的开发环境来对目标机将要运行的利用宿主机丰富的资源和良好的开发环境来对目标机将要运行的程序进行开发和仿真调试,程序进行开发和仿真调试, 通过串行口或网络接口将交叉汇编生成的目标代码下载到目标机通过串行口或网络接口将交叉汇编生成的目标代码下载到目标机上,
30、并利用交叉调试器在监控程序或实时内核的支持下进行实时上,并利用交叉调试器在监控程序或实时内核的支持下进行实时分析和调度。分析和调度。 最后由目标机在特定的环境下运行。最后由目标机在特定的环境下运行。图图8-6 宿主机宿主机/目标机的开发方式目标机的开发方式北京航空航天大学 清华大学出版社28(1) C/OS-II的特点的特点 有源代码,有范例,且源代码中有详细的注解。有源代码,有范例,且源代码中有详细的注解。 源代码的源代码的90%以上用以上用C语言写成,可移植性好。语言写成,可移植性好。 C/OS-II可裁减、可固化,最小内核的可裁减、可固化,最小内核的ROM可以小到可以小到2KB以下。以下
31、。 多任务。多任务。 C/OS-II内核属于优先级的可剥夺型,可以管理内核属于优先级的可剥夺型,可以管理64个任务个任务(目前的版本保留(目前的版本保留8个给系统,应用程序最多可以有个给系统,应用程序最多可以有56个任个任务)。每个任务有特定的优先级,用一个数字来标识,优先级务)。每个任务有特定的优先级,用一个数字来标识,优先级越高,数字越小。任务切换采用查表法,切换速度快。实时性越高,数字越小。任务切换采用查表法,切换速度快。实时性是可知的、有保证的。是可知的、有保证的。 中断管理。中断管理。 中断嵌套层数可达中断嵌套层数可达255层。层。 稳定性与可靠性有保证。稳定性与可靠性有保证。 C/
32、OS自自1992年以来,已经有上千个应用,是一个被实践年以来,已经有上千个应用,是一个被实践证实为好用的内核。证实为好用的内核。北京航空航天大学 清华大学出版社29 C/OS是可剥夺型实时多任务内核。是可剥夺型实时多任务内核。 这种内核在任何时刻都运行就绪了的最高优先级的任务。这种内核在任何时刻都运行就绪了的最高优先级的任务。 C/OS调度工作的内容是进行最高优先级任务的寻找和任务的切换。调度工作的内容是进行最高优先级任务的寻找和任务的切换。 C/OS还提供了调度的锁定和解锁机制还提供了调度的锁定和解锁机制 使某个任务就可以短期禁止内核进行任务调度,从而占有使某个任务就可以短期禁止内核进行任务
33、调度,从而占有CPU。 由于调度锁定采用的是累加方式,内核允许任务进行多级锁定,由于调度锁定采用的是累加方式,内核允许任务进行多级锁定,最大锁定层数不能超过最大锁定层数不能超过255。 当一个当一个任务锁定了系统的任务调度任务锁定了系统的任务调度时,时, C/OS基于优先基于优先级的实时运行方式不复存在,优先级由高到低的次序被改级的实时运行方式不复存在,优先级由高到低的次序被改为:各种中断任务(最高)、锁定调度的任务(其次)、为:各种中断任务(最高)、锁定调度的任务(其次)、其他所有任务(最低)。其他所有任务(最低)。北京航空航天大学 清华大学出版社30 嵌入式设计具有一个生命周期,即可以将嵌
34、入式设计具有一个生命周期,即可以将嵌入式项目设计分为嵌入式项目设计分为7个具体阶段:个具体阶段:产品定义;产品定义;软件与硬件的划分;软件与硬件的划分;迭代与实现;迭代与实现;详细的硬件与软件设计;详细的硬件与软件设计;硬件与软件集成;硬件与软件集成;产品测试与发布;产品测试与发布;持续维护与升级。持续维护与升级。北京航空航天大学 清华大学出版社31 设计过程中的文档管理包括:设计过程中的文档管理包括:需求分析文档(产品定义阶段)需求分析文档(产品定义阶段)总体方案设计(选择过程和软硬件划分阶段)总体方案设计(选择过程和软硬件划分阶段)概要设计文档(软硬件初步设计阶段)概要设计文档(软硬件初步
35、设计阶段)详细设计文档(软硬件详细设计阶段)详细设计文档(软硬件详细设计阶段)测试需求文档(模块测试及联调准备阶段)测试需求文档(模块测试及联调准备阶段)系统测试报告(测试小组)系统测试报告(测试小组)使用说明文档使用说明文档/源程序注释源程序注释北京航空航天大学 清华大学出版社32(1) 确定嵌入式系统的要求确定嵌入式系统的要求(2) 设计系统的体系结构和总体方案设计设计系统的体系结构和总体方案设计(3) 选择开发平台选择开发平台(4) 应用编码并按照代码优化原则优化代码应用编码并按照代码优化原则优化代码(5) 在主机系统上验证软件在主机系统上验证软件(6) 在目标系统上验证软件在目标系统上
36、验证软件北京航空航天大学 清华大学出版社33 当进行嵌入式系统开发时,选择一套含有编辑软件、编译当进行嵌入式系统开发时,选择一套含有编辑软件、编译软件、汇编软件、连接软件、调试软件、工程管理及函数软件、汇编软件、连接软件、调试软件、工程管理及函数库的集成开发环境是必不可少的。库的集成开发环境是必不可少的。 ARM SDT是是ARM Software Development Toolkit的简写,是的简写,是ARM公司为方便用户在公司为方便用户在ARM芯片上芯片上进行应用软件开发而推出的一整套集成开发工具。进行应用软件开发而推出的一整套集成开发工具。ARM SDT由一套完备的应用程序构成,并附带
37、支持文档和例由一套完备的应用程序构成,并附带支持文档和例子,可以用于编写和调试子,可以用于编写和调试ARM系列的系列的RISC处理器应用处理器应用程序。程序。图图8-7 基于基于ARM的嵌入式硬件平台体系结构的嵌入式硬件平台体系结构北京航空航天大学 清华大学出版社34在建立实时操作系统之前,需要将在建立实时操作系统之前,需要将 C/OS-II移植到自己的硬件平台移植到自己的硬件平台上,然后再扩展得到上,然后再扩展得到RTOS的体系结构,并在此基础上,建立相应的的体系结构,并在此基础上,建立相应的文件系统、外设及驱动程序、引进图形用户接口等,得到自己的文件系统、外设及驱动程序、引进图形用户接口等
38、,得到自己的RTOS。(1) C/OS-II的移植的移植“移植移植”是指使一个实时操作系统能够在某个微处理器是指使一个实时操作系统能够在某个微处理器平台上运行。平台上运行。 C/OS-II移植到移植到S3C44B0X要做的工作:要做的工作: 在在OS_CPU.H中设置与处理器和编译器相关的代中设置与处理器和编译器相关的代码、对具体处理器的字长重新定义一系列数据类型、码、对具体处理器的字长重新定义一系列数据类型、声明几个用于开关中断和任务切换的宏;声明几个用于开关中断和任务切换的宏; 在在OS_CPU_C.C中用中用C语言编写语言编写6个与操作系统相个与操作系统相关的函数;关的函数; 在在OS_
39、CPU_A.ASM中改写中改写4个与处理器相关的汇个与处理器相关的汇编语言函数。编语言函数。北京航空航天大学 清华大学出版社35图图8-10 基于基于 COS-II扩展扩展RTOS的体系结构的体系结构北京航空航天大学 清华大学出版社36(3) 建立文件系统建立文件系统 针对嵌入式的应用,参考针对嵌入式的应用,参考FAT16的文件系统,可以利用与文件系的文件系统,可以利用与文件系统相关的统相关的API 函数,来建立相应的简单文件系统。函数,来建立相应的简单文件系统。(4) 外设驱动程序外设驱动程序 外设驱动函数可以对系统提供访问外围设备的接口。外设驱动函数可以对系统提供访问外围设备的接口。(5)
40、 图形用户接口(图形用户接口(GUI) 可以为人机交互建立起图形用户接口,即为图形用户界面应用建可以为人机交互建立起图形用户接口,即为图形用户界面应用建立相应的立相应的API函数,其中包括基于函数,其中包括基于Unicode的汉字字库、基本绘的汉字字库、基本绘图函数、典型的控键。图函数、典型的控键。(6) 系统消息队列系统消息队列 在多任务操作系统中,各任务之间通常是通过消息来传递信息和在多任务操作系统中,各任务之间通常是通过消息来传递信息和同步的。用户应用程序的每个任务都有自己的信息响应队列和消同步的。用户应用程序的每个任务都有自己的信息响应队列和消息循环。通常,任务通过等待消息而处于挂起状
41、态。当任务接到息循环。通常,任务通过等待消息而处于挂起状态。当任务接到消息后,则处于就绪状态,然后开始判断所接收到的消息是否需消息后,则处于就绪状态,然后开始判断所接收到的消息是否需要处理。如果是,则执行相应功能的处理函数。执行完相应处理要处理。如果是,则执行相应功能的处理函数。执行完相应处理函数后,将删除所接收到的消息,继续挂起等待下一条消息。函数后,将删除所接收到的消息,继续挂起等待下一条消息。北京航空航天大学 清华大学出版社37 在嵌入式硬件平台的基础上,有了前面基于在嵌入式硬件平台的基础上,有了前面基于 C/OS-II建建立的实时操作系统,用户就可以在相应的操作系统平台上立的实时操作系
42、统,用户就可以在相应的操作系统平台上使用操作系统所提供的使用操作系统所提供的GUI及及API函数来编制应用程序函数来编制应用程序了。了。(1) 操作系统的启动过程操作系统的启动过程(2) 实现消息循环实现消息循环(3) 任务对应资源分配及其任务的创建任务对应资源分配及其任务的创建(4) 任务的实现任务的实现北京航空航天大学 清华大学出版社381 税控收款机税控收款机图图8-11 税控收款机的系统组成框图税控收款机的系统组成框图 图图8-12 系统任务的划分系统任务的划分 北京航空航天大学 清华大学出版社39(1) 智能滴灌控制器的硬件设计智能滴灌控制器的硬件设计图图8-13 智能灌溉控制器系统
43、硬件结构智能灌溉控制器系统硬件结构 北京航空航天大学 清华大学出版社40 软件设计采软件设计采用模块化思想,用模块化思想,嵌入式控制器使嵌入式控制器使用基于用基于C/OS内内核的核的RTOS操作操作系统。系统。图图8-13 智能滴灌控制器系统软件主流程智能滴灌控制器系统软件主流程 北京航空航天大学 清华大学出版社418.1 嵌入式系统嵌入式系统8.1.1 概述概述8.1.2 软硬件协同设计技术软硬件协同设计技术8.1.3 实时操作系统实时操作系统 8.1.4 嵌入式系统的开发嵌入式系统的开发8.1.5 嵌入式控制系统设计实例嵌入式控制系统设计实例8.2 可编程控制器可编程控制器(PLC)8.2
44、.1 PLC概述概述 8.2.2 PLC结构和工作原理结构和工作原理8.2.3 PLC常用编程语言常用编程语言8.2.4 PLC应用实例应用实例8.2.5 PLC网络系统网络系统北京航空航天大学 清华大学出版社42 自动控制系统包括:自动控制系统包括:连续量的运动控制连续量的运动控制连续量的过程控制连续量的过程控制断续量的控制系统断续量的控制系统 (离散量,顺序控制为主流离散量,顺序控制为主流) 时间顺序控制系统时间顺序控制系统 逻辑顺序控制系统逻辑顺序控制系统 条件顺序控制系统条件顺序控制系统 北京航空航天大学 清华大学出版社43 可编程控制器是一种专为在工业环境下应用而设可编程控制器是一种
45、专为在工业环境下应用而设计的数字运算操作的电子系统,它采用一种可编计的数字运算操作的电子系统,它采用一种可编程序的存储器,用来在其内部存储执行逻辑运算、程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,顺序控制、定时、计数和算术运算等操作的指令,并通过数字式或模拟式的输入和输出,控制各种并通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程。可编程控制器及其有关类型的机械或生产过程。可编程控制器及其有关设备,都应按易于与工业控制系统形成一个整体,设备,都应按易于与工业控制系统形成一个整体,并易于扩充其功能的原则设计。并易于扩充其功能的原则设计。 北
46、京航空航天大学 清华大学出版社44 1969年,美国数字设备公司根据美国通用汽车公司招标年,美国数字设备公司根据美国通用汽车公司招标的要求,研制出世界上第一台可编程逻辑控制器的要求,研制出世界上第一台可编程逻辑控制器 (Programmable Logic Controller,PLC) 发展经历发展经历 第一代:多用一位机开发,只有单一的逻辑控制功能;第一代:多用一位机开发,只有单一的逻辑控制功能;第二代:换成第二代:换成8位微处理器及半导体存储器,控制功能得到较大的扩位微处理器及半导体存储器,控制功能得到较大的扩展;展;第三代:大量使用高性能微处理器,向多功能及联网通信方面发展,第三代:大
47、量使用高性能微处理器,向多功能及联网通信方面发展,初步形成了分布式的通信网络体系;初步形成了分布式的通信网络体系;第四代:全面使用第四代:全面使用16位、位、32位高性能微处理器、位高性能微处理器、RISC体系体系CPU等高级等高级CPU,而且在一台,而且在一台PLC中配置多个微处理器,进行多道处中配置多个微处理器,进行多道处理。同时开发大量内含微处理器的智能模块,使第四代理。同时开发大量内含微处理器的智能模块,使第四代PLC产品产品成为具有逻辑控制功能、过程控制功能、运动控制功能、数据处成为具有逻辑控制功能、过程控制功能、运动控制功能、数据处理功能、联网通信功能的多功能控制器。理功能、联网通
48、信功能的多功能控制器。北京航空航天大学 清华大学出版社45 PLC及其网络已成为工厂企业首选的工业控制装置,并成及其网络已成为工厂企业首选的工业控制装置,并成为为CIMS系统不可或缺的基本组成部分。系统不可或缺的基本组成部分。PLC及其网络已及其网络已经被公认为现代工业自动化三大支柱(经被公认为现代工业自动化三大支柱(PLC、机器人、机器人、CAD/CAM)之一。)之一。 发展趋势:发展趋势: 向体积更小、速度更快、功能更强和价格更低的微小向体积更小、速度更快、功能更强和价格更低的微小型方面发展,以占领小型、分散和简单功能的工业控型方面发展,以占领小型、分散和简单功能的工业控制市场。制市场。
49、向大型网络化化、高速度、高可靠性、好的兼容性和向大型网络化化、高速度、高可靠性、好的兼容性和多功能方面发展,使其向下可将多个多功能方面发展,使其向下可将多个PLC、I/O框架框架相连;向上与工业计算机、以太网、相连;向上与工业计算机、以太网、MAP(制造业自(制造业自动化通信协议)网等相连构成整个工厂的自动化控制动化通信协议)网等相连构成整个工厂的自动化控制系统。系统。 北京航空航天大学 清华大学出版社46(1) 功能齐全:功能齐全: 多种控制功能;多种控制功能; 输入输入/输出接口功能;输出接口功能; 数据存储与处理功能;数据存储与处理功能; 通信联网功能;通信联网功能; 其他扩展功能。其他
50、扩展功能。(2) 应用灵活应用灵活 标准的积木硬件结构和模块化的软件设计。标准的积木硬件结构和模块化的软件设计。(3) 操作维修方便,稳定可靠操作维修方便,稳定可靠 PLC 采用电气操作人员习惯的梯形图形式编程与功能助记符编程。采用电气操作人员习惯的梯形图形式编程与功能助记符编程。 PLC 机具有完善的监视和诊断功能。其内部工作等状态均有醒目机具有完善的监视和诊断功能。其内部工作等状态均有醒目的显示,大多数模件可以带电插拔。的显示,大多数模件可以带电插拔。(4) 模块智能化、通信网络化模块智能化、通信网络化北京航空航天大学 清华大学出版社47开关逻辑控制开关逻辑控制(如自动电梯的控制、传输皮带