# 1. 计算机的发展 ## 1.1. 电子管计算机 ![image-20240830153949838](./img/image-20240830153949838.png) ENIAC长30.48米,宽6米,高2.4米,占地面积约170平方米,30个操作台,重达30英吨,耗电量150千瓦,造价48万美元。它包含了17,468根真空管(电子管)7,200根水晶二极管,1,500 个中转,70,000个电阻器,10,000个电容器,1500个继电器,6000多个开关,计算速度是每秒5000次加法或400次乘法,是使用继电器运转的机电式计算机的1000倍、手工计算的20万倍。 ![image-20240830154010191](./img/image-20240830154010191.png) ENIAC的编程通过改变电缆连接的方式进行,那时几乎所有的程序员都是女性。 ## 1.2. 计算机核心技术的发展 ![image-20240830154119341](./img/image-20240830154119341.png) 电子管又叫做阴极射线管,是ENIAC的核心。 ![image-20240830154308967](./img/image-20240830154308967.png) 1947发面了晶体管(一般使用半导体材料硅/锗为材料,后来锗材料因为物理特性的原因几乎很少用了)代替电子管,使得计算机的功耗和体积大大降低,同时运算速度大大提升。 ![image-20240830154543648](./img/image-20240830154543648.png) 集成电路,英文为Integrated Circuit,缩写为IC;顾名思义,就是把一定数量的常用电子元件,如电阻、电容、晶体管等,以及这些元件之间的连线,通过半导体工艺集成在一起的具有特定功能的电路。是20世纪50年代后期到60年代发展起来的一种新型半导体器件。它是经过氧化、光刻、扩散、外延、蒸铝等半导体制造工艺,把构成具有一定功能的电路所需的半导体、电阻、电容等元件及它们之间的连接导线全部集成在一小块硅片上,然后焊接封装在一个管壳内的电子器件。其封装外壳有圆壳式、扁平式或双列直插式等多种形式。集成电路技术包括芯片制造技术与设计技术,主要体现在加工设备,加工工艺,封装测试,批量生产及设计创新的能力上。 ## 1.3. 现有主流计算机的计算能力 13th Gen Intel(R) Core(TM) i7-13700K - 核心:6.38GFLOPS/Core 64亿浮点/核心/秒 - CPU:500亿~2000亿/秒 - 频率 3~6G - 晶体管数量 估计 20亿~50亿 - 功耗 65W # 2. 嵌入式系统的概念和特点 计算机系统分类(P2) 1. 通用计算机按照高速运算和海量存储的技术方向发展。 2. 嵌入式系统则向低功耗、高可靠性和便携性等方向发展 ## 2.1. 什么是嵌入式 IEEE定义:用于控制、监视或者辅助操作机器或设备装置。 通用定义:嵌入到对象体系中,以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗等严格要求的专用计算机系统。 ## 2.2. 嵌入式系统的特点(p2) 1. 嵌入性 2. 专用性 3. 计算机系统 ## 2.3. 问题: > 你身边的电子设备,那些是嵌入式的,哪些是非嵌入式的? > > - 笔记本 > - 服务器 > - 手机? > - 手表? > - 空调 > - 电视? > - 洗衣机 > - 冰箱 > - 蓝牙耳机 > - 遥控器 > # 3. 嵌入式系统的组成(p3) ![image-20240831090312951](./img/image-20240831090312951.png) 虚线上的是软件部分,下部是硬件部分。硬件部分分为核心部分和外围电路;软件部分的操作系统是可选的。 > 问题:为什么需要操作系统,没有操作系统行不行? ## 3.1. 嵌入式硬件(p3-p4) - 嵌入式处理器(MPU/MCU):一般来说,MPU的通用能力更好、性能更好;MCU 的性能较低、功耗更低,型号更多,满足专用的领域。例如以前学过的8051就是典型的MPU。 ![image-20240831091648957](./img/image-20240831091648957.png) > 问题:8051 的基本性能和外设? > > 8051 可以用来做什么? - DSP 数字信号处理器 ### 3.1.1. 片上系统(SOC) 片上系统(SOC):集成度更高,除了MPC/MCU,集成了信号处理(DSP),音频、视频、存储等附加功能,更便于小型化和专用化。 ### 3.1.2. ARM处理 ARM公司负责设计处理计内核,其他公司购买内核设计,并在内核的基础上增加功能后完成自己的芯片。 系列:Cortex-A、Cortex-R、Cortex-M,性能从高到底。Cortex-A系列用于手机、平板、甚至服务器领域;Cortex-R通用的高性能嵌入式,用于汽车、网络产品片、仪器、家电等领域;Cortex-M是低功耗系列,用于手表、物联网传感器等小型化、低功耗的领域。 ![image-20240831093122332](./img/image-20240831093122332.png) ### 3.1.3. 外围电路(p5) - 环境感知 - 通信类 - 存储类 - 人机交互类 ## 3.2. 嵌入式系统软件(p6) ![image-20240831093537375](./img/image-20240831093537375.png) - 驱动程序 - 操作系统 - 应用程序 # 4. 嵌入式系统的开发流程 ## 编程模式(p7) ### 前后台程序(裸机编程) 该方式适合简单的应用。 后台系统:一个死循环,在循环中调用不同的功能函数完成操作; 前台系统:多个中断服务,用于处理系统的异步事件和实时性要求高的任务。 ![image-20240831103309376](./img/image-20240831103309376.png) ### 嵌入式操作系统 适合复杂的应用,更方便的管理任务间的切换,同时也需要较多的资源(RAM、ROM、CPU)。 ## 程序开发方式(P8) - 寄存器方式:以前的8051编程方式,需要了解每个寄存器的具体地址,通过寄存器的读写、位操作等完成功能的开发; - 库函数方式:使用函数和预定义常量来简化寄存器的操作,其底层还是寄存器的操作。