Appearance
嵌入式开发与单片机
1、简述嵌入式系统的定义及特点。
(1)核心定义: 嵌入式系统是 “以应用为中心,以计算机技术为基础,软硬件可裁剪”,对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。
(2)特点:
- 常用于特定任务:面向特定任务,软硬件均为特定需求定制。
- 运行资源有限:处理器性能、内存、存储空间有限,编程需注重效率。
- 往往极其关注成本:大量生产时,成本控制是重要设计目标。
- 功耗限制:许多设备采用电池供电,功耗是核心指标。
- 实时性: often需要在规定时间内响应事件,常采用中断机制和实时操作系统。
- 环境适应性差异较大:能工作在恶劣环境(高低温、高湿、震动)。
- 可靠性要求高:需长期稳定运行,错误可能导致严重后果。
- 长生命周期:产品生命周期内,软硬件需保持稳定和支持。
- 软件固化:程序通常固化在非易失性存储器中,用户不易修改。
- 专用开发工具:需要交叉编译、仿真器、调试器等专用工具进行开发
2、 简述嵌入式系统有别于通用计算机系统的主要特征有哪些?
- 专用性:嵌入式系统为特定任务设计,软硬件高度定制;通用计算机系统则面向通用计算任务
- 资源限制:处理器系统、内存、存储上通常受限,注重资源优化
- 实时性要求:嵌入式要求实时反应,需要确定时间内完成任务
- 功耗敏感:通常运行于电池供电或低功耗环境,功耗是重要设计指标
- 环境适应性:嵌入式系统常工作于恶劣环境,需要具备高可靠性
- 成本控制:一般需要量产,所以需要控制成本
- 软件固化:程序通常在ROM、Flash等非易失性存储器中,不易修改
- 生命周期长:嵌入式产品周期长,需要长期稳定运行和维护
3 、 简述嵌入式系统由哪些主要部分构成。嵌入式系统的硬件和软件分别包括哪些内容?
硬件和软件两部分
- 硬件
- 硬件核心平台:处理器(CPU、MPU、MCU)(
- 存储器(RAM ROM Flash)
- 输入输出接口(GPIO、ADC、DAC、UART、I2C、SPI)
- 电源管理模块
- 外围设备(定时器、外部接口、传感器、执行器、选择器)
- 关键层:硬件抽象层(HAL) 位置:位于硬件与操作系统/应用软件之间。
- 软件
- 操作系统(嵌入式Linux、无操作系统等
- 驱动程序
- 中间件(通信协议栈、文件系统)
- 应用程序(实现系统功能)
4、 嵌入式系统中的**硬件抽象层的特点(HAL)**是什么?
- 屏蔽硬件差异:向上提供统一的编程接口,使得软件不直接依赖硬件
- 可移植性:通过HAL可以将应用程序移植到不同硬件
- 简化开发:不需要深入理解底层硬件细节,提高开发效率
- 标准化接口:提供标准化函数调用,如初始化、读写、中断处理
- 便于维护:硬件更换和升级,只需要修改HAL,无需改动上层
5、嵌入式系统的应用领域有哪些?列举自己身边的几个嵌入式应用案例
- (1)
- 消费电子:智能手机、手表、家电
- 工业控制:机器人、自动化设备
- 汽车电子:车载娱乐
- 医疗设备:监护仪、便携式医疗设备
- 通信设备:路由器、交换机、基站
- 互联网:传感器网络、智能家居
- 航天航空:卫星通信、飞控系统
- (2)
- 智能空调:控温、定时、远程控制
- 智能门锁:指纹识别、蓝牙开锁
- 共享单车:GPS定位、二维码开锁
- 智能手环:心率监测、运动记录
6、CISC(复杂指令集) 处理器和 RISC(精简指令集) 处理器的区别有哪些?
7、冯诺依曼结构处理器和哈佛结构**处理器各有什么特点?
- (1)冯诺依曼结构
- 程序指令和数据共用一个储存空间和总线
- 结构简单、成本低
- 指令和数据不能同时访问
- (2)哈佛处理器
- 程序指令和数据分别储存在独立的存储器,使用独立总线访问
- 可以同时访问指令和数据,提高效率
- 结构复杂、成本较高,常用于高性能嵌入式系统(DSP、单片机)
8、MCU(微控制器) 有几种位数,并分别进行举例。
- 4位:早期计算器、玩具控制
- 8位:家电、工业控制
- 16位:中低端嵌入式系统(STM8、MSP430)
- 32位:高性能嵌入式系统、物联网设备(ARM Cortex-M 系列)
- 64位:高端嵌入式系统、服务器、汽车电子(armCortex-A系列
9、 Arm 的含义是什么?
- (1)英国一家半导体和软件设计公司
- (2)含义
- 一种基于RISC架构的处理器设计
- 一种处理器IP授权模式,ARM公司设计核心架构,授权给其他公司
- 广泛应用于移动设备、嵌入式系统、物联网领域
10、 STM32CubeMX 辅助开发工具的作用是什么?
- 是一种图形化配置工具
- 作用
- 引脚配置:可视化配置GPIO、外设引脚复用
- 时钟配置:图形化配置系统时钟、外设时钟
- 外设初始化:生成外设初始化代码(基于HAL库)
- 中间件配置
- 生成工程:支持到处Keil、IAR等工程文件
- 功耗估算:估算系统功耗
11、简述通过配置并导出 Keil MDK 工程的过程。
- (1)打开STM32CubeMX,创建新工程或者打开现有工程
- (2)选择目标MCU型号
- (3)配置系统时钟、引脚功能、外设参数
- (4)在“project manager”中设置工程名称、路径、IDE(选择MDK-ARM V5)
- (5)在 “Code Generator” 中勾选 “Generate peripheral initialization as a pair of ‘.c/.h’ files”。
- (6)点击“Generate Code”生成工程文件
- (7)使用Keil MDK打开生成的工程文件进行编译和下载
12、 在使用 Keil MDK 编写的 C 代码中,什么时候可以使用printf和 scanf函数,什么时候不可以?
- (1)可以
- 已经正确设置串口(USART)并重定向fputc和fgetc
- 已链接标准输入输出库
- 调试阶段,通过串口输出调试信息
- (2)不可以
- 实时性要求高的终端服务
- 资源及其首先,这俩函数会占用较多内存和代码空间
- 无标准输入输出设备(没有串口或未配置重定向),输出无效
13、在 STM32F1 微控制器,中断与异常的区别是什么?
- 异常:指所有处理器内部或外部事件触发的特殊流程
- 系统异常(复位...)
- 外部中断(由外设触发,如GPIO、UART)
- 中断:特指由外部外设触发的中断请求(IRQ),属于一场的一种
- 总结就是所有中断都是异常,但不是所有异常都是中断
14、 简述什么是中断,什么是中断嵌套?
- 中断:指的是处理器在执行程序过程中,有内部或者外部事件触发,暂停当前任务,转而去执行相应的处理程序(ISR),完成后再返回原任务继续执行
- 中断嵌套:在执行一个中断时,允许更高优先级的中断打断当前ISR的执行。处理器要支持优先级管理和硬件堆栈机制
15、串行通信根据数据传输方向都有哪些种类?
- 单工:数据单向传输(无线广播
- 半双工:数据可以双向传输,但不能同时进行(对讲机
- 全双工:数据课同时进行双向传输(电话通信、UART双向通信
16、 在异步串行通信中,当接收数据时,为了判断是否有新的数据到达,应该判断哪一个标志位?
应判断接受数据寄存器非空标志位
- 在UART/USART中为RXNE
- 某些芯片可能是RDRF
17、请观察身边的电子设备或家用电器,列举依赖“时间控制”实现功能的例子。
(例如:智能手机用户无操作15秒、30秒或1分钟后自动熄屏以节省电量。)
- 充电器:定时断电保护电池
- 空调:定时开关
- 电子闹钟:定时响铃
- 微波炉:定时加热
- 洗衣机:定时洗涤托说
18、借助网络工具搜索一下,列举出5至6个嵌入式芯片制造商,并详细说明这些制造商所生产芯片的主要应用领域。
markdown
- ARM:授权处理器IP、应用于智能手机、汽车电子、物联网
- STM(意法半导体):STM32系列MCU,应用于工业控制、消费电子、汽车
- 德州仪器:MSP430、C2000系列,低功耗设备、数字电源、几点控制
- 恩智浦:i.MX、LPC系列,汽车电子、智能卡、物联网
- Microchip: PIC、AVR系列,应用于家电、工业控制、嵌入式系统教学
- 乐鑫:ESP32、ESP,物联网,智能家居,wifi蓝牙设备