一、CPU......

最小系统:能够使51单片机工作所需最少器件

(电源、晶振、复位)

1.CPU

中央处理器(Central Processing Unit)

完成数据运算

2.MCU

微控制器(Micro controller Unit)

功能:集成了 CPU + 内存 (少量) + 外设。

特点:集成度高、成本低、简单控制领域

3.MPU

微处理器(Micro processor Unit)

功能:仅包含 CPU 核心,需要外接内存、外设、存储才能工作。

特点:集成度低,成本高,需要外接功能模块

4.GPU

图像处理单元(Graphics Processing Unit)

功能:图像、视频处理

5.NPU

神经网络处理器(Neural Processing Unit)

功能:AI推理

6.FPU

浮点运算单元(Floating Point Unit)

功能:CPU 的子模块,负责处理小数运算(没有 FPU 的 CPU 只能算整数)

缩写全称核心含义 & 通俗解释典型应用场景
CPUCentral Processing Unit中央处理器,通用计算核心,负责执行指令、统筹全局所有电子设备的 “大脑”(电脑、手机、单片机)
MCUMicrocontroller Unit微控制器,集成了 CPU + 内存 (少量) + 外设 (GPIO/UART 等) + 存储 的单片芯片,主打 “控制”智能家居、传感器、小家电(比如空调遥控器)
MPUMicroprocessor Unit微处理器,仅包含 CPU 核心,需要外接内存、外设、存储才能工作早期电脑、简单工控板
GPUGraphics Processing Unit图形处理器,擅长并行计算,主打图像 / 视频处理显卡、手机屏幕渲染、游戏
NPUNeural Processing Unit神经网络处理器,专为 AI 算法优化手机人脸识别、智能摄像头、自动驾驶
FPUFloating Point Unit浮点运算单元,CPU 的子模块,负责处理小数运算(没有 FPU 的 CPU 只能算整数)需要精准计算的场景(比如传感器数据校准)
SOCSystem on Chip片上系统,高度集成(CPU+GPU+NPU + 内存控制器 + 外设等),是 “超级集成芯片”手机、平板、高端嵌入式设备(比如树莓派)

7.SOC

片上系统(System on Chip)

功能:(CPU+GPU+NPU + 内存控制器 + 外设等),是 “超级集成芯片”

二、RAM和ROM

1.RAM

随机访问内存(random access memory)

cpu访问变量地址,变量地址随机

2.ROM

只读存储器——程序运行期间只读

存放单片机程序、代码、指令

3.区别

RAM(随机存取存储器)ROM(只读存储器)
掉电数据丢失(易失性)保留(非易失性)
读写速度极快较慢(部分 ROM 仅能读)
读写权限可读可写出厂写入后,普通场景只读(比如单片机的 Flash 属于可擦写 ROM)
核心用途运行时临时存储数据(比如程序运行的变量、缓存)永久存储程序、固件、常量(比如单片机的程序烧录到 ROM 里)
通俗例子电脑的内存条、手机的运行内存(8G/12G)电脑的硬盘、手机的存储(128G/256G)、单片机的 Flash

外存 -> 内存 -> CPU

CPU -> 内存-> 外存

 三、外设寄存器

寄存器是芯片内部的一小块高速存储单元,外设寄存器就是 “专门用来控制外设(比如 GPIO、UART、LED)的寄存器”

能够操作硬件,有固定地址

四、LED操作的寄存器

AT89C51:P2寄存器

五、GPIO

GPIO(General Purpose Input/Output)

通用输入输出口,是单片机 / 芯片对外的 “通用接口引脚”。

六、中断

1.概念

        当cpu执行某个任务,外界发生紧急事件,暂停当前任务,去处理紧急事件,处理结束后再回到原任务被打断的地方继续向下执行

1.1中断源

        打断cpu执行当前任务的源头事件

  • 外部中断0
  • 外部中断1
  • 定时器0
  • 定时器1
  • 串 口

1.2中断优先级

        多个中断源同时向cpu申请中断,会执行优先级高的中断

1.3中断处理流程

  • 中断源发送中断请求
  • 检查CPU是否响应中断(总开关)以及某中断源是否被屏蔽    (子开关)
  • 比较中断优先级
  • 保护现场
  • 执行中断服务函数
  • 恢复现场

2.配置

2.1  IE:中断允许寄存器

IE |= (1 << 7);

IE |=  (1 << 0);

2.2   TCON 定时器/计数器  中断控制寄存器 

//外部中断0的初始化函数

#include <reg51.h>

void int0_init(void)
{
    P3 |= (1 << 2);

    IE |= (1 << 7);
    IE |= (1 << 0);

    TCON |= (1 << 0);

}

3.中断向量表&中断向量

中断向量表:本质是一个数组,存放中断服务函数入口地址

中断向量:一个标号,可以通过标号再中断向量表中找到中断服务函数的入口地址

4.定时器/计数器

4.1 timer0

16位模式定时器 65535 自增型定时器

定时器赋初值  -> 开启定时器 -> 以固定频率自增到65535 ->溢出后产生中断

eg:晶振频率为12MHZ,求定时器初值

        12MHZ / 12 = 1MHZ

        T = 1 / 1MHZ = 1us

        完成1ms定时 :

        1ms = 1000us

        1000us / 1us = 1000次

        初值 = 65535 - 1000  

4.2配置

TCON |= (1 << 4);        //允许timer0计数

//配置定时器工作模式

#include <reg51.h>
#include "timer.h"

#define HZ_200 63035

void timer0_init(void)
{
	// 1. 配置定时器0工作模式
	TMOD &= ~(0x0F << 0);
	TMOD |= (1 << 0);
	TMOD &= ~(1 << 1);

	// 2. 向定时器0赋初值
	TH0 = HZ_200 >> 8;
	TL0 = HZ_200;

	// 3. 允许定时器0开始计数
	TCON |= (1 << 4);

	// 4. 允许CPU响应中断
	IE |= (1 << 7);

	// 5. 允许定时器0产生中断
	IE |= (1 << 1);
}

三、PWM

脉冲宽度调制

  • 能够使引脚产生一个方波, pwm让引脚电平周期性翻转
  • 周期:一个下降沿到下一个下降沿所经历的时间
  • 占空比:高电平在一个周期内所占比例

四、蜂鸣器

  • 有缘蜂鸣器:内部存在震荡源,上电后蜂鸣器会发出固定频率
  • 无缘蜂鸣器:内部无震荡源,要手动赋频率

五、通信协议

1.单工模式

  • 数据接收方和发送方是固定的
  • 数据通过一根信号线(一组线)实现
  • 数据传输方向单一

理解:单向通行车道

2.半双工

  • 通信双方既可以作为数据发送方,也可以作为数据接收方(同一时刻固定收发)
  • 数据传输通过一根信号线实现
  • 传输方向可以是双向(同一时刻数据传输呈现单一性)

理解:潮汐车道

3.全双工

  • 通信双方既可以作为数据发送方,也可以作为数据接收方
  • 数据通过2根信号线实现
  • 双向传输

理解:双向通行车道

4.UART

universal async receiver transmitter,通用异步收发器 :全双工、串行、异步

RXD:数据接/收信号线
TXD:数据发/送信号线

遵循LSB优先发送

4.1串行、并行

  • 串行:通过一根信号线逐个bit发送数据
    • 传输慢;
    • 硬件成本低、实现简单;
    • 传输距离远,抗干扰性好
  • 并行:通过多根信号线多个bit同时发送
    • 传输速度快
    • 硬件成本高,实现复杂
    • 传输距离近,抗干扰性差

4.2 TTL; RS232; RS485; CH340

TTL(Transistor-Transistor Logic):芯片引脚电压

用于两个芯片间通信

传输距离短(理论10-20m、但大部分板上通信实际都是几十cm的传输距离)


RS232标准

(全双工、负逻辑)
高电平: -3V - -15V
低电平:3V - 15V

实际传输距离10几米以内


RS485标准

(半双工通信;抗干扰能力特别强;增大传输距离)
一根数据线,一根差分传输线:差分信号 A - B > 2V A - B < -2V
高电平: 7V ~ 12V
低电平:-7V ~ -12V

CH340:电平转换芯片(TTL -> USB电平)

4.3奇偶校验

奇偶校验: 无法检测偶数个 bit 出错的问题

  • 奇校验(O) :校验位为 '1',若 数 据位 中'1'的个 加上 校验位 的 '1'  保持 '1'的总个数为奇数 个 , 则代表奇校验通过
  • 偶校验(E):校验位'0', 若数据位中 '1'的个数加上 校验位的 '0'  保持 '1'的总个数为偶数个 , 则代 表偶校验通过
  • 无校验(N)

4.4同步、异步

  • 同步通信 : 通信双方通过一根共享的时钟信号线 规定 数据传输的 频率
  • 异步通信 :通信双方没有 共享时钟信号线 规定 数据传输 频率
  1. 作为常用的串行通信方式,以TTL为例,串口通信在不同主机之间的数据格式为:

  1. 空闲时数据线为高电平;
  2. 发送一个低电平表示起始位;
  3. 发送的第一个比特是最低位(最右边);
  4. 校验位分为奇校验,偶校验和无校验。奇校验是指确保数据位加上校验位中"1",1的总数为奇数;偶校验是指确保数据位加上校验位中"0",1的总数为偶数;
  5. 为保证下一个字节发送前的起始位能够表现出来,校验位之后发送一个停止位1。

4.5串口配置初始化函数

#include<reg51.h>

void uart_init(void)
{
	//配置串口工作模式
	SCON &= ~(3 << 6);  //bit6 bit7清0
	SCON |= (1 << 6);
	SCON &= ~(1 << 7);

	//允许串口接收数据
	SCON |= (1 << 4);

	PCON &= ~(3 << 6);
	PCON |= (1 << 7);
	PCON &= ~(1 << 6); //复位

	 //工作模式:8位自动重装载定时器
	TMOD &= ~(0x0F << 4);
	TMOD |= (1 << 5);
	TMOD &= ~(1 << 4);

	//定时器初值
	TL1 = 230;
	TH1 = 230;

    //初值计算 2^8 - 2 * f晶振 /32 / bps /12

	//允许计数
	TCON |= (1 << 6);

	IE |= (1 << 7);
	IE |= (1 << 4);	  
}

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐