一、嵌入式
1.1嵌入式是什么
嵌入式: 通常把嵌入式系统定义为一种以应用为中心,以计算机为基础,软硬件可以剪裁,适用于系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
其实在我们看来嵌入式系统其实就是计算机技术的一种应用表现形式,也可以理解为在电子产品中嵌入一个微型大脑,这个微型大脑可以辅助协调其所在的电子设备完成设备的自动化、智能化功能,在日常生活中的嵌入式设备也是多种多样
1.2嵌入式的产品有哪些
常见的嵌入式产品:
日常家用设备:冰箱,洗衣机,微波炉,电饭煲
消费电子:手机,智能手表/手环,智能音箱
医疗产品:心电监测仪,血糖仪,智能药盒
通信产品:路由器,网关
等等。。。。。
二、定时器
2.1定时器是什么
在嵌入式系统中,定时器是一个至关重要的硬件外设(有时也指基于此实现的软件功能),其核心功能是精确地测量时间间隔、产生周期性事件或延迟执行。它就像一个内置在微控制器或微处理器内部的精密“秒表”或“闹钟” 是嵌入式系统实现精确计时、控制、测量和调度的基石 。
核心硬件组成:
1. 计数器: 核心部件,是一个可递增或递减的寄存器(通常16位或32位)。
2. 时钟源: 驱动计数器工作的时钟信号(如系统主时钟、内部RC振荡器、外部晶振)。
3. 预分频器: 对时钟源分频,降低计数频率,扩展定时范围。
4. 自动重装载寄存器: 设定计数器溢出后的重置值,实现周期性定时。
5. 比较寄存器: 设定比较值,当计数器值与其匹配时触发事件(如中断、引脚电平变化)。
6. 控制逻辑: 配置工作模式、使能/禁用中断等。
主要工作模式:
1. 基本定时模式:
1. 计数器持续递增/递减,溢出时产生中断/事件。
2. 用途: 系统心跳(RTOS调度)、精确延时(替代软件循环)。
2. 输入捕获模式:
1. 捕获外部信号边沿(上升/下降沿)时刻的计数器值。
2. 用途: 精确测量脉冲宽度、频率或周期(如超声波测距)。
3. 输出比较模式:
1. 当计数器值匹配比较寄存器时,自动改变引脚电平或触发中断。
2. 用途: 生成精确时间信号、单脉冲输出。
4. PWM模式:
1. 自动重装载值设定PWM周期,比较值设定占空比。
2. 用途: 控制电机速度、LED亮度、舵机角度(占空比决定输出强度)。
5. 编码器接口模式:
1. 自动解码正交编码器信号,计算位置和方向。
2. 用途: 电机位置控制、旋转测量。
2.3定时器可以起到什么作用
嵌入式系统中的核心作用:
1. 系统心跳:提供操作系统(如RTOS)任务调度的时基。定时器中断驱动着整个系统的“心跳”,确保任务按时执行。
2. 精确延时:实现微秒级或毫秒级的精确等待,替代不精确的软件循环。
3. 周期性任务触发:定时采集传感器数据、刷新显示、检查状态等。
4. PWM生成:控制电机速度、LED亮度、舵机位置、开关电源等。
5. 时间测量:
测量事件间隔(如按键消抖时间、脉冲宽度)。
测量信号频率、周期。
为系统提供时间戳。
6. 事件计数:对外部脉冲进行计数(可以作为定时器的简单替代)。
7. 看门狗定时器:一种特殊的定时器,用于监控系统运行。如果系统正常,软件需定期“喂狗”(重置计数器);如果系统崩溃无法喂狗,WDT超时后会强制复位系统,提高可靠性。
8. 实时时钟:专用的低功耗定时器(RTC),用于日历和时间保持,即使在主系统掉电时(依靠备用电池)也能持续运行。
三、定时器的应用
3.1定时器的使用场景
1. 需要精准时序控制 → PWM/输出比较
(例:无人机电调控制)
2. 需要测量时间参数 → 输入捕获
(例:示波器测量脉冲)
3. 需要周期性操作 → 基本定时模式
(例:数据日志记录)
4. 需要抗系统崩溃 → 看门狗定时器
(例:医疗设备监护)
5. 需要低功耗运行 → RTC唤醒
(例:智能水表)
3.2场景举例
1. 电机与运动控制
1. 直流电机调速,调节占空比控制电机转速
2. 步进电机驱动,生成步进脉冲序列和方向信号
3. 舵机角度控制
4. 编码器反馈,解码正交信号计算位置/速度
2. 信号生成与采集
1. PWM信号输出
1. LED调光(调节亮度)
2. 开关电源控制(Buck/Boost电路)
3. 音频DAC驱动(生成模拟波形)
2. 脉冲信号捕获
1. 测量超声波回波时间(测距)
2. 旋转编码器计数(计算转速)
3. 红外遥控信号解码(NEC协议)
3. 通信时序控制
1. 生成UART/SPI/I²C的精确波特率
2. 软件模拟通信协议(如单总线协议)
3. 传感器与测量
1. 周期性数据采集
每100ms读取温湿度传感器(DHT11)
定时触发ADC采样(电池电压监控)
2. 高精度时间测量
激光测距(飞行时间测量)
电容触摸检测(充放电时间测量)
4. 系统可靠性与监控
1. 看门狗定时器 (WDT)
系统崩溃时自动复位(需在中断中定期“喂狗”)
2. 工业设备防死机设计
超时检测
串口通信响应超时(例:等待Modbus应答超时则重发)
按键长按检测(持续3秒进入配置模式)
5. 低功耗管理
1. 唤醒定时
睡眠模式下定时唤醒(如每10分钟采集数据后继续休眠)
RTC(实时时钟)闹钟唤醒(穿戴设备定时提醒)
2. 周期省电模式
传感器间歇工作(如LORA节点每5分钟激活一次)
3.3项目示例:
3.3.1智能农业灌溉系统的设计
项目背景
随着农业现代化的发展,为提高水资源利用效率、实现精准农业设备控制。传统灌溉依赖人工判断,效率低、浪费大。而基于嵌入式的智能农业灌溉系统可以实现:
1. 根据设定时间自动开启/关闭水泵
2. 结合土壤湿度传感器实现条件触发灌溉
3. 支持远程控制与定时任务
4. 提高灌溉效率,节约用水
定时器在项目的核心作用
在本系统中,定时器用于周期性地触发灌溉控制逻辑,其作用如下:
1. 定时采集传感器数据:每10秒读取一次土壤湿度;
2. 定时执行灌溉控制:根据湿度值决定是否开启水泵;
3. 实现低功耗运行:主程序可进入低功耗模式,由定时器唤醒;
4. 避免轮询浪费CPU资源:通过中断机制实现高效调度。
3.3.2智能宠物喂食器的设计
项目背景
随着物联网(IoT)技术的发展,智能家居设备逐渐普及。宠物喂食器作为其中一员,能够帮助主人远程控制喂食时间与份量,尤其适用于上班族、出差频繁或经常旅行的宠物主人。
核心功能需求
1. 定时投喂:用户可设定多个投喂时间点,系统自动投食;
2. 远程控制:通过Wi-Fi连接手机APP,远程手动投喂;
3. 食物余量检测:使用重量传感器或红外传感器检测食物余量;
4. 低功耗运行:适合长时间待机;
5. 断网自动运行:本地定时任务不受网络影响。
定时器在项目的核心作用
在本系统中,定时器主要承担的任务如下:
1. 周期性检测当前时间:与设定的投喂时间进行比对;
2. 触发投喂动作:当时间匹配时,启动电机投食;
3. 低功耗唤醒:在待机状态下由定时器唤醒系统;
4. 防止误触发:避免因时间误差导致重复投喂;
5. 支持多时间段设定:如早上8点、中午12点、晚上7点等。