嵌入式系统设计师软考个人笔记<1>

一、嵌入式系统基本概念

定义 :嵌入式系统是以应用为中心以计算机技术为基础,软硬件可裁剪的专用计算机系统,核心是 "控制程序存储在 ROM 的嵌入式处理器 / 控制板"。

二、基本计算机硬件系统组成

计算机硬件由 5 大核心部件构成(冯・诺依曼体系):

  1. 运算器
    • 核心是ALU(算术逻辑单元),负责算术运算(+、-、×、÷)和逻辑运算(与、或、非);
    • 嵌入式中集成在 CPU 内部。
  2. 控制器
    • 计算机的 "指挥中心",负责解析指令、协调硬件动作;
    • 与运算器共同组成CPU(中央处理器)
  3. 存储器
    • 内存储器(内存):速度快、容量小、断电数据丢失(如 RAM);
    • 外存储器(外存):速度慢、容量大、断电数据保留(如 ROM、Flash、硬盘)。
  4. 输入设备
    • 向计算机输入数据 / 指令的设备(如键盘、传感器、触摸屏)。
  5. 输出设备
    • 向外部输出处理结果的设备(如显示器、LED、电机)。

三、计算机核心寄存器(CPU 内部组件)

  1. 指令寄存器(IR)
    • 存储当前正在执行的指令,供控制器解析。
  2. 程序计数器(PC)
    • 功能:① 存储下一条要执行的指令地址;② 自动 "计数"(指令执行后,PC 自动 + 1 指向下一条指令)。
  3. 地址寄存器(AR)
    • 存储要访问的内存 / 外设地址,配合地址总线完成数据读写。
  4. 指令译码器(ID)
    • 解析指令寄存器中的指令,翻译成硬件可执行的控制信号。

四、数的表示

1. 进制与转换
  • 任意进制数(如 N 进制)的权值是 N 的幂次
  • 进制转换:十进制↔二进制 / 八进制 / 十六进制。
2. 机器数的编码(带符号数表示)

机器数用 "最高位表示符号"(0 = 正、1 = 负),常见编码有 3 种:

编码类型 正数表示 负数表示 特点
原码 符号位 + 数值位 符号位(1)+ 数值位 简单直观,但加减法需区分符号,0 有两种表示(+0、-0)
反码 与原码相同 符号位(1)+ 数值位按位取反 是原码到补码的过渡,0 仍有两种表示
补码 与原码相同 反码 + 1 0 只有一种表示,加减法可统一为加法
3. 浮点数表示
  • 格式:用符号位 + 阶码(指数)+ 尾数(有效数字) 表示(例:科学计数法的机器实现);
  • 分隔:小数部分与整数部分用 "△"(或小数点)隔开。
4. 移码
  • 定义:在数 X 的基础上加一个偏移量,用于表示浮点数的阶码(避免阶码出现负数);
  • 规则:偏移量为2n−1(n 是阶码位数);

五、数据校验

用于检测 / 纠正数据传输中的错误,常见类型:

  1. 奇偶校验
    • 原理:在数据后加 1 位 "校验位",使数据中 "1 的个数" 为奇数(奇校验)或偶数(偶校验);
    • 特点:仅能检测奇数位错误,无法纠错。
  2. 海明码
    • 原理:在数据中插入多个校验位,通过校验位的组合定位错误位;
    • 特点:能检测并纠正 1 位错误
  3. CRC(循环冗余校验)
    • 原理:通过多项式除法生成校验码,接收方重新计算并对比;
    • 特点:能检测多位错误(常见于通信、存储领域)。

六、计算机的加减法实现

  • 核心逻辑:用补码实现加减法统一(减法转加法);
  • 步骤:
    1. 将被减数、减数转换为补码;
    2. 减法→"被减数补码 + 减数补码的相反数补码";
    3. 计算结果的补码转换为原码,得到最终结果。

七、寄存器分类与功能

  1. 程序寄存器(PC)

    • 存放下一条指令的内存地址

    • 顺序执行时自动+1,跳转时装载目标地址

  2. 指令寄存器(IR)

    • 存放当前从内存取出的指令

    • 输出到译码器进行解析

  3. 地址寄存器(AR)

    • 存放要访问的内存单元地址

    • 连接地址总线,用于寻址

八、控制与译码单元

  1. 指令译码器

    • 输入:IR中的操作码

    • 输出:控制信号(如ALU操作、寄存器写使能、内存读写)

  2. 时序控制逻辑

    • 生成时钟同步的控制序列

    • 控制数据通路的开关

  3. 程序计数器逻辑

    • 控制PC的更新(+1、跳转、中断入口装载)

九、数据通路

复制代码
PC → 地址总线 → 内存  
内存 → 数据总线 → IR  
IR → 译码器 → 控制信号  
AR → 地址总线 → 内存(数据存取)  
寄存器组 ↔ ALU ↔ 内存
相关推荐
hjxu20165 小时前
【OpenClaw 龙虾养成笔记一】在远程服务器,使用Docker安装OpenClaw
服务器·笔记·docker
sinat_255487815 小时前
读者、作家 Java集合学习笔记
java·笔记·学习
observe1016 小时前
输入输出1
笔记
sanshanjianke9 小时前
AI辅助网文创作理论研究笔记(五):测试环境的搭建和一些问题的讨论
人工智能·笔记·ai写作
云边散步9 小时前
godot2D游戏教程系列二(18)
笔记·学习·游戏
C羊驼10 小时前
C语言:随机数
c语言·开发语言·经验分享·笔记·算法
風清掦10 小时前
【江科大STM32学习笔记-09】USART串口协议 - 9.1 STM32 USART串口外设
笔记·stm32·单片机·嵌入式硬件·学习
xian_wwq11 小时前
【学习笔记】看参识模型
笔记·学习
猹叉叉(学习版)11 小时前
【系统分析师_知识点整理】 3.数据库系统
数据库·笔记·软考·系统分析师
李子琪。11 小时前
攀山的人
经验分享·笔记·百度·新浪微博