搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
出版时间 :
面向工程应用的嵌入式控制系统实践教程
0.00     定价 ¥ 79.00
罗湖图书馆
此书还可采购10本,持证读者免费借回家
  • ISBN:
    9787030751935
  • 作      者:
    杨旭,李擎
  • 出 版 社 :
    科学出版社
  • 出版日期:
    2023-03-01
收藏
畅销推荐
精彩书摘

第1章嵌入式控制系统基础
  1.1嵌入式控制系统概述
  1946年,世界上第一台计算机诞生于美国的宾夕法尼亚大学,人类开始逐步使用计算机提高工作效率,随着科技的不断进步,各种形式的计算机也快速走进我们的日常工作和生活。嵌入式系统可以被归纳为广义的计算机系统,与传统的计算机系统相比,它一般会根据特定的要求进行设计,通过精简压缩,完成某种特殊功能。它无处不在却又不易察觉,在各个领域发挥着重要的作用。
  1.1.1嵌入式控制系统的定义
  嵌入式系统技术与计算机、电子、传感测量、通信、控制等多个学科结合紧密,应用范围广泛,难以给出一个简明扼要的、严格的、公认的定义。自嵌入式系统诞生并得到应用以来,其命名和定义也在不断地变化与发展。早期学者认为,嵌入式系统是看不见的计算机,一般不能被用户编程,拥有一些专用的I/O设备,且对用户的接口是专用的。电气电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)对嵌入式系统从功能应用上加以定义,认为嵌入式系统是软件和硬件的综合体。英文原文为“Devices used to control,monitor,or assist the operation of equipment,machinery or plants”,翻译为“嵌入式系统是控制、监视或者辅助机器和设备运行的装置”。
  本书对嵌入式控制系统的定义是:面向特定应用,完全嵌入受控器件内部,软硬件可配置,对功能、性能、可靠性、成本、体积、功耗严格约束的专用计算机系统。该定义体现了嵌入式控制系统所具备的“嵌入性”、“专用性”与“计算机系统”三个基本特征。“嵌入性”是指嵌入式控制系统隐藏在各种对象中,作为应用对象的一部分存在,难以被人们所察觉。“专用性”是指嵌入式控制系统是针对用户需求特定设计的,其应用功能相对固定,不具备通用计算机系统的可扩展性。“计算机系统”揭示了嵌入式控制系统隶属于广义计算机系统范畴,其核心部件为微处理器或具有计算能力的集成电路。需要注意的是,嵌入式控制系统相较于传统的嵌入式系统,在高可靠性、强实时性、感知与控制,以及对被嵌入对象的适用性方面提出了更高的要求,因此要求系统对所处工作环境有更强的适应能力,能够及时响应并完成特定功能。本书后续章节中的工程案例也会体现上述要求。
  1.1.2嵌入式控制系统的特点
  与通用计算机系统相比,嵌入式控制系统通常具备以下特点。
  (1)技术密集。嵌入式控制系统是将先进的计算机技术、半导体技术、微电子技术、通信技术、消费电子技术及各个行业的具体应用相结合的产物,这一点就决定了该系统必然是一个高新技术密集、资金密集、高度分散、不断创新的知识集成系统和一个分散的应用广泛的信息产业。其能看作计算机软件和硬件的结合体,它的硬件系统主要包括微处理器、存储器、输入输出设备及外部的通信接口;而软件系统也多种多样,能够实现不同行业特定的功能。
  (2)专用紧凑。任何一个嵌入式控制系统都与特定的应用功能相关,其用途固定,在体积、功耗、配置、处理能力、电磁兼容性方面有明显的应用约束,因此,嵌入式控制系统的硬件和软件都必须高效率地设计。它必须具备良好的软、硬件可裁剪性。设计嵌入式控制系统时,可针对用户的具体要求,对系统的配置进行裁剪和添加,从而达到应用所需的理想性能。在满足用户需求的基础上,量体裁衣、去除冗余,力争在同样大小的硅片上实现更高的性能,使得嵌入式控制系统精简化。
  (3)安全可靠。一般来讲,要求设备中的嵌入式控制系统可以不出错地连续运行,即使出现错误也可以进行自我修复,同时,由于嵌入式产品的使用人员多为非计算机相关专业的人士,使用环境也不确定,这就对嵌入式控制系统的可靠性与稳定性提出了极高的要求。而随着网络时代的来临,嵌入式设备联网已成为热门话题,随之而来的网络安全问题也需要得到重视。通常可从硬件和软件等多个方面采取防护措施来提高系统的可靠性,例如,在硬件设计方面,可采用硬件备份机制来提高系统的可靠性;在软件设计方面,可采用看门狗等技术来提高软件的容错能力。
  (4)多种多样。嵌入式控制系统应用广泛、品种繁多。从嵌入式微处理器、外围设备、嵌入式操作系统及开发工具等各个方面都可以体现出嵌入式控制系统的多样性。如就硬件而言,已知的嵌入式微处理器就有1000余种。外设也会随产品的功能及应用领域的不同而发生变化,可随用户需求进行外设扩展。就软件而言,其可选择的嵌入式操作系统有数百种之多,软件编程开发环境和开发工具也五花八门,各具特色。
  (5)及时响应。所有的嵌入式控制系统实际上都可以看成实时系统,需要实时性来保障性能。它的实时性要求内部处理器能够尽可能快地对外部技术过程的请求发出响应,并及时完成。不同的嵌入式控制系统,实时性的要求不同。若违背实时约束,则可能使系统陷入瘫痪或不可用状态。对于一些对实时性要求极高的嵌入式控制系统,如工业过程控制系统,响应延迟可能造成很严重的后果。
  (6)成本敏感。目前,大量的嵌入式控制系统应用于工业产品中。这种应用的一个重要特点就是每一批次的产品数量大,单位成本对产品的市场前景和利润影响巨大。例如,一个批次的空调遥控器,若成本降低一元,有可能产生数十万乃至上百万的直接效益。因此,对单位成本的控制已成为嵌入式产品竞争的关键因素之一。
  (7)开发困难。嵌入式控制系统本身不具备软件自主开发的能力,因此大多数嵌入式软件的开发不可能如传统的PC上软件开发只在本地运行,它必须要有一套开发工具和运行环境才能进行开发与测试。常用的嵌入式产品开发模式为交叉开发,即以使用通用计算机的宿主机作为开发环境,其上配套相应的开发工具;所开发出的嵌入式软件运行在目标机上。显然,这种特殊的开发方式需要专门配套的开发工具和开发环境。但是,各芯片厂商提供的配套开发工具相对简陋,给开发带来一定的挑战。
  (8)不可垄断。通用计算机行业的技术是垄断的,而嵌入式控制系统则不相同,它是一个分散的工业,没有哪一个系列的微处理器和操作系统能够垄断全部市场。即便在体系结构上存在着主流,但各不相同的应用领域决定了市场不可能被少数公司、少数产品垄断全部市场。因此嵌入式控制系统领域的产品和技术,必然是高度分散的。
  (9)其他。除去上述特性之外,嵌入式控制系统还有许多需要关注的特征,如确定性,即任务个数确定、每个任务执行的时序确定、每个任务所占的资源确定、任务间的通信延迟确定等。
  1.1.3嵌入式控制系统的分类
  如今,嵌入式控制系统已经被广泛应用在工业控制、办公自动化、智能家庭、网络通信等多个领域,其数量庞大、种类多样、规格复杂。本节按照以下方法来对嵌入式系统进行分类,有助于有效地了解一个具体的嵌入式控制系统的属性和特点。
  1.按嵌入式控制系统的复杂程度分类
  (1)简单单处理器系统。此类系统一般由单片嵌入式处理器集成存储器I/O设备、接口设备(如A/D转换器)等构成,另外加上简单的元件如电源、时钟元件等部件即可工作。单个微处理器的这类系统大都嵌入小型设备中。
  (2)处理器可扩展系统。这类嵌入式控制系统主要是在处理器中扩展少量的存储器和外部接口以构成嵌入式控制系统。其通常使用扩展存储器或者片上存储器,容量在64KB左右,字长为8位或16位。这类嵌入式控制系统大多应用在信号放大器、位置传感器及阀门传动器等器件中。
  (3)复杂嵌入式控制系统。此类嵌入控制式系统使用的是16位、32位处理器,适用于大规模的应用。该系统需要扩展存储器来存储软件,扩展存储器容量一般在1MB以上,外部设备接口一般仍然集成在处理器上,常用的嵌入式处理器有ARM系列、Motorola公司的PowerPC系列等。这类系统可见于典型开关装置、交换机、数据监控系统、诊断及实时控制系统等。
  (4)在制造或过程控制中使用的计算机系统。在此类系统中,计算机与仪器、机械及设备相连来控制这些装置的工作。这类系统包括自动仓储系统和自动发货系统。在这些系统中,计算机用于总体控制和监视,而不是对单个设备直接控制。过程控制系统可与业务系统连接,例如,根据销售额和库存量来决定订单或产品量。大多情况下,两个功能独立的子系统可在一个主系统操作下一同运行。
  2.根据软件操作系统分类
  (1)无操作系统的嵌入式控制系统。此类嵌入式控制系统的硬件主体由IC芯片或者4位/8位单片机构成,其控制软件不含操作系统。
  (2)小型操作系统的嵌入式控制系统。此类嵌入式控制系统一般指的是硬件主体由8位/16位单片机或者32位处理器构成。其控制软件主要由一个小型嵌入式操作系统内核(如μC/OS或TinyOS)和小型应用程序组成。该操作系统功能模块不齐备,并且无法为应用程序开发提供一个较为完备的应用程序编程接口。同时,它没有图形用户界面(GUI)或者图形用户界面功能较弱。
  (3)大型操作系统的嵌入式控制系统。此类嵌入式控制系统的硬件主体通常由32位/64位处理器或32位片上系统组成。控制软件通常由一个功能齐全的嵌入式操作系统(如VxWorks、Linux、Andorid等)和封装好的API构成,具备良好的图形用户界面、网络互联功能和DSP处理能力,可运行多种数据处理功能较强的应用程序。
  3.按微处理器位数分类
  根据嵌入式系统所采用的微处理器位数对其进行划分,可以分成4位、8位、16位、32位和64位的系统。随着技术的发展及需求的激增,4位微处理器现已基本停用,目前,应用最为广泛的是8位与32位微处理器,如8051单片机采用的是8位微处理器,Win7则采用32位的微处理器;16位的DSP微处理器正广泛用于数字信号处理领域;而64位微处理器常见于一些高速、极其复杂的嵌入式系统中。
  4.按系统的实时性划分
  从广义概念上来说,嵌入式系统都可看成一个实时系统,可以严格地按时序执行特定的功能,其程序的执行具有确定性。依据对实时性的要求,嵌入式系统可分为三大类:硬实时系统、软实时系统与自适应实时系统。硬实时系统对系统的响应时间要求十分严格,若系统无法在指定的时间范围内完成某个确定的任务,则会造成系统的全面失败,甚至带来灾难性后果。例如,若核电控制系统失效,则可能会导致核泄漏。虽然软实时系统对响应时间也有所要求,但是系统响应超时却不会导致致命错误,只是造成局部功能的失效。而自适应实时系统则能够自动调整满足环境的需要,从而使性能级别得到保证。
  5.按嵌入式系统的功能用途分类
  按照应用领域可以把嵌入式系统分为军用、工业用和民用三大类。军用、工业用嵌入式系统对运行环境的要求比较苛刻,往往要求耐高温、耐湿、耐强电磁干扰、耐粉尘、耐腐蚀等。民用嵌入式系统功能需求则具有易于使用、维护和标准化程度高等特点。
  1.1.4嵌入式控制系统的应用
  如今,嵌入式控制系统广泛地应用于工业、消费、通信、汽车、军事等领域,如图1-1所示。典型的应用包括以下几方面。
  (1)工业控制。在自动化流水线、无人工厂中采用大量的工业机器人、智能传感器和智能信号变送器等嵌入式设备进行产品协同生产与流程控制,大大提高了生产效率和产品质量。
  (2)信息家电。嵌入式技术使得空调、冰箱、洗衣机、电视、扫地机器人等家用电器智能化、网络化,可通过手机、网络进行远程控制,方便了人们的生活。
  (3)医疗健康。嵌入式系统已大范围应用在医疗设备中,除了医院引入的高质量的医疗仪器(如监护仪器、成像设备、物理治疗仪)外,医疗仪器逐渐家庭化。许多小型的医疗电子设备如电子血压计、电子血糖仪等用于家庭健康监测,提高了人们的生活质量。
  (4)环境监测。在很多环境恶劣、地况复杂的地区,利用嵌入式系统进行水文数据实时监测、堤坝安全与地震监测、防洪体系及水土质量监测、实时气象信息和空气污染监测等,实现环境无人监测。

展开
目录
目录
第1章 嵌入式控制系统基础 1
1.1 嵌入式控制系统概述 1
1.1.1 嵌入式控制系统的定义 1
1.1.2 嵌入式控制系统的特点 1
1.1.3 嵌入式控制系统的分类 3
1.1.4 嵌入式控制系统的应用 4
1.2 嵌入式控制系统的基本组成 5
1.2.1 嵌入式控制系统硬件结构 5
1.2.2 嵌入式控制系统软件结构 7
1.3 嵌入式处理器概述 8
1.3.1 嵌入式处理器体系架构 8
1.3.2 嵌入式处理器的分类 10
1.4 ARM处理器概述 11
1.4.1 ARM内核与产品系列 11
1.4.2 ARM内核体系架构 13
1.4.3 Cortex内核系列 15
1.5 STM32开发工具及平台搭建 16
1.5.1 开发工具介绍 16
1.5.2 Keil的版本与安装 17
1.5.3 硬件仿真器的驱动安装 20
1.5.4 驱动程序的配置 21
1.5.5 STM32CubeMX软件简介 23
本章小结 28
思考题 28
第2章 嵌入式控制系统典型开发流程 29
2.1 需求分析 29
2.2 系统总体设计 30
2.2.1 设计方案描述 30
2.2.2 工作总框图绘制 30
2.2.3 总体结构设计 32
2.2.4 设计工作筹备 33
2.3 系统硬件设计 33
2.3.1 处理器选型 33
2.3.2 元器件选择 35
2.3.3 系统硬件电路设计 35
2.3.4 系统硬件电路的计算机辅助设计 36
2.3.5 系统硬件电路调试 37
2.3.6 系统硬件可靠性设计 38
2.4 系统软件设计 39
2.4.1 软件方案设计 39
2.4.2 驱动程序设计 40
2.4.3 软件抽象层设计 42
2.4.4 软件应用层设计 42
2.4.5 软件可靠性设计 43
2.5 系统电磁兼容性设计 44
2.5.1 电磁干扰及其危害 44
2.5.2 电磁兼容性基本概念 45
2.5.3 电磁兼容性设计 46
2.6 系统仿真与联合调试 48
2.6.1 软件调试 48
2.6.2 系统仿真 49
2.6.3 软硬件联合调试 49
2.7 系统测试与可靠性评估 50
2.7.1 系统硬件测试 50
2.7.2 系统软件测试 51
2.7.3 系统软硬件集成测试 53
2.7.4 系统可靠性评估 54
本章小结 55
思考题 56
第3章 STM32处理器及*小系统设计 57
3.1 STM32芯片结构 57
3.1.1 Cortex-M3/M4内核 57
3.1.2 STM32系统结构 58
3.1.3 STM32存储器映射 59
3.1.4 STM32时钟系统 60
3.2 STM32典型外设接口 61
3.2.1 通用型输入输出接口 61
3.2.2 同步串行口SPI 62
3.2.3 同步串行口IIC 63
3.2.4 通用同步/异步接收/发送器 65
3.2.5 可变静态存储器控制器 66
3.3 STM32典型硬件电路设计 68
3.3.1 STM32*小系统设计 68
3.3.2 STM32典型外设接口电路设计 70
本章小结 79
思考题 80
第4章 建筑能耗监控系统工程实例设计 81
4.1 系统功能说明 81
4.2 系统总体设计 81
4.2.1 系统总体方案设计 81
4.2.2 相关模块选型 81
4.3 硬件设计 84
4.3.1 系统硬件框架 84
4.3.2 电能计量采集通道设计 84
4.3.3 电能计量主电路设计 85
4.3.4 电力线载波通信模块电路接口设计 87
4.3.5 Flash存储电路设计 88
4.4 软件设计 89
4.4.1 软件整体框架 89
4.4.2 电能计量任务设计 89
4.4.3 通信模块软件设计 90
4.4.4 中断任务 92
4.4.5 报文处理任务 93
4.4.6 电能计量装置校准 93
本章小结 95
思考题 95
第5章 室内环境参数监测系统工程实例设计 96
5.1 系统功能说明 96
5.2 系统总体设计 96
5.2.1 应用系统的结构设计 96
5.2.2 相关模块选型 96
5.3 硬件设计 104
5.3.1 系统硬件框架 104
5.3.2 微处理器模块设计 104
5.3.3 电源模块设计 105
5.3.4 温湿度采集模块设计 107
5.3.5 PM2.5采集模块设计 107
5.3.6 CO2采集模块设计 108
5.3.7 甲醛采集模块设计 108
5.3.8 TVOC采集模块设计 109
5.3.9 屏幕显示模块设计 109
5.3.10 载波通信模块设计 110
5.3.11 存储模块设计 110
5.4 软件设计 111
5.4.1 软件设计结构 111
5.4.2 系统主程序软件设计 111
5.4.3 检测模块驱动软件设计 111
5.4.4 通信模块驱动软件设计 116
5.4.5 屏幕显示模块驱动软件设计 117
5.5 系统集成与调试 119
本章小结 120
思考题 120
第6章 室内窗户状态监测系统工程实例设计 121
6.1 系统功能说明 121
6.2 系统总体设计 121
6.2.1 应用系统结构设计 121
6.2.2 相关模块选型 122
6.3 硬件设计 125
6.3.1 系统硬件框架 125
6.3.2 微处理器模块设计 125
6.3.3 超声波测距模块设计 126
6.3.4 LoRa无线通信模块设计 127
6.4 软件设计 128
6.4.1 软件结构设计 128
6.4.2 系统主程序软件设计 128
6.4.3 超声波测距模块驱动软件设计 128
6.4.4 LoRa通信模块驱动软件设计 130
6.5 系统集成与调试 132
6.5.1 系统测量窗户开启宽度功能测试 132
6.5.2 系统数据传输功能测试 132
本章小结 133
思考题 133
第7章 建筑智能网关工程实例设计 134
7.1 概述 134
7.2 系统功能说明 135
7.2.1 需求分析 135
7.2.2 功能设计 136
7.3 系统总体设计 139
7.3.1 嵌入式处理器选型 139
7.3.2 嵌入式外围设备选型 140
7.3.3 嵌入式软件设计架构 141
7.4 系统软硬件详细设计 142
7.4.1 硬件详细设计 142
7.4.2 软件详细设计 155
7.5 系统集成与调试 164
本章小结 165
思考题 165
第8章 基于Java的建筑智能化上位机工程实例设计 166
8.1 系统功能说明 166
8.2 系统总体设计 166
8.3 服务器端软件设计介绍 167
8.3.1 Java编程语言 167
8.3.2 IDEA编程工具 169
8.3.3 SpringBoot架构 169
8.3.4 SpringMVC架构 174
8.4 服务器端与智能网关通信设计 175
8.4.1 服务器端与智能网关的通信协议 175
8.4.2 376.1协议 176
8.4.3 Netty架构 181
8.5 数据库存储设计 186
8.5.1 MySQL数据库简介 186
8.5.2 MyBatis架构 186
8.6 基于Vue的前端设计 188
8.6.1 搭建开发环境 188
8.6.2 搭建Vue工程 189
8.6.3 官方周边库 189
8.6.4 Element UI组件库 191
8.6.5 数据可视化的实现 191
8.6.6 前端与后端的数据交换格式 194
8.6.7 前端与后端的通信设计 195
8.7 基于Java的工程实例设计 197
8.7.1 服务器端与智能网关的通信实现 197
8.7.2 服务器端的数据帧判断 197
8.7.3 服务器端的数据处理 198
8.7.4 服务器端与客户端的通信实现 200
8.7.5 前后端跨域处理 201
8.7.6 客户端的人机界面设计 201
本章小结 204
思考题 204
第9章 铝电解阳极电流测量装置工程实例设计 205
9.1 铝电解生产工艺概述 205
9.2 阳极电流检测原理与测量仪技术指标 206
9.3 系统总体设计 207
9.4 系统硬件设计 208
9.4.1 MCU模块设计 209
9.4.2 自校准电路设计 209
9.4.3 放大电路设计 211
9.4.4 滤波电路设计 211
9.4.5 A/D采样电路 214
9.4.6 温度采集模块的设计 215
9.4.7 电源模块的设计 216
9.4.8 RS485通信电路设计 216
9.4.9 数据存储模块设计 217
9.5 系统软件设计 218
9.5.1 软件总体框架 218
9.5.2 主程序设计 219
9.5.3 阳极温度采集软件设计 219
9.5.4 等距压降采集软件设计 220
9.5.5 数据存储软件设计 221
9.5.6 通信模块软件设计 221
9.6 测量装置系统测试 224
本章小结 225
思考题 226
第10章 基于温差发电的铝电解槽温度监测装置工程实例设计 227
10.1 需求分析 227
10.2 系统总体设计 227
10.2.1 总体方案设计 227
10.2.2 温度采集方案设计 228
10.2.3 无线通信方案设计 229
10.2.4 无线供电方案设计 230
10.3 系统硬件设计 231
10.3.1 温差发电装置设计 231
10.3.2 电源电路设计 232
10.3.3 MCU模块电路设计 233
10.3.4 温度采集电路设计 235
10.4 系统软件设计 235
10.4.1 软件总体框架 235
10.4.2 温差发电软件设计 236
10.4.3 温度采集软件设计 237
10.4.4 无线传输软件设计 238
10.5 系统性能测试 240
10.5.1 测试平台搭建 240
10.5.2 温差发电性能测试 241
10.5.3 温度采集性能测试 244
本章小结 245
思考题 245
第11章 铝电解边缘计算智能网关工程实例设计 246
11.1 概述 246
11.2 系统需求分析及功能设计 247
11.2.1 需求分析 247
11.2.2 功能设计 248
11.3 系统总体设计 251
11.3.1 嵌入式处理器选型 252
11.3.2 嵌入式外围设备选型 252
11.3.3 嵌入式软件设计结构 253
11.4 系统软硬件详细设计 254
11.4.1 硬件详细设计 254
11.4.2 软件详细设计 262
11.5 系统集成与调试 276
本章小结 278
思考题 278
第12章 基于LabVIEW的铝电解槽监测上位机工程实例设计 279
12.1 系统功能说明 279
12.2 系统总体设计 279
12.3 LabVIEW介绍 280
12.3.1 LabVIEW数据类型 281
12.3.2 LabVIEW常用函数 285
12.4 数据库存储设计 289
12.4.1 MySQL数据库协议 289
12.4.2 ODBC数据源介绍 289
12.4.3 LabVIEW访问MySQL数据库 290
12.5 LabVIEW客户端设计 291
12.5.1 人机界面设计要点 291
12.5.2 颜色的使用 292
12.5.3 LabVIEW控件 293
12.5.4 插入图片和装饰 293
12.5.5 界面分隔和自定义窗口大小 294
12.5.6 程序中字体的使用 296
12.5.7 客户端与服务端的数据通信格式 297
12.5.8 客户端与服务端的通信设计 298
12.6 基于LabVIEW的工程实例设计 299
12.6.1 服务器端与智能网关的连接实现 299
12.6.2 服务端的数据帧判断 301
12.6.3 服务端的数据处理 301
12.6.4 数据库操作 302
12.6.5 服务端对客户端显示数据的组帧 302
12.6.6 服务端与客户端
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

温馨提示:请使用罗湖图书馆的读者帐号和密码进行登录

点击获取验证码
登录