博流
- 桌面儿童陪伴机器人
- 可穿戴式健康数据采集系统
- 钢琴教培系统
瑞萨
- 方向一:智能家居与楼宇自动化
软通(可能会需要操作系统)
- 方向二:无人水质检测船
- 方向三:智能机车系统(比较难);以及智能汽车防盗报警系统
- 方向五:多功能智能药盒
ST
- 方向三:小车竞速
- 方向五:可穿戴设备
系统级产品:完整的设备,如智能手机、智能家居,直接使用。
板级产品:核心电路板,如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。
功能:管理硬件资源和任务调度。
软件:
类型:固件、应用程序。
功能:实现特定功能和控制逻辑。
电源管理:
功能:提供和管理系统电源。
外围设备:
类型:传感器、执行器、显示器。
功能:与环境交互。
故:局域网和广域网(大的局域网)可以组成互联网
92.
93.
98.
100. 功耗越来越高
106. 平板电脑也大多用的是SOC片上系统,而不是Intel处理器
108. 图像数据量=图像水平分辨率图像垂直分辨率像素深度/8.
上图看出来像素深度是24的原因:2^24≈1600万,故24
111. 嵌入式系统中负责运行系统软件和应用软件的处理器称为中央处理器
116. 嵌入式处理器的字长指的是处理器中通用寄存器和定点运算器的二进位宽度
(定点运算器是负责执行算术运算(如加、减、乘、除)和逻辑运算(如与、或、非)的部件。)
(通用寄存器是嵌入式处理器中可用于多种用途的存储单元,用于暂存数据、地址或指令等信息。)
118. 用于机机交互的设备:①各种类型的传感器、各种伺服执行机构
119.
122. 冯诺依曼结构:地址空间和数据空间分开了
哈佛结构:地址空间和数据空间不分开
127. 数码相机中有一个8位的MCU,负责进行操作控制;DSP来负责数字图像处理
128. 嵌入式处理芯片通常是超大规模和极大规模,不是大规模。
129. GB2312(都为双字符)是我国目前广泛使用的汉字编码国家标准之一,包含西文、俄文等其他字符
GB18030(单字节编码表示ASCII,双字节编码表示汉字)
UTF-8采用单子节可变长编码(有1、2、3、4个字节),UTF-16表示的是双子节可变长编码(有2、4个字节可以使用)
134.
136. 图像的量化是:扫描、分色、取样、量化
137.
138. WiFi无线局域网:主要用的是2.4GHz和5.8GHz(不是2.4MHz和5.8MHz)
140.
148. GB18030采用不等长编码,而不是不等长双字节编码(因为有1、2、4位)
155. ASCII不包含注音符号、希腊字母、拉丁字母、控制字符,包含日文片假名
164.
167. 码率=取样频率x量化位数x声道数
167. RISC和CISC区别:
169. 手机和平板电脑通过 WiFi 接入互联网时,WiFi 路由器所连接的网络可能是通过 ADSL、Cable Modem
或光纤接入等方式获得的网络 。也就是说,WiFi 接入的网络来源可以与 ADSL、Cable Modem 和光纤接入等方式相关,
169. 寄存器与Cache分别是什么:
Cache和寄存器都是计算机中用于存储数据的部件,但它们在功能、速度、容量等方面有所不同,以下是用通俗的方式对它们的解释:
Cache(高速缓冲存储器)
寄存器
A. 将有线通信网络与无线网络进行互连
通常由无线接入点(AP)等设备担任。AP 可以接收有线网络的信号,并将其转换为无线信号发射出来,供无线设备连接;同时也能将无线设备发送的信号转换为有线信号传输到有线网络中,实现有线和无线通信网络的互连。
B. 将多个异构或同构的物理网络进行互连
主要由路由器担任。路由器工作在网络层,它能够根据网络层的地址(如 IP 地址),将数据包从一个网络转发到另一个网络。无论是不同类型的网络(异构网络,如以太网和令牌环网),还是相同类型的网络(同构网络,如多个以太网),路由器都能实现它们之间的互连,并进行数据包的路由选择和转发,以确保数据在不同网络间的正确传输。
C. 放大传输信号,实现远距离数据传输
一般由中继器或放大器担任。中继器是一种简单的网络设备,它会接收并重新生成信号,在信号传输过程中对衰减的信号进行放大和整形,以延长信号的传输距离,从而实现远距离数据传输。放大器则更侧重于对信号的功率放大,提高信号强度,也可用于增强信号传输距离。
D. 用于传输层及以上各层的协议转换
主要由网关担任。网关是一种复杂的网络设备,它可以在不同的协议栈之间进行转换,不仅能处理传输层(如 TCP、UDP 协议)的协议转换,还能处理应用层等更高层次的协议转换。例如,当一个基于 IPv4 协议的网络要与一个基于 IPv6 协议的网络进行通信时,网关可以进行两种协议之间的转换,使得不同协议的网络能够相互通信和交互数据。
172. 像素深度就是量化位数
173. 固定电话通信中使用PCM编码的码率为64kb/s
175. 量化位数:表示每个像素或采样点颜色、声音等信息的二进制位数,是具体数字。
量化精度:衡量模拟信号转数字信号时幅度量化的精确程度,由量化位数体现,位数越多精度越高。
176.
180. www网页中包含的指向其他网页的超链是又向的,起点位置成为链源,目的地称为链宿,是典型的超文本结构。
181. - 字符的形状又两种描述方法:点阵法和轮廓法(不是扫描法)
哈夫曼编码是一种无损压缩编码
206. JPEG关注的是静态图像,GIF、AVI、MP4都可以将多张图像保存在同一个文件中,形成动画的效果
207. 数字图像的位平面数目就是像素颜色分量的数目
212. GIF是无损的
213. WAV是未压缩,不是无损压缩!
217. - A选项:C类IP地址适用于小规模局域网,而非中型网络。
7.
12.
194.
操作:如果进位标志(Carry Flag)为0,则执行减法操作;否则,不执行。
而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的写入和擦除速度较慢
与此同时,处理中断有两种形式:标准的中断控制器和VIC(向量中断控制器)
107. RTC不与系统总线相连,大那是中断控制器与系统总线相连
111. SPI和UART和I^2C都是串行工作,只有GPIO可以实现并行I/O
112. IIC可以进行总线仲裁,但是SPI没有
113. D:使用这个是为了进行行扫描输出
115.
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.
156.
158. 片外扩展的存储器简称主存储器或主存,而外部存储设备简称辅助存储器
160. 正在运行的程序的大部分数据和代码存放在主存储器(内存)中
164.
169. PWM不属于互联通信组件
170.
选项C错误在于电阻式触摸屏一般不支持多点触摸或滑动操作。
电阻式触摸屏是基于压力感应原理工作,当触摸时,屏幕表面的两层导电层接触,通过检测接触点的电阻变化来确定触摸位置。其技术特性使得它在检测多个触摸点或精确识别滑动等复杂操作上存在困难。
而多点触摸或滑动操作通常是电容式触摸屏的特性,电容式触摸屏通过检测手指等导体与屏幕表面电容的变化来识别触摸,能更好地支持多点触摸和滑动等复杂操作。所以选项C说电阻式触摸屏通过多点触摸或滑动进行操作是错误的。
171.
在驱动LED等负载时加反向驱动器有以下原因:
在图(a)中加反向驱动器,就是为了实现上述一个或多个功能,确保LED能稳定、可靠地工作。不过,对于驱动单个LED,在GPIO引脚电流和电平能满足要求时,也可不加反向驱动器,如图(c)电路更简洁,在一定条件下是合理的驱动方式。
176.
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.
如果想要d正确,除了选项中描述的要做的事,GPE7 - GPE0 引脚连接到 74HC573 芯片的 1D - 8D 数据输入端,而 74HC573 是带三态门的透明锁存器。GPF0 引脚连接到 74HC573 的 CLK(时钟)端,需要在 GPF0 引脚产生一个合适的上升沿信号,这样才能将此时 GPE7 - GPE0 引脚上的新数据锁存到 74HC573 内部,并通过 1Q - 8Q 输出端传送给数码管,从而改变数码管显示内容。
209.
210.
214. USB3.0采用全双工通信,通信时采用主从方式
217. IIC总线上每次发送的数据字节不受限制,但是每个字节必须为8位,且每个字节后面必须跟一个应答位(ACK)
218.
222. 涉及IIC操作的寄存器有IICCON、IICSTAT、地址寄存器、数据位移寄存器等
223.
229. (书P155)BANK的总线宽度时8位、16位、32位,但是BANK0的总线宽度只能选择16位、32位
230.
S3C2410有两个中断挂起寄存器:源中断挂起寄存器SRCPND和中断挂起寄存器;当多个中断源请求服务时,SRCPND相应の位被写1,
233. 嵌入式系统可以通过扩展无线模块来实现无线通信,该模块与嵌入式处理器连接时不仅可以用UART,还可以用USB
237.
因为上拉电阻的存在,所以按下按钮的时候是0
238. S3C2410是32位嵌入式处理器
240. 编码键盘(线性键盘)
310. S3C2410内部有5个16位定时器Timer,有4个具备PWM输出
308. 在S3C2410芯片中,题目中ABCD对应的寄存器作用如下:
UART的帧格式(如数据位长度、停止位、奇偶校验)是由 ULCONn(行控制寄存器) 设置的,而非UCONn。
UCONn(控制寄存器) 的作用是配置传输模式(如中断或轮询)、时钟选择等,与帧格式无关。
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.
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总线比较自由,每次发送的字节数是08B3v,逻辑1的电压范围为3~15v)
295. RS232是负逻辑传输,因此逻辑0和逻辑1的东西相当于是刚好反过来(逻辑0的电压范围为-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。
3.23日
建立了一个小分队
四引脚 DC-DC 降压模块连接 STM32F103C8T6 的方案
输入侧:
将外部电源(如 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:纹波小,效率低
配图:
1 | hexo new "文章的标题" |
1 | hexo clean |
然后就行了,就能提交了
PS:有些人推送文章的时候会发现自己的网站没了,有一种可能:自己在建立博客的时候CNAME的文件名字错写成了CNAME.txt,这时候只需要在github pages中找到custom domain,然后再把自己的网站输进去就行了
PS&&PS::一定要注意中间换终端的使用地方了,最开始是在_posts中使用终端,随后变成Blog文件夹中使用终端了
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.
1 | $ hexo new "My New Post" |
More info: Writing
1 | $ hexo server |
More info: Server
1 | $ hexo generate |
More info: Generating
1 | $ hexo deploy |
More info: Deployment