0%

博流

  1. 桌面儿童陪伴机器人
  2. 可穿戴式健康数据采集系统
  3. 钢琴教培系统

瑞萨

  1. 方向一:智能家居与楼宇自动化

软通(可能会需要操作系统)

  1. 方向二:无人水质检测船
  2. 方向三:智能机车系统(比较难);以及智能汽车防盗报警系统
  3. 方向五:多功能智能药盒

ST

  1. 方向三:小车竞速
  2. 方向五:可穿戴设备

嵌入式基础知识

  1. 嵌入式系统与通用计算机一样,硬件的主体都是
  2. 带有微处理器的专用软硬件系统都可以被称为嵌入式系统(服务器是网络环境的高性能计算机,不属于嵌入式系统)、
  3. 模拟信号的数字化分为四步:扫描、分色、取样、量化
  4. 数字信号处理器(DSP)(不是DPS!!!):适合处理音频、视频灯数字信号的数据据处理效率(不是文字和图形用户界面)
  5. 量化后的样本一般都用8位、12位或16位二进制整数来表示,称为量化精度
  6. 嵌入式系统是嵌入式计算机系统的简称,人们日常使用的通用计算机不是典型的嵌入式系统
  7. alt text
  8. 嵌入式系统按产品形态分为三类:

系统级产品:完整的设备,如智能手机、智能家居,直接使用。

板级产品:核心电路板,如Arduino、Raspberry Pi,需要进一步开发。

片级产品:核心芯片,如ARM Cortex、Intel Atom,需与其他组件集成。
19. I/O口也包括蓝牙接口、WiFi接口等等
25. 嵌入式系统通常包含以下几个关键组成部分:

  • 处理器(CPU):
    类型:微控制器(MCU)、微处理器(MPU)、数字信号处理器(DSP)。

  • 功能:执行控制和处理任务。

  • 存储器:
    类型:RAM(随机存取存储器)、ROM(只读存储器)、Flash存储器。

  • 功能:存储程序代码和数据。

  • 输入/输出接口(I/O):
    类型:GPIO(通用输入输出)、UART(通用异步收发传输器)、SPI(串行外设接口)、I2C( inter-integrated circuit)。

  • 功能:与外部设备通信。

  • 操作系统(可选):
    类型:实时操作系统(RTOS)、嵌入式Linux。

  • 功能:管理硬件资源和任务调度。

  • 软件:
    类型:固件、应用程序。

  • 功能:实现特定功能和控制逻辑。

  • 电源管理:

  • 功能:提供和管理系统电源。

  • 外围设备:
    类型:传感器、执行器、显示器。

  • 功能:与环境交互。

  1. 路由器也是一种嵌入式系统
  2. 通用计算机 CPU 为追求极致运算速度,常采用高主频设计。但嵌入式系统 CPU 更注重满足特定应用需求,并非一味追求高主频。高主频会带来高功耗、高发热等问题,这对于嵌入式系统尤其是对功耗、散热要求严苛的场景是不利的,所以高主频不是嵌入式系统 CPU 特点。
  3. DSP不是一种高性能通用微处理器,而是一种专用于数字信号处理的微处理器
  4. 量化位数=波形声音的码率/(取样频率x声道数)(1kB=810的三次方bit)*
  5. 片上系统SoC也成为系统级芯片,称为嵌入式处理芯片的主流发展趋势了,再集成电路加工工艺进入纳米时代之前就已经出现了
  6. 嵌入式存储器是陷入是系统硬件必不可少的组成部分,按照存取特性可以分为RAM和ROM,RAM包括静态和动态两种形式,即SRAM和DRAM,都是易失性存储器,掉电后信息丢失;ROM是只读存储器,用户不能随意变更其中的内容。
  • Mask ROM是基于淹没工艺技术的只读存储器,一诞生就不可以该百年信息,主要用于不可以升级的成熟产品存储程序或不变的参数等信息;
  • SSD是固态硬盘的缩写,具有读写速度快,功耗低等优点;闪存(Flash Memory)是一种非易失性存储器,是只读。存储器
  1. 低端系统一般在工业领域和加蒂纳领域有比较高的使用率。AMBA是只有ARM公司遵守,别的公司不遵守
    alt text
  2. 异步串行接口:是一种按位(bit)依次传输数据的通信接口,数据传输时没有统一的时钟信号进行同步,而是依靠数据帧中的起始位、停止位等标志来区分数据的开始和结束,常见的如 RS - 232 - C、UART(通用异步收发器)等都属于异步串行接口 。
    通用串行总线式接口(USB):是由多家公司为简化 PC 与外设之间的互连而共同研究开发的一种标准化连接器,支持各种 PC 与外设之间的连接,还可实现数字多媒体集成(IEEE1394和以太网接口也都是通用串行总线式接口)
  3. AMBA总线主要有三种总线,所以是并行而非串行
  4. 数字电路:处理离散的数字信号,只有高电平和低电平两种状态,用 “0” 和 “1” 表示。
    模拟电路:处理连续变化的模拟信号,信号的幅度、频率等参数可在一定范围内连续取值。
    射频电路:处理的是高频模拟信号,频率通常在 300kHz~300GHz 之间。
  5. alt text
  6. 闪存卡(如CF、SD卡)都是外存,一般断电后能保存但是速度慢;RAM是内存,断电后不能保存但是速度快。
  7. alt text
  8. alt text
  9. alt text
    alt text
  10. alt text
  11. alt text
  12. 串行通信协议和并行通信协议
    串行通信协议:数据按位(bit)依次顺序传送,在一条传输线上逐位传输数据,比如常见的 USB、SPI(Serial Peripheral Interface,串行外设接口 )、I2C(Inter - Integrated Circuit,集成电路总线 )等都属于串行通信协议。它只需一对传输线(如 USB 的两根数据线 )就能实现双向通信,成本较低,适用于远距离通信,但在早期通常被认为传送速度较慢。不过,随着技术发展,串行通信能通过不断提高时钟频率来提升传输速率,在高速传输领域应用越来越广泛。
    并行通信协议:数据的每一位同时在多根数据线上发送或者接收,通常以字或者字节为单位并行传输,比如早期计算机中 CPU 与内存之间的数据传输、8080 并行通信协议等。并行通信在时钟线频率相同的情况下,若有多条数据线,传输速度理论上会比串行通信快。例如 8 总线的并行通信速度在理想情况下是串行通信的 8 倍。但并行通信存在一些缺点,如需要较多的物理通道,成本较高,且随着时钟频率提高,并行导线之间的相互干扰会越来越严重,不适合远距离通信。
  13. 局域网
    局域网(Local Area Network,LAN)是在局部范围(如家庭、学校、企业园区等)内由多台计算机或其他设备通过网络设备(如交换机、路由器等)连接组成的计算机网络。

故:局域网和广域网(大的局域网)可以组成互联网
92. alt text
93. alt text
98. alt text
100. 功耗越来越高
106. 平板电脑也大多用的是SOC片上系统,而不是Intel处理器
108. 图像数据量=图像水平分辨率图像垂直分辨率像素深度/8.
alt text
上图看出来像素深度是24的原因:2^24≈1600万,故24
111. 嵌入式系统中负责运行系统软件和应用软件的处理器称为中央处理器
116. 嵌入式处理器的字长指的是处理器中通用寄存器和定点运算器的二进位宽度
(定点运算器是负责执行算术运算(如加、减、乘、除)和逻辑运算(如与、或、非)的部件。)
(通用寄存器是嵌入式处理器中可用于多种用途的存储单元,用于暂存数据、地址或指令等信息。)
118. 用于机机交互的设备:①各种类型的传感器、各种伺服执行机构
119. alt text
122. 冯诺依曼结构:地址空间和数据空间分开了
哈佛结构:地址空间和数据空间不分开
127. 数码相机中有一个8位的MCU,负责进行操作控制;DSP来负责数字图像处理
128. 嵌入式处理芯片通常是超大规模和极大规模,不是大规模。
129. GB2312(都为双字符)是我国目前广泛使用的汉字编码国家标准之一,包含西文、俄文等其他字符
GB18030(单字节编码表示ASCII,双字节编码表示汉字)
UTF-8采用单子节可变长编码(有1、2、3、4个字节),UTF-16表示的是双子节可变长编码(有2、4个字节可以使用)
alt text
134. alt text
136. 图像的量化是:扫描、分色、取样、量化
137. alt text
138. WiFi无线局域网:主要用的是2.4GHz和5.8GHz(不是2.4MHz和5.8MHz)
140. alt text
148. GB18030采用不等长编码,而不是不等长双字节编码(因为有1、2、4位)
155. ASCII不包含注音符号、希腊字母、拉丁字母、控制字符,包含日文片假名
164. alt text
167. 码率=取样频率x量化位数x声道数
167. RISC和CISC区别:
alt text
169. 手机和平板电脑通过 WiFi 接入互联网时,WiFi 路由器所连接的网络可能是通过 ADSL、Cable Modem
或光纤接入等方式获得的网络 。也就是说,WiFi 接入的网络来源可以与 ADSL、Cable Modem 和光纤接入等方式相关,
169. 寄存器与Cache分别是什么:
Cache和寄存器都是计算机中用于存储数据的部件,但它们在功能、速度、容量等方面有所不同,以下是用通俗的方式对它们的解释:

Cache(高速缓冲存储器)

  • 是什么:可以把Cache想象成一个小而快的“私人图书馆”。它是位于CPU和主内存之间的一种高速存储部件,
    用来临时存放CPU近期可能会频繁使用的数据和指令。
  • 有什么用:CPU的运行速度非常快,而主内存的速度相对较慢,就好像一个人看书的速度很快,
    但去大图书馆找书的速度比较慢。Cache的作用就是在CPU和主内存之间起到一个缓冲的作用,
    把CPU可能马上要看的“书”(数据和指令)提前从主内存这个大图书馆里拿出来,放在这个小而快的“私人图书馆”里,
    这样CPU需要这些数据和指令时,就能以更快的速度找到,不用每次都去主内存这个大图书馆里慢慢找,
    从而大大提高了CPU的工作效率。

寄存器

  • 是什么:可以把寄存器理解为CPU身边的几个非常小但超级方便的“口袋”。
    它是CPU内部用来暂时存储数据和指令的最快速的存储单元,数量比较少,通常只有几个到几十个。
  • 有什么用:因为寄存器就在CPU内部,所以CPU访问寄存器的速度是最快的,就像人伸手到自己身边的口袋拿东西一样快。
    CPU在进行运算的时候,会把马上要用到的数据和指令先放在这些“口袋”里,这样在运算时就能以最快的速度拿到数据进行处理,
    不用再到其他地方去取数据,能让CPU的运算速度达到最快。比如在做加法运算时,会把要相加的两个数先放在寄存器里,
    然后CPU直接从寄存器中取出这两个数进行相加,得出结果后也可以先放在寄存器里,方便后续使用。
  1. alt text
  2. 在 IPv4 的 C 类地址中,每个网络最多连接 254 台计算机,原因如下:
    地址构成:C 类 IP 地址由 3 字节(24 位)的网络地址和 1 字节(8 位)的主机地址组成。8 位主机地址用二进制表示的范围是从 00000000 到 11111111 。
    特殊地址:在这 8 位主机地址中,全 0 和全 1 的地址有特殊用途。主机地址全为 0(如 192.168.1.0,这里假设 192.168.1 是网络号部分)表示网络本身,用于标识整个网络;主机地址全为 1(如 192.168.1.255 )是广播地址,用于向该网络内所有主机发送广播消息。这两个地址不能分配给实际的计算机。
    可用地址计算:因为 8 位主机地址总共能表示 2⁸ = 256 个不同的状态,减去全 0 和全 1 这两个特殊地址,所以剩下 254 个地址可用于分配给网络中的计算机,即每个 C 类网络最多只能包含 254 台计算机。

A. 将有线通信网络与无线网络进行互连
通常由无线接入点(AP)等设备担任。AP 可以接收有线网络的信号,并将其转换为无线信号发射出来,供无线设备连接;同时也能将无线设备发送的信号转换为有线信号传输到有线网络中,实现有线和无线通信网络的互连。

B. 将多个异构或同构的物理网络进行互连
主要由路由器担任。路由器工作在网络层,它能够根据网络层的地址(如 IP 地址),将数据包从一个网络转发到另一个网络。无论是不同类型的网络(异构网络,如以太网和令牌环网),还是相同类型的网络(同构网络,如多个以太网),路由器都能实现它们之间的互连,并进行数据包的路由选择和转发,以确保数据在不同网络间的正确传输。

C. 放大传输信号,实现远距离数据传输
一般由中继器或放大器担任。中继器是一种简单的网络设备,它会接收并重新生成信号,在信号传输过程中对衰减的信号进行放大和整形,以延长信号的传输距离,从而实现远距离数据传输。放大器则更侧重于对信号的功率放大,提高信号强度,也可用于增强信号传输距离。

D. 用于传输层及以上各层的协议转换
主要由网关担任。网关是一种复杂的网络设备,它可以在不同的协议栈之间进行转换,不仅能处理传输层(如 TCP、UDP 协议)的协议转换,还能处理应用层等更高层次的协议转换。例如,当一个基于 IPv4 协议的网络要与一个基于 IPv6 协议的网络进行通信时,网关可以进行两种协议之间的转换,使得不同协议的网络能够相互通信和交互数据。
172. 像素深度就是量化位数
173. 固定电话通信中使用PCM编码的码率为64kb/s
175. 量化位数:表示每个像素或采样点颜色、声音等信息的二进制位数,是具体数字。

量化精度:衡量模拟信号转数字信号时幅度量化的精确程度,由量化位数体现,位数越多精度越高。
176. alt text
180. www网页中包含的指向其他网页的超链是又向的,起点位置成为链源,目的地称为链宿,是典型的超文本结构。
181. - 字符的形状又两种描述方法:点阵法和轮廓法(不是扫描法)

  • 电子文档交换的文件格式是MPEG-4
    • BMP:每个文件存放一幅图像
  • JPEG:静止图像数据要缩编码的国际标准
  • TIF:支持多种压缩方法
    • MPEG-2(最常用):数字有线电视转播、数字有限电视、DVD
  • MPEG-4:监控、IPTV、手机、MP4播放器
  1. 音频信号量化后的样本一般用8、12、16位的二进制整数表示(也就是量化精度)
  2. alt text
  3. 由于语音信号的频率仅为300~2400Hz,因此电话通信语音的取样频率为8kHz,而音乐是全频带信号,取样频率通常在40kHz以上

哈夫曼编码是一种无损压缩编码
206. JPEG关注的是静态图像,GIF、AVI、MP4都可以将多张图像保存在同一个文件中,形成动画的效果
207. 数字图像的位平面数目就是像素颜色分量的数目
212. GIF是无损的
213. WAV是未压缩,不是无损压缩!
217. - A选项:C类IP地址适用于小规模局域网,而非中型网络。

  • C选项:C类IP地址可用于多目地址发送(组播) 。
  • D选项:C类IP地址二进制表示中最高3位是“110”,不是“101” 。
  1. 光纤的强度差
  2. alt text
    alt text
  • EEPROM是一种非易失性存储器,通过专用设备离线修改才可以
  • GIF是静态和动态都可以
  • 拉丁字母源自希腊字母,故拉丁字母在ASCII中,希腊字母没有
  • 音频:量化位数
  • 图像:像素深度
  • alt text

  1. Cortex-M 功耗强、耗电少、RISC结构,但不是多周期操作
  2. 素有处理器都有三种状态:
  • ARM状态
  • Thumb状态
  • Thumb-2状态

7.

  • FIQ:用来处理高速中断
  • IRQ:用来普通中断处理
  • ABT:中止模式
  • SYS:特权级的操作系统任务
  1. alt text
  2. ARM处理器的优点:指令流水线技术,单周期操作
  • 存储机制(内核):冯诺依曼结构和哈佛结构
  • 体系结构(指令集结构):RISC和CISC

12.

  • ARM处理器内部的总线标准是AMBA
  • ARM处理器的指令编码不全为32位,ARM处理器本身是32位设计,但也配备16位指令集
  • Cortex-M是microcontroller,故控制
  • ARM处理器都是RISC结构
  1. Cortex-A最适合高端应用
  • R13为堆栈指针
  • R14为链接寄存器
  • R15为PC使用
  • CPSR为当前程序状态寄存器(备份程序状态寄存器SPSR)
  1. ARM采用RISC指令集架构!!!!!!!!!!!!!
  2. SBC:算数运算指令,不属于逻辑运算助记符
  3. alt text
  4. alt text
  • Cortex-M 功耗低,体积小
  • Cortex-A工作效率高,性能好
  • Cortex-R 响应速度快,成本低,功耗低
  • 高端ARM处理器有Cache
  • Cortex-M0内部的WIC为唤醒中断控制器
    alt text
  1. 成本低和功耗低:Cortex-R
  2. 处理器有三种状态:
  • ARM状态
  • Thumb/Thumb-2状态
  • 调试状态
  1. 基址加变址寻址是将基址寄存器的内容与变址寄存器的内容相加,形成操作数的有效地址。在 ARM 指令系统中,数据传送指令并不支持基址加变址寻址方式,一般像存储器访问指令(如 LDR、STR 等)会使用基址加变址寻址,所以该选项错误。
  2. A53-A57都是64位ARM处理器
  3. alt text
    alt text
  4. MPU:存储器保护单元,对存储器进行保护的可选组件
    MMU:
  • 虚拟地址到物理地址的映射
  • 存储器访问权限控制
  • 对Flash、SRAM、SDRAM、ROM等不同类型的存储器进行统一管理
  1. alt text
  2. ARM 体系结构中,CP15 协处理器的控制寄存器(Control Register)在很多 ARM 内核中被用于控制数据的字节序(即大端或小端模式)。
  3. CPSR的条件码标志含义:
  • N为符号标志,N=1代表为负数;
  • Z为全零标志,z=0表示运算的结果非零
  • C为进借位标志,加法有进位时C=1;减法与加法相反
  • Q为DSP运算是否溢出标志
  • V为溢出标志
  • I为中断禁止控制位
  • F为禁止中断FIQ控制位
  • T为ARM与Thumb指令切换,T=1时ARM处理器进入Thumb状态
  1. M0内部的WIC为唤醒中断控制器
  2. alt text
  3. VFP是ARM处理器用于浮点数运算的部件
  4. BIC:bit clear也就是清除指令
  5. 读:LDR
    写:STR
  6. alt text
  7. alt text
  8. 异常向量地址一般在异常发生时写入程序计数器(PC),而不是从异常中断返回时写入 PC 。
  9. 未定义指令和软件中断是最低级,外部中断高一点,快速中断更高一点
  10. 数据访问种植DABT,指令预取终止PABT。
  11. LDRB和LDRH的区别:
  • 数据宽度:LDRB用于从内存中加载一个字节(8 位)的数据;LDRH用于从内存中加载一个半字(16 位,即两个字节)的数据。
  • 数据扩展方式:LDRB将从内存读取的 8 位字节数据加载到寄存器时,会将寄存器的高 24 位用零扩展,也就是将其填充为 0;LDRH将从内存读取的 16 位半字数据加载到寄存器时,会将寄存器的高 16 位用零扩展。
    alt text
    这里面R1是地址,R0是数值!
  1. Cortex-M系列内部没有MMU部件
  2. C 选项:BIC R7,R7,#0xFFFFFFDC
    指令功能:BIC是位清除指令。按照BIC指令的规则,会根据立即数0xFFFFFFDC中为 1 的位,将R7中对应的位清除为 0。
    D 选项:XOR R7,R7,#0xFFFFFFDC
    指令功能:XOR是逻辑异或指令。逻辑异或操作是当对应位不同时结果位为 1,相同时结果位为 0。
    SPI也是串行,一个一个发数据
  3. alt text
  4. M0内部的WIC为唤醒中断控制器,NVIC是嵌套向量中断控制器
  5. 系统复位后默认用的是小端模式
  6. 中断控制器保存了发生中断时的中断向量,不是CPSR
  • CPSR可以读也可以写,可以控制是否允许外部中断,决定ARM工作模式
    • 数据类型有字节、半字和字等
  • 存储格式包括大端模式和小端模式
  • 一个字32位,必须以4字节对齐,即低2位地址始终为0????????

194.

  • ADC:带进位加法
  • BIC:清零指令
  • ORR:逻辑或指令
  • MVN:数据取反指令
  • TST:位测试指令
  1. MPU、MMU、Cache与存储器直接相关
  2. SUBCC 指令:
    功能:在无进位(Carry Flag 为0)的条件下执行减法操作。

操作:如果进位标志(Carry Flag)为0,则执行减法操作;否则,不执行。

  • 立即寻址:把数据直接端上来,代替R1等寄存器
  • 寄存器间接寻址:【R1】
  • 寄存器寻址:R1,R2等
  1. alt text
    图中的感叹号意思是数据回写,如果没有感叹号,R4里面的值是不会改变的
  2. 数据处理指令分为:
  • 数据传送指令
  • 算数逻辑指令
  • 比较指令
    (所以不难发现加载指令不包含在这里,所以LDR和LDL不属于数据处理指令)
  1. 注意顺序:
    alt text
  2. alt text
  3. alt text
  4. alt text
  5. 内存和外设的数据有可能改变(因为R0和R1对应的值可能相同,可能不同)
  6. LDRD R0, R1, [R2, #8] ; 从地址 R2 + 8 处加载两个 32 位数据到 R0 和 R1
    • DCD:在内存区域分配一个连续的字节内存空间
  • CODE 16伪指令通知编译器,其后的指令序列为16位的Thumb指令
  • EQU伪指令用于为程序中的常量、标号等定义以一个等效的字符名称
  1. STR是把右边的数据放到左边
  2. alt text
  3. 存放多少倍地址的问题:应该从左移还是右移开始看

第三单元

  1. LDO:使输出电压稳定的设备,能够在输入端和输出端(电源电压与负载电压)之间保持微小压差。
  2. nRESET中n表示低电平复位,没有n表示高电平复位
  3. UART端口、USB接口、CAN接口、以太网接口都可以DMA控制器控制数据传输
  4. AMBA主要由系统总线和外围总线两部分组成
  5. 速度不高的连接外围总线APB,包括定时器、并行接口和串行接口等;而电源管理以及时钟控制器等都连接在系统总线上。PWM挂在APB总线上
  6. A 选项:片上 SRAM 及 Flash ROM 通常连接在高速的 AHB(Advanced High - performance Bus)总线上,因为它们的数据传输速度要求较高,AHB 能满足高速数据传输需求。
    B 选项:PWM 属于低速外设,常挂载在 APB 总线上。
    C 选项:USB 主机一般连接在高速的 AHB 或 ASB(Advanced System Bus ,早期版本,现在多用 AHB)总线上,因为 USB 数据传输速度相对较快,APB 总线难以满足其高速传输要求。
    D 选项:DMA 控制器通常也连接在高速的 AHB 总线上,以实现高速的数据直接内存访问操作。
  7. 嵌入式最小硬件系统包括嵌入式处理器、时钟电路、电源电路、复位电路、存储器和调试测试接口
  • 嵌入式系统常用外接复位芯片提供的付微信号来实现系统的可靠复位
  • 微处理器用复位芯片可通过两个不同1引脚分别输出高电平或低电平有效的复位信号
  1. 产生时钟信号的晶振,有的是有源的、有的是无源的
  2. alt text
  3. alt text
    在 SPI(Serial Peripheral Interface,串行外设接口)通信中,时钟信号 SCK 的每次有效作用对应一位数据的发送和另一位数据的接收。主机和从机通过 MOSI(主出从入)和 MISO(主入从出)线进行数据交换,数据在时钟信号的控制下逐位传输。
    已知主机移位寄存器 A 中已存入 11001010,从机移位寄存器 B 中已存入 11110000。当主机发出 4 个 SCK 有效信号后,数据会按照 SPI 的通信规则逐位进行交换:
    每一个 SCK 信号都会使主机和从机移位寄存器中的数据移动一位,同时通过 MOSI 和 MISO 线进行数据传输。
    经过 4 个 SCK 信号后,主机移位寄存器 A 中原来的高 4 位数据(1100)已经发送到从机,同时从机移位寄存器 B 中原来的高 4 位数据(1111)也已经发送到主机。
    此时,主机移位寄存器 A 中的内容变为 00001100(原来低 4 位左移后,高 4 位接收从机发送过来的数据),从机移位寄存器 B 中的内容变为 10101111(原来低 4 位左移后,高 4 位接收主机发送过来的数据)。
    所以答案是 D。而选项 C 中主机移位寄存器 A 和从机移位寄存器 B 中的内容不符合上述 SPI 通信规则下的数据交换结果。
  4. 锁相环是一种能让输出信号和输入信号的相位保持同步的电路或模块。它就像一个“智能的时钟同步器”,先比较输入信号和自身输出信号的相位差,把这个相位差转化成电压信号,再用这个电压信号去调整自身振荡器的频率,让输出信号的频率和相位紧紧“跟随”输入信号,实现两者同步 。
  5. JTAG可以实现在线编辑功能
  6. alt text虽然外接了一个石英晶体振荡器,但是还是使用内部时钟信号发生器
  7. 78xx是普通稳压器,LDO是低压差稳压器
  8. 78xx系列并不是AC - DC模块。78xx系列是一种线性稳压集成电路,属于DC - DC转换器件。它的输入和输出都是直流电压,用于将较高的直流电压转换为稳定的较低直流电压输出,例如常见的7805可将输入直流电压转换为5V直流输出。

而AC - DC模块是用于将交流电转换为直流电的模块,所以C选项说78xx系列是一种AC - DC模块的叙述是错误的。
39. 介绍一下LDO:低压差” 指其输入输出电压差较小,在输入电压仅略高于输出电压时就能正常工作,相比传统线性稳压器效率更高、功耗更低。
功能:将较高直流电压转换为稳定的较低直流电压输出,为电子设备中的不同部件提供稳定电源。
46. AMBA的系统总线:连接高带宽快速组件(高带宽片上RAM和DMA主控制器也在上面,USB主机、片上SRAM及Flash、Ethernet、告诉GPIO中断控制器、LCD控制器都在这上面)
外围总线:连接低带宽组件以及与外部相连的硬件组件
49. FRAM和MRAM是两种新兴的非易失性存储器(不是半导体)
52. 外围总线APB:包括定时器、并行接口和串行接口等;还有CAN、RTC、SPI
LCD和中断控制器都在系统总线上
54. “#”代表着低电平有效
59. ASB是AMBA1总线中的系统总线
67. 只需要满足要求就行,不一定必须保证嵌入式处理器能够工作在最高工作频率
73. 晶振应该考虑嵌入式处理器的最高工作频率,也要保证系统在一定的功耗封你为内,因此嵌入式处理器时钟信号的频率不能超过嵌入式处理器的最高工作频率
79. - NOR Flash ROM的写入和擦除速度较慢

  • NAND Flash ROM以页(行)为单位随机存取,在容量、使用寿命和成本方面有比较大的优势
    ,但是读出速度较慢,编程复杂,一般作为数据存储器使用
  1. 在数码管显示内容改变之前,数据线的状态可以改变
  2. 标准中断控制器不能区分中断的优先级,但是VIC可以,NVIC更强大

与此同时,处理中断有两种形式:标准的中断控制器和VIC(向量中断控制器)
107. RTC不与系统总线相连,大那是中断控制器与系统总线相连
111. SPI和UART和I^2C都是串行工作,只有GPIO可以实现并行I/O
112. IIC可以进行总线仲裁,但是SPI没有
113. alt textD:使用这个是为了进行行扫描输出
115. alt text
117. 与 S3C2410 某个 GPIO 端口对应的数据寄存器只有一个。通过对该寄存器的读写操作来实现数据的输入和输出,当 GPIO 引脚被配置为输入时,读取该寄存器可获取引脚的输入电平状态;当配置为输出时,向该寄存器写入数据可控制引脚的输出电平。并不是有两个数据寄存器分别存放输入和输出数据,所以该选项错误。
118. FRAM和MRAM都是非易失性存储器
119. 片内存储数据通常用的是SRAM,片内程序存储器通常使用的是SDRAM
123. TB是2的40次方B
134. LED/LCD显示接口属于典型的嵌入式系统的人机交互通道
141. 目前已知的半双工:IIC和USB
145. LCD:液晶显示器,LED是发光二极管
146. RS-232采用负逻辑传输:低电平是1,高电平是0
153. alt text
156. alt text
alt text
158. 片外扩展的存储器简称主存储器或主存,而外部存储设备简称辅助存储器
160. 正在运行的程序的大部分数据和代码存放在主存储器(内存)中
164. alt text
169. PWM不属于互联通信组件
170. alt text
选项C错误在于电阻式触摸屏一般不支持多点触摸或滑动操作

电阻式触摸屏是基于压力感应原理工作,当触摸时,屏幕表面的两层导电层接触,通过检测接触点的电阻变化来确定触摸位置。其技术特性使得它在检测多个触摸点或精确识别滑动等复杂操作上存在困难。

而多点触摸或滑动操作通常是电容式触摸屏的特性,电容式触摸屏通过检测手指等导体与屏幕表面电容的变化来识别触摸,能更好地支持多点触摸和滑动等复杂操作。所以选项C说电阻式触摸屏通过多点触摸或滑动进行操作是错误的。
171. alt text
在驱动LED等负载时加反向驱动器有以下原因:

  • 电平匹配:某些情况下,ARM芯片GPIO引脚输出电平可能不满足LED正常工作需求。反向驱动器可将GPIO输出电平转换为适合LED的电平,确保LED能正常发光。比如GPIO输出低电平逻辑0时,经反向驱动器后输出高电平,为LED提供合适的正向偏置电压。
  • 电流放大:GPIO引脚输出电流能力有限,可能不足以驱动LED达到合适亮度。反向驱动器可提供较大驱动电流,满足LED工作的电流要求,保证LED正常发光。
  • 保护芯片:反向驱动器可起到一定隔离作用,避免LED工作时产生的电气干扰或异常电流影响ARM芯片,保护芯片正常工作。

在图(a)中加反向驱动器,就是为了实现上述一个或多个功能,确保LED能稳定、可靠地工作。不过,对于驱动单个LED,在GPIO引脚电流和电平能满足要求时,也可不加反向驱动器,如图(c)电路更简洁,在一定条件下是合理的驱动方式。
176. alt text
186. 内存的带宽:每秒可传输(读出/写入)的最大数据总量,存储器贷款与存储器总线频率有关,也与数据位数(宽度)和每个总线周期的传输次数有关
194. 接收中断并置位标志的条件通常不是接收到一个字符,而是达到接收缓冲过去的特定状态
196. S3C2410内含的I2C的7位地址读写操作包括4个部分,顺序分别是:起始位S、7位从器件地址、读写位R/W、应答位A
DVI(Digital Visual Interface,数字视频接口)不是一种 LCD 控制器的标准,而是一种接口标准。
补充:寄存器规则:
每个引脚由2位控制(例如GPE15用bit31和bit30)。
00 = 输入模式
01 = 输出模式
10 = 特殊功能(如I2C)
11 = 保留
201. S3C2410片内没有集成摄像头接口以及AC97音频接口
202. S3C2410的电源管理模块通常有四种模式:正常模式、慢速模式、休眠模式和掉电模式
203. Flash存储器通常用作系统的程序存储器

高宽带外部存储器控制接口不仅能用于扩展系统的程序存储器,还可以扩展数据存储器
207. alt text
如果想要d正确,除了选项中描述的要做的事,GPE7 - GPE0 引脚连接到 74HC573 芯片的 1D - 8D 数据输入端,而 74HC573 是带三态门的透明锁存器。GPF0 引脚连接到 74HC573 的 CLK(时钟)端,需要在 GPF0 引脚产生一个合适的上升沿信号,这样才能将此时 GPE7 - GPE0 引脚上的新数据锁存到 74HC573 内部,并通过 1Q - 8Q 输出端传送给数码管,从而改变数码管显示内容。
209. alt text
210. alt text
214. USB3.0采用全双工通信,通信时采用主从方式
217. IIC总线上每次发送的数据字节不受限制,但是每个字节必须为8位,且每个字节后面必须跟一个应答位(ACK)
218. alt text
222. 涉及IIC操作的寄存器有IICCON、IICSTAT、地址寄存器、数据位移寄存器等
223. alt text
229. (书P155)BANK的总线宽度时8位、16位、32位,但是BANK0的总线宽度只能选择16位、32位
230. alt text
S3C2410有两个中断挂起寄存器:源中断挂起寄存器SRCPND和中断挂起寄存器;当多个中断源请求服务时,SRCPND相应の位被写1,
233. 嵌入式系统可以通过扩展无线模块来实现无线通信,该模块与嵌入式处理器连接时不仅可以用UART,还可以用USB
237. alt text
alt text
因为上拉电阻的存在,所以按下按钮的时候是0
238. S3C2410是32位嵌入式处理器
240. 编码键盘(线性键盘)
310. S3C2410内部有5个16位定时器Timer,有4个具备PWM输出
308. 在S3C2410芯片中,题目中ABCD对应的寄存器作用如下:

  • A选项TCNTB0 - TCNTB4(Timer Count Buffer Register):定时器计数缓冲寄存器。每个定时器都有对应的计数缓冲寄存器,如TCNTB0对应Timer0。它们用于存放定时器的初始计数值。在定时器开始工作前,会将这些寄存器中的值加载到实际的计数寄存器中,作为计数的起始值。
  • B选项TCNTO0 - TCNTO4(Timer Count Observation Register):定时器计数观察寄存器。对应每个定时器,如TCNTO0对应Timer0。这些寄存器用于存储定时器当前的计数值。通过读取这些寄存器的值,可实时获取定时器的运行状态,了解当前计数到了哪个值。
  • C选项TCON(Timer Control Register):定时器控制寄存器。这是控制定时器运行的关键寄存器,可进行多种操作控制,如启动和停止定时器、设置自动重载功能、手动更新计数缓冲寄存器的值到计数寄存器、设置定时器的工作模式等。通过对TCON中不同位的设置,可以灵活地控制定时器的行为。
  • D选项TCFG0(Timer Configuration Register 0):定时器配置寄存器0。主要用于设置定时器的预分频器(Prescaler)值。预分频器可对输入到定时器的时钟信号进行分频处理,从而得到不同频率的计数时钟,以满足不同的定时需求 。
  1. alt text
    顾名思义,HCLK给AHB(高速H)来用,PCLK给APB(低速P)来用
  2. alt text
    C、1Hz是分频得到的,而不是本身就是
  3. alt text “仲控数校,传数保序”
  4. alt text
    CAN 的数据帧包含多种域,其中校验域采用的是循环冗余校验(CRC)方式,而非奇偶校验,所以 C 选项叙述错误。
  5. 非编码键盘是线性键盘,也是矩阵键盘
  6. alt text
  7. UART是全双工
  8. USB的2.0为半双工通信,3.0为全双工通信
  9. alt text
  10. SPI是同步串行通信方式,CAN、USB2.0、UART采用串行异步通信方式
  11. HDMI传送信号的方式是数字信号而不是模拟信号
  12. RTC内部都是8位寄存器
  13. UARTn对应的控制寄存器UCONn用于确定UARTn传输帧的格式。
    ❌ 错误。

UART的帧格式(如数据位长度、停止位、奇偶校验)是由 ULCONn(行控制寄存器) 设置的,而非UCONn。

UCONn(控制寄存器) 的作用是配置传输模式(如中断或轮询)、时钟选择等,与帧格式无关。

  1. UART的波特率由除数寄存器决定,也取决于外部时钟,可以是PCLK,还可以是UEXTCLK,由相应控制寄存器决定
  2. 硬实时、软实时与准实时的概念与时限的长短没有关系
  3. 通过编程可以改变RTC的年月日等,但是无法该百年时钟分频器的分频系数
  4. IIC固定是8位,不改变,SCL(时钟线): 像一个“节拍器”,负责同步数据传输。主设备(比如这里的S3C2410)需要主动发出这个时钟信号,告诉从设备(比如存储器FM24CL64)什么时候发送或接收数据。因此,SCL必须由主设备输出(即主设备控制时钟)。

SDA(数据线): 像一条“双向车道”,主设备既可以通过它发送数据给从设备(比如写入数据),也可以接收从设备返回的数据(比如读取数据)。所以SDA需要既能输出数据,又能输入数据(即双向)。
267. R/W=1为读,R/W=0为写
270. PWM(脉宽调制)的核心功能是通过调节占空比(高电平时间与周期的比例)来控制输出信号。S3C2410的PWM定时器允许用户自由配置占空比,而非固定为1:1的方波(即50%占空比)。例如:

用户可以通过设置比较寄存器的值,决定高电平的持续时间,从而生成不同占空比的PWM信号。

若需要1:1的方波,需手动将占空比设为50%。但题目中选项D的表述“配置成PWM定时器后,输出的PWM信号是1:1的方波”暗示占空比是固定的,这与PWM的可配置特性矛盾。

结论:选项D错误,因为S3C2410的PWM定时器的占空比是用户可编程的,而非固定为1:1。
271. GPIO不是共享一个寄存器,而是说每个端口都有控制寄存器、数据寄存器以及上拉寄存器
272. INTMASK为中断屏蔽寄存器,INTMOD来设置S3C2410内置硬件组件的硬件中断为FIQ还是IRQ,
275. alt text
276. MPLL是专门用于CPU及外围器件的锁相环时钟;UPLL时钟是专用于USB设备的锁相环时钟;
277. 在嵌入式设备中,接口名称上画横线(如(\overline{WR})、(\overline{CS}) ) ,这是表示低电平有效,而不是高电平。

以常见的读写控制信号为例,当写信号(\overline{WR}) 为低电平时,表示允许进行写操作;当片选信号(\overline{CS}) 为低电平时, 才选中对应的芯片或模块。

要让相关线路或功能按预期接通、实现相应操作,通常是要让低电平有效的信号拉低(即置为0 ),同时结合其他信号状态满足对应逻辑条件,而不是让它处于高电平。
284. 8个GPIO引脚最多能构成64个按键的键盘
287. CAN 采用短帧通信,一个数据帧最多可以传送 8 个字节 。
290. Windows Phone 8是嵌入式操作系统
294. CAN总线比较自由,每次发送的字节数是08B
295. RS232是负逻辑传输,因此逻辑0和逻辑1的东西相当于是刚好反过来(逻辑0的电压范围为-15v
3v,逻辑1的电压范围为3~15v)
297. 用通俗语言解释选项B为什么错误:

假设你有一个开关(GPF6引脚)和一个电灯(发送数据功能)。

正确逻辑:当开关打开(GPF6为高电平),电灯才会亮(本机发送数据)。

题目中的描述:选项B却说“开关关闭时(低电平),电灯亮了”,这显然矛盾。

具体原因:

DE引脚的作用:RS-485芯片(MAX3485)的DE引脚是“发送使能”开关。

DE为高电平 → 允许发送数据(灯亮)。

DE为低电平 → 禁止发送数据(灯灭)。

GPF6与DE的连接:

图中GPF6通过一个“非门”(逻辑反相器)连接到DE引脚。

GPF6为高电平 → 非门输出低电平 → DE引脚实际为低电平 → 禁止发送数据。

GPF6为低电平 → 非门输出高电平 → DE引脚实际为高电平 → 允许发送数据。

选项B的问题:
它说“GPF6为低电平时本机发送数据”,但实际上:

GPF6为低电平 → DE引脚为高电平 → 允许发送数据。

选项B的描述是正确的?这里存在矛盾。

关键修正:
根据题目解析,实际情况是:

GPF6为高电平 → 非门输出低电平 → DE引脚为低电平 → 禁止发送数据。

题目中的选项B错误,因为它描述的逻辑与电路实际行为相反。

结论:选项B错误,因为当GPF6为低电平时,本机才能发送数据,而选项B说“低电平时发送”,这与实际电路逻辑矛盾。
(“非门”是数字逻辑中最基本的门之一,也叫做反相器(Inverter)。它的功能很简单:输入高电平,输出低电平;输入低电平,输出高电平。就像一个开关,输入开的时候输出关,输入关的时候输出开。)
29999. 1. 核心概念对比
组件 职责定位 实现内容示例 目标用户
设备驱动程序 直接操作硬件寄存器 GPIO控制、ADC数据采集、SPI通信时序 硬件工程师
哈尔 抽象硬件差异,统一接口 提供标准化函数HAL_UART_Transmit() 系统/应用开发者
BSP 适配特定硬件板卡 内存映射、时钟树配置、板级外设初始化 嵌入式平台开发者
2. 层级关系与协作
+———————+
| 应用程序/操作系统 | ← 调用统一接口(如HAL)
+———————+

+———————+
| 硬件抽象层 (HAL) | ← 屏蔽底层硬件差异(如STM32与ESP32的UART实现不同)
+———————+

+———————+
| 设备驱动程序 (Driver)| ← 直接读写寄存器(如STM32的USART_DR寄存器操作)
+———————+

+———————+
| 板级支持包 (BSP) | ← 包含启动文件、内存布局、外设引脚映射等板级配置
+———————+

+———————+
| 硬件 |
+———————+
3. 具体关系说明
(1) BSP与驱动程序
BSP是驱动程序的运行环境
BSP为驱动程序提供硬件平台的初始化支持,例如:
// BSP中的初始化代码(如STM32的SystemInit函数)
void SystemInit() {
SCB->VTOR = FLASH_BASE; // 设置中断向量表地址
RCC->CR |= RCC_CR_HSEON; // 启用外部高速时钟
// 配置GPIO引脚复用功能(如USART_TX引脚)
GPIOA->AFR[0] |= (7 < (4 * 9)); // PA9复用为USART1_TX
}
BSP包含驱动程序
针对板载外设(如触摸屏、以太网PHY芯片)的驱动代码通常集成在BSP中。
(2) HAL与驱动程序
HAL通过驱动程序实现功能
HAL层调用驱动程序的底层作,例如STM32的HAL库中:
// HAL_UART_Transmit函数(简化版)
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) {
// 通过驱动程序操作寄存器
while (Size–) {
while (!(huart->Instance->SR & USART_SR_TXE)); // 等待发送缓冲区空
huart->Instance->DR = (*pData++ & 0xFF); // 写入数据寄存器
}
return HAL_OK;
}
HAL对多平台的统一抽象
同一HAL接口(如)在不同硬件平台下调用不同的驱动程序实现。HAL_I2C_Read()
(3) BSP与HAL
BSP集成HAL
在STM32CubeMX生成的工程中,BSP会包含针对具体芯片型号的HAL库。
BSP提供HAL的配置依赖
例如,通过文件配置HAL模块的使能状态。stm32f4xx_hal_conf.h
4. 实际开发中的协作流程
以**STM32开发板+温湿度传感器(DHT11)**为例:

BSP层:初始化MCU时钟、配置GPIO模式(如将PA1设置为输入模式)。
驱动程序:实现DHT11的时序协议(如精确的微秒级延时和电平读取)。
HAL层:提供等标准化接口。HAL_Sensor_ReadHumidity()
应用层:直接调用HAL接口读取数据,无需关心底层是STM32还是ESP32。

LDO

  1. 低压差线性稳压器,传统的78XX系列的芯片都要求电压要比输出电压至少高出2v~3v,但是5v转3.3v做不到,所以得使用LDO
  2. LDO内部基本都是由4大部件构成,分别是分压取样电路、基准电压、误差放大电路和晶体管调整电路。
  3. alt text
  • 分压取样电路: 通过电阻R1和R2对输出电压进行采集;
  • 基准电压: 通过bandgap(带隙电压基准)产生的,目的是为了温度变化对基准的影响小;
  • 误差放大电路: 将采集的电压输入到比较器反向输入端,与正向输入端的基准电压(也就是期望输出的电压)进行比较,再将比较结果进行放大;
  • 晶体管调整电路: 把这个放大后的信号输出到晶体管的控制极(也就是PMOS管的栅极或者PNP型三极管的基极),从而这个放大后的信号(电流)就可以控制晶体管的导通电压了,这就是一个负反馈调节回路。

DCDC

四引脚 DC-DC 降压模块连接 STM32F103C8T6 的方案

  1. 四引脚 DC-DC 模块的典型引脚定义
    VIN+:输入正极
    VIN-:输入负极(地)
    VOUT+:输出正极(3.3V)
    VOUT-:输出负极(地)
  2. 具体连接方案
    硬件连接

输入侧:
将外部电源(如 5V 或 12V)接入 DC-DC 的 VIN+ 和 VIN-。
输出侧:
将 DC-DC 的 VOUT+ 连接到 STM32F103C8T6 的 VDD 引脚(3.3V 电源输入)。
将 VOUT- 连接到 STM32 的 GND 引脚。
+———————+
| DC-DC 模块 |
| VIN+ → 外部电源+ |
| VIN- → 外部电源- |
| VOUT+ → STM32 VDD |
| VOUT- → STM32 GND |
+———————

总结

都是降压模块,LDO更适合低范围降压,DCDC适合高范围降压。原理分别是:LDO通过电阻的比例来降压,DCDC通过不间断地开关开关来降压。
DCDC:纹波大(图像老是抖动),但是效率高
LDO:纹波小,效率低
配图:alt text
alt text

  1. 首先要生成一个.md的文件。在D:\Blog\source_posts中尝试生成一个.md的文件
    在终端写:
1
hexo new "文章的标题"
  1. 写文章
  2. 推送(在Blog文件夹中使用终端)
1
2
3
hexo clean
hexo generate
hexo deploy

然后就行了,就能提交了

PS:有些人推送文章的时候会发现自己的网站没了,有一种可能:自己在建立博客的时候CNAME的文件名字错写成了CNAME.txt,这时候只需要在github pages中找到custom domain,然后再把自己的网站输进去就行了

PS&&PS::一定要注意中间换终端的使用地方了,最开始是在_posts中使用终端,随后变成Blog文件夹中使用终端了
alt text

  1. 这是我正式的第一个博客,多多打赏!

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment