一、嵌入式基本概念
(一)嵌入式定义:以应用为中心,计算机技术为基础,软硬件可裁剪的专用计算机系统。
(二)计算机五大组成:运算器、控制器、存储器、输入设备、输出设备
(三)软件:编程语言(C/C++)、操作系统(Linux文件、多任务、网络)、数据结构、数据库等
(四)硬件:51单片机、STM52、ARM
(五)软硬件可裁剪:加入需要的硬件/软件,将不要的硬件/软件裁剪掉(低功耗、低成本)
(六)计算机分类
1.通用计算机:PC、手机、平板
2.专用计算机:无人机、完成某项特定任务的计算机
(七)名词解释
1.CPU(中央处理器):数据运算、指令处理,CPU性能越高,完成指令处理和数据运算的速度越快。
2.MCU(微控制器):集成度比较高,将所有功能集成到芯片中,控制简单,低成本
3.MPU(微处理器):集成度低,只有一块单独的CPU,需要接外设,存储模块,复杂领域,成本高
4.GPU(图形处理器):图像处理,图形渲染,GPU性能越好,图形显示越好
5.NPU(神经网络处理器):AI推理,硬件加速,神经网络处理(卷积运算)
6.FPU(浮点数运算单元):完成浮点数运算和处理,大部分集中在CPU内部
7.DSP(数字信号处理器):为了进行高强度数学运算的专用芯片
8.SOC(片上系统):集成度高,将多个芯片(存储芯片、外设芯片)集成到一块芯片
(八)DMA
二、存储理解
(一)外存:主要存放程序、代码、指令,掉点数据不丢失,读写速度慢,低价
1.ROM:只读存储,如ARM内加载U-BOOT的ROM
2.Flash:掉电数据不丢失,电可擦写
①NOR Flash:像内存一样,允许对每个单元随机访问。CPU可以直接从NOR Flash中读取并执行代码,无需先复制到RAM中。
②NAND Flash:像硬盘一样工作。以"页"为单位进行读写,以"块"为单位进行擦除
(二)内存(DRAM):主要存放程序运行过程临时变量,掉电数据丢失,读写速度快,高价
(三)Cache(缓存、存储CPU频繁使用的一些东西):书桌(CPU)旁边的小车(Cache)里面放常用数据,避免一直远距离去书架(RAM)拿
三、三大总线
(一)地址总线(数据线数量确定可寻址范围):地址总线是单向的,专门用于CPU向内存或I/O设备发送地址信息
1.bank是什么:内存芯片内部为了高效管理这个巨大空间而采用的一种结构
2.地址总线发送的信息一般为:Bank选择、行地址、列地址
3.隐藏延迟:行激活,要访问一个存储单元,必须先选中其所在的行,将整行数据读取到Bank的行缓冲器中。 这个过程,速度较慢。
4.Bank结构的优点:当一个Bank因行激活而无法访问时,内存控制器可以调度去访问其他已经就绪的Bank,
从而节省了CPU的等待时间。从宏观上看,延迟被有效隐藏,所以整体数据吞吐率得到显著提高。
(二)数据总线(一般称总线):双向传输,可以由外部设备-->CPU,也可以由CPU-->外部设备
(三)控制总线:单向(一份部分是CPU输出命令,另一部分是外部设备输入给CPU的(如状态查询)),所以整体来看是双向。
(四)三者如何协同工作?(CPU从内存读取数据)
1.CPU通过地址总线发出地址,同时CPU通过控制总线发出(读)信号和内存访问信号
2.内存响应指令:内存芯片识别到自己地址,并收到读命令,查找对应地址的数据
3.数据传输:内存将对应数据通过数据总线发送给CPU,同时通过控制总线发送一个就绪信号
4.CPU接收数据:检测到控制总线的就绪信号,然后读取数据
四、GPIO(是一个系统)
(一)GPIO概念:通用输入/输出(输入模式和输出模式)
(二)物理引脚(硬件接口)
(三)内部寄存器(控制核心):在每个 GPIO 引脚的背后,都对应着一组内存映射的寄存器
1.模式寄存器:决定这个引脚是输入、输出,还是复用为其他功能(如串口、I2C等)
2.数据寄存器:写入数据来控制输出电平,读取数据来获取输入电平
3.上下拉电阻寄存器:控制是否启用上拉或下拉电阻
(四)相关控制电路
1.驱动电路(输出缓冲器)
2.检测电路(输入缓冲器)
3.保护电路(防止过压、静电等)
五、中断
(一)概念
1.中断解释:CPU在执行一个任务时,被外界一个紧急任务打断,然后去处理这个紧急任务,处理完后回到原来任务继续工作。
2.中断源:打断CPU当前任务的事件/源头
3.中断源((51单片机中5个中断源)分类:外部中断0与1,定时器中断0与1,UART(串口)
4.外部中断:单片机的引脚电平变化引发中断(INT0(P3-2),INT1(P3-3))
5.中断优先级:CPU处理中断任务时,会比较优先级,优先处理优先级高的任务(可配置优先级)
6.中断嵌套:处理一个中断时,里面再嵌套一个中断,51单片机只允许嵌套两层
(二)中断处理流程
1.中断源发出中断请求
2.检查CPU是否响应中断及该中断源是否被屏蔽
3.比较中断优先级
4.保护现场
5.执行中断服务函数(回调函数)
6.恢复现场
(三)中断向量表:一组指向函数的函数指针(中断处理函数的后面必须加上对应的中断向量)
六、定时器(独立模块,计数器本身为16位。与三大总线(数据8,地址16)没有关系)
(一)作用:都够产生一个精准的定时
(二)51单片机内有两个定时器,Timer0,Timer1,自增型定时器
(三)51单片机机器周期:CPU需要花费12个时钟周期才能完成一个最基本的操作,所以要12分频
(四)指令周期:计数器,执行自加所以一个指令周期即为一个机器周期
(五)8位自动重装载:虽然16位计数范围大,但是每次溢出后需要CPU重新赋值。8位自动重装载可以判断溢出次数实现大数据定时。
七、晶振
(一)51单片机
1.CPU工作主频:12MHZ(11.0592MHZ),外部晶振频率
2.时钟周期:CPU 的最小时间单位,由外部晶振或内部振荡器提供。CPU主频分之一。
3.机器周期:CPU完成一个基本操作(如取指、译码、执行)所需的时间,通常由多个时钟周期组成。12 时钟周期 = 1 机器周期(51单片机内)
4.指令周期:CPU完整执行一条指令所需的时间(一般1~4个机器周期)
(二)ARM(imx6ull开发板晶振为24MZ)
1.CPU工作主频:通过PLL(锁相环电路)倍频得到具体主频
2.定时器工作频率由配置得到
3.机器周期与指令周期概念淡化
八、蜂鸣器
(一)有源蜂鸣器:存在震荡源,通电后蜂鸣器会持续发出持续频率的声音
(二)不存在震荡源,通电后蜂鸣器不会持续发出持续频率的声音,通过电平周期性变化产生声音。
九、PWM(脉冲宽度调制)
(一)理解(开关灯):通过快速开关电源,来控制输送给设备(如灯、电机)的平均功率。
(二)三个关键参数
1.占空比:一个周期内,开的时间占整个周期的百分比。
2.频率:频率需要足够快,快到你控制的设备(如LED灯、电机)无法跟上这个开关速度,从而产生一个"平均"效果。
3.电压/振幅:开的时候,电压是多少?通常是系统的逻辑电平(如5V, 3.3V)
(三)PWM利用
1.PWM的魅力在于,它用数字信号(只有开和关)轻松地实现了模拟信号(连续变化)的效果。
这带来了巨大优势:效率极高(开关时晶体管损耗很小)、控制简单、成本低。
2.led调光、直流电机调速等
十、通信分类
(一)按有线和无线分类
(二)按数据传输格式分类(串行和并行)
(三)有线通信区分
1.电气电平标准:定义了逻辑0和逻辑1用什么电压表示
①UART(TTL电平):逻辑1 = 3.3V或5V,逻辑0 = 0V。传输距离短,通常在电路板内部或模块之间使用。
②RS-232:逻辑1 = -3V ~ -15V,逻辑0 = +3V ~ +15V。使用负逻辑和高电压,抗干扰能力强,传输距离较远(几米)
③RS-485:采用差分信号(用两根线A和B的电压差来表示0和1)。抗共模干扰能力极强,传输距离可达千米以上,支持多点通信(一个总线可挂多个设备)。工业领域广泛应用。
④CAN总线:也是一种差分信号,以其极高的可靠性和多主结构著称,是汽车和工业控制的基石。
2.通信拓扑结构(设备如何连接?)
①点对点:如UART、RS-232,只能在两个设备间通信。
②总线式:如RS-485、CAN,多个设备可以挂在一根总线上。
3.同步和异步
4.软件协议
①Modbus
②USB协议簇
(四)串口通信是什么?
1."串口"是一个广义概念,它描述了数据传输的方式(串行),但并未规定具体的电气电平。我们通常所说的"串口"特指基于UART协议的异步串行通信。
2.串口通信时序(TTL)
①空闲状态位高电平
②发送一个低电平表示起始位
③发送第一个bit(LSB),8个位结束
④发送校验位(奇校验、偶校验、无校验)
奇校验:1与数据位相加的和为奇数
偶校验:0与数据位相加的和为偶数
累加和校验
CRC校验
⑤停止位
3.波特率:每秒传输bit的数量,9600,115200
十一、通信方式
(一)单工:接收方和发送方固定,数据传输通过一很线,数据传输方式单一
(二)半双工:同一时刻数据只能单向传输,一根数据线
(三)全双工:两根数据线,所以同一时刻即可以收又可以发
十二、数据传输方式
(一)串行:一根数据线,bit按顺序逐个发送
(二)并行:多根数据线,同一时刻可发多个bit
十三、同步和异步
(一)异步:没有时钟线,通信双方通过约定发送速率发送和接收数据,如UART通信中的波特率
(二)同步:有时钟线,发送方使时钟线产生边沿发送数据,接收方检测边沿接收数据。
十四、上拉电阻(4.7~10k欧姆):因为在输入模式引脚正常状态下高阻态(悬空)的,所以要加上拉或者下拉电阻,消除这种不确定性。