嵌入式程序设计ch1-嵌入式系统概论

本文最后更新于:10 个月前

嵌入式系统设计

这个系列整理郭建老师的课件

前言

教材:

• 嵌入式系统设计基础及应用——基于ARM Cortex-M4微处理器,北京:清华大学出版社,2022

感觉就是老师卖书

•嵌入式系统设计实验教程,北京:清华大学出版社, 2022

参考教材:

•Marilyn Wolf . 嵌入式计算系统设计原理.第四版. 北京: 机械工业出版社, 2018

主要内容

•嵌入式系统的基础知识

•硬件部分

​ –微处理器体系结构及指令系统

​ –总线技术

​ –存储器系统

​ –I/O 接口

​ –32位RISC微处理器ARM cortex M4

​ –ARM cortex M4的输入输出设备接口

•软件部分

​ –程序设计与分析

​ –嵌入式实时操作系统

​ –嵌入式系统调试、测试与验证方法

​ –……

•多核嵌入式微处理器

嵌入式系统概念

•IEEE:

​ –Devices used to control, monitor, or assist the operation of equipment, machinery or plants.

•Wolf:

​ –any device that includes a programmable computer but is not itself a general-purpose computer.

•Microsoft

​ –An embedded system is any computer system or computing device that performs a dedicated function or is designed for use with a specific embedded software application

民用嵌入式设备或产品

无人机,智能家居,机顶盒,数字示波器,智能机,可视电话,单反相机

嵌入式系统高端应用的产品

战斗机,无人驾驶,机器人,巡航导弹,坦克,玉兔月球车

学习方法

•嵌入式的特点学习。

​ –动手,做一个简单的设备,如:电子时钟。

​ –具有自学能力。

​ •会看硬件的说明书

​ •C++或C编写过应用程序

​ •编写基于某种CPU(如ARM)的程序:代码裸奔


我们把类似51单片机或者DSP上面跑的没有操作系统的程序叫做“代码裸奔”。因为有的时候,比如我们编写一个简单的程序,就只需要点几个LED检测几个按钮的状态,那么“代码裸奔”弄一个while(1)的死循环就足够了,杀鸡何必用牛刀。 编写这种裸奔的代码,也是学习嵌入式的必由之路,因为,你将会用C语言去对寄存器写控制字,这就是以后写驱动程序的基础呀。 另外需要说明的是,从概念上说,“代码裸奔”也已经属于嵌入式开发的范畴。


​ •到了最后一个阶段,开始找一个方向(mcos、Linux、VxWorks、WindowsCE、Palm等 等),学习基于操作系统的嵌入式开发了。

第一章 嵌入式系统概论

一. 嵌入式系统概念

嵌入式实例:

手机:

示意图

汽车电子:

汽车电子是汽车行业最活跃的热点,§OSEK/VDX, AUTOSAR, ISO 26262

高端的汽车中包含100 多个微处理器, 低端的汽车也至少用20多个微处理器

​ 4-bit 微处理器用于检查安全带是否系上

​ 微控制器控制面板系统,

​ 16/32-bit 微处理器控制引擎

防抱死制动系统(ABS): 反复制动减少打滑

允许ABS系统来调整刹车,以防止车轮被锁死

自动稳定控制系统(ASC+T): 控制引擎以改善其稳定性

航天航空:

“玉兔号”月球车

上述示例特点:

🔷专用目的

​ 🔷软硬件为特定应用而设计

​ 🔷实时

嵌入式系统定义

​ IEEE:用于控制、监视或者辅助操作机器或设备的装置

​ 通用的定义:在产品内部,具有特定功能的计算机系统。

​ 通用计算机不是嵌入式设备,但可用于嵌入式设备的开发

嵌入式系统分类

​ 实时(硬实时):超过时限将产生不可接收的结果,如机毁人亡、系统崩溃

​ 非实时(软实时):超过时限,可能会影响性能,但不会带来灾难性后果

嵌入式系统特点

​ 🔷专用性强

​ 🔷资源受限

许多嵌入式系统受市场约束需要低的制造成本.

低内存, 低端处理器等.

​ 🔷知识集成度高

运行复杂的算法和多个算法.

​ 移动设备, 激光打印机.

​ 提供复杂的用户界面.

​ 🔷高实时性

在规定的时限内数据没有准备好,将中断

在规定的时限内没有获得数据,将会不安全

多速率操作.(例如多媒体数据流包括视频和音频)

​ 运行多个实时动作

​ 以不同的速率执行

​ 🔷高可靠性

许多嵌入式系统工作在遥远、无人值守及恶劣环境

二.嵌入式系统组成

嵌入式系统:

硬件–包括核心处理器以及外围器件组成

软件–包括固件、操作系统、中间件和应用程序

cpu,存储器,io

层次

§片上系统(SOC):集成RAM、ROM、通信、I/O 等外设,从而简化了系统设计,提高了产品的可靠性

嵌入式微处理器

特点

🔷处理速度快

🔷功耗低

​ 不仅要求低功耗,还需具有管理外设功耗的能力

🔷接口丰富,I/O能力强

🔷可靠性高,经常工作在无人值守的环境

🔷生命周期长

​ 应用需求比较稳定,长时间内不发生变化

🔷产品系列化

​ 呈现出系列化、家族化的特征

分类

🔷指令集特点:

​ 复杂指令集处理器(CISC)和精简指令集处理器(RISC)

🔷处理器字长:

​ 4位、8位、16位、32位和64位处理器

🔷内部总线结构和功能特点:

​ 冯.劳伊曼结构(Von Neumann )

​ 哈佛结构(Harvard)

组成

🔷内核:运算和控制单元、总线、存储管理单元及异常管理单元

🔷片内存储资源,集成高速RAM,有些MCU 和 SOC 内置 ROM 或 Flash ROM

🔷外设:外设控制器、通信、人机交互、信号I/O

🔷电源:正常电压、耐受电压范围、最大电流

🔷封装形式:尺寸、外形、引脚方式

三.嵌入式系统设计

嵌入式操作系统分类

应用对系统响应时限的要求划分

🔷实时操作系统(RTOS

​ 必须在限定的时间内完成任务调度和任务执行

​ 任务调度时间和稳定性有非常严格的要求

​ 分类

​ 硬实时(Hard real time): 错过deadline会造成失败,或造成重大损失俄 eg:汽车刹车控制

​ 软实时(Soft real time): 错过deadline会导致性能的降低. eg:DVD播放画面延迟

示例:FreeRTOS,UCOS,RTX,RT-Thread,DJYOS等

🔷非实时操作系统

示例:Linux、Android、iOS、VxWorks、Free RTOS、LiteOS、uC/OS等。

特点

🔷内核小

​ 系统资源相对有限,内核通常小于传统操作系统的内核

🔷可裁剪性

​ 有很强的个性化特征

🔷操作系统与系统硬件结合非常紧密

​ 需要做有针对性的裁剪

🔷实时多任务调度,多速率操作

​ 运行多个实时动作

​ 以不同的速率执行

嵌入式系统设计方法

Top-down 设计

开始于最抽象的描述,直到最细节

Bottom-up 设计

开始于小的组件,到大系统

需求分析

功能性需求:系统的基本功能

非功能性需求:性能:速度、计算时间,成本,物理尺寸、重量,功耗,可靠性

传统开发过程

传统流程

评价:直接简单,有缺陷,依赖于开发者的经验,硬软件设计过程独立,彼此缺少交互,性能对软硬件分别优化,难以整体提高系统性能

软硬件协同设计

流程

评价:软硬件设计作为一个整体考虑,从系统需求出发,综合分析系统软硬件功能及现有资源,软硬件功能划分,确定系统架构,实现软硬件协同验证,使得系统运行在最优工作状态。

分析:系统描述是设计者借助 EDA工具及一种或多种语言(systemVerilog),系统设计分为软硬件功能划分和系统映射两个阶段,综合实现是软件、硬件系统的具体实现过程,经过仿真验证后,按照系统设计的要求开发

嵌入式系统软件调试环境

采用“宿主机/目标板”模式:

–宿主机( PC)上良好的开发和调试程序

–交叉编译环境生成目标代码和执行文件

–程序下载固化到目标机上

使用计算机和开发板

开发实例分析(GPS 移动地图的设计):

移动地图从GPS获得当前的位置,绘制地图.

需求

功能: 针对高速上的用户,显示道路和其它地标.

用户界面: 400 x 600 屏幕. 三个控制按钮.

性能: 地图平滑移动,显示在1秒中出现,核查位置在15秒内出现.

成本: 400元 零售价.

物理尺寸/重量: 适合手掌.

功耗: 四节AA电池供电8小时.

列出需求表

GPS 移动地图需求表
名称 GPS移动地图
目标 驾驶使用的用户级地图
输入 一个电源按钮,2个控制按钮
输出 背光400*600像素的LCD(液晶)显示屏
功能 使用5个接收器的GPS系统;三个用户可选的分辨率;总是显示当前的经纬度
性能 在位置变动后的0.25s内更新屏幕
制造成本 200元
功率 100mW
物理尺寸和重量 不超过2英寸´ 6英寸,12盎司(1英寸=0.0254米;1盎司=28.3495克)

系统描述

🔷对系统更精确的描述

​ -不应隐含具体的功能

​ -为结构设计过程提供输入

🔷包括功能和非功能元素

🔷可用执行或数学的形式来描述

GPS 系统描述

从GPS中接收到的数据; 地图数据; 用户界面; 满足用户需求的必须操作; 保持系统运行所需的后备动作

系统设计

🔷主要的组件满足规格说明

🔷软硬件划分

​ 硬件组件

​ CPUs, 外设等

🔷软件组件

​ 主要的程序和它们的操作

🔷必须考虑功能和非功能性的需求

GPS 移动地图块图

GPS 移动地图的硬件结构

GPS 移动地图的软件结构

软硬件综合实现

在开始写代码之前要构造系统

​ 🔷有些组件是已经构造好的

​ 🔷有些可以对已经存在的设计进行修改

​ 🔷其它的需要从头设计

系统仿真验证

🔷得到可运行的系统

🔷仿真验证

​ 发现bugs——非常困难

​ 调试工具少

​ 有些不正确的工作很难修复

四.嵌入式系统发展

嵌入式系统的发展伴随着计算机技术的发展

早期历史

40年代末: MIT设计的 Whirlwind是第一台支持实时操作的计算机.

  • 设想作为一种控制飞机模拟器的装置.
  • 体积庞大
  • 从构件到系统的完整设计上是适应实时嵌入式计算的需求

第一个微处理器在70年代末的Intel 4004.

Intel4004 用于计算器中

1972年HP-35 计算器,多块芯片实现CPU

汽车基于微处理器的引擎控制系统的设计开始于70年代.

  • 控制燃料/气体混合、活塞花点火时间等.
  • 多模式操作:叫醒模式、导航模式、爬坡模式等.
  • 提供低排放、高效燃油.

现代物联网和人工智能是是嵌入式系统应用的重要领域

微处理器变化

  • 微控制器:包括 I/O设备, 板上存储.
  • 微处理器:由计算机的CPU发展而来
  • 数字信号处理(DSP): 微处理器在数字信号处理能力上的优化.
  • 典型的嵌入式字的大小: 4-bit, 8-bit, 16-bit, 32-bit, 64-bit.
  • 语言:汇编语言到C语言等高级语言

五.小结

🔷嵌入式系统是具有特定(或专用)功能的计算机系统

🔷嵌入式系统是由软硬件组成,具有丰富的外设

🔷嵌入式系统开发采用软硬件协同设计方法

🔷今年来,嵌入式系统的复杂程度和性能呈爆炸式增长


嵌入式程序设计ch1-嵌入式系统概论
https://www.emokable.top/嵌入式程序设计ch1-嵌入式系统概论/
作者
emokable
发布于
2023年3月5日
许可协议