1.数据流传输中,单工,半双工,全双工的概念以及区别
数据流一般是针对两个对象之间而言的,我们从同一时间,传输通道的个数以及传输方向来对比。
单工通信(simplex)【单通道,单方向】
仅一个方向可以传输数据,A指向B,B就只能接收数据。例如电脑和打印机,打印机永远只能接收来自电脑的打印信息。
半双工通信(half-duplex)【单通道,双方向】
数据可以双向传输,但是同一时刻内,只能有一个方向的数据在传输。同一时刻,要么A发B收,要么B发A收。例如传统的对讲机的工作方式,不同对讲机保持同频道的措施,就是建立单通道的过程
全双工通信(full-duplex)【双通道,双方向】
数据可以双向传输,且同一时刻,两者可以同时进行收发数据。例如电脑之间通讯,手机之间的通讯。
2.寄存器的概念,什么叫寄存器映射?
给有特定功能的内存单元取一个别名,这个别名就是我们常说的寄存器。给这个分配好地址,有特定功能的内存单元取别名的过程就叫寄存器映射。
3.什么叫做存储器映射?
给存储器分配地址的过程叫存储器映射,再分配一个地址叫重映射。
4.单片机中,如何实现将某一位的数值置0,置1,以及取反呢?
例如有一个单片机寄存器地址为:
置0用与:1111 1111 & 1101 等于0000 1101 (将第2位 置0)
置1用或:0000 0010 | 1000 等于0000 1010(将第4位 置1)
取反用异或:0000 1100 ^| 1100 等于 0000 0000(将第三四位取反)
诀窍在于:根据需要置0,1,反的位置,构造对应的数。
置0时:构造数,只在需要置0的位置取0,其余位置取1
置1或者取反时:构造数,在需要置1或者取反的位置取1,其余位置取0
5.单片机中RAM代表什么,ROM又代表什么?
在单片机(MicroController)中,RAM和ROM是两种不同类型的存储器,它们分别代表着不同的功能和用途:
RAM(Random Access Memory,随机存取存储器): RAM是一种易失性存储器,用于临时存储程序执行过程中的数据。RAM存储器的内容在断电时会丢失,因此通常用于存储程序运行时的临时数据、变量和堆栈等。RAM的特点是读写速度快,但需要持续的电源供应来保持存储数据。
ROM(Read-Only Memory,只读存储器): ROM是一种非易失性存储器,用于存储程序的固定数据、常量和不变的代码。与RAM不同,ROM的内容在断电时不会丢失,因此适用于存储固化的程序代码和数据。
前者是随机存取存储器,后者是只读存储器,两者最根本的区别在于,断电后数据是否会丢失。
6.IAP和ISP的全称,以及编程上的区别?
当涉及到单片机或嵌入式系统的编程时,"In-Application Programming"(IAP)和"In-System Programming"(ISP)是两种不同的编程模式,它们在实际使用上有一些区别:
IAP(应用编程):
- IAP是在目标设备的应用程序中执行编程操作的一种方法。换句话说,通过IAP,您可以在设备的应用程序运行时对其进行编程,而无需中断应用程序的正常运行。
- IAP通常通过引导加载程序或特殊的API来实现。设备上的引导加载程序可以接收并执行编程指令,从而允许在设备运行时更新应用程序或配置信息。
- IAP对于需要在设备实际运行时进行固件更新或配置更改的应用程序非常有用,因为它不需要将设备连接到特殊的编程设备或断开应用程序的运行。
ISP(系统编程):
- ISP是通过连接到目标设备的编程接口(如JTAG、SWD等)来进行的编程操作。在ISP模式下,目标设备的应用程序通常会被暂停或停止,以便外部编程设备可以与其通信并进行编程操作。
- ISP通常用于在设备制造、测试或原型阶段进行固件编程,或者在无法通过IAP进行编程时使用。它通常需要特殊的编程硬件或连接器,并且可能需要额外的步骤来准备目标设备以进行编程。
总的来说,IAP适用于在设备运行时进行编程,而ISP适用于在设备停止或暂停时进行编程。选择使用哪种模式取决于具体的应用场景、设备要求以及编程的目的。
7.内存的五大分区分别是啥,各自有啥作用?
1.栈区(stack)
由编译器自动分配释放,存放函数的参数值,局部变量的值等。
2.堆区(heap)
一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表
3. 全局区(静态区)(static)
全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。
4. 文字常量区
常量字符串就是放在这里的,程序结束后由系统释放。
5. 程序代码区存放函数体的二进制代码。
有相关编程详解这五个区的区别,链接如下:
8.嵌入式编程中,常用的计量单位换算。
2^8=256 2^10=1024 2^16=65536 2^32=4294967296
1GB=1024MB 1MB=1024KB 1KB=1024B 1B=8bit
字节(Byte)是存储信息的基础单位,一般用B来表示
位 (bit) 是存储信息的最小单位,一般用bit来表示
1字节 | 0x0001 |
16字节 | 0x0010 |
256字节 | 0x0100 |
1024字节(即1K字节) | 0x0400 |
4K字节 | 0x1000 |
64K字节 | 0x0001 0000 |
256K字节 | 0x0004 0000 |
1M字节 | 0x0010 0000 |
1GB字节 | 0x4000 0000 |
4GB字节 | 0x0001 0000 000 |
9.二进制,八进制,十进制,十六进制的相关表示区分
二进制(Binary):缩写为 "bin",后缀使用B或者b
- 例如:1011b 或 1011B 表示二进制数。
八进制(Octal):通常缩写为 "oct"。后缀常用O(英文字母O,注意不是数字0)
- 例如:36o 或 36O 表示八进制数。
十进制(Decimal):通常缩写为 "dec"。一般不附加后缀
- 例如:173 表示十进制数。
十六进制(Hexadecimal):通常缩写为 "hex"。使用前缀0X或者0x,后缀常用H或者h
- 例如:0X0400、0x1000 或者0400H、0100h 表示十六进制数。
10.嵌入式行业中,常见的单词缩写(全称),中文意思
英文缩写 | 英文全称 | 中文名称 |
SFR | Special Function Register | 特殊功能寄存器 |
11.片选信号
在单片机(Microcontroller)的设计中,片选信号(Chip Select Signal)是一种用来选择特定芯片或外设的信号。当单片机需要与多个外部设备进行通信时,每个外设都会分配一个唯一的片选信号。通过将片选信号置为有效状态(通常是低电平),单片机可以选择与特定外设进行通信,而忽略其他外设。
使用片选信号可以有效地管理多个外设,使单片机能够与多个外设进行串行通信而不会发生冲突。这种技术常用于嵌入式系统中,例如在与存储器、传感器、显示器等外设进行通信时。
12. 通信速率BPS的单位换算
BPS(Bits Per Second)是一种衡量数据传输速率的单位,表示每秒钟传输的位数。要将BPS转换为其他单位,可以使用以下换算关系:
1 BPS = 1 bit/second
通常,通信速率还可以用更大的单位来表示,如Kbps(Kilobits Per Second,千位每秒)、Mbps(Megabits Per Second,兆位每秒)或Gbps(Gigabits Per Second,吉位每秒)。这些单位之间的换算关系如下:
1 Kbps = 1000 BPS
1 Mbps = 1000 Kbps = 1,000,000 BPS
1 Gbps = 1000 Mbps = 1,000,000 Kbps = 1,000,000,000 BPS
13.N-MOS管的使用场景,以及重要的几个参数
N-MOS其实可以看成是一个电压控制电阻的等效模型。简单理解使用N-MOS管:当G端高电平时,N-MOS管导通,当G端低电平时,N-MOS管关断。以灯泡为例,看以下图1,2.
1.封装,一般来说,封装大的N-MOS管能承载的电流也会相应的大一些
2.RDson参数,指代的是N-MOS管被完全打开后,D端和S端之间的电阻值。(电阻越小,体积越大,价格越贵)
3.Cgs参数,指的是G端与S端之间的寄生电容,因为有电容充电的影响,针对高速PWM控制电路,这个值越小越好。
(RDson与Cgs这两者是相互关联的关系,你大我小,你小我大)
【注意】选择N-MOS管时,Vgsth(3V)最好是略小于VCC(5v)的电压,一来驱动时,不需要额外提供高电压,二来,不容易误触发。
图1,图2
图三,N-MOS等效模型
图四 P-MOS等效模型
14.P-MOS和N-MOS管的作用,以及两者之间的区别。
MOS管的作用主要是控制电路中,电路的通断。
对于P-MOS管来说,当G端通低电平时,能够控制Source端与Drain端的导通,高电平时,控制两端断开。
对于N-MOS管来说,当G端通高电平时,能够控制Source端与Drain端的导通,低电平时,控制两端断开。
以下图源来自与B站up主:工科男孙老师(资料仅做学习分享,勿做商用)
图1.俩MOS管符号
图2,3 P-MOS管在电路中的使用图(低电平导通)
图4,5 N-MOS管在电路中的使用图(高电平导通)
15.什么情况下,使用N-MOS,什么情况下使用P-MOS呢?
使用N-MOS管的情况:当使用一些无源器件(例如灯泡)的时候,选择N-MOS管控制,且N-MOS管放在器件下方。
(如果放下方,N-MOS管导通后,为了维持继续导通,G端电压需要多加5V)
使用P-MOS管的情况:当使用一些有源器件(例如芯片)的时候,选择P-MOS管控制,且P-MOS管放在器件上方。
(如果芯片放上方,芯片下方没有共地,可能会有电流偷跑的情况)
16.port latch 与port pin与input三者间的区别与联系
Port Pin(端口引脚):
- 定义:端口引脚是与微控制器或微处理器的特定端口相关联的单个物理引脚。一个端口可以由多个引脚组成,每个引脚代表一个可编程的输入或输出。
- 功能:端口引脚用于连接外部设备或其他电路,并且可以通过编程配置为输入或输出。通过控制特定的端口引脚,可以向外部设备发送数据或从外部设备接收数据。
Port Latch(端口锁存器):
- 定义:端口锁存器是用于存储特定端口状态的寄存器或存储器单元。当数据通过端口引脚进行输入或输出时,端口锁存器用于暂时存储这些数据。
- 功能:端口锁存器可以捕获端口引脚上的数据,使得数据对于后续处理或读取变得更加可靠和方便。
Input(输入):
- 定义:输入是从外部设备或其他源传输数据或信号到计算机或控制系统的过程。
- 功能:输入可以通过端口引脚进行传输和接收。当端口引脚被配置为输入时,它可以接收来自外部设备的数据或信号,并将其传输到系统内部进行处理或存储。