Jamslade
部分内容有遗漏,可结合 超文本 2022FALL《嵌入式系统原理》期末复习笔记 一起观看
文章目录
- 嵌入式操作系统的基本概念、特点;
- 嵌入式处理器分类、举例;
- 嵌入式系统的几种调试方法?
- ARM处理器特点
- ARM Cortex-M4处理器的内部寄存器、异常/中断、指令集、寻址方式;
- 简单汇编编程(实验);常规指令格式(传输指令、运算指令、跳转指令)
- CM4异常/中断的种类、优先级;
- CPU与I/O数据传输的三种方式及其适用性;
- 存储器的分类与特点、Flash读写与RAM读写的差异;
- MMU及其主要功能;
- 存储器扩展与地址译码(作业);
- CPU系统存储器与I/O的编址方式;
- 大端/小端存储、对齐访问;
- 定时器的基本结构(组成)与功能(工作模式:计数、定时、输入捕获、输出比较)
- PWM的基本原理与应用(实验);
- ADC的分类及其特点、ADC主要技术指标?
- 逐次比较式ADC、积分型ADC的基本原理是什么?适用于什么场合?
- DAC的主要技术指标?
- SPI总线的拓扑结构,SPI时钟的极性和相位;
- SPI总线的时钟速度量级?
- UART、连接方式、RS-232的帧格式,传输波形;
- USB总线及其特点,定义为哪3个部分?
- USB HOST的功能?
- USB有哪几种传输方式?并分别列举其典型应用。
- USB总线枚举过程。
- 前后台系统软件设计方法及其编程模型;
- 中断(事件)驱动系统软件设计方法及其编程模型;
- 巡回服务系统软件设计方法及其编程模型;
- 基于定时器的巡回服务系统软件设计方法及其编程模型;
- 设计可移植软件的要点;
- 操作系统内核的工作方式(占先式与非占先式内核)
- uC/OS、FreeRTOS的特点、任务状态?
- 物联网常用的短距离无线通信技术、远距离无线通信技术有哪些?各自的主要特点?
- MQTT协议及其特点;
- 物联网应用系统的架构;
- 电磁兼容性(EMC)的概念
- 低功耗系统设计方法。
嵌入式系统
- 专用的计算机系统, 包含在机器 or 电子系统中
- and 一种 计算性能受限的实时系统, 经常作为某一个部件嵌入完整设备中
- 软硬件集合体
硬件有
- 嵌入式处理器
- 数字信号处理器
- 控制器
- 存储器
- 外设接口器
软件
- 引导程序
- 嵌入式操作系统 imbedded OS
- 应用程序 APP
特点
- 性能、功能差异很大、覆盖面广
- 对实时多任务有很好的支持,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核的执行时间减少到最低限度
- 具有功能很强的存储区保护功能
- 可扩展的处理器结构,工具链完善,以快速开发出满足应用的、不同性能的嵌入式微处理器
- 低功耗
片上系统
处理芯片内嵌入操作系统的代码模块
(嵌入式系统集成到芯片中,追求系统最大包容的集成硬件)
实时系统
- 系统 及时响应 外部事件请求
- 规定时间内完成事件处理
- 控制所有实时任务协调一致运行
硬实时系统
- 任务响应实时
- 规定时间内完成时间的处理
如
- 核动力装置控制
- 安全气囊控制系统
- 车辆防抱死ABS
软实时系统
- 仅要求任务响应实时
- 未限定任务必须多长时间内完成
如音频视频播放系统
网页服务
伪指令
用于对汇编过程进行控制的指令,该类指令并不是可执行指令,没有机器代码,只用于汇编过程中为汇编程序提供汇编信息。
DMA传输
DMA 是在主存和外设之间开辟直接的数据通路,可以进行基本上不需要 CPU 介入的主存和外设之间的信息传送,这样不仅能保证 CPU 的高效率,而且能满足高速外设的需要。DMA 传输是以总线周期为单位
波特率
衡量数据传输速率的指标,为每秒钟通过信道传输的码元数,即一个设备在一秒内发送了多少码元的数据。公式为:
U
A
R
T
B
R
=
M
C
L
K
/
(
B
a
u
d
R
a
t
e
×
N
)
UART_BR = MCLK / (BaudRate × N)
UARTBR=MCLK/(BaudRate×N)
单/半双/全双工通信;
单工通信 | 半双工通信 | 全双工通信 |
---|---|---|
只能进行单向的数据传输,一个固定发送器、接收器 | 通信双方可以互传信息,但同一时刻信息只能单向传输 | 任何时刻通信双方都可以同时进行信息收发 双向信息传输 |
对齐/非对齐访问
计算机系统对基本数据类型合法内存地址做出了一些限制,要求某种数据类型对象的内存地址必须是某个值 K(通常是 2、4、8)的倍数
地址译码
CPU 与其它设备之间进行数据交互,通过地址信号与控制信号的不同组合选择端口地址以读写接口电路中的端口寄存器
代码临界区
操作系统在处理时不可分割的代码。
一旦这部分代码开始执行,则不允许任何中断打扰。为确保临界段代码的执行,在进入临界段之前要关中断,而临界段代码执行完以后要立即开中断。
RISC
精简指令集计算机(RISC:Reduced Instruction Set Computer RISC) 是一种执行较少类型计算机指令的微处理器,
ARM(Advanced RISC Machine)
BIOS
- PC引导加载程序之一
- BIOS不包含设备驱动程序
- BIOS代码在生产中固化在主板的ROM芯片上的(开发者无法修改)
基本输入输出系统,它是一组固化到计算机内主板上一个 ROM 芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从 CMOS 中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。此外,BIOS 还向作业系统提供一些系统参数
UART
通用异步串行接收/发送器,是一种通用串行接口,可以实现全双工数据传输。具有极低资源消耗,较高可靠性,简洁的协议以及高度的灵活性。
SPI
串行外部设备接口,是一种半双工的同步串行接口,利用 3 条线完成两个芯片之间的双工高速通信。两条数据线用于收发数据,一条时钟线用于同步。
(课本写半双工
I2C
内部集成电路总线,是 Philips 推出的芯片间串行传输总线,它以 2 根连线实现了完善的全双工同步数据传送,可以极方便地构成多机系统和外围器件扩展系统
WDT
看门狗定时器,一个特殊的定时器,可以通过对系统进行复位来防止系统故障。首先,WDT 设置一定的计时时间,使能后,计数器开始计数。当计时时间到后,则触发系统复位。如果在定时时间到达之前,进行喂狗(计数器重装) 动作,则不会引起系统复位
ROM
信息只能读出不能随意写入的存储器,称为只读存储器(ROM)。它的特点是通过一定方式将信息写入之后,信息就固定在 ROM 中且具有非易失性。
RAM
随机存储器,当存储器中的信息被读取或写入时,所需要的时间与这段信息所在的位置无关。
SRAM
**易失性:**双稳态触发器存储一位信息 —— 工作电压不存在,储存单元立刻消失(上电无法恢复
靠双稳态触发器来存储一位信息,因此只要工作电压不存在,存储单元的状态就立即消失,当再次上电时,由于触发器的状态是不稳定的,原来的信息不能恢复掉电后 RAM 中信息全部丢失,一般只用于 CPU 内部的高速缓存(Cache),以及 MCU
具有 n 根地址线, m 根数据
- 地址空间为 2 n 2^{n} 2n
- 数据宽度为m位
- 存储容量为 2 n × m / 8 2^{n}\times m / 8 2n×m/8字节
DRAM
存储单元以电容的电荷来表示数据,有电荷代表 1,无电荷代表 0,一般用于外部扩展的内存
具有 n 根地址线,m 根数据线的
- 地址空间为 2 2 n 2^{2n} 22n
- 数据宽度为m位
- 存储容量为 2 2 n × m / 8 2^{2n}\times m / 8 22n×m/8字节
Flash Memory
闪速存储器,也称快速擦写存储器,是一种新型半导体存储器芯片,可重复擦写,容量比 EEPROM 大,擦除时,以多个字节为单位。分为 NOR Flash以及 NAND Flas
Cache
CPU 内部高速缓存。是位于 CPU 和主存储器 DRAM 之间,规模较小,但速度很高的存储器,通常由 SRAM 组成
MMU
内存管理单元,是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。
USB
通用串行总线。是一种灵活、稳定的通用串行总线,是连接计算机系统与外部设备的一种串口总线标准,也是一种输入/输出标准的技术规范
CAN
最早由德国 BOSCH 公司推出
CAN总线Control Area Network控制局域网络
汽车内部测量、执行部件通信
- 信号串行差分传输
- 在线增减设备
(各个节点通过 CAN_H 和 CAN_L 两条线实现信号的串行差分传输,可以在线增减设备,最多可以容纳 110 个节点)
ARM指令
计算机ARM操作指令系统
可以分为
- 跳转指令 JMP
- 数据处理
- 程序状态寄存器处理
- LOAD/STORE
- 协处理器
- 异常
ARM汇编由以下内容组成
7. 声明
(1)声明代码段:用AREA 指令定义一个段,说明所定义段的相关属性(段的名字和段的属性等)。
(2)声明ARM 指令:用CODE 来声明程序为ARM指令。
(3)声明程序入口:用ENTRY 指令标识程序的入口点
(4)结束后END指令生命程序结束
8. 代码段
(1) 以程序段为单位组织代码。段是相对独立的指令或数据序列
(2)段具有以下的属性:READONLY和READWRITE
Thumb2指令
改进的Thumb指令集,称为Thumb-2指令集。
兼容16 位和32 位指令的指令集
中断
- 出现某个特殊事件
- CPU终止当前程序执行
- 去执行处理程序 —— 中断服务程序
- 中断服务程序执行完毕
- 返回断点执行原来的过程
RTOS
实时操作系统。当操作系统接收到一个任务时后,RTOS 会在规定的时间内来处理该任务并对此任务做出快速响应。
:实时操作系统。RTOS是嵌入式应用软件的运行平台和开发平台,开发者开发的应用程序都运行在RTOS之上,并作为嵌入式软件的目标代码的一部分。RTOS具有很高的可靠性和可行性。
BSP
板级支持包(Board SupportPackage,BSP)
嵌入式系统的基础部分,也是实现系统可移植性的关键。
- 硬件初始化
- 启动RTOS 或 应用程序模块
- 底层硬件驱动 —— 上层软件访问底层硬件支持
BootLoader
在操作系统内核运行之前执行的一段小程序。其功能是将操作系统内核从外部存储介质拷贝到内存中,并跳转到内核的首条指令。
硬实时/软实时
软实时系统 | 硬实时系统: |
---|---|
仅要求事件响应是实时的,并不要求限定某一任务必须在多长时间内完成,例如:音频-视频播放系统、网页服务等。 | 不仅要求任务响应要实时,而且要求在规定的时间内完成事件的处理,例如:核动力装置控制、安全气囊控制系统和车辆防抱死系统(ABS)等。 |
占先式/非占先式调度
前者:如果有重要或紧迫的进程到达(其状态必须为就绪),新进程立刻执行,中断原进程
后者:这种方式是让原来正在运行的进程继续运行,直至该进程完成或发生某种事件(如I/O请求),才主动放弃处理机。
互斥
系统每次只能将资源分配给单个进程,并且该进程使用共享资源时,不允许其他进程抢占其资源。
物联网
通过射频识别、红外感应器、全球定位系统、激光扫描器、气体感应器等信息传感设备,按约定的协议,把任何物品与互联网连接起来,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种网络。
电磁兼容性EMC
设备或系统在其电磁环境中符合要求的运行并不对其环境中的任何设备产生产生无法忍受的电磁干扰的能力
程序计数器。
嵌入式操作系统的基本概念、特点;
基本概念:
- 嵌入式系统是一种专用的计算机系统,它通常被包含在一些机械或电子系统中;
- 嵌入式系统还是一种计算性能受限制的实时系统,它经常作为某一部件嵌入到一个完整设备中。
- 嵌入式系统是硬件和软件的集合体
- 硬件: 嵌入式处理器、控制器、数字信号处理器、存储器、外设接口器件
- 软件:引导程序、嵌入式操作系统和应用程序等。
特点:
- 性能、功能差异很大、覆盖面广。
- 对实时多任务有很好的支持,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核的执行时间减少到最低限度。
- 具有功能很强的存储区保护功能。
- 可扩展的处理器结构,工具链完善,以快速开发出满足应用的、不同性能 的嵌入式微处理器。
- 低功耗
嵌入式处理器分类、举例;
①嵌入式微处理器(MPU)——ARM 微处理器如 SamSung S3C2440,FreescaleM21/MX 等,Intel 的 80x86 系列,ARM Cortex-A 系列等
②嵌入式微控制器(MCU)——ARM 核微控制器,如 Philips 的 LPC21xx, Atmel的 SAM7, ST 的 STR71x、91x, STM32、Tiva 等
③嵌入式数字信号处理器(DSP)——Texas Instruments 的 TMS320 系列和Motorola 的 DSP5600 系列
④片上系统(SoC)——CC320 嵌入式 WiFi 芯片
嵌入式系统的几种调试方法?
①软件模拟器,软件模拟器是运行在宿主机上的纯软件工具,它通过模拟目 标机的指令系统或目标机操作系统的系统调用,以此来达到在宿主机上运行并调试嵌入式应用程序的目的。
②ROM 监控器方式,在该方式下嵌入式系统的调试环境由宿主机端的调试 器、目标机端的监控器以及两者间的连接构成。
③ROM 仿真器,又称 ROM Emulator,可以认为是一种用于替代目标机上 的 ROM芯片的设备。对于宿主机上的调试器, ROM 仿真器上的 ROM 芯片的地址可以实时映射到目标机 ROM 的地址空间,从而仿真目标机的 ROM。
④在线仿真器,它是最直接的仿真调试方法。在线仿真器(In-Circuit Emulator,ICE)是一种用于替代目标机上的 CPU 来模拟目标机上 CPU 行为的设备。它 有自己的 CPU、RAM 和 ROM,可以执行目标机 CPU 的指令,不再依赖目标 机的处理器和内存。
⑤片上调试,它是内置于目标板 CPU 芯片内的调试模块提供的一种调试功 能,其中,JTAG 是目前主流的片上方式
ARM处理器特点
①低功耗、低成本、高性能;
②支持 Thumb(16bit)/ARM(32bit)双指令集;
③大量使用寄存器,指令执行速度更快;
④大多数数据操作都在寄存器中完成;
⑤寻址方式灵活简单,执行效率高;
⑥指令长度固定。
ARM Cortex-M4处理器的内部寄存器、异常/中断、指令集、寻址方式;
7种32位主要寄存器(4种通用+3种特殊)
- RO~R12 32位通用寄存器
- R13 堆栈指针寄存器 SP
- R14连接寄存器 LR
- R15程序技术寄存器 PC
- 程序状态寄存器
- 中断屏蔽寄存器
- 控制寄存器
异常/中断
Cortex-M4 的异常类型包括系统异常和外设中断两种,其中编号 0~ 15是 16 种系统异常,编号 16~255 是外设中断
异常发生时,Cortex-M4 处理器工作模式和状态转换如下图所示,Cortex-M4 处理器在复位时自动进入特权级的线程模式,此时如果有异常发生,将自动进入特权级的处理模式,处理完异常中断后返回特权级线程模式继续向下执行程序。用户程序可以通过修改控制寄存器 CONTROL 的最低位由 0 变 1,将特权线程模式切换到用户级线程模式。在用户级线程模式下如果发生异常中断,则处理器切换到特权级处理模式,处理完异常中断,再返回原来用户级线程模式被终止的下一条指令继续执行用户程序。
指令集(略)p52
寻址方式(略)p47
简单汇编编程(实验);常规指令格式(传输指令、运算指令、跳转指令)
<opcode>{<cond>}{S} <Rd>,<Rn>,{<Op2>}
,< >内的项是必需的,{ }内的项是可选的。例如,<opcode>是指令助记符,是必需的;而{<cond>}为指令执行条件,是可选的,如果不写,则默认为无条件执行。上述指令格式中的 opcode、cond 与 S 之间没有分隔符,S 与Rd 之间用空格隔开
传输指令:
LDM/STM{条件} {类型} 基址寄存器 {!},寄存器列表
{类型}为以下几种情况。
- IA 每次传送后地址加 1; IB 每次传送前地址加 1;
- DA 每次传送后地址减 1; DB 每次传送前地址减 1;
- FD 满递减堆栈; ED 空递减堆栈;
- FA 满递增堆栈; EA 空递增堆栈
{!}为可选后缀。若选用该后缀。则当数据传送完毕之后,将最后的地址写入基址寄存器,否则基址寄存器的内容不改变。
LDR/STR{条件}{T},目标地址,<地址>
其中:{T}是可选后缀:B、H、SB 和 SH。H 表示半字传送,B 表示字节传送,S 表示有符号操作,SB 表示带符号字节传送,SH 表示带符号半字传送。SB 和SH 不可用于 STR 指令
PUSH {寄存器列表}
POP {寄存器列表}
运算指令
跳转
B WAITA; 跳转到WAITA
BL DELAY; 调用子程序DELAY
CM4异常/中断的种类、优先级;
CPU与I/O数据传输的三种方式及其适用性;
程序查询方式、中断控制方式、DMA 方法
- 程序查询:program直接控制 信息交换最简单方式
- 输入、输出通过CPU执行程序完成
- 外设启动后,主机查询外设状态为是否就绪
- if 就绪 : IO操作
- else 再次查询
- 中断控制
- 主机:启动外设,不查询,执行原来程序
- 外设:io准备好之后发出中断请求
- 主机:暂停原来程序,执行中断服务程序,完毕后返回源程序
- DMA:直接开辟的数据通路
- 无需CPU接入的 主存外设信息传送
- 保证CPU高效,满足外设需要
- 只能进行简单数据传输操作
- 数据块的起始、结束需要CPU和中断系统预处理
存储器的分类与特点、Flash读写与RAM读写的差异;
p109
分类
- 随机存储器 RAM
- 静态随机存储器 SRAM
- 动态随机存储器 DRAM
- 只读存储器 ROM
- 掩膜式只读存储器 MROM
- 一次可编程只读存储器 PROM
- 多次可编程只读存储器 EPROM/EEPROM
- 闪存 FLASH
- NOR FLASH
- NAND FLASH
大分类 | 特点 |
---|---|
RAM | 易失性,掉电后信息丢失 |
ROM | 非易失,只读 |
FLASH | EEPROM发展,可重复擦写 |
读写差异
FLASH | RAM |
---|---|
多用于一般性数据存储,和数字产品。以“字”or“块”为基本单位 | 数据的读取、写入,所耗时间和信息位置无关。随时读写速度较快 |
MMU及其主要功能;
p96
系统存储器控制器
(下面摘自百科)
Memory Management Unit 内存管理单元
带有MMU的嵌入式Linux 中, CPU 访问的地址都是 虚拟地址 ,而 MMU 负责将程序中 代码或数据 的 虚拟地址 翻译为 物理地址 ,以便程序访问内存
存储器扩展与地址译码(作业);
p129(没找到扩展在哪)
p97
地址译码
- 全译码法
- 地址总线中,除片内地址外,全部高位地址 connected with 译码器输入端参与译码
- 存储单元地址唯一
- 没有地址重叠
- 对全部存储空间都可以寻址
- 电路较复杂,连线多
- 部分译码
- 高位地址的一部分不用来产码,instead 产生片选信号
- 未参与译码高位与地址无关,存在地址重叠问题
CPU系统存储器与I/O的编址方式;
page 134
存储器地址映射有两种方法
- 存储器地址映射
- 存储器地址重映射
CPU用第一种方法对功能模块统一编制:
- 让CPU通过访问内存单元形式达到对外设的访问
CPU用第二种方法将外设重复编址到存储器的过程
- 一个外设在存储器里面被映射了多个地址空间
大端/小端存储、对齐访问;
p 138
大端: 高字节数据 ——> 低地址
0xE0341200(开头从下往上)
地址 | 数据 |
---|---|
003 | 00 |
002 | 12 |
001 | 34 |
000 | E0 |
小端: 低字节数据 ——> 低地址
0x001234E0(开头从上往下)
地址 | 数据 |
---|---|
003 | 00 |
002 | 12 |
001 | 34 |
000 | E0 |
对齐访问
要求某数据类型对象的内存地址,必须是K值(多为2,4,8)的倍数
- 如处理器总从存储器拿4bytes
- 内存地址要为4的倍数
- As a result, 保证所有int数据地址对齐为4的倍数,一个周期就可以拿出一个int
定时器的基本结构(组成)与功能(工作模式:计数、定时、输入捕获、输出比较)
p 155
组成
- 控制寄存器
- 状态寄存器
- 初始值寄存器
- 输出寄存器
- 计数器
Function
- 定时
- 计数
- 单次计数模式 or 循环计数模式
- 输入捕获
- 测量周期
- 捕获两次脉冲相减得到间隔时间
- 输出比较
- 产生特定波形
- if counter == [Compare Register] then 输出引脚输出指定信号
PWM的基本原理与应用(实验);
page 163
原理: 冲量相等而形状不同的窄脉冲加在具有惯性的环节上时效果基本相同
- 按照一定规律改变脉冲列的脉冲宽度
- 调节输出量、波形
应用: 见page168
ADC的分类及其特点、ADC主要技术指标?
page 185
直接比较型、间接比较型、Σ-Δ型
- 直接比较
- 直接比较型ADC把输入模拟信号直接与标准的参考电压比较,得到数字量,分为并行比较和逐次逼近
- 并行比较型ADC
- 速度最快
- n位输出 2n位电阻 2n-1个比较器
- 编码网络复杂
- 元件数量随位数增加 几何级数增加
- 高速、低分辨率场合
- 逐次逼近型
- 应用广泛 模/数转换方法
- 较高速
- 功耗低
- 低分辨率 <12位价格便宜
- 高精度价格高
- 间接比较
- 间接比较的输入模拟量 is not directely compared with 参考电压
- 两者变为中间物理量比较
- 比较结果 <——数字编码
- 积分型ADC
- 分辨率高
- 功耗低
- 成本低
- 转换速率慢
- low speed、精密测量 (数字电压表
- Σ-Δ型
- 分辨率高
- 成本低
- 模拟 + 数字混合信号处理 有优势
ADC指标 | 阐述 |
---|---|
分辨率 | ADC对输入电压微小变化的响应能力,数字输出最低位LSB对应模拟输入电压表示。定义为 [满刻度线/2n] 位数(分辨率)越高,精度越高 |
精度 | ADC量化上与理想ADC模块 模/数转换的差值, 精度决定数字输出 表示输入信号有用信息的比特数量 |
转换时间 | ADC 一次模拟数字转换的实践(启动转换命令信号到转换结束的间隔) |
逐次比较式ADC、积分型ADC的基本原理是什么?适用于什么场合?
page 185
逐次比较型:
原理: 输入模拟信号和不同参考电压多次比较
- 转换的数字量在数值上逼近输入模拟量对应值
高速、低分辨率场合
积分型:
原理: 两次积分将输入模拟电压 ———转化为———> 其平均值成正比的时间间隔
- Meanwhile, 此时间间隔内,计数器对时钟脉冲计数,实现A/D转换
适用: 低速 精密领域(数字电压表
DAC的主要技术指标?
page 203
技术指标 | 详情 |
---|---|
分辨率 | DAC 能分辨的最小输出电压的参数 |
精度 | DAC 实际输出与理想输出之间的接近程度 |
建立时间 | 输入的数字量发生变化时,输出电压变化到相应稳定电压值所需时间 |
温度系数 | 输入不变的情况下,输出模拟电压随温度变化产生的变化量 |
SPI总线的拓扑结构,SPI时钟的极性和相位;
page 219
四条线组成 SCK SSEL MISO MOSI
SSEL 输出
剩下三个 输出/输入
引脚名称 | 描述 |
---|---|
SCK/SCLK 串行时钟线 | 串行时钟,用于同步SPI接口间数据传输的时钟信号。 总是由主 |
机驱动,并且从机接收 | |
SSEL 低电平有效的从机选择先 | 从机选择,SPI从机选择信号是一个低有效信号,指示被选择参与数据传输的从机。各个从机有各自特定从机输入信号 |
MISO 主机输入/从机输出数据线 | 单向的信号, 从机->主机 |
MOSU 主机输出/从技术如数据线 | 单向的信号,主机->从机 |
时钟极性(CPOL):
决定串口时钟在空闲时是高电平还是低电平。
- CPOL=0 串口时钟在空闲时保持 低电平;
- CPOL=1 串口时钟在空闲时保持 高电平。
时钟相位(CPHA):
决定数据在第几个时钟跳变沿被采样。
- 当 CPHA=0 时,数据在串行同步时钟的第一个跳变沿数据
- 当 CPHA=1 时,数据在串行同步时钟的第二个跳变沿数据被采样。
SPI总线的时钟速度量级?
page 226的实验中结构体配置第三个参数 500 000 —— SPICLK
SPI时钟频率 为500kHz
UART、连接方式、RS-232的帧格式,传输波形;
page 210\211
连接方式:
- 模块间互连
- TxD连RxD
- RxD连TxD
- 地线接地
- 和PC RS-232通信
- TxD和RxD先用RS232电平转换,剩余部分和前面一样
格式
- 起始位:先发出一个逻辑“0”的信号,表示传输字符的开始(起同步作用)。
- 数据位:紧接着起始位之后。数据位的个数可以是 5、6、7、8 等,构成一个字符
- 低位开始发送(LSB最先)通常为ASCII码
- 校验位:字符位后面加上这一位(可选) 1为偶数(偶校验)or奇数
- 停止位:字符帧传输结束标志
- 1/1.5/2位的高电平
- 空闲区:位于逻辑“1”的状态,当前路上没有数据传送
波形
USB总线及其特点,定义为哪3个部分?
page 242
USB是一种电缆总线,它定义了两种角色:主机和设备;USB总线完成在主机和设备之间进行数据传输的功能。
特点
- 热拔插
- 即插即用
- 接入的时候,host枚举该设备,加载所需驱动
- 速度上 >>> 比个性端口、穿行串口等传统计算机标准接口块
定义
【USB由 主机 Hub 设备构成】
【USB系统分为下三层】
- 接口层:实际数据流传输层,数据交互between 主机 and 设备 在这一层
- 设备层:包含USB基本协议栈
- 执行各种USB命令
- 逻辑上:USB系统软件 and USB逻辑设备 数据交互
- 功能层:提供各种功能。 主机端 user可编写软件与USB驱动,设备端编功能单元
USB HOST的功能?
p242
- 检测 USB 设备的插入和卸载
- 管理在主机和设备之间的控制流
- 管理在主机和设备之间的数据流
- 收集状态和动作信息
- 给与之连接的 USB 设备提供电源
USB有哪几种传输方式?并分别列举其典型应用。
page 242
- 控制传输
- 一般用于短、简单的对设备命令和状态反馈
- example : 总线控制的0号管道 —— 任何一个USB设备必须支持一个控制类型相对应的端点0(默认端点
- 一般用于短、简单的对设备命令和状态反馈
- 同步传输
- 按有保障(不一定是尽快的)的速度传输
- 可能有数据丢失
- example: 实时音频、视频
- 保留了一种能力 —— 数据可以反映时间概念
- 发送和接收方要保证传输率的匹配,否则会造成数据丢失
- example: 视频设备 音频设备
- 中断传输
- 用于必须保证尽快反应的设备
- example: 鼠标、键盘
- 用于必须保证尽快反应的设备
- 批量传输
- 余下宽带大量(不保证延迟、次序、贷款、速度)传输数据
- example
- 文件传输
- 保证传输可靠性 —— 发错重传
- example
- 打印机
- 扫描仪
- 数码摄像机
- 余下宽带大量(不保证延迟、次序、贷款、速度)传输数据
USB总线枚举过程。
page 243
- 设备连接及上电 —— USB设备接入USB总线并上电
- 主机检测设备,设备连接、上电后
- host 通过 上拉电阻检测新的设备连接、确定设备速度
- 发出复位信号给设备
- 设备接收信号后,可以对总线处理操作做出响应,设备使用默认地址(00H)作为暂时地址
- host发出标准设备请求 GetDeviceDescriptor
- 获得 设备描述符 默认管道最大数据长度
- 主机对length域感兴趣,相关内容需要正确
- 第二字节type一定要为0x01 —— device; 否则主机不响应或重复两次失效
- 试探性步骤(由于host不知道device的描述符长度) 为了得到真正长度,后面读取设备描述符
- host发出下一个请求 SetAddress
- 主机分给USB设备唯一地址(之前用默认地址00H通信
- 主机发出GetDeviceDescriptor,读取全部设备描述符
- 多为18个字节
- 多次传输(if 不正确,主机将不响应或重复 2 次后放
- host读取配置描述符 GetConfigDescriptor
- 读取接口描述符和端点描述符
- GetConfigDescriptor 来读取集合 (配置 + 接口 +端点描述符
- 次数根据描述符的大小决定. if 不正确,主机将不响应或再重复 2 次后放弃
- host获取设备配置信息,选择其中一个配置,用SetConfig命令将所选配置种类通知USB设备
在过程8 结束后,设备可用,总线枚举过程结束。
前后台系统软件设计方法及其编程模型;
基于芯片的开发 -> 应用程序多为循环 -> 前后台系统/超循环系统
- loop调用函数完成对应操作 —— 视为后台/任务级行为
- 任务处理及时性比理论较差
- 中断服务程序处理异步时间 —— 前台/中断级行为
- 时间相关的关键操作多依赖于中断服务
中断(事件)驱动系统软件设计方法及其编程模型;
page 251
- 硬件机制
- 通知CPU发生异步事件
中断被识别
- CPU保存 part of/all 上下文 —— 寄存器的值
- CPU跳转专门子程序执行 —— ISR 终端服务子程序
中断服务子程序处理完后
主程序如下操作
- if 前后台系统 then 程序回后台程序
- if 非占先式内核 then 程序回到被中断任务
- if 占先式内核 then 程序执行优先级最高的就绪态任务
主程序只完成初始化
int main()
{
//系统初始化
...
while(1)
{
enter_low_power();
}
}
中断服务程序
Isr_1()
{
//处理中断
}
巡回服务系统软件设计方法及其编程模型;
page 252
中断源不多的时候(in 嵌入式微处理器/微控制器)
可以用软件方法,由主循环完成对外部事件的处理 —— 巡回服务系统
处理多个任务使用状态机 —— flag switch
- 任务按顺序执行步骤划分为不同的状态
- 状态迁移条件
switch() case
实现步骤处理 状态迁移
main()
{
state_A = state_B = 0;
counter_A = counter_B = 0 ;
while(1)
{
switch(state_A)
{
case 0:
if(input_A == 0)
break; //初始状态 说明上升沿没来
counter_A++; //上升沿到来,计数
state_A++;//状态转化
break;
case 1:
if(input_A == 1) //仍在上升沿
break;
state_A = 0; //下降沿到来,回初始状态
break;
}
switch(state_B)
{
case 0:
if(input_B == 0)
break; //初始状态 说明上升沿没来
counter_B++; //上升沿到来,计数
state_B++;//状态转化
break;
case 1:
if(input_B == 1)
break;
state_B = 0;
break;
}
}
}
基于定时器的巡回服务系统软件设计方法及其编程模型;
page 253
巡回服务中处理器总是处于全速运行的状态、能耗较高
系统的外部事件发生不频繁,于是
- 可以降低处理器服务时间的频率
- 不影响响应速度
- 节省能耗
- (定时器驱动巡回服务方法)
main()
{
//系统初始化
...
//设置定时器
while(1)
{
enter_low_power();//进入低功耗模式
}
}
Isr_timer()// 定时器中断
{
action_1();// 事件1处理
action_2();
...
action_n();
}
设计可移植软件的要点;
page 246 9-1章
四个点考虑
- 嵌入式操作系统
- 操作系统与APP软件集成
- 软件结构
- 硬件支持、OS支持 程序初始化、引导
p246 应用程序用同一调用接口访问(如何实现? 操作系统API (似乎和题目关系不大,这是硬件层面
- BSP设计 p247
- 使用驱动程序 p250
(感觉还是直接把小标题记住吧。。。)
- imbedded 系统软件架构
- Bootloader
- BSP
- 设备驱动program
- 库函数
操作系统内核的工作方式(占先式与非占先式内核)
p251
– “内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件
占先式内核一般多为实时系统(RTOS),高优先级任务一旦就绪便立刻抢占CPU资源,而被打断的低优先级任务将退出运行重新进入排队等待下一次调度。
非占先式内核的当前执行任务虽然同样可以被中断,但并不完全失去CPU的使用权。当中断完毕后将恢复此任务的执行。只有当前任务执行完毕后才交出CPU资源给其他任务。
uC/OS、FreeRTOS的特点、任务状态?
page 283
uC/OS
- C语言编写
- 优先级 抢占 多任务 实时操作系统
- 可管64个任务
- 任务调度管理 任务同步通信 内存管理 时间管理 中断
- 效率高 空间小 实时性能优良 扩展性强
- 源码公开 便于移植维护
- 少用于手机,多用于网络设备、或大型器械(工业、医疗
FreeRTOS
- 迷你 实时系统core
- 轻量OS
- 免费 源码公开 移植 裁剪 到各种单片机
- 调度策略灵活
- 可根据user设置 可/不可剥夺内核
物联网常用的短距离无线通信技术、远距离无线通信技术有哪些?各自的主要特点?
page 324
短距离:NFC ZigBee BLE WIFI
长距离: Lora NB-IoT
- NFC
- 非接触式 近距离
- 10cm内的便携式设备
- 非接触式支付 公交卡,校园卡 电子门票
- 社交网络 身份认证 分享链接、文件
- (技术特点)
- 耦合方式传递
- 可以data双向传输
- 通信安全迅速
- ZigBee
- 低速率 短距离 无线网络协议
- 低功耗 低成本
- 支持大量网络节点、多种网络拓扑
- (技术特点)
- 低功耗下,可坚持6个月以上
- 响应速度较快
- 满足低速率传输应用需求
- 支持星、树、网 拓扑结构
- BLE
- 低成本 短距离
- 可互操作鲁棒性无线技术
- 特性
- 星型拓扑 2.4GHz频段
- 快速链接 超短数据包
- 减少广播信道,不用公钥 不支持同步数据传输
- (技术特点)
- 短数据包传输
- 调节性跳频
- 联机快
- AES-128加密 24位CRC
- P2P 星 网结构
- WIFI
- 无线宽带
- 范围广 (技术特点)
- 通信带宽高
- 基础设施完善, 简介,兼容号
- 结构与以太网一直,快速部署
- 使用ISM全球开放频段,USER无需许可 使用频段服务
- . Lora
- 扩频技术
- 远距离 低速率 低功耗
- (技术特点)
- 灵敏度高 电流低,使用寿命长 支持并行处理
- 窄带物联网NB-IOT
- 蜂窝网络 网络覆盖好(技术特点)
- 芯片复杂度低,减少监听网络频度,降低终端功耗 电池寿命长
- 180KHz窄带系统,提升频谱效率
MQTT协议及其特点;
page 338
Message Queuing Telemetry Transport 消息队列遥测传输,
- IBM的即时通信协议
- 客户端 服务架构 发布/订阅模式 消息传输协议
- 运行在 有序、可靠、双向链接的网络上(如TCP/IP
特点
- 发布/订阅消息模式 —— 一对多消息分发、应用间解耦
- 消息传输不知道负载内容
- 三种等级的服务质量
- “最多一次”
- Operation evironment最大努力分发消息
- 消息可能丢失。
- 如环境传感器数据,因数据会连续发送,单次数据丢失可以容忍
- “至少一次”
- 保证消息到达
- 可能重复
- “仅一次”
- 保证消息只到达一次
- 可用在计费系统,信息重复丢失会导致不正确的收费
- 传输消耗 小, 协议数据交换 小, 减少网络流量
- 异常链接断开发生,通知到相关方
- TCP/IP 提供网络连接
- 使用 Last Will 和 Testament 特性通知客户端异常终端机制
物联网应用系统的架构;
p320
分为三层:感知层、网络层、应用层
- 感知层
传感网络将物品信息接入网络层(局域 + 传感器网络 组成), 信息的采集、转换、收集 - 网络层
中间层(私有网络 + 互联网 + 有线、无线通信网 + 网络管理系统),传递处理感知层信息实现互联功能并传输 - 应用层
最上层(接入平台 + 应用服务),完成数据的管理处理、相关业务逻辑
电磁兼容性(EMC)的概念
EMC本身的概念
- device or system在电磁环境中符合要求的运行
- 不对环境中任何设备产生无法忍受的电磁干扰能力
电磁干扰
page 354
电磁干扰EMI 分为
- 传导干扰
- 辐射干扰
三个要素
- 传导干扰
- 辐射干扰
- 敏感设备
抑制方法:
- 降低电磁波辐射 or 传导源 // sender
- 切断耦合路径 // route
- 增加接收器的抗干扰能力 // receiver
发射(1)和抗干扰(3)都可以根据辐射耦合(高频)和传导耦合(低频)来分类。
发射机(干扰源)与接收机(敏感设备)之间的辐射耦合是由电磁能量通过辐射途径传输而产生的
如
- 来自附近设备的电磁能量通过直接辐射产生的耦合
- 自然界与类似的电磁环境耦合进入敏感设备
低功耗系统设计方法。
page 346
原则
- 多用低功耗器件,如 低功耗MCU, COMS逻辑器件
- 电源电压尽量为低
- 时钟尽量慢
- 系统尽量非活跃
- 硬件软件配合让系统功耗最低
方法:
- I/O引脚为外部器件供电
- 电源管理单元设计
- 定时器输出,对CU产生中断/复位
- CPU被唤醒,控制相关外设 进入工作状态
- 动态改变CPU时钟频率
- 软件系统设计:
- (各种化)
- 编译低功耗优化技术
- 硬件软件化
- 优化算法、 编译、 软件(类似第一点
- (减少)
- 减少处理器工作时间
- 降低工作频率
- (设计)
- 延时程序的设计、睡眠方式的使用
- 显示装置的设计